サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
lab.urume.net
Posted on May 8, 2011 by cotaro node.jsのユニットテスト用ツールにnodeunitがある。 処理結果の判定を行う部分にはnodeunitが使えるが、そもそも非同期処理の処理結果を適切に受けとるワークフローが不明だった。 ざっと調べたところでは、トルコのKedir Pekelさんの「Testing NodeJS Powered Web Applications」というポストが秀逸だった。 要点は以下のとおり。 ベースのワークフローとして、nodeunit付属のhttputilを使う 処理結果はhttputilのclient.fetch()のコールバックの中で判定する 複数の非同期リクエストの複合ワークフローは” async“を用いて構築する(npm install可能) 上記の記事では、httpリクエストを関数にマップする手順のほか、Webフレームワーク
Posted on May 2, 2011 by cotaro サーバサイドJavascriptのアプリケーションサーバ「node.js」と言えば、高効率の非同期処理で知られる。 非同期処理は効率と引換えにコールバック地獄に陥るという批判をどこかのサイトで読んだのだが、やってみたらまさにその通りでびっくりした。 通常のプログラミングでは、関数やメソッドの返り値のreturnを加工して処理を進めていくが、非同期処理だと、returnを無視して処理がガンガン進んでしまう。 仕方がないので、一度コールバックを定義し始めると後続の処理もすべてコールバックで処理することになる。 コールバック地獄の対策については、「東京Node学園#1「非同期プログラミングの改善」のエッセンス」というプレゼンで解決法が提示されている。
なぜかubuntuはしつこくIPv6をデフォルトでONにする設定にこだわり続けていて、チューニングと称してオフに設定するTipsがポピュラーになっている。 UNR 9.04 MSI Wind U100 Wireless Card issue(ubuntu forums)の回答によると、9.04(jaunty)からその設定方法が変更されたという。 従来の/etc/modprobe.d/aliasesが廃止され、/etc/sysctl.confにnet.ipv6.all.disable_ipv6=1
玄箱HGのブートローダーをU-Bootというものに入れ替えた。 U-Bootは/dev/hda1の/bootディレクトリにあるvmlinux.UBootという名前のkernelファイルを読みに行くプログラム。 (玄箱の通常のブートローダーも同じ方式でブートするものと思い込んでいたが、実は一度FlashROM内のLinux Kernelをブートしているらしい) 無理に導入する必要もないものだが、いざというときには対話ブートで原因追究できるので便利ではある。 U-Bootのインストール インストール手順じたいはhttp://www.genbako.com/u-boot_loader/How_to_write.txtの説明どおり非常に単純。 オリジナルカーネルで起動します。 機種を確認しましょう。間違えると再起不能です。(JTAG対応可) 玄箱 u-boot-hd.flash.bin 玄
玄箱にDebianインストールするための手順はわりと知られているが、EtchからLennyにアップグレードする手順は今のところあまり知られていない。 まず、U-BootをEtchの環境で事前にインストールしておき、2.6系のkernel(uImage版)でブートできるようにしておく。 あとはDebianの一般的な手順と同様、/etc/apt/sources.lstを書き換えてetchからlennyに変更してからapt-get update;apt-get dist-upgradeすれば良い。 U-Bootがキモで、事前にインストールしておかないとDebianがブート不能になる。 (2ch情報による。ブートプロセスで2.4系カーネルが使われるのがネックになっているので、Etchで2.6カーネルを使用しているというだけでは不足) EMモードから改めてU-Bootをインストールすれば直せる
iPod touchの弱点は一歩外に出るととたんにネットワークからオフラインになること。 Instapaper(無料)は、WiFi接続時にWebを保管&ダウンロードしてオフラインで読めるツールだ。 まさに、これを待っていた。 まず、おおざっぱなセットアップの流れ。 AppStoreでInstapaperをiPhone/touchに検索&インストール Instapaperを起動したらアカウントを作成することになる つづいてページ保存用のブックマークレットをブラウザに登録することになる。登録方法はInstapaperのサイトに従う。要するにURLのjavascriptより前のアドレスを消す、という例の作業。(まずはiPhone/touchのSafariブラウザに登録するが、のちにinstapaperのWebサイトからPCのFirefoxにもブックマークできる) つづいて使い方。 普段どおり
DeliciousのブックマークレットをiPhone/iPod touchから直接登録できるページが世の中に見当たらなかったので作ってみた。 Delicious保存用ブックマークレット登録ページ スクリプトはDeliciousのbookmarkletページからそのまま持ってきたもの。
UbuntuはインストールCDが高機能で非常に簡単なのは良いのだが、CD-ROMドライブがないとどうにもインストールできない。 HDD上のISOイメージをブートしようとしたことがあるが、うまくいかなかった。 今回はUNetbootinというネットワークインストーラを使ってインストールディスク無しでインストールできた。 UNetbootinはUbuntuだけでなく、Fedoraなどもインストールできる。 ディストリビューションごとに別の専用インストーラを選択する(そのためパッケージを間違えると別のディストリビューションが入ってしまう)。 パッケージはWindows用とLinux用があるが、基本的には同じもののはず。 パッケージインストール後に再起動するとブート画面(WindowsブートローダかGRUB)でUNetbootinを選択できるようになる。 インストーラに入ると、あとはコンソ
パソコン廃棄にあたってHDDのデータ消去を行った。 Linuxでは「ファイルを完全に消去するには」(@IT)で紹介されていたshredというコマンドが使える。 詳細なオプションはJManで。 rmしただけではリンクが消えるだけで実データは消えない、というところまではよく知られているところだろう。ファイル復活ユーティリティが存在するのも実データが残っているからだ。 実データを消去したいとなるとHDD全体に別のデータを上書きしておく必要がある。 0か1のどちらかのビット値を書いておけば良いと考えるところだが、それだとアナログ波形が残ってしまうのでランダム値を書き込む、というのがshredの目的だ。 HDD廃棄の場合は # shred -n 2 -z -v /dev/hdb のように(オプションはさておき)、HDD単位のデバイスファイルを指定して丸ごと消すのが便利。 当然ながらシス
mkfs.ext3 -c /dev/hda1のように-cオプションをつけると、不良セクタをスキャンしてそこを使わないようにファイルシステムを作成できる。 各種ディストリビューションのGUIインストーラにもこのオプションがあるはずだ。 また、fsckにも同じ機能の-cオプションがある。 が、不良セクタ上に書かれたデータは結局失われているので、どうせならmkfsでフォーマットしてバックアップからリカバリした方が良い。 もっと言うとそんなディスクはもう使わない方が良いのだが、そこはポリシーの問題なので問わない。 ついでに言うとfsckはデータを壊す。 というか、壊れているデータを「まさに壊れていますね」と判断して消す方向に作用する。 先ほどfsckに-yオプションをつけて走らせたら、沢山のファイルがガーっと消えた。 正直、-yオプションには意味がない。 30分くらい「お前はもう死ん
FONでは一般公開用の”FON_AP”と、自分用の”MyPlace”の2種類のアクセスポイントが動く。 もちろん自分が利用するときには”MyPlace”に接続するのだが、これまではネット接続専用として利用してきた(ややセキュアな公衆無線LANとして)。 使ってみると有線よりも無線の方が断然便利(ただしデスクトップPCの場合は除く)だということが分かったため、”MyPlace”からは自宅内LANの玄箱も利用できるように変更した。 まず、物理的な接続を変更。 これまで、La Fonera(FONの無線ルータ)をブロードバンドルータの外に(つまりWANに直接)接続していたのだが、これを(玄箱を含む)LAN側につなぎかえた。 FONを自宅LANにつないだときのセキュリティの注意点については↓の記事が良くまとまっている。 FONはどれだけ使える?(4)—セキュリティには十分注意を(ITpro
オープンソース・ムーブメントは重要な潮流だと思う。 フリーソフトウェアから生まれ、Web2.0ブームを派生した。 オープンソースがフリーソフトウェアにつけ加えたのは、インターネットをディープに活用した大人数開発モデルである。 その生態系の違いは『伽藍とバザール』(和訳)と評された。 “伽藍”と”バザール”の間には、ひとつの重要な発想転換があった。 課題を発見する人、解決法を考案する人、コードを実装する人、成果をレビューする人はそれぞれバラバラで良い、ということだ。 オープンソースがグローバルな問題を解決するかもしれない 元世界銀行副総裁のJ.F.リシャールは、このようなオープンソースの手法を政治に応用できるのではないか、と考えた。 『問題はグローバル化ではないのだよ、愚か者』という本にその具体論が描かれている。 いま僕らが抱えている危機は地球レベルのものであって、各国政府とその寄
ディストリビューションをアップグレードする場合に、ルートパーティションのディスク容量不足で止まることがある。 僕の場合はubuntuのupdate-managerを使っている際にエラーが出たのだが、これも結局apt-getのエラーだった。 具体的には、/var/cache/apt/archivesにパッケージファイルをダウンロードするので、このディレクトリの空き容量を確保すればよい。 本来は環境変数などでこのディレクトリを変更した方が簡単だと思うのだが、多少調べた程度では分からなかったので今回は別の手で。 まず、本当に物理ディスクが足りない場合はどうにもならない。ディスクを買い足すなどして別パーティションに十分容量があることが前提だ。 このパーティションをmountするかシンボリックリンクする。 # mount /dev/hdb3 /var/cache/apt/archives/ ま
Liquid Rescale GIMP pluginというオープンソースのGIMPプラグインがいまdel.icio.usでやや人気になっている。 その内容を見て久々に驚嘆した。 一見地味なのだが、技術と効能の両面で優れていて、じわっとすごい。 このプラグインが何者なのかを理解するためには、examplesのページに貼り付けられたデモ動画を眺めると良い。 英語で意味が分からないという人は、中心的な被写体と背景がそれぞれ違った割合でリサイズされてゆく点に注目すると「おお!」と来るものがあるかもしれない。 人間の目から見るとあまりに自然すぎて、逆に何がすごいのか分からなかったリする。 ピンと来ない人は、動画の途中で人を消す部分が出て来るので、ここで「背景が白抜きになってないじゃん」と驚いて欲しい。 サイトのタイトルに”content-aware resizing plugin for GI
先日、XREAのMySQLデータベースをバックアップしたのだが、文字コードのトラブルでリストアできないことに気づいた。 経緯と対策を整理してみる。 問題は、MySQLの文字コードが4種類指定できてしまうことから来ている。 設定はmysqlに接続した状態でstatusコマンドを入力すると確認できる。 mysql> status Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 このうち、表データそのものはDb characterstの文字コードで格納されているが、mysqldumpコマンドで出力される文字コードはServer charactersetになる。 上の例ではたまたまlatin1に揃っている(latin
XREAのMySQLをバックアップする手順は比較的知られているが、初手から一貫した手順が見当たらなかったのでまとめてみる。 XREAのWeb管理画面にログインして[ホスト情報登録]→[SSH登録] 5分ほど待つ SSHクライアントでs???.xrea.com(自分のサーバ)に接続。ID、PassはWeb管理画面と同じ シェルからダンプコマンド入力→ mysqldump -u ユーザーID –password=’データベースのPass’ –opt データベース名 > /virtual/ユーザーID/mysql.dump シェルからファイル圧縮→ gzip mysql.dump SSHをログオフ FTPでmysql.dumpファイルをダウンロード。上のPathではFTPのルートにできている データベース名はphpMyAdminの画面から確認できる。1つ目はユーザーID名と同じ名前で作成される
nice, reniceというコマンドはけっこう知られていないかもしれない。ジョブの相対的な優先度を変更するコマンド。 Influence scheduling priority with nice and renice(linux.com)を読んで、詳細な挙動を知った。 ユニークなのはnice値(niceness value)という指標を使っている点。最初に知ったときは笑った。 nice値は「どれくらいナイスか」を示す値なので、直感に反して数字が大きいほど実行優先度は下がる。 譲りまくりな人ほどナイスである。 ヘビーなジョブを実行するときにniceやreniceでnice値を上げておくとナイスだ。 cronが走ったりすると重くなるので、あわててreniceで強制的によりナイスにさせたりすることがあるのだが、冒頭の記事を読んでこれは意味ないことを知った。 たしかにやってみて挙動が変わ
ザウルス用Linuxディストリビューション「pdaXii13」をインストールした。pdaXromの派生版でデバイス関連のチューニングが済んでいる点が価値。 名前は”pdaX integrated and improved beta1 merged with beta3″の略で、pdaXromのbeta1とbeta3というリリースを合わせたうえで各種バグフィクスしたものになっている。 もともと本体Flashが16MBしかないSL-C3000用に作られたディストリビューションだが、C1000/C3100/C3200でも利用できる。 まずはpdaXii13の特徴と注意点をまとめる。 pdaXii13の情報は少なく作者のページを読むくらいしかない(とはいえこの1ページの情報量がすごい)。 基本的にはpdaXrom beta3などと互換性があるので一般的なpdaXromの情報はだいたいそのまま使
UbuntuはDebian系なので、パッケージ管理はaptで行っている。aptは非常に良くできていて使いやすい。 が、依存関係が一ヶ所でも壊れるとインストールやアップデートが何もできなくなる。 Webで調べると、修復方法は”apt-get -f install”で良いらしい(コマンドラインのエラーメッセージでも表示される)のだが、このオプションがどういう動作をするのかを書いている記事が見当たらなかった。 “man apt-get”で-fオプションを調べると以下のような説明になっている。 -f, –fix-broken 修復 - 依存関係が壊れたシステムの修正を試みます。 このオプション を install や remove と一緒に使うときは、 パッケージを指定しなく てもかまいません。 どのパッケージを指定しても、完全に問題を解決 し ます。APT 自体は、 システムに存在す
おすすめ記事オープンソースに学ぶべきことブログで民主主義を勝ちとれないものかLinuxとは 2006冬禁酒法と知的財産権Ubuntuが超好感触進化したシェル「fish」 Recent Posts jQuery mobileで動的ページがかったるい XAMPP for Linuxがすぱっと起動するインストール法 Debian GNU/kFreeBSDですか WPMU → WordPress 3 Xreaのメールクライアント設定 ubuntu 10.04 は起動が高速
Ubuntuには/etc/inittabが存在しなくてぎょっとする。 これは、Edgyからinitをやめてupstartを採用(CNET Japan)したため。 upstartをデフォルトで採用しているのは今のところUbuntuだけだろう(Debianでもパッケージ自体は利用できる模様)。 ドキュメントもほとんどなくて暴挙に近い決定だと思う。 「inittabが無いとなるとランレベルの設定方法はどうすりゃ良いんだ」と途方に暮れていたものの、探し回って先ほどようやく判明した。 やり方は2通りある。 1つ目は、/etc/inittabを書くという意外な解(ubuntuforums)。 実は/etc/inittabがシステムに存在している場合はそれを読みに行くらしい。 ただし、テンプレートになる設定ファイルは用意されていないので、自分で書くか、互換性に気をつけながら他のディストリビュ
iPodを買ったので、そろそろmp3ではなくaacで音楽エンコードしていきたいと思う。 ネットで調べる限り、aacは圧縮効率がmp3の1.4倍ということなので、同じファイルサイズで高音質なテイクにしておけるだろうという目算。 iPod(というよりiTunes)はデフォルトaacなので持ち歩く方は問題ない。 あとはLinux上で聞ければ良いので調べてみたところ、少なくともmplayerで再生できるし、xmmsもプラグインで再生可能なことが分かった。これでaacに乗り換えること自体は問題がない。 mplayerなどはlivnaからyumでインストールできる。 再生の方は苦労せずに見通しが立ったので次はエンコード。Linuxネイティブで利用できるaacエンコーダは今のところfaacしかない。このfaac、1年以上前に開発が止まっているので品質がやや不安だが、ないものは仕方ない。faacも
WordPressでタグ分類する場合には、なんらかのプラグインを導入する必要がある。うるめねっとが今回採用したのは、Category Taggingというプラグイン。 ほかにも選択肢はいくつかある中でこのプラグインの特徴は、WordPress標準のカテゴリー機能をタグとして流用すること。「タグとカテゴリーの比較文化論」で書いたように、単純にカテゴリーをタグ的に運用すればそれで良いじゃん、という発想。 Category Taggingプラグインは、このタグ情報を利用して、タグクラウドの表示に加えてある記事の関連記事を抽出する機能を提供している。 Category Taggingの副作用は、一度タグとして整理し始めると事実上カテゴリー分類には戻せないこと。分類がぐちゃぐちゃになってしまうから。 そんなわけで導入前にはやや迷ったのだが、どうせカテゴリー分類も破綻気味だったので導入に踏み切る
Recommendation 2台同時USB充電「モバイルクルーザーツイン」やっぱりバックアップが重要だと思った話オープンソースに学ぶべきことブログで民主主義を勝ちとれないものかLinuxとは 2006冬禁酒法と知的財産権Ubuntuが超好感触ロウアーミドルの衝撃進化したシェル「fish」Javaデザインパターンハンドブックインポッシブル・シンキング 最新脳科学が教える固定観念を打ち砕く技法Google、そのローレベルの達人性ほぼ日刊イトイ新聞の本 Recent Posts MacBook2008秋モデル iPhone用WordPress投稿クライアント Ad[es]のOpera Mobileではソーシャルブックマーク向けブックマークレットが無理 iPhone向けDelicious登録ブックマークレット Instapaperはフルページ保存していた DNSキャッシュ汚染からの簡易
WordPressのWidgetsプラグインはテーマテンプレートを多少修正することで複数設置することができる。 3段組レイアウトにしてサイドバーを左右に設置する場合などに便利。 まず、functions.phpでregister_sidebar()を呼んでいたところをsidebarsと複数形にして、引数に使うWidgetの数を指定する。 if ( function_exists('register_sidebars') ) register_sidebars(2); sidebar.phpなど表示させる箇所のdynamic_sidebar()に、呼び出すWidgetの番号(1から順に自動で番号がつく)を引数として指定する。 if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : このテーマを有効にする
WordPressのサイドバーを組み替え可能なモジュール構成にできるプラグイン「Widgets」をインストールした。実はインストール自体はずいぶん前に済んでいたのだが、勘違いしてた点を直してやっと動作させることができた。 Widgetsを使うと管理画面の[Presentation]-[Sidebar Widgets]に編集”画面が追加されて、ドラッグ&ドロップで機能の組み替え編集が可能になる。 従来は、wp-content/themes/sidebar.phpを直接編集してきたが、機能を増やすと非常に読みづらくなってカスタマイズが面倒になる傾向があった。 インストールの流れは以下のような感じ。 WordPress Widgetsのページからzipファイルをダウンロードして解凍 widgetsディレクトリごとFTPでプラグインのディレクトリ(wp-content/plugins)にアップ
WordPress MUへの移行作業がほぼ完了した。すき間時間で作業しただけあって高速ペースで完了した。最高時速も50km/hくらい出ていたのではないか(無関係)。 WordPress MU(Multi User)は複数のブログを横断的に管理できるWordPress派生ソフト。多数のユーザー登録や権限管理も自在。 ただし、設定はそれなりにややこしく、DNSとApacheWordPress MUの知識がそろっていないとトラブルがあったときに解決できないという代物でもある。 ドキュメントが圧倒的に不足していて、いまのところは公式掲示板から必死に情報を探すしかない。 そこで、今回ある程度分かったことをまとめてみたい、という世界的にも珍しい試みを。 着手するまでシングルのWordPressとどこがどう同じでどこが違うのかが一切分からないのが気色悪いところ。異同を中心にまとめると以下のような感
Amazonのユーティリティコンピューティングサービス「Elastic Compute Cloud」を今サインアップした。 8/25に発表された有料サービス(CNET Japan)で、発表の翌日にサインアップしたら既に満席ですとばかりにはじかれた。 数ヶ月待つのかと思って半ばあきらめムードでいたら、早くも「増強しました」メールが届いた。今回は運良くメール受信から10分でアクセスできたので、あっさりサインアップできた。 とはいえ、実はまだ使い道は詳細に考えていなかったりする。 「使ったぶんだけ払う=使わなければ払わなくて良い」という風に読めたので、何をどうするかはこれから考える。 さしあたり漠然と「使えそう」とは思っているので、さっそく整理してみよう。 このElastic Compute Cloudは、要するにサーバーを丸ごとレンタルするホスティングと同じようなサービス。 課金対象は
Web上で色々なアプリケーションを利用できるようになるとIDとパスワードを大量に管理する必要が出て来る。全部同じものにそろえるというのはあまりに危険なので、パスワードは使い分けている。 最近はさすがに覚えきれなくなってきて端から忘れたりしている。 いい加減パスワードを集中管理しないと破綻しそうな感じだ。 パスワード管理用のソフトウェアを探してみたりもしたもののLinux用に良さそうなソフトはいまのところ見つかっていない。 昨日たまたま「これは便利! と思える elisp プログラムを教えてください。」(人力検索はてな)で、Emacsからファイルの暗号化/復号化を自動でできるgpg.el(Emacs Lispファイルへの直リンク)というのが紹介されているのを見て、これだと思った。 手間をかけることなくパスワードファイルを暗号化して管理できる。 さっそくインストールしてみた。 セットアッ
次のページ
このページを最初にブックマークしてみませんか?
『うるめねっと技研 - Linux派 -』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く