zowのプログラムな日々

日々のプログラミングとか

どうしても・・・・

いや、ブログ書く気はさらさら無かったんだけども、どうしても言いたいというか、どっかにぶち撒けたいこの気持ち・・・・。こういうどうでもいいこと書く為にブログってあったんだなー、なんて思ってさり気なく更新してみる。

先日、音楽遍歴なんかを語ってた時に紹介したDEAD OR ALIVEのボーカルのピート・バーンズが亡くなった。

zow.hatenablog.com

www.youtube.com

この当時のピート・バーンズは見ての通りイケメンだったんだけども、PVの内容から薄っすら感じられる通り、この人はバイかなんかで(確かDEAD OR ALIVEの片割れと同棲とかしてた気がする)、どうも美的感覚が男のそれとはちょっと違ったみたい。売れまくった後、その金をぶっ込んで整形しまくった。俺が知ってたのはそこまでで、その後どういう事になったのかなんてさっぱり知らなかったんだけども、亡くなったって事で写真見てびっくり。その後整形失敗して大変な事になってた。

www.youtube.com

顔は別人なのに声はそのままなので違和感ありまくりなんだけども、まぁこれぐらいならブログを書こうなんて思わない。心の中でご冥福を祈って終わる。

違うのだ。俺が言いたいことはピート・バーンズが似てるって事なのだ。誰に? 名前は判らん。PV見てくれ

www.youtube.com

ゆらゆら帝国の「BEAUTIFUL」って曲なんだけども、この曲は好きでPVを見た時にびっくりした。天久聖一画伯が描いてる。天久聖一は電気のPVしかやってない物だと思ってたので初めてみた時は衝撃的だった。絵のタッチも電気の時と違って綺麗。

主人公が往年の漫画「ダメおやじ」に似てるとこもアレなんだけども、

http://www.geocities.jp/takeshi_departure/image/scrap/dameoyazi/01.jpg

女の方はピート・バーンズにクリソツである。

http://tn-skr4.smilevideo.jp/smile?i=19858235.L

いやー、普段こういう話題を出来る人が身近にいないので、どこかに吐き出したくてたまらなかったんだけど、書けてよかった。うん。

リニューアル

久々の更新だけども、思うとこあってちょっとリニューアル。若干記事も消した。

とりあえず最近はXamarinでGUIアプリ作ってます。サーバ側は紆余曲折の末、ElixirとRubyでやってます。RabbitMQは使って無くて、Postgresのストアド使って各言語間をある程度連携させてます。重いのはElixirにやらせて軽いのはRubyにやらせてる。でも限定回帰っていうか、慣れの問題でRubyからPythonに変えようかなーとも思案中。

まぁ楽しくプログラム書いてるんだけども、ブログ更新するのとか飽きてきた。ここ10年ぐらい色んな所を転々としながらブログ書いてきたけども10年もやってるとさすがに飽きるね。だからと言って消してしまうとまた書きたくなった時に面倒なので残しとくかねー、とは思うんだけども、他にもブログあるので、プログラミングにフォーカスを当ててるこのブログとかは消しちゃってもいいかなーとか思ってたり。プログラミングとかについて書きたいならQiitaとかで書きゃいいじゃんね、みたいに思ったりもする。つか、そもそも公開する必要なくね?みたいにも思うので、実際的なコードとかが載ってる記事は消した。自分の備忘録としてはOneNote使ってるのでそっち見りゃいいし。

そんな訳で、このブログは気が向くまで更新しないかも。

灼熱っすね

室温がですね、38度とか突破するともうその部屋で何もできないんですよ。えぇ。この夏に向けて熱対策したPC達は元気に動いてますよ。でも人間がダメなんです。体温より暑いとまともな思考とかできないですね。生命的な危険を感じたりするレベルです。今日みたいに外気温が35度超えると室温も40度に達してしまったりします。40度って体温だったらちょっとした重症患者ですよ・・・。一応、扇風機があるんですが、焼け石に水っていうか、熱気を撹拌してるだけなので涼しい風など来るわけも無く、熱風が送られてきてもう発狂寸前です。っていうか発狂します。

