メモりメモる

ハトいエンジニアのアメリカ生活と技術のメモ。

ガジェッター必見の雑誌、"鞄の中のデジモノ百科"に載りました。

エイ出版社の鞄の中のデジモノ百科に私の戦友カバン&中身が掲載されました。
@hokayan さんの紹介で声をかけていただき参加させていただきました。
f:id:hatyone:20140531130844j:plain

engadgetの編集長さん、chatworkの中の人、EvernoteのVice presidentからタレントまで、さまさまな人の普段使いガジェットを見ることが出来ます。


見開き1ページ、どどーんと私です。
f:id:hatyone:20140531134234j:plain

この取材の日は、使おうとしていた会議室の鍵が無くて慌てたり、FooDrawのデモ中にWindows8のアップデートがかかったり、撮影するネックレスのチェーンが絡まってなかなか外れなかったり。色々ありましたが、とても楽しかったです。
写真を撮るときのポーズを指導していただいたり、なかなか出来ない体験をしました!


自分の記事を見てちょっと照れてたりもしますが、カバンの中身ってその人の仕事・生活が見えると思いました。
普通に興味深くて、面白い雑誌です。色々物欲が出ちゃいますが。。。(笑
新品よりも中古品が高くなってきている不思議な現象ですが、kindle版も出たそうです。

MacBook Pro (15-inch, early 2011)のバッテリーを換装,CPUが遅くなって直した話

2ヶ月くらい日本出張を色々してました。
自宅で久しぶりにPCを開いてみると、妙に遅い。遅すぎるんです。タッチパッドも固くて押せない。

f:id:hatyone:20140505112500p:plain

MacBook Pro(15-inch, early 2011)のバッテリーが膨らんでしまってました。。。

交換用バッテリーを買う

MacBook Pro(15-inch, early 2011)のモデルは調べてみるとA1286でした。
そこで、amazon.comでPrimeで手早く届きそうなバッテリーを探してみました。
値段とレビューがそれなりに良かったので、こちらを購入。

Lizone® High Performance 63.5Wh Laptop Battery for Apple MacBook Pro 15.4


f:id:hatyone:20140505113931p:plain


バッテリーを交換する

交換する際には、精密プラスドライバーと、Yみたいな形のドライバーの2つが必要になりました。
精密ドライバーを手に入れるために数日要していたのですが、なんとバッテリーキットに含まれていたと気づいたのは開封した後でした。

f:id:hatyone:20140505114344j:plain

手前のが取り出したバッテリー。やはり、ぽこっと膨らんでいます。

動作を確認する

さっそく電源ケーブルをつないで起動してみると、無事動いてます。サクサク動いていました。
左サイドのバッテリーのインジケータも回復していたので"大丈夫だろう”と、この時は考えていました……。

翌日、お出かけ先でMacが動かない

電源ケーブルを抜くと、バッテリー膨張時と同様にCPUの処理が遅くなります。
ありえないくらい遅くなります。Chromeを起動しようとして、起動できないorブラウジングができないレベルでした。
どうみても原因は、電源です。

kernel_taskプロセスがCPUを使い切ってました

「ああ…。このMBPはバッテリーを換装しても、ダメだった…」と一度は落ち込んだものの、落ち着いて色々見ていたら原因が見えてきました。

元々このMBPで使用していたバッテリーの容量は6900mAh。今回購入したバッテリーは5800mAh。
ちょっと、足りません。

最初は、バッテリーの膨張時と同様に新バッテリーでも給電が間に合わずCPUが抑制されているのかも?と疑っていたのですが、MBPがサポートされていないコンポーネントとして新バッテリーを認識してしまっていたのが原因だったようです。

ACPI_SMC_PlatformPlugin.kextをいじる

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/Plugins/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacBookPro8_2.plist
このファイルをバックアップを取ってから、削除しました。
その後、再起動。

無事サクサク動いてくれるようになりました。
PCが熱くなり過ぎないかなど、様子を見ながら使っていきます。


未踏時代からUS生活までをずっと共にしているこのマシン。
もうちょっと長く付き合っていけそうでホッとしてます。

ビジネス英語を何とかするための本の話

新年の抱負を語らないまま2月に突入してしまいました。はとねです。

突然の全米優勝を新年から飾り、もっと実践的なベクトルで英語力が向上したら世界が更に拓けるんじゃないか?と改めて思い始めました。
エクストリームUS生活を経て語学力の成長は感じられるものの、今年はミーティングや交渉に安定感を出せる程度の英語力を得たいです。

今年は、英語をもっと頑張りますという気持ちも込めて、頑張って覚え潰したい自分の必須英語本3冊を書いてみました。

1.メール系

仕事のメールを書くときに、ものすごく役立った一冊。
基本的改変してコピー&ペーストで圧倒的に使いまわせました。
この中にある表現をベースに、クライアントからの返信&日々のやりとりで学んだ表現を使いまわして生き延びることが出来ました。

的確に伝わる英文ビジネスEメール例文集

的確に伝わる英文ビジネスEメール例文集


2.英会話系

私がすごいcoolだと思っている先輩から教えてもらった一冊。
"転職"と書かれているけれど、コールミーティングでの基礎的なやりとり、ビジネス英会話で使いそうな表現がふんだんに含まれていました。これも、会話で使いまわせそう。
適度にシャドウィングの練習が出来そうな分量で、CDもついてていい感じです。
これは、本当にもっと初期に出会いたかった本でした。

面接の英語

面接の英語


3.つぶす勢いで覚える本

何だかんだdisられるTOEICですが、点数取れるのは正義だと思い、語彙力はやっぱり大切と感じています。
受験生の時に、頑張って覚えれば良かったと思った。

DUO 3.0

DUO 3.0


色々な人に英語の勉強の仕方を相談してみたのですが、"シャドウィング"できるようになると一気に成長度合いが高まりそうな気がしています。あとは実践あるのみ。
だらだらと勉強中気取りをつづけて、英語勉強をこじらせるのは良くないですね。
これら覚え潰していきます。

macでhomebrewを使わずにGradle 1.7 RC1をインストールしてみる

Gradleの1.7がもうすぐ出ますよという話を先日のイベントで耳にして、正座待機していたらRC版がリリースされていました。

f:id:hatyone:20130704105422p:plain

公式に1.7がリリースされたタイミングで、homebrewプロジェクトへpull requestしようと狙っています。
そんな目標のためにわりと毎日gradleのwebサイトをチェックしてしまいます。


というわけで、インストールしていきます。


1. Gradle 1.7 RC1のダウンロード
Gradle - Release-candidateのリンクから、gradle-1.7-rc-1-bin.zipをダウンロード。
(binaries onlyで良いと思います)

f:id:hatyone:20130704110427p:plain


2. gradle-1.7-rc-1-bin.zipを適当な場所で解凍
無難な所で解凍します。


3.環境変数を変更する

$ export GRADLE_HOME=[Gradle1.7RC1を解凍したディレクトリ]/gradle-1.7-rc-1
$ export PATH=$GRADLE_HOME/bin:$PATH
$ export GRADLE_OPTS=-Dorg.gradle.daemon=true

Dorg.gradle.daemonは、裏でdeamonを常時待機しておくモードです。
環境変数のGRADLE_OPTSに-Dorg.gradle.daemon=trueをセットすることで、デフォルトでdaemonを使ってくれるようになります。
実行時間を短縮するために、deamonをオンにしておくと少しだけ幸せな気分になると思います。


4.Gradleのバージョンを確認してみる

$ gradle -v

------------------------------------------------------------
Gradle 1.7-rc-1
------------------------------------------------------------

Build time:   2013-07-02 14:56:30 UTC
Build number: none
Revision:     9a7199efaf72c620b33f9767874f0ebced135d83

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy:          2.2.0
JVM:          1.6.0_45 (Apple Inc. 20.45-b01-451)
OS:           Mac OS X 10.8.3 x86_64


予想以上に簡単です。
サクッと最新版を使うことが出来ました。

Scala Koansで穴埋め問題を解いてScalaの入門してみる

最近、私の周囲のscala人口が高くなってきたので、
「valとvarを覚えておけば、あとはノリと勘でなんとかなる!」というメンタルを改めようと思い至りました。

scalaのkoansを一通りやってみました。

f:id:hatyone:20130422054848p:plain


1. koansのダウンロード
Learn Scala with the Koans | Scala Koansの右のリンクから、Scala Koansをダウンロード。

2. koansを適当な場所で解凍
sbtが必要になるので、無い場合は「brew install sbt」してsbtをインストールしておきます。

3. scala koansの起動
Scala Koansを解凍したディレクトリに移動し、sbtを起動します。
初回だけテストをコンパイルして、"~test-only org.functionalkoans.forscala.Koans"でkoansのテストを走らせます。

$ sbt
[info] Loading project definition from /Users/hatone/SandBox/scalakoans/project
[info] Set current project to Scala Koans (in build file:/Users/hatone/SandBox/scalakoans/)
>
> test:compile
> ~test-only org.functionalkoans.forscala.Koans
[info] Koans:
[info] AboutAsserts:
(以下略)


4.教えに導かれながら、もくもくコードを書く
src/test/scala/org/functionalkoans/forscalaにあるscalaのコードを、ひたすら穴埋めしてテストを通していきます。
koansを起動するとコンソールで「Please meditate on koan "(問題名)" of suite "(クラス名)"」の形で、これをやりましょうと指示されます。
f:id:hatyone:20130422061049p:plain


koans.htmlにお品書きが書かれているので、それを見て気になる所だけやっても良いかもしれません。
f:id:hatyone:20130422061713p:plain


scalaのコードを編集して保存すると自動でテストが走り、結果を確認できます。
f:id:hatyone:20130422061109p:plain


そんな感じで、scala koansをもくもくと出来ます。
実際にちょっと何か作ってみようと思っていて、ノンブロッキングI/Oのechoサーバー書いたり手を動かして遊んでみます。

新人だった1年間とアメリカにいる今と、新卒配属に思うこと。

この記事をみて「ああ、もうそんな時期か」と感じ、
配属に悩んでいる人達もいるのかなぁと、ちょっとブログを書いてみました。

f:id:hatyone:20130327004256j:plain
新卒として入社し、気がつくと1年が経過していました。
2年目を、アメリカで迎えられることが出来たのはとても感慨深いことです。
ソーシャルゲームやコミュニティサービスからは程遠いのですが、海外市場向けの広告システムを作っています。


卵から孵ったアヒルが最初に見た存在を親だと思うように、
配属後に出会った先輩によって、エンジニアとしての性格が大幅に影響されるのではないか?
一年経って、振り返るとそんな風に私は思います。


  • 私の配属先の話

CyberAgentAmericaへの配属後、
AMoAdというアドテクノロジーの会社での海外事業に関わりました。

 初めてペアプロした先輩はとてもストイックな神系の技術者でした。
この先輩から、"テスト駆動開発の技法"、"まともに共同開発するためのgitの一歩進んだ使い方"、"まともな会話をするために必要なデザインパターン"、これぞエンジニアの教養!とばかりに様々なこと学ばせていただきました。OSSのことを常に追いかけ、時にはプロジェクトへコミットし、洋書和書問わずにイチオシの技術書籍を教えてくれる超クールな先輩です。
最近は、先輩が中心となってAMoAd社内で行われる社員オンリーの型システムの勉強会が気になって仕方ありません。


 また、その後現れた先輩は、正直理解出来ないスピードとクオリティでコードを書いてしまう先輩でした。私の座席は、この先輩と神系の先輩との間となり、毎日が強化合宿のような日々でした。

 USで凹んだ時真っ先にご飯へ連れだしてくれたり、エレベータに閉じ込められると駆けつけてくれる先輩がいたり。普段は辛口な先輩が飲み会の帰り際に「あんた、辛い時は甘えていいんだからねっ!!」と力強く励ましてくれたり。「ヘ(゚∀゚ヘ)」「( ꒪⌓꒪) ノ」で会話が成立できる先輩がいたり。とても気さくなrailsのことを教えてくれる先輩がいたり。朝も晩も社内にいて帰宅が疑わしい先輩がいたり。正直私より海外勤務に向いてるような海外の四年制の大学を出てる先輩や物凄いストイックな帰国子女の先輩がいたり。

「どうして、こんな技術者たちが集まってしまったのでしょうか」
「うん。正直、このチームは奇跡だと思う」

月例面談で、マネージャーとそんなやりとりをしました。
多くの先輩達から多くのことを学び、このチームで仕事が出来る今を大切にしたいと考えるようになりました。


  • 渡米するちょっと前の話

 個人的な感覚ですが、渡米の1ヶ月前あたりからコードレビューの難易度が上がりました。開発の難易度があがり、指摘される項目が増え、所々ペアプロをしてもらいながらこなしていきました。
「むこうに行っても、しっかりコミット出来るようになってほしいから」とエレベーターで、ぼそっと言われたことを覚えています。

 渡米する際には、エンジニアだけじゃなくセールスの方までという会社規模の壮行会を開いていただき、「amazonのウイッシュリストに入れてあったので」と前から欲しかったClean Coderをいただきました。もちろん、神の推薦図書です。

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道


そして、いただいたこの書籍、
なんとそこには沢山のメッセージが書かれていたのした。

f:id:hatyone:20130409141344p:plain
(※熱烈なメッセージが書籍の様々なところ、さらには本文上にまで書き連ねられ、温かい沢山の言葉にうるっとしてしまい、なかなか読み進められません)


  • 今、アメリカで想うこと

f:id:hatyone:20130409141011p:plain
 残念なことですが今、この社内には新卒エンジニアが海外で働くパスはなかなかありません。こちらでエンジニアが開発しているプロダクトは皆さんがイメージするほど多くはないためです。

 だからこそ私は、この土地で人を繋げ、コードを書いて、今目の前にあるプロジェクトでの技術的成果を出し、そこから未来の希望を創りだしていきたいと思っています。

 ここにいる意味を常に考え、エンジニアがUS配属される可能性を絶やさないために、次の可能性を作るために、海外プロジェクトと向き合っています。AMoAdのメンバーの一員としてもっとより大きな仕事をして、ここで成果を出していきたいなって考えています。


  • 新卒配属に思うこと

f:id:hatyone:20130325045830j:plain

エンジニアとして配属に迷っている方に出来るアドバイスといえば、

トラフィック多い、シビアなところ」

私としては、この一言に尽きます。

気合いや単なる労働だけで解決できない問題に出会えるのは素晴らしいことです。
シビアさを求められるのはとても大変なことですが、"やりがい"なんて言葉では済ませない難攻不落な世界へチャレンジ出来る楽しさがあります。


Pressure makes diamonds.

という言葉があります。

これは文字通り、良いプレッシャーがダイアモンドを生み出すということを意味しています。
宝石としてのダイアモンドは様々な人に身につけられ役立ってるし、工業用ダイアモンドはありとあらゆる作業場で重宝されています。
自分自身に良いプレッシャーをかけられる場所を掘り当てて、磨くことが出来たらいいなと思います。


 技術的な難易度、海外市場、そんなプレッシャーの中で、AMoAdという技術者集団の中で、エンジニアの未来を作り出せたら素敵だなと私は思っています。

そんなこんなで、私の想いの放出はおしまいにしようと思います。

AMoAd.inc -The Leading Ad Platform for Smart Device-

情報科学若手の会・冬の陣 #wakate2013w でバナー広告(アドテク)の話をしてきた!

情報科学若手の会に参加して、幹事として初イベント。
情報科学若手の会・冬の陣(#wakate2013w)を運営してきました。

f:id:hatyone:20130127213421p:plain


情報科学若手の会・冬の陣
今回のイベントは、人と人の繋がりが活発になるようなクローズドなセッションを目指し、敢えてUstはされていません。
id:yumu19さんが、本陣のときにロケットの話を熱く語り合ったことを覚えていてくれたのがとても嬉しくて、「ああ、夏に参加して本当に良かった!」と思えるエピソードでした。


私は、「アドテクノロジーの世界 -嫌われがちなアレの話-」というタイトルで、ウザがられるバナー広告の裏で展開される広告技術の進化についてお話させてもらいました。

社外のアドをやっているエンジニアとの出会いがとても少ないので、多くの方に興味を持っていただけて嬉しかったです。
「参考本などありませんか?」という声をかけていただいたのですが、全体的なアドテクノロジーの歴史について触れられた本は未だ読んだことがありません。
まだまだ勉強中の身なので、むしろ是非教えて下さい!という心境です。

最後のほうで触れた株取引っぽい広告技術の話は、「DSP/RTBオーディエンスターゲティング入門 ビッグデータ時代に実現する「枠」から「人」への広告革命」という本が良いです。
DSP/RTBの考え方からアドテク業界動向まで広めに触れられていて、アドテクを知らない人が読んでも情報量があると思います。

DSP/RTBオーディエンスターゲティング入門 ビッグデータ時代に実現する「枠」から「人」への広告革命 (Next Publishing)

DSP/RTBオーディエンスターゲティング入門 ビッグデータ時代に実現する「枠」から「人」への広告革命 (Next Publishing)


懇親会&二次会の話
懇親会も、ディスプレイが準備されたお洒落レストランでLT祭りが勃発していました。
お互いのことを知らない参加者さんが知り合い同士になれるように…と、人や話題をパスして歩く自分に対して、お見合いのおばちゃんか何かではないか?とツッコミをしつつ。
皆さん楽しそうだったのと、若手の会独特の雰囲気がとても居心地良かったです。


帰り道の話
id:kyoro353の講演が、とても面白くて盛り上がったのですが、"何故面白いのか?"という話を帰り道にしました。
現実は小説より奇なりという言葉があるように、
本人の思考・思想・体験談を自らが語ることは、それだけでカッコイイことで、大切なことなんだろうね、という話になりました。


チラシの裏のような話
数年前の未踏の成果報告会以来、id:kumagiに会うと「肥えてきましたね(・∀・)」的なツッコミを毎度頂いてしまっていたので、開催中に一切指摘を受けなかったのが、とても大成功ではないかと私としては思っています。