2010年1月11日月曜日

一年の計は元旦にありと言うけれど・・・

今年は見事な寝正月でした。なぜなら元旦から38度オーバーの熱を叩き出して寝込んでいたからです。

実を言うと、ここ数年間の年末年始を振り返ってみると、一年毎に体調を崩してしまっているのが分かります。

今年 (社会人2年目) 高熱
一昨年(大学院2年生) インフルエンザ
4年前(学部4年生)  インフルエンザ

こうして見てみると、なにやら大きなイベントのある節目の年に決まって、やや重めの病気をしてしまう癖がありそうですね。(そういえば、高校入試の当日も高熱にうなされながら試験を受けていた記憶があります。)

今年も4月からは社会人3年目に突入するわけですけども、早くも波乱の年を予感させてくれています。
ひょっとしたら大変な年になるかもしれませんけど、めげずに頑張ります。



そんな話。

2009年2月12日木曜日

Webデベロッパの祭典@東京に行ってきた

2月7日(土)に開催されたWebデベロッパの祭典@東京に行ってきました。
自分が参加したセッションは以下の3つ。内容を簡単にまとめときます。

・どうするデベロッパ!?2009年プログラミング大展望
 小飼 弾 氏

不況の時代にソフトウェアエンジニアはどう生きるか、という話。
晴耕雨読という言葉がキーワードでした。
去年までは好況だったのでガリガリ仕事をしてお金を稼ぐのが良かったけど(晴耕)、今年からは好況のときほど仕事がこないはずなので、浮いた時間を自分の知恵を蓄えるために当てた方が良い(雨読)。
理想はサラリーのための仕事は20%程度で片付け、残りの80%を自分の好きなことや勉強したいことに費やすこと。
そうして蓄えた知恵は好・不況に関わらず無くなったりすることはないので、着実に自分の財産になる。

かなり乱暴な要約だけど、主旨としてはこんな感じだったと思います。
自分の場合、さすがに20%の時間では仕事は片付きませんけど、少しでも空いた時間を使って色々勉強できれば、と思います。今、自分がやってることはそんなに間違ってるわけじゃないな、と確認できました。


・次世代Web Platformのために−Java技術動向と関連テクノロジーのご紹介−
 舟崎 健治 氏

仕事でJavaを使ってるので参加してみました。
最近のJava関連のテクノロジーに関してあれこれ。初めて聞く話もちらほらあったので参考になりました。GlassFishとかね。機会があったら触ってみたいと思います。


・Webエンジニアの視点〜開発現場からの視点で〜
 高橋 征義 氏

高橋メソッドの人。
初めて高橋メソッドでのプレゼンを生で見れて、個人的にはそのことだけで結構テンション上がってました。
内容は1990年代後半から今日に至までのWeb技術の変遷と、Webアプリケーションを業務システムとメディア、受託開発と自社開発という属性で2×2のマトリックスを作り、4種類に分類するという話。最後にWebエンジニアのスタンスというか心構えはどうするべきか、という形でまとめられていました。
1枚のスライドが大体数秒〜十数秒で切り替わるので、メモをとるのが結構大変でした・・・。


技術の最先端を走っている人の話というのは良い刺激になるし、勉強になりますね。今後もこういったイベントがあったら参加してみたいです。

技術評論社のサイトでも紹介されています。自分が参加しなかったパネルディスカッションについて詳しくレポートされてるみたいです。

2009年1月30日金曜日

schemeでラムダ式をちょろっと勉強する

最近ちょこちょこschemeの勉強をしてる。
以下のコードなんだけど。

リスト ls から指定した値 x を除去する関数 remove-x

(define (remove-x x ls)
(if (null? ls)
'()
(let ((h (car ls))) ; ls のheadの値をhに束縛
(if (eqv? x h) ; 引数xとhは同じ値か?
(remove-x x (cdr ls)) ; 同じならlsのtailを引数にして再帰
(cons h (remove-x x (cdr ls))) ; 違うならhを再帰処理の結果と結合する
))))

上の例だと再帰関数であるremove-xを,if文の結果がtrueのときとfalseのときとで2回書く必要がある。これをラムダ式を使うと、以下のように書き換えることができる。

(define (remove-x x ls)
(if (null? ls)
'()
(let ((h (car ls)))
((if (eqv? x h)
(lambda (y) y)
(lambda (y) (cons h y)))
(remove-x x (cdr ls)) ;; ラムダ関数の引数yに束縛する関数
))))

こう書くことで (remove-x x (cdr ls)) がラムダ関数の手続き中の変数 y のところで展開され、処理としては最初に示したコードと同じになる。再帰関数の記述の箇所が1箇所で済むようになった。

ラムダ式、おもしろっ。

schemeのレキシカルクロージャとかラムダ式とかが何となく分かった気がしてくると、これまで今いち掴めなかったJavasScriptについても何だか腑に落ちてきた気がする。anonymous関数とかね。

2009年1月12日月曜日

年末の電気屋にて

会社の同期が最近流行りのネットブックを見たいってんで、秋葉原のヨドバシカメラへ

ネットブックのコーナーへ行ってみると、まあ知らない間にいろんなメーカーから出てること出てること。
こっちに出てくる前にPCが壊れて急場しのぎで初代EeePCを買った訳だけど、今更ながらにもう少し様子を見れば良かったって思ったりする。
後の祭りだけどね。

EeePCだけ見ても、
こんなんとか、http://eeepc.asus.com/jp/products101-spec.html
こんなんとか、http://eeepc.asus.com/jp/product1000h.html?n=0

S101など結構良い感じっすね。軽いし。お洒落だし。キーボードも初代に比べて打ちやすいし。ちなみに同期はS101をご購入されたようです。

でも多分今使ってるEeePCが壊れたら、次はiPhone 3Gあたりになると思います。ぶっちゃけ、何のためにネットブック持ってるかって言ったら、主に帰省したときのWebブラウズ用ですから。PCである必要も実はあまりないのです。



そんな話。

2008年12月23日火曜日

Macのアンチウィルスソフトについて

