タグ

ブックマーク / zariganitosh.hatenablog.jp (58)

  • なるべく覚えないbashのキー操作 - ザリガニが見ていた...。

    ターミナル&bashでコマンドラインを編集する時、実にいろいろなキー操作がある。便利そうだからと、あれもこれも覚えようと欲張るのだけど、すぐに忘れてしまう...。もっと厳選して覚えておかなくては。自分にとって必要最小限のキー操作を探ってみた。 勝手な方針 OSX環境のキーバインドが使える場合は、そちらを優先する。 ホームポジションの維持にこだわらない。 よって、矢印キー・deleteキーなども遠慮なく使う。 カーソル移動 行頭・行末・単語区切りの移動で、カーソルを素早く動かす。 マウスカーソルで指定すれば、クリックした位置にジャンプする。 control-A・E 行頭・行末へ移動 option-←・→ 1単語ずつ移動 option-クリック クリックした位置へ移動 削除 行頭・行末・スペース・単語区切りの削除によって、修正を楽にする。 control-U・K 行頭・行末まで削除 contr

    なるべく覚えないbashのキー操作 - ザリガニが見ていた...。
  • エスケープシーケンスを体感する - ザリガニが見ていた...。

    エスケープシーケンス(escape sequence)とは、直訳すれば「エスケープに続く数列(文字コード列)」といった意味合いになると思う。広い意味では、特別な文字表記(エスケープ記号)で始まる一連の文字列を連想してしまう。例えば、\nが改行を表現するのも広い意味ではエスケープシーケンスに含まれる。しかし、ここではもっと狭い意味のエスケープシーケンスを扱う。ASCII制御コードを拡張するためのエスケープシーケンスだ。 前回調べたように、ASCII制御コード(\x00〜\x20、\x7f)はテレタイプ端末で通信することを想定した古い規格になっている。その古いASCII制御コードだけでは、時代と共に進化してきたビデオ端末や端末エミュレータを満足に制御できるはずがない。新たな制御コードを追加する必要があったのだ! ところが、新たな制御コードを追加するにも、たったの128文字しかないASCIIコー

    エスケープシーケンスを体感する - ザリガニが見ていた...。
  • 必要最小のgemの作り方とインストール - ザリガニが見ていた...。

    gemは、Rubyのライブラリ管理のコマンド。Rubyのライブラリを検索・インストール・アップデート・削除など、苦労最小で操作する仕組みを提供してくれる。今までgemを使って、多くの素晴らしいライブラリをインストールしてきた。しかし、自分が作ったものをgemでインストール可能な形式で公開したことはなかった...。 できることならgemでインストールできるようにしてみたい。では、自作のRubyコードは、どうすればgemでインストールできるようになるのか?果たして、簡単にできることなのか?調べてみた。 作業環境 MacBook Pro Retina15 OSX 10.9.5 Rubyバージョン $ ruby --version ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13] Gemバージョン 最新のG

    必要最小のgemの作り方とインストール - ザリガニが見ていた...。
  • タブを閉じてもログアウトしても実行し続けるジョブにしておく - ザリガニが見ていた...。

    前回までにバックグラウンドでジョブを複数管理できるようになった。ところで... ターミナルでタブを開く度に、あるいはsshでどこかの端末にログインする度に、 シェルが起動して、コマンドを入力・実行・出力する環境を整えてくれる。 そして、タブを閉じたり、ログアウトすると、シェルは終了する。 と同時に、通常はそのシェル上で実行されていたジョブも終了してしまう。 不要なバックグラウンドジョブを漏れなく終了できるので、多くの場合これで良いのだけど、 稀に、シェルが終了しても処理を続けて欲しい状況もある。 特にsshでログインして時間のかかる処理(ダウンロードとか)をしている時などは、 一旦ログアウトしたいんだけど、処理はそのまま続けて欲しいことが多い。 そんな時は、nohupコマンドを使うと幸せになれる。 環境 MacBook Pro Retina15 OSX 10.9.5 $ bash --ve

    タブを閉じてもログアウトしても実行し続けるジョブにしておく - ザリガニが見ていた...。
  • UTF-8にもいろいろある - ザリガニが見ていた...。

    前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわる悩みとはおさらばできると思ったら、まだダメだった...。 実験環境 OSX 10.8 Mountain Lion以前((OSX 10.9 Mavericksでは、Mac仕様なNFDのUTF-8を表示しようとするとエラーになってしまったため、10.8以前の環境で実験した。Assertion failed: (width > 0), function conv_c, file /SourceCache/shell_cmds/shell_cmds-175/hexdump/conv.c, line 137. ** ** Abort trap: 6

    UTF-8にもいろいろある - ザリガニが見ていた...。
  • プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。

    プロセス置き換えとか、名前付きパイプとか、とても便利な機能なのだけど、その仕組みはどうなっているのだろう?断片的な知識ばかりでは、その核心にはなかなか辿り着けない。サンプルコードの真似はできるけど、それ以上の発想はできない...。もっと根的なところからちゃんと理解しておかないと、いつまでたってもコマンドの使い方の質が理解できないと感じた。プロセスとは何か?パイプとは何か?リダイレクションとは何か?ファイルディスクリプタとは何か?可能な限りその質を探ってみようと思う。 UNIXのプロセス UNIXでは、複数のユーザーがログインした状態で、同時に複数の処理を依頼される状況が多々ある。 ところが、どんなに高性能なCPUであっても、ある瞬間に処理できるのはたった1つの処理だけである。 そんな時OSは、それぞれの処理に必要なメモリ領域を割り当てて、CPUをタイミングよく切り替えながら同時並行的

    プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。
  • ライブラリはなぜ見えなくなったのか?ファイルフラグを探る - ザリガニが見ていた...。

    Snow LeopardからMountain Lionに移行して、最初に躓いたのがライブラリフォルダが見えなくなってしまったこと。ちゃんと存在するんだけど、Finderからは見えなくなってしまった...。 メニューから、option-移動 >> ライブラリ あるいは、command-shift-G、「~/Library」 以上どちらかの操作でライブラリにはアクセスできるのだけど、Finderから素直に見えていないと頻繁にアクセスする自分としては不便を感じる。そこでMountain Lion移行当初に、さっそくSnow Leopard以前と同じようにライブラリが常時見える設定にしておいた。ところが、先日OSX 10.8.3のアップデートを適用したら、再びライブラリフォルダが見えなくなってしまった...。さて、ライブラリが常時見える設定ってどうやるのだっけ?(忘れてしまった) 正解は... $

    ライブラリはなぜ見えなくなったのか?ファイルフラグを探る - ザリガニが見ていた...。
  • Lion・Mountain LionのインストールSDカードの作り方 - ザリガニが見ていた...。

    Lion以降、OSXのインストールはApp Storeからのダウンロードになってしまった。当然の流れだし、素晴らしいことなのだけど、回線の遅い自分の作業環境ではダウンロードに一晩かかってしまう。何かを確認するため、たまに素のOSX環境をインストールしたくなるのだが、これでは時間がかかりすぎる。 というわけで、何らかのメディアにOSXインストーラーを保存しておこう、と思い立った。自分のマシンにはDVDドライブはないが、SDXCメモリーカードスロットはある。よって、SDメモリーカード規格のメディアにOSXインストーラーをバックアップしておきたい。その作業レシピ。 材料 SDメモリーカード(16GB以上、よって正確にはSDHCあるいはSDXCカード) 例:Transcend SDHCカード 16GB Class10 永久保証 [フラストレーションフリーパッケージ (FFP)] TS16GSDHC

  • curlでDropboxにアクセスする試み - ザリガニが見ていた...。

    curlというコマンドがある。引数にURLを指定すると、そこにアクセスして、サーバーから情報を取得するのだ。 基の書式。 $ curl http://d.hatena.ne.jp/zariganitosh ...(非常に長いhtml出力)... ズラズラとhtmlが出力されたが、htmlの羅列では訳が分からん。 htmlファイルに出力してみる。 $ curl -o output.html http://d.hatena.ne.jp/zariganitosh/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4178 100 4178 0 0 12717 0 --:--:-- --:--:-- --:--:-- 22830 o

    curlでDropboxにアクセスする試み - ザリガニが見ていた...。
  • 通知センターでHello, world! - ザリガニが見ていた...。

    Mountain Lionの新機能の一つ、通知センターをうまく使えないかと試してみた記録。今まではgrowlnotifyコマンドを利用して、AppleScriptなどの処理の状態を知る手がかりにしていた。できることならOSX標準の仕組みだけで通知したいのだ。 Objective-C CocoaはObjective-Cで書かれている。Objective-CはCocoaのために存在する、と言えるかもしれない。 だから、最初はObjective-Cで考えることが、理解への近道だと考えた。 #import "AppDelegate.h" @implementation AppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initializ

    通知センターでHello, world! - ザリガニが見ていた...。
  • MacBook Pro Retinaに入れたフリーなソフトウェア - ザリガニが見ていた...。

    MacBook Pro Retinaを使い始めて1ヶ月が経過した。Snow Leopardである旧MacBookの環境は丸ごとコピーせず(OSが劇的に変わっているので)、必要なものだけ、その都度、ひとつ一つ手作業でコピーしてきた。ゆっくりだけど、少しずつ便利な環境になりつつある。以下は何をインストールしてきたか、のメモ。 方針 可能な限りOS標準の状態を維持する。 可能な限りOS標準のソフトウェア・機能を利用する。 しかし、そうなっていない気もする...。 Resolution changing app Retina入手したら、まずは2880×1800の素の解像度を試したくなった。 圧巻!なんて広いデスクトップだろう! と同時に、なんて小さな文字だろう...。 現状はAppleScript&Quicksilverを利用して、以下の解像度に自由自在に変更できるのだ!楽しい! Retinaの広

    MacBook Pro Retinaに入れたフリーなソフトウェア - ザリガニが見ていた...。
  • 全部覚えたいviの使い方 - ザリガニが見ていた...。

    前回、なるべく覚えないで使えるようになろう!と模索していたが、やっているうちに全部覚えたくなってしまった...。viおよびvimは、とてつもないポテンシャルを備えていることを、調べるほどにひしひしと感じる。viの魔力にハマった感じ。しかし、とてもじゃないが全部網羅できない...。 ダウンロード(UTF-8なviで開く用) #### この表の用例 esc = escキー ⏎ = enterキー space = スペースキー tab = tabキー delete = deleteキー ctrl-x = controlキーを押しながら x を押す option-x = optionキーを押しながら x を押す command-x = commandキーを押しながら x を押す fn-x = fnキーを押しながら x を押す A・B = 「AあるいはB」の意味。似た機能を1行で併記する時に使う #

    全部覚えたいviの使い方 - ザリガニが見ていた...。
  • プロセスの源流を見に行く - ザリガニが見ていた...。

    MacBookが起動している間、実に様々なアプリケーションが稼働して、快適な作業環境を提供してくれる。Dockやメニューバーには、自分の意志で明示的に起動されたアプリケーションが並ぶ。しかし、そこに見えているのはほんの一部で、その裏ではさらに多くのアプリケーションが稼働している。それらは常にバックグラウンドで稼働し、UI*1を持たない。だから、厳密にはアプリケーションとは言えないかもしれない。 普段はその存在をほとんど感じることはないが、アクティビティモニタ*2を起動すると簡単に確認できる。ツールバーで「すべてのプロセス」にしてみると、自分の環境ではその数およそ100プロセス*3。結構な数だ。 それらの暗黙的に稼働している(はるかに多い)プロセスは、一体いつ起動されたのだろう?それを調べるには、やはりアクティビティモニタのツールバーで「すべてのプロセス(階層表示)」にしてみると、ある程度想

    プロセスの源流を見に行く - ザリガニが見ていた...。
  • CocoaBindingの使い方サンプル - ザリガニが見ていた...。

    CocoaBindingはInterface Builderから簡単に利用できるようになっているが、正直その裏の仕組みは、ちゃんと理解できていない...。しかし、仕組みが100%理解できていなくても、ケース別の書き方が理解できれば、便利に使えてしまうところが素晴らしい。詳細な仕組みを理解するのは後回しにして、自分なりに理解できた利用パターンをメモ。 仕様 サンプルアプリケーションの仕様は、前回と同じく以下のような単純なものだ。(プロジェクト名は「SliderControl」にした。) Sliderを動かすと、連動してTextFieldの数値が変化する。 TextFieldに数値を入力すれば、Sliderが数値に対応した位置に移動する。 共通の作業 Interface Builderで以下のようなユーザーインターフェースを設定しておく。 スライダーのContinuousはチェックありの状態(

  • コマンドから引き出すGUIの機能 - ザリガニが見ていた...。

    OSXが素晴らしいGUI環境を提供してくれるのだから、わざわざコマンド操作を覚えるまでもないと考えていた。ところが、OSXGUI環境を素早く・便利に使いこなすためには、キー操作を組み合わせたショートカットが必須*1である。そして、ショートカットとは何かを考えれば、キー入力以外の何者でもなく、突き詰めればコマンド入力と大差ないことに気付く。 Finderからcommand-Nで新規ウィンドウをを開くのも、ターミナルでlsと入力するのも、キー入力のタッチ数は同じである。 Quicksilverなんて、高度な入力補完機能付きのターミナルのようなものかもしれない。 つまり、GUIはコマンド入力と組み合わせることで、最大の効率化を図れるのである。 ところで、OSXGUI操作にはそれに対応するコマンドが用意されていることが多い。(どちかというと、コマンドが先でそれにGUIを着せた結果なのかもしれな

    コマンドから引き出すGUIの機能 - ザリガニが見ていた...。
  • 標準電波を追跡する - ザリガニが見ていた...。

    標準電波 日標準時を乗せて発信している電波を標準電波と呼ぶらしい。 日では2箇所で発信されていた。 福島県 おおたかどや山標準電波送信所(40 KHz) 大きな地図で見る 佐賀県 はがね山標準電波送信所(60 KHz) 大きな地図で見る 停波 首都圏の電波時計にとって重要なリソースである、福島県 おおたかどや山標準電波送信所が停波中らしい。 NICT 日標準時プロジェクト 3/11より、地震・原発・落雷の影響を受けて、断続的な停波を繰り返し、現在停波中なのだ...。 JJY TX Log 標準電波の受信範囲は、腕時計で半径500Km、置き時計で半径1000Kmと言われている。 首都圏では... 置き時計なら佐賀県 はがね山標準電波のほぼ受信範囲になるが、 腕時計では受信できない状況になってしまうのだ。 シミュレーター ここにJJY SimulatorというiPhoneアプリがある。i

    標準電波を追跡する - ザリガニが見ていた...。
  • MacBookで64ビットカーネルの使い心地 - ザリガニが見ていた...。

    OSX 10.6(SnowLeopard)では、標準添付されるほぼすべてのソフトウェアが64ビットに対応した。アクティビティモニタ(/Applications/Utilities/Activity Monitor.app) で確認してみると、「種類」の列項目がほとんど「Intel(64ビット)」となっている。(でも、iPhoto・iTunesは未だ32ビットなんだけど) さらに、SnowLeopardではOSの核であるカーネルまでも64ビットに対応したらしい。アクティビティモニタでPIDが常に0で表示されるkernel_taskさえも、64ビットに対応したのだ。しかし、デフォルトでは多くのマシンが未だ32ビットカーネルで起動するらしい。64ビットカーネルで起動するには「6」と「4」のキーを押しながら起動する必要があるそうだ。 Mac OS X v10.6:32 ビットまたは 64 ビットカ

    MacBookで64ビットカーネルの使い心地 - ザリガニが見ていた...。
  • 東京電力のtweetを素早く察知する - ザリガニが見ていた...。

    Twitterの設定でメール通知可能だった...。特定のユーザーのtweetを通知する設定 - ザリガニが見ていた...。 前回、東京電力のホームページが更新されたら、その内容をメールに送信するようにした。実際、それはちゃんと動いてくれたが、ちょっと問題があった。ホームページの更新のタイミングが遅いのだ!ニュースではすでに「計画停電は中止」と読み上げているのに、ホームページにはその情報が未だ載っていない...。せっかく作ったのに、テレビより遅いのはちょっと悔しい。 東京電力は、Twitter(http://twitter.com/#!/OfficialTEPCO)でも情報を発信している。そこで、東京電力がtweetしたら、それをメールで送信するように変更してみた。 Twitter API Twitterには、Twitter APIという便利なツールがある。 Twitter API 仕様書

    東京電力のtweetを素早く察知する - ザリガニが見ていた...。
  • マイナス同士の掛け算はなぜプラスになるのか? - ザリガニが見ていた...。

    きっかけ そういえば掛け算にはそんなルールがあったな 黄金原更新, 【最短理解でもなんでもない】なぜ5×3ではなく3×5なのか【大幅書き直し中】, たくさんの反響ありがとうございます - ワタタツの日記!(2010-11-13) 【ゆっくり理解】なぜ3×5で正答で、5×3が小2のテストでは誤答なのか | Kidsnote 3×5の問題をいろいろな所で議論されているのを見ながら、自分は全く別の問題を思い出すことになった。 おもいで 遥か昔の記憶だが、学校で初めてマイナスの掛け算を習った時のこと。マイナス×マイナスがプラスになるという事実を知った時、何だか騙されたような感覚だった。 (-3)×3 = -9 (-3)×2 = -6 (-3)×1 = -3 (-3)×0 = 0 (-3)に対して掛ける数を1ずつ減らしていくと、答えは3ずつ増えている。 この法則から予想すると、掛ける数が-1になる

    マイナス同士の掛け算はなぜプラスになるのか? - ザリガニが見ていた...。
  • ファイル情報はどこまで改竄できるか? - ザリガニが見ていた...。

    404 Blog Not Found:News - 前田検事が使ったツールって何だろ? なるほど!touchコマンド一つで、こんなことができるのか。早速、試してみる。 作業環境 MacBook OSX 10.6.5 bash touchコマンド $ touch test_file $ getfileinfo test_file file: "/Users/zari/Desktop/test_file" type: "\0\0\0\0" creator: "\0\0\0\0" attributes: avbstclinmedz created: 12/10/2010 04:14:48 modified: 12/10/2010 04:14:48 $ touch -t 199901011234.56 test_file $ getfileinfo test_file file: "/Users/

    ファイル情報はどこまで改竄できるか? - ザリガニが見ていた...。