ラベル tips の投稿を表示しています。 すべての投稿を表示
ラベル tips の投稿を表示しています。 すべての投稿を表示

2008年9月3日水曜日

Googleの新しいブラウザChrome レビュー

Googleが開発しているブラウザGoogle ChromeのBeta版がリリースされました。最初から、AJAXを使ったものを含むいろいろなサイトが問題なく動くのはさすが、というところ。(Google にはChrome Botというのがいて、何百万というWebページを自動でテストしてるらしいです。)

Googleにとって、ブラウザ技術というのはサービスを提供するための基盤技術という意味で、まさにOSです。ブラウザの開発は過去にNetscapeが過去のコードを捨てて一から書き直すなどの苦労をしていたように、とても大変な領域なのですが、基盤技術を自分達で作るという正攻法に素直に取り組んで実現までしてしまうのがGoogleらしいですね。

使い始めて驚き。まず、検索バーがありません。Google Chromeのおかげで、検索バーは、本来必要ないものだったことがわかります。使い方は簡単。まず、Ctrl+Lを押してアドレスバーに飛びます。ここで、覚えているURLの一部分なり、キーワードを入れると、過去の閲覧履歴やら、Google Suggestやら、ブックマークやらを検索して、見つけてきてくれます。検索バーなどが統合された分、全体として余計なボタンが省かれたすっきりしたブラウザになっています。


新しいタブを開く操作は、IE7, Firefoxと同じCtrl+Tです。すると、普段よく見てい
るサイトがスクリーンショットとともに一覧表示されます。これは便利。反対に閉じるときはCtrl+Wと、タブを切り替えるときは、Ctrl+Tabを使います。



マウスで選択してもよいし、タブを開くとすぐアドレスバーにフォーカスが移るので、そのままキーボードで検索を開始できます。このあたりのつながりの良さが快適。

各タブ毎にプロセスを生成しているので、重いサイトがあっても、他のページは不自由なく見続けられるなど、技術的にもOS好き、プログラマにとっては興味深いことばかり。ブラウザ中にデータベースを保持できるGoogle Gearsも最初から組み込まれているのもうれしいところ。技術者には、ここにあるGoogle Chrome紹介のコミックがお勧め。(JavaScriptのGarbage Collectionを作り直しているとか、すごい正攻法。これもGmailなど, 自前のGoogle Web Toolkitで作成されている部分の高速化につながるので、自分の財産の価値をさらに高めています)

Web Developer向けの機能として、HTMLソース中の各タグの構造やスタイルを表示してくれるinspector機能がうれしい。FirefoxでFireBugsプラグインと同じような機能が最初から使えるのです。ありがとう、Google。Web開発者の気持ちをよく理解してくれています。


タブをブラウザの外側にドラッグすると、独立したウィンドウになるので、他のページを参照しながら、ブログを書くということも、簡単。

ページ表示の履歴を残さないシークレットモードもあります。のアイコンには笑ってしまいました。スパイ活動に使うのか、なるほどw。リンクを開くときに右クリックで「シークレットモード」を選べます。

IMEのon/off関係なしに、スペースキーで画面のスクロールができるし、わりと細かいところもしっかり実装されていて感心。デフォルトのブラウザに設定して、しばらく使ってみることにします。

(追記)
その他のショートカットキー
  • Ctrl+F ページ内単語検索 これもシームレスで速い!
  • Ctrl+U ページのソースコード表示
  • Ctrl+H 閲覧履歴のページ表示
  • Ctrl+N 新しいwindowを開く
  • Ctrl+R ページの再読み込み
  • Ctrl+J ダウンロード履歴の表示
  • アドレスバーでの検索結果をAlt+Enterで新しいタブで開く
  • backspaceで一つ前のページ、Shift+backspaceで一つ先のページ
  • 意外と便利なCtrl+Shift+Tで閉じたタブを復元。フォームの入力内容も復元されます。何回か押すと、1つ前、2つ前に閉じたタブを復元していきます。