Macのアンチウィルスソフトとして、今まではClamXavを使っていたが、今回iAntiVirus(http://www.iantivirus.com/)なるものに乗り換えてみた。
UIが分かりやすく作られており、インストール、アンインストールも簡単に行える。ウィルス定義ファイルの自動アップデートや定期スキャン、常駐保護等のアンチウィルスソフトが持つべき基本的な機能が備えられており、導入から利用までが簡単にできるってことで良い感じだと思う。

このソフトの評価や感想について色々検索してるいると、気になる記事を見かけた。

追記:コメントで教えていただいたのですが、TimeMachineでバックアップがうまくできなくなる不具合があるようです。TimeMachineのバックアップが失敗してしまう方は疑ってみると、いいかも知れません。

パワフルなウィルス除去ソフト『iAntiVirus』 | Macの手書き説明書より引用】


しかし、サポート掲示板をチェックしてみると最新の1.2版では上記の問題は修正されているようだ。
実際に自分の環境でもiAntiVirusを導入しているが、TimeMachine及びTimeCapsuleは問題なく動作している。

2008年12月15日月曜日

TimeCapsuleを導入した。

さーて久々にブログでも更新してみるか、って思ってみたら最後の更新からもう3ヶ月経とうとしてるじゃないですか。
もう少し、頑張ろうか。


自宅に無線LAN環境が欲しかったのと、データのバックアップとか、サブPCとのファイル共有とかがやりたかったのでTimeCapsuleを導入した。その際にあれこれしたことを備忘のために残しておく。

■初期設定
ネットワークの設定はラクチン。
勝手にTimeCapsuleの設定ウィザードが立ち上がるので、言われるがまま入力していくだけ。

■TimeMachineでバックアップ
最初のバックアップはPC内のデータを全部(60Gほどあった。)転送するため、一晩中PCの電源をつけっぱなしにするはめに。ただ、翌日会社で同期に「そんときだけ有線にすれば良かったのに」って突っ込まれた。確かにその通りだと思った。

■ファイル共有
サブPCであるEeePC(xubuntu)とのファイル共有。ここで若干手こずった。以下、その手順。
まず、TimeCapsuleの設定を少し変更する。
・Application → ユーティリティ → AirMacユーティリティを起動
・手動設定を選択 → 上側の「ディスク」アイコンを選択 → 「ファイル共有」のセキュリティ保護の「アカウント」を選択
・アカウント作成(ユーザ名、パスワード、アクセス権限の設定)

EeePC(xubuntu)側の設定

[smbfsをインストール]
$ sudo apt-get update
$ sudo apt-get install smbfs

[マウント]
$ sudo smbmount //<IP>/<Remote Directory> /<Local Directory> -o username=<yourname>,iocharset=utf8

[備忘録] Time CapsuleのディスクをLinux (Ubuntu)でマウントする方法 « 爽やか日記より引用】


これでTimeCapsuleのデータにEeePCからアクセスできるようになった。
ところが・・・
TimeCapsuleのアクセスの方式を変更してしまったがために、最初に作ったTimeMachineのバックアップデータにアクセスできなくなっちまったよ。orz

仕方ないのでTimeMachine用のアカウントを設定し、再びバックアップデータを作り直した。

2008年9月28日日曜日

達人プログラマーを読んだ。

1ヶ月ちょいほど、放置してました。
何となく気が向いたので放置してたネタをここいらで投稿してみる。


おっそろしく前の話になりますが、達人プログラマーを読みました。やたら読むのに時間がかかっちゃったけど、英語を翻訳して書いた日本語と、日本人が書いた日本語じゃ、読みやすさはやっぱ違うよね。じゃあ、原文を読めっつー話になるかもしれませんが、私にそこまでの英語力はない。

内容としては、システム開発の仕事を行っていく中での、いろいろなシーンにおけるノウハウ集といったもの。
かなり納得できる話もあったり、未経験故に今いちピンとこなかった話もあったけど、著者の方が全編通して強く主張していたことは次のこと。

・知識の二重化をしないこと。(DRY原則)

似たような処理は共通化してまとめた方が、構造としてきれいになるという話は、大学などでプログラムを勉強してる人にしてみれば、当たり前のことと思う。しかし、ここで二重化すべきでない知識とは、ソースコードに限らず、そのドキュメント等をも含めたものであった。

先日、仕事で実装とドキュメントの整合性がとられていないことによる弊害をもろに受けたばかりなので、この話はすごく参考になる。
大抵のIT企業がそうだと思うけど、うちの会社はドキュメント類はMicrosoft Officeで作成するのが主流だ。よって、作業プロセス的に実装とドキュメントの整合性がとれなくなるっていうリスクはどうしても含んじゃうんだよね。

本書で紹介されてるやり方を職場で実践できれば良いのかもしれないけど、できるかなぁ。

2008年8月4日月曜日

今日は研修だった

Linux技術認定試験。通称LPICの試験対策研修だった。内容はコマンドの使い方とか、カーネル、ブートローダ、OSの仕組みとか。おおよその部分についてはそれなりに知ってたんだけど、オプションのつけ方による細かい動作の違いとか、知らないこともチラホラ。

勉強になる部分もあって、まあ良かったんだけど、本試験が夏休み明けてすぐなんだよね。・・・orz
ちなみに納期もそのへん。

レベル1の試験だから、難易度的には決して高くない。合格率は60%くらいらしい。だからと言って、素の状態で受験してもさすがに通らない。過半数の人間が合格するような試験で不合格になるわけにはいかないからな。

今までの俺の行動傾向からして、ぜってー実家で勉強しねーよ。きっと、本持って帰っても無駄だろうな。まあ、まだ時間あるし。試験まで何とか一通り問題解きましょうか。



という愚痴。

2008年8月2日土曜日

iPodの調子悪かったんだけど

先日iMacを導入してからというもの、iPod nanoの調子が悪くなっていた。症状としては、iTunesとSyncするためにiPodを接続するとフリーズしてしまい、一切の操作を受け付けなくなるというもの。その状態になると、最早バッテリー切れを待つ以外にとれる手段はない。

その症状が2回目に起きたときにふと冷静になってあることを思い出した。

そういや、iPodのフォーマットWindowsのままだ・・・。

iPod復帰後、即ファームウェアを入れ替えて無事解決。

2008年7月26日土曜日

iMacがやってきた。

この度、Macデビューを果たしました。

長年Windowsマシンをずっと使ってきていたわけだけど、改めて自分のPCの使い方や嗜好について考えてみると、むしろMacの方が合ってるんじゃないかという結論に至った。
大雑把な理由としては以下の3点。
・音楽や写真、動画のマルチメディア系の扱いに強いこと
・UNIX的な使い方もできること
・何かにつけて作りがお洒落であること

1番目についてはWindows環境でもさして不満はなかったんだけども、理由として大きいのは2番目と3番目。仕事や趣味の関係から手元にLinux or Unixの環境は欲しい。かといって、CygwinやVMWareを使うのはちょっと鬱陶しい。そしてMacのデザインの方がハードウェアからOSのUIまで含めて、何かとお洒落な感じがする。
UIについては大分慣れてきたと思うんだけど、マウスの動きだけは未だしっくりこない。マウスの加速度によってポインタの移動距離が変わるという、あの動きに長年Windowsを使ってて染み付いた感覚がまだついてこれない感じ。

ここ数日は仕事から帰ったあと適当にあれこれ弄りながら、Windowsで使ってたようなソフトを一通り揃えていた。今回インストールしたのが以下。
・Firefox
ぶっちゃけ、こいつが動きさえすれば自分的にはどんなOSでも何とかなる。Foxmarks Bookmark Synchronizerが便利。

・Thunderbird
ずっと使ってたメーラなので、やはりMacでもGMailをIMAPでアクセスしてます。

・Carbon Emacs
自分、Emacs派なんで。

・VLC media player
様々なフォーマットに対応したメディアプレイヤー。WMVとかでも再生できます。

・OpenOffice.org
オフィスソフトなんて普段、まず使わないだろうけど一応入れてみた。

・Microsoft Messenger
Windows Live MessengerのMac版みたいな。

・BathyScaphe
2ちゃんブラウザ。

・iStat Pro
Dashboradのウィジェット。CPUやメモリの使用量、各所の温度まで出してくれる。

・XCode
Mac OS Xアプリケーションを作成するための統合開発環境、らしい。gccを入れたくてあちこち探してたら見っけた。

とりあえず、こんなところ。別段珍しいものがある訳じゃないよね。

2008年5月14日水曜日

今やってること

このブログの最初の記事で、週二回の投稿を目指すと宣言したものの、早くもそれを破ってしまいそうな、今日この頃。

自分の興味のある方面の技術に話題を絞る、というコンセプトにした段階でそもそも、継続して更新することはハードルが高かったのかもしれませんが。
ただもちろん単純に勢いでブログをスタートしたわけでなく、自分の中でこれから勉強してみたい事柄がいくつかあって、それの進捗報告的な感じで続けていければ・・・と、考えていたわけです。

で、今私が何をやってるかという事ですが、こちらの本を読んでいます。
海外にRubyを広めたDavid Thomasさんらが書かれた本で、システム開発を行う上で、より実践的な手法等が紹介されています。訳本を読むのが苦手なせいか、はたまた私に根性がないせいか、若干読むのに時間がかかってますけど。

あと他にはLisp系の言語の勉強とか、学生時代にあまりガッツリとはコーディングしなかったJavaScriptとかやってみたいなぁ。iGoogleのガジェット作りとかならプログラムの規模も小さいだろうし、勉強するにはちょうど良い目的になるかも。

ということを、やれる見通しのない段階で述べてみる。

2008年5月8日木曜日

ASUS EeePCをチューンしてみた

ASUS EeePC を購入して1ヶ月が経過したので、これまでチビチビいじってきたことを、このあたりでまとめておこうと思う。
やったことをリスト化するとこんな感じ。
  • OSアップデート
  • 不要なアプリの削除
  • SDカードドライブをHDDとして認識させる
  • SSDの空き容量を頑張って増やしてみる
  • OSの動作をなるべく軽快にする
  • メモリモジュールを交換
最初に行ったのがOSのアップデート。
WindowsMediaPlayerだとか、IE7とか、.NET Framework 3.0だとかのインストールを避けたけれども、セキュリティ関係などは入れないわけにはいかないので、ここでいきなしCドライブの容量が800Mバイト程になる。

次にEeePCでは使いそうにないアプリケーションをアンインストールする。WindowsLive~とか、AdobeReader等も削除。
これで約150Mバイト程空けることができる。

次に付属してたSDカード(4GB)にブラウザ等のアプリをインストールするため、SDカードドライブをHDDとして認識するためのドライバをインストール。
詳細は以下の記事

次に行ったのが、OSの軽量化と動作を軽快にするための処置。
こちらも詳細は以下の記事

ここで紹介されてる方法のうち実際に行ったのは、危険度低に分類されていた仮想メモリのOFF、WindowsUpdateの使わないファイルの削除、システム復元に使う量を減らす、マイドキュメントフォルダの移動、くらい。これでCドライブの残り空き容量は1.39GBになった。
デスクトップのテーマをクラシックにしたり、余計なエフェクトを全てカットする等して、動作面も多少は改善されたかな。

で、最後に先日頂いた初任給でノートPC用のメモリモジュール
を購入。2GBのメモリに交換した。
感想としては、メモリが大きく拡張されたのでFirefoxが少々メモリリークしたくらいじゃ、あまり気にはならないが、いかんせんCPUのクロック周波数が600MHz程度に抑えられているためにそちらがボトルネックになって、劇的な性能向上!とまではいかない感じ。

あと、無視できないのが排熱の問題。
PCを使う場所を誤れば(例えばベッドの上など)、あっという間に熱がこもりパフォーマンスがガクッと下がる。ちなみに今は応急処置としてノートPCをこんなところ(↓)に置いている。


床置き式の冷房の送風口ね。
今後は熱問題にどう対処していくかが課題だね。

もう一つ問題なのが、つい先日、WindowsXPのServicePack3が公開されたこと。SP3なんぞを入れてしまうと、せっかく空けたディスクの容量を再び圧迫してしまいそうなのが悩みどころ。あの手のパッチは大体、出たてのころにインストールすると動作が怪しくなるし。
まあ、近々メインマシンを購入することになれば、こいつにXPを入れておく理由があまりなくなってしまうので、いっそのことLinuxに入れ替えるというのも一つの手か。

2008年4月29日火曜日

ブログ始めました。(タイトルつけんの忘れてた・・・orz)

今どき、技術者たるものブログくらい書いてないと
駄目だという話を常々耳にしていたので、
いずれはブログを始めてみようと思っていた。

実は一時期、日誌がわりに大学のサーバにこっそり
ブログを設置していたことがあったのだが、
結局続かなくて一ヶ月もしないうちに消してしまった。
大切なのは内容である。


すでにmixiにアカウントを持っているので、
そことどう差別化していくのかを考えてみた。
とりあえずのところmixiでは割と日常的な内容を、
こっちではPC等の環境作りや試しに書いてみたコードなんかの
技術的な、ややマニアックな分野でアウトプットを出していこうかと思う。
(元々面倒臭がりな性格なので、今一番更新頻度が高いのはTwitterなんだけどね。)

・ブログは3ヶ月くらい続けてればそれなりに形になる。
・コードは晒してこそなんぼ。

いずれも有名な某ブロガーさんのお言葉である。
まずは3ヶ月、そして週に2回くらいの投稿を目指してみようかと思う。
(何か始めるときはまず、こうして他人に宣言しておくのがやる気出す上で大事、らしい。)