サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
blog.riywo.com
僕も子育てエンジニアしてるので、共有しておこうかなと思いました。 子育てありきのエンジニア業 – HDE BLOG 学生として、フリーランスエンジニアとして、1 年間子育てをして思った事 – 人間とウェブの未来 出産直後 僕は出産に完全に立ち会って catch baby もしたんですが、アメリカの病院は産まれた後は 1 日しか入院できなくて、2 日目には退院です(慣れない運転で連れて帰りました)。その後は自分たちだけで暮らしていくしかありません。僕らは実家も遠く夫婦 2 人しかいなかったので、出産直後でお母さんが一番苦しい時期を支えるのはお父さんしかいませんでした。アメリカの文化は本当に素敵で、すぐに 2 週間完全休み+1 週間 WFH(自宅勤務)にさせてもらえて、その間はお母さんしかできないこと以外はできる限りやりました。洗濯、料理とか買い出しはもちろん、おむつ交換もお母さんは授乳で疲れ
僕はアメフト観戦が大好きなんですが、先日アイドルの追っかけやってる人と話をしていたら、まぁ同じだなぁwと思った次第。どういうことかというと自分の時間のほとんどを費やしてるんですね、これが。。。飛行機で国内飛び回ったりはしないのですが、アメフト観戦は時差との戦いが非常に大変です。 というわけで一体どのくらいの労力を費やしてるのかを今シーズン(2014-2015)を例に紹介。ちなみに CFB = Collage FootBall の略でアメリカの大学アメフトです。 2014-2015 season の activity 2014/2 – 2014/8 Off season 週 1 本の NFL Podcast(1h) / CFB Podcast(1h)聴く 4 月頃は draft の話題が盛り上がるが、去年 CFB ちゃんと見てないのでイマイチ波に乗れず CFB の Podcast も con
年明けにどうしても前から気になっていた IRKit を買いました。理由は簡単で、子供がリモコン大好きで勝手に押しまくって色々大変なので、リモコンをなくしてしまいたいと思っているからです>< 非常に完成度の高いガジェットで、大満足です。何の努力もせずにインターネット越しで IRKit を操作できるのには感動すら覚えました。とはいえ、通常の使い方だとクライアント側で信号情報を管理する必要があり(IRKit 自体は何も記憶せず、常にクライアントが信号を送るというデザインに simple is best を感じますが)、家族で共有したりするのにはちと面倒です。つまり、信号情報を家族のスマホ全部で共有するのがめんどくさい。 なので、そういう情報は全部サーバ上に置いてしまって、秘密のリモコン画面からボタンを押せば誰がやっても同じ挙動になるのがいいなと思いましたので作りました。 API サーバ riyw
タイトルの通りですが、12 月末で 6 年弱勤めた DeNA を退職して、1 月から AWS に Join してます。日本の Solution Architect です。初めての B2B のお仕事なので新卒新入社員の気持ちです。新卒入社時の予定ではもうアメリカに留学してるはずだったのに、どうしてこうなったのやら。。。 さて、DeNA にはエンジニア未経験の状態からここまで力を付けさせてもらって大変感謝しています。売上に直接貢献するような仕事はほとんどできなかったですが、起こらなかった問題に対する貢献は少しは出来たかなと思っています。そういえばここではちゃんと書いてなかったですが、最後の1年間は MYCODE という遺伝子解析サービスの開発をゼロから行っていて、何もないところからリリースまで辿り着くという産みの苦しみを味わうことができて非常にエキサイティングでした。ちょっとだけですが Sec
冬休みの宿題として、Mesos+Docker でアプリちゃんと動かしたい!→Shared Filesystem が欲しい →Ceph やりたい!→AWS の orchestration が必要 →Terraform 面白い!という yak shaving を経て、なぜかずっと Terraform をいじってました。とりあえずちゃんと動くのができたので公開。 riywo/mesos-ceph Terraform module for Mesos + Ceph cluster and Packer template – As a SW/Ops/DB Engineer 細かい話は 1 年ぶりの英語で適当に書きなぐったつもりなので、こちらにはポエムでも。 Terraform 面白い このブログとかを移行しようと考えてて、AWS を遊びじゃなくて運用しようとしたら、VPC とかサーバ以外に管理しなき
細かいことはおいといて、8086 向けのバイナリとして MINIX という OS が持っている yes コマンドをとりあえず動かすことができました。OS とかは省略して、ともかくこのバイナリを解釈して 8086 に命令を飛ばして動かしただけですが、自分としては大きな一歩です。文字を書き出すところの write system call はそのまま実行元の OS の system call を呼び出しています。 riywo/go8086 https://showterm.io/6ddbd0ae8018f9ba7434d#fast なお、@7shi さんのこちらの記事とコードを丸パクリしたようなものですので、@7shi さんには頭が上がりません。大感謝。 i8086 のインタプリタで MINIX のコマンドを動かす – 七誌の開発日記 type/interface 設計 逆アセンブラを作るだけな
HHVM の話を聴いてからというもの、VM というものにどうにも興味がわいて仕方がない今日この頃。世の中の言語処理系も中身は VM だったりするわけで、そもそも VM ってどうやって作るのかな − とか考えてたら @riywo PDP-11のVM作って、Unix V6動かせば、一石何鳥になることやら — sakamoto.kazuki (@splhack) October 1, 2014 というご意見をもらって、初めて PDP-11 というものを調べ始めました。UNIX V6 の本とかを買って読み始めてみたり、言語処理系の作り方の本にも手をだしてみました。 PDP-11/UNIX V6 の勉強会があった そんな中、@7shiさんが主催されている「池袋バイナリ勉強会」の存在を知りました。なんと、ついこの間まで PDP-11 の逆アセンブラ(機械語のバイナリからアセンブリ言語を出力する)を作っ
使える言語の幅を広げたいと思ってPHP カンファレンス 2014に参加してきました。徳丸さんの「安全な PHP アプリケーションの作り方 2014」は改めて自分のセキュリティの知識を確かめるのに大変有意義だったのですが、何より感動したのが Facebook の Paul Tarjan による「HHVM + Hack == PHP++」のセッションでした。 すごく簡単に僕が理解した限りで HHVM/Hack を紹介すると、HHVM とは PHP の処理系の一つの実装です。その特徴は JIT コンパイルにより超高速になっていることに加え、圧倒的な魅力は PHP の Extension(C 拡張ライブラリ)の多くが実装されていて PHP のメジャーなフレームワークが問題なく動作するということです。つまりもう実践で戦えるということ。そして、Hack というのは HHVM が処理できるもう一つの言語
Web の会社でエンジニアを始めて 4 年、ずっと運用エンジニアをやってました。運用とは端的に言うと、社内外の他人が作ったソフトウェアを期待通りに動作させるためのエンジニアリングだと思ってます。アプリケーションはもちろん開発者が作ったものですし、MySQL や Apache や Linux も全部他人が作り上げたソフトウェアであり、それらの設定を変更したりパッチを当てたり運用ツールを駆使することで、協調動作させることに磨きをかけてきました。 ただ、いつまでたっても他人の作ったものの面倒を見てることには変わりないし、運用ツールを開発したところでそれはあくまで誰かが生み出す価値のサポートにすぎないのが自分的には満足できなくて、ずっとアプリケーション(ビジネスロジック)が作りたいと思ってました。 で、今年の始めからたまたまタイミングよく新規開発の部署に入ることになって、いきなり開発者をやることに
ハッカーは遅延評価勉強法をするものだそうです。確かに僕の知ってるすごい人達は、皆必要になった時の吸収力が半端無くて、それを紹介した時には自分の方が詳しかったはずなのに、あっという間に追い抜かれてしまいます。 僕はハッカーになりたいけどハッカーじゃない人間ですが、やはり大上段から入って時間をかけて勉強していくのは嫌いなので、基本的には遅延評価勉強法をしてきました。でも言葉どおりに「必要になるまで」勉強しなかったら、得られないものが多すぎるなと最近感じてます。それは「普遍的な知識」です。 自分の仕事や興味だけに従っていると、訪れる機会は必然的に偏ります。たとえば web アプリの開発ばかりやっていれば、LL や HTTP や通信の知識は幅広く身につくかもしれませんが、スマホ開発や仮想環境やハードウェアなどはなかなか身につきません。必要にならないんだから勉強しなくていいんじゃない?というのはもち
1 年ちょっとサンフランシスコで生活してましたが、日本に帰任ということで 12 月末に日本に帰ります。SF でお世話になった方々ありがとうございました。今後も仲良くしてください。日本の方々、アメリカかぶれですがまたよろしくおねがいします。 英語について 英語が流暢になった、とはとても言えないですが、少なくとも行く前に持った「覚悟」に加えて「度胸」がつきました。文法めちゃくちゃだろうと発音がひどかろうと単語が聞き取れなかろうと語彙がなかろうと、伝えたい・聞きたいという思いを形にするだけの度胸は多少ついたと思います。そうしないと生活できないから。 仕事でもいわゆる日本とのブリッジみたいな仕事ではなく、こちらの会社の普通の 1 メンバーとして周りにも仕事相手にも全然日本人がいない環境で仕事ができたので、英語がわからないとか言ってられない感じでした。なんとかサバイブできてよかったです。だいぶ迷惑は
Fluentd Advent Calendar 2013の一部です。(PST だとまだ 20 日なのでお許し下さい。。。) 最初は iOS からCocoaFluentLoggerでなんか送って遊んでみようかと思ってたんですが、単にタップした場所のログ送るくらいだったらあっさりできてしまって(CocoaFluentLogger の出来が良い)、それ以上楽しいことをやるには iOS のスキルが足りなかったので、急遽 Mesos で遊ぶことにしました。動かなかったらごめんなさい! riywo/sample-fluentd-on-mesos-docker 概要 今回は Mesos クラスタの上に Fluentd(td-agent)を好きな数だけ配置して、フロントとして HAProxy を立て、バックエンドに Elasticsearch を置いてみました。結果は Kibana で見ます。 Fluen
Fluentd Advent Calendar 2013に登録したものの、そういえば 1 年位全く fluentd に触ってなかったので、リハビリも兼ねて最近バージョンアップで導入された Vagrant の Docker provisioner を使って、ES+Kibana に流すとこまでを作ってみた。実用性には乏しい。 riywo/vagrant-docker-td-es-kibana-sample 以下解説。 Vagrantfile localhost から port forwarding で box の同じポートに接続させてる。さらに box の中で Docker が走っていて、Docker provisoner でコンテナを起動する時に、port redirect させているので、クライアントからダイレクトにコンテナと会話ができるようになっている。 ES と Kibana はarc
この記事はCivic Tech Advent Calendar 2013の一つになります。 Civic Tech(シビックテック) とは何か …市民がテクノロジーを活用して公共サービスなどの地域課題解決を行うことを指しています。…これまで行政だけではサポートできなかった分野でのサービスを行ったり、市民自身がより深く行政のプロセスに参加したり、公共分野でのイノベーションを起こすことができるのではないかと、欧米などで盛り上がりを見せている分野です。 civictech – 地域課題解決の新しい形、Civic Tech と Code for Japan – Qiita 僕自身、特に Civic Tech に対して何か志や熱意があるわけでは今のところ無いですが、別件で API とデータについてふと考えてた時に、日本国の法令データも更新が頻繁じゃないんだから普通に全部ダウンロードできた方がいいよなぁ
naoya さんのポータブルな Web アプリケーションを受けて最近思ってることをば。140 文字で時々書いてるんだけど、まとまりがないので一回まとめておきます。 12-factor app ステートフルなアプリケーションについては、Heroku の人が提唱してる 12-factor app というのが現在の状況をよく表してます。 The Twelve-Factor App The Twelve-Factor App(日本語訳) Heroku や他の PaaS によってもたらされたこうした一種の”制約”によって、アプリケーションの新しいカタチが生まれてきています。引き算によって新しい価値が生まれてきているわけですね。 とはいえ、PaaS は PaaS でそれぞれに独自の仕様を持っているわけですが、Heroku の buildpack という仕組みを使って、Heroku とインタフェース仕様
最近 Go を書きたくなったので挑戦してみました。お題は、stdin を受け取って stdout に結果を出すタスクを、全部ファイルベースで行いたい、というもの。stdin となるものをファイルに書き込んでおくと、それを読み込んで実行プロセスの stdin に渡してくれて、stdout を受け取ったらそれをまたファイルに書き込むようなイメージです。実行時には env var を設定したりできたり、stderr も別に書き出したりしたいですね。 riywo/proctask というわけで作りました。README 参照。ついでだったので、bash -l的な感じで実行ユーザの profile も読み込んで実行してみたので、PATH とかがログインした時と同じ感じで使えると思います、多分。 なお、使い道はこれから考えます。たとえばこんがらがった cron の記述を簡単にできるかも。 あと副産物で、
学者でもなんでもない現場のいちエンジニアの感想です。しかも、どれもちゃんと使ったことないので、聞きかじりをまとめたメモ書きなので嘘が入ってますが、興味ある方がいればどうぞ。 はじめに かつては「OS=物理サーバ」であって、その物理サーバの資源(CPU,RAM,DISK,etc.)をどのように使うかは OS がプロセスに割り振る形で決定されていました。しかし、それでは例えば以下の様な問題があります。 ファイルシステム資源をプロセスが自由にコントロールできない ProcA と ProcB で使いたい libfoo のバージョンが異なる場合面倒 CPU, RAM 資源もコントロールしにくい 同居してるプロセスがメモリ食い尽くして、みんな死亡、みたいな そもそも異なる OS を同居して使うことができない CentOS ばかり使ってるのに、使いたいライブラリが Debian でしか動かないとか 解決
ふと家のネットワークに VPN したくなった →VPN Activatorで超簡単にできた → せっかくだから Dynamic DNS で家の IP アドレスに名前付けたい →Route53 触ってみたかったの思い出した → スクリプトで Route53 更新するのはなんか嫌 →Heroku にアプリ作って curl で叩いたら Route53 更新するようにしたらいいのでは!!!という長い yack を経て、簡単なアプリを作ってみました。皆さんやってそうですが。。。 riywo/ddns53 なんてことはないアプリで、Heroku にデプロイしておいて LAN 内のサーバから GET リクエストするだけで、自分の AWS のアカウントの Route53 の A レコードを、REMOTE_ADDR な IP アドレスに更新してくれるだけのものです。README の通りに自分の Heroku
何年前の話題だよという感じですが、ふと Jenkins を Cron 代わりに使ってみようかなと思ったのですが、ブラウザの画面でポチポチするのはなんだかなーと思ったので、DSL を書いてそれを元に Jenkins の API を叩いて更新するというだけのモジュールを作ってみました。 jenkins_cron | RubyGems.org | your community gem host riywo/jenkins_cron 使い方 こんなイメージ。config/jenkins.ymlに Jenkins サーバへの接続情報を書いておきます。 . └── config ├── jenkins.yml └── schedule └── foo.rb DSL はconfig/schedule/*.rbという名前で、その中で job を定義していきます。 $ cat config/schedule
node でアプリ書きたい →Grunt がイケてる → 色々整備したけど開発環境のサーバ起動は Pow が使いたい → 空いてる TCP ポート探せればなんとかなりそう、という感じの yack を経て、Anypow と Net::EmptyPort という gem をリリースしました。実働 2 日なので実験レベルですが自分では使っていこうと思います。cf. Released Anypow and Net::EmptyPort riywo/anypow riywo/net-empty_port Pow? Pow は Rails やってる人はもはや使うのが当たり前かなと思うのですが、そうでない人にはあんまり有名じゃなさそう。僕も 1 ヶ月くらい前に Rails4 を始めるまでは知りませんでした。。。何をするツールかというと、Mac 限定ですがhttp://myapp.devという URL に
当初の予定とはちょっと変えて、Coursera から 3 つのコースを受講して、無事終了しました。2 つは Statement of Accomplishment がついててとてもうれしいです(まだ 1 個は出てないけど)。 Algorithms, Part II | Coursera Kevin Wayne and Robert Sedgewick, Princeton University The Hardware/Software Interface | Coursera Gaetano Borriello and Luis Ceze, University of Washington Machine Learning | Coursera Andrew Ng, Stanford University 所感 Algorithms は前期から引き続き。ちょっとアドバンスドな内容で、グラ
先週末に Vagrant で有名な @mitchellh さんの新作、”Packer”が発表されました(正式にいつリリースしたのかよく分かってないですが、HN に流れたのは先週)。 Packer Packer | Mitchell Hashimoto mitchelh さんのブログ記事 簡単に言えば、EC2 や Virtualbox などの仮想環境における OS インストール作業を、設定ファイル 1 枚で自動化できるツールです。似たようなツールはたくさんありますし、これからもたくさん出てくるでしょう。ぜひいろんな人に今のうちから触ってもらって、よりよいツールにしていって欲しいと思ったので、超簡単な紹介をしておきます。英語が苦じゃない人は Intro をひと通り読むと良いと思います。 Packer 概要 Packer はメタ OS インストール自動化ツールで、いくつかのフェーズを持ちそれぞれ
ndenv のエントリのおまけで anyenv install plenv 作るかもと書いておいたら、@koba04 さんから欲しい!というコメント頂いたので、とりあえずで実装してみました。ついでに anyenv の説明をば。 riywo/anyenv 何? rbenv をコピーした plenv や ndenv などは、.bashrc とかに 2 行追記して使うわけですが、数が増えるとこんな感じになってなんか悲しいです。 export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.plenv/bin:$PATH" eval "$(plenv init -)" export PATH="$HOME/.ndenv/bin:$PATH" eval "$(ndenv init -)" ... そこで
nvm がどうも好きになれないので、rbenv & ruby-build を見習ってというか丸パクリして ndenv & node-build を作りました。主に自分用なので細かい説明は省略します。rbenv や plenv に慣れている人はそのままの感じで使えます。nenv があるのは知ってましたが、古そうだったので改めてコピーして作りました。 riywo/ndenv riywo/node-build また、これ系を入れる度に profile をいじるのがだるいので anyenv というのも作ってて、~/.anyenv/envs以下に置くだけでいいようにしてたりもします。これも自分用なので使いたい人がいれば適当に使ってみて下さい。そのうち、anyenv install rbenvとか作るかもしれません。 riywo/anyenv tavi 13-06-29 (土) 11:52 便利なツー
git は現在分散バージョン管理システムの中では最も使われているものだと思いますが、サーバ管理やネットワークだけやってるエンジニアからすると、git は開発者が使うもので、なんか難しそう、と思って敬遠しがちです。実際僕も昔は git なんてコマンド打ちたくありませんでした。しかし、分散バージョン管理システムというのは、複数人でシステムを運用(not 開発)する際にもとても役に立ちます。このエントリでは、いわゆる一般的な git の解説とは違った視点から、git の良さを書いてみたいと思います。 ちなみに、git の基本的なアイデアについてはこちらのエントリが分かりやすいと思います。 イラストでわかる!git 入門の入門 : アシアルブログ 複数人でファイルを編集するなら 別にバージョン管理すべきものはソースコードだけではなく、例えばサーバの設定ファイルなんかも管理すべきものです。etcke
ふと今更、年初のCROSS 2013の「次世代 web セッション」の動画を見て、うんうん唸ってしまった。プロトコル編の方は知識不足であんまり分からなかったですが、アーキテクチャ編の方はグサグサくるものがあった。「自分の頭でこれからの web を考えてブログに書くまでがこのセッション」という宿題が出ていたので、せっかくなので最近考えてることをつらつらと書いておこうと思った次第。特にまとまりはないですし、戯言です。 これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2013) – Block Rockin’ Codes 前提 僕はコード書いてない&サーバサイドしか見たことない&WEB サーバはあんまり見たこと無くて、それより後ろ側ばっかり見てた人なので、ユーザ側とかアプリ開発者がどうなっていくかについて特に尖った意見はありません orz SPDY とかもまだ手を
尊敬する mootoh さんに勧められて、僕もこの 6 週間アルゴリズムの勉強に取り組みました。錆びついたマシンガンどころか、そもそも竹槍しかもってない状態で飛び込んだにしては頑張ったほうじゃないかと思いますので、自分を褒めてあげたいと思います。 Algorithms, Part I | Coursera Kevin Wayne and Robert Sedgewick, Princeton University あわせて読みたい Motohiro Takayama • Coursera, 2013 Q1 所感 そもそもアルゴリズムとデータ構造、ちゃんと教科書で勉強したことなくて、大学の講義でチラッと聞いたのと情報処理の資格の勉強の時にかじった程度の僕に取っては、新鮮なことが多くて大変ためになりました。ちなみに、なぜかこれの直前にいきなり Ruby で B+Tree を実装してたのは何かの
皆さん、構成管理楽しんでますか?最近は Chef や Puppet がやっと認められてきて普及し始めているところの様で、いろんな人が構成管理を楽しみ始めていてとてもうれしいです。 ところで、僕は前にこんなエントリを書いたりして、パッケージ管理にとっても興味のある人間なんですが、Berkshelfという Chef の cookbook を Bundler の様に DSL と lockfile で管理できるというスーパー便利ツールの開発者のプレゼンをこの間聞きました。僕はこの DSL と lockfile でパッケージを管理するというやり方はすごい好きで、Bundler に始まり他の LL のパッケージ管理も大抵そういう仕組がありますし、Berkshelf の様に言語のパッケージだけでない応用もあるわけですね。 で、だったら rpm/yum(deb/apt)も同じ様に管理できたらおもしろいんじ
東洋経済で連載されているこちらのコラムを毎回楽しみにしています。 宇宙を目指して海を渡る | 東洋経済オンライン | 新世代リーダーのためのビジネスサイト MIT の大学院で Ph.D.を取られた方(@masahiro_ono)のコラムなんですが、グサグサ来ます。その中でも今回のコラムは僕にとっては一際深く突き刺さりました。特に最後のこのフレーズ。 競争本位のシステムに本当に合っている人とは、自分の夢や目標を実現するためにもっと努力せねばならぬと思う克己心と、自分の根っこの深くに抱える人間的な弱さとが葛藤し、しばしばもどかしさを感じている、僕やあなたのような人なのではないだろうか。 胃が痛む「MIT の競争生活」で学んだこと | 宇宙を目指して海を渡る | 東洋経済オンライン | 新世代リーダーのためのビジネスサイト こういう思いをつい持ってしまう人は、絶対に一度こういうところに行った方が
次のページ
このページを最初にブックマークしてみませんか?
『As a Futurist...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く