タグ

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

  • ASCIIコードの秘密 - ザリガニが見ていた...。

    当はエスケープシーケンスのことを調べていたのだが、その前にASCIIコードについて調べることになってしまった...。文字コードの基として知っているつもりだったASCIIコードについて、あらためて見直してみると、実は当の意味をよく分かっていなかったことに気づいた。 ASCIIコード表 ASCIIコードは、7ビット(2進数7桁)の文字コードであり、全部で128のコードが定義されている。 最も基的な文字コードであり、その他多くの文字コードはこのASCIIコードと互換性を維持している。 00 10 20 30 40 50 60 70 00 NUL DLE SP 0 @ P ` p 01 SOH DC1 ! 1 A Q a q 02 STX DC2 " 2 B R b r 03 ETX DC3 # 3 C S c s 04 EOT DC4 $ 4 D T d t 05 ENQ NAK % 5

    mas-higa
    mas-higa 2015/02/13
    だいたい知ってた。おっさんだから。
  • オートセーブとバージョンの詳細な動きを追跡してみる - ザリガニが見ていた...。

    Lion以降のOSX環境ではオートセーブとバージョンという仕組みが展開中であり、Snow LeopardからいきなりMountain Lionに移行した身には、ちょっと戸惑い気味である...。自動的に保存されること、過去のバージョンをブラウズして簡単に戻れること、などの簡単な説明はあるが、それ以上の詳細な仕組みを調べようとしても、情報が断片的でいまだに未知なことが多い。(検索の仕方が悪いのかもしれないが) そこで、いつもの通り実験してみることにした。オートセーブとバージョンを思う存分体感してみる。 バージョンブラウザにはTimeMachineのバックアッップも表示される まず、テキストエディットを開いて、hello.txtを新規で作って、デスクトップに保存してみる。(内容は「hello.」と入力した。) この時点でのバージョンは、たった一つのはずである。 そう予想して「ファイル」>>「バー

    オートセーブとバージョンの詳細な動きを追跡してみる - ザリガニが見ていた...。
    mas-higa
    mas-higa 2014/10/30
    この挙動は覚えられないし、運良く残ってたらラッキーくらいに思っておく。てか Emacs しか使ってないんだが…
  • 1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。

    今更ながら基的なことかもしれないが(自分では今も悩み続けている)、業務システムで入力する部分を作っていると、しばしば2つ以上のモデルを同時に保存したい状況に陥る。例えば、伝票を入力する場合であれば、伝票は複数の明細行を持っているので、共通情報を保持する伝票(Slip)クラスと、明細行情報を保持する明細行(Journal)クラスに分けている。そのようなシステムで、Submitボタンを押した後の処理は、模範的にはどのようにすべきなのだろうか? 保存する時には、以下の仕様を満たしておきたい。 class Slip {has_many :journals}; class Journal {belongs_to :slip}; な関連である。 検証エラーが発生したら... 保存は一切しない。 すべてのモデルの検証エラー情報を表示する。 Journalモデルの件数は可変である。 悩みのポイントは、S

    1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

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

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
    mas-higa
    mas-higa 2013/12/10
    コマンドラインからヒアドキュメント使ったことなかったわー。C-d しか使ったことなかったわー。
  • 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にもいろいろある - ザリガニが見ていた...。
    mas-higa
    mas-higa 2013/11/27
    Unicode はクソ / "ざまざまな事情がある" 言い訳しても悪は悪。
  • 改行コードの違いを体感してみる - ザリガニが見ていた...。

    テキストを入力して、保存して、再び画面に入力したままを表示する。これはコンピュータを操作する上で、最も基的な欲求である。出来て当然のことなのだけど、稀に出来なくて思い悩むことがある。 最近のGUI環境は気が利いているので、ほとんどの場合、良きに計らい正しく表示してくれる。しかし、コマンドの世界では、文字コードにまつわるすべての設定を自分でコントロールする必要がある。すると、とたんにこの最も基的な欲求を満たせなくなることが多い。(自分のこと) なぜ文字化けしてしまうのか?なぜ1行しか表示されないのか?なぜgrepで検索されないのか?なぜ1行ずつループ処理してくれないのか?文字コードにまつわる疑問は多い...。基的なことを理解していれば、思い悩む必要はないのに、毎回無駄に悩んで、時間を浪費している気がする。 まずは文字コードの違いから、ちゃんと調べ直してみた。 実験環境 OSX 10.9

    改行コードの違いを体感してみる - ザリガニが見ていた...。
    mas-higa
    mas-higa 2013/11/27
    旧Mac のファイルはゴミなので取り扱わないのが定石じゃないのか。
  • Retinaよりも大切なもの - ザリガニが見ていた...。

    その後の関連日記あり Retina+Mountain Lionのスクロール - ザリガニが見ていた...。 Retinaのほんとうの力 - ザリガニが見ていた...。 Retinaなら3840x2400の超広大なデスクトップを体感できる! - ザリガニが見ていた...。 MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。 発注 WWDCの翌日、MacBook Pro Retinaモデルを発注してしまった。2880×1800の魅力にとり憑かれてしまったのだ。発注したモデルは... 2.6GHzクアッドコアIntel Core i7プロセッサ メモリ16GB フラッシュストレージ512GB 値段は今まで使っていたMacBook2台分以上だが、このスペックなら今後5年以上はそのまま使い続けられるのではないか、と考えての発注であった。 実際過去

    Retinaよりも大切なもの - ザリガニが見ていた...。
    mas-higa
    mas-higa 2012/06/22
    ほんとに、なんで 13" Retina 出さないかなぁ。
  • Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。

    ハッシュとは 一般的に理解すると抽象的で分かり難くなってしまうが、ハッシュとは、あるデータから、一定の計算をして求めた、目的に沿った数値、と思っている。それでは、どのような目的に利用されるのか?自分の知識で考えてみた。 暗号化 webアプリケーション等で、パスワードをDBに保存する時、生のパスワードをハッシュに変換して保存する。 Digest::SHA1.hexdigest等で求めたハッシュから、元のデータを復元するのが非常に困難という特性を利用する。 保存しているパスワードハッシュが、たとえ漏洩したとしても、不正利用を防止できる。 パスワードを照合するときも、ハッシュに変換して、保存しているパスワードハッシュと一致するかどうかで判断する。 同等の確認 長い文字列データを比較する時、全ての文字が等しいかチェックするのは非常に時間がかかる。 しかし、長い文字列データをハッシュに変換しておき、

    Rubyのハッシュテーブルの仕組みを徹底的に理解する - ザリガニが見ていた...。
  • アリスとボブのコラボレーション、gitをちゃんと理解したい! - ザリガニが見ていた...。

    アリスとボブのGitシリーズがになりました! アリスとボブのGit入門レッスン 前回からの続き。ひたすらアリスとボブの操作の記録。 ボブがアリスのプロジェクトを手伝う アリスは自分のプロジェクトが全く進んでいないことに気付いて、愕然とした...。そこで同僚のボブにも手伝ってもらうことにした。 「ボブ、お願い!」アリスはボブに頼んでおきながら、今までの作業に相当疲れたので、すぐに休憩に出てしまった。 アリスとボブは同じマシン上にホームディレクトリを持っている。ボブは早速以下の操作をした。(ボブは優しい。) まずはgitに自分の名前とメールアドレスを設定 bob$ git config --global user.name "bob" bob$ git config --global user.email bob@example.com アリスに教えてもらったパスを指定して、アリスのプロジェ

    アリスとボブのコラボレーション、gitをちゃんと理解したい! - ザリガニが見ていた...。
  • iPadのSafariに不足しているものを補う - ザリガニが見ていた...。

    指でダイレクトに触ってなめらかに反応する、あのiPadUIは、あっという間に使う人々を魅了する。しかし、そのまま使い続けているうちに、実はMacBookのようなマウスを利用したUIほど細かい操作ができないことに、いずれ気付く。 iPadUIには、指先での操作を考慮して、適度なサイズと間隔が保持されている。そのため、マウスのUIほど機能を詰め込むことが出来ず、厳選した機能のみが提供されることになるのだろう。 iPadのSafariに不足しているもの それにしても、今のSafariにどう考えても不足していると感じる機能が、二つある。 表示中のページを閉じる機能 ページ内検索 表示中のページを閉じる機能 例えば、http://b.hatena.ne.jp/hotentry で、気になる記事へのリンクをクリックすると、新規ページが開いてリンク先にジャンプする。 気になる記事を読み終わったら、今

  • "プレビュー.app" の底力 - ザリガニが見ていた...。

    (Leopard Preview.app's potential) アプリケーションの名前こそ「プレビュー」だが、すでに機能は「レタッチ」レベルなのであった! The application's name is "Preview", but the function is "retouch" level! スクリーンショット(Screen capture) ウィンドウの影なし撮影ができる。(command-shift-4 & spaceの影あり撮影と使い分けると便利) "File >> Grab >> Window" is without shadow.(Properly, we can use that "command-shift-4 & space" is with shadow.) タイマー撮影ができる。 "File >> Grab >> Timed Screen" command

    "プレビュー.app" の底力 - ザリガニが見ていた...。
  • Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。

    最近、コマンドばかり作っていて、そんなにコマンド作ってどうするの?と思われそうだが、さらにどんどん作る。今度はRubyで作ってみる。 関連日記 シェルスクリプトでコマンドを作るまで - ザリガニが見ていた...。 C言語でコマンドを作るまで - ザリガニが見ていた...。 Objective-Cでコマンドの中身を作るまで - ザリガニが見ていた...。 作業環境 MacBook OSX 10.6.2 Developer Toolsをインストール済 ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] 基 シェルスクリプトと同じように、行頭に#!解釈してもらうRubyインタプリタのパスを指定する。 コマンド引数は、ARGVという変数に配列として渡される。(ARGV = $*) コマンド自体は、グローバル変数 $0 に渡され

    Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。
  • autotestのGrowl通知をカスタマイズする - ザリガニが見ていた...。

    以下の設定ファイルでGrowlを有効にしたautotestは、テスト結果をGrowlメッセージとして教えてくれるのでとても快適なのだが、いくつか気になる点も出てきた。 # autotest設定ファイル: ~/.autotest require 'autotest/growl' 現状では、failuresやerrorsが発生した時は毎回Growlメッセージが通知されるが、テストが成功を繰り返す場合は何も通知されない。 成功している状態は当然の状況なのだから、この仕様は無駄が無くて良いのだが、テストに不慣れな現状では、毎回テスト結果を通知して欲しい気分だ。 通知されるGrowlメッセージは「Test Failed」か「Test Passed」なので、failuresとerrorsの件数はターミナルのテスト結果を見るまで確認できない。 Growlメッセージにも「1 tests, 1 assert

    autotestのGrowl通知をカスタマイズする - ザリガニが見ていた...。
  • 1