The Yak Shaver
さあ、今日も毛を刈ろう。
skip to main
|
skip to sidebar
2013/04/25
CSS の margin パラメータ数の違い
たまに CSS を書くと毎回忘れているのでメモです。 margin、padding、border などに適用するときの、上下左右の指定方法です。 - パラメータ4つ margin: U R D L - パラメータ3つ margin: U RL D - パラメータ2つ margin: UD RL - パラメータ1つ margin: ALL 未だに、3つ指定したときのが覚えられない…
2013/04/23
Pyhton で JPEG画像を添付してメールを送信
前回の、 [Pyhton で GMail の smtp で UTF-8 なメールを送信](http://yak-shaver.blogspot.jp/2013/04/pyhton-gmail-smtp-utf-8.html) のつづきです。 今回は JPEG画像を添付してメールを送ります。 テキストだけのメールであれば MIMEText()で用意したメッセージだけでいいのですが、添付ファイルをつけるとそれ以外に2種類のメッセージが必要になります。 - 本文テキスト用 MIMEText() - 添付ファイル用 MIMEImage() - コンテナ用 MIMEMultipart() ここで、添付ファイル用のメッセージはファイルごとに必要です。 ですので、添付画像が1つであっても合計で3つのメッセージが必要ということになります。 コンテナ用のメッセージの中に、他の2種類を格納して送信します。`From` や `To` を設定するのは、コンテナ用のメッセージに対して行います。
2013/04/19
Elisp のトグル動作や内部カウンタはクロージャを使う
よく忘れるので、メモしておきます。 トグル動作をさせたい場合や、内部のカウンタを使いたいときは、スタティック変数が欲しいところです。 Emacs Lisp ではクロージャを使えば可能です。 (defun cage1 () (lexical-let ((v 0)) (defun func1 () (setq v (1+ v))))) ; C-x C-e これを評価すると、`cage1` という関数が定義されます。しかし `cage1` 関数自体はコールされてないため、`cage1` の中にある `func1` 関数はまだ未定義です。 なので、`func1`をコールしたいと思っても、 (func1) ; C-x C-e Debugger entered--Lisp error: (void-function func1) (func1) eval((func1) nil) eval-last-sexp-1(nil) eval-last-sexp(nil) call-interactively(eval-last-sexp) eval-region-or-last-sexp() call-interactively(eval-region-or-last-sexp nil nil) となり、エラーが発生します。 一旦 `cage1` をコールしてやれば、 `func1` が定義されるので、それ以後は問題なく `func1` をコールできるようになります。 (cage1) ; C-x C-e (func1) ; C-x C-e => 1 (func1) ; C-x C-e => 2 (func1) ; C-x C-e => 3 ここでもし 変数 `v` がグローバル変数なら、外から値を変更できてしまいます。しかし、この `v` はレキシカル変数(この場合 `cage1` 内部にある、一種のローカル変数)なので、外から変更できません。 外から変更しようとして、下のようにしても (setq v 100) ; C-x C-e (func1) ; C-x C-e => 4 (func1) ; C-x C-e => 5 というぐあいに、`func1` が 101, 102, ... を返したりはせず、カウンタの動作として正しい値をカウントし続けます。 つまり、100 を setq した `v` と `func1` がカウンタに使っている `v` は別物ということです。 カウンタではなく、トグル動作にしたい場合は (defun cage1 () (lexical-let ((v nil)) (defun func1 () (setq v (not v))))) とします。
2013/04/17
Google の Custom Search Engine で画像を検索するサンプル
Python から Google の Custom Search Engine を使って画像を検索するときに、いくつかハマりどころがありましたのでメモを残します。 あらかじめ、ライブラリはインストールしておきます。Python 用のライブラリのインストール等については、[このあたり](https://developers.google.com/api-client-library/python/start/get_started)を参照するといいと思います。 あと、GoogleのID などはあらかじめ取得しておき、Google API コンソールを使える状態にしておきます。 つぎに、APIキーが必要です。[ここ](http://code.google.com/apis/console)の 左ペインの API Access をクリックし、下の方にある `API key:` と書かれている 39文字の文字列がそれです。これをどこかにコピペしておき、あとで API を使うときに `developerKey` パラメータとして指定します。 つぎに、専用の検索エンジンの設定を作ります。[http://www.google.com/cse/all](http://www.google.com/cse/all) に行って検索エンジンを追加し、検索するサイトを `*.jp` とかにしておきます。 作成ボタン > コードを取得ボタン と押していくと、JavaScriptのコードが表示されます。このコードの `var cx = 'XXXX'` というのが 検索エンジンID です。 このIDをどこかにコピペしておき、あとで APIをコールするときに `cx` パラメータとして指定します。 つぎに、左ペインの 検索エンジンの編集 の下にあるプルダウンメニューで先ほど作成した検索エンジンを選択します。画像を検索したい場合は、ここで下図のように、画像検索をオンしておく必要があります。 ![画像検索をオン](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW4VWtx2qBZUljKjC86kftX7BKEMP1JSGcaqNk5jHbXRJ-F6q4pfnLujzk8i48EQc28Uz0LdLI32JXkGpDvnkLYUJHlymxSQ2pI5y7K__BWoQV9UrcVS-u6uLgtuMucAipWLy4yLzJ1ige/s320/Screen+Shot+2013-04-17+at+5.24.50+PM.png) あとは、下にあるコードをファイルに保存し、先ほどコピペした2つの文字列をコードに埋め込みます。 ####参考リンク - [Custom Search API のリファレンス](https://google-api-client-libraries.appspot.com/documentation/customsearch/v1/python/latest/customsearch_v1.cse.html) - [Googleを使った表記ゆれ検索](http://kinakomochi.6.ql.bz/?Google%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E8%A1%A8%E8%A8%98%E3%82%86%E3%82%8C%E6%A4%9C%E7%B4%A2) - [43.Google画像検索API。クエリを作って欲しい情報をゲット](http://www.garunimo.com/program/linux/linux43.xhtml)
2013/04/15
BloggerにGistを貼り付けると、前後に空行が入ってしまう
いつのころからか、ブログに Gist を貼り付けると、前後に5行ほど空行が入ってしまうようになりました。 といいますか、行番号の対応がずれてしまうのか、とにかく見栄えがよくありません。 ![before](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigq4iuk__gn0FxZhLsaJF2AWJJVn-2NdQe6dgwE8nXyFMUtsP288XMW2zD_sQhcCbcG319j0-KNq_zZVAWA5oLPk4_0nCV2svxi31QWCBMdwHw9KOeI3AvAgZ9qihtLbYwg0xdzOG0USXy/s1600/bef.png) 対策としては、[ココ](http://flatv.fdempa.com/2013/02/12/gist-css/) によると、CSS を追加してやれば良さそうです。 以下は Blogger での手順です。 ---- 1.Blogger にログイン 2.テンプレート > カスタマイズ > 上級者向け > CSS を追加 とたどり、下記を入力 /* for Gist */ .line-numbers, .line-pre > .line { font-size: 12px; line-height: 1.4; } 3.「ブログに適用」ボタンを押す。 ---- 以上です。これで、下のようになりました。 ![after](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0tl8vCykaoY_gX-gp4aGGf5oZi0h32aeJWTcVsc3SxF9B_-6F3RxDFkPBQCFhwdY47iPB-gzkFhAHwP9x3ATKUNdTZLjlLk58y0HhOCyYjkXc7LNw7IqAV3hcRWbInTKmwJ1wxSeNCu8f/s1600/aft.png) フォントも小さくなって、いい感じです。 なお、CSS のクラス名はときどき変わるようなので、もしまた崩れたら見直す必要がありそうです。 参考にさせてもらったサイト - [Gistを貼付けたときの行番号の表示ズレを直すCSS](http://flatv.fdempa.com/2013/02/12/gist-css/)
Pyhton で GMail の smtp で UTF-8 なメールを送信
Python でメールを送信すること自体は簡単です。 しかし、GMail のSMTPサーバーを使ったり、日本語のメールを送信しようとすると、ちょっとコツがいります。 いつも忘れてしまうので、サンプルとして残しておきます。 考えなければならないことは、 - 要ログイン (user, pass) - 要SSL (port 587) - 要STARTTLS - MIMEText は 要エンコード(UTF-8等) あたりでしょうか。
2013/04/12
MYO:腕の筋肉の動きを検知するコントローラ
![myo](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVJvm7GeLfDgJ0R1KX69KFzCd3BxnZgg0kA-26lgH1mghziPQE_jvm3gwSU8dMsQMpgLXPBTsPWasA25f8a-UfVWIsW88RfoO45I73_TbfDP0R6PIVjAlEFu-PCM7X3RrKjXx55ooh1bLd/s320/myo-800x453.png") [MYO:THE NEXT GENERATION OF GESTURE CONTROL](https://getmyo.com/) がとても気になります。 APIが公開されるというのもいいです。 スティーブ・ウォズニアックのコメントにもシビレました。 発売は来年の予定らしいですが、未来が買えると思えば、$149は破格に思えます。
2013/04/11
Google の検索結果に表示される 著者の写真を非表示に
検索結果に表示される、ページの著者の写真を消したいという話しです。 たぶん1年ほど前からではないかと思うのですが、検索結果にそのページの著者のサムネイル画像が表示されるようになりました。 ![before](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg7IPavOUBxAflP_UluVIcIeCP9oHdfkUxjtHHSDuNlb4CM4WWw9cbXLBC9aMLNSeT7XUpu7JNUSRBWj1m375YOexYoa-ZscQ6hn_4fHFZFaq3oB2d4NlJriDcIsUQWCljCA297bhYFJSu/s320/before.png) 検索するたびに、知らない人の顔がずらっと表示されるのは、ちょっと疲れます。 著者の方々には申し訳ないのですが、ブラウザのカスタムCSSを使って、この写真を非表示にしたいと思います。 まずは Google Chrome の場合です。 Chrome のカスタムCSSの場所は下記にあります。 Mac OS X ~/Library/Application Support/Google/Chrome/Default/User StyleSheets/Custom.css Windows 7, Vista C:\Users\<ユーザー名>\AppData\Local\Google\Chrome\User Data\Default\User StyleSheets\Custom.css Windows XP C:\Documents and Settings\<ユーザー名>\Local Settings\Application Data\Google\Chrome\User Data\Default\User StyleSheets\Custom.css ただし、これらは隠しフォルダの中にあるので、ターミナルやコマンドプロンプトを使わないと見つけられないかもしれません。コマンドラインが苦手な場合は、[Stylist](https://chrome.google.com/extensions/detail/pabfempgigicdjjlccdgnbmeggkbjdhd) などの機能拡張を使うと楽です。 あとは、この Custom.css ファイルを開き、下記の1行を追加して保存するだけです。 [id^=apthumb] { display: none; } これで、次回の検索から著者の写真が非表示になるはずです。 ![after](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfNqX67wYV8e-YrziZtyEDYoZMRYkNbJDQfxZd1XXBUyISlrN-I0T_YqMmzuOGw_qXxFLbkp80OVp3vE42rLo1YOsG2X-Ur2ryaNSa2mKuz1GnC2m0diWzhrsqBg8UaOOVHz_zgJKh3K9i/s320/after.png) 次に Safari (Mac) の場合です。 Safari も同じようにできますが、ファイルの指定方法が若干異なります。 Safari の場合は、上記の1行を書いたファイルを適当な名前で保存しておき、Safari > メニュー > 環境設定 > 詳細タブ > 「スタイルシート」プルダウンメニュー > 「その他...」と辿り、そのファイルを選択します。 Safari の場合は、上記操作の直後にサムネイル画像が非表示になります。 また、CSS3に対応していない古いブラウザでもできそうですが、その場合は、(すこし力技ですが)下記のようにすればいいと思います。 #apthumb1,#apthumb2,#apthumb3,#apthumb4,#apthumb5,#apthumb6,#apthumb7,#apthumb8,#apthumb9,#apthumb10 { display: none; }
Mac の Safari で Backspace (DEL) キーで前のページに戻るようにする
最近の Safari は なぜか Backspace (DEL) キーで前のページに戻ることができないです。 下記をターミナルで実行したあと、Safari を再起動すると希望の動作になると思います。 $defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool YES ####関係しそうなバージョン - Safari 6.0.3 - OS X 10.8.3 (Mountain Lion) ####参考にさせてもらったサイト - [Backspace (Delete key) in Safari Mountain Lion](https://discussions.apple.com/thread/4144444?start=0&tstart=0)
2013/04/10
Spotlight を grep find の代わりに
ack を入れてはみたものの、Mac では Spotlight があるのでもっと速いのできそうな気がしました。 Spotlightのコマンドライン版である `mdfind` で grep find の代わりになるシェルスクリプトを書いてみました。 gという名前で保存し、chmod +x して カレントディレクトリで文字列'hoge'を検索 $g hoge ディレクトリ'doko'で文字列'hoge'を検索 $g hoge doko ルートディレクトリで文字列'hoge'を検索 $g hoge / というぐあいに使います。 インデックスができていないと使えないのですが、Sportlightのインデクシングは素早いので個人的には十分実用になっています。
ack を MacPorts で入れてみる
[better than grepなackを試してみた](http://masutaka.net/chalow/2013-03-24-2.html) を読んで [ack](http://betterthangrep.com/) の存在を知りました。 brew でインストールすると楽そうなのですが、あえて MacPorts でやってみました。 ですが、正直めんどいですし特にいいこともないので、素直に brew か curl で入れたほうがいいと思います。 それでもやっぱり MacPorts の方がいいという粋な方は以下をどうぞ。 まずは、これです。 $sudo port install p5-app-ack これまた、ちょっと変な名前ですが、CPANモジュール的命名ということで気にしない(^^; で、入ってるだろうということで、試してみても $ack -bash: ack: command not found という感じで怒られます。 しかたないので、どこに入ったか調べます。 $port contents *app-ack Port p5-app-ack contains: /opt/local/share/doc/p5-app-ack/README Port p5.8-app-ack is not installed. Port p5.10-app-ack is not installed. Port p5.12-app-ack contains: /opt/local/bin/ack-5.12 /opt/local/lib/perl5/vendor_perl/5.12.4/App/Ack.pm /opt/local/lib/perl5/vendor_perl/5.12.4/App/Ack/Plugin.pm /opt/local/lib/perl5/vendor_perl/5.12.4/App/Ack/Plugin/Basic.pm /opt/local/lib/perl5/vendor_perl/5.12.4/App/Ack/Repository.pm /opt/local/lib/perl5/vendor_perl/5.12.4/App/Ack/Resource.pm /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-thread-multi-2level/auto/ack/.packlist /opt/local/libexec/perl5.12/ack /opt/local/share/perl5.12/man/man1/ack.1pm Port p5.14-app-ack is not installed. Port p5.16-app-ack is not installed. ということで、`/opt/local/bin/ack-5.12` が実行ファイルっぽいので、これをパスの通ったところにSymリンクしておきます。 $sudo ln -s /opt/local/bin/ack-5.12 /usr/local/bin/ack これでやっと使えるようになりました。 $ack --version ack 1.96 Running under Perl 5.12.4 at /opt/local/bin/perl5.12 Copyright 2005-2011 Andy Lester. This program is free software. You may modify or distribute it under the terms of the Artistic License v2.0. テストです。 $ack --nogroup defvaralias auto-complete/auto-complete.el:139:(defvaralias 'ac-user-dictionary-files 'ac-dictionary-files) auto-complete/auto-complete.el:167:(defvaralias 'ac-candidate-menu-height 'ac-menu-height) auto-complete/auto-complete.el:178:(defvaralias 'ac-quick-help-prefer-x 'ac-quick-help-prefer-pos-tip OKそうです。ふー。 というわけで、今のところ MacPorts で ack を入れるのはちょっとめんどくさいという話しでした。
C-u つきの query-replace は正規表現で
- M-% で、ふつうの置換(query-replace) - C-u M-% で、正規表現で置換(query-replace-regexp) というふうにしたいです。 (defun my-query-replace (arg) (interactive "P") (let ((current-prefix-arg nil)) (call-interactively (if arg 'query-replace-regexp 'query-replace)))) xyzzy でもこんなのを書いたような…。
Python でもスクラッチバッファで対話したい
果てしなく車輪の再発明っぽいのですが、Emacs の Python の対話環境をでっちあげてみました。 リージョンを選択して M-x eval-region-python すると、評価結果をカーソル行の下に挿入します。雰囲気としては Lisp Interaction モード で C-j したときのような感じです。 (defun eval-region-python (beg end) (interactive "r") (insert (with-output-to-string (shell-command-on-region beg end "python" standard-output)) "\n")) ちなみに、結果をスクラッチバッファに出さずに、slime っぽく別のウィンドウに表示する場合は下記のように。 (defun eval-region-python (beg end) (interactive "r") (let ((buf "*Py Output*") (curwin (selected-window))) (shell-command-on-region beg end "python" buf) (pop-to-buffer buf) (select-window curwin))) こういうのをスクラッチバッファのメジャーモードを検知してすべての言語に対応してやれば、最強のスクラッチバッファになるかも…。 ####参考にさせてもらったページ - [スクラッチバッファで小さなプログラムを走らせる](http://ryo1miya.hatenablog.com/entry/20121108/1352390277) - [How to implement 'shell-command-on-region-to-string' emacs/elisp function?](http://stackoverflow.com/questions/3576192/how-to-implement-shell-command-on-region-to-string-emacs-elisp-function)
コード片を Markdown 向けに
コードスニペットを Markdown にしてブログに貼り付けることが多いので、こんなのを使っています。 (defun markdown-code-region (beg end) (interactive "r") (save-excursion (save-restriction (untabify beg end) (narrow-to-region beg end) (goto-char (point-min)) (while (search-forward-regexp "\\(^.*\\)" nil t) (replace-match (concat " " (match-string 1))))))) リージョンを選択して M-x markdown-code-region すると、それぞれの行頭にスペースを4つづつ入れます。
2013/04/09
Mac のターミナルでスクロールバッファをクリアする
よく忘れるので、メモしておきます。 - `Cmd` + `k` - メニュー > Edit > Clear All で、スクロールバッファをクリアできます。 Mac 標準のターミナル.app でも iTerm でも同じようです。 ちなみに `Ctrl` + `l` はプロンプト行をターミナルの先頭に移動するだけで、スクロールバッファはクリアしません。
2013/04/04
モードラインにファイルのフルパスを表示
Emacs のモードラインの左部分にはバッファ名が表示されています。 この部分を左クリックしたら一定時間だけファイルのパス名が表示されるようにしてみました。 ついでにクリックと同時にパス文字列をキルリングにコピーします。 下記は [powerline](https://github.com/milkypostman/powerline)での表示例です。 普段はバッファ名が表示されているけど… ![モードラインにバッファ名を表示](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq8WejWgyGRrvOXh80BDL6zsfyJSuganp3M0vRNExLz-j_IW1fC2hhOXy2NJ0MwNdwzRz6azHeb1Gsh3BSIReajDDjbp8NSMcaKMfJAPEkuZdqYFherja5JaMFgnLJTvyTTBFK95eRu1Ik/s1600/1.png) 左クリックするとフルパス表示に切り替わる ![モードラインにパスを表示](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwW1hLm_EkssFVPUh-QGwCD0EvfAZj2lPssubdZVRp4TLwR_IaQblePadz5L0mXGiuABl7yKGSSp1qqz_fvP3qtOpf9L7gdQzOoTN8d-d4DmcCm08zpXUgOGnjABQgeHpExiPEtDdHNVuG/s1600/2.png) (defvar mode-line-buffer-fullpath (list 'buffer-file-name (propertized-buffer-identification "%12f") (propertized-buffer-identification "%12b"))) (add-hook 'dired-mode-hook (lambda () ;; TODO: handle (DIRECTORY FILE ...) list value for dired-directory (setq mode-line-buffer-identification ;; emulate "%17b" (see dired-mode): '(:eval (propertized-buffer-identification (if (< (length default-directory) 17) (concat default-directory (make-string (- 17 (length default-directory)) ?\s)) default-directory)))))) (setq mode-line-buffer-default mode-line-buffer-identification) (defun show-mode-line-fullpath (event) (interactive "e") (when (buffer-file-name) (select-window (posn-window (event-start event))) ; activate window (let ((wait-sec 5)) (setq mode-line-buffer-identification mode-line-buffer-fullpath) (force-mode-line-update) (my-copy-buffer-file-name) ; copy path string to killring (sit-for wait-sec) (setq mode-line-buffer-identification mode-line-buffer-default) (force-mode-line-update) (message "")))) (define-key mode-line-buffer-identification-keymap [mode-line mouse-1] 'show-mode-line-fullpath) ; left click (set-face-attribute 'mode-line-highlight nil :box nil) ; remove box when hover mouse (defun my-copy-buffer-file-name () "copy buffer-file-name to kill-ring." (interactive) (let ((fn (unwind-protect (buffer-file-name) nil))) (if fn (let ((f (abbreviate-file-name (expand-file-name fn)))) (kill-new f) (message "copied: \"%s\"" f)) (message "no file name")))) この例では5秒間表示されます。表示時間は wait-sec で変更します。 なお、一定時間表示ではなく、クリックするたびに表示をトグルしたい場合は、`show-mode-line-fullpath` の代わりに下記の `toggle-mode-line-fullpath` を `define-key` するといいです。 (defun toggle-mode-line-fullpath () (interactive) (setq mode-line-buffer-identification (if (string= (format "%s" mode-line-buffer-identification) (format "%s" mode-line-buffer-fullpath)) mode-line-buffer-default mode-line-buffer-fullpath)) ;; (force-mode-line-update) ) ####参考リンク - [Add button with dynamic menu to emacs's modeline?](http://stackoverflow.com/questions/9019717/add-button-with-dynamic-menu-to-emacss-modeline)
2013/04/01
Finder に 「上へ」ボタンを
![Up button screenshot](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirS2gHBu85c2v2nEO_dj5NfkOfVx6I8evYcNttkmUuEnjuR8b6j112VGwm5RfWCA71y6H_PJU2TroOfDhQyVkc20m7_mhLlainPMZ9oht8XTiy1hVaBVrh_tjOUlmHiAtOBkZiOcEc7TZH/s1600/s0x_.png ) Mac OS X の Finder には「上の階層へ」ボタンがありません。Windows の Explorer も 7 あたりからこのボタンがなくなってしまいましたが、無いとちょっと不便なこともあります。 AppleScript で工夫されている方もおられるようですが、せっかくなので Mac のアプリとして作成してみました。 下記にパッケージを置いています。 - [Up Button for your Finder](http://autometa.ro/apps/up_button.html) pkg ファイルなのでインストーラが起動します。インストールできたら、Finder でアプリケーションフォルダを開いて 「Up」という上矢印のアイコンを Finder の上部にドラッグアンドドロップすれば使えるようになります。 しくみは Finder に `Cmd` + `↑` を sendkeys しているだけですので、このキーをリマップしていたり無効化していると動作しないです。 ソースは [github](https://github.com/gnrr/up-button ) に置いてあります。 アイコンが気に入らない場合は、up.iconset フォルダの中にある png を差し替えてビルドしなおせばOKです。 [わずか34行](https://github.com/gnrr/up-button/blob/master/up/main.m )のスロッピーコードなので、煮るなり焼くなりご自由に。 OS X 10.8.2 (Mountain Lion) と [XtraFinder](http://www.trankynam.com/xtrafinder/ ) の組み合わせで動作を確認済みです。 以下余談です。 AppStore に置いてもらうためにいろいろな実装方法を試してみたのですが、結局どれも SandBoxing と Entitlement で武装したレビュア陣には勝てませんでした。 Developer Support の外人さんには1ヶ月ほどメールで相談させてもらったのですが、やはり他のアプリを外から操作するのは Sandbox的にはご法度らしく、いくつか提案してもらった API では実現出来ませんでした。 このままHDDの肥やしにしておくのもちょっともったいないと思ったので、最も動作が軽くて単純な実装を、野良で置くことにしました。 はぁー、AppStore 過酷っす。 パトラッシュ、ぼくはもう疲れたよ。
新しい投稿
前の投稿
ホーム
About
Unknown
詳細プロフィールを表示
Labels
AVR
( 12 )
Blogger
( 10 )
Chrome
( 2 )
cocoa
( 5 )
Eagle
( 5 )
emacs
( 31 )
game
( 1 )
Google
( 4 )
iPhone
( 2 )
Javascript
( 1 )
lisp
( 4 )
LPCXpresso
( 1 )
mac
( 53 )
Markdown
( 4 )
msp430
( 1 )
NXP
( 1 )
Parallels Desktop
( 1 )
PIC
( 3 )
python
( 19 )
Raspberry Pi
( 9 )
ruby
( 1 )
Safari
( 2 )
shell script
( 4 )
Sublime Text
( 1 )
windows
( 7 )
xcode
( 8 )
xyzzy
( 60 )
おぼえがき
( 69 )
まとめ
( 6 )
メール
( 2 )
よもやま
( 19 )
工作
( 23 )
電験
( 4 )
本日の探索結果
( 2 )
Blog Archive
►
2015
( 3 )
►
02
( 1 )
►
01
( 2 )
►
2014
( 17 )
►
12
( 1 )
►
07
( 3 )
►
06
( 3 )
►
04
( 2 )
►
03
( 4 )
►
01
( 4 )
▼
2013
( 135 )
►
12
( 5 )
►
10
( 6 )
►
09
( 7 )
►
08
( 10 )
►
07
( 24 )
►
06
( 15 )
►
05
( 15 )
▼
04
( 17 )
CSS の margin パラメータ数の違い
Pyhton で JPEG画像を添付してメールを送信
Elisp のトグル動作や内部カウンタはクロージャを使う
Google の Custom Search Engine で画像を検索するサンプル
BloggerにGistを貼り付けると、前後に空行が入ってしまう
Pyhton で GMail の smtp で UTF-8 なメールを送信
MYO:腕の筋肉の動きを検知するコントローラ
Google の検索結果に表示される 著者の写真を非表示に
Mac の Safari で Backspace (DEL) キーで前のページに戻るようにする
Spotlight を grep find の代わりに
ack を MacPorts で入れてみる
C-u つきの query-replace は正規表現で
Python でもスクラッチバッファで対話したい
コード片を Markdown 向けに
Mac のターミナルでスクロールバッファをクリアする
モードラインにファイルのフルパスを表示
Finder に 「上へ」ボタンを
►
03
( 13 )
►
02
( 17 )
►
01
( 6 )
►
2012
( 11 )
►
10
( 5 )
►
07
( 1 )
►
02
( 2 )
►
01
( 3 )
►
2011
( 86 )
►
12
( 2 )
►
11
( 2 )
►
10
( 1 )
►
07
( 2 )
►
06
( 3 )
►
05
( 20 )
►
04
( 49 )
►
03
( 7 )
►
2009
( 4 )
►
03
( 1 )
►
01
( 3 )
►
2008
( 8 )
►
12
( 8 )
STAT
Ads
Amazon.co.jp ウィジェット
Powered by
Blogger
.