病みつきエンジニアブログ

機械学習、iPhoneアプリ、Javascript,Ruby on Railsなどなど。

チーム開発における「ニワトリ」が適切に鳴くために

アジャイルやスクラムとかの文脈で「ニワトリ」と「ブタ」という概念がある。 その言葉自体は結構ググれば出てくると思うんだけど、一つ寓話を引用してみる。要は、「ニワトリとブタ」のプロジェクトメンバーが「ハムエッグ」を作る上で、「ブタ」は自分の身…

たとえシステムが落ちても“社内には”謝罪するべきではない理由。あるいは”反省”と”対策”にフォーカスしようという話

こんなことを書くと怒られそうなんですが、自分の一つのポリシーとして、システムが落ちたり障害が起きたりバグが発生したことについて、基本的に“社内には”謝罪しないことにしています(もちろん例外は度々あります)。 という概念は広まるべきだなと思ってい…

なぜ“まとも”なソフトウェアを作らなければいけないのか

私達まともなソフトウェアエンジニアは、まともなソフトウェアを作ろうとする。ソフトウェアエンジニアには、アプリのエンジニアだったり、サーバーサイドエンジニア、リサーチエンジニアなども含む。 まともなソフトウェアエンジニアは、テストコードを書く…

2016 / 2017 総括と今年の目標と今後の方向性と

2016年の振り返りと、2017年の抱負とか。 2016年の総括 2016年は、本当に大変な年だった。おわり。 目次 体重キープした件 家出れるようになった件 君の名はまだ見てない件 おうちハックしたい件 今年やった技術とか 今後の方向性とかに悩んでいる件 体重キ…

Dockerfileを生産性高く書く方法についてLTしてきた

10月21日(金)に、JX通信社内での勉強会でDockerfileを生産性高く書く方法のLTをした。 この3ヶ月で、公開しているものだけでも8個ぐらいDockerイメージを作ったらしいw ↑のスライドの要旨を言うと、 Dockerfileを書くときはTmuxとSlimeを活用しましょう!…

25歳になった / 労働についてのあれこれ

もう誕生日から2ヶ月経つが、8月末に25歳になった。 お祝いを頂いた方、本当にありがとうございましたm(_ _)m ちょうど今年は転職した“転機”で、転職して一段落経ったし、最近思ったこととか、気持ちの変化とか書いてみようかなと思う。 アプリのサーバーサ…

俺がTerraformファイルをいじるときに使ってるツールを雑に紹介する

Terraformは、インフラ管理をコードで管理するためのツールです。具体的にJXでは、AWSのインフラを管理するのに使っています。「インフラを管理する」というのは、今までだったらAWSのWeb管理画面(コンソール)やらAWS CLIでやっていたような作業を、ソースコ…

Apexを使ってAWS Lambdaを楽に管理しよう

AWS Lambdaでサーバーレス楽しんでるみなさん。 私の所属するJX通信社では、AWS Lambdaを結構活用しています。Lambdaのデプロイ管理のために、個人的にはApexというツールを使っているので、今回はその紹介をしたいと思います。 apex.run TL; DR Lambda使う…

通信系テストのためのサイトのススメ:example.com、httpbin.org、badssl.com

HTTP通信の機能を持ったプログラムをテストするときに、どこにアクセスするか、迷うことがある。(モックが使えるならそれがいいけど) そんなときにおすすめな、example.comとhttpbinとbadssl.comを紹介してみる。 example.com 名前がそのままだが、example.c…

そろそろニューラルネットやディープラーニングを「人間の脳を模倣してる」というのをやめませんか?

最近(?)ニューラルネット(Neural Network)やらディープラーニング(Deep Learning; 深層学習)やらが流行ってきて、人工知能やらシンギュラリティやら言われるようになって、その中でよく言われるのが「ディープラーニングは人間の脳を模倣してる」とか「特徴…

転職しました&新年の抱負

昨年の12月に新卒入社したサイバーエージェントを退社して、今月からJX通信社で働きます。 JX通信社は大学時代にアルバイトしていた会社なので、カムバックすることになります。 (といっても、ロゴとかオフィスとかいろいろ変わっているのですが…) 本当に何…

今更始めるDocker on Mac、今更覚えるDockerコマンド

今更ながらDocker始めてみた。モチベーションとしては、Sparkとか試すために、手元に仮想環境がほしいから。なので、Immutable Infrastructureとか、KubernetesとかPackerはもちろん、Dockerfileとかにも踏み込まず、Dockerを始めてみる Docker始めるにあた…

保存できないけどread-onlyではないJupyter Notebookサーバーを立ち上げる

誰でも触れる、かつ、誰でもパラメータ変更できる、けど保存はしないでほしいJupyter(a.k.a IPython) Notebookサーバー作りたいことってあるじゃないですか。 例えば、社内のMySQLサーバーとかHadoop環境とかのクエリを叩けるようなJupyter Notebookを作った…

AWS IAMによる権限設定のハマりどころと、効率的なデバッグ方法

Amazon Web ServiceのIAM(Identity and Access Management)は、AWSの各種サービスに対してのアクセス制御を(結構細かく)設定するためのシステムです。 ただ、いくつか掛けられる制約にも制限があり、いろいろハマるところがあったので、メモを。 シナリオ Je…

vim-slimeで「for ... in ...」構文を便利に転送する

Vimにはvim-slimeという便利なプラグインがあり、Vim上で書いているコードを、tmuxやscreen経由で別ペインに転送することができる。 これの何が嬉しいかというと、「左はPythonソースコード」「右はPythonの実行結果」みたいな感じで、書きながら実行できる…

TensorFlowを社内向けにざっくりLTして回帰した(+資料とか)

Googleが先日「TensorFlow」という機械学習ライブラリを発表していて、話題になっています。 さっそく今日社内で紹介LTしてきました。 「社内」のエンジニアの話で言うと、機械学習の会社ではないので、機械学習とかDeep Learningとかには深掘りして話してい…

dotfiles公開した+vim/zshのおすすめ設定とか

yamitzky/dotfiles 会社のPCを新調して、環境設定するタイミングだったので、いい機会だしdotfilesを公開した。 今までは自分のプライベートgitサーバーに置いてたんだけど。 やはり、公開すると、綺麗に書くようになるしいいなあという感じします。 これだ…

「メールの添付ファイルにパスワードかけて、別メールでパスワードを送る」に言いたいこと

(2015/8/29追記) 最初に代案だけ書いておくと、(メールで送る程度の秘匿性のものは)「Proself」みたいな別プロトコルを使う、です。 メールパスワードでは、パスワードに規約をつけることもできません。 また、この話は企業等においてのルール化の話です。 …

スパースな行列のPearson相関係数

Scipyには、ピアソン相関係数を計算するための関数、scipy.stats.pearson というものがあるのですが、残念ながらスパースな行列(scipy.sparse)には対応していません。 実際、実装を見てみると(stats.py)、 mx = x.mean() my = y.mean() xm, ym = x - mx, y -…

Pandas経由でHiveQLを実行してDataFrameに簡単に入れる方法

Hive経由で集計した値を、Pandasからスムーズに使うための方法を紹介します。 "スムーズ"に、というのは、「CSVを経由しない」と言い換えてもらって大丈夫です 準備 ライブラリとして、Dropboxの PyHive と Clouderaの impyla が必要です。 PyHiveを使ってい…

アメブロでソースコードとかを投稿する方法、またはGithub Flavored Markdownで投稿する方法

お疲れ様です(?) 私の所属する会社には「アメーバブログ」というものがあり、せっかくなら愛着のある自社製品を使いたいところですが、残念なことに プログラマー向けの機能は全然足りません*1。ということで、弊社のプログラマーは、プログラミング系の話…

jedi-vimでanacondaのパッケージを補完させる

davidhalter/jedi-vim VimでPython環境をいい感じに整える | tekkoc'blog jedi-vimという、vimで(賢く)Pythonの補完などをしてくれるプラグインがあります。vimでPython書くなら必須かも、というレベル。 当たり前(?)の話ですが、pipでインストールしたよう…

株式会社CyberZで働くことになりました/後輩の方々にお願い

株式会社サイバーエージェントに入社し、早期配属をすることができ、株式会社CyberZで働くことになりました。 CyberZは、サイバーエージェントの子会社で、スマホ向け広告効果計測ツールを作っている会社です。 CyberZで何をしたいかというと、ざっくりと言…

Theanoを使ってPythonで行列演算とロジスティック回帰

TheanoというPython用のライブラリがあります。 ちょっと勉強したので、チュートリアルを日本語に翻訳しつつ、使い方とかを紹介します。 Theanoとは まずはじめにTheanoとは、について。 Theanoはおそらく「テアノ」と読むのが多分正しいです。ピタゴラス(Py…

ニューラル言語モデルは何を目的としているのか? 〜 「A Neural Probabilistic Language Model」を途中まで読んだ

word2vecでさんざん遊んだ皆さん、こんにちは。 今日は、word2vecの元になった論文の元になった論文の先行研究になっている論文「A Neural Probabilistic Language Model(Yoshua Bengio)」の紹介です。 word2vecは、単語の素性で足し算・引き算ができたり、…

LDAを使って、Twitterでスパムに使われそうな単語を推定する

教師なしLDAでTwitterのスパム判別をしてみる(予備実験編) - 病みつきエンジニアブログ の続きになります! モチベーション 前回の記事で、LDA(latent Dirichlet allocation)のモデルを獲得したので、獲得したモデルを使って「どんな単語がスパムによく使わ…

.gitignore作るなら、giboを使おう

最近技術研修でJavaやってます。 で、.classとかをコミットしてしまう人が居て、そこは.gitignoreをちゃんと設定すべき、です。 で、「ちゃんと.gitignoreを作る」って結構面倒くさいです。例えば、Macだったら .DS_Store を.gitignoreするべきだし、Javaだ…

文章読むとき、選択しながら読む人いるよね?

これ俺のことなんだけど。 ときどきはてなスター見ると、文章の変なところ選択して、はてなスターが付けている人がいる。 これって、多分、選択しながら文章読んでて、うっかりはてなスターつけちゃった人なんじゃないかと思うわけですよ。

ニューラルネットによる単語のベクトル表現の学習 〜 Twitterのデータでword2vecしてみた

最近にわかにword2vecが流行っています。ので、乗っかってみました的記事です。 理論に関してはあまり詳しくしらないので、印象だけで語っているかもしれません。何かありましたらTwitterかコメント等でご指摘いただけますと幸いです。 ちなみに、失敗した話…

教師なしLDAでTwitterのスパム判別をしてみる(予備実験編)

※普通は「教師なしLDA」という言い方はしないです モチベーション 元々は、TwitterからURLつきのツイートを取りたかった。某ニュースアプリがTwitter上で(?)話題になっているニュース記事を(法的な是非があるとはいえ)配信しており、そんな感じのマイニング…

一ヶ月間、ロックスター・エナジー・ドリンクを飲んで気づいたことがある

レッドブルのほうがおいしい・・・

OpenBLASを使うと、multiprocessingが使えない?

numpy/scipyは、別に全ての演算がpythonで実装されているわけではなくて、内部的にはBLASとかを呼び出している(多分)。で、普通だったらATLASのようなBLAS実装が使われると思うんだけど、それだと遅いからOpenBLASみたいなBLAS実装を使いたかったりする。(参…

2014年のJavascriptやCSS、最も楽しみな5つのテクノロジーは、asm.jsと、、、

Web platform: five technologies to look forward to in 2014 上記の記事にて、「ウェブプラットフォームで待ち遠しい5つのテクノロジー」が紹介されています。 asm.js: near-native performance on the web ParallelJS: parallelized JavaScript code ECM…

Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる!

今まで何度もスクレイピングとかクローリングをしてきたので、マエショリストの端くれとしてコツを公開すべきかなあ、と思い、公開します。 今日の題材は、CNET Newsです。私はウェブ文書にタグ付けをするという研究をしているのですが、そのための教師デー…

年の瀬なのでGoogle作ったソフトのリポジトリ(github.com/google)まとめてみた!

google (Google)には、いろいろとすごいソフトウェアがあるようだったので、まとめてみました。ぜひとも開発に活かしたいです。 photo by Aray Chen ★の多い順に紹介してみます。ちなみに1つも使ったことがないので、そこは割り引いてください。 Gumbo - A …

「統計学が最強の学問である」をおすすめしてみる

※本記事はCA14 Advent Calendar 2013の12/24の記事になります。メリークリスマス! 本当はハッカーと画家とかリーダブルコードとかエルフェンリートとかBLACK LAGOONが普通におすすめなんですが、せっかくのCA14アドベントカレンダーなので、CAの同期に向け…

外出ソン(?)をします

こんばんは。今日は極めて私的なことを。 12/17(火)より、「外出ソン」というのをすることとしました。 マラソンにちなんで「42日連続で、日が出てるうちに外に出る*1」というチャレンジです。 理由としましては、この1−2ヶ月ほど体調を崩していたことなど…

OS X MavericksでFilezillaがインストールできなかった問題の対処

FileZilla - The free FTP solutionをダウンロードして開こうとすると、「Filezillaは開けません」みたいなことを言われる。セキュリティに関する設定が変わったみたい? Attachment – FileZilla なので、セキュリティーに関する設定を変えなきゃいけない。 …

IVSで優勝した「Capy CAPTCHA」は脆弱すぎると思う

Capy CAPTCHAは一瞬で突破できる - 素人がプログラミングを勉強していたブログ という記事を見て「これなら俺も一瞬で突破できそう」とか思って挑戦してみた。惨敗だった() しかし画像処理技術や機械学習の技術を使わなくても、理論的に、容易に突破可能なは…

コンテンツを無料で公開しないのは、「リスク」になる時代かもしれない/あるいは俺がPerfumeのライブに行きたい話

最近、Perfumeを頻繁に聞いている。なぜ聞いているかというと、Youtubeで聞けるからだ。PCで作業しているときにわざわざiPod touchを出したりはしないし、容量的に取り込んだ音楽をMacに保存しておきたくもない。そうすると、お手軽に再生できるYoutubeを開…

もっともっと良いコーディングをするための勘所8つ

先日とあるコードレビューを拝見することがあったのですが、それにインスパイアされて記事を書いてみます。レビュワーの方が言ったことも含んでいますが、それと必ずしも一致するものでもありません。 Objective-Cのコードで書いていることが多いですが、わ…

Pythonでお手軽デバッグ

Pythonには pdb というデバッガーがついています。名前からてっきり gdb みたいな、化石みたいなインターフェースしか持ってないのかと思ったら、コード中に貼り付けて止めることもできるみたい(ちょうどrubyの debugger みたいな)。 そのためには pdb.set_t…

OSX MavericksにアップデートしたらCのヘッダーが見つからなくなった

Lion -> OS X Mavericksにアップデートしたら test.c:1:10: fatal error: 'stdio.h' file not found #include <stdio.h> ^ 1 error generated. ということで、Command Line Toolsをデブセンからインストールする必要がありました。多分。 Download for Apple Develope</stdio.h>…

データを自由に使えるWikipedia系サービス調べてみたよ

実験等に使うWikipediaのデータセットを調べていたら、データを自由に使えるWikipedia系サービスをいくつか発見したので、簡単に紹介します。 Wikipediaのデータベースについて Wikipedia系サービスの文書等は主にクリエイティブ・コモンズライセンスでライ…

毎月読んだIT系ニュースをまとめることにした+9月に気になったニュースまとめ

photo by CPOA 自分にできる貢献ってなんだろう、と考えて、「自分の知識を分配しよう」ということに至った。詳細はFacebookに書いたけれども。 実際には全部Twitter(@yamitzky)に書いているんだけど、まあそうそうチェックできるわけでもないだろうし、まと…

気がついたら22歳になっていたので、JX通信社の1年を振り返ってみた

羽田空港からこんにちは! 先日、8月30日をもちまして、気がついたら22歳になっていました。なんだか、18歳のときとか、20歳のときとかと違って、なった瞬間に、特別な感慨などもなく、本当に「気がついたら」という感じの22歳でした。 私にとって21歳の1年…

アプリをパクって何が悪いんですか?

っていうタイトルにすると炎上すると聞いたので・・・(震え声) 最近、アプリのパクリについていろいろ起きているようです。 スマホアプリ市場でパクリが横行していて凄いことになっています 「違法パクリアプリ」製造元を追う 似たような問題は前にもあった…

農業のリアルな問題をちょっと感じてみたよ

お盆で、祖母の家に帰省しています。 祖母の家は、山梨県南アルプス市にあります。山梨県と言えば、ぶどうと桃の産地ですが、祖母の家では、桃とかさくらんぼ等を主に栽培しています。 個人的には、日本の農業は衰退していくだろうーとか、TPPが来ても市場原…

プライバシーに関する意識は歪み過ぎてる

最近、個人情報に関する事案が結構多くて、ネット全体で見ると結構歪んでいるなーと感じるので、整理がてら書いてみます。 まず、ここで上げる「個人情報に関する事案」というのは、ネット上での「個人情報」についての話で、例をあげると下の2つみたいな問…

情報系実験をやりやすくするアイディア

※先に言っておくと、がーーーーーーーーーっとアイデアを書いて、「あ、いけそう」と自己完結するエントリーである。しかし、皆様のアイデアを頂きたく、とりあえず考えながら書いた。 情報系実験の常なのか、それとも僕が悪いのかわからないが、情報系実験…