タグ

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

  • 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はどのように素早く円を描いていたのか? - ザリガニが見ていた...。
    peketamin
    peketamin 2020/06/18
  • Time Machineは過去をどのように記憶しているのか? - ザリガニが見ていた...。

    Time MachineとTime Capsuleによるバックアップ環境は、面倒な手順なしで、今までにない絶大な安心感を与えてくれる。 バックアップ対象を詳細に選別する必要もなく、起動ディスク丸ごと、つまりマシン環境そのまんまが保存できる。 そして、過去のバックアップ時点の状態はルールに従って*1残され、任意の過去のマシン環境にいつでも戻すことができる。(もちろん、任意のファイルやフォルダだけを復元することも可能) しかも、ディスク容量をそれほど浪費する訳でもなく、おそらく変化した差分のみがバックアップされている様子。なのに、Finderでバックアップファイルに直接アクセスすることも出来て、見た目は起動ディスク以下の一般的なファイルやフォルダが並んでいるだけ。 これまでもバックアップにはいろいろな方法を試してみたが、Time Machineと比較すると、以下のような悩みを抱えていた。 起動

    Time Machineは過去をどのように記憶しているのか? - ザリガニが見ていた...。
    peketamin
    peketamin 2020/05/16
    “Time Machineはこの仕組みを利用して、バックアップをすべてハードリンクとして保存している。”
  • 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

    peketamin
    peketamin 2015/02/09
    バックスペースなるほど!
  • 裏と表のジョブを使い分ける - ザリガニが見ていた...。

    かつて... 今どきのターミナルはタブやウィンドウをいくつでも開けるから、 フォアグラウンドでコマンド実行中に何か別のことがしたくなったら、新たにタブを開いて、そこでコマンドを実行すれば十分用が足りる。 バックグラウンドでコマンドを実行できることも知っているけど、体系的に理解してないのでうっかりミスを繰り返した。 うっかりバックグラウンドで処理していることを忘れていた...。 処理中だと思っていたら停止していた...。 終了したと思っていたら停止していた...。 停止中のプロセスを再開するにはどうする? やっぱり終了したいんだけど、どうすればいいのか? そんなうっかりを繰り返すうちに、見えないバックグラウンドで実行して悩むくらいなら、常に状態が見えるフォアグラウンドにしておいた方が益し。 好きなだけタブを開いてしまえ、という方針になってしまった。 しかし... 何かの補佐で一時的にバックグ

    裏と表のジョブを使い分ける - ザリガニが見ていた...。
  • なぜ足し算より掛け算を先に計算するのか? - ザリガニが見ていた...。

    1+2×3 突然ではあるが、上記数式の答えは、7である。(2×3=6、1+6=7) 左から順に計算すると9になるのだが、9と答えてはいけない。(1+2=3、3×3=9) 四則演算(しそくえんざん)には、加減算よりも乗除算を先に計算する、というルールがあるのだ。 ルールと言われると、決まり事だから守らなければならない、と思って今まで何の疑問も抱かず計算してきた。 ところで一体、どうしてそんなルールになったのだろう? ルールだから? 自分が少年の頃はルールだから、規則だから、と言われると渋々納得していた。 周りの皆もそうするし、乗除算を先に計算しないとテストでも○が貰えないので、言われたとおりに計算してきた。 そんなことを繰り返すうちに、それはいつしか当然の常識となってしまい、何の疑問も感じなくなっていた。 では、自分が大人の今、少年から同じ質問をされたら「ルールなんだよ」と答えるべきなのか?

    peketamin
    peketamin 2014/11/11
  • リモートマネージメントと画面共有の違いを知る - ザリガニが見ていた...。

    今まで、画面共有するなら、以下の方法しか知らなかった。 システム環境設定 >> 共有 >> 画面共有 を「入」にする。 上記でまったく問題ないのだが、実はもう1つ別の方法があった。 システム環境設定 >> 共有 >> リモートマネージメント を「入」にする。 どちらの方法でも同じように、ネットワークを経由して、離れた場所のマシンのGUIデスクトップを操作できる。しかし、それならなぜ2つの方法が用意されているのか?リモートマネージメントは、Apple Remote Desktopが利用する共有サービスだといってしまえばそれまでなのだが、Apple Remote Desktopとは何なのか?何ができるのか?自分はそんな基的なことさえ知らなかったので、その違いを調べてみた。 設定画面の違い 画面共有 リモートマネージメント 基 コンピュータ設定... アクセス許可のユーザ追加 オプション

    リモートマネージメントと画面共有の違いを知る - ザリガニが見ていた...。
  • 必要最小の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の作り方とインストール - ザリガニが見ていた...。
    peketamin
    peketamin 2014/10/16
  • RubyのOptionParserの底力を知る - ザリガニが見ていた...。

    コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基 require 'optparse' OptionParser.new do |op

    RubyのOptionParserの底力を知る - ザリガニが見ていた...。
    peketamin
    peketamin 2014/08/20
  • 迷路の最短経路を求めるには? - ザリガニが見ていた...。

    相当、出遅れた感はあるが、以下の試験問題をやってみた。(Rubyで) さて試験問題です。 内容は、壁とスペースで構成された迷路が与えられたとき、スタート地点からゴール地点に至る最短経路を求めよ、というものです。 たとえば、S:スタート G:ゴール *:壁 $:解答の経路 としたとき、 ************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********************** * * G * * * *********** * * * * ******* * * * * * **************************という入力に対し、 **************************

    迷路の最短経路を求めるには? - ザリガニが見ていた...。
    peketamin
    peketamin 2014/08/10
  • Star RubyでHello World! - ザリガニが見ていた...。

    前回からの続き ぱらぱらアニメ サンプルコードのhelloworld.rbは、コメント行を削除してみると、以下のようなシンプルな構成となっている。 require "starruby" include StarRuby font = Font.new("fonts/ORANGEKI", 12) white = Color.new(255, 255, 255) Game.run(320, 240, :title => "Hello, World!") do |game| break if Input.keys(:keyboard).include?(:escape) game.screen.clear game.screen.render_text("Hello, World!", 8, 8, font, white) end Game.runブロックによって、ゲームウィンドウが表示される。

    Star RubyでHello World! - ザリガニが見ていた...。
    peketamin
    peketamin 2014/04/19
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

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

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • 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にもいろいろある - ザリガニが見ていた...。
    peketamin
    peketamin 2013/11/25
  • プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。

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

    プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。
    peketamin
    peketamin 2013/07/22
  • MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。

    以前の日記「Retinaよりも大切なもの」でも書いた「Retinaディスプレイを縦長に使う自由が欲しい」という欲求は、なんとOSX標準の機能で簡単に実現できてしまうのであった! 参考ページ:[Mac] 知らない人は損してると思うMacの使い方【その4】 | Appleちゃんねるの「MacBookでポートレート表示」の項目。(素晴らしい情報に感謝!) システム環境設定を起動(すでに起動している時は一旦終了してから)して、commandキーとoptionキーを押しながら、「ディスプレイ」をクリック。すると、いつもは見えない回転という設定が現れるのだ! MacBook Pro Retina15 OSX 10.8.2の環境において、「回転」の設定項目が表示された。 初代 MacBook OSX10.6、2008late MacBook OSX10.6の環境では、いくら試しても「回転」の設定項目は表

    MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。
    peketamin
    peketamin 2013/03/07
  • アリスがチャレンジなコードを書く時、git branchをちゃんと理解したい! - ザリガニが見ていた...。

    アリスとボブのGitシリーズがになりました! アリスとボブのGit入門レッスン アリスは迷っていた。現状のshowメソッドは固定されたメッセージしか出力しないが、理想的にはユーザーの条件によって変化させたいと。 しかし、その機能を実装するためには結構な大改修になってしまう。果たして今の自分の技術でちゃんと完了させることが出来るだろうか?この機能追加をやるべきか、このままにするか...。 アリスはこの修正が失敗に終わった時のことを考えて、ボブに連絡しておくことにした。「失敗したらごめんね。」と。(なんて無責任なアリス...。) 連絡を受けたボブは、アリスの機能追加には大賛成。ボブ:「ただし、新しいブランチを追加して、そこで作業くれ。」と。アリス:「ブランチ???」 アリスはブランチを理解できていないが、とりあえず、ボブに説明された手順をそのままやってみることにした。アリス:「習うより、慣れ

    アリスがチャレンジなコードを書く時、git branchをちゃんと理解したい! - ザリガニが見ていた...。
  • 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よりも大切なもの - ザリガニが見ていた...。
  • なるべく覚えないviエディタの使い方 - ザリガニが見ていた...。

    viというエディタがある。長い歴史のあるエディタである。ユーザー視点で見ると、コマンドモード・入力モードという二つのモードがあって、モードを切り替えながらテキスト編集するスタイルである。GUI全盛のモードレスなエディタに慣れきってしまった自分には、かなり面らったエディタであった。初めて起動した時、文字も入力できず、終了の仕方も分からない...。何じゃこれは? そう思って調べてみると、viには非常に多くのショートカット的コマンドがある。その多さにまず面らう。とても覚えきれないと。以下は、自分で調べて理解できた使い方である。軽く100以上の操作がある。(これでもなるべく行を節約して書いたのに)しかも、以下の表でもすべてを網羅できている訳ではない。 どうにか、これらのコマンドをなるべく覚えないで、そこそこ使えるようになりたい。何を覚えて、何を覚えなくていいのか、探ってみた。 viエディタの使

    なるべく覚えないviエディタの使い方 - ザリガニが見ていた...。
  • メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。

    OSX 10.6 Snow Leopardは、極めて安定した、信頼性の高い、快適なOSとなった。但し、ハードディスクから起動する環境において、その快適さを保つためたった一つ気を付けておくべきことがある。それは、スワップ使用領域の増加を極力抑えること。 スワップへのアクセスが頻繁に発生している時は、あのレインボーカーソルがぐるぐる回っている時である。どうしようもない操作レスポンスの低下に悩まされる。そんな状態に極力陥らないように、使っていないメモリを素早く解放する方法を模索してみた。 その1 フォルダ容量を計算する フォルダ容量を計算する過程でメモリが解放されることがある。それを利用した方法は、3つある。どれも仕組みは同じなので、どれか一つの方法を実行するだけで十分。 Finderを利用する方法 Finderで起動ディスクのルートを開いて、リスト表示にする。(command-2) 表示オプシ

    メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。
    peketamin
    peketamin 2011/06/15
    "Xcodeが入っていればサードパーティアプリ入れなくても purge コマンドで解放出来る"
  • 1