2009年1月29日木曜日

Make Link いい FireFoxアドオン

「ページタイトルとURLをコピーする」系では最強?のfirefoxアドオン

ブログにリンク先のタイトル書いてaタグ書くのめんどいなあと思ってたら、FireFoxアドオンにいいーのがあった。

上記サイトなど参考にしました。

これ、自分が見ているページのどこでも右クリックすれば、ハイパーリンク付きのテキストとしてクリップボードにコピーできる。コピーの書式もカスタマイズ可能。

すげべんり。

1月28日はジャクソン・ポロックの誕生日だったんだ



日本はもう明けて29日ですが。

Googleのトップページがポロックになっていたので気づきました。

ジャクソン・ポロックは昔NYのMOMAに見に行って、当日は改修のため展示してなくてものすごく悔しかったのを覚えています。
まあ、ストーン・ローゼズを通してしっただけの半可通ですが。。

はてなのCTO伊藤さんって同い年じゃん

「実現したいことを計算機の問題に置き換えることが『技術力�
はてなのCTO伊藤さんの記事が面白かった。
ちょっとオーダーが違うんだけど、会社の製品開発の参考になりました。うちの製品はここまですることは無いんだけど、でもスピードにはこだわりたい。。

内容は私のようなヘッポコには難しく、理解できたのはここと、
大規模データをI/Oするコツは、「いかにメモリだけで済ませるか」。OSのキャッシュの仕組みを理解すること


あとこの部分くらい。
1. バッチ処理でデータを抽出する
2. 用途に応じたデータ構造でインデックスサーバーを作成する
3. アプリケーションからRPCでクエリする


このあたりは理屈としても手法としてもそんなに珍しいことではないんだと思うけど、きちんと実装しきるのってとても難しいよなあと。

また、伊藤さんの最後のここがかっこいい。
例えば、キーワードでリンクしたいということを誰かが思いついたときに、『TrieでCommon Prefix Search、分かち書きの世界』という技術的な問題に帰結できるかどうか。それでサーバーの計算量が決まってくる。それこそ会社の持つ「技術力」なのだ、と全体を締めくくった。

うちの会社にはこんなことを胸張って言える人がいない。それが問題なのかもしれない。技術力が著しく軽視されている社風だからな。。プログラムなんて誰でもかけるし、システム開発なんてバカじゃなきゃ覚えられるというのは社長の弁ですから。

さて、上記の記事を読んでいてはてなのCTO伊藤さんって何歳なんだろうと思って調べてみたら、、、
「ココログ」開発者、はてなへ (1/3)
2005年の記事当時で27歳ってことは、同い年ジャン!

うーむ。。差を感じる。どこでこの差はついたんだろう。鬱出汁脳。。。

2009年1月28日水曜日

MicroFocusからEclipse用COBOLプラグイン



うちの会社はMicroFocusからライセンス買ってるから、これも使えるのかな?

うちのパッケージ、まだCOBOLソース残ってるんだよね。僕自身、ほんの2年前までCOBOLの新規ソース作ってたし!

最近はさすがに新規をCOBOLで作ったりしないし、COBOL書けるやつ、読めるやつ、どっちも減ってきたんだけど、これあると便利だな。。

今は秀丸に自前のマクロを組み合わせてみてるんだけど、アウトライン表示とか、コードコンプリートとか、宣言の参照とか、できなくて不便なんだよね。

2009年1月27日火曜日

【GIZMODOから】「Ubuntuのデルがややこしいからオンライン大学履修できなかった」と女子大生がTV出演(動画あり)

「Ubuntuのデルがややこしいからオンライン大学履修できなかった」と女子大生がTV出演(動画あり)
GIZMODOから。

確かに、Winとちょっと違うだけで普通のユーザーは全く何もできなくなりますよね。。
これ分かります。。

ラベル表示をクラウドにしてみました。

ここのブログを参考にさせていただきました。

ちょっとかっこよくなってうれしいです。

自宅サーバ公開しました

Ubuntuサーバをインターネットに公開してみました。

まだまだなにもできていないのでURLはお知らせしませんが、一応Apacheは動いているみたいです。
LAMPで開発するのは初めてだし、HTML書くのも10年ぶりだし、Web開発はど素人だけど、新しいことをやるのは楽しい。

なんせ、社会人になってからいままで、ずっと基幹業務(主に会計)の分野でC/S開発だけをやってきたので、新鮮だなあ。
でも、思い返してみれば、学生のころはWeb開発やりたかったんだよなあ。HTMLを書くバイトをしていたし、自分でHP作ってたし、当時はやってたナップスターで遊んでたし、出始めのころのグヌーテラを見て、P2Pの可能性に心ときめかせてたし。。。
(Web開発とP2Pって関係なくね、という突っ込みはナシの方向で。。)

この後、Winnyが社会問題になるわけですが、僕自身はそのころはSAPをやっていて、とっても退屈なデータ移行とか、並行稼動テストとか、お客様の社内調整の手助けとか、そういうつまらんことをやっていて、どんどんIT自体に興味を失っていったのでした。。

そういうわけで、完全にIT業界が嫌いになって7年くらいになるわけで、その間、自宅でPCに触るなんてことはほとんど無かったわけです。
そんな僕が、今またITに興味を持ち始めている。ちょっと驚きです。

Ubuntuに触れ始めてから一気に昔の「PCをいじっているだけで楽しいあの感じ」が戻ってきました。
思えば、学生のころはずっとMacをいじっていたわけで、社会人になって初めてWindowsに触れたのでした。
偶然かもしれませんが、ITに興味を失った時期と重なります。
Windowsで、退屈なデータ移行をやっていた時期と重なる。

今回、新しい世界が見えてきて、とっても楽しいです。やったー。

…でも、自宅サーバ公開した途端にNMAPポートスキャン攻撃とか食らってちょっと鬱。。
ネットの世界は厳しいなあ。。。

2009年1月22日木曜日

ubuntu server couldn't finde package

ubuntuのサーバ版をいじってみた。

特にサーバを立てる必要はないのだが、遊びでやってみることに。

自宅には余ったPCがなかったので、昨年末にアキバのソフマップで型落ちの富士通FMVを¥3,000で購入。
スペックは下記な感じ。
CPU Celeron 2.50GHz
メモリ 512MB
HDD 36GB

これで¥3,000って安いんじゃないかと思うけど、どうなんかな。

そんな感じです。

ネットワークの設定でつまずいて、apt-getが通らなくて困った。
http://jp.archive.ubuntu.comの名前解決が出来ないらしいメッセージが出ていたのだが、ネットワークに疎くて解決するのに時間がかかった。

ubuntu日本語フォーラムの下記の記事がとても参考になりました。感謝です。

http://forums.ubuntulinux.jp/viewtopic.php?id=2741

2009年1月20日火曜日

UbuntuのFireFoxが遅い件

UbuntuでFireFox使ってると遅いなー、と思ってたら、どうやらIPv6の設定を切ればいいらしい。


追記:その後もやっぱりFireFox遅い気がします。

2009年1月19日月曜日

WinもIPythonにしちゃった

会社のWinマシンにCygwinを入れて、日本語化して、Python動くようにして、、、
とやっているうちに我に返りました。

こんなに重くて、いろいろ面倒なCygwinを入れる必要あるのか??

会社でPythonを使うとすれば、それは何らかのツールを作っているときだし。

わざわざCygwinをいれるほど僕はUnix野郎じゃなかった気がする。。。

というわけで、会社でのPython開発環境もIPythonにしました。

さあ、仕事でつかってみよー。

ipythonの方が便利じゃん

今年の初めにPythonを始めて、週に2回くらいgeditでコーディングしていたのですが、やっぱりコード補完機能がないと面倒。
っということで、ipythonを導入。

参考にしたのは下記のあたり。

IPythonって最高!


コード補完超便利。インタラクティブシェルだし最高。
加えて、lsとかある程度のshellコマンドも使えるので、コンソールを切り替える必要がなくて楽。入出力の履歴も見れるし。デバッグもできるらしい。

で、こうなってくるとインタラクティブシェルで書いたコマンドをファイルに保存したい。
エディタ立ち上げて書き直すのも面倒。
そのあたりは下記を参照しました。

pythonのシェルで入力履歴をファイル保存する


結構いい感じ。日本語の扱いに不安が残るけど、まあ調べれば何とかなるでしょう。

会社のWinマシンにもCygwinを入れたので、会社でも使ってみようかな。

2009年1月12日月曜日

オープンソースで分からないこと

ソースが公開されて皆で改良できるというのはとても素敵なんだけど、分からないことがある。
  • 自分のローカルにあるソースをカスタマイズしたのち、公式版がバージョンアップした場合、ローカル版はどうなるの?
  • 修正したソースを公式のリポジトリにコミットしたとして、各地から上がってくる修正の中にはお互いに利害が対立するソースもあるはずだけど、利害調整は機能してるの?
  • コミッタを限定することで混乱を避けているのかもしれないが、逆に言うとユーザーが各地で行っているカスタマイズは拾えていないということ?
  • だとして、亜種が大量に生まれると思うのだが、それは誰の利益になるの?

自分は仕事で大企業向けの業務ソフトを作って提供しているんだけど、その中で上記のようなシチュエーションになることはしょっちゅうなわけで。
なにしろ数百社のユーザー先でそれぞれ導入プロジェクトが走っていて、そこから期限付きの修正要求や機能拡張要望が集まってくる。

それらの中には、平気で矛盾した要求がくるわけで、例えば売上データを入力して、それを基に請求書を発行するという機能を例に上げると。。。

  • A社:売上データの承認が終わるまで請求書発行出来ないようにしてほしい
  • B社:データの承認を待たずに請求書発行出来るようにし、承認後に訂正分があれば別途発行してほしい
  • C社:データの承認も、請求書の発行も一切出来ないようにしてほしい

上記の例はものすごく簡単な例だから実装も単純だけど、それでもちょっとした気遣いは必要なわけで。

これらの要求を矛盾なくパッケージとしてまとめて出荷することを、毎月やっているわけですが、これと同じレベルのことをオープンソースプロジェクトの人たちは本当にやれているのだろうか。。

そんな素朴な疑問がわくわけです。

特に業務システム、ERPの分野とか、nexediっていうところがオープンソースのERPを提供し始めているけど、上記のような理由で難しいんじゃないかなと思ってしまいます。

ただ、個人的にはすごく注目しているんですけどね。

業務システムの分野こそ、オープンソースにする価値はある気がするから。

これは、何らかのプロジェクトに参加してみないと分からないのかな。
ちっちゃなプロジェクトじゃ意味ないんですけどね。

2009年1月3日土曜日

geditからPythonを直接実行できるようにする

この2日くらい、ちょこちょこPythonをいじって遊んでいます。
で、開発環境としてEclipseも考えていたんだけど、もうすこし軽快なエディタでさくさくやりたいなあ、ということでいくつか物色。

結局、gnomeに標準で付いてくるgeditにしたんだけど、他にもIDLEとかEmacsとか色々あるのですねえ。
この際、Emacsを覚えてハッカー気取りになりたいなあと思いつつも、きっとEmacsを使えるようになる前に飽きるなあと思ったりしていました。いやあハッカーにはなれないですなあ。

で、geditにはPythonコンソールというプラグインが付いていて、エディタでコーディングしながら下のペインでインタラクティブシェルが使えるんです。これはこれで便利です。

が、所詮インタラクティブシェルなので、ほんの数行書いて試してみるくらいならいいのですが、書き上げたプログラムのテスト実行するのには面倒なので、ちょっと拡張してみることにしました。


まず、「編集」メニューの「設定」から「プラグイン」タブを開き、「外部ツール」にチェックを入れ、外部ツールプラグインを有効に。

このプラグインは、geditのメニューから任意の外部コマンド、シェルスクリプトを実行出来るようにするものみたい。ショートカットも割り当てられるのでかなり便利。

今回は、他のIDEと似た動きをさせたいので「F9」キーの押下で実行出来るようにしたい。

あらかじめ組み込まれている「コマンドの実行」で近いことは出きるが、これだと毎回実行コマンドを手入力しないといけないので少しめんどう。

なので、この「コマンドの実行」に記述されているシェルスクリプトを参考に、以下のような新規コマンドを作成。
#!/bin/sh
exec `zenity --entry --title="Run command - gedit" --text="Command to run" --entry-text="python "$GEDIT_CURRENT_DOCUMENT_NAME`

その他、入力を「編集中のドキュメント」に設定。(下図参照)

ヘルプによるとGEDIT_CURRENT_DOCUMENT_NAMEという変数は現在編集中のファイル名が入るみたいです。
これでF9を押すと。。。


こんな感じになります。これでOKを押せばPythonスクリプトをgeditから実行出来ます。
引数が必要なスクリプトであれば、この画面で.pyの後にスペース区切りで渡してやればいいと思いますよ。

ダイアログをはさむのが面倒であれば、もちろん下記のように書くだけでいいと思います。
#!/bin/sh
python $GEDIT_CURRENT_DOCUMENT_NAME
ってな感じで遊んでいます。仕事に関係のないプログラミングは楽しいですね。(今回はプログラミングしてませんが。。)
今のところの目標はpygameを使って簡単なゲームを作ることにしています。。
とりあえず、リバーシを作るかな。ベタに。。

ちなみに特に触れませんでしたが、今回このカスタマイズをするなかでzenityというgnomeのツールの存在を知りました。(上記のコマンドのなかにもサラッと出てきていますね)
コマンドラインから簡易なダイアログを生成することが出きるので、ちょっとしたスクリプトもまるでGUIツールのようにリッチなふりが出来ますね。
これかなり便利。