これは2008-11-22に開催されたVimM#3で発表した「operator, the true power of Vim」に加筆修正をしたものです。VimMというのはテキストエディタVimについての勉強会で、2008-07-20の#1を発端として不定期に開催されています。そろそろ#4をやりたいのですが、時期や会場などどうするかで悩み中。 Vim使いの成長過程 例えば今からPerlを使い始めたとしましょう。一体どれだけPerlに対する造詣が深くなればPerlプログラマとしての一人前なのでしょうか? 使い始めたばかりの立場からすれば、自分が今どの段階にいるのか把握することができるのであれば、次にすべきことを判断する上でこれほど有用なものはありません。もちろん、この問いは「一人前」の基準をどこに設定するかで答えが大きく変わってきますし、あなたの目的が何なのかによっても異なります。sedでやる
シスコシステムズ合同会社は4月7日、x86プロセッサや仮想化など業界標準技術を採用した次世代のデータセンターソリューション「Unified Computing System(以下、UCS)」を発表した。パートナーに対して第2四半期より出荷を開始。エンドユーザーには2009年後半に提供を開始する予定。 UCSは、同社のネットワーク技術をベースに、サーバーやストレージアクセスなどをひとつのシステムとして提供するもので、同社初のサーバー製品が含まれているのが特長。UCSの統合管理機能を搭載した「UCS Fabric Interconnect」、複数のブレード形状をサポートしたサーバーブレード「UCS Blade Server」などで構成されている。 同社初のサーバーとなるUCS Blade Serverは、Xeon 5500番台を採用した製品で、同社独自の拡張メモリテクノロジーにより、ブレードあ
誰に教えられたのでもないのですが、ぼくは冬眠前のリスのようにコード片を溜め込んでいます。 コード片とは、ライブラリにするほどまとまった大きさではない、数行〜十数行のコードのことで、溜め込んだコード片は、アプリケーションやツールを作るときに使っています。 例えば「Perlでメール送るのどう書くんだっけかな」とか「Pythonでファイル開いて全部読むのどう書くんだっけかな」とかというときに、溜め込んだ中からコード片をさっと取り出してコピペした後、なじむようにちょっと修正して使っています。 コードポケット コードを溜め込んでいるディレクトリをぼくは「コードポケット」と名付けていて、コード片を取り出すことを「ポケットからコードを取り出す」と呼んでいます。先日、知り合いが似たようなことを実践していて、その人は「コードスケッチ」と呼んでました。いい名前ですね。 ぼくの場合、コードポケットは ~/lan
no Perl; use x86; *1ですので、Perlにそんなに興味がない方でも楽しめると思います!!(笑) 今日はユニバーサルアクセスを兼ねて内容を細か目に書いたのですが、書いてる本人もあまり理解してないので雰囲気だけ読み取って下さい・・・。誤りの指摘は大歓迎ですorz 4/23追記: 内容の補完のために、すぎゃーんメモさんとこのメモも合わせてどうぞ。 第一部 sandbox特集 バイナリ畑で捕まえて - inside lleval / dankogaiさん バイナリ麦畑で捕まえて → lleval というサービス デモ Perlのコード(CSSの都合で動かない) BASICのコード postscript Perl6 → 重いけど動く 動かすのは簡単 → 不正なコードを動かされると困る → 捕まえて欲しい 1分を越すとタイムアウトする fork爆弾 外部モジュール(syscall.p
Yokohama.pm #4に行ってきました。 会場は前回と同様。あの会場は駅近でとてもいいのですが開始時間を考えると、やはり東京組には距離的に大変ですね。ZIGOROuさんも書いてますが、次回からはもうちょっと時間を後ろにして参加しやすい時間にした方がいいかなぁと思いました。 今回はlopnorさんという映像担当がいて、かつikasam_aさんが分配器的なものを持ってきてくれたため前より質の高いustもができたのがとてもよかったです。ありがとうございました! それで肝心のトークについてですが、今回は「オレオレ○○」の会と言われるように自分プロダクトの紹介が多めだったのですが、これはちょっと使ってみようかなというのがあり見ていて楽しかったです。あとやっぱりyoheiさんのCAPは普段実装ベースのトークが多い中、あぁいったものが聞ける機会が少ないためとても面白かったです。 あと今回嬉しかった
twitter facebook hatena google pocket フォームなどでよく、デフォルトでテキストが表示されている場合があります。 何を入力すれば良いのかを示しことができるので、ユーザービリティ上有意義な方法です。 jQuery Watermark PluginはjQueryベースでこれが可能です。 sponsors 使用方法 jQuery Watermark Pluginからjquery.updnWatermark.jsを、jQueryからjquery.jsをダウンロードします。 <script type="text/javascript" src="jquery-1.3.2.js"></script> <script type="text/javascript" src="jquery.updnWatermark.js"></script> <script type=
本日オライリージャパン様より「Debug Hacks――デバッグを極めるテクニック&ツール」の献本をいただきました。著者の皆様、出版社の皆様ありがとうございます。 とりあえず、ざっくりと気になる章だけをかいつまんで読んでみたのですが、最後の章「#66.手元のx86マシンが64bitモード対応かどうかを調べる」では、/proc/cpuinfo で lm の文字列を探す方法と、以下のような CPUID 命令を発行して今自分が使っているマシンのCPUが64bitに対応しているかどうかを調べるハックが紹介されていました。 #include <stdio.h> void cpuid(int op, unsigned int *eax, unsigned int *ebx, unsigned int *ecx, unsigned int *edx) { __asm__("cpuid" : "=a" (
You can see whole project at: http://github.com/lopnor/gourmetspot/tree/master I had a great techtalk by Jay Shirley at Akihabara, Tokyo tonight and I learned much about Perl, and Catalyst. It’s good time to expose my project! Yes, it would have bad codes, bad tests, but It has at least total 90 % test coverage… Isn’t it good, or, not so bad, example? ということで最近ずっとごにょごにょ言っていたグルメサイトをまだ仕上がってないけどgithub
Tue Apr 21 18:08:43 2009 at Akihabara UDX conference room Better Perl Practices テストしましょう Test::Class が良いよ!でもコードの書き方を少し変える必要があるよ!(考え方的な部分で) パッケージベースのテストが書ける、ベースクラスを利用してテストコードを再利用できる、柔軟 ユニットテストとワークフローテストは別のもの ワークフローテストとは「メール送信する」とか「会員登録する」とかの、ユーザーが実際に行う操作をシミュレートするもの ワークフローテストが書きづらいということは、ユーザーが操作しづらいアプリ テストが書きづらいということは、プログラムの設計、 API が悪いので API を書き直していけば良いコードになる 良いコードはタイプ数が少し増える タイプ数が増えて一見冗長に見えることを恐れては
JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。 お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。 まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。 $ cd $ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")' 次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。 $ cd $ perl -MCPAN
サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlやRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlとRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ
Epeg で JPEG ファイルのサムネイルを高速に生成する Epegは JPEG ファイルのサムネイル (縮小画像) を高速に生成するライブラリです。JPEG に特化した手法でサムネイルの処理を行うため、内部的に画像をビットマップに伸張せず、高速かつ少ないメモリで処理できるのが特徴です。 インストール Epeg は Debian パッケージになっていないようなので、ソース (ダウンロード) からインストールしました Epeg は内部的に libjpeg を使っているため、Debian GNU/Linux では sudo apt-get install libjpeg62-dev で事前にインストールしておく必要があります。 Epeg そのものは ./configure && make && sudo make install でビルド・インストールできます。 サンプルコード Epeg の
1. Plugin プラグインの使用を控える 間違った使用方法、実装方法で定義されていることが多い プラグインの使いどころ リクエストディスパッチのロジックを監視、変更する場合のみ リクエストパラメーターの変換、Catalyst のメソッド実行チェーンの変更を含む 本当に使わない方向で Catalyst::Plugin::* の中にはそもそもプラグインとして実装されるべきでないものが多い コンテキストオブジェクト ($c) にメソッドを追加する実装がそもそも良くない手法 大半のプラグインはモデルとして実装されるべき それ以外はそもそも存在するべきがどうかさえ疑問 (eg.Catalyst::Plugin::Message) Catalyst::Plugin::Authentication はどうなの? とはいえ、例外はある 認証系とセッション系はプラグインで存在しなければならない意味がある
rsync の使用例 rsync のおもしろい使い方を見つけたら、rsync-bugs@samba.org 宛てにメールで送って下さい。このページに掲載します。 スペア・ディスクへのバックアップ 自分のマシンで rsync を使ってローカル・バックアップを試してみました。 メイン・ディスクにある全ての内容のバックアップを別のスペア・ディスクに取ります。 夜にクーロンでメイン・ディスクのバックアップを行っていました。 そこで使ったスクリプトはこんな感じです。 #!/bin/sh export PATH=/usr/local/bin:/usr/bin:/bin LIST="rootfs usr data data2" for d in $LIST; do mount /backup/$d rsync -ax --exclude fstab --delete /$d/ /backup/$d/ u
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く