小编csc*_*hol的帖子

切换OK-Cancel和Cancel-OK以强制用户交互?

这是受OK-Cancel或Cancel-OK问题的启发.

我记得在某些情况下阅读有关切换OK-Cancel/Cancel-OK的概念,以防止用户在不阅读其内容的情况下点击信息弹出窗口或对话框.据我记忆,这还包括移动OK按钮的位置(水平,从左到右),以防止用户只记住点击的位置.

这真的有意义吗?这是强制用户"先思考/先读,然后点击"的好方法吗?还有其他概念适用于这种情况吗?

我特别想到一个与安全相关的应用程序,在这种应用程序中,不加思索地按下习惯会导致潜在的危险情况,而取消则会导致安全状态.

usability user-interface

9
推荐指数
4
解决办法
1739
查看次数

从Emacs访问StackExchange API

我试图从Emacs的elisp访问StackExchange API:

(require 'url)
(require 'json)

(defvar url-http-end-of-headers)

(defun read-json ()
  (interactive)
  (with-current-buffer (url-retrieve-synchronously "http://api.stackoverflow.com/0.8/users/2386")
  (goto-char url-http-end-of-headers)
  (json-read)))
Run Code Online (Sandbox Code Playgroud)

M-x read-json导致以下错误:JSON readtable error.

我错过了什么吗?

emacs elisp stackexchange-api

9
推荐指数
1
解决办法
1002
查看次数

makefile:从另一个目标执行一个目标以及其他命令

我有一个类似以下目标的makefile:

install:
    do a whole bunch of stuff to install

dist: install
    cp README.txt $(INSTALL_DIR)
    zip $(INSTALL_DIR)

我想不重复来自目标的命令installdist执行install执行自己的命令之前先.

调用make dist确实执行了来自目标的所有命令,install但之后只是停止并且它不执行自己的命令,例如cp.

我错过了什么吗?

makefile

7
推荐指数
1
解决办法
9189
查看次数

Python:确定列表中相等项的序列长度

我有一个列表如下:

l = [0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,2,2,2]
Run Code Online (Sandbox Code Playgroud)

我想确定一系列相等项的长度,即对于给定的列表,我希望输出为:

[(0, 6), (1, 6), (0, 4), (2, 3)]
Run Code Online (Sandbox Code Playgroud)

(或类似的格式).

我想过使用defaultdict,但它计算每个项目的出现和积累它的整个列表,因为我不能有一个以上的键"0".

现在,我的解决方案如下所示:

out = []
cnt = 0

last_x = l[0]  
for x in l:
    if x == last_x:
        cnt += 1
    else:
        out.append((last_x, cnt))
        cnt = 1
    last_x = x
out.append((last_x, cnt))

print out
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更多的pythonic方式这样做.

python list count

7
推荐指数
1
解决办法
2266
查看次数

Emacs中的lgrep和rgrep

我遇到了Emacs中的greps问题.

a)grep似乎不理解.[ch]用于搜索.c和.h文件.这是Emacs使用lgrep命令提供的默认选项.该示例是在.c/.h文件中搜索"global"一词.

grep -i -nH "global" *.[ch]
grep: *.[ch]: No such file or directory

Grep exited abnormally with code 2 at Mon Feb 16 19:34:36
Run Code Online (Sandbox Code Playgroud)

这种格式无效吗?

b)使用rgrep我收到以下错误:

find . "(" -path "*/CVS" -o -path "*/.svn" -o -path "*/{arch}" -o -path "*/.hg" -o -path "*/_darcs" -o -path "*/.git" -o -path "*/.bzr" ")" -prune -o  -type f "(" -iname "*.[ch]" ")" -print0 | xargs -0 -e grep -i -nH "global"
FIND: Wrong parameter format

Grep finished (matches found) …
Run Code Online (Sandbox Code Playgroud)

emacs grep

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

用于嵌入式GUI的字体

我正在寻找用于带有小显示屏和键盘的嵌入式GUI应用程序的字体.

是否有人们使用的免费字体?免费字体的许可证怎么样?嵌入式GUI等应用程序是否有特殊要求?例如,在源代码中包含许可证.

