这是受OK-Cancel或Cancel-OK问题的启发?.
我记得在某些情况下阅读有关切换OK-Cancel/Cancel-OK的概念,以防止用户在不阅读其内容的情况下点击信息弹出窗口或对话框.据我记忆,这还包括移动OK按钮的位置(水平,从左到右),以防止用户只记住点击的位置.
这真的有意义吗?这是强制用户"先思考/先读,然后点击"的好方法吗?还有其他概念适用于这种情况吗?
我特别想到一个与安全相关的应用程序,在这种应用程序中,不加思索地按下习惯会导致潜在的危险情况,而取消则会导致安全状态.
我试图从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.
我错过了什么吗?
我有一个类似以下目标的makefile:
install:
do a whole bunch of stuff to install
dist: install
cp README.txt $(INSTALL_DIR)
zip $(INSTALL_DIR)
我想不重复来自目标的命令install并dist执行install执行自己的命令之前先.
调用make dist确实执行了来自目标的所有命令,install但之后只是停止并且它不执行自己的命令,例如cp.
我错过了什么吗?
我有一个列表如下:
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方式这样做.
我遇到了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) 我正在寻找用于带有小显示屏和键盘的嵌入式GUI应用程序的字体.
是否有人们使用的免费字体?免费字体的许可证怎么样?嵌入式GUI等应用程序是否有特殊要求?例如,在源代码中包含许可证.
采用GNU FreeFont系列字体.该网站讨论了在文档中使用这些字体或改变它们以满足您的需求.如果我有办法将这些字体导入我的应用程序(未更改)并在我的显示器上使用它们,是否与使用它们创建文档相同,比方说,AbiWord或OpenOffice?
此外,免费(开源,例如GNU FreeFont),免费许可(例如下面Mark Rushakoff评论中链接的字体)和字体所涉及的免版税之间有什么实际差异?
<!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说 …
我有以下代码:
void TestFunc(const void * const Var1, const float Var2)
{
*(float*)Var1 = Var2;
}
看起来我正在改变const指针所指向的const对象的值(感谢sharptooth),这是不允许的.事实是,我试过的编译器都没有发出警告.这怎么可能?
我试图从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在没有实际启动的情况下运行,我可以通过检查吗?或者除了解析当前正在运行的进程列表之外,还有其他方法吗?
我在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.