我打算开发一个简单的Firefox扩展,它将缩短当前活动选项卡的URL,显示带有缩短URL的弹出窗口,并将其放入剪贴板.
在谷歌浏览器中,这非常简单(根据http://developer.chrome.com/extensions/getstarted.html) - 纯JavaScript以及一些与浏览器UI交互的JavaScript API调用.
但是,在搜索了一个很好的Firefox扩展教程之后,我找到的最正式的链接是:
据他们说,看起来我必须学习XUL语言,即使是与浏览器UI的最简单的交互.最重要的是,我将不得不设置自定义Firefox配置文件,以便在开发过程中不使用我的默认配置文件,创建复杂的目录结构,用晦涩的XML编写清单,找出如何打包和测试我实现的任何内容等.
它是2013年,是不是有一种更简单的方法来构建Firefox扩展?
javascript firefox google-chrome firefox-addon firefox-addon-sdk
我不是ln每天都使用命令,所以当我需要创建一个文件的链接时,我总是忘记它是否ln <target file> <link name>,或者ln <link name> <target file>,所以我必须快速浏览一下man ln.
也许这只是我,但如果没有,你有没有任何技巧(助记符?)来记住ln参数的顺序?
我几乎总是在Vim中搜索/,然后继续搜索向前n和向后搜索N.然而,有时我?会跳到我当前所在线上几行的一个项目,在这种情况下,如果我想向前搜索同一个项目,我必须使用N而不是n一个烦人的心理速度磕碰.
所以我的问题是:是否有可能n永远前进,N后退?
PS文档似乎暗示它不可能,因为n简单地"重复最新"/"或"?"[计数]次",但谁知道.
考虑以下命令性代码,它找到3位数字产品中最大的回文(是的,它是"18世纪优秀数学家的项目"网站的首批任务之一):
curmax = 0
for i in range(999,100):
for j in range(999,100):
if ((i*j) < curmax): break
if (pal(i*j)):
curmax = i*j
break
print curmax
Run Code Online (Sandbox Code Playgroud)
当我正在学习Haskell时,我的问题是,你如何将这个(以及基本上任何包含比简单迭代更复杂的命令式构造,例如中断,继续,临时变量和所有这些)转换为Haskell?
我的版本是
maxpal i curmax
| i < 100 = curmax
| otherwise = maxpal (i-1) (innerloop 999)
where
innerloop j
| (j < 100) || (p < curmax) = curmax
| pal p = p
| otherwise = innerloop (j-1)
where p = i*j
main = print $ maxpal 999 0
Run Code Online (Sandbox Code Playgroud)
但这看起来我们仍然处于势在必行的丑陋城市. …
我有几个在localhost上运行的分布式应用程序实例; 每个实例都通过某些端口与其他实例进行通信,所有实例共同构成一个整体.(我实际上是在谈论在Linux上运行的ZooKeeper)
现在我想编写单元测试来模拟整体分区.
例如,我有5个实例,我想将它们分成两组,每组3和2,以便一个组中的实例无法与另一个组中的实例进行通信.当3台机器在一个数据中心,2台机器在另一台数据中心,数据中心被分区时,它将模拟真实情况.
问题主要是使套接字选择性地工作:与一个套接字说话,但不要与另一个套接字说话.我想到的一个解决方案是抽象通信层并将测试规则注入其中(以"如果我是来自一个组的实例我不允许与另一个组的实例对话 - 关闭套接字"的形式或忽略数据或其他任何").
但也许存在一些工具,可能是一些测试框架?一般来说,您如何在分布式应用程序中测试此类案例?
PS尽管问题被标记为"java"(因为ZooKeeper是用Java编写的),但是听到任何其他语言的解决方案,或者语言独立的解决方案 - 可能是一些Linux大师技巧,真是太棒了.
algorithm ×1
bash ×1
distributed ×1
editor ×1
firefox ×1
haskell ×1
java ×1
javascript ×1
linux ×1
ln ×1
networking ×1
python ×1
shortcut ×1
unit-testing ×1
unix ×1
vim ×1