タグ

ブックマーク / blog.riywo.com (42)

  • KotlinでB+Treeを実装してみた-初めてのデータベース実装 - As a Futurist...

    ふと思い立って 1 ヶ月程で Kotlin を使って B+Tree の単純な実装をしてました。一区切りついたのでコードを晒しつつ、英語でブログを書きました。 https://github.com/riywo/b-plus-tree I just published Learned about database by implementing B+Tree in Kotlin https://t.co/nTXq12LF2b — Ryosuke Iwanaga (@riywo) April 1, 2019 あとは、例によって落ち穂拾い。 InnoDB は情報が豊富にあるので題材としてよかった SQLite や他にも参考にする候補はあったのですが、いずれもコードを読む時間は取りたくなかった(コードを書くことが目的な)ので、資料やブログが豊富にある InnoDB を題材にしたのは正解でした。 Ko

    KotlinでB+Treeを実装してみた-初めてのデータベース実装 - As a Futurist...
  • ポータブルなwebアプリケーションとそのインフラの未来の一考

    naoya さんのポータブルな Web アプリケーションを受けて最近思ってることをば。140 文字で時々書いてるんだけど、まとまりがないので一回まとめておきます。 12-factor app ステートフルなアプリケーションについては、Heroku の人が提唱してる 12-factor app というのが現在の状況をよく表してます。 The Twelve-Factor App The Twelve-Factor App(日語訳) Heroku や他の PaaS によってもたらされたこうした一種の”制約”によって、アプリケーションの新しいカタチが生まれてきています。引き算によって新しい価値が生まれてきているわけですね。 とはいえ、PaaS は PaaS でそれぞれに独自の仕様を持っているわけですが、Herokubuildpack という仕組みを使って、Heroku とインタフェース仕様

    ポータブルなwebアプリケーションとそのインフラの未来の一考
  • 最近のサーバの抽象化について - As a Futurist...

    学者でもなんでもない現場のいちエンジニアの感想です。しかも、どれもちゃんと使ったことないので、聞きかじりをまとめたメモ書きなので嘘が入ってますが、興味ある方がいればどうぞ。 はじめに かつては「OS=物理サーバ」であって、その物理サーバの資源(CPU,RAM,DISK,etc.)をどのように使うかは OS がプロセスに割り振る形で決定されていました。しかし、それでは例えば以下の様な問題があります。 ファイルシステム資源をプロセスが自由にコントロールできない ProcA と ProcB で使いたい libfoo のバージョンが異なる場合面倒 CPU, RAM 資源もコントロールしにくい 同居してるプロセスがメモリい尽くして、みんな死亡、みたいな そもそも異なる OS を同居して使うことができない CentOS ばかり使ってるのに、使いたいライブラリが Debian でしか動かないとか 解決

    最近のサーバの抽象化について - As a Futurist...
  • Packerリリースおめでとうございます! - As a Futurist...

    先週末に Vagrant で有名な @mitchellh さんの新作、”Packer”が発表されました(正式にいつリリースしたのかよく分かってないですが、HN に流れたのは先週)。 Packer Packer | Mitchell Hashimoto mitchelh さんのブログ記事 簡単に言えば、EC2 や Virtualbox などの仮想環境における OS インストール作業を、設定ファイル 1 枚で自動化できるツールです。似たようなツールはたくさんありますし、これからもたくさん出てくるでしょう。ぜひいろんな人に今のうちから触ってもらって、よりよいツールにしていって欲しいと思ったので、超簡単な紹介をしておきます。英語が苦じゃない人は Intro をひと通り読むと良いと思います。 Packer 概要 Packer はメタ OS インストール自動化ツールで、いくつかのフェーズを持ちそれぞれ

    Packerリリースおめでとうございます! - As a Futurist...
  • node.jsのバージョン管理のためにndenv & node-buildを作ったのとanyenvの宣伝 - As a Futurist...

    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 便利なツー

    node.jsのバージョン管理のためにndenv & node-buildを作ったのとanyenvの宣伝 - As a Futurist...
    amari3
    amari3 2013/06/21
    ちょっと気になる
  • 「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...

    ふと今更、年初のCROSS 2013の「次世代 web セッション」の動画を見て、うんうん唸ってしまった。プロトコル編の方は知識不足であんまり分からなかったですが、アーキテクチャ編の方はグサグサくるものがあった。「自分の頭でこれからの web を考えてブログに書くまでがこのセッション」という宿題が出ていたので、せっかくなので最近考えてることをつらつらと書いておこうと思った次第。特にまとまりはないですし、戯言です。 これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2013) – Block Rockin’ Codes 前提 僕はコード書いてない&サーバサイドしか見たことない&WEB サーバはあんまり見たこと無くて、それより後ろ側ばっかり見てた人なので、ユーザ側とかアプリ開発者がどうなっていくかについて特に尖った意見はありません orz SPDY とかもまだ手を

    「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...
    amari3
    amari3 2013/05/29
    読み応え十分。僕自身も考えさせられること多数だなぁ。
  • jemallocとかLD_PRELOADについて調べてみた - As a Futurist...

    何周遅れか分かりませんが調べてみました。僕の理解は浅いので間違っている可能性大ですが自分用にメモしておきます。 malloc とは? C 言語ではmallocという関数を使って、使いたいメモリを実行中に割り当てることができます。例えば Wikipedia によればこんな感じ(適当に main 足してます)。 #include <stdlib.h> int main() { /* 10個のintの配列のためのメモリを確保 */ int *ptr = malloc(sizeof (int) * 10); if (ptr == NULL) exit(EXIT_FAILURE); /* メモリを確保できなかったので、exit */ /* 確保成功 */ } malloc – Wikipedia これを素朴に gcc でコンパイルすると、glibc(libc.so.6)が動的にリンクされます(ここら

    jemallocとかLD_PRELOADについて調べてみた - As a Futurist...
    amari3
    amari3 2013/04/12
    僕もちゃんと調べよう
  • Pandlerというrpm/yum管理ツールを作り始めました - As a Futurist...

    皆さん、構成管理楽しんでますか?最近は Chef や Puppet がやっと認められてきて普及し始めているところの様で、いろんな人が構成管理を楽しみ始めていてとてもうれしいです。 ところで、僕は前にこんなエントリを書いたりして、パッケージ管理にとっても興味のある人間なんですが、Berkshelfという Chef の cookbook を Bundler の様に DSL と lockfile で管理できるというスーパー便利ツールの開発者のプレゼンをこの間聞きました。僕はこの DSL と lockfile でパッケージを管理するというやり方はすごい好きで、Bundler に始まり他の LL のパッケージ管理も大抵そういう仕組がありますし、Berkshelf の様に言語のパッケージだけでない応用もあるわけですね。 で、だったら rpm/yum(deb/apt)も同じ様に管理できたらおもしろいんじ

    Pandlerというrpm/yum管理ツールを作り始めました - As a Futurist...
    amari3
    amari3 2013/04/01
  • Podcastはじめました&Podcastのはじめ方 - As a Futurist...

    miyagawa さんが始められたのをみて、そういえば Podcast ってどういう仕組でやってるのかすら知らないので勉強ついでにやってみようかなと思って始めてみたら、思った以上に手間がかかってしまったので、3 行でまとめて「みんなも始めよう!」という感じにしたい。 Mac で録音して無音とかカットする github page にアップして Tumblr でブログ作って Feedburner で RSS 作る iTunes から RSS を登録してレビュー通ったら完成! miyagawa さんの Podcast を大いに参考にさせて(パクリとも言う)頂きました。感謝!というわけで、僕の Podcast はこちらになります。まだ ep0 で、次回から気だす! iTunes – Podcast – Ryosuke Iwanaga「riywo’s Podcast」 riywo’s Podcas

    Podcastはじめました&Podcastのはじめ方 - As a Futurist...
  • MyrokuというHerokuっぽいものを実装してみた - As a Futurist...

    あけましておめでとうございます。SF アドベントカレンダーも書けず、2012 年のまとめとかも書けず、まぁ何をしてたかというと生きるのに精一杯だったんですが、あともう一個やってたのがアプリ書くってことでした。前から、自前で簡単につかえる Heroku っぽい PaaS があるといいなぁと思ってたのですが、やっと動くものができましたので公開します。”My Heroku”で Myroku。 riywo/myroku-cookbooks · GitHub riywo/myroku-server · GitHub どういうもの? 基の挙動は超シンプルです。Heroku っぽい感じ。 好きな名前のアプリを作成する(sample-app) .llenvに使いたい LL のバージョンを書く(node-0.9.3) Procfileに起動するプロセス書く(web: node app.js) 一番最初に

    MyrokuというHerokuっぽいものを実装してみた - As a Futurist...
  • サンフランシスコ生活始めました - As a Futurist...

    サンフランシスコからこんにちは。今日からひとまず 1 年間、アメリカのサンフランシスコで仕事をすることになりました。だいぶ前から言っていた夢がひとまず叶ってとてもハッピーです。 今回、日の会社からの出向という形でアメリカの会社で働くことになりましたが、アメリカで働くというのがこんなにも大変で面倒なことなのかと思い知らされました。ビザの取得に始まり、日で住んでいるところの処理やアメリカでの住宅探し、銀行や携帯電話など今まで当たり前に持ってたものがないこと、仕事の引継ぎ(業務自体や評価)、保険や税金などの違い、などなど。今回は会社にたくさんサポートをしてもらえて当に助かりました。 また、諸事情あって 10 月頭という当初の予定から 1 ヶ月遅れてしまったのですが、9 月からの 2 ヶ月間に当に色々な方から「いってらっしゃい!がんばれよ!」と言って頂けて大変ありがたかったです。イクイク詐

    サンフランシスコ生活始めました - As a Futurist...
    amari3
    amari3 2012/11/06
    「覚悟は人を成長させる」にしびれました。頑張ってください!
  • GrowthForecastをHerokuで動かしてみる - As a Futurist...

    Heroku といえば PaaS では一番有名かなぁと思います。オフィシャルには perl はサポートされてないんですが、buildpack というスクリプト群を準備してあげると perl も使えます。miyagawa さんが公開されているものを少しだけ改造して、それを利用して GrowthForecast を Heroku で動かしてみました。 riywo/heroku-buildpack-perl riywo/GrowthForecast at heroku-dev 当然鬼門は RRDtool GrowthForecast を動かすにあたって、一番の鬼門はご存知 RRDtool になります。依存ライブラリが多く、入っていない場合にはそのインストールが必要になります。gfx さん作のAlien::RRDtoolが Makefile.PL の依存に書かれているので、もし必要なライブラリが一

    GrowthForecastをHerokuで動かしてみる - As a Futurist...
    amari3
    amari3 2012/10/29
    herokuでperl動くようになったの!?
  • incron使ってスクリプト送り込んだら勝手に起動する仕組み考え始めた - As a Futurist...

    incron というのを知らなかったのですが、これとても夢が広がりますね。 ファイル/ディレクトリの変更を検知してコマンドを実行する incron – Glide Note – グライドノート というわけでとりあえず軽く膨らませてみました。 ちょっとしたスクリプトをたくさんのサーバで気軽に実行したい という要求はままあると思います。その際に、実際にサーバ側でやりたい処理をスクリプトにして、それを rsync で送り込んでから ssh で叩くとかやってたんですが、incron 使うとすごくスッキリとやれます。つまり、サーバ側でファイルが送り込まれたことをトリガーにして、そのファイルを実行してやればいいだけです。 ただ、そのスクリプトが残り続けるの気持ち悪いし、標準出力とかをログにだしたり、さらには fluentd に送ったりしたいですよね:) というわけで超簡単なラッパースクリプトを介してみ

    incron使ってスクリプト送り込んだら勝手に起動する仕組み考え始めた - As a Futurist...
    amari3
    amari3 2012/08/29
    これはうまく使えば便利そう!後で調べてみる
  • 今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...

    長くなったので三行でまとめると CAP 定理を素人なりに調べてみた 分散データストアを CAP 定理で俯瞰してみた どのデータストア使うかの決定因子は CAP 定理的な視点の方がインタフェースとかより先 異論は認めるというか、専門知識ゼロなのでもっと正しい理解があればぜひ教えてくださいませ。 はじめに 僕は MySQL 厨なんですが、最近はやれ「MongoDB がいい」だの「HBase 最高」だのとよく聞きます。これら多種多様なデータストアを語る上で、「RDBMS VS NoSQL」みたいに問い合わせ言語の方式やデータ保存形式の違いで語るのは宗教論かなぁと僕は思ってます。単体プロセスのデータストアとしての特徴とか性能とかは正直なんでもいいかなぁと。 思うに、質的に重要なのは MySQL の master-slave&sharding という Web で今までスタンダードに使われてきた分散

    今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...
    amari3
    amari3 2012/07/30
    基礎的なところ理解せずに盲目的に使うのは危ないと思った。僕も勉強しないと
  • 「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...

    インフラ系のエンジニアは、あまりリファクタリングとかクラス構造といった視点でコードを読む機会が少なくて、勢い作ったスクリプトやツールはそれはそれはひどいものになりがちです(体験談)。 僕もエンジニアになって以来、まともなコードなんか書いたことなくて、従ってる原則といえば、「グローバル変数は悪」とか「短いことはいいことだ」とか「コメントは書かない方がいい」とか、なんか学生の時にたまたま目にしたよくわからない何かに従ってる程度。 少し大きい規模を書き始めると、昨日の自分と今日の自分で命名規則が全然一貫性なくて、「getHoge()」と「makeFuga()」がおんなじようなことをやってたりしていつも嫌悪感に駆られてました。 ちょうど 1000 行くらいのアプリ書いてたところだったので毎日吐き気をこらえながら「まずは動くものをつくるんだ。全てはそれからだ」と言い聞かせて汚いコードをゲロゲロしてた

    「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...
    amari3
    amari3 2012/06/27
    仕事終わったら本屋に探しに行こう
  • perlbrewとextlibなアプリのcronとかdaemontools - As a Futurist...

    perl は system perl じゃなくて perlbrew で入れて、アプリで必要な CPAN モジュールは全てアプリのディレクトリ下の extlib というディレクトリにインストールする方式は個人的にはいい感じだよなぁと思いつつ、cron とか daemontools がいつもどうやるのが正解なのか分からず困ってた。 またセットアップする機会があったので色々考えた結果、こんな感じなら割とすっきりした感じになった。 env このファイルがキモで、アプリのディレクトリに移動しつつ、いい感じに perl とか PATH とか@INC を設定して、渡されたコマンドを実行してくれる。 # perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi # ./env perl -v This is perl 5, versi

    perlbrewとextlibなアプリのcronとかdaemontools - As a Futurist...
  • DevOpsDays Tokyo 2012に参加してきたので聞いたこととか思ったことまとめ - As a Futurist...

    DevOpsDays Tokyo というイベントが行われていたので参加してきました。DevOps という単語やムーブメントを牽引する英語圏のゲストを招いての大規模なイベントでした。会場の GMO さんやスポンサー各社のご協力のおかげか、至れり尽くせりな感じですごかったです。 Tokyo 2012 – welcome セッションスピーチはほとんどが各社製品紹介みたいな感じだったので割愛しますが、その後に行われた OpenSpace が相当エキサイティングでした。これは海外のカンファレンスだとよくある形式なんですが、会場とコマだけ用意されているので、あとは話したい人が話したいテーマをその日に適当に入れてプレゼンとかディスカッションをするという感じのものです。その場で生まれる議論のダイナミズムは、普段から色々と頭を使って手を動かしているエンジニアにとってはとても刺激されるものではないかと思います

    DevOpsDays Tokyo 2012に参加してきたので聞いたこととか思ったことまとめ - As a Futurist...
  • NHNテクノロジーカンファレンスでしゃべって来た #nhntech - As a Futurist...

    前日に Fluentd Casual Talks を会社で開催してぐったりしたまま、NHN さん主催のテクノロジーカンファレンスで 25 分の発表をしてきました。講演者の中で 1 人だけ一般人感が滲み出ていて大変恐縮でした。 “Mobage DBA Fight against Big Data” - NHN TE from Ryosuke IWANAGA 動画もあります 感想 実は MySQL の話をこれだけちゃんとしゃべるのは内にも外にも初めてでした。雑誌の記事とかで数ページとかはありましたが、外向けにしゃべる時は運用周りの事ばっかりでしたね、実は。 自分が join する前からあった技術、入ってから使った・作った技術をおりまぜて、といいつつ別に弊社独自のものはほとんどなくてごくごく一般的な知識を紹介しているので、MySQL の大規模運用については割と網羅的にまとめて紹介できたかなぁと思

    NHNテクノロジーカンファレンスでしゃべって来た #nhntech - As a Futurist...
  • Hokkaido.pm #7 に参加してきました #hokkaidopm - As a Futurist...

    JPA のご支援を頂いて、僭越ながら Hokkaido.pm に講師的な感じで参加させて頂きました!JPA はもちろんのこと、暖かく迎えて頂いた Hokkaido.pm の皆様、当にありがとうございました。とても楽しい週末を、、、 極寒の北海道で過ごすことができました!!! 石狩地方(札幌)の過去の天気 – Yahoo!天気・災害 いやー、、、さすがに 10℃ 切るとは思ってなかったです。。。 5/12 いざ北海道へ!発表とかとか 久々に国内線乗りました。 上からコンセントが垂れててステキ 準備中ですね おやおや、怪しい人が。ちなみにこの耳はういんういん言って回ってました。 “Ops Tools with Perl” 2012/05/12 Hokkaido.pm from Ryosuke IWANAGA というわけで僕の発表はこちらです。その他の人の発表も含めて、公式サイトにまとまってま

    Hokkaido.pm #7 に参加してきました #hokkaidopm - As a Futurist...
    amari3
    amari3 2012/05/16
    お疲れ様でした。僕のスープカレー屋のおすすめはCHUTTAです!
  • スキーマレスについてちょっと考えてみた - As a Futurist...

    このエントリはたぶんに煽り要素を含めていますが、意図的なものです。僕は NoSQL は素晴らしいと思います。 さて、NoSQL なんて言葉に踊らされてる人は置いといて、最近 RDBMS 以外のデータストアというのが色々でてきてます。今時点で見渡す限りにおいては、安定性、耐障害性、パフォーマンス、情報量、開発者の慣れ、全体のバランスで言えば RDBMS にかなうものはないわけですが、今後どうなっていくかはまぁ分かりません。 一方で、RDBMS がどうしても苦手とする分野というのは存在します。例えば 1 サーバに収まりきらない様な大容量データに対するバッチ処理、リアルタイムなランキング、アクティビティなどのフィード情報、そして構造化されたデータの取り扱い。何でもかんでも NoSQL に置き換えればいいなんて考えは現時点では到底受け入れがたいですが、例として挙げた様なピンポイントな部分ではそれに

    スキーマレスについてちょっと考えてみた - As a Futurist...
    amari3
    amari3 2012/04/27
    Redisはものすごく興味がある