そんな訳で、エアコンの無い自室からエアコンのあるリビングへ逃げて昼間は過ごしてたりするんですが、両親共にいる部屋なのでPC弄ってプログラミングするスペースとか無かったりします。食事時じゃなければ食卓があるんですが、食卓にパソコン載せるなというお達しが出てるのでそういう訳にもいかんです。居候の身ですし、あまり横柄に過ごす訳にもいかんので、そこら辺は守ってるんですが、PC触れないと何もやることが無いですし、タブレットでツムツムやってる日々に逆戻ってたりします。

これじゃイカンと思い、プログラミングは出来ないながらも、タブレットではいろいろと妄想しているシステムの設計をしてたりします。OneNoteを使ってるので、あとでPCでも参照できますし、何かと便利な時代になったもんです。

いま妄想しているのは、Xamarin(C#) or Javaで作ったデスクトップアプリをフロントエンドにして、サーバ側のデータをRESTfulに弄れるようにして、サーバ側はクライアントがいなくても勝手に動いて情報を処理してもらう類のシステムです。クライアント側はXamarinかJavaですが、ここはまだ勉強途中なので決めてないですが、常用しているタブレットAndroidなので、MacLinuxAndroidでフロントエンドを作成しようと思ってます。XamarinにしてもJavaにしてもAndroidアプリを作れるっていうのは大きいですね。非常に夢が広がります。

まぁクライアント側は開発言語さえ決まっていない状態なので兎も角として、サーバ側の方はボチボチ真面目に設計したほうがいいのかなー、なんて思ってたりします。OSはLinuxというのは決定なのですが、開発言語はこちらもまだ決めてないので、早急に決める方向で考えていますが、ここでちょっと悩んでます。XamarinでASP.NETという未知の世界に踏み入れるか、はたまたJavaServletというこれまた未知の世界に踏み込むべきか、いやいや、ここはサクっとRubyPythonPHPで作ってしまうか、つーので悩んでます。Xamarinやってて突然思い立ってJavaを勉強し始めたって流れを踏襲して、ここはまた新たにGolangに手を出してみるべきか?なんて事も考えてしまってます。一度にあまり多くのことをやると混乱するだけなのは判ってるのですが、ASP.NETServletも未知なんだから勉強しなきゃならんし、だったらGolangでいいんじゃね?みたいな思考パターンになってますね。やばい傾向かもしんない・・・。無難にRuby辺りで作ってしまったほうがいいんだろうか。

とりあえず、昼間はリビングの床で寝て(ソファは両親がくつろいでる為)、夜中に室温が下がったところで自室に戻ってPC触って開発する感じで今年の夏はやってこうと思います。去年は友人宅に避暑してたんですが、ちょっと友人の会社が修羅場ってて、とてもじゃないが泊まりに行ける雰囲気ではないので今年は避暑なお泊り会はお流れです。まぁ室温的に夜中限定にはなってしまいますが自宅環境で開発できますし、ここならネットも完備なので勉強もはかどります。慣れれば良いかもしれない。おそらく9月いっぱいぐらいまではこういう感じでダラダラやってく事になりそう。

ツボ

以前、音楽遍歴なんかをちょっと書いたけども、プログラミングする時には必ず音楽を聞いてる。これには良い面と悪い面があって、良い面は、特定の音楽を聞くとパブロフの犬の如くスイッチが入って、あまりやる気の無い時でも頭の中がプログラミングモードになる事である。悪い面は聞き入ってしまってプログラミングどころじゃなくなって手が止まってしまうことがある事だ。

このプログラミングのスイッチを入れる曲(アルバム)ってのがいくつかある。海外のアーティストだと以下だ。

  • Blink-182(Enema Of The State)
  • Doop(Circus Doop)
  • Beirut(The Flying Club Cup)
  • Vanessa Paradis(Vanessa Paradis)
  • Deee-lite(World Clique)
  • U2(The Best Of 1980 - 1990)
  • Coldplay(A Rush Of Blood To The Head)

日本人だと以下だ。

様々なジャンルの物があるけども、実際は上記のアルバムではなくその中の特定の曲でスイッチが入る。例えば、Blink-182だとEnema Of Stateの中のDumpweedだし、DoopだとCircus DoopのYess!だったりする。洋楽は基本的に上がる系の曲が多い。ただ邦楽はほんと謎だ。Mr.ChildrenのQだと友とコーヒーと嘘と胃袋だし、my little loverだとFreeだし、サンボマスターだとふたり(二人は世界のためにバージョン)だし、Yukiだと長い夢だ。はっきり言って曲ごとに共通項は無い。なので何がトリガになってプログラミングのスイッチが入るのかはいまだに謎だ。

そんな上記の曲(アルバム)の中で唯一特別な物がある。それがThe Yellow Monkeyだ。これだけは他の物とはちょっとだけ違う。曲じゃなくてアルバム全体なのだ。このアルバムを通しで聞くことでスイッチが入る。と言うのも、なんていうか原点なのだ。俺のプログラミングの原点はThe Yellow Monkeyにあるんだと思う。他の曲は何気なく聞いてて見つけたスイッチの入る曲だったりするのだけども、The Yellow Monkeyだけは「初めて」プログラミングに打ち込んだ時に聞いていたのがイエモンだったから聞くと初心に帰るという効果なんだと思う。

サラリーマンになって1年目に月給は15万ぐらいだったのだけど、ローンで35万もするパソコンを買った。これが自腹で初めて買ったパソコンだった。学生時代は学校で98シリーズを触ってはいたのだけど、家にはパソコンは無く、就職して初めての給料を握りしめて頭金に5万入れて買ったのがIBMのAptivaだった。やっと買ったパソコンでやっていたのは当初はパソコン通信だったりしたんだけど、そのうちパソコンに慣れてきたところで買ったのがMSのVisualBasic2.0だった。なんか立方体の馬鹿でかい箱にVBの入門書とフロッピーが入ってて、それを喜々としてインストールして仕事から帰ると一心不乱にVBの勉強をしていた。その時に聞いていたのがイエモンなのだ。その後、VB4.0を買い、MS-Officeを買い、VBAを組んだりして仕事にも活かしていくんだけど、その当時聞いていたのがイエモンで、ちょうどその頃がイエモンの小規模ながらも全盛期と言える時期だった。ちょうどTRIADから移籍する前辺りかな。同じ時期にミッシェルガンエレファントがデビューした辺りで、TRIADのガイコツマークのCDばっか買ってた感じだ。

その後、イエモンは不遇な時期を過ごして爆発的に売れること無く解散するんだけども、その解散後に出したメンバーが選んだ曲が詰まった公式ベストアルバムがこの「Mother Of All The Best」というアルバムだ。正直、TRIADからファンハウスに移籍してからはあんまり聞かなくなっていくんだけども、その移籍前後の曲が詰まっているのがこのDisc1だ。なので、この1枚のCDの中に俺のプログラミング人生の原点とも言える時期の思い出が詰まっている。

そんなThe Yellow Monkeyなんだけども、こないだこのアルバムを聞いて不覚にも泣いてしまった。音楽を聞いて泣くという行動が久々で、無意識にしかもそれが他でもないThe Yellow Monkeyということでびっくりしてしまった。別にそんな当時の事を思い出した訳でもなく、イエモンに対してもそんな思い入れも無い。ただ単にプログラミングに熱中していた頃に聞いていたというだけのアーティストで、今まで聞いて泣くなんてことは一度も無かった。まぁたまたまなんだろなー、なんてその時は思ってたんだけども、先ほどプログラミングしながら聞いてたらまた泣いてしまった。こうなるともうミステリーですよ。なんで俺はイエモン聞いて泣くの?意味がわからない。

泣くポイントは2箇所あって、7曲目の「Burn」と14曲目の「空の青と本当の気持ち」だ。「Burn」でうるっときて、そこから持ち直すんだけど、13曲目の「JAM」で再度うるっときて、そのまま「空の青と本当の気持ち」でドバーッっとくる。なんでじゃい、と思って再度その曲を単独で聞くんだけども別に涙は出てこない。1曲目から通しで聞くと7曲目と14曲目で泣いてしまう。プログラミングしてるので歌詞をじっくり聞いてる訳じゃないし、ほんとに謎。「空の青と本当の気持ち」のイントロのギターの時点で泣いてしまうのだ。

今までも聞いてたがそんな事は無かった。一時的な物なんだろうか。どうも無意識に変なツボに入ってしまっているらしい。

www.youtube.com

なんか無意識に泣いてしまう自分が面白いので、Javaを勉強している当分の間はイエモンを聞きそうだ。

C#をやってみて思うこと

今までいろんなスクリプト言語で開発してきた。PHPRubyPython等々。そんな俺がXamarinに出会ってC#を始めた。PHP等のスクリプト言語C#。この2つには大きな違いがある。まぁコンパイルするかしないかってこともそうなんだけど「型付け」について大きく違う。強い型付けとか弱い型付けとか、そういうのだ。今までやってきたのがスクリプト言語ばかりだったので型についてあまり考慮しなくても良い感じだったんだけども、このことについて余り深く考えた事はなかった。ところがC#は違う。キッチリと型を決めてやらなきゃいけない。

多分、スクリプト言語でやってきた人だとここら辺で結構躓くんだと思う。でも俺の場合、使ってて気持ちいいっていうかスッキリする。割と神経質なコードを書く方だと思うので、こういう「強い型付け」の言語と俺との相性は凄い良いみたいだ。おかげでC#なんて今まで触ったことも無い言語だってのに1ヶ月も経ってないのに普通に書けるようになった。正直頭の中をPHPからRubyに移行するよりもC#に移行する方が楽。多分今まで知らなかっただけで、コンパイル型のこういう言語と俺との相性は抜群にいいんだろう。

で、C#で習作をいくつか作っていろいろ試している段階なんだけども、ここでふと思う。このC#って言語はJavaWindowsに載せるかどうかみたいな問題で揉めて、キレたMSがJavaVM対抗で作った.NETって環境で動かす為に作った言語(すげー昔にそんな感じだった出来事があったような記憶がある)だったと思うので、Javaっぽいっていうか、JavaをMS風味にした様な言語っていう風に認識してる。であれば、何度も勉強しては挫折しているJava。これもちゃんと勉強したら実は相性が良くて簡単なんじゃなかろうか?と。

そんな訳で、C#を勉強してる最中だってのにJavaも勉強し始めた。これがなんとも恐ろしい事に、今までと違ってスムーズに勉強できてる。C#っていういたれりつくせりな言語を経験しているからなんだろうか、Javaがなんとなく理解できている。

C#にしてもJavaにしても言語仕様について勉強するのは苦じゃない。どんな言語でも(関数型を除く)変数と配列と一通りの制御公文の書き方さえ知ってしまえばなんとかなる。問題は構文的な物ではなくて、言語特有のしきたりというか、そういうのである。Javaの取っつきにくい所っていうのは、意味不明にながいパッケージ名とかだったんだけども、これもIDEを使うことを前提にすると全然問題ない。ていうか、Javaという言語はIDEが無いと多分書けない。それぐらいIDEが大事だと感じた。とりあえずNetbeansを使ってるんだけども、PHP開発でよく使ってたってのもあってJavaでもすんなり使えている。ホントにもうビックリである。あれだけ相性最悪だと思ってたJavaC#を知ることによって理解できるようになれるとは思わなかった。

まぁJavaの難を挙げるとすれば、古い言語だけあってツール、特にパッケージ管理については後からできた言語の方が充実してる。いや、多分Javaにも便利なツールとかがあるんだろうけども、まだ調べきれてない。つか多すぎるから何が良くて何が悪いのかも判らないし、どういう時にどういうツールを活用すれば良いのかも判らない。多分、俺みたいな初心者レベルの人間が不自由に思う物については解消できるツールがあると思うので、その都度調べていかなきゃいけないのが地味に面倒。

とりあえず、大局的な目的はマルチプラットフォームGUIアプリの開発なので、MonoでもJavaでも実現できるんだけども、とりあえずどちらも使えるようになってから今後の身の振り方を決めたい。どちらの言語も知っておいて損は無いし、はっきり言ってスクリプト言語よりも相性がいい様に思える。

C#Java、両方触ってみた感じだと、今の所はJavaの方が書きやすいかな。C#は楽なんだけど、なんか若干「書かされてる」感があるっていうか、そういう感じ。Javaの方が自由に書ける気がするなぁ。夏が終わる頃にはJavaでなんか書き上げてみたい。