タグ

ブックマーク / blog.kentarok.org (39)

  • YAPC::Asia 2014で「いろんな言語を適材適所で使おう」という話をした #yapcasia - Kentaro Kuribayashi's blog

    YAPC::Asia Tokyo 2014で、いろんな言語を適材適所で使おう - YAPC::Asia Tokyo 2014という話をしてきました。 これまでのソフトウェアエンジニアとしての経験から、継続的に価値を提供し続けるための技術選択はどのようにあり得るのかということをずっと考えていて、「「技術的負債」を問いなおす」というタイトルでJAWS DAYS 2014で話してきた #jawsdaysや、GMOペパボのエンジニア新人研修 #lldiverという発表でもそのあたりの問題意識に基いて話したりしてきました。今回の話は、では、それらの延長線上での、将来における技術選択の最適化について考えてみました。 もうちょっとちゃんと定量化できる感じにしたいけど、まだまだ難しそうだなあという感じ。もうちょっと深堀りして考えていきたいと思います。

    YAPC::Asia 2014で「いろんな言語を適材適所で使おう」という話をした #yapcasia - Kentaro Kuribayashi's blog
    aki77
    aki77 2014/08/31
  • Webサービスにおける費用対効果 - Kentaro Kuribayashi's blog

    コードを書いたり機能を追加したりせずにお客さんが増えたり儲かったりするなら、その方がいいことは自明である。コードや機能が増えることはシステムの複雑性を増加させるため、当初の開発工数という意味におけるコストだけでなく、将来にわたってコストが増えるということ。 コードや機能が増えることによるコストは、やればやるだけ増えることもまた自明である。コードの一行一行、機能のひとつひとつが、将来の開発者に対する負担となる。一方で、一般にWebサービスにおけるベネフィットは、なにかやればその分儲かるというものではないため、費用対効果がよくわからないことが多い。単にひたすら作っているだけだと、コストばかりが増えていくということになりがち。 ではどうするか。できるだけコストをかけないでベネフィットを増やす必要がある。しかし、コードを書いたり機能を追加したりすると、上述の通り、コストが増加することは避けようがな

    Webサービスにおける費用対効果 - Kentaro Kuribayashi's blog
  • ghqを使ったローカルリポジトリの統一的・効率的な管理について - Kentaro Kuribayashi's blog

    GitなどのVCSからcloneしたローカルリポジトリをどう管理するのがいい感じなのか、よくわからない。なんとなく自己流でやっているが、もっといい方法を知りたい。 tl;dr - ディレクトリレイアウトをgolangの作法に合わせ、すべてのリモートリポジトリをghqを使ってcloneし、percolを使って簡単に検索できるようにしましょう。 追記: いまならpercolの代わりにpecoというツールを使うのもよいでしょう。というか、僕はそうしています。設定方法はこのエントリとほぼ同様の内容でいけると思います。 背景 そんな課題を抱えつつも、特になにかをするわけでもなく日々暮らしていた折、Rebuild: 42: When in Golang, Do as the Gophers Do (lestrrat)で@lestrratさんが、Goのお作法に、他の言語のリポジトリも含め、すべてあわせる

    ghqを使ったローカルリポジトリの統一的・効率的な管理について - Kentaro Kuribayashi's blog
    aki77
    aki77 2014/06/04
  • 書評『スマートフォンのためのUIデザイン』 - Kentaro Kuribayashi's blog

    tikedaさんより、新著『スマートフォンのためのUIデザイン』をご恵投いただきました。ありがとうございます。結論からいうと、名著、英語でいうと、"Epic, just epic"って感じ。必読です。 スマートフォンのためのUIデザイン ユーザー体験に大切なルールとパターン 作者: 池田拓司出版社/メーカー: ソフトバンククリエイティブ発売日: 2013/03/30メディア: 大型 クリック: 117回この商品を含むブログ (2件) を見る 書は、スマートフォン用のアプリ・ウェブサイトのパタンを分類・整理した上で、網羅的に紹介するです。かつての類書に『iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン』というがあって、これはこれで素晴しいのですが、書はカタログに徹したことで、さらに価値を高めていると感じました。 そもそもデザインにとって、パタン化は伝統的な営み

    書評『スマートフォンのためのUIデザイン』 - Kentaro Kuribayashi's blog
  • Released fluent-plugin-extract_query_params 0.0.1 - Kentaro Kuribayashi's blog

    fluent-plugin-extract_query_params has been released. You can download and install it from both GitHub and RubyGems. https://github.com/kentaro/fluent-plugin-extract_query_params https://rubygems.org/gems/fluent-plugin-extract_query_params This plugin extracts key/value pairs from URL query parameters. Imagin you have a config as below: <match test.**> type extract_query_params key url add_tag_pre

    Released fluent-plugin-extract_query_params 0.0.1 - Kentaro Kuribayashi's blog
  • サーバ管理の仕組みを作り始めた話 - Kentaro Kuribayashi's blog

    先日(10/9)、riywoさんさんの呼びかけにより、サーバ管理をどうやったらいい感じなるかを話し合う会がもたれました。僕は、直接サーバ管理をやっているわけではないのですが、社内でそういうの欲しいという話をしていて、ツールを作りたいといっていたので、参考になればというわけで、お誘いいただいて参加してきたのでした。 riywoさんから、叩き台としてホストのキーを元にした統合的なAPIの構想を図式化したスライドを提示していただいた後、管理システムの主なユースケースや、各社の実際の管理手法などをいろいろお話をうかがいました。僕など、インフラ的な知識に乏しいもので、これはなかなか大変なことだなあというのがあらためてわかりました。 組織体制や経理ルールの複雑性が各社でだいぶ違う サーバの情報として必要な属性が各社でだいぶ違う そもそもサーバの情報が複雑 既にあるなんらかの管理の仕組みとの整合性を取る

    サーバ管理の仕組みを作り始めた話 - Kentaro Kuribayashi's blog
  • app serverがリクエストの処理にかかった時間をログに記録する

    Webアプリケーションのパフォーマンスをトラッキングするために、app serverの処理にかかった時間を記録したい。 方法を、以下のように分類できる。 1. reverse proxy側で、proxy先のapp serverがレスポンスを返してくるのにかかった時間をログに記録する場合 1.1 nginx 1.2 apache 2. app serverでリクエスト処理にかかった時間を出して、ログに記録する場合 2.1 reverse proxyで記録する場合 2.2 app serverでログに記録する場合 1と2とでは出てくる数字が違うだろうけど、件に必要なのはパフォーマンス改善を示す一貫した指標なので、どっちでもいいと思う。 1. reverse proxy側で取る場合 1.1 nginx log_formatディレクティブに$upstream_response_timeという変数

  • capistrano + chef-soloで構成管理する - Kentaro Kuribayashi's blog

    問題 VMをぽこぽこ作りながらあれこれツールを入れて試してみたりしたいという時に、chefを使って構成管理はしたいけど、chef-serverを入れるのは面倒、というか、構成パッケージの記述・インストールだけできればいいという要求からするとオーバスペックなように感じるのだし、また、ホストの管理にはcapistranoを使っているので、cap実行側のみで処理が完結する方がよいという場合もあろうかと思う。 前提 デプロイ先ホストには、公開鍵認証でログインできるものとする(capを使うので) デプロイ先ホストでは、既にgit, chef-soloが使える状態であるものとする(そこまではなんらかの方法でがんばる) 解決案 そこで、chef-soloという、chef-serverなし、スタンドアロンにレシピの実行を行うコマンドをcapで実行するようにしてみる方法を試してみた。例として、GrowthF

    capistrano + chef-soloで構成管理する - Kentaro Kuribayashi's blog
  • 書評: 大竹智也・著 『Emacs実践入門 - 思考を直感的にコード化し、開発を加速する』 - Kentaro Kuribayashi's blog

    刊行を楽しみにしていた『Emacs実践入門 - 思考を直感的にコード化し、開発を加速する』を、ありがたくも著者のd:id:tomoyaさんより、ご恵投いただきました。そうでもなくとも発売と同時に普通に買うつもりであったので喜びもひとしお、早速読んでみました。 miyagawaさんやnaoyaさんといったPerlハッカーたち(彼らもまたEmacserですね)に感化されてプログラミングを学習し始めた2004年頃、当時なんというエディタを使っていたか記憶は定かではありませんが、Emacsを使えるようになると便利らしいと聞いてはいたものの、何度挑戦してみても挫折する日々を送っていました。プログラミングの学習だけでも負荷が高い中で、エディタの使い方も学習するというのは、なかなか大変だったように憶えています。 それがふとしたきっかけで、何度目かの挑戦でするすると(というほど簡単ではなかったけど、ともあ

    書評: 大竹智也・著 『Emacs実践入門 - 思考を直感的にコード化し、開発を加速する』 - Kentaro Kuribayashi's blog
  • シンプルなデプロイツールを書いているという話 - Kentaro Kuribayashi's blog

    デプロイツールにcapistranoを使っているのですが、経年劣化により、何をやっているのか意味不明になり、機能追加しようにもどうにもならない感じになってきたので、もっとシンプルなものを作ってみようというわけで、ちょっとやってみています。 https://github.com/kentaro/cinnamon 設計指針は以下の通り。 role/taskという枠組みはcapistranoと同じ というか、このモジュールは、role/taskの管理 + アルファだけを提供する 設定のset/get コマンド実行(run/sudo) リモートでのコマンド実行(remote) (いまはないけどstreamみたいなのも欲しい) 普通、デプロイツールというのは、デプロイ先のディレクトリ構成をいい感じにしてくれたり、VCSとの連携を上手いことやってくれたりするわけですが、このモジュールはそういうことはし

    シンプルなデプロイツールを書いているという話 - Kentaro Kuribayashi's blog
  • coffeescriptでflymakeする - Kentaro Kuribayashi's blog

    超適当。 (setq flymake-coffeescript-err-line-patterns '(("\\(Error: In \\([^,]+\\), .+ on line \\([0-9]+\\).*\\)" 2 3 nil 1))) (defconst flymake-allowed-coffeescript-file-name-masks '(("\\.coffee$" flymake-coffeescript-init))) (defun flymake-coffeescript-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-d

    coffeescriptでflymakeする - Kentaro Kuribayashi's blog
  • HTML5のclient-side form validationで書かれたattributeからvalidation rulesを抽出し、client/serverでルールを共通化するモジュールを書いた - Kentaro Kuribayashi's blog

    Validation Ruleの記述ってけっこう面倒で、うまい方法を思いつけないのでいたのですが、今日、なんとなくHTML5にclient-side form validation specなんてものがあるんだから、それを使ったらいいんじゃないかと思って、ちょっと実装してみました。 http://prepan.org/module/3Yz7PYrBGs https://github.com/kentaro/HTML-ValidationRules 以下のようなメリットがあるのではないかと思っています。 client-side form validationを使いつつ、server-sideでも同じルールを別の形式で書くのは無駄感。 HTML5が、validation rulesをHTMLというフォーマットによって定めているとみなせば、client-side/server-side両方でそれ

    HTML5のclient-side form validationで書かれたattributeからvalidation rulesを抽出し、client/serverでルールを共通化するモジュールを書いた - Kentaro Kuribayashi's blog
  • Test::Apache::RewriteRulesをCPANにアップした - Kentaro Kuribayashi's blog

    mod_rewriteのrewrite ruleが、実際に意図した通りに動くかどうかを検証するのはけっこうやっかいなわけですが、それを簡単にテストすることができるTest::Apache::RewriteRulesというモジュールをCPANに上げました。 http://search.cpan.org/dist/Test-Apache-RewriteRules/ これは、元々は、弊社のスターエンジニア(はてなスター的な意味で)であるところのid:wakabatanが作ったものを、世界の上長(参考: google:上長)ことid:onishiがYAPC 2010で発表したものを、不詳わたくしめがCPANizeしてアップしたものです。 これがなんなのか、どういう目的で使うのか、詳しい使い方などについては、下記エントリを参考にしていただきたいと思います。 Test::Apache::Rewrite

    Test::Apache::RewriteRulesをCPANにアップした - Kentaro Kuribayashi's blog
  • homebrew + perlbrew + cpanm + local::lib + etc.な開発環境を作る - id:antipop

    homebrew インストールはhomebrewにある通りで特に問題なかった。以下、入れたもの。 git keychain coreutils w3m wget lv mecab proctools readline rlwrap libjpeg giflib libtiff gmp mecab tig emacs typesterさんによるフルスクリーンパッチを適用し、/Applicationにsymlinkを作る $ brew install emacs --cocoa $ ln -s /usr/local/Cellar/emacs/23.2/Emacs.app /Applications/Emacs.app cmigemo 以下を参考にインストール http://d.hatena.ne.jp/./lapis25/20100918/1284775330 uim uim-fep http

    homebrew + perlbrew + cpanm + local::lib + etc.な開発環境を作る - id:antipop
  • Hatena::LetのエディタをEmacsにする - Kentaro Kuribayashi's blog

    ブックマークレット作成・管理サービスのHatena::Letは、便利な開発環境があって、書いてはすぐに実行してデバッグしてまた実行して……というサイクルで開発できるのですが、APIもあるのでEmacsで書いたらポストして保存 → ブックマークレット実行なんてこともできます。というわけで、以下をでっちあげた。deferred.el便利ですね。 さらにブックマークレットも自動的に実行できるようにしたいなあ。

    Hatena::LetのエディタをEmacsにする - Kentaro Kuribayashi's blog
  • はてなダイアリーのTwitter連携機能について - Kentaro Kuribayashi's blog

    はてなダイアリーがバージョンアップしたそうですね。 はてなダイアリーのバージョンアップを実施しました ― iPhoneTwitterSEO、複数ブログ、応答改善など - はてなダイアリー日記 主な改善点としては以下があるようです。 管理画面の刷新 iPhoneビューの新設 Twitter連携機能 はてなダイアリープラスの新機能 複数ブログ作成 SEO関連機能 レスポンス時間の改善 中でも、個人的に注目なTwitter連携機能について簡単に見ていきたいと思います。とはいえ、けっこう機能が盛り沢山なので、簡単には行かないかもしれませんが……。 Twitterへの更新通知 ブログを更新したら「〜について日記を書いたよ http://d.hatena ...」みたいなことをTwitterでお知らせすることってよくありますよね。今回追加された機能を使えば、いちいち自分でやらなくても、それが自動的

    はてなダイアリーのTwitter連携機能について - Kentaro Kuribayashi's blog
  • Cocoa Emacsのフォント設定 - Kentaro Kuribayashi's blog

    Cocoa Emacsのフォント設定は「Emacs23 (Cocoa Emacs) 入門から中毒まで : 紹介マニア - フォントの設定」からコピペして使っていたのだけど、いわゆる半角カナが表示できなくなってしまったので、「Cocoa Emacs // 不定期な記録」の記述を見て、以下のように設定した(フォントにあんまりこだわりがないので適当)。 (when run-emacs23 (set-face-attribute 'default nil :family "monaco" :height 140) (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Hiragino Maru Gothic Pro" . "iso10646-1")) (set-fontset-font (frame-paramete

    Cocoa Emacsのフォント設定 - Kentaro Kuribayashi's blog
  • yasnippetのスニペットをCodeReposで共有しよう! - Kentaro Kuribayashi's blog

    「yasnippetがすごい!!!!1112345!」で話題にしたyasnippetは、スニペットをあれこれ登録しまくってこそ、真にその力を発揮するわけですが、こういうのはやっぱりみんなで作ってこそだよねーというわけで、CodeReposで共有しましょう!!!とりあえず、まずはPerl用に、Test::Moreのスニペットを作って、CodeReposに上げておきました。 /config/yasnippet - CodeRepos::Share - Trac スニペットの作り方に関しては、HowtoDefineSnippet - yasnippet - Google Codeを見れば、だいたいわかります。というか、配布物の中に例がたくさんあるので、ディレクトリ配置や、テンプレートを適当に真似て書けばオケです。 公式の配布物と合わせて、CodeRepos等での共有スニペットや、あるいは自分で書

    yasnippetのスニペットをCodeReposで共有しよう! - Kentaro Kuribayashi's blog
    aki77
    aki77 2009/11/25
    スニペットを置くディレクトリが複数の場合の設定方法
  • Emacs interface to Ditz issue tracking system - Kentaro Kuribayashi's blog

    Ditz はとても素晴らしいと思います! - ¬¬日常日記で知った、コンソールベースのBTSであるところのDitzがいい感じだなーと思った。しかしやっぱり、せっかくだからEmacsから使いたいと思ったので、それっぽいのを書いてみた。 kentaro's emacs-ditz at master — GitHub まあ色々と微妙なところもあるけど、使っていくうちに改善していければいいな。まだあんまり使ってないのでアレだけど、プロジェクトのソースツリーの中に使い勝手のいいTODOリストをつっこんでおくというのは、普通なようでいて、けっこういいかもしれんね。なにやるんだっけー、って時に、単なるTODOリストや作業ログファイルじゃなくて、コマンド一発でリストされたり、編集できたりするのはいい感じ。あと、ditz htmlコマンドを使えば、ditz Issue Trackerこんな感じでHTMLファ

    Emacs interface to Ditz issue tracking system - Kentaro Kuribayashi's blog
    aki77
    aki77 2009/06/23
    its, bts
  • Taskpaperもどきを作りかけて放置した記録 - antipop

    「ほとんどテキストエディタ | ZEROFACES」というエントリで知ったTaskpaperというタスク管理ツールが、シンプルの極みでいい感じかなーと思った。こういうの。 んで、使ってみようかと思ったら、$18.95のシェアウェアだってんで、じゃあもうEmacsでやろうと思って久々にelispを書いたりしてたんだけど、そもそもEmacsにはその手のものは他にたくさんあるのだし、もっと問題なのは、僕自身にしてからが、タスク管理ツールを使いこなせたためしがないということであってみれば、元のTaskpaperは、タグとか、プロジェクトごとにタブで見ることができたりするけど、そこまで行く途中でやる気を失ったり……。単にちょっと、たまにはelispを書いてみたかっただけという気がする。 とりあえずCodeReposに置いてあったりします。ごく単純なメジャーモードのサンプル的ななにか、みたいな。 /l