Shift+ESCキーで、各ページがどれくらいメモリとCPUを使っているかもわかります。すごい。



about:network でネットワークのアクセス状況、about:memoryでメモリの使用状況の詳細も見られます。AJAXアプリケーションなどバックグラウンドで通信を行う様子を確認できて便利。


雑感 GoogleがGearsを統合したブラウザを開発し、僕が2年くらい前に予測していた「ブラウザがデータベースを持つ日」がようやく実現されましたが、使う側にとっても、開発者側にとっても、データを扱うという点については、まだまだ不自由が多いと思います。例えば、Twitterの過去ログを追う、などの問題。Twitter APIからログを取得して保存しておくような媒介サービスはたくさんあるけれど、これがブラウザ上でユーザーの手で実現できるところまでブラウザは進化すべきだと僕は考えています。ここからが競争。

2008年3月4日火曜日

USBメモリからLinuxをインストール

PXEBootによるネットワークインストールでもいいけれど、CD/DVDドライブがないマシンの場合、このやり方も簡単。

まず、好きなLinuxのdistributionから、diskboot.imgをダウンロードしてくる。

ブートイメージをUSBメモリ(FAT32フォーマットしたもの)に展開
> cat diskboot.img > /dev/sdg1

/dev/sdg1 はUSBメモリなどのデバイス名+partition番号。
cygwinを使っている場合は、cat /proc/partitionsでどのデバイスが使えるか確認できます。

Linuxのインストールは、USBメモリをマシンに差し込む。起動メニューでUSBメモリを選択すると、Linuxのインストールメニューが出てくる。あとは、ネットワーク経由でパッケージをダウンロードするインストールの方法と一緒。

CDメディアを作成するよりお手軽かな。

2007年12月30日日曜日

サーバーをいくつか経由してsshログインする方法

sshでサーバーをいくつか経由して、目的のサーバーに接続する方法です。

sshで、server(Bとする)に接続したいけれど、severBは、serverAを経由しないとアクセスできない位置に設置されているとします。

  localhost -> serverA -> serverB

ssh serverA ssh serverB

と実行すれば一応接続できるのですが、ssh (remote host) (command ...)という構文で、コマンドを実行するだけなので、serverBにログインした後、すぐconnectionが切断されてしまいます。

rsyncなどは、この形式でも、以下のように使えば、serverBのデータを取得できます。

rsync -av -e 'ssh serverA ssh' serverB:./(src) (dest)

本題のsshですが、

ssh -t serverA ssh serverB

とすると、仮想ttyを作ってくれて、serverBにログイン後、shellでの作業を続けられます。

sshのkey agentを使う設定にしておけば、パスワード認証要らずで、サーバーをどんどん経由して、ログインできるようになります。

2007年9月20日木曜日

Emacsキーバインドの天国と地獄

Emacsキーバインドを覚えて以来、あらゆるエディタでCtrl+N, P, A, Eなどのキーでカーソル移動をしています。Ctrl+X, Ctrl+Sで、ファイル保存とか、Ctrl+\で、日本語入力切り替え。Ctrl+I, O, J, K, Lのあたりも漢字変換のときに便利です。

キーボードによっては、Aの横のキーがCaps Lockなのですが、Emacsキーバインドのために、AltIMEなどのソフトで、Ctrlキーに変更しています。

この操作を覚えると、通常のプログラミング速度が倍以上になりますし(ホームポジションがから手が離れないので、テキストの編集が速くなります)、シェルなどでも同様のキー操作が使えるので、作業効率も上がります。こう書くと、いいこと尽くめなのですが、悪い点が一つ。

Ctrlキーを押す左手小指にダメージがあるのです。Ctrlキー押すと痛くなってしまいました。大した痛みではないのですが、普段よく使うキーなだけに、キーを押すときに少しでも違和感があると、他の作業にすべて影響します。