采用GNU FreeFont系列字体.该网站讨论了在文档中使用这些字体或改变它们以满足您的需求.如果我有办法将这些字体导入我的应用程序(未更改)并在我的显示器上使用它们,是否与使用它们创建文档相同,比方说,AbiWord或OpenOffice?

此外,免费(开源,例如GNU FreeFont),免费许可(例如下面Mark Rushakoff评论中链接的字体)和字体所涉及的免版税之间有什么实际差异?

embedded user-interface fonts

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

canvas.toDataURL()和drawImage()的安全性错误

<!doctype html>
<canvas id="canvas" height="200" width="200"></canvas>
<div id="new"></div>
<script>
var div = document.getElementById("new");
var canvas = document.getElementById("canvas");  
var ctx = canvas.getContext("2d");  
var img = new Image();

img.src = 'http://www.w3.org/html/logo/downloads/HTML5_Logo_512.png';
//img.src = 'local.png';

img.onload = function(){
    //draws the image on the canvas (works)
    ctx.drawImage(img,0,0,200,200);

    //creates an image from the canvas (works only for local.png)
    var sourceStr = canvas.toDataURL();

    //creates the img-tag and adds it to the div-container
    var newImage = document.createElement("img");
    newImage.src = sourceStr;
    div.appendChild(newImage);
}
</script>
Run Code Online (Sandbox Code Playgroud)

此脚本使用html5徽标创建画布.从这个画布我想使用"toDataURL()" - 方法创建一个图像.在这里我收到一个安全错误.

Firefox说 …

javascript firefox google-chrome html5-canvas

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

更改const指针的值

我有以下代码:

void TestFunc(const void * const Var1, const float Var2)
{
  *(float*)Var1 = Var2;
}

看起来我正在改变const指针所指向的const对象的值(感谢sharptooth),这是不允许的.事实是,我试过的编译器都没有发出警告.这怎么可能?

c pointers const

4
推荐指数
1
解决办法
4123
查看次数

检查Rhythmbox是否通过Python运行

我试图从Rhythmbox中提取信息dbus,但我只想这样做,如果Rhythmbox正在运行.有没有办法检查Rhythmbox是否通过Python运行而不启动它如果没有运行?

每当我调用这样的dbus代码时:

bus = dbus.Bus()
obj = bus.get_object("org.gnome.Rhythmbox", "/org/gnome/Rhythmbox/Shell")
iface = dbus.Interface(obj, "org.gnome.Rhythmbox.Shell)
Run Code Online (Sandbox Code Playgroud)

并且Rhythmbox没有运行,然后启动它.

dbus如果Rhythmbox在没有实际启动的情况下运行,我可以通过检查吗?或者除了解析当前正在运行的进程列表之外,还有其他方法吗?

python dbus rhythmbox

4
推荐指数
1
解决办法
1565
查看次数

如何在Emacs中创建类似于*compilation*的缓冲区?

我在Emacs中有一个异步进程,它创建了一个TAGS文件.

此过程创建一个名为*ctags*的进程缓冲区.如果处理结果是"完成\n",我会杀死缓冲区.

如果进程结果是其他任何我想在运行Mx编译时显示类似于*compilation*status输出的进程缓冲区.

即我想垂直分割屏幕并在底部显示*ctags*缓冲区.按q最好杀死底部缓冲区并显示我的原始缓冲区.

我尝试在我的进程中使用这个Sentinel回调:

(split-window-vertically)
(set-window-buffer (selected-window) (get-buffer "*ctags*"))

但除了将*ctags*缓冲区置于顶部之外,缓冲区与*compilation*输出不具有相同的特性,例如按q插入q.

如何创建像*compilation*这样的缓冲区?

编辑:

受到Trey Jackson在下面的回答的启发,这正是我想要的:

(pop-to-buffer (get-buffer "*ctags*"))
(compilation-mode)

它选择*ctags*缓冲区,将其置于编译模式,q将退出窗口.

EDIT2: 使用

(compilation-mode)
(主要模式而不是次要模式)因为Emacs不知道不喜欢将次要模式重新应用到现有缓冲区.

我得到的错误消息是:

Toggling compilation-minor-mode off; better pass explicit argument.

emacs elisp

3
推荐指数
1
解决办法
603
查看次数