サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
zariganitosh.hatenablog.jp
awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基本動作 awkの基本動作は、とってもシンプルである。
iPhoneには紙のマニュアルは用意されていないが、web上にはちゃんと公開されている。そのリンクは、iPhoneのSafariのブックマークにも、デフォルトで登録されていた。 使いこなすためのヒント - iPhoneの使い方をすべて紹介(iPhone >> Safari >> ブックマーク第一階層 >> iPhoneユーザーガイド) iPhone ユーザガイド(203ページのPDF版) やはり、一通りは読んでみるべきだと思った。(今までいい加減に使っていたので)いくつか知らない操作も発見した。また、マニュアルに書いてないこともある。以下は、自分が使いそうな、最初は気付かなかった操作のメモ。 この他にも未知の操作がいっぱいあるのだと思います。ご存知の方は、ぜひ、教えて頂きたいです。 環境 iPhone 3GS / OS 3.0 MacBook OSX 10.5.7 iTunes 8.2.1
iPadは場所を選ばず手軽に使えて便利なのだが、結局のところ、MacBookの代わりにiPadで作業しようとする限り、MacBook以上に快適に作業できることはなくて、現状ではiPadでの作業はMacBookに比べて冗長になる。(もちろん、iPadでしかできない作業とか、iPadが得意な作業というのもあって、例えば、現在地を絶えず追跡しながらカーナビのように地図アプリでナビゲーションするとか、PDFをまるで紙の本のように再現するとか。) たぶん、長年MacBook(のようなマウス&キーボードUIのパソコン)を使ってきて、その環境での作業が慣れているせいもあるかもしれない。それに、そもそもマウス&キーボードUIには25年以上の歴史があり、その中で常に進化し続けてきた。今のMacBookは、すべてがマウス&キーボードUIに最適化され、かなり成熟した作業環境になっているはずなのだ。さらには、自分
昨年の11月以降、新規購入したMacBook(アルミ削り出しではなく、従来のポリカーボネートの白モデル)の利用環境を見つめ直して以来、集中的にMacBookやOSXの使い方を調べ続けてきた。 以下は、この2ヵ月間で自分のMacBookの利用環境はどのようになったのか、新規購入したMacBookにインストールしたApple以外のソフトウェアの状態をベースに*1、そこからの変化や新たに気付いた使い方のメモ。 OSXの使い勝手 OSXの利用環境を決定付ける要因としては、どんなソフトウェアをインストールしているかよりも、以下の要素が重要だと思う。 どんなソフトウェアが常時起動しているか(常時起動しているプロセスは何か) どんなソフトウェアが即利用できる状況にあるか ショートカットやマウス操作一発で呼び出せる機能は何か メニューバーアイテムには何を表示しているか Dockに何を登録して、どのように利
viというエディタがある。長い歴史のあるエディタである。ユーザー視点で見ると、コマンドモード・入力モードという二つのモードがあって、モードを切り替えながらテキスト編集するスタイルである。GUI全盛のモードレスなエディタに慣れきってしまった自分には、かなり面食らったエディタであった。初めて起動した時、文字も入力できず、終了の仕方も分からない...。何じゃこれは? そう思って調べてみると、viには非常に多くのショートカット的コマンドがある。その多さにまず面食らう。とても覚えきれないと。以下は、自分で調べて理解できた使い方である。軽く100以上の操作がある。(これでもなるべく行を節約して書いたのに)しかも、以下の表でもすべてを網羅できている訳ではない。 どうにか、これらのコマンドをなるべく覚えないで、そこそこ使えるようになりたい。何を覚えて、何を覚えなくていいのか、探ってみた。 viエディタの使
指でダイレクトに触ってなめらかに反応する、あのiPadのUIは、あっという間に使う人々を魅了する。しかし、そのまま使い続けているうちに、実はMacBookのようなマウスを利用したUIほど細かい操作ができないことに、いずれ気付く。 iPadのUIには、指先での操作を考慮して、適度なサイズと間隔が保持されている。そのため、マウスのUIほど機能を詰め込むことが出来ず、厳選した機能のみが提供されることになるのだろう。 iPadのSafariに不足しているもの それにしても、今のSafariにどう考えても不足していると感じる機能が、二つある。 表示中のページを閉じる機能 ページ内検索 表示中のページを閉じる機能 例えば、http://b.hatena.ne.jp/hotentry で、気になる記事へのリンクをクリックすると、新規ページが開いてリンク先にジャンプする。 気になる記事を読み終わったら、今
僕のMacができるまで | Macの手書き説明書さんの記事に触発されて、いつか自分でも似たようなことを書き留めておきたいと思っていた。MacBookを新規購入したので、今こそ、そのチャンス!(こういうことって、当り前の環境として使ってしまっていると、何をインストールしていたか忘れてしまう。新規インストールする時に改めてその便利さを再確認することが多い。) インストール前のいい訳 PathFinderというOSの操作感をそっくり代替してしまうような素晴らしいソフトウェアもあるが、日常的にはOSXのFinderを利用している。*1 メールとWEBブラウザについても、(機能拡張するソフトウェアはインストールしているが)OSX標準のMailとSafariをメインに利用するようにしている。そうすると、MobileMe(.mac)を利用してメール設定やブックマークをあっという間に同期できる便利さに惹か
本当はエスケープシーケンスのことを調べていたのだが、その前に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
(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
Snow Leopardになって、サービスメニューにAutomatorのワークフローを自由に追加出来るようになった。今まで各アプリケーションから一方的に提供されるサービス機能の中で、便利そうなのを見つけて利用するしかなかったが、これからは自分が欲しいと思う機能を創意工夫で追加できるようになったのだ。シンプルなAutomatorのワークフローを作成するだけで。*1 しかも、メニューとして表示されるのは、その状況で利用できるサービスのみに限定されるようになった。以前のように、利用できないものまで含めて、登録されているサービスがすべて表示されて、多すぎるメニューで溢れ返って選択するのが面倒臭くなる状況も改善された。 また、アプリケーション名 >> サービス 以外にも、コンテクストメニューやアクションメニュー(Finderツールバーの歯車アイコン)にも、利用可能なサービスが表示されるようになった。
前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわる悩みとはおさらばできると思ったら、まだダメだった...。 実験環境 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
そもそも、マルコフ連鎖とは何なのか?全く聞いたこともなかった。そして、文章を要約するのはとっても高度なことだと思っていて、自分のレベルではその方法を、今まで思い付きもしなかった。 しかし、以下のようなシンプルなRubyコードでそれが出来てしまうと知った時、目から鱗である...。一体、何がどうなっているのだ?コードを追いながら、マルコフ連鎖を利用するという発想の素晴らしさを知った! 作業環境 MacBook OSX 10.5.7 ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] mecab utf8環境でインストール済み マルコフ連鎖に出逢う rssを流し読みしていると、以下の日記に目が止まった。(素晴らしい情報に感謝です!) MeCabを使ってマルコフ連鎖 一体何が出来るコードなのか、日記を読んだだけではピンと来なかっ
その後の関連日記あり Retina+Mountain Lionのスクロール - ザリガニが見ていた...。 Retinaのほんとうの力 - ザリガニが見ていた...。 Retinaなら3840x2400の超広大なデスクトップを体感できる! - ザリガニが見ていた...。 MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。 発注 WWDCの翌日、MacBook Pro Retinaモデルを発注してしまった。2880×1800の魅力にとり憑かれてしまったのだ。発注したモデルは... 2.6GHzクアッドコアIntel Core i7プロセッサ メモリ16GB フラッシュストレージ512GB 値段は今まで使っていたMacBook2台分以上だが、このスペックなら今後5年以上はそのまま使い続けられるのではないか、と考えての発注であった。 実際過去
二年前にMacBookを使い始めた時から、すっかりUSキーボードが気に入ってしまった。USキーボードを選択したきっかけは、実際に店舗で触ってみて以下の理由から。 MacBookになってから、トラックパッドがとってもでっかくなった! これだと、入力中に手のひらが触れてしまい、誤入力になるかもしれない。(慣れの問題もあるが) さらに、日本語キーボードだとホームポジション(FとJの位置)が左寄りになる。(Jの位置がほとんど中央) Windowsマシンのトラックパッドが左寄りになる理由はここにあるが、デザイン性を重視するAppleはそんな対応は絶対にやらなそう。 日本語キーボード USキーボード USキーボードの魅力 そこで、USキーボードを実際に使ってみると、思いのほか快適。 USキーボードだとホームポジション(FとJの配置)がより中央寄りになる。(完全に中央じゃないけど許せる範囲) 入力姿勢も
かつてのMac OS9までの描画エンジンの主役はQuickDrawが担っていた。GUIなOSでは、文字も含めてすべてをグラフィックとして扱うので、画面に見えているすべてのもの*1はQuickDrawによって描かれていたことになる。描画エンジンは、GUIなOS開発の要となる技術である。その出来が、GUIなOS開発の成否を分けるとも言える。 そして、最初期のQuickDrawは、ビル・アトキンソンがたった一人で開発したそうである。 当時(25年以上前)のCPUは、動作クロックが8MHzという性能だった。(現在は2GHz=2000MHzかつ、複数コアが当たり前) そのような性能であっても、違和感なくマウスで操作できるOS環境にするために、斬新な発想や試行錯誤を重ね、相当な努力の末に開発されたのがLisaやMacintoshであった。 Amazon.co.jp: レボリューション・イン・ザ・バレー
Snow Leopardを使い始めて2ヶ月が経過した。いろいろ気にしながら操作していると(OSX 10.5からの機能の含めて)今更ながら発見が多い。一つ一つはちょっとした便利さなのだけど、それがたくさん集まると、とっても便利になるはず。そう思って、メモしていたことを書き出してみた。 辞書 command-control-Dで、そのままcommand-controlを押し続けると...(Dは放す) マウスの移動に合わせて、ポップアップ辞書の表示も更新される!(OSX 10.5、OSX 10.6) ポップアップ辞書がうまく表示されない場合の参考に、コメントと徹底的に辞書で調べるもどうぞ。 クリッピングファイル クリッピングファイルが、選択可能なテキストになった。(OSX 10.5までは、選択できないテキストだった。) メニューバーのサウンドアイコン(音量調整) shift-クリックで、警告音の
Thoughts on Flash(フラッシュについての見解)が、Steve Jobsのサイン入り、Appleの正式見解として発表されていた。素晴らしい日本語訳のページも登場した。(感謝です!)振り返ってみると、Appleは過去にも、その当時に主流だったものをバッサリ切り捨ててきた経緯がある。それに替わって取り入れた技術がどうなったか追ってみると、とっても興味深い。 スティーブ・ジョブズの出来事年表 1984年 Macintosh発売 1985年 Appleを退社、NeXTを創業 1989年 NeXTSTEPマシン発売 1996年12月 AppleがNeXTを買収、暫定CEOとして復帰 1998年05月 iMac発売、FD・ADB・SCSI無し、USB採用 1999年06月 iBook発売、AirPort(無線LAN)採用 2000年09月 OSX Public Betaリリー
プロセス置き換えとか、名前付きパイプとか、とても便利な機能なのだけど、その仕組みはどうなっているのだろう?断片的な知識ばかりでは、その核心にはなかなか辿り着けない。サンプルコードの真似はできるけど、それ以上の発想はできない...。もっと根本的なところからちゃんと理解しておかないと、いつまでたってもコマンドの使い方の本質が理解できないと感じた。プロセスとは何か?パイプとは何か?リダイレクションとは何か?ファイルディスクリプタとは何か?可能な限りその本質を探ってみようと思う。 UNIXのプロセス UNIXでは、複数のユーザーがログインした状態で、同時に複数の処理を依頼される状況が多々ある。 ところが、どんなに高性能なCPUであっても、ある瞬間に処理できるのはたった1つの処理だけである。 そんな時OSは、それぞれの処理に必要なメモリ領域を割り当てて、CPUをタイミングよく切り替えながら同時並行的
アリスとボブのGitシリーズが本になりました! アリスとボブのGit入門レッスン アリスは迷っていた。現状のshowメソッドは固定されたメッセージしか出力しないが、理想的にはユーザーの条件によって変化させたいと。 しかし、その機能を実装するためには結構な大改修になってしまう。果たして今の自分の技術でちゃんと完了させることが出来るだろうか?この機能追加をやるべきか、このままにするか...。 アリスはこの修正が失敗に終わった時のことを考えて、ボブに連絡しておくことにした。「失敗したらごめんね。」と。(なんて無責任なアリス...。) 連絡を受けたボブは、アリスの機能追加には大賛成。ボブ:「ただし、新しいブランチを追加して、そこで作業くれ。」と。アリス:「ブランチ???」 アリスはブランチを理解できていないが、とりあえず、ボブに説明された手順をそのままやってみることにした。アリス:「習うより、慣れ
前回、cronでジョブ(コマンドやスクリプト、単一のプログラムなど)を自動実行するために、crontabからその設定をする方法について調べていた。自分なりにかなり詳細に。 ところが、OSX 10.5ではcronを利用してジョブを自動実行する仕組みは一切、利用されていなかった...。ユーザーがcrontabで設定ファイルを作成しない限り、cronさえ起動していない状態だ。(crontabで設定ファイルを作成すれば、cronも起動するようになる。)cronに替わって、OSX 10.5ではlaunchdが活躍していた。launchdはcron以上に柔軟にジョブを管理する仕組みを持っている。 例えば、スティッキーズをspotlightで検索可能な状態にするために、cronを使ってStickiesDatabaseを1分ごとにコピーしていた。*1 最初は無差別にコピーしていたが、 * * * * *
ここから始まるアリスとボブのGitシリーズが本になりました! アリスとボブのGit入門レッスン gitの解説には素晴らしいページがある。 git チュートリアル (バージョン 1.5.1 以降用) Git ユーザマニュアル (バージョン 1.5.3 以降用) こんなに親切に説明されているのに、読んでいるだけではgitの仕組みが見えてこない...。(そうです。自分の理解が悪いのです。)ちゃんと理解したいので、チュートリアルに出てくるアリスとボブになりきって、実際に作業してみることにする。以下は淡々としたその作業記録と自分の理解のイメージ。 環境 MacBook OSX 10.5.4 Xcode3.0以上インストール済 インストール gitのページから最新版をダンロードしてみた。現在のバージョンは1.6.0.1のようだ。 cd ~/Downloads curl http://kernel.or
今までおろそかにしていた「ルート設定」ではあるが、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パス書式 処理されるコントローラー、アクション
OSX 10.6 Snow Leopardは、極めて安定した、信頼性の高い、快適なOSとなった。但し、ハードディスクから起動する環境において、その快適さを保つためたった一つ気を付けておくべきことがある。それは、スワップ使用領域の増加を極力抑えること。 スワップへのアクセスが頻繁に発生している時は、あのレインボーカーソルがぐるぐる回っている時である。どうしようもない操作レスポンスの低下に悩まされる。そんな状態に極力陥らないように、使っていないメモリを素早く解放する方法を模索してみた。 その1 フォルダ容量を計算する フォルダ容量を計算する過程でメモリが解放されることがある。それを利用した方法は、3つある。どれも仕組みは同じなので、どれか一つの方法を実行するだけで十分。 Finderを利用する方法 Finderで起動ディスクのルートを開いて、リスト表示にする。(command-2) 表示オプシ
ハッシュとは 一般的に理解すると抽象的で分かり難くなってしまうが、ハッシュとは、あるデータから、一定の計算をして求めた、目的に沿った数値、と思っている。それでは、どのような目的に利用されるのか?自分の知識で考えてみた。 暗号化 webアプリケーション等で、パスワードをDBに保存する時、生のパスワードをハッシュに変換して保存する。 Digest::SHA1.hexdigest等で求めたハッシュから、元のデータを復元するのが非常に困難という特性を利用する。 保存しているパスワードハッシュが、たとえ漏洩したとしても、不正利用を防止できる。 パスワードを照合するときも、ハッシュに変換して、保存しているパスワードハッシュと一致するかどうかで判断する。 同等の確認 長い文字列データを比較する時、全ての文字が等しいかチェックするのは非常に時間がかかる。 しかし、長い文字列データをハッシュに変換しておき、
~/.rbenv/以下に複数のRubyバージョンをインストールして、それぞれのRuby環境を切り替える仕組みを提供する。 ~/.rbenv/ (rbenvがRubyを管理するルートフォルダ) ~/.rbenv/shims/ (rubyやgemがインストールするコマンドへのラッパーを保存しておくフォルダ) ~/.rbenv/version (global環境のRubyバージョンを記録するファイル) ~/.rbenv/versions/ (Rubyの各種バージョンをインストールするフォルダ) Ruby環境の構造 例えば、rbenvがインストールしたRuby-1.8.7-p375は、以下のような構造となっている。 ~/.rbenv/versions/1.8.7-p375/bin/(実行コマンドを含む:erb gem irb rake rdoc ri ruby testrb) ~/.rbenv/v
コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基本的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基本 require 'optparse' OptionParser.new do |op
Time MachineとTime Capsuleによるバックアップ環境は、面倒な手順なしで、今までにない絶大な安心感を与えてくれる。 バックアップ対象を詳細に選別する必要もなく、起動ディスク丸ごと、つまりマシン環境そのまんまが保存できる。 そして、過去のバックアップ時点の状態はルールに従って*1残され、任意の過去のマシン環境にいつでも戻すことができる。(もちろん、任意のファイルやフォルダだけを復元することも可能) しかも、ディスク容量をそれほど浪費する訳でもなく、おそらく変化した差分のみがバックアップされている様子。なのに、Finderでバックアップファイルに直接アクセスすることも出来て、見た目は起動ディスク以下の一般的なファイルやフォルダが並んでいるだけ。 これまでもバックアップにはいろいろな方法を試してみたが、Time Machineと比較すると、以下のような悩みを抱えていた。 起動
前回、なるべく覚えないで使えるようになろう!と模索していたが、やっているうちに全部覚えたくなってしまった...。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行で併記する時に使う #
OSX 10.5以降では、何もしなくてもターミナルは日本語を表示してくれる。これまでデフォルト設定のまま問題なく使えていたので、無関心になりがちだった。でも、改めて操作方法や設定を調べ直すと、便利な操作や設定があることに気付かされる。そして、新たな操作や設定を知ることは、シェルやコマンドの仕組みを覚えることに繋がる。きっと、まだまだ自分の知らない多くの技が眠っているはず。 作業環境 MacBook OSX 10.6.2 bash $ bash --version GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) Copyright (C) 2007 Free Software Foundation, Inc. ターミナルの操作 クリア command-K、あるいはcontrol-Lで、ターミナル画面のクリア。(ほぼ同
次のページ
このページを最初にブックマークしてみませんか?
『ザリガニが見ていた...。』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く