退職しました

Written by uechoco 1月 31
この記事を読む時間:933くらい

まずは

今月をもって、有限会社スグエを退職しました。実は先週から有給/代休消化していておりました。来月(明日)からは新しい会社になります(新しい会社のことは、明日にでも記事書きます)。私と最近お会いした方は、今月辞めることも、次の会社のことも知ってますねw

そういえば、入社の経緯も書いてなかった

前回の転職の時は記事書かなかったから、退職記事はこれが初ですね。
今の会社は2010年8月に入社したのでちょうど1年半勤めていたことになります。入社した経緯も書いてなかったので、簡潔に書いておきます。

前職(まだ今日の時点では”前職”だね!)では、社長が学生時代に立ち上げたベンチャーで、SNSの導入・カスタマイズ支援とか、ソーシャルゲームとかの受託開発をやっている会社でした。アルバイトからそのまま正社員になって、エンジニアチーム(数人)を率いていました。新しい技術にガンガン挑戦するって感じではなかったですが、マネジメントには力を入れていたかと思います。私のマネジメント力は前職で身につけたものがベースですね。前職を辞めたのは、会社の方針と合わなくなってきたから、という一言に留めておきます。

ちょうど前職を辞める前後に、現職の会社の社長からTELがかかってくるようになりました。実は、現職は大学時代に1年間ほどアルバイトをしていた会社でした。TELの内容としては、「会社を大きくしたいが、社長がこのままプログラマーを兼任していると厳しいから、社長はもっと経営よりにシフトして、その分できなくなった仕事を私に任せたいし、あと案件いっぱいで手が足りないんよー」といった感じの内容だった気がします。一応面接っぽいことをして、入社しました。

業務とか

現職の業務はCakePHPを使った受託開発でした。前職ではsymfony使いだったものの、独学でCakePHPは触っていたり勉強会にも顔を出したこともあったので技術的には壁は低かったです。また社員も大半はアルバイト時代からの知り合いなのでやりにくさも全くありませんでした。普通に業務に溶け込んで、入社した最初の週からプログラム書いてた気がします。

1年半でやった案件数としては中規模が4〜5個、小規模がいくつかだったかと思います。最後の半年は1案件にかかりっきりで、しかもCakePHPではなくPython/Djangoをごにょごにょしていました。現職も新しい技術にガンガン挑戦するって感じではなかったですが(もちろん挑戦していきたいという意思はあったのですが)、最後のPythonだけはいろいろ特別でした。

業務改善とか

現職では、プログラミング以外にも、業務改善という意味で功績を残せてきたのではないかと思っています。もともと自己啓発書とかかじってたこともあり、タスク管理とその効率化については日々努力をしています。また違う文化の会社から転職してきた人間ですから、異文化の良いところを会社に伝えていく義務があったと思います。マインドマップによる議事録の書き方、会議の進め方、Googleカレンダーからの日報自動作成ツール、遅刻に対する考え方、タスクの優先度の付け方、etc・・・・・・残念ながらそのすべてを残せたわけではないです。ですが一部は実践してもらいましたし、何より私が近くで実践していたので、いくらか感じ取ってくれたのではないかと思っています。

勉強会とか

大学時代はphp勉強会に顔を出していたのですが、前職に入社してからは忙しすぎて全く勉強会に参加していませんでした。現職になってからは、再び勉強会にも参加し始めました。php勉強会/symfony勉強会に参加すると、大学時代に勉強会でお会いした方から、「あれ?もう社会人なんだっけ?」と言われることもありました。

ここ1年半くらいの勉強会でよく話す人達は、昔のようにphp自体とかフレームワーク自体の話をすることだけじゃなく、テストやCIについての話をよくするようになっていました。私が参加している勉強会界隈の人々の関心は、単にフレームワークを使いこなすことではなくなり、いかに品質の良いシステムを効率良く作り上げていくか、というところにシフトしていっているのだと実感しました。

技術者としての成長とか

現職中の技術的な成長で言えば、最後の半年、Python/Djangoに触れたことで、自分の中でのプログラミング言語感が変わったことでしょうか。それぞれのプログラミング言語の思想を理解するという新しい考え方が私の頭の中に生まれました。

勉強会では、LTや講師に挑戦する機会もあり、技術を使うだけのエンジニアから、技術を発信していくエンジニアへと徐々に変わってきています。

また、前職・現職とも、ソースコードの質はエンジニアが担保していてユニットテストとかを書いたことはなかったのですが、TDD勉強会や前述のPython案件を通じて、ようやく”テスト”のできるエンジニアの第1歩を踏み出すことが出来ました。

そして転職へ

転職の理由は、後日書きますが、大きなシステムに関わりたいとか、サービス指向を強めたいとか、そういう感じの理由です。

現職を通じて知り合った方からのアドバイス

