小编Jak*_* M.的帖子

脚本语言中的美元符号 - 为什么?

有谁知道,在某些脚本语言(即PHP或Perl)中,"美元变量表示法"背后的实际原因是什么?我没有找到$variable有用的Python创建者.为什么PHP和Perl迫使我经常按shift-4?

(OK,在Perl中你可以用某种方式区分解释$scalar,@array%hash但仍可以成功地避免了那里,类型并不需要明确)

javascript php python perl

6
推荐指数
3
解决办法
594
查看次数

如何查找脚本标记的父级

如何找到相对于脚本位置的元素?例如,在下面的情况下,我想getSelfParent返回$('button')元素

<button>
    <script>
        getSelfParent().click(function(){...});
    </script>
</button>
Run Code Online (Sandbox Code Playgroud)

$(this).parent() 不工作.

编辑:

我想避免:

  • 在任何地方添加ID
  • 每次我寻找self元素时遍历整棵树

javascript jquery

6
推荐指数
1
解决办法
3035
查看次数

OpenGL:实现转换矩阵栈

在较新的OpenGL中,没有矩阵堆栈.我正在研究一个简单的显示引擎,我将实现转换堆栈.

这里的共同策略是什么?我应该构建一个push/pop堆栈,并将它与代表我模型的树一起使用吗?我想这是"旧的"方法,在较新的OpenGL版本中已被弃用.也许那时它不是最好的解决方案(由于某些原因它已被删除,我不知道)

opengl

6
推荐指数
1
解决办法
1296
查看次数

用Xlib捕获鼠标

我想编写一个简单的Xlib程序来改变鼠标行为(举个例子,反转垂直运动).我在捕获事件时遇到问题.

我想要代码

  • 捕获控制器位置的变化(我向上移动鼠标MotionEvent)
  • 计算新光标位置(new_x -= difference_x)
  • 设置新的光标位置(向下移动指针XWarpPointer,防止事件生成)

下面的代码应该在每次移动鼠标时捕获一个动作事件,但只有当指针从一个窗口移动到另一个窗口时它才会生成事件...如何捕获所有的移动事件?

#include "X11/Xlib.h"
#include "stdio.h"

int main(int argc, char *argv[])
{
    Display *display;
    Window root_window;
    XEvent event;

    display = XOpenDisplay(0);
    root_window = XRootWindow(display, 0);
    XSelectInput(display, root_window, PointerMotionMask );

    while(1) {
        XNextEvent( display, &event );
        switch( event.type ) {
            case MotionNotify:
                printf("x %d y %d\n", event.xmotion.x, event.xmotion.y );
                break;
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有关:

X11:我如何真正抓住鼠标指针?

c xlib

6
推荐指数
1
解决办法
6120
查看次数

scala:隐式转换不起作用

implicit从包中导入函数有问题.

我有一个使用正则表达式在文本中查找内容的类.我想用它作为:

val pattern = "some pattern here".r                                          
pattern findSomethingIn some_text                                            
Run Code Online (Sandbox Code Playgroud)

为此,我定义了一个implicitfinction转换patternWrapper包含findSomethingIn函数的包装器

package mypackage {                                                          

  class Wrapper ( val pattern: Regex ) {                                     
    def findSomethingIn( text: String ): Something = ...                     
  }                                                                          

  object Wrapper {                                                           
    implicit def regex2Something( pat: Regex ): Wrapper = new Wrapper( pat ) 
  }                                                                          

}                                                                            
Run Code Online (Sandbox Code Playgroud)

如果我用它

import mypackage._                                                           

Wrapper.regex2Something( pattern ) findSomethingIn some_text                 
Run Code Online (Sandbox Code Playgroud)

有用.而如果我使用

pattern findSomethingIn some_text // implicit should work here??             
Run Code Online (Sandbox Code Playgroud)

我明白了

value findPriceIn is …
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
1
解决办法
2742
查看次数

git - "debug"分支,合并"fix"分支而不"debug"

我有一个master需要调试的错误分支.为此,我想插入一堆调试程序(例如,打印变量),指出错误并应用修复程序.稍后,我想将修复程序合并到master分支中,但我不想跳过调试更改.

# create debug branch
git checkout -b debug

# ...
# edit sources and add debug prints
# ...

# commit debug changes
git commit --all

# create branch for the fix
git checkout -b fix
Run Code Online (Sandbox Code Playgroud)

现在做正确的修复和提交

git commit --all
Run Code Online (Sandbox Code Playgroud)

master分公司......

git checkout master
Run Code Online (Sandbox Code Playgroud)

...并在没有调试更改的情况下合并修复程序

git merge fix # <-- wrong, will merge debug changes as well
Run Code Online (Sandbox Code Playgroud)

如何合并fix没有debug

git

6
推荐指数
1
解决办法
891
查看次数

sqlite - 与文件一起工作,死于:内存:

在使用创建的SQLite base(通过sqlalchemy)时,我的脚本未:memory:通过测试,并且在使用使用物理文件创建的基础时通过测试.

该脚本是多线程的.我知道将SQLite用于多个线程(锁定等)并不是最好的想法,但我只使用SQLite来测试脚本的DB接口.

当我使用时:memory:,脚本死于抱怨没有表:

OperationalError: (OperationalError)
    no such table: content_info u'INSERT INTO content_info ...
Run Code Online (Sandbox Code Playgroud)

测试程序(带鼻子)如下:

def setup_database():
    global global_engine
    # create database columns
    engine = sqlalchemy.create_engine(...)
    Base.metadata.create_all(engine)
    global_engine = engine

@with_setup(setup_database)
def test_task_spoolers():
    check_database_content_from_another_thread()

def check_database_content_from_another_thread():
    global global_engine
    # from within other thread
    # create new session using global_engine
    # do some inserts
Run Code Online (Sandbox Code Playgroud)

因此,在建立我创建数据库和列.我也可以在logs(echo=True)中看到它:

12:41:08 INFO sqlalchemy.engine.base.Engine 
CREATE TABLE content_info (...

12:41:08 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
12:41:08 …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

6
推荐指数
1
解决办法
1405
查看次数

获取默认/首选文件扩展名

我可以使用file命令识别文件类型.我可以获得该文件的默认(首选)扩展名吗?

例如

tmp_206.file: GIF image data, version 89a, 17 x 17
tmp_202.file: ASCII text, with very long lines, with no line terminators
Run Code Online (Sandbox Code Playgroud)

它会是.gif.txt

我知道扩展对于UNIX无关紧要,但它们对我来说很重要

unix

6
推荐指数
1
解决办法
275
查看次数

将git lfs存储库重置为指针

我已经签出了git lfs存储库。所有的二进制文件都是指针。我用拉出了真正的二进制文件git lfs pull --include some/binaries

我使用了二进制文件,现在我想“解压缩”二进制文件并将它们再次转换为指针,以便可以回收磁盘空间。

我没有找到合适的命令来执行此操作,并且使用.git / lfs / objects加上硬重置进行处理使我感到紧张。

问题:如何将跟踪的二进制文件转换回指针?

编辑:

git git-lfs

6
推荐指数
2
解决办法
1165
查看次数

包含独特元素的列表

我需要一个容器,其中:

  • 当我添加尚不存在的新元素时,它会添加到列表的顶部
  • 当我添加一个已经存在的元素时,它不会被添加,并且我会在列表中获取它的索引
  • 一旦插入元素,它总是具有相同的索引,并且可以使用该索引来访问它

std::set单独是不够的,因为我无法使用 访问元素[index]std::list两者都不是,因为它不存储唯一的元素。

list我使用了和 的混合解决方案map,但也许有一些标准的通用模板?

我不想使用增强功能。每次插入后调用list::unique并不是解决方案。

c++ collections

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

git ×2

javascript ×2

python ×2

c ×1

c++ ×1

collections ×1

git-lfs ×1

jquery ×1

opengl ×1

perl ×1

php ×1

scala ×1

sqlalchemy ×1

sqlite ×1

unix ×1

xlib ×1