タグ

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

  • フロントエンド初心者がGatsbyでブログを作り直した話 - As a Futurist...

    フロントエンド初心者が無事に Hugo のブログを Gatsby で一から作り直すことができた。その振り返り。 歴史 インターネットを小中学生(もはや 25 年以上前)に触り初めた頃に、HTML で文章の構造を作り CSS でデザインする、ということができるのを知って感動したけど、結局自分には何かが合わなくてそれを突き詰めることができなかった。というか、それを知ったが故にテーブルレイアウトとかがどうしても気に入らず、かといって CSS は float が難しすぎて、結局ウェブサイトを作る、という根的な営みをずっと避けてきてしまった。 時は過ぎ、Wordpress の様なブログエンジンや Hugo の様な仕組みがあったおかげでブログを初めて続けることはできた。13 年前にレンタルサーバに Wordpress を置いて始めたこのブログも 9 年前には VPS での Wordpress 運用に

    フロントエンド初心者がGatsbyでブログを作り直した話 - As a Futurist...
  • HiNative Trekで英語のトレーニングを毎日1分以内で行う - As a Futurist...

    今は海外の同僚とやり取りすることも多く、英語でのコミュニケーションは読み書き聞き話す問わず日常的にやっているのですが、英語での言い回しや文法の改善についてはなかなか時間をとることができないでいます。英会話学校やオンライン英会話等に通い続けるのは 1 つのやり方だと思いますが、1 時間であっても固定の時間を確保し続けるのは自分の気質的にも難しく、結果としては野良英語を振り回し続ける日々です。 そんな中、とある経路でHiNative Trekを紹介してもらって、先月からずっと続けています。上記の課題に対して自分的にはピッタリハマっていて、今後も長く続けていきたいと思っています。というわけで、同じような悩みを持つ方がいれば是非使ってもらいたいと思い、簡単に紹介をしたいと思います。 完全非同期な英語学習 HiNative Trek の基的な流れは以下の様な感じです。 毎日課題(基はある状況での

    HiNative Trekで英語のトレーニングを毎日1分以内で行う - 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アプリケーションとそのインフラの未来の一考
  • WordPressをCentOS+Apache+mod_fastcgi+PHP-FPMを使って動かしてみた - As a Futurist...

    このブログはさくら VPS で動かしているのですが、さくら VPS の一番弱いところはメモリの大きさが 512MB というところなんですよね。PHP みたいな LL は結構メモリは富豪的に使うので mod_php 使って httpd のメモリを膨れさせてると、同時接続数そんなに上げられないわけです。 アプリケーションサーバを WEB サーバと切り離すのであれば、定番としては WEB サーバとして Apache+mod_proxy や lighttpd や nginx を前段に置いて、 mod_php で起動した Apache にプロキシして上げるというのが一つのやり方です。 ただ、1 台のホストでやってるので Apache を 2 種類上げるとかなんか気持ち悪いし、 Apache 以外はあんまりよく分からない。 こんな時には、FastCGI を使って httpd から切り離すのが常套手段な

    WordPressをCentOS+Apache+mod_fastcgi+PHP-FPMを使って動かしてみた - As a Futurist...
  • JenkinsでCronジョブを定義するjenkins_cronを作ってみた - As a Futurist...

    何年前の話題だよという感じですが、ふと 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

    JenkinsでCronジョブを定義するjenkins_cronを作ってみた - 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...
  • 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...
  • anyenvという**env系の簡易マネージャを作った - As a Futurist...

    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 -)" ... そこで

    anyenvという**env系の簡易マネージャを作った - As a Futurist...
  • 「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...

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

    「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...
  • スキーマレスについてちょっと考えてみた - As a Futurist...

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

    スキーマレスについてちょっと考えてみた - 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...
  • rpmで入れたバイナリのchecksumが一致しないと思ったらprelinkのせいだった - As a Futurist...

    同じ rpm で複数のサーバに入れたあるバイナリをふとした経緯でサーバ間で一致してるか確認したくなって、md5sumで確認してたら、どうも差分がある。しかし、rpm のバージョンを見ても一致してる。教えて Twitter!ってしたら@_hito_さんから。 @riywo 犯人はprelinkだったりしませんか。 — hito (@_hito_) August 10, 2012 以前 ruby がぶっこわれる問題で調べてたので言われた瞬間にハッとしました。 td-agent のレポジトリが公開されたのでちょっとカスタマイズしてみた #fluentd – As a Futurist… prelink は RHEL 系だと大体入ってて、cron.dailyに仕掛けられていて/etc/prelink.confとかを読んで実行されてます。 何をしてるかというと、(100%理解してるわけじゃないですが

    rpmで入れたバイナリのchecksumが一致しないと思ったらprelinkのせいだった - As a Futurist...
  • 初めてのオレオレbash補完 - As a Futurist...

    さて、ひとつ前のエントリは釣りだったわけですが、題の bash 補完を初めてやってみました。ちょっとした物だったら割と簡単に書けたので、共有。 目標 自作コマンド(仮にsugyanとします)はこんな感じの I/F だとします。 sugyan subcommand [args] いくつかの subcommand は次にくる引数が限られる 例えばsugyan momocloの後にはkanako renichan shiorin ahrin momoka sugyan listでそういう補完の一覧が色々出せる sugyan list commandで subcommand の一覧 sugyan list momocloでももクロ一覧 一応sugyan listでcommand momocloが返る あとはいつもの bash のままにファイルとかを補完して欲しい 実際叩くと、 $ sugyan

    初めてのオレオレbash補完 - As a Futurist...
  • Perlでssh tail -fして目的の行が来たら終了する - As a Futurist...

    簡単だろうと思って始めてみたら意外とハマった。。。例えばネットワーク機器の設定確認とかで、ロードバランサ経由でアクセスしてみてちゃんとアクセスが来てるか確認したい時に、人力だったらターミナル開いてアクセスログをtail -fしといてcurlとかで叩いて「きたきた」ってやって終わりでいいと思うんですが、台数がべらぼうに多いときとかムリポ。 そこで、サーバにsshしつつtail -fを発行してアクセスログをフェッチしつつ、grep的なことをして目的のログが来たら終了、みたいな処理を考えてみた。方針はたぶんこの 2 種類。 sshで渡すコマンドでgrepして目的の行が出たらsshが終了するようにしておく 目的の行は perl で探して、見つけたらsshのプロセスにシグナルを送る なんでこんなめんどくさいことが必要かというと、tail -fは明示的に殺すまで基的にはずっと動き続けるので、なんらか

    Perlでssh tail -fして目的の行が来たら終了する - As a Futurist...
  • 今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...

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

    今更CAP定理で分散データストアの勉強を始めてみた - As a Futurist...
  • MySQL Binlog APIを試してみる - As a Futurist...

    MySQL のレプリケーションは素晴らしい仕組みなのですが、ちょっと凝ったことをしようとするには機能が限られています。特に、MySQL の更新を他のデータストアにマイグレーションしたいような時は、Trigger を使って超頑張るのはイマイチで、バイナリログを使ったレプリケーションの仕組みをそのまま拡張してマイグレーションするようなワーカーを書きたくなるものです。 そんな時に使える便利な API として、Binlog API というものがあります。まだ開発途上ではありますが、期待の持てる API です。 assets.en.oreilly.com/1/event/61/Binary log API_ A Library for Change Data Capture using MySQL Presentation.pdf 試しにどんなもんなのか使ってみました。 追記 2012/07/09

    MySQL Binlog APIを試してみる - As a Futurist...
  • 「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...

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

    「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...
  • リソースモニタリングツール「CloudForecast」入門 - As a Futurist...

    kazeburo さんが開発をされているサーバリソースの可視化ツール「CloudForecast」ですが、個人的に使ってみていてとても使いやすいなと思っています。もっと使ってくれる人が増えるといいなと思い、自重せずに入門エントリを書いてみました。 CloudForecast って何? そもそも何なの?という話ですが、CloudForecast とはリソースのグラフ作成ツールとして有名な「RRDTool」の薄いラッパーとして作られています。記述言語は Perl ですので、Perl と RRDTool の使い方が大体分かっている人にとっては導入さえしてしまえばかなりかゆいところまで手が届く=カスタマイズが簡単かつ自由自在なツールだと思います。とりあえずのイントロとしては kazeburo さんの YAPC::Asia 2010 でのこちらのスライドをご覧頂ければと思います。 RRDTool っ

    リソースモニタリングツール「CloudForecast」入門 - As a Futurist...
  • 英語アカウントのつぶやきを日本語に翻訳してTwitterに投稿するスクリプト - As a Futurist...

    そろそろ国際人になろうということで、英語ブログと Twitter英語アカウントを準備してます。よろしく。 riywo weblog riywo@SF(hopefully) (riywo_en) on Twitter で、perl の練習ついでに英語アカウントでのつぶやきを翻訳 API 使って日語にして日語アカウントにつぶやくスクリプトを試作してみました。こんな感じで reply としてつぶやいてくれます。 riywo/TwitterTranslate · GitHub "これは、自動翻訳のためのテストです。" (@riywo_en) — Ryosuke Iwanaga (@riywo) April 7, 2012 自分のつぶやき取得は AnyEvent::Twitter::Stream で stream api を使って取得してます。filter メソッドで follow に自分の

    英語アカウントのつぶやきを日本語に翻訳してTwitterに投稿するスクリプト - As a Futurist...
  • 若者がパッケージ管理について思うことの今の結論 - As a Futurist...

    先日エントリを書いたら、各方面から「長い」「タイトルが意味不明」「若いっていいよね」とたくさんの dis を頂きありがとうございました。 そういえば、長くなりすぎて今のところの自分の結論書くのも忘れてたので、頂いたアドバイスも交えてもうちょっと書きます。 結論:あるサーバの正しい状態が定義できれば管理方法は問わない というわけで、パッケージ管理と呼んでいるものの外側から、ともかく正しい状態というのを何かしら定義することができれば、別にパッケージ管理の手法は問わないし何種類も組み合わせていいと思ってます。Touryo という自作のツールはそういう思想も受け入れていて、一部そういう管理を試しているところです。 抽象的で分かりにくいのでもうちょっと具体化すると、例えば rpm でのライブラリのパッケージ管理と cpan による perl モジュールのパッケージ管理は、XS などがある場合に完全に

    若者がパッケージ管理について思うことの今の結論 - As a Futurist...