Diary

【日記】納品をなくせばうまくいくを読んで

  • POST
今週は「納品」をなくせばうまくいくという書籍を購入。 これにはエンジニアがエンジニアを続けていくに従って立ちふさがる問題と向き合っており、 自分にとって腑に落ちる箇所が何箇所もあった。 自分の働いてきた環境 SIerの開発現場では一定以上の技術力は評価されない。 その理由は人月で、会社としては上級者3人で3人月の単価をもらうよりも、初心者10人で10人月の単価をもらう方が儲かる。 この辺は一般的に言われているウォーターフローの駄目な所。 そうして初心者だらけになった開発現場は地獄だ。 レビュー無しでは何も進まない職場、検討中のまま放置され続ける仕様、無能な自分・同僚、帰りにくい空気、言われたこと以上は出来ない環境。 これでは子供の頃から聞かされて育った赤の国の風景ではないか。 国全体が搾取してミサイルの1本でもこしらえるか、経営者が搾取して贅沢するかの違いでしかない。 しかも当然のように納期は厳守、どんな人間が担当すればこんな環境で良いシステムが構築出来るのだろう。 当然のように燃え上がるプロジェクト、火消し舞台は凄腕…でも給料は俺ら初心者と殆ど変わらない。 何故この火消しが出来る凄腕のプログラマは薄給なのだろうか、違約金を回避出来る救世主なのに…上層部は自然現象とでも思っているのだろうか。 それはさておき、憧れて入ったSEという業界は地獄だった。 なんでこんな辛い想いをし続けながら、人の仕事を奪っているのだろうと何度も自問自答した。 この本を手に取ったきっかけ この本は発売(発刊?)された時に一度話題になった書籍で、 当時の自分にはどうしても夢物語としか思えずスルーした。 現在の職場ではWebアプリをGulpやAngularJS等の(当時の)最新フロントエンド技術を使って開発していくスタイルになり、Web系のWindowsとの相性の悪さからMacbookに乗り換えた。 MacbookはiTermという出来の良いターミナルエミュレータとHomebrewというパッケージ管理ソフトが存在する。 CLIがより身近になり、コマンドを組み合わせる事を思いつき、自分で新しいCLIツールを作りという風に簡単にステップアップしていける環境が整っている。 その結果、驚くべき事に飛躍的にエンジニアとしての能力や速度が向上した。 CLI環境を触る時間が増え、タイピング速度が向上し、CLIツールを作るようになり、それが雪だるまのように積み重なっていった。 そして、少しの自信が付いた先日、知り合いがソニックガーデンに務める事になった事を聞いて、この本の存在を思い出した。 35歳定年説 35歳定年説で検索すると、やはりというべきか、エンジニアなんかやっていないで上流工程に進めという論調が目につく。 違うのはオブラートの厚さと溶けにくさだけだ。 経験として33歳になった今が一番プログラマとしての腕は高いと感じていて、 この職場に入社した2年前の自分と比較して、当初の自分3人分と今の自分1人だったら後者のほうが余程マシである。 もちろん賃金が3倍になるわけではない。 この差を実感していながら35歳定年説を唱えている人の上流工程に進め云々は的外れと言わざるをえない。 同じ頭脳労働の格闘技である将棋界ではアラフィフの羽生名人が1冠から3冠に返り咲いているし、議員も40台は若造扱いだ。 腑に落ちた箇所 属人性の排除に関しては薄々無駄だろうと思っていたが確証が無かった。 この本でもバッサリ切り捨てているのを読んで、 脳裏に属人性の排除の結果結局初心者だらけになって後々エンジニアに泣きつく構図が思い浮かんだ。 まとめ 特に自分としては35歳定年説の論調により、 30を過ぎて伸び続けるエンジニアの将来は社会的に受け入れられていない現状とのギャップに苦労している人は多いのではないかと感じる。 その時にこの本に出会えた事はとてもうれしいことだ。 長くエンジニアを続けていく為の手法として挙げられている採用方法やギルド制度も参考になった。 しかしこの納品のない受託開発はきっとまだまだ模索段階、次の書籍でより洗練された著者の意見が聞けるだろう。 念のため調べてみると、「リモートチームでうまくいく」という書籍が既に発売済みとのこと。 こちらもまた書店によって購入したい。

【日記】ハッカーと画家を読んで

  • POST
今日はAmazonで注文したあれこれが届いた。 そして先日購入したハッカーと画家を読み始めた。 ハッカーと画家を読んで 現在3章を読んでいる。 1章の「なぜオタクはもてないか」には、 現代人が生きていく上、特に中学までに知っておけば人生がガラリと変わっていたかもしれない、真理が書いてあった。 虐めにあい、自殺を考えている様々な子供達を社会に羽ばたかせる事が出来るかもしれない。 でも、30に到達してようやく「人は万物において行った分しか成長出来ない」事を知ったからこの章の価値がわかるだけなのかもしれない… 2章の「ハッカーと画家」は少し説明しづらい。 ハッカーはエンジニアとも、科学者とも異なるという事が書かれていた。 ハッカーがどのように生きていくべきかの指標が描かれているようだ。 3章からはどんどんハッカーとは何かに迫っていく模様。 明日も使って読破したい。 Amazon で注文したあれこれ ブックスタンド 電動リクライニングベッド USB PD対応のUSB充電ハブ 午前中はリクライニングベッドの組み立てを行った。 同僚に教わったブックスタンドは超絶便利だった。 昼からは昼食、ゲームをしてだらけてしまったが…

【日記】Gauche の勉強の進捗+その他

  • POST
今日は仕事を少し早く上がらせてもらって、 ヨドバシでケーブルを購入して帰宅した。 帰りにポストを見ると注文していた「プログラミングGauche」が届いていたので、早速勉強開始。 今日の成果 20P 4章1.1まで読んだ。 全体は460P以上もあるので続くかどうか少し心配ではある。 LISPの起源やS式、機能を取り込みファットになったCommon LISPと、 ライブラリがあんだろ知らねえよ勝手に作れを維持したSchemeに別れたあたり。 2〜3章はGaucheの特徴、設計思想や誕生の背景等が記載してあった。 Gaucheはフランス語で左、少しぐらいは正しくなくてもいいからゆるくやろうぜ的な意味が込められているとか・・・ その他 朝痛感したけど、起きた瞬間ベッドにテーブルが付いているのは素敵。 作業がはかどりすぎてやばい、廃人ぶりもはかどりそうでやばい。 …というわけで、誘惑には勝てず電動リクライニングベッドを通販で購入。 お値段は3万だった。 日曜日に購入した入門用万年筆のkakunoを使ってみた。 ボールペンとは一線を画すかき心地はやばい… 一応従来のボールペンとしてJetstreamはあると安心だが、他は全てこれで統一してしまってもいいかも。 ヨドバシでLISPの別の本と、USB-TypeCのケーブルを購入… ケーブルは2mのものを購入したが少し短いと感じる。 明日3mのケーブルと交換出来ないか聞いてみたい。

【日記】Gauche の勉強の進捗+その他

  • POST
今日はGaucheの勉強と買い物、掃除等を行った。 新言語ということでどんどん日記を書き出していこうと思う。 元々のプログラミング言語に対する考え 元々プログラミング言語は適材適所である。 Linuxのコア機能として作られている最速の高級言語であるC言語があるが、 低機能であったり、文法が未成熟でバグが出やすい仕様であったり、 メモリやポインタの事を常に意識する必要がある。 昔はPCのスペックが悪く、より低階層に触れる実行効率の良い言語である必要があったが、昨今ではその問題が解消してきた。 Ruby や Python 、Scala 等の良い言語の登場により、格段に読みやすくなり、バグも出づらくなったと感じる。 もちろん私が職場で使っている LiveScript もその一つで、PHPした知らなかった自分の世界が大きく広がったきっかけとなった。 これからの世界は多少実行効率を犠牲にしても、 可読性やバグの少なさ、シンプルさ…等の要素の強い言語に置き換わっていくだろう。 先日まではこのように考えていた。 Scheme / Gauche と出会ったきっかけ 知人が LISP にハマった。 彼が言うには、世の中のハッカー達は LISP で仕事をしているらしい。 LISP のマクロを組み、Java のコード等に置き換えてそれを納品しているというのだ。 それほどまでに簡潔で美しい関数型言語があるとのこと。 詳しく話を聞くと、その中でも Scheme の Gauche を使い出したと聞く。 軽く調べた感じでは、Common LISP や Clojure と並ぶ三大LISPの一つ(自分の勝手な感想です)らしい。 Common LISP は実装を拡張してきた経緯からごちゃごちゃしている箇所もあるらしく、 新しく始めるなら Scheme や Clojure がお勧めらしい。 自分も友人も Java や JVM にはさっぱり興味がないので、必然的に Scheme を選択という流れだ。 とりあえず REPL を入れると勉強が捗ると教わり、 Gauche というREPLをインストールした。 Macbookに入れるのは一瞬だった。 brew install gauche echo '(print (list->string (reverse (string->list "アルゴリズム"))))' | gosh ムズリゴルア ああ、これは簡潔で美しい言語だ。 一発で LISP や Scheme の持つ魅力に取り憑かれてしまった。

ブログ移行と思い出

  • POST
PHPフレームワークと出会うまで ずっと可能性があると信じていたWebアプリ、 自分自身はエンジニアとしてのセンスはあるつもりと思ってはいたが、 ずっとどう勉強すれば分からなかった。 小さい頃から一人で留守番する鍵っ子だった。 よく空想して遊んだし、パズルを解くのは昔から得意だった。 勉強は嫌いで殆ど勉強しなかったが、数字をパズルのように組み合わせるだけで解ける物理は好きで得意だった。 ゲームの計算機をJavaScriptで作ってみたり、 高校卒業後は情報系の専門学校に入り、 卒業研究では流行りのAjaxをつかったシステムを作ってまわりの人をびっくりさせた。 でも、それだけでは僕の求めるエンジニアには決してなれない。 勉強をして新しい知識を身につける能力が欠けていた。 IT土方に足りないもの 僕は所謂IT土方だった。 要求から人より速くフローチャートを描き起こせても、 計算が速くて多重のネストを少ないバグで回せても、 超能力で不具合のある行を指差して見つける事が出来ても、 当時それなりに難しかったソフトウェア開発技術者を持っていても、 僕にはWebアプリは作れはしなかった。 少年漫画は強敵と対峙すれば成長して互角の勝負を繰り広げられるが、現実そんなに甘くない。 現実世界の人間様が成長するのは、打ちひしがれて枕を濡らした次の朝だ。 これはどんな人間であっても、やった分しか成長できないことを意味している。 エンジニアとしての成長も同様だ。 Hello Worldから初めて、チュートリアル、しょぼいアプリケーションを作らなければ一生何も作れはしない。 やりたい事は沢山あるけれど、 きっと自分の無知とやる気のなさを呪いながら何も出来ないまま一生を過ごすのだ。 そんなことを思いながら務めていた、とある会社でsirasayaさんに出会った。 PHPフレームワークとブログとの出会い 元々興味があってIT系企業に就職しただけあって、 最低限のアンテナを張って情報収集はしていた。 そこらのブログやQiitaの記事で Ruby on Railsが流行ってるらしいとか、CakePHPが流行ってるらしいとか、 それらのフレームワークを利用して高速にアプリケーションを作れるらしいとか、沢山見聞きはしていた。 実際に触ろうとしたことはある。 しかし、フレームワークにはフレームワークの使い方というものがある。 基礎を知らずして応用は出来ない、ゲームのようにボタンを押せばとりあえず敵をやっつけてストーリーが進むわけではないのだ。 当時の自分にはどうすれば使いこなせるかも分からず途方にくれてしまっていた。 sirasayaさんは前の職場でDOLEMというフレームワークを開発して業務に使っていたと聞く。 (当時はちゃんとした名称はなく、Coreフレームワーク等と呼んでいたらしい) 「ん?ブログ程度なら3日あれば作れるぞ。」 この一言がWebエンジニアとしての最初の一歩となった。 DOLEMの初リリースが2012年の5月、 DLしたDOLEMの使い方はさっぱり分からなかったが、 作った本人が「わかり易い、すぐ使いこなせる」というだけあって、 2週間が過ぎた頃には既にDOLEMを駆使してMySQLに値を突っ込んで取り出すという事が出来るようになった。 最初に作るもの そしてようやく一人プロジェクトが始まった。 作るものはもちろん…ブログだ。 2006年という大昔の時点でLivedoorブログで作られている痛いニュースが大ブレークしていた。 今日日ブログなんて小学生だって楽勝で持てる。 ぶっちゃけ今さらそんなものを必死に作っても客観的には一銭の価値もない。 でも僕が欲しいのはブログという実体ではなく、ブログを作れるという技術力だ。 何故ブログか? 乱暴に言えば掲示板に執筆者用の管理画面を足せばブログだ。 ブログに複数執筆者がログインでき、相互にコメントを付け合うものはSNS。 画像を乗せてメールが飛ばせればショッピングカートだって作れる。 クラウドソーシングや、クラウドファンディングだって派生して作れる。 だからブログ、まずはブログ、とにかくブログ。 後はありとあらゆる事をアイデア次第で開発出来るノウハウに繋がるのだから… これがまがりなりにも完成した動機であり、執念でもあった。 ブログ(初期型)の要件 一番意識したのはエンジニアが自分の為に作るブログはどうあるべきか… 当時の自分の知識やスキルレベルの中ではかなり頑張ったほうだと思う。 結果、かなり理想に近いブログシステムになった。 さくらのVPS WebエンジニアたるものLinuxの環境構築が出来て当然である ドメインは既にとっていたromancing.

日本語は曖昧か?

  • POST
いや、それは違う 日本語は決して曖昧な言語ではない。 日本語は一つの意味を表現するのに基本的に一つの単語で足りる。 対して英語の単語はおおまかなイメージを表現する程度のものなので、 固有名詞以外は物凄く曖昧で大雑把だ。 なので日本語よりよほど曖昧で不完全な言語になるはずだ。 [追記]英語の曖昧性を補填する では英語で曖昧でない文章を作る為にどうするか? 主語述語の配置をきっちり守る 曖昧な名詞は修飾子を足して具体的にしていく あえて文を崩す事により、相手に違和感を持たせる→質問文と解釈する 細かな文法は省くが、だいたいこんな感じ。 配置と修飾で具体的な文章を作っていくわけだ。 対する日本語は倒置法があるように、主語や述語の順番を混ぜこぜにしてもあまり違和感はない。 精々エキゾチックに聞こえるくらいのものだ。 何故そんな日本語が曖昧な言語扱いされてるのか 以前そのことが書いてあるサイトがどっかにあったような…見つからない。 代わりに探していたら非常に参考になるサイトが見つかった 正確な曖昧性 こういう話を見かけた。「最近見かけませんでしたが、どうしたんですか。」と聞かれ、「三日間旅行していました。」と答えたら、変だと指摘されたアメリカ人がいるそうだ。そしてその指摘をした日本人は、そういう場合は「三日ほど旅行していました。」と答えるべきだと言ったそうだ。 ふむふむ、何故ぼかすの? 日本語では焦点かどうかが文法的に重要だ。 例えば、「私は高杉です。」と「私が高杉です。」を比べると、後者は主語に「が」が付いている。これは「私」が焦点だからだ。つまり、「誰が高杉さんですか。」という質問に対して、「私が高杉です。」というように、「私」の部分が焦点だから「が」を使うのだ。逆に「あなたは誰ですか。」という質問には、「私は高杉です。」と答える。「高杉」が焦点で、「私」はすでに出てきた旧情報(これを主題という)だから「は」が付くのだ。 焦点が重要なんだ。 たしかに…日本語は1単語が重い意味を持つがゆえに、 焦点が分からない場合、全ての発言を気を張り続けて覚える必要があるわけか。 最初の質問に戻ろう。「最近見かけませんでしたが、どうしたんですか。」と聞かれた場合、当然何をしていたかが焦点になる。それ以外の情報は単なる付け足しである。だから答は「旅行していました。」で十分だ。 ここで語彙の助けを得れば良いのだ。期間に「ほど」を付けると、曖昧な感じがするのでそれが重要な情報には思えなくなる。「三日ほど旅行していました。」という文は「三日ほど」が動詞の直前に来ているが、「ほど」が付いているため重要には見えないのでそれが焦点と解釈されることはない。 なるほど〜! 焦点を分かりやすくし、それ以外の箇所をあえて曖昧にするのか。 そうすることで、伝えたい大事な単語のやり取りを聞き逃す事がなくなるわけだ。 非常に参考になった。