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

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

「GraphQLは何に向いているか」に対してのちょっとした反論

k0kubun.hatenablog.com 非常に丁寧に書かれていると思うのですが、少し反論したい部分があるので、記載したいと思います。 GraphQLのキャッシュ効率について クエリをパースしないとキャッシュの可否を判定できないため、HTTPキャッシュが難しい こちらに関…

Puppeteer を CLI で動かす Docker イメージ作った

また新しい Docker イメージ作ったので紹介する。 https://hub.docker.com/r/yamitzky/puppeteer-cli Puppeteer とは? github.com Chrome Headless を Node で触るためのライブラリで、URLを見ると分かる通り、 Chrome のチームが出しているものです。 Pupp…

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

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

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

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

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

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

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だ…

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

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