普通にプログラミングをしている限りは、痛くなるようなことはほとんどないのですが。。。。先週から今週にかけては、朝から晩まで毎日のようにコードを書いていたために、小指に相当な負担がかかっていたようです。

小指の代わりにCtrlキーを押せるものはないかと、手のひらを使ってみたりしましたが、どうにも打ちにくい。

ネットを検索してみると同じような悩みをもつ人はわりといるんですよね。そこで見かけた面白いアイデアはフットスイッチを使う!というもの。確かに、パソコンに向かっているとき、足は空いています。ピアノにもペダルはありますし、エレクトーンのように足が絶え間なく動く操作には慣れっこなので、Ctrlを足で押して、Emacsキーバインドを使うくらいどうってことはなさそうです。

問題なのは、そんなフットスイッチは売っていない、ということ。レーシングゲーム用とおぼしきデバイスはあるのですが、価格が高い上、踏み込むタイプらしく頻繁に押したり離したりという操作には向いてなさそう。


あれこれ考えてみたものの、そういうときは、プログラミング以外のことをすればいい、というのが結論。経験上、小指の痛みも時間が経てば治りますし。

でも、フットスイッチを巧みに駆使しながらキーボード操作ができるとすると、すごいことができそうな気がするんだけど。。。フットスイッチを押しながらだと、アプリケーションをすべてキーボードから操作できてしまうとか。楽器だって楽しく弾けるようになるまでは時間がかかるんだから、キー操作も、それくらいの壁があってもいいんだけどなぁ。

2007年5月24日木曜日

[Tips] キーボードショートカット

Productivity Ninja: 101 Ways to Rock the Keyboard - Dumb Little Man

半分以上は既に知っているんだけれど、それでもまだまだ知らない便利なショートカットが。

Firefoxで、Ctrl+Shift+T で、閉じたタブをもう一度開くことができるなんて知らなかった。うっかり閉じても復活できます。

Gmailも、画面切り換えがかなりスムーズにできます。
G+Iでinboxにもどるとか、J、Kでメッセージ移動とか、/でsearch boxにフォーカスを移動するとか。

2007年5月9日水曜日

[Win] CPUがsvchost.exeに100%占有されてしまう問題

FIX: When you run Windows Update to scan for updates that use Windows Installer, including Office updates, CPU utilization may reach 100 percent for prolonged periods

これ、最近困っている人多いんじゃないかと思う。

svchost.exeがCPUを100%使ってしまう問題の修正です。このhotfixを当てる最中にもこの問題のせいで、CPUがsvchostに占有されてしまって、更新がなかなか進まないという罠。

こんな問題があると途端にWindowsが嫌いになってしまいます。今現在は、MacとWindowsを同時に使うことが多いので、MacのCMにあるWindows(?)さんとMacさんの面白いやり取りが、まさに目の前で起こります。

WindowsさんがMacさんと話していると、突然再起動して固まってしまう例のCMです。

2007年4月2日月曜日

[Eclipse] Subclipse plug-in用のlocale設定

Eclipseでsubversion plug-in (Subclipse)を使っていると、日本語のメニューになったり、$Date$タグの置換が、日本語の日付(何月何日、何曜日)などとなってしまって、英語中心の開発では、困ることが多いです。

localeの設定は、実は、
> eclipse.exe -nl "en_US"
というコマンドラインオプションでできることを発見。これでメニューが全部英語になって、和訳や誤訳などに惑わされないですみます。

日本語で書かれたプログラミング言語の解説書やマニュアルが何故分かりにくいかというと、英語で書かれている用語や概念が、それと1対1に対応しない日本語に訳されているという点。

最初から全部日本語なら、問題ないのだけれど、日本語の文書はたいてい後発だし、上手に訳せて、かつ技術に明るい人なんて、そうはいないだろうから、開発環境は全部英語にするのが実は、労力が少ないのです。

2007年2月20日火曜日

Fat Jar: Jarファイルの中にJarを埋め込む

Fat Jar Eclipse Plug-In

Javaで開発していて、他のライブラリのアーカイブ(Jar)を使っている場合、自分のプログラムもJarとして配布するときに、manifestファイルに適切に外部のJarへのreferenceを書いておかないと正しく動作しません。

通常は、classpathの設定を含めた実行スクリプトを一緒に配布することが多いみたいです。でも、スクリプトを用意するのは面倒ですよね。

そんな煩わしさを取り除くのが、Fat Jar。Jarの中にJarファイルを埋め込んでプロジェクト全体を1つのファイルとすることができます。

Fat Jarは、通常は、外部で参照しているJarを展開してJarの中に埋め込むのですが、One-Jarオプションを選ぶと、jarファイルを展開せずにそのままjarの中に埋め込みます。こちらの方が、構成内容がよくわかります。

Fat Jarを使うと、今まで、
java -cp lib/somelibrary.jar -jar myprogram.jar
などとしていたところを、

java -jar myprogram.jar

と実行するだけでよくなります。意外と知らない人がいると思うので、紹介しました。おすすめです。

最近はJARの作り方も事情が変わっています。2008年8月 http://leoclock.blogspot.com/2008/08/jarjar.html

2006年11月15日水曜日

[TeX] 論文執筆のサイクル短縮

いろいろためしてみたけれど、どうやら、TeXで論文を作成するときは、PDF形式でpreviewするのが最速のようです(Windows環境において)。

こんな発見があったのも、今まで使っていたMikTexのYap(DVI viewer)が、最新版のものでは過去のものより処理が遅くなってしまって、版を確認するのに時間がかかるようになってしまったから。

texを書いてはdvi形式で確認していたところを、代わりにPDFを生成するようにしたら、かなり快適になりました。キー1つでtexをコンパイルして、PDFを一発表示できます。

ポイントは、
  • pdflatexで、texからpdfの生成
  • pdflatexはeps形式の画像ファイルを扱えないので、epstopdfを使うか、distill(角藤さん作成)でコマンドラインからAcrobat Distillerを呼び出して、eps->pdfへの変換をする
    • というか、画像は最初からPDF形式で作ればいい
    • eps、pdfの画像形式を両刀で使えるようにするには、\includegraphics{filename} と書けば、latexのときはfilename.epsが、pdflatexのときはfilename.pdfが読まれます。
  • Acrobat Readerは、ファイルを開くとロックしてしまうので、pdfopen, pdfcloseコマンドでpdfファイルの開け閉めをする
  • pdflatex, bibtex, pdflatex, pdflatexというサイクルを1度実行したら、次回は、pdflatex一回で済ませる
  • これらの作業をまとめて行うMakefileを書く
    • PDFを閉じる - pdflatex - PDFを開く
  • 以前見ていたページに戻るために、Acrobat Readerの方で、以前表示したページを開く、という設定にする
  • Emacsを使っているなら、smart-compile.elなどを活用して、makeコマンドを簡単に呼び出せるようにする。
    • TexnicCenterなどを使うともっと簡単に、使用するコマンドの定義ができるでしょう。

tex file -> latex -> dvipdfm -> PDF fileという流れ(10秒以上はかかるかも)よりは、もちろん高速。2秒くらいでPDFを表示できます(数十ページの文章なら)。ただし、dvipidfmを使ったほうがコンパクトなPDFができます。

これでWISYWIG(What You See is What You Get)でないTeXの欠点が補えます。dvioutやyapは、画像の表示が遅いし、gsviewはPDFも表示できるけれど、viewew自体があまり使いやすくないのです。

長年の悩みの種がようやく解決して、とっても快適になりました。おすすめの方法です。

License

Creative Commons LicenseLeo's Chronicle by Taro L. Saito is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.