転職前後には、現職や現職の案件を通じて知り合った方々から、たくさんのアドバイスをいただきました。いくつか紹介したいです。

  • これからのビジネスマンの三種の神器は「IT、英語、会計」・・・これらの3つには文化の壁はなく、グローバルに活躍するビジネスマンには必須であるということです。私はエンジニアは専門職でもあるが、それ以前にビジネスマンでもあるというスタンスなので、エンジニアにも必要だと思います。
  • 「仕事ではなく、事業をしよう。ビジョンを持て。」仕事というのは労働して対価をもらう一連の流れのことで、1個人が出来る仕事の量は限られている。しかし事業という形を取ることで、個人の何倍・何十倍のインパクトを作り出すことができる。「自分が今やっている事業は世の中にどんな影響を与えるだろうか?この事業のビジョンは何だろうか?」それを考えることが大事。ビジョンを目標としよう。そうやって目標が明確になってくれば、目標から逆算して自分が今本当にすべきことが何なのかが見えてくる。・・・私は結構エンジニアとしてどうあるべきか?という考えに固執しがちでした。これからの仕事の価値観が変わる、というよりハッと気付かされた考え方でした。せっかく転職といういい機会を得たので、このマインドはぜひとも取り込みたいです。
  • お前はこれから何がしたいんだ?」20代でこれにきっちり答えられる奴は少ない。今答えられなくてもいい。でもそれを考えることをやめてはいけない・・・とっても優しい社長さんからのアドバイス。私は何がしたいかうまく言えませんでしたが、焦らなくてもいいがちゃんと頭の中に入れておけよって言ってくれました。
  • お金は稼いでいい・・・日本人は「お金を稼ぐ」ことに悪いイメージを抱くことが多いですよね。そもそもどうやってお金を稼ぐのかということを教育してくれません。自分の幸せの形がわかっていてそのために必要なんだったらお金をたくさん稼ぐ・貯めることを目標にしたっていい、ということだそうです。

さいごに

自分自身のことばかり書き連ねてきましたが、私がこうして成長しているのも、まわりの皆さんあってのことです。

現職の社長には大変お世話になりました。わがままばっかり言ったりして迷惑かけてすいません。私の良き理解者でありました。
もう転職されてしまいましたが、元上司のCさんにもお世話になりました。結構思考が似ているところもあったので、いろいろ相談させて頂きました。
現職のOさん、Iさん、Sさん、Uさん、Aさん、Tさん。一緒に仕事をしていて楽しかったです。心残りなのはUさんとはもうちょっと深くいろいろと話し合いたかったです。あとTさんにはいろいろと技術を叩きこみたかった。いずれまた。

関係各社ではIさん、Nさん、Yさんには、それぞれ会社の社長として、経営者として、私にアドバイスをしてくれました。まだまだ今の私では、その本質には至っていません。が、自分なりに考えて自分なりに取り込んでいきたいと思います。これから先、私が活躍する姿をお見せすることが、恩返しだと思っていますのでがんばります。

案件で知り合ったKさんとFさんには一緒に自転車の道に引きこまれましたw 最近はフルマラソンに注力してるんでロードバイクは乗ってないんですが、3月終わってからはまた乗り始めます。峠とか誘われて怖いんですけど・・・お手柔らかに連れてってくださいw

勉強会などで知り合ったエンジニアにも毎度お世話になりました。転職してもしょっちゅう会うと思いますので、転職に関わる1人だけ。Nさん、毎度飲み会に誘ってもらったり、転職先の紹介してもらってありがとうございます!

・・・・

明日から新しい会社かー。中はどんなんなってんだろうね?契約社員になってもやること変わんないだろうし、まずは研修をクリアしなきゃね。今日も新しい会社のための技術勉強してきますノシ

=>とか->とかの名前

Written by uechoco 1月 26
この記事を読む時間:123くらい

phpで=>のことはダブルアローって呼んでます。そして->のことはシングルアローって呼んでます。見た目そのままですね。実は公式にもダブルアローは正しいという裏付けがあって、それはphpのパーサートークンでは「=>」が「T_DOUBLE_ARROW」と定義されているんです。ちなみに「->」は「T_OBJECT_OPERATOR」です。

Perlでは、=>のことはfat commaって呼ばれています。なぜかというと、ハッシュのリスト定義でカンマ(,)の代用として使用されるからです(言語上の正確な定義はよく知りませんが)。

  1. my %hash = ("key1", "value1", "key2", "value2");

と同じ意味になるのが

  1. my %hash = ("key1" => "value1", "key2" => "value2");

なんですね。

ちょっと調べきれていないですが、言語によってはfat allowとか、hash rocketとか、呼び方があるみたいです。

参考:Fat comma – Wikipedia, the free encyclopedia

青汁CM vs 青汁アフィ記事

Written by uechoco 1月 24
この記事を読む時間:345くらい

はじめに言っておきますが、青汁は全く関係ないですw たまたま思いついた商品が青汁なだけ。

TVCMで青汁の感想を言っているおばさんと、ネットのアフィブログで青汁うまいと言っている記事は、両方共胡散臭くてステマって言っていいと思ってる。だけど、前者は許されても後者は許されないみたいな雰囲気が最近ネットから感じる。芸能人が出ているCMは「これ”使ってて”すごくいい」とは言わないけれど「すごくいい」とは言うよね。あたかも使っているかのように。一時期ペニーオークションが流行ったときは芸能人ばかり低額落札してるブログ書いてたよね。

