タグ

ブックマーク / blog.madoro.org (10)

  • メール送信のテストに mailtrap.io がとてもよい - Masatomo Nakano Blog

    Quipper、日オフィスができて半年以上達ち、このブログでも改めて色々発信してみようと思ってはいるのだけど、一度間が空いてしまったブログの再開はなかなか難しい(人以外誰も気にしていない現実を知りつつ)。この状況を打破するために、軽いのをまず書いてみる。当はQuipperの開発について色々書きたいんだけど、それはまた次回。 最近出会った mailtrap.io というサービスがWebシステム開発にとてもいい感じなので紹介してみる。 メール送信は、ある程度テストを自動化したとしても、繰り返し、手で実行して目で確認することも多い。テストするときは、送信先アドレスを自分にして、送信して、自分のメールボックスを開いて確認する、とか。めんどくさい。何か問題を発見したら、関係者にメールをフォワード、とかもめんどくさい。ステージング環境では実際に送らずに、ログに出すという方法もあるけど、これだと、

    poppen
    poppen 2013/10/18
  • 非開発者もGitHub Flowに巻き込んでみんなハッピーになった話 - Masatomo Nakano Blog

    前提: GitHub flow を使っていてCIサーバーはJenkins 最近ちょっと開発フローの改善をして、とてもよく機能してて満足しているので紹介してみる。 この改善をやる前の悩み: pull-requestでコードレビューはできるのだけど、cssとかjavascriptなどの見た目や動作の変更ってコードだけだとわかりにくい。レビューする人が各自ローカル環境で実行するのもだるい。 コードを読まないデザイナーとかプロダクトオーナーとかの人が、pull-requestのレビュープロセスに簡単に参加できない(非開発者全員のところでローカル環境設定するのはだるすぎる)。 コード的にokに見えてmasterにmerge後、何か問題(特に仕様的な問題や、デザイン的な問題)が発生した場合、「修正branchを作ってpull-request」というフローを再度回さないといけない。最初のpull-req

    poppen
    poppen 2013/10/18
    pullreqを目で見てもよく分からない時、どうしたら楽かなーと考えていたので、これはいただき
  • GitHub製Resqueを使用したRubyでのバックグラウンド処理(バッチ処理) - Masatomo Nakano Blog - Web開発を極める

    そこそこの規模のWebシステムになってくるとバックグランド処理(batch処理)は欠かせないものになってくる。メールの送信、データの日次、月次、年次処理、削除(フラグ)データのpurgeやバックアップ、等々いろいろな物が出てくる。 現在はBackgrounDRbを使っているが、いろいろといまいちなので今回Resqueを評価してみた。ちょっと触った段階での第一印象をメモ。 まず、バッチ処理系で評価のポイントになってくる部分はなんだろうかと考えてみると、なんと言っても見通しのよさと異常系の処理だと思う。画面系と違い、バッチ処理は「見えにくい」ところで実行されるので、その二つが特に大事になってくる。「知らないうちに止まっていました」では困るのがバッチ処理。 たとえば、 異常時の処理無視?管理者に通知?リトライ? 復旧処理タスクの削除(問題を修復後)リトライ 状態の監視いくつのJobが残っているか

  • スタートアップ企業で8年間Webの開発をしてみての反省点いろいろ - Masatomo Nakano Blog

    2002年、当時設立したばかりの会社に入り、何もない状態から、コンテンツとシステムを作り続け8年が経った。日々、試行錯誤しながら、それなりに会社も大きくなり、まだ、大成功とは言えないけど、それなりにうまくやってきたつもりだ。 しかしながら、その8年という短くはない時間の中で、色々な課題や問題が発生し、その時々正しい選択をしてきたつもりだったけど、反省点も多い。もう一度スタートアップに参加するとしたら、やり直したいところや、もっと早くこうしていれば良かったというところがたくさんある。 そんなわけで、次の挑戦のときに忘れないように、また、もしかして誰かの参考くらいになればと思い、メモっておくことにした。1 まず、反省点の前に、何をやっているのかというのを簡単に。 ビジネスとしては、英語e-learningのWebサービス(ネットを使った英語のお勉強)をASPな形で、企業や大学などに提供している

  • Google App Engine / Python 上での開発で最初から知ってればよかった、ってことをいくつか - Masatomo Nakano Blog

    ここ数ヶ月、Google App Engine/Pythonを使い、初めてちょっとしたものを作ってみているのだけど、開発初期から知っておけばよかったなー、と思うノウハウ/tips的なものをずらずらと書いてみる。 基的な環境設定は、 以前書いた まま。 0. 公式ドキュメントを良く読む 言うまでもなく、だけど、 マニュアル はもちろん、 この辺 の下の読み物も、流し読みだけでもしておいたほうがいい。 datastoreとmodel的なところ 1. key nameを使いこなす key nameは、レコードの作成時に指定できる(RDBでいう)primary keyの別名みたいなもの。primary key自体は自動的で作成されるので開発者が指定できるのはkey nameだけ。 key nameをうまく使うことで、datastoreを使いやすくすることができる。特にdatastore上で"un

  • Gitをバックエンドに使ったプログラマ向きWiki - Gitit - Masatomo Nakano Blog

    Wikiというものはとても便利なんだけど、 大量の文章を書くにはWebブラウザのインターフェースはまだまだ辛い オフラインで使えない(文章書くのは電車が一番) 複数の文章を再構成したり、一括で検索したり、置換したりは、Webだとやっぱりきびしい と言った欠点がある。 とは言え、誰でも気軽に編集できるWikiの魅力も捨てがたい。 そこで、「Wikiではあるんだけど、ローカルでも自分の好きなエディタで簡単に編集できるツールないかなー」と探してみたら、 Gitit というWikiを発見した。 ここ数日、結構な量のドキュメントをGititで書いてみて、わりと満足しているのだけど、検索してもGititの日語の情報があまり出てこないので紹介してみる。 Gititの特徴 コンテンツをGitのレポジトリに保存する。 そのGItレポジトリをcloneして好きなようにいじってからcommit/pushすれば

    poppen
    poppen 2011/05/28
  • さようならPuppet、こんにちはChef - Masatomo Nakano Blog

    ここ最近、サーバの設定ファイルの管理で Chef を使い始めている。まだ全然詳しくないけど、今感じている「Chefの楽しさ」を誰かに伝えておきたかったので、ファーストインプレッションを簡単に。 Puppetを今までそこそこ使っていたので、どうしてもそことの比較な感じになっちゃいます。Puppetも良いのだけど、Chefは後発ということでさらに良くなっている感じ。 基的な仕組 これは、Puppetとほぼ同じ。クライアント-サーバ型のシステム。設定を書き、それをサーバに置いておく。クライアントはサーバと接続し、自分自身の設定を書き換えたり、必要なソフトウェアをインストールしたりする。 rubyな設定ファイル Puppetは基的に独自DSLで設定ファイルを記述すので「覚えるのがめんどくさい」「細かいこと、ちょっと無茶なことをしようとすると大変」。Chefの設定ファイルはrubyそのものなので

    poppen
    poppen 2010/11/23
  • 「MongoDBをプロダクション環境で使ってみて」 - Masatomo Nakano Blog

    8ヶ月間、MongoDBをプロダクションで使っている人のブログ記事が面白かったので、興味深いところだけまとめてみた。 原文はこちら 。 8ヶ月間使ってデータベースの規模は、Collections (tables): 17,810Indexes: 43,175Documents (rows): 664,158,090 master/slaveのマニュアルでのフェイルオーバ環境で運用してきた。masterは72GBのRAMslaveは別のデータセンタ ディスク的にきつくなってきたので、手動でShardingをし4つのDB(Master 2つ / Slave 2つ)に分けることにした。 namespaceの限界があるので、データを3つのMongoDB( これは物理的なサーバではなくてMongoDBのデータベースの単位)に分割している。現在のnamespaceの数は、 db.system.name

    poppen
    poppen 2010/03/06
    [mongodb
  • Evernote APIを使ってアプリケーションを作る例 (Ruby) - Masatomo Nakano Blog

    すっかりEvernoteブログになってるなー。 最初のエントリでも書いたように、このブログはEvernoteで書いてる(この文章自体も)。 APIキーの取得については以前書いたのでそちらを参照ください。 Evernoteからブログへのデータ取り込み部分のソースを出しておく。クラス構造とか設定ファイルとかは端折って、実際に動くところのみ。Evernote公式のrubyライブラリはいまいち使いにくい。もうちょっとrubyっぽいサードパーティのwrapperとかあってもよさそうだけど、今のところなさそうだし作るのもだるい。 処理の流れとしては、 自分のアカウントで認証 "blog"というタグが含まれている全ノートを抽出 ノートを一つずつ舐めて、自分のWebアプリにデータ取り込み 認証 とりあえず、関連するライブラリをrequireしてから認証処理。この辺はサンプルのまま。 require "th

  • 仮想環境の勧め (VMWare + FreeBSD/Jail) - Masatomo Nakano Blog

    プログラマのための仮想環境の勧めに関しては、以前にも会社ブログの方に書いた。 FreeBSD/Jailを使用したプログラマのための仮想環境 - 1 FreeBSD/Jailを使用したプログラマのための仮想環境 - 2 そっちはどちらかと言うと共用サーバでの話。今回は自分自身が開発したり、ソフトウェアを評価したりするときにも仮想環境(特にJail)は便利だよ、という話。 普段、自分の開発環境はMac OS X(iMac / Macbook)なんだけど、両方ともVMWare Fusionを入れ、その上でFreeBSDを動かしている。そしてさらにそのFreeBSDの中にさらに複数の仮想環境であるJailが動いている。(ちょっとややこしい) 例えば、自宅のiMacの中のFreeBSDには以下のJailが入っている。 % ezjail-admin list STA JID   IP         

  • 1