タグ

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

  • コンピュータはどのように計算しているのか? - ザリガニが見ていた...。

    コンピュータ(CPU)は単なるスイッチの集合体である。 スイッチのオン・オフを数値の1・0と考えて2進数で計算している。 以上のことは真理かもしれないけど、今イチ現実味がない。そのままでは、CPUの姿は想像できない。単なるスイッチが、その内部でどうやって計算しているのか?もう少し具体的な姿を見るために、調べてみた。 10進数ではない数値 人間が計算すると言ったら、それは当然10進数で計算することになる。 10進数とは、1桁が10の数字によって区別される数値の表現方法である。 0から9まで数えたら、桁上がりして10になる。 ところで、普段はあまり意識しないが、時計は12進数と60進数が組み合わさった数値の表現方法である。 ストップウォッチが付属していると、10進数も関係している。 あるいは、曜日は7進数的な表現方法と言える。(桁上がりは、ないけど) 1年は12ヵ月あり、12進数的である。 さ

    コンピュータはどのように計算しているのか? - ザリガニが見ていた...。
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
    a2ikm
    a2ikm 2013/12/10
  • 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にもいろいろある - ザリガニが見ていた...。
    a2ikm
    a2ikm 2013/11/25
    そうか、UTF-16の世界に逃げればいいのか
  • patchコマンド-pオプションの覚え書き - ザリガニが見ていた...。

    patchコマンドは、元ファイルと差分情報からファイルを更新してくれる素晴らしいコマンドだが、patchコマンドを実行するディレクトリと-pオプションの設定で悩むことが多い。そこで今後のために、自分用の覚え書き。 ファイルにパッチを当てる 様々なオプションが設定できるが、基は以下の書式。 $ patch 元ファイルのパス < patchファイル(差分情報)のパス 元ファイルが存在するディレクトリに移動すれば、「元ファイルのパス」は省略できる。(以下synergy-1.3.1の例) $ cd ~/Downloads/synergy-1.3.1/lib/platform $ patch < ~/Downloads/OSX_BusError.patch synergy-1.3.1に対するパッチファイル、OSX_BusError.patchをサンプルに考えてみる。 Index: COSXKeyS

    patchコマンド-pオプションの覚え書き - ザリガニが見ていた...。
    a2ikm
    a2ikm 2013/06/05
    ディレクトリごとパッチをあてる: patch -p0 -d 対象ディレクトリ < foo.patch
  • 通知センターで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! - ザリガニが見ていた...。
  • コマンドの繋ぎ方 - ザリガニが見ていた...。

    一つひとつのコマンドは単機能*1であっても、コマンド同士を連携させることで、高度な情報に加工できる仕組みって、素晴らしいと思う。 頻繁に使うシェルコマンドベスト30を集計とるワンライナー - zenpouの日記(感謝です!) $ cat .bash_history|cut -f1 -d' '|sort|uniq -c|sort -nr|head -n10 114 cat 64 echo 40 ls 28 rm 26 ps 20 growlnotify 20 _echo 19 sleep 17 ls_ 16 du 例えば、上記のコマンドは「最近よく使ったコマンドベスト10」を表示してくれる。(bash用) 結果を見ると、ろくにコマンドを使っていない(使えていない)のがバレバレだけど、.bash_historyというコマンド履歴のファイルから、一瞬にしてベスト10に集計してしまう作業が、たった

    コマンドの繋ぎ方 - ザリガニが見ていた...。
  • validateのバリエーション - ザリガニが見ていた...。

    たった1行のvalidates_presence_ofが入力値の検証とエラー表示を行っているが、それを実現するためにはいろいろな機能が絡み合っていることが分かった。 validateに関連することで分かったこと データベースへの追加または更新の前に検証される。一つでもエラーが発生すると、そのレコードは一切保存されない。 モデルはerrorsという看板を持っていて、エラーが発生すると、エラーフィールド名とエラーメッセージがその看板に保存される。 手軽にvalidateを活用するためには、入力フォームの描画はRailsが用意したメソッド*1を利用するべき*2。 validates_のバリエーション メソッド 検証方法 validates_presence_of 値が入力済であること検証 validates_uniqueness_of 同じ値が存在しないことの検証 validates_lengt

    validateのバリエーション - ザリガニが見ていた...。
  • 徹底的にエアコンを掃除する - ザリガニが見ていた...。

    もうすでに7年間、エアコンは壊れることなく稼働してくれている。(ありがたいことです。お疲れさん。)でも、去年の夏あたりから、冷房の時のあの不快なカビ臭さが気になっていたのだ。マニュアルに載っているお決まりの掃除では改善の気配はない。そこで、自分ができる限りの掃除をしてみることを決意し、日、作業に取りかかったのであった...。 エアコン仕様 2003年製 三菱ルームエアコン(MSZ-ZXV40KS-W) 室内総重量:13kg 定格電圧:200V 定格消費電力:1.35kW 基 まず、マニュアルに解説されているレベルの部品はすべて外した。 前面の丸洗いパネル 上部パネル 埃フィルタ(網状のフィルタ) 空気清浄フィルタ(スポンジ状のフィルタ) プラズマユニット 上下のフラップ http://www.mitsubishielectric.co.jp/mypage/mailnews/oteire

    徹底的にエアコンを掃除する - ザリガニが見ていた...。
  • 2.0のmap.resourcesのオプション設定いろいろ - ザリガニが見ていた...。

    今までおろそかにしていた「ルート設定」ではあるが、Rails2.0からは避けて通ることができない*1と今更ながら思い直し、いろいろ試してみた。以下はその実験結果。 基 追加オプションなしの基ルート設定map.resources :slipsによって、以下のルート規則が生成される。 ルート規則は上にあるものが優先される。 .:formatが付属する偶数No.の行は、http://XXXX.XXX/slips.xml等の拡張子付きのリクエストを、respond_toブロックで適切に処理するために存在する。 # ルート設定: config/routes.rb ActionController::Routing::Routes.draw do |map| map.resources :slips end No. 名前付きルート名 メソッド URLパス書式 処理されるコントローラー、アクション

    2.0のmap.resourcesのオプション設定いろいろ - ザリガニが見ていた...。
  • iPadの使い心地 - ザリガニが見ていた...。

    5月28日からiPadを使い始めた。iPadは、ハード仕様から考えれば画面の大きなiPhoneである。あるいは画面の小さなMacBook Touchとも言えるかもしれない。 iPhone iPad MacBook (プログラミングRuby) 画面px 480 × 320 1024 × 768 1280 × 800 画面アスペクト比 3:2 4:3 16:10 画面解像度ppi 163 132 113 画面対角インチ 3.5 9.7 13.3 画面サイズcm 7.4 × 4.93 19.71 × 14.78 28.65 × 17.9 体重さg 135 680 2130 750 体大きさcm 11.55 × 6.21 × 1.23 24.28 × 18.97 × 1.34 33.03 × 23.17 × 2.74 23.4 × 18.2 バッテリー駆動時間*1 9 10 3.5 参考:D

    iPadの使い心地 - ザリガニが見ていた...。
  • 自分仕様なMacBookの快適なところ - ザリガニが見ていた...。

    iPadは場所を選ばず手軽に使えて便利なのだが、結局のところ、MacBookの代わりにiPadで作業しようとする限り、MacBook以上に快適に作業できることはなくて、現状ではiPadでの作業はMacBookに比べて冗長になる。(もちろん、iPadでしかできない作業とか、iPadが得意な作業というのもあって、例えば、現在地を絶えず追跡しながらカーナビのように地図アプリでナビゲーションするとか、PDFをまるで紙ののように再現するとか。) たぶん、長年MacBook(のようなマウス&キーボードUIのパソコン)を使ってきて、その環境での作業が慣れているせいもあるかもしれない。それに、そもそもマウス&キーボードUIには25年以上の歴史があり、その中で常に進化し続けてきた。今のMacBookは、すべてがマウス&キーボードUIに最適化され、かなり成熟した作業環境になっているはずなのだ。さらには、自分

    自分仕様なMacBookの快適なところ - ザリガニが見ていた...。
  • 使用停止中のGrowlMailを有効にする方法 - ザリガニが見ていた...。

    もはや、GrowlはOSXの標準にして貰いたいくらい馴染んだイベント通知システムで、様々な場面で的確にイベント情報を表示して、ユーザーに安心を与えてくれる。メールを受信した時に、そのタイトルなどを表示してくれるGrowlMailも実に有り難い。 しかし、このGrowlMail、OSのアップデートの度に機能しなくなる。自分のMacBookでは、ここ最近はずっと使えない状態が続いていた。特に画面の狭いMacBookでは、Dockも非表示にしておくので、メールの受信に気付き難い環境だ。不便を感じる。困った...。 調べてみると、正常時は~/Library/Mail/Bundles/GrowlMail.mailbundle/にインストールされてMail.appを機能拡張してくれるのだが、OSのアップデートなどでMail.appのバージョンが少しでも変更されると~/Library/Mail/Bund

    使用停止中のGrowlMailを有効にする方法 - ザリガニが見ていた...。
    a2ikm
    a2ikm 2010/06/02
    プラグインを有効化するためにはInfo.plistのSupportedPluginCompatibilityUUIDsにプラグイン先アプリのInfo.plistのPluginCompatibilityUUIDsを追加する
  • はてなダイアリーのURLに単語を使うには? - ザリガニが見ていた...。

    ちゃんと、はてな記法で解説されていた...。(読めてない、自分が居た) 好きなname属性の見出しをつける(name属性付き見出し記法) - はてなダイアリーのヘルプ 疑問 webを閲覧していると、たまに以下のようなページに出会う。 4時間睡眠で活動時間を増やすステップ - (rubikitch loves (Emacs Ruby CUI)) 気になるのは記事の内容だけでなく、そのURLだ。 http://d.hatena.ne.jp/rubikitch/20100411/sleep あれあれ、はてなダイアリーなのにURLの最後の階層が意味のある単語になっている! 一体、どうやったらURLに単語を指定できるのだろう? 気になる...。すごーーく気になりだした...。 できることなら、同じことをやってみたい。 分析 自分の日記で確認してみると、URLは自動的に割り当てられた数字の羅列になって

    はてなダイアリーのURLに単語を使うには? - ザリガニが見ていた...。
  • Time Capsuleの二重のNAT問題 - ザリガニが見ていた...。

    前回から続き。Time Capsule経由でインターネットに繋がるようになったが、気になる警告が報告されている。 AirMacユーティリティーの「AirMac >> 概要 タブ >> 状況:」の項目が、「二重のNAT」と表示され、オレンジ色のランプが点いている。 ところが、丸型のAirMac Extremeベースステーションの方は、緑色のランプで正常のようだ。 「二重のNAT」の状況が理解できず、同じ環境で丸型ベースステーションの方は正常な状態、インターネットには問題なく接続出来ているように見えるので、無視する設定にして暫く使っていたが、やはり気になる。調べてみた。 ルーター機能付きADSLモデム 以前、ADSLの契約を変更した時に、それまで利用していたADSLモデムを交換していた。機種は、トリオモデム 3G plus。このモデムにはLAN接続口が4つある。デフォルトで、この4つのLAN接

    Time Capsuleの二重のNAT問題 - ザリガニが見ていた...。
  • QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。

    かつてのMac OS9までの描画エンジンの主役はQuickDrawが担っていた。GUIなOSでは、文字も含めてすべてをグラフィックとして扱うので、画面に見えているすべてのもの*1はQuickDrawによって描かれていたことになる。描画エンジンは、GUIなOS開発の要となる技術である。その出来が、GUIなOS開発の成否を分けるとも言える。 そして、最初期のQuickDrawは、ビル・アトキンソンがたった一人で開発したそうである。 当時(25年以上前)のCPUは、動作クロックが8MHzという性能だった。(現在は2GHz=2000MHzかつ、複数コアが当たり前) そのような性能であっても、違和感なくマウスで操作できるOS環境にするために、斬新な発想や試行錯誤を重ね、相当な努力の末に開発されたのがLisaやMacintoshであった。 Amazon.co.jp: レボリューション・イン・ザ・バレー

    QuickDrawはどのように素早く円を描いていたのか? - ザリガニが見ていた...。
  • Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。

    Quicksilverの検索性能が、感性をくすぐってきた。 「apple」→「AppleScript Editor」 「ase」→「AppleScript Editor」 「prol」→「Property List Editor」 「im」と入力して、「Image Capture」を起動したいが、「iMove」がトップヒットになってしまう...。 そんな状況でも、候補リストから2回連続で「Image Capture」を選択すれば、3回目以降は「Image Capture」がトップヒットになる。 直近のユーザーの好みを学習してくれるのだ。 もちろん、「ima」まで入力すれば「Image Capture」がトップヒットになる。 「ase」「prol」のような、単純な前方一致でも、部分一致でもない検索には恐れ入る。しかも、シンプルだけど学習もしてくれる。使うほどに手に馴染んでくる仕組みは、この辺

    Quicksilverは如何にして鋭い検索を行っているのか? - ザリガニが見ていた...。
    a2ikm
    a2ikm 2010/03/02
    スコアリング
  • コマンドから引き出すGUIの機能 - ザリガニが見ていた...。

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

    コマンドから引き出すGUIの機能 - ザリガニが見ていた...。
  • 無線LAN経由で眠っているMacBookを起こす方法 - ザリガニが見ていた...。

    今まで、有線LAN接続のマシンをスリープ状態から起動する方法は知っていた。*1ところが、一旦無線LANを導入してその快適さを知ったら、ネットワークは無線接続がメインになってしまう。すると、スリープ中のマシンに接続して共有サービスを利用したいのだけど、無線接続のため、ネットワーク経由でスリープから復帰させることが出来きない、という問題に悩んでいた。しょうがなく、マシンのある部屋まで行ってキーボードを触ってスリープを解除したり、特定の時間帯だけは決してスリープしない設定にしたりと、不便を強いられていた。 Snow Leopardで、とうとう、この不便は解消された!無線LAN経由で、スリープから復帰させることができるようになったのだ。(画期的!)アップルはこの機能を「Wake on Demand」と呼んでいる。 Mac OS X v10.6:Wake on Demand について Wake on

    無線LAN経由で眠っているMacBookを起こす方法 - ザリガニが見ていた...。
    a2ikm
    a2ikm 2009/09/13
    Wake on Demand
  • ツリー構造を自在に操作する(追加・修正・削除・並べ替え) - ザリガニが見ていた...。

    以前の日記 - ツリー構造をマウスで並べ替える - では、並べ替えは出来るようになったが、追加・修正・削除についてはちゃんと実装できていなかった...。今更なのだが、一通りの操作が出来るように機能を追加してみた。Railsのバージョンも違うことだし、過去を思い出しながら、もう一度やり直し。 ツリー構造をデスクトップアプリケーションのように完成されたレベルで実装するのは(自分としては)非常に手間のかかることなので、Ext JS等の洗練されたGUIを提供してくれるライブラリを利用する方が賢明かもしれない。 環境 MacBook OSX 10.5.6 Rails 2.1.2 基のscaffold rails _2.1.2_ test_tree cd test_tree script/generate scaffold tree name:string position:integer pare

    ツリー構造を自在に操作する(追加・修正・削除・並べ替え) - ザリガニが見ていた...。
    a2ikm
    a2ikm 2009/08/09
    acts_as_tree
  • RailRoadで楽しむ。 - ザリガニが見ていた...。

    RailRoadを使うと、プロジェクトのモデル、コントローラーの内容や関係を視覚的に表現した図にしてくれる。具体的には以下のような結果が得られる。(CSVサーバープロジェクトの場合) モデルの図 コントローラーの図 インストール RailRoad自体のインストールは簡単で、ターミナルから以下の1行を実行すればOK。 gem install railroad 使い方 ターミナルで、利用したいRailsプロジェクトのアプリケーションルートへ移動する。(例えば、csv_serverプロジェクトであれば以下のように操作する。) cd ~/railsapp/csv_server あとは、railroadコマンドを以下のように操作すると、そのプロジェクトのdocフォルダの中に、models.dotとcontrollers.dotが生成される。 モデルの場合 railroad -i -l -a -m -

    RailRoadで楽しむ。 - ザリガニが見ていた...。