別の例を思いついた。小売店でバイトした事無いので想像で書きます。ドラッグストアでいろんなポップ(商品をプッシュする時に紙の吹き出しとかで貼ってあるアレ)に力を入れているお店があったとしよう。知名度のある売れ行き商品のポップの間に「これも人気です」ってポップが貼ってあったら、買ってもいいかもって思うよね。実はお店にとっては売れ残った在庫処分品なのかもしれない。

結局世の中はステルスマーケティングでできているじゃないのかな。もちろんあからさまなステマは消費者に嫌われる。食べログの件とかあからさまだよね。でも世の中は巧妙にできていて、あらゆる手段で消費者がお金を使うように仕向けられているんじゃないのかな。消費者に気づかれなかったら勝ち、消費者に気づかれちゃったら負け、ただそれだけ。食べログの時は気づかれちゃっただけ。

最近は、たまたまステマっていう都合のいいバズワードがあったから、あれもこれもステマって言ってる風潮が出てきている気がする。それに便乗して、やっぱりネットは怖いみたいな風潮も出来上がってる気がする。日常生活で自分の目で見てきたものとか昔からあるTVとかは信用できるけど、得体のしれないネットの情報が怖いってだけでネット全体を批判してるみたいな風潮なのかな。

さっきも書いたけど、日常生活にもステマは溢れてると思うよ。雑誌のオススメ?誰かにお金払って書いてもらっていたら、それはやらせでしょ。はいステマ見っけ。結局、TVを含む日常生活では、いろんなものが当たり前のものとして、文化の一部として、違和感なく受け入れられるようになってしまったから、騙されていても気づかないんだと思う。当たり前だと思ってしまった瞬間から疑うことをやめてしまう。

だから、ネット上のステマだけ批判されるのは、間違ってるよ。

たしかにネットは複雑だと思う。ネットには日常生活にはない「集合知によるまやかし」があるから。日常生活では、売り手vs買い手だったけど、ネットだとすごく複雑。食べログのやらせって、買い手 with 買い手 with 買い手の中に、実は売り手が混じってましたーてへぺろ☆(・ω<)ってやつね。今までは信頼できない店に行かないとか、その雑誌は買わないとか、自己防衛で何とかなってきたけど、ネット上に来た途端にどうやって防いだらいいのか分からなくなっちゃう。消費者の大半はネット上の自己防衛手段を持っていない。分からない。そこが一番問題なんじゃないかな。

なんで防衛できないかって?教えられる人が居ないから。お母さんもお父さんも学校の先生も友達も近所の主婦仲間も誰も知らないから。でもそんなんじゃ、何時まで経ってもネット上では消費者が負け続けるよ。初めは何度も何度もダマされるかもしれないけど、ちゃんと真摯にネットに向きあえば、何が真実で何が嘘なのか、そのうちに分かるようになってくるから。

ネットを怖がらないで。

[MongoDB]1.8→2.0から地理系Pointが厳密に値チェックされる

Written by uechoco 1月 13
この記事を読む時間:133くらい

MongoDBを使用したプログラムのサーバーが壊れてしまったので、
サーバーの再構築を手伝ったのですが、
aptitudeで入れたMongoDBから不思議なエラーが返ってきてた

point (35.1,136.2) must be in earth-like bounds of long : [-180, 180), lat : [-90, 90]

どうやらプログラムで緯度経度を逆転して取り扱っていたらしい。
以前はMongoDB 1.8で動いていたが、2.0になってからこのエラーが発生した。

MongoDBのgitのプログラムを見てみると、たしかにエラーチェック関数が2.0から追加されている。

@see https://github.com/mongodb/mongo/blob/master/src/mongo/db/geo/core.h#L509

まぁ、緯度経度逆転して扱っているプログラムが悪いんだけどさ。
急ぎの復旧だったので、MongoDBのデータベースを全消去してから
「mongodb18-10gen」でMongoDB 1.8をインストールしなおしたら、動くようになりました。
※MongoDB 2.0のデータベースをそのまま1.8で取り扱おうとしても、DB(かindex)のバージョンが新しいというエラーか警告がでるので、
DBもしっかりダウングレードしましょう。

[perl]「Perl」は元々何かの略称ではない

Written by uechoco 1月 01
この記事を読む時間:19くらい

新年明けましておめでとうございます。2012年の抱負などは別途書きます。

さて、2012年はしょっぱなから新しい言語を習得しています。それが・・・Perl!!なんで今さらって言わないでください。覚えたいから覚えるんです。え?「phpはどうしたの?」って?ちょっと休憩です。

しょっぱなの記事は小ネタから。

Perlって名前が先に決まって、後から略称をこじつけたらしいですw 一応、公式の正式名称は「Practical Extraction and Report Language(実用データ取得レポート作成言語)」の略または「Pathologically Eclectic Rubbish Lister(病的折衷主義のがらくた出力機)」の略となっています。

なんだかもう、名前からしてハッカー臭い感じがしてきました。ちなみに以下の2冊が最初の教科書です。さーって、レッツPerl!