肉山博客: Emacs Robe: 选择 ruby 版本

M-x robe-start 报错:

Could not find rake-10.4.2 in any of the sources
Run `bundle install` to install missing gems.

Process rails exited abnormally with code 7

但是在 shell 里运行 bundle install ,显示所有的 gem 都装好了

在 Emacs 中打开 M-x shell , 然后运行 which ruby , 发现跟 .ruby-version 里指定的版本不符。

运行 cd /tmp && cd - 之后, which ruby 返回的结果就跟 .ruby-version 一样了,我想 Emacs 并不知道 .ruby-version 的存在。

看了一下 robe-start 的定义,里面调用了 (inf-ruby-console-auto) , C-h f inf-ruby-console-auto , 看一下其源码,整个文件里也搜不到 .ruby-version 的相关信息,感觉设计的时候根本就没考虑这个问题。

最好是能修改 inf-ruby ,让它读取 .ruby-version ,然后用其指定的 ruby 版本运行,但做这样的修改比较麻烦,更简单的解决方案是在 Emacs 中指定要用的 Ruby 版本号。

M-x rvm-use ,然后再 M-x robe-start ,问题解决。

-1:-- Emacs Robe: 选择 ruby 版本 (Post Wenshan)--L0--C0--October 29, 2015 02:02 AM

Emacs中文网: Emacsĺ†…ç˝Žćľč§ˆĺ™¨EWW

挂茁

EWW, ć˜Ż Emacs Web Wowser 的矊写(ä¸‹čžšäšŸĺ†™ä˝œ eww), Wowser ç›´čŻ‘ć˜Ż”äť¤äşşĺ°čąĄćˇąĺˆťçš„äş‹ç‰Š”çš„ć„ć€. ć˜Ż 2013 嚴出现, Emacs 24.4 ĺź€ĺ§‹ĺ†…ç˝Žçš„ć–‡ćœŹĺž‹ćľč§ˆĺ™¨. äťĽä¸‹çš„ä˝żç”¨ĺŸşäşŽ Emacs 24.4 ćˆ–č€…äťĽä¸Šç‰ˆćœŹ.

ä¸ĺŒäşŽäź çťŸçš„ Emacs ĺ¸¸č§ćľč§ˆĺ™¨ć–šćĄˆ w3m éœ€čŚĺ¤–éƒ¨ĺˇĽĺ…ˇć”ŻćŒ, eww ä¸éœ€čŚĺ¤–éƒ¨ĺˇĽĺ…ˇć”ŻćŒ. ĺŚĺ¤–ä¸ć”ŻćŒ js äťĽĺŠĺ¤–éƒ¨ĺź•ĺ…Ľ css , ćŸĺ¤ąäş†éĄľé˘ć•ˆćžœçš„ĺŒć—ś, äšŸĺ‡ĺ°‘äş†ĺžˆĺ¤š http 诡湂, ĺŠ č˝˝é€ŸĺşŚéžĺ¸¸ĺżŤ.

ĺŸşćœŹä˝żç”¨

M-x eww ENTER emacsist.com ĺłĺŻčŽżé—Ž Emacs çˆąĺĽ˝č€…çŤ™ç‚š Emacsist.com . 打埀网饾䝼后, ć˜žç¤şç•Œé˘ä¸Šä¸€čˆŹćŒ‰ĺ•ä¸Şĺ­—ćŻĺłĺŻčż›čĄŒć“ä˝œ, 比匂 q 为退出, äšŸć”ŻćŒçŽ€ĺ•çš„äšŚç­žĺ’Œćľč§ˆĺŽ†ĺ˛ç­‰ĺŠŸčƒ˝, ĺŚ‚ćžœĺ˝“ĺ‰ç˝‘éĄľç”¨ eww ćŸĽçœ‹čľˇćĽĺŽžĺœ¨çłŸçł•, ĺˆ™ĺŻäťĽç”¨ćŒ‰Â & č°ƒç”¨Â eww-browse-with-external-browser çš„é…ç˝Žĺœ¨ĺ¤–éƒ¨ćľč§ˆĺ™¨ć‰“ĺź€ĺ˝“ĺ‰éĄľé˘. ć›´čŻŚçť†çš„ć“ä˝œćŒ‡ĺź•ĺŻäťĽÂ C-h m ćŸĽçœ‹.

ĺŚ‚ćžœéť˜čŽ¤çš„ćŒ‰é”Žä¸çŹŚĺˆć“ä˝œäš ćƒŻ, ĺŻäťĽĺ‚č€ƒä¸‹é˘çš„čż™ć ˇçš„ć–šĺźĺŽťé…ç˝ŽäżŽć”š:

(with-eval-after-load 'eww
  (custom-set-variables
   '(eww-search-prefix "https://www.google.com.hk/search?q="))

  (define-key eww-mode-map (kbd "h") 'backward-char)
  (define-key eww-mode-map (kbd "n") 'next-line)
  (define-key eww-mode-map (kbd "s") 'forward-char)
  (define-key eww-mode-map (kbd "t") 'previous-line)

  (define-key eww-mode-map (kbd "H") 'eww-back-url)
  (define-key eww-mode-map (kbd "S") 'eww-forward-url)

  (define-key eww-mode-map (kbd "b") 'eww-history-browse)
  (define-key eww-mode-map (kbd "c") 'eww-browse-with-external-browser)
  (define-key eww-mode-map (kbd "i") 'eww)
  (define-key eww-mode-map (kbd "m") 'eww-lnum-follow)
  (define-key eww-mode-map (kbd "z") 'eww-lnum-universal)

  (define-key eww-mode-map (kbd "M-n") 'nil)
  (define-key eww-mode-map (kbd "M-p") 'nil)

  (define-key eww-mode-map (kbd "<C-S-iso-lefttab>") 'eww-previous-buffer)
  (define-key eww-mode-map (kbd "<C-tab>")           'eww-next-buffer)
  )

厞际寚比 Emacsist.com ĺœ¨ chrome ç­‰ćľč§ˆĺ™¨ć•ˆćžœ, äźšĺ‘çŽ°ĺ› ä¸şä˝żç”¨ĺ¤–éƒ¨ css ćŽ§ĺˆśéĄľé˘ĺ¸ƒĺą€, ĺ˜ĺ˝˘čż˜ć˜ŻćŻ”čžƒĺ¤§, ä¸čż‡ĺ› ä¸şĺščż‡ç‰šćŽŠé€‚é…, ĺŸşćœŹčƒ˝ćŻ”čžƒć•´é˝çš„ć˜žç¤ş. ĺŚ‚ćžœĺ°čŻ•čŽżé—Žćˆ‘çš„ blog: blog.hickwu.com , ç”ąäşŽéĄľé˘ĺ¸ƒĺą€çŽ€ĺ•, ć˜žç¤şć•ˆćžœĺŸşćœŹčˇŸ chrome 丩差不夹. ĺ…ˇä˝“ĺ‚č§ eww1.gif

eww1.gif

éť˜čŽ¤é…ç˝Žä¸‹, ĺŚ‚ćžœÂ M-x eww ĺ›žč˝ŚĺŽčž“ĺ…Ľçš„ĺ†…ĺŽšč˘ŤćŁ€ćľ‹ĺ‡şćĽć˜Żç˝‘ĺ€,自动打埀, ĺŚĺˆ™äźšč°ƒç”¨Â DuckDuckGo čż›čĄŒćœç´˘. ĺ‰ć–‡çš„ eww-search-preifx é…ç˝Žĺłä¸şäżŽć”šéť˜čŽ¤ćœç´˘ć–šĺź. čŚć‰“ĺź€ćœŹĺœ°ć–‡äťśç”¨ file:// ĺź€ĺ¤´ćˆ–č€…Â M-x eww-open-file .

ĺŚĺ¤–é…ĺˆ ace-link ç­‰čƒ˝ĺžˆć–šäžżçš„ĺˆ‡ć˘äťĽ ace-jump çš„ć–šĺźĺŽšä˝ĺ’Œčˇłč˝Źé“žćŽĽ, 匂下回 eww2.gif 中使用 ace-link-eww 䝼后, ćŒ‰ l ĺłĺŻčˇłč˝Źĺˆ°ć–‡çŤ ”ace-jump-modeéŤ˜ć•ˆç§ťĺŠ¨ĺ…‰ć ‡”.

eww2.gif

理解 eww çš„ĺˇĽä˝œć–šĺź

eww ć˜ŻĺŸşäşŽĺŚĺ¤–ä¸€ä¸ŞéĄšç›Ž shr.el ćž„ĺťşçš„, ĺ˝“ç„śäšŸäžčľ– libxml2 ĺş“, 自塹矖译 Emacs çš„ć—śĺ€™ćł¨ć„ç›¸ĺ…łé€‰éĄš.

eww ć”ŻćŒ cookie çš„, ĺŽƒçš„ä¸€äş›ç˝‘çťœć“ä˝œčľ°çš„ć˜Ż url.el , ć›´ĺ¤šĺŠŸčƒ˝ĺŻäťĽĺ‚č€ƒÂ url package . eww é’ˆĺŻšĺ›žç‰‡äšŸćœ‰ç‰šćŽŠĺ¤„ç†, 可以设置 shr-max-image-proportion ĺŽšäš‰ĺ›žç‰‡ć˜žç¤şĺ°şĺŻ¸äťĽĺŠ shr-blocked-images ĺąč”˝éƒ¨ĺˆ†ĺ›žç‰‡ç­‰.

éœ€čŚčŽžç˝ŽäťŁç†ćœĺŠĄĺ™¨çš„äšŸć˜Żčľ° url.el çš„ć–šĺź, ĺŻäťĽčŽžç˝Žä¸äťŁç†çš„č§„ĺˆ™ç­‰, ĺŸşćœŹç”¨ćł•ĺŚ‚ä¸‹:

(setq url-proxy-services '(("no_proxy" . "work\\.com")
                       ("http" . "proxy.somedomain.com:8888")))

url-cookie-list ĺ‘˝äť¤ĺŻäťĽĺˆ—ĺ‡şćĽ Emacs äżĺ­˜çš„ cookie ĺˆ—čĄ¨, ĺŽšäš‰ĺœ¨ url-cookie.el 中, ĺ…śä¸­čż˜ćœ‰ĺŽšäš‰ url-cookie-retrieve 等函数, elisp ç¨‹ĺşčŽˇĺž—ĺŻäťĽçąťäźźčż™ć ˇÂ (url-cookie-retrieve "127.0.0.1" "/") 的用法. cookie ĺŽžé™…äżĺ­˜ĺœ¨ĺ˜é‡ url-cookie-file 寚应的文䝜, 大挂内厚匂下:

(setq url-cookie-storage
 '((".weibo.cn"
  [url-cookie "httponly" nil "28-Apr-2015 15:33:47.00 GMT" "/" ".weibo.cn" nil]
  [url-cookie "_T_WM" "XXXXXXXXXXXXXX" "28-Apr-2015 15:33:47.00 GMT" "/" ".weibo.cn" nil])
 ("192.168.3.222"
  [url-cookie "cookie_id" "142355712384279893" "10-Feb-2016 08:32:03.00 GMT" "/" "192.168.3.222" nil]))
)

ĺŚĺ¤–ć šćŽćŸĽć‰žçš„čľ„ć–™, eww ć”ŻćŒ html čĄ¨ĺ•çš„ć–‡äťśä¸Šäź , ĺ„ç§ĺšłĺ°çš„ä˝“éŞŒćƒ…ĺ†ľćœŞçŸĽ, ĺ‚č€ƒÂ http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-12/msg01389.html

eww çš„ä˝żç”¨ĺœşć™Ż

ćœ‰äş› Emacs çˆąĺĽ˝č€…äš ćƒŻç”¨ gnus ç­‰ĺœ¨ Emacs é‡Œć”śé‚Žäťś, ĺŻäťĽé…ĺˆ eww ĺŽťćŸĽçœ‹ html é‚Žäťś.

ç”¨ćĽčŽżé—Žä¸€äş›ćŻ”čžƒçŽ€ĺ•çš„ç˝‘çŤ™ćŻ”ĺŚ‚ hackernews ç­‰ć•ˆćžœéƒ˝čż˜ĺŻäťĽ, ĺŚĺ¤–ä¸€äş›çź–ç¨‹čŻ­č¨€çš„ć‰‹ĺ†Œç­‰ĺŸşćœŹčż˜ć˜ŻĺŻäťĽç”¨ eww ćĽćŸĽçœ‹.

ĺŻšä¸€äş›çşŻć–‡ćœŹć źĺźćŻ”ĺŚ‚ org/markdown č˝ŹĺŒ–ćˆ html çš„é˘„č§ˆć•ˆćžœä¸€čˆŹäšŸčż˜čƒ˝ćŽĽĺ—. ćś‰ĺŠč‡ŞĺŠ¨ĺˆˇć–°ç­‰, äšŸćœ‰äşşĺœ¨ć‘¸ç´˘äş†, ĺ…ˇä˝“ĺŻäťĽĺ‚č€ƒÂ How do I auto-refresh eww pages?

ĺ‚č€ƒčľ„ć–™

  • EWW Overview
  • EWW Basics
  • EWW Advanced
  • eww (web browser)
  • Emacs Web Wowser (EWW) got ace-link
  • emacs-webkit 国内 deepin linux çš„ä¸ťčŚćŠ€ćœŻäşşĺ‘˜çŽ‹ĺ‹‡ĺŒĺ­Śĺź€ĺ‘äş†ä¸€ä¸Ş Emacs é‡Œĺ†…ĺľŒçš„ webkit ćľč§ˆĺ™¨: deepin-emacs , ćœ‰ĺ…´čśŁçš„ĺŻäťĽčŻ•čŻ•Â https://github.com/linuxdeepin/deepin-emacs .
  • w3m ć•´ä˝“çœ‹čľˇćĽĺŻčƒ˝ćŻ” eww čż˜ćˆç†Ÿçš„éĄšç›Ž, äšŸć˜Żĺžˆč€çš„éĄšç›Žäş†. ä¸ťčŚĺˇŽĺˆŤć˜Ż: w3m ĺŽŸćœŹć˜Żä¸€ä¸Şç‹ŹçŤ‹çš„çąťäźźäşŽ Lynx çš„ć–‡ćœŹĺž‹ćľč§ˆĺ™¨, Emacs 里的 w3m éœ€čŚé…ĺˆ w3m čż™ä¸Şĺ¤–éƒ¨ĺˇĽĺ…ˇćĽç”¨. 当焜 eww 䝎 24.4 ĺź€ĺ§‹ĺ†…ç˝ŽäšŸčŽ¸ä¸çŽ—ćœŹčşŤçš„ĺˇŽĺˆŤ, äšŸć˜ŻćŹĄç”Ÿäź˜ĺŠż.

ĺŽŸć–‡éŚ–ĺ‘ Hick çš„ blog  http://blog.hickwu.com/posts/338 , č˝Źč˝˝čŻˇćł¨ć˜Žĺ‡şĺ¤„

ĺˆ†äşŤĺŽś:Addthis中国

相关旼志

-1:-- Emacsĺ†…ç˝Žćľč§ˆĺ™¨EWW (Post hick)--L0--C0--April 20, 2015 04:03 AM

肉山博客: Gnus:用 GPG 加密邮件

这周四(2014-10-09)在公司同事 Jack 的帮助下,成功地用 Gnus 发送了加密邮件。

1 流程

Gnus 自带对 GPG 的支持,所以一旦 Gnus 配置成功(见 2.2 ),给邮件加密很容易:

  • C-x m (compose-mail),开一封新邮件
  • C-c C-m C-e (mml-secure-message-sign-encrypt)

    这会在邮件开始处添加一个标签:

    <#secure method=pgpmime mode=signencrypt>
    

    解释一下 mode=signencrypt

    • sign :用发送者(你)的私钥签名,所以接收者知道邮件确实是你发的
    • encrypt :用接受者的公钥加密,所以邮件只有接受者能解密
  • 写完邮件, C-c C-c (message-send-and-exit) 发送

2 配置

2.1 用 GPG 生成公钥私钥,加载其他人的公钥

不赘述了,直接看 manual 就行,或着搜索相关教程。

2.2 配置 Gnus

我没有自己的邮件服务器,用的是谷歌的 Gmail。

Gnus 配置则基本是跟着陈斌兄的 Practical guide to use Gnus with Gmail 来的,简单实用。

3 我的公钥

http://wenshanren.org/wp-content/uploads/2014/05/wpid-PGP-wenshan2.asc

–—BEGIN PGP PUBLIC KEY BLOCK–—
Version: GnuPG v1

mQENBFNlPGEBCADALGQlcpOfWCKvaasalZWH+WZnY7LFBw4qaUbMHZtuh+3uyKm7
VadfPjcbKtko0pa7inY0CYPQ9oHaSZ0trimXdiMgf5693tmb733MZt72fc9sE7Xy
Iyq9v0QCEUwZsUFkac8qcWaZxIvx99/lro4NCStE/DCmM4BjpNanWcZMS2LDGGcT
mV35Qhl/0WT5JVZBM600iqbN8nsFPBdeu1t6F5/tFPf9QQXa9d3NLVc2gtCbYATi
7l4/2+EyTxHFYBxZfjHj5fViKlQyeDQBrg5hFh6jp0Zq+Hk4Kp6J1sRcgYecD8oq
gHI/wKELYs5XCrUdYv9DNxvwvZD3PeW8EjOFABEBAAG0LeS7u+aWh+WxsSAoUmVu
IFdlbnNoYW4pIDxyZW53czE5OTBAZ21haWwuY29tPokBNwQTAQIAIgUCU2U8YQIb
AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQnHGj7EtW25xOVAf1GDvgkaG4
ryNQE5qKwIdq7dMh7U+JLhLq+KHTiPuOyC5Plw98ik7zd+bhLJLaKWE3rhKwRXCY
ZJJcUYsARUG1TnRHBRRpHvL4rIPaQZK09wmomAV9/Qs4G1O3FSQUtMlgLeZwKMO4
zCV52odYqqZnM1+NuHDgkvCtd2Fe4sIQsYfRh+nnFqKTXFSfNKZvhuOnIyPuM6pc
1K7evjrfxfjPpc4L4Eh7EyeOK+1r9zUewk5Cr/ddJ40JqNganitatsEZaN5pteZt
pfEhxY0nztdgFfQE/u9tZzJC2z3DifjioWoG3epPOJucZ6YPHhUmEeGbZ+ESgmik
G5Nq+uyRCnotuQENBFNlPGEBCAD0bfWvErG4oThJ+GhW86eGFKGeAP4jUhugzO77
nuk3sbeImaOcNqn1nJANJ4iWeqImcKPPRN07FHFFbW4O63oZmrGDRq9vpwQyKogT
LDBpOZ7Sgu9qmTAI1ij2lpZK1U4dI+91XhvajzboTzWurTqe3jdGS41n9jq2jE2K
D9CG4Hf3ckpWYDXoWC2wAC1qYXhbX2u57pJIhUdfubAEkJnFJ73+B9nskSUG9pAh
eiBSyK1wPJWqgIZRmW5k9fBVJxwC520+ymU68jHK06I3U+/4gOogzMLVRjI14qdu
JSl47+jk2+O2kwqTKz6CaJ/Q+4Wu1XACVOGJz80KoQvlN/FTABEBAAGJAR8EGAEC
AAkFAlNlPGECGwwACgkQnHGj7EtW25zrnwgAuROa8bE/NTUmJ0wLrTJ5ZLgUqNC1
okVCcraQ4ce2rg0YxSoLvFLxYM/ZiVPUT2HLcm08z9yMqGLZLxo9FUJGJoUzN+JN
pE1Uo19lsUcjl1sGvHCZ20SnxY8dDdowLJTIyDvo/haiw35WBIfV1CL5yjt/KiM7
hI8VTJJasR1Z/+5XKOqxxJ/TdweZmOf7UkYDtuTCjp4+2M2gUQqsBPAVJOPyZgFF
ow3rxpQeDzH/Twx500q6hfcKEJKw0/v2rk+zhFPB1j98xRZ97eUw6hdt3g7JOSEl
g5WINq3Piv9KI61pjUedutg1Z7Nexil8vRP3Kir7W3BR98kLLKEpnAnT2Q==
=gPpa
–—END PGP PUBLIC KEY BLOCK–—

-1:-- Gnus:用 GPG 加密邮件 (Post Wenshan)--L0--C0--October 12, 2014 12:59 PM

Jason McBrayer: Running Emacs on an Android tablet

One of the things I've always wanted in a portable computer is the ability to run Emacs. The main reason is that since 2005 or so, my whole life has been run in org-mode, and, slightly before that, in howm. So, of course, when I got a low-end Android tablet, an Archos 70, of course, I...didn't install Emacs on it. As EmacsWiki implies, there's no perfectly obvious way to do so. And, there's MobileOrg-Android. When I first got my tablet, MobileOrg-Android was pretty bad. But it got better. Today, it's got a great user interface, syncing is fast and generally reliable, and there's an active core group of developers who are constantly adding features and contributing back to org-mode itself.

But...after quite a bit of trying, I still haven't made the MobileOrg workflow work for me. I keep my org files in a Mercurial repository on my home machine, and carry a clone with me. I run org-mobile-push and org-mobile-pull from the home repository, which requires it to be up to date, which usually can be done without manual intervention, but not always. And both pushing and pulling can make changes, which have to be committed. And you really have to sync on the mobile device twice: once before you push/pull, and once after, if you want the desired effect of pushing all your changes and captures to the repository, and having them all reflected on your device. The MobileOrg workflow is based on the idea that your mobile device doesn't have the horsepower to compute agendas on the fly. But is that true these days? I'll return to that issue later.

After seeing that some people had successfully run an Ubuntu user environment in a chrooted loopback filesystem on a similar tablet, I decided to try to get my Emacs that way. It didn't exactly work out right a way, and it took me quite a while to make time for the yak-shaving involved. Finally, I did, but with my preferred GNU/Linux distribution, Fedora.

Overview (the short version, aka tl;dr)

My sdcard is formatted ext3, and has the Fedora 13 rootfs unpacked into it. From a root prompt in ConnectBot, I bind-mount some required special filesystems under Fedora's root, then chroot into it, and start sshd. Then I can ssh into localhost with ConnectBot and run Emacs (and other things).

Longer version

Don't take this as a step-by-step instruction guide. What works and doesn't work on my device is likely to be quite different from what works and doesn't work on yours (unless yours is an Archos Gen8). This is really more to give you an idea of the kind of yak-shaving involved in getting this working.

First I rooted my tablet. I would have done this even if I weren't planning on running Emacs. For reference, the tablet is an Archos 70, running the latest version of the stock (Froyo) firmware, with a rooted initramfs.

Then, I tried installing the Ubuntu loopback images mentioned above. This didn't work for me, because the stock Archos kernel doesn't include the loop device, and for some reason, even when I built custom kernels with the loop device enabled, I couldn't get it to work.

Fortunately, my device has a microSD card slot, which is above and beyond the internal storage that the Archos firmware treats as an sdcard for the purposes of App2SD and so forth. I formatted a card as ext3, and tried to unpack the Ubuntu image onto it. This should have worked, but for some reason, my tablet didn't like having so much data pushed onto it over USB, and I lost the enthusiasm I needed to work on it.

Later, I unpacked the Fedora 14 ARM root filesystem more successfully, and tried chrooting into it, only to find that my kernel was too old for the version of glibc in Fedora 14. This also tragically sapped my motivation, causing me to stop working on it again for a while.

When I got another round tuit, I started with the Fedora 13 ARM root filesystem, and it worked pretty straightforwardly. This is what I did:

# umount /mnt/storage/sdcard
# mount -o noatime,nodiratime /dev/block/mmcblk2p1 /mnt/storage/sdcard

The sdcard is mounted with the options nodev,noexec,fmode=0666, and several other options that would make running it as the root filesystem of a normal linux slightly inconvenient. Some of the other parameters could be reset with mount -o remount,blah,noblah, but there doesn't seem to be a way to do that for fmode and dmode, so unmount and remount it is.

# cd /mnt/storage/sdcard/fedora
# mount --bind /dev dev
# mount --bind /dev/pts dev/pts
# mount --bind /proc proc
# mount --bind /sys sys

Now mount the various special filesystems that Fedora is going to need, that are provided by the kernel.

# chroot . /bin/bash -
# service sshd start

Now chroot into the Fedora environment, and start sshd. I've omitted some other stuff, like setting a (new?) password on the root account, and so forth. Technically, even starting sshd isn't necessary. You can just chroot into Fedora and run what you want to. Having sshd running makes it easier to reconnect to the Fedora environment without having to go through the process of cd'ing and chrooting to the Fedora directory.

From here on out, it's just installing stuff with yum. I've tried to avoid installing anything except what I particularly need.

# yum install -y emacs-nox git mercurial aspell aspell-en \
  diffutils patch man screen

What works

  • Installing things with yum!

    There are things in the Fedora repositories that aren't supported on ARM, but I haven't had cause to install them yet.

  • Emacs!

    Fedora 13 had Emacs 23.2.1, which is not exactly the latest and greatest, but it's not old enough to cause serious compatibility problems, either. I used hg to pull in my emacs startup code from my desktop, then created a mobile branch to strip it down and remove features I wouldn't be using, and to change paths to work with my mobile setup. Everything works as expected.

    Emacs startup is surprisingly snappy. I had slower emacs startup times on my desktop as recently as 5 or 6 years ago, and this isn't exactly a fast tablet.

    You might think it would be hard to use Emacs with a mobile keyboard, but Hacker's Keyboard takes care of that, by and large. It's still an onscreen keyboard, but it's an onscreen keyboard with all the keys you'd expect on a standard PC keyboard.

    Color themes work, as long as they would work under xterm-256color. Sorry for not including a nice one in the screenshots, but those were taken right after I got emacs running.

  • Org-mode!

    This was where I had some concerns going in. The design of org-mobile was premised on the idea that mobile devices didn't have enough oomph to generate agendas on the fly, so emacs pushes pre-generated agendas. I have fairly large org-mode files. They'd be smaller if I archived to file more often, but I don't. So, is emacs on my tablet able to generate my agendas?

    The answer is yes, mostly. The first time I run org-agenda, emacs spends a very long time reading in my org-mode files; I suspect that the slow sdcard I'm running this from may be part of the problem. The first time, it was 30s, but similar 'cold' agenda startups have been around 10s since then. Subsequently, however, the agendas are generated perfectly quickly.

    All in all, my orgmode workflow works perfectly on the tablet, with the exception that hg tries to use vimdiff to do merges, for some reason!

    Also, one other issue is that since I am using emacs in a (local) terminal window, I have to use the alternate tty keys.

What doesn't work well

  • Writing a lot.

    This is not exactly a surprise. Unless I go to another machine and ssh into my tablet (and what would be the point?), I'm constrained to use the onscreen keyboard. And not only that, it's worse trying to write with the onscreen keyboard in a regular Android app, because the predictive text is not active in ConnectBot.

    If I had a small hardware keyboard, I'd be more inclined to do actual writing on this setup.

    Another alternative is to let Emacs do the text completion, using either Predictive Mode or auto-complete. However, while both of those do prose completion fairly well (different strengths), neither does autocorrection, which is just as important with a soft keyboard.

  • Leaving an Emacs session running all the time

    I'm used to never exiting Emacs. On my desktop/home-server machine, Emacs is started for me by systemd, which runs it with --daemon, and restarts it if it should ever crash. On my tablet, I started out by running it under screen, and switching back to it as needed. It turns out that this is fine, as long as I want to stay in the Fedora environment, but it doesn't leave enough memory for my usual set of Android apps to perform normally.

Conclusion

I haven't tried the next logical step, which would be to install Xvnc and its dependencies, and to run a local X session, to be displayed in an Android VNC client. I may not do so, because it looks like the keyboard situation in the main free Android VNC clients is not much better (if at all) than in the terminal, in terms of having the full set of keysyms available. And it is worse, in that in ConnectBot, Emacs's screen gets resized to accommodate the soft keyboard, whereas in VNC, the soft keyboard sits on top of part of the display area, which is not resized.

On the whole I'm happy with this experiment. I don't think it will replace my use of Jota for note taking, because of the text auto-completion and auto-correction issue. I'm not sure whether it will completely replace MobileOrg for me. I'm enjoying finding out.

-1:-- Running Emacs on an Android tablet (Post)--L0--C0--July 20, 2012 01:50 AM

Emacs中文网: windows ĺšłĺ°ä¸‹ç”¨ emacs çź–čž‘ evernoteďźˆéƒ¨ç˝˛çŻ‡ďź‰

ä˝œč€…: 吴遼

čŽ°çŹ”čŽ°ćœ€çˆ˝čŽŤčż‡äşŽďźšç”¨ emacs çš„ org ć¨Ąĺźçź–čž‘ć–‡ćœŹďźŒĺ†ä¸Šäź ĺˆ° evernote ä¸Šă€‚ĺ˝“ç„śčż™ä¸Şâ€œçˆ˝â€ďźŒć˜Żćœ‰äťŁäťˇçš„ďźŒäšŸć˜Żćœ‰é™ĺşŚçš„ă€‚

ćˆ‘çš„č˝Żäťśç‰ˆćœŹ

emacs24 + ruby193 + evernote-mode r198 + w3m(ĺŻé€‰)

ruby

ĺœ¨ windows ĺšłĺ°ďźŒćœ€ĺżŤçš„ĺŠžćł•ć˜Żä¸‹č˝˝ rubyinstaller——rubyinstaller.orgďźˆč˛Œäźźč˘Ťĺ˘™ćŽ‰äş†ďź‰ďźŒć‰€äťĽćˆ‘ć‰žĺˆ°äş†ĺŚä¸€ä¸ŞćĽćşâ€”â€”http://rubyforge.org/frs/?group_id=167&release_id=44412。 ĺŽ‰čŁ…ć˜ŻčŽ°ĺž—čŽžç˝Ž ruby çš„çŽŻĺ˘ƒĺ˜é‡ďźŒä¸ç„ś emacs ĺŻčƒ˝ć‰žä¸ĺˆ° ruby 命䝤。

evernote-mode

ç›Žĺ‰ćœ€ć–°çš„ç‰ˆćœŹć˜Ż evernote-mode-0_41.zipďźŒĺťşčŽŽä˝żç”¨ svn ä¸‹č˝˝ă€‚č§ŁĺŽ‹ĺŽéź ć ‡ĺŒĺ‡ť ruby/setup.rbďźŒĺłč‡ŞĺŠ¨ĺŽ‰čŁ… ruby ĺş“ă€‚ďźˆĺœ¨ć­¤äš‹ĺ‰ĺ…ˆĺŽ‰čŁ… ruby 将 evernote-mode.el ĺ¤ĺˆśĺˆ° emacs ĺŻäťĽć‰žĺˆ°çš„ç›Žĺ˝•ä¸‹ă€‚ĺœ¨ .emacs ć–‡äťśé‡ŒćˇťĺŠ ĺŚ‚ä¸‹äťŁç čŽžç˝Žă€‚

1
2
3
4
(setq evernote-username "mail@domain.com")
(setq enh-enclient-command "C:/Ruby193/bin/enclient.rb")
(require 'evernote-mode)
(setq evernote-enml-formatter-command '("w3m" "-dump" "-I" "UTF8" "-O" "UTF8"))

w3m

ĺŻäťĽä¸‹č˝˝ćşç č‡Şĺˇąçź–čŻ‘ä¸€ä¸ŞďźŒćˆ‘ć˜Żĺœ¨ç˝‘ä¸Šć‰žĺˆ°ä¸€ä¸ŞçŽ°ćˆçš„ă€‚w3m ć˜ŻĺŻé€‰çš„ďźŒä¸şäť€äšˆčż™ć ˇčŻ´ĺ‘˘ďźŸevernote çš„çŹ”čŽ°ä¸ťčŚćœ‰ä¸¤ç§ć źĺźďźštext ĺ’Œ xhmtlďźŒĺŚ‚ćžœć˜Ż text ć źĺźďźŒé‚Łäšˆĺ°ąä¸éœ€čŚ w3mďź›ĺŚ‚ćžœć˜ŻxhtmlďźŒé‚Łäšˆĺ°ąčŚ w3m ćĽć źĺźĺŒ–ďźŒä˝żĺ…ść­ŁçĄŽć˜žç¤şă€‚ĺŚ‚ćžœć˛Ą w3mďźŒé‚Łäšˆĺ°ąäźšçœ‹ĺˆ°ĺžˆĺ¤šçš„ html 标筞。

FAQ

emacs ć‰žä¸ĺˆ° ruby, enclient.rb

ĺŚ‚ćžœĺœ¨ĺŽ‰čŁ… ruby çš„ć—śĺ€™ćœ‰čŽžç˝ŽçŽŻĺ˘ƒĺ˜é‡ďźŒĺšśĺŒĺ‡ťäş† setup.rbďźŒĺ°ąä¸äźščż™äş›é—Žé˘˜ă€‚äšŸĺŻäťĽĺœ¨ emacs é‡ŒčŽžç˝ŽçŽŻĺ˘ƒĺ˜é‡ă€‚

1
2
3
4
5
6
7
8
9
10
11
(setenv "PATH" (concat "C:/devenv/bin;"
                       "C:/MinGW/bin;"
                       "C:/MinGW/msys/1.0/bin;"
                       "C:/MinGW/msys/1.0/local/bin;"
                       (getenv "PATH")))
 
(setq exec-path (append exec-path '("C:/devenv/bin"
                                    "C:/MinGW/bin"
                                    "C:/MinGW/msys/1.0/bin"
                                    "C:/MinGW/msys/1.0/local/bin"
                                    )))

can’t convert nil into String

ĺŚ‚ćžœĺ‡şçŽ°čż™ä¸Şé—Žé˘˜ďźŒĺžˆĺŻčƒ˝ć˜Ż evernote-mode(文䝜 enclient.rb)çš„ç‰ˆćœŹä¸ĺ¤Ÿć–°ďźŒr198 ç‰ˆćœŹäťĽĺŠ fix 这个 bug。
试试用 svn ć‹żćœ€ć–°çš„äťŁç ďźš

svn checkout http://emacs-evernote-mode.googlecode.com/svn/trunk/ emacs-evernote-mode-read-only

cygwin warning: MS-DOS style path detected

čŽžç˝ŽçŽŻĺ˘ƒĺ˜é‡čƒ˝ĺż˝ç•Ľčż™ä¸ŞćŠĽč­ŚďźŒĺ˜é‡ĺä¸ş CYGWINďźŒĺ€źä¸ş nodosfilewarning

ćœ‰é—Žé˘˜ć€Žäšˆč§Łĺ†ł

evernote-mode çš„ĺŽ˜ç˝‘ć‰žć‰žćœ‰ć˛Ąćœ‰çąťäźźçš„é—Žé˘˜ă€‚
ćˆ‘äźšç”¨ edebug-defun ĺ•ć­Ľ evernote-mode.le çš„äťŁç ďźŒé‡čŚçš„ĺ‡˝ć•°ćœ‰ evernote-login, enh-command-login, enh-command-issue, enh-command-with-auth 等等。

ĺ‚č€ƒčľ„ć–™

ĺˆ†äşŤĺŽś:Addthis中国

相关旼志

-1:-- windows ĺšłĺ°ä¸‹ç”¨ emacs çź–čž‘ evernoteďźˆéƒ¨ç˝˛çŻ‡ďź‰ (Post bigclean)--L0--C0--May 28, 2012 12:50 PM

Jason McBrayer: Instapaper client for Emacs

I'm a serious user of Instapaper, a web site that describes itself as "a simple tool to save web pages for reading later". It's rather more than that, though: it will also reformat pages for distraction-free reading, much like the now-defunct Readability bookmarklet, it works as a social bookmarking service (though I don't really use this functionality), and it will bundle your pending reads into an ePub or Mobipocket ebooklet. There is an official freedom-hating iOS app, and several unofficial Android apps; the one I use is iPaper, which is still a little freedom-hating, but provides offline reading, which just using the website doesn't, barring a strict ePub export/sync routine or some futzing around with wwwoffle or similar.

I use Instapaper to push articles that would otherwise cut into my productive time into my less productive time: adding them from my browser, syncing with iPaper once or twice a day, and reading mostly in the evenings. For saving articles, I mostly use the Firefox add-on Instaright, which is handy because I can add links without following them. Most of the articles I save for later come from Google Reader, which I use mainly from Firefox, so that works well. What didn't work so well was my other main source of linkspam: identi.ca. I use identica-mode for my microblogging needs, so saving a link from identi.ca means a trip from emacs -> follow link to dent or site in Firefox -> Instaright. Obviously this is far too much opportunity to be tempted to read the article now rather than later, so I wrote an Instapaper client for Emacs.

The code is on bitbucket, and the instructions for using it are in the source header. It should be fairly self-explanatory. It saves URLs to your Instapaper account, and can get them either manually, by url-at-point, or, if you have w3m installed, from the current w3m page's URL or selected link. It doesn't provide any services for reading from Instapaper (offline or otherwise), and because of the terms of service on the official API and my lack of desire to do screen-scraping in Emacs Lisp, I don't plan on adding any. A combination of w3m and wwwoffle or polipo is probably your best bet if you need to read Instapaper in Emacs.

Edited to add: Naturally, when I released this, it contained a significant bug, to whit: due to changes in url.el, it only worked in Emacs 24. This has been fixed, though if you byte-compile it under Emacs <= 23, you will get a compile warning.

-1:-- Instapaper client for Emacs (Post)--L0--C0--April 18, 2011 09:00 PM

Jason McBrayer: Todochiku notifications in identica-mode

Just a quick response to Gabriel Saldaña's recent post on identica-mode notifications: the code for using todochiku for identica-mode notifications is as follows:

(add-hook \'identica-new-dents-hook
  (lambda nil
    (let ((n identica-new-dents-count))
      (todochiku-message \"Emacs Identica-mode New dents\"
                         (format \"You have %d new dent%s.\" n (if (> n 1) \"s\" \"\"))
                         (todochiku-icon \'social)))))

The advantage of using todochiku here is that you can let it handle talking to different notification systems (KDE vs. Gnome vs.Growl on MacOS vs Snarl on MS Windows), and have the same configuration everywhere.

-1:-- Todochiku notifications in identica-mode (Post)--L0--C0--January 04, 2011 05:00 PM

Jason McBrayer: bbcode-mode.el: a simple emacs mode for editing bbcode

A couple of years ago, I looked for a bbcode mode for Emacs, and, not finding one, wrote a very simple derived-mode for it. For some reason, syntax highlighting only worked intermittently, which I didn't have time to put too much effort into trying to fix, and so I didn't actually release the code for public consumption. Recently, though, I saw on Planet Emacsen an explanation for why it wasn't working; I've tried to find that post to link to it and credit the author, but unfortunately, I can't.

Anyway, having fixed the font-locking issue, I've released bbcode-mode.el at bitbucket. In the process of releasing it, I searched for other bbcode modes to make sure I wasn't taking a name that was in use. It turns out that in the meantime while I wasn't releasing my bbcode mode, Xah Lee released another, xbbcode-mode. The two modes are rather different in design, so depending on your tastes, you might reasonably prefer either one or the other.

A side note: I wish bitbucket supported org-mode README files like github does.

-1:-- bbcode-mode.el: a simple emacs mode for editing bbcode (Post)--L0--C0--April 07, 2010 10:43 AM

Jason McBrayer: Fedora 12 upgrade

So, I upgraded from Fedora 10 to Fedora 12 over Thanksgiving weekend. I had skipped the Fedora 11 upgrade because of a bug in either preupgrade or the F11 install images used by preupgrade. By the time I got a round tuit to try upgrading to F11 again, F12 was a week from being out, so I just waited, then used the F12 preupgrade. It went very quickly, and fairly smoothly. These are the problems the upgrade caused me, sorted into fixed and not-yet-fixed.

Problems fixed:

  • Had to reinstall lots of python libraries (had been built for 2.5, needed in 2.6) in order to get my websites to work. This was expected, though more packages were affected than I had expected.
  • I had quite a few problems merging my old dovecot and postfix config files with the new ones, which resulted in the household not getting any mail for a few days. This was mostly my fault, though.
  • Any sound played through pulseaudio was accompanied by a horrifying hissing noise except when the volume was at a single specific value. This turned out to be a problem with my sound device's ALSA driver and the "glitch-free" playback in pulseaudio. This is despite the fact that I have snd_via82xx, which is supposed to work. Changing pulseaudio's settings to add 'tsched=0' to anything that might load a hardware module solved it, but not until after a reboot. Probably an old pulseaudio process was hanging around from one or another user and keeping the old settings active.
  • Gnome menus have old legacy things in them that they're not supposed to. I have to fix this with every dist-upgrade.

Not fixed yet

  • Old VMWare doesn't work with the new kernel. On the laptop, which runs Ubuntu, I'd already run into this and upgraded VMWare to solve it. I'll have to do this here in the next week or so.
  • Some of my policy settings (like letting sound continue playing when you switch users) have been lost, and since there is no longer any admin GUI for PolicyKit, there's no obvious way to fix this. I find this annoying, because my audio is played by mpd, the whole point of which is to play music when run as someone other than the active logged-in user. Adding some group memberships may fix it... have to see after restarting some services.

Conclusions

Fedora 12 seems nicely put together, and the upgrade was, though not the smoothest, smoother than many others I've gone through in the past.

-1:-- Fedora 12 upgrade (Post)--L0--C0--November 29, 2009 03:00 PM

Jason McBrayer: Getting html articles in Gnus to obey browse-url-browser-function

I use Gnus for email, and frequently get emails with an html part. In some cases, I even want to receive emails with an html part, as with RSS feeds that have been translated to Gnus groups via rss2email, in which I sometimes want to see images inline so I don't have to click through to the original article. Like most people viewing html emails in Gnus, I let emacs-w3m handle the translation of html to text. The problem with this is that then hitting return on a link will use w3m to follow the link, not the browser you have specified in browse-url-browser-function.

This little code snippet fixes that. I'm not sure it's ideal in all ways. But it works for me currently.

(eval-after-load "w3m"
  '(progn
     (defun jfm/open-url-dwim (&optional url)
       (interactive)
       (if (equal browse-url-browser-function 'w3m-browse-url)
           (w3m-browse-url url)
         (if (equal (face-at-point) 'w3m-anchor-face)
             (w3m-view-url-with-external-browser url)
           (browse-url url))))
     (define-key gnus-article-mode-map (kbd "<return>") 'jfm/open-url-dwim)))
-1:-- Getting html articles in Gnus to obey browse-url-browser-function (Post)--L0--C0--July 02, 2009 11:30 AM

Jason McBrayer: Random system beep sounds for Fancy beeper

Akkana Peck writes about her approach to using Fancy Beeper to provide random system beeps on a system with no built-in system beep. I'm thrilled to see that people are actually using Fancy Beeper in the wild and are building their own solutions around it.

-1:-- Random system beep sounds for Fancy beeper (Post)--L0--C0--June 18, 2009 10:30 AM

Jason McBrayer: stockphoto on bitbucket

So, development of stockphoto, my Django-based photo gallery application has been languishing for a long time. Like, three years long. Like since Django 0.96 long. Mostly, that was kind of okay, because it is a tiny application, and it was working perfectly within its limited domain, until the release of Django 1.0. I had been wanting to fix it up before the Django 1.0 release, but never got a round tuit.

After my daughter was born, I needed to use it to show baby pictures to our family, so I had the motivation to at least fix stockphoto up to work with a current Django release. This is done; it mainly involved fixing up the model code, switching to forms from oldforms, fixing up the URLs, and fixing zipfile import to work with the new upload API. I have put the fixed code on bitbucket. If you pull from tip at that repository, or download a snapshot of tip from the downloads page, you will have a stockphoto package that works on Django 1.0.

This isn't quite a release though; it needs a few cleanups before I can push out an 0.3 release:

  1. Update documentation
  2. Since there were some small model changes, I need to provide a way of migrating from 0.2.1. I am leaning towards South for providing this.
  3. Remove dead code

There won't be any new features in stockphoto 0.3 except for non-browseable galleries (which is already in bitbucket, since I wanted it for my daughter's site). I'm tentatively planning a 0.4 release that will have the features originally intended (since so many years ago) for 0.3, plus some suggested to me in email.

If you're interested in using stockphoto, please follow it on bitbucket, and send me any patches you find useful.

-1:-- stockphoto on bitbucket (Post)--L0--C0--June 17, 2009 04:15 PM

Jason McBrayer: identica-mode.el update

I’ve written a little update of Gabriel Saldana’s identica-mode.el, which wasn’t working on identi.ca as it currently stands, or at least not with a current Emacs. The updated version is posted on EmacsWiki. Expecting some updates from Matt in Chicago to fix @links, and planning to add support for !groups and #tags, maybe some more faces.

-1:-- identica-mode.el update (Post)--L0--C0--February 12, 2009 04:22 PM

Jason McBrayer: Inspired by xkcd

Oracle's a well-known dee-bee
But there's also many freebies.
How should you the choices cull?
Choose one where '' IS NOT NULL.
BURMA SHAVE

Now thank your lucky stars I didn't post the lines one at a time as article titles to get them to show up one-by-one in Planet Emacsen.

-1:-- Inspired by xkcd (Post)--L0--C0--October 22, 2008 11:30 PM

Jason McBrayer: Wrapper script for emacs using --daemon

For quite a while, I've used a variety of scripts for starting emacs, starting with dtemacs from gnuclient, which I modified in various ways to work the way I wanted it with Gnome and from the command line. The new daemon-mode in CVS emacs, combined with multi-tty, makes it a bit simpler to write a script that you can use to edit files from your desktop environment, from a command-line with or without X available, or as an external editor from a mailer, VCS or web-browser. I've re-written the latest version of my emacs wrapper in terms of daemon-mode, and present it here. It's rather shorter than my pre-daemon-mode script, and does rather more. Apologies for my bad shell-scripting style.

#!/bin/sh  

# em: a script for starting emacs as needed.  

EMACSCLIENT=emacsclient  
EMACS=emacs  

if [ -z \"$DISPLAY\" ]  
then  
    CLIENTARGS=\'-t\'  
    CLIENTNEWARGS=\'-t\'  
else  
    CLIENTNEWARGS=\'-c -n\'  
fi  

function start_daemon() {  
    echo -n \"Starting emacs in the background...\"  
    $EMACS --daemon  
    while ! $EMACSCLIENT --eval t >/dev/null 2>&1  
    do  
        sleep 1  
    done  
    echo \"ok.\"  
}  

if [ -z \"$@\" ]  
then  
    if $EMACSCLIENT $CLIENTNEWARGS 
    then  
        exit 0  
    else  
        start_daemon  
        $EMACSCLIENT $CLIENTNEWARGS  
    fi  
else  
    if ! $EMACSCLIENT $CLIENTARGS \"$@\" 
    then  
        start_daemon  
        $EMACSCLIENT $CLIENTARGS \"$@\"  
    fi  
fi
-1:-- Wrapper script for emacs using --daemon (Post)--L0--C0--October 12, 2008 11:00 PM

Jason McBrayer: Underappreciated emacs function: just-one-space

I want to very briefly praise the probably-underappreciated emacs command just-one-space. It is on M-SPC by default, and what it does is replace all the spaces and tabs around point with one space (or prefix-arg number of spaces). That's nothing terribly fancy, but it's one of those little things that can let you save so many keystrokes when you're reformatting text. That and transpose-chars are among the little touches that make emacs so much more convenient than a bog-standard text editing control.

-1:-- Underappreciated emacs function: just-one-space (Post)--L0--C0--October 08, 2008 10:10 AM

Jason McBrayer: Using Windows Search with anything.el

In a previous post, I said that I wished there were a command-line client for Windows Desktop Search (or Windows Search, or whatever M$ is calling it this week) that would give back filenames in a way useful to anything.el. Well, that comment was not entirely ingenuous, because in the time between when I wrote that article and when I posted it, I wrote one. It's written in Python, and uses the win32com module, so you'll need regular w32 Python installed (not Cygwin python).

The script itself is here. I recommend that you install it somewhere on your PYTHONPATH. This is because command-line argument handling is very dodgy on w32, particularly when the program is interpreted, the interpreter is a native w32 program (not cygwin), and you may be calling it from a cygwin program (such as cygwin bash). More details on installing it and its limitations on its own page.

Integrating it into anything: use the following elisp code:

(defvar w32-windows-search-program
  \"python.exe -m DesktopSearch\"
  \"Command to pass a search string to Windows Search.
Will be split on spaces to pass to start-process.\")

(defvar anything-c-source-w32-windows-search
  \'((name . \"Windows Search\")
    (candidates . (lambda ()
                    (apply \'start-process \"w32-windows-search-process\" nil
                           (append
                            (split-string w32-windows-search-program)
                            (list anything-pattern)))))
    (type . file)
    (requires-pattern . 3)
    (delayed))
  \"Source for retrieving files matching the current input pattern
with windows desktop search.\")

The given value for w32-windows-search-program depends on DesktopSearch.py being in your PYTHONPATH. With the above in your .emacs, you can add the source it provides (anything-c-source-w32-windows-search) to anything-sources just like any other anything source.

This generally works well enough for my needs. Hopefully it will be useful to other people using emacs on w32.

-1:-- Using Windows Search with anything.el (Post)--L0--C0--September 26, 2008 12:00 AM

Jason McBrayer: anything.el and "open with default tool" on w32

My job doesn't often offer the opportunity to "hack the good hack." A little while ago during toolsmithing time, I got to make a neat little hack to 'anything', an emacs package for locating files (or buffers, or info pages, or ... anything) and acting on them. Normally, use of 'anything' works like this: C-x C-a to start, then start typing something to search for, arrow down through the matches, and either select the default action (open the file or switch to the buffer) with RET, or hit TAB to switch to a list of actions to select.

Here's where the hack comes in. One of the actions you can perform on files is 'open with default command'. The catch: this is not implemented on W32, which I have to use at work. On unix and MacOS, it this action is implemented by calling an external program --- 'xdg-start' on unix, or 'open' on Mac-OS --- with the filename as an argument. There is no equivalent command on W32 -- the closest is the cmd.exe shell internal 'start'. But because 'start' is a cmd internal, it is hard to call from emacs; the quoting may be badly messed up, for example, depending on whether you use cmd.exe or cygwin sh as your shell, etc. But here's a better approach: leave it up to emacs. Emacs on W32 has a function 'w32-shell-execute' that works like cmd.exe's 'start' internal.

The code to integrate this is now added to anything-config.el, a package of sample configurations for Anything. I'm now co-maintaining anything-config.el.

The practical upshot of this is that I can use 'anything' to find my playlist files while in emacs, and start them with Windows Media Player. Now if only Windows Desktop Search let you get text-mode search results back, or if there were a version of Tracker for W32...

-1:-- anything.el and "open with default tool" on w32 (Post)--L0--C0--September 19, 2008 09:30 PM

Jason McBrayer: What I'm missing in Google Chrome: fast proxy switching

It's nice that Chrome has Incognito Mode. But how incognito is it when your network admin can monitor the content of your traffic? Wouldn't it be nice to be able to switch your network traffic to a secure channel – like an SSH tunnel to an http proxy under your control, or TOR?

Firefox has the 'Distrust' extension that provides the same protections as Chrome's Incognito Mode (other than the v. stylish fedora-wearing spy logo). And it also has your choice of extensions that let you switch proxies without going into the depths of the advanced settings menu: QuickProxy, SwitchProxy, FoxyProxy, and several TOR-specific extensions. Now if only Distrust had a setting that let one turn on their proxy for the duration of the Distrust session…

-1:-- What I'm missing in Google Chrome: fast proxy switching (Post)--L0--C0--September 18, 2008 10:15 PM

Jason McBrayer: What I'm Missing in Google Chrome: Mouseless browsing

In Firefox, I have the Mouseless Browsing plugin installed, which lets me hit a key to label links with numbers, then type the number to follow the link. But even without MLB, you can browse mouselessly with the typeahead search – type '/', then start typing the text of the link, and when the link you want is highlighted, hit enter. In Chrome, you can only tab between links, not jump directly to the one you want (even with the search function). That is, you can search for link text, and it will highlight it, but you cannot then select the link without tabbing to it from the beginning.

-1:-- What I'm Missing in Google Chrome: Mouseless browsing (Post)--L0--C0--September 18, 2008 08:00 PM

Jason McBrayer: What a fascinating quote:

From: http://www.mindview.net/WebLog/wiki-0051 (a comment on Bruce Eckel's weblog)

2004/03/12 10:02 EST (via web):

About the "directing" vs. "enabling" approach, you wrote: "Both approaches are reasonable and neither is wrong. I have been in both situations; for example, trying to prevent interns from ignoring or even actively circumventing coding style guidelines (where more "direction" was required), and on the other hand being frustrated by the loss of productivity that comes from being forced to conform to constraints that I wouldn't have violated anyway [...]?".

It is interesting that you justified the "directing" approach with an example about directing others, and the "enabling" approach with an example about enabling yourself. Don't take this as a negative critique - I did the same when I tried to come up with examples of directing/enabling.

I tend to think that others should be directed, and I should be enabled. I worked for teams whose job was developing software methodologies and the relative supporting tools for the rest of their Company. Except that, of course, they flat-out refused to apply the (directing, strict) methodologies that they were developing to their own methodology-building project. To me, that shows how much in software development is about our own relationships and fears. We still have an awful lot to learn from sociology and antropology - and maybe, oriental philosophies.

Paolo Perrotta Bologna, Italy

I prefer "enabling" approaches everywhere, and agree with the statement that if you have someone who can't handle an enabling approach, they don't need directing, they need training. But many people (especially in corporate IT) would argue that this places too high a bar on experience and education for programmers. Still, I'd rather see enabling done technologically, and where direction is needed, see it done socially.

-1:-- What a fascinating quote: (Post)--L0--C0--March 24, 2008 11:00 PM

Jason McBrayer: Stockphoto 0.2.1 released

I've just released stockphoto 0.2.1. This is a bugfix release and contains no new features relative to 0.2. I would like to thank many people for bug reports on the previous version; plese see the credits in the README file.

I'll be opening development on stockphoto 0.3 once I decide the best way to host a public version control repository (Google code vs. Savannah, vs self-hosting). The pre-0.3 branch will include new features, some of which are listed as to-dos in the current README.

-1:-- Stockphoto 0.2.1 released (Post)--L0--C0--November 13, 2007 08:11 PM

Jason McBrayer: Hushmail: not so hushed, aktuly.

No original reporting or opinions here. Wired has a story on how Hushmail can and will turn over plaintext emails if they receive a Canadian court order. This means that while Hushmail provides good protection against on-the-wire snooping, it doesn't protect Alice and Bob if Mallory is in law enforcement.

I've recommended Hushmail to friends and neighbors in the past, as a way of easing them into the idea of using encrypted email on a regular basis. When I read this news, I felt I had to email people that I had recommended it to, to let them know about the weakness. Hushmail could set up their systems so that they never store a passphrase except in volatile memory, and so that they never store plaintext of messages. But you'd have to trust them on that, and a court order could still mandate that they store them, and not tell you they were doing it.

The best thing would be for everyone to use GNU Privacy Guard on their own computer. But it can be hard to set up, especially for Windows users (though if you're running Windows, you have bigger security problems), and your correspondents have to all be using GnuPG or OpenPGP, too. This is a big barrier to entry, and even though I'm set up to use it, very little of my total volume of email is routinely encrypted as I'd like it to be. There is also the problem of people without their own computers, who must use shared resources such as public library computers. Hushmail appeared to be the most viable option for them.

If you are interested in using GnuPG, you might look into the Enigmail plugin for Mozilla Thunderbird as a cross-platform solution. If you're already using Linux, Evolution groupware provides easy-to-use GnuPG support. If you want to send me encrypted email, you can download my public key, the fingerprint of which is C046 0E26 8103 ABA1 68B1 D6E7 A991 E701 91DF 7DDD.

-1:-- Hushmail: not so hushed, aktuly. (Post)--L0--C0--November 09, 2007 01:16 AM