タグ:IT ( 110 ) タグの人気記事
やっと SICP の第3章に突入
 中断からしばらく間が空いてたので、また最初からサラっとおさらいして、やっと第3章までたどり着いた。

 というか、第2章の最後のあたりは、やっぱりややこしいので飛ばしてたり。まぁ、分からないところでずっとつまずいているより、ちょっと先の方を覗いてみて、また気が向いたら戻ってくればいいかなぁ、なんて考えたり。

 第3章に入って、序盤のあたりはやっぱり楽。だいぶ関数プログラミングの考え方にもなれて来た気がする。というか、逆に仕事でプログラムを書いていると、無性に高階関数を使いたくなってくるので、その辺が微妙なストレスかも。

 
 あと、問題解くのにテストドリブンでやるようにした。Gauche には最初からユニットテスト用ライブラリがついてるので、環境を整えるのもかなり楽。これで、TDDの習慣も付けていきたいなぁ。

Gauche ユーザリファレンス: 9.22 gauche.test - 単体テスト
Karetta|Gaucheプログラミング(立読み版)|ユニットテストを書く
[PR]
by fkmn | 2008-02-04 23:55 | 日記
資格よりも優先して勉強すべき事
【ITpro EXPO 2008】「自らネットで情報発信することですべてが変わる」,実力派開発者が語るこれからのソフトウエア開発者の生き方:ITpro
ここで,吉岡氏は「得意な部分を伸ばすのはいいが,資格を取るのはあまりよくない」と発言した。情報処理技術者試験やOracle Masterなど,資格取得のために努力している人には理解しにくい発言かもしれないが,吉岡氏の発言の意味を小野氏は,「見方を変えれば,資格を持っているということは,その人は取替え可能だということだ。資格程度では証明できないほどのエキスパートになろうということだ」と説明した。

 ギクゥ!
 そ、そうっすね。あんまり資格取得に労力は割かないようにします。

 まぁ、僕自身、先日の Ruby認定試験で増井さん(のような凄い人)が落ちてしまったのを見て、やっぱ資格ってあんまり意味が無いものなんだなぁ、という思いを強くしたところ。もっと他にも勉強しなきゃいけない事がたくさんあるんだし、そっちを頑張りますわ。

 でも、「資格取ったよー」っていうアピールは分かりやすいんだよね。特に、会社の上の人とかに対しては。それが悩みどころ。
[PR]
by fkmn | 2008-02-02 23:34 | 日記
gauche.night のチケットを買った
 最近、SICP を再開した影響で、ムラムラと Scheme 熱が高まってきたので、gauche.night にも行ってみる事にした。当日頃までには、SICP も終盤ぐらいまでには読み進めておきたいなぁ。

 あと、R6RS はおろか、R5RS も読んだ事がないので「あとで読む」。
[PR]
by fkmn | 2008-01-29 23:55 | 日記
Scheme-mode で C-cC-l した時に自動でファイルを保存させるようにした
 Emacs の Scheme-mode で C-cC-l でファイルをロードする時に、ファイル(buffer)が編集中だと、いちいち保存の確認をされるのがウザかったので、そういう時は、自動でファイルを保存するようにしてみた。

 ということで、cmuscheme.el を以下のように変更。
# 僕の環境(Mac OSX の Carbon Emacs)では、
# /Applications/Emacs.app/Contents/Resources/share/emacs/22.0.97/lisp/
# に格納されていた。)

*** cmuscheme.el.orig 2008-01-24 00:03:32.000000000 +0900
--- cmuscheme.el 2008-01-24 00:25:24.000000000 +0900
***************
*** 436,446 ****
--- 436,453 ----
`scheme-compile-file' command. Used for determining the default
in the next one.")

+ (defcustom cmuscheme-always-save-buffer t
+ "*Non-nil means save the current buffer without asking before loading a file."
+ :type 'boolean
+ :group 'cmuscheme)
+
(defun scheme-load-file (file-name)
"Load a Scheme file FILE-NAME into the inferior Scheme process."
(interactive (comint-get-source "Load Scheme file: " scheme-prev-l/c-dir/file
scheme-source-modes t)) ; t because `load'
; needs an exact name
+ (if cmuscheme-always-save-buffer (save-buffer))
(comint-check-source file-name) ; Check to see if buffer needs saved.
(setq scheme-prev-l/c-dir/file (cons (file-name-directory file-name)
(file-name-nondirectory file-name)))


で、使う場合は、.emacs に以下の設定を追加する。

(setq cmuscheme-always-save-buffer t)


 "cmuscheme-always-save-buffer" という変数に true が設定されていると、C-cC-l 実行時に自動でファイルが保存される。nil が設定されている場合は、元のとおり、ファイルが保存されていない場合は確認してくる。

 と、まぁ、こんな感じにしてみました。
[PR]
by fkmn | 2008-01-23 23:55 | IT
プログラマの実力を決めるもの
学生プログラマの「実力差」は、「麻雀」と「囲碁」の差 - Text::EasyHacking
だから、「囲碁」であると気づいている人間は、情報を集めて勉強して、ひたすらコードを書いて、どんどん「強く」なっていく。

 "学生" は外してしまって、単に "プログラマ" としても問題ないんじゃないかなぁ。特に、「誰がやっても変わらない」という意識は、企業(特にSI屋)の人間の方が高いと思う。だからこそ "人月" という単位が重宝されるわけで。

さらに学生プログラマの場合に言えるのは、「その事実に気づいていない人の割合が高い」ということ。

 社会人的に少し書き直すと「その事実に薄々気づいているが、あえて無視している人の割合が高い」という風になりそう(笑)。


Matzにっき(2008-01-04)(リンク先引用元:The Mythical 5%
80%の技術者は、本を読まない、イベントに参加しない、勉強しない。それでどうして、それらを継続的に行う開発者と同等の生産性をあげることができるのか。それらを行う20%のうち、さらに80%は、(まだ)うまく成果をあげられていない。すると、それらを継続的に行い、さらにうまくいっている人はおおよそ5%になる。

「継続は力なり」ですな。僕も頑張っていこう。
# もっとも、今の会社で、プログラマ的技量がどこまで求められているかは疑問だけど。
[PR]
by fkmn | 2008-01-17 23:55 | 日記
デブサミ2008の参加申し込みをした
Major tech conferences in Japan | Asiajin

Asiajin で、今年のデブサミが2月に開催されるのを知った。なんだか、Joel が来るとかいう話なので「これはもう行くしかない!」と、速攻で参加登録。

他にも、いろいろ興味があるセッションに登録。結構悩ましいタイムテーブルだなぁ・・・。


つーか、よくよく考えてみると、来月って結構忙しいかも。
ちゃんと参加できるか、不安。
[PR]
by fkmn | 2008-01-15 23:55 | 日記
Ruby のハッシュは、キーが存在しない場合のデフォルト値を変更できる
 Programming Ruby を始めから読んでいると、今まで知らなかった事がちょこちょこ出てきて面白い。

 一番面白かったのは、Ruby では、ハッシュキーが存在しない場合のデフォルト値を変更できる事。

 なにも指定しない場合は、ハッシュキーが未定義の場合は、nil が返ってくる。

hash = { }
p hash.has_key?(:foo) #=> false
puts hash[:foo] #=> nil

 空のハッシュを作成する時にデフォルト値を指定すると、未定義のキーに対しては、その値が返ってくる。

hash = Hash.new(0)
p hash.has_key?(:foo) #=> false
puts hash[:foo] #=> 0
hash[:foo] += 1
p hash.has_key?(:foo) #=> true
puts hash[:foo] #=> 1

[PR]
by fkmn | 2007-11-27 23:55 | IT
タイピングスピードさらし
 ちょっと頑張って 300 chars/min の大台を越えてみた。一個間違えてるのはご愛嬌という事で。
a0057891_163436.jpg


Speedtest - how fast are you?
[PR]
by fkmn | 2007-11-22 23:55 | 日記
Filter::FetchNicoVideo にウェイトを入れてみた
 Plagger でニコニコ動画をダウンロード&変換できるようになったのはいいんですが、すでに変換済みの動画がローカルに大量にあったりすると、
短時間に多数のアクセスが発生
-> ニコニコ運営側に怒られる
-> 動画が(一時的に)ダウンロードできなくなる
という悲しい事態が発生してしまいます。

 ということで、動画がダウンロード済みの場合には指定時間待つように Filter::FetchNicoVideo を修正してみました。ちなみに、下記の otsune さんのエントリを、ものすごい勢いで参考にしています(笑)。
Publish::Twitterにウェイトをいれてみた - otsune's SnakeOil - subtech


--- FetchNicoVideo.pm.orig 2007-11-12 23:10:59.000000000 +0900
+++ FetchNicoVideo.pm 2007-11-12 23:26:20.000000000 +0900
@@ -78,13 +78,18 @@
$ua->get("http://www.nicovideo.jp/watch/$video_id");

#download flv file
- unless ( -e $path ) {
- my $req = HTTP::Request->new(GET => $enclosure->url);
- $context->log(info => "Fetching $video_id FLV File from " . $enclosure->url . "..." );
- my $res = $ua->request($req, $path);
- $context->log(warn => "Fetch FLV Error: $video_id" ) if $res->is_error;
+ if ( -e $path ) {
+ my $sleeping_time = $self->conf->{interval} || 15;
+ $context->log( info => "sleep $sleeping_time." );
+ sleep($sleeping_time);
}
-
+ else {
+ my $req = HTTP::Request->new(GET => $enclosure->url);
+ $context->log(info => "Fetching $video_id FLV File from " . $enclosure->url . "..." );
+ my $res = $ua->request($req, $path);
+ $context->log(warn => "Fetch FLV Error: $video_id" ) if $res->is_error;
+ }
+
#download xml file
if ( $self->conf->{download_comment} ) {
$path = File::Spec->catfile( $self->conf->{dir}, $filename . ".xml" );


 変更後の config.yaml はこんな感じ (Filter::FetchNicoVideo 部分のみ)。

- module: Filter::FetchNicoVideo
config:
mail: your@mailaddress
password: your_password
id_as_filename: 1
dir: /home/user/dir
interval: 30

 "interval" で待ち時間(秒)を指定します(デフォルトは15秒)。手元の環境だと、15秒ぐらい待てば、ダウンロード済みの動画が20個ぐらい続いても大丈夫。


 CodeRepos のコミット権を持ってないので、とりあえずブログに置いておきます。あとでコミット権もらおうかなぁ。
[PR]
by fkmn | 2007-11-12 23:55 | IT
Autohotkey が便利すぐる
 ぼへーっとブログの未読記事を整理している時に、
作業工程を革命的に変える七本のフリーソフトまとめ - 萌え理論Blog」というエントリが眼にとまった。

 この中で使ってないのは AutoHotkey ぐらいだなぁ、ということで会社の PC に AutoHotkey を入れてみた。

 結論から言うと、なんでいままでこれ無しで過ごして来れたのか、と思うぐらい便利。

 例えば、絶対に覚えられないようなアカウント名なんかを会社から割り当てられた場合。今までだったら、デスクトップの付箋に貼付けたり、IMEの変換に登録したりして入力する、というあまりスマートではない方法を取らなければいけなかった。でも、AutoHotkey を使えば、任意のキーストロークから文字列の自動入力を行う事ができる。

 例として、以下のようなスクリプトを書くと、
#f::send foo
Windowsキーと f を同時に押した場合に、foo というキーボード入力に変換される。

 他にも、キー入力からソフトを起動したり、複数の操作を1つのキー入力に割り当てたりできて、うはー夢がひろがりんぐ、ってな具合。

 AutoHotkey 用のスクリプトも色々紹介されているけれども、一番感動したのが、IME の ON/OFF を変換/無変換キーで切り替えるもの。Windows の日本語入力切り替えってトグル操作なので、日本語入力が On なのか Off なのかが、よく分からなくなるのが使ってて結構ストレスだった。でも、このスクリプトを使えば、変換キーを押せば日本語入力ON、無変換キーなら日本語入力OFFになるのが確実なので、混乱する事がない。

 ホント、もう AutoHotkey 無しでは、Windows の中で生きていけない。
[PR]
by fkmn | 2007-11-09 23:55 | 日記


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX