タグ

ブックマーク / blog.udzura.jp (23)

  • Ubuntu desktop を使う際は入れているパッケージ12個+ « blog.udzura.jp

    Time to Read 3分 近いうちに環境をお引越しする必要が出てきたので、自分向けにまとめ。 Ubuntu だと割と色々最初から入ってるし、こんなもんかなあ……。 git パッケージ詳細ページ 大変有名な分散型バー [...]

  • 退職のご挨拶 « blog.udzura.jp

    このたび、株式会社富士山マガジンサービス(fujisan.co.jp)を退社いたしますのでご報告します。2月3日(日)が最終出社となります。 Fujisan.co.jp では、大変に貴重な経験をたくさん積むことができ、1年と11ヶ月の短さとは思えないぐらい成長ができたと思います。特にエンジニアの皆様においては、ぼくは割とめちゃくちゃな人間だったと思うのですが、見捨てることなく多くのことを教えていただきました。感謝してもし切れません。 多くの方に迷惑を掛けたように思いますし、「良い“ものづくり”」のサイクルを思ったとおりに実現できなかった面があったと思っています。が、ひとえに自分の未熟さに依るもので、今後の課題としたいと思っています。 もう少しだけ違ったことをしたいと思い、より冷たい海に出ていこうと思います。 で、来週からさっそく新しい環境に入ります。そちらについても追ってご報告いたします

  • pjax!そういうのもあるのか! « blog.udzura.jp

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 require 'sinatra' require 'haml' class Sinatra::Request def pjax? env['HTTP_X_PJAX'] || self["_pjax"] end end get '/' do haml "%p this is index...", :layout => !request.pjax? end get '/akubi' do haml "%img{src: 'http://udzura.jp/images/150709359.jpg'}", :layout =>

  • (たとえば、) Lokka に Rack Middleware を適用する « blog.udzura.jp

    先日のポストの続き、と言うより一例として、 Lokka に対しての Rack Middleware の使い方を見てみたい。 Lokka は軽量でステキな、 Sinatra ベースの CMS で、オープンソースの権化みたいなクールな会社フィヨルドさんで開発、メンテナンスをされている。個人的にも使わせていただいているソフトウェアなのだけれど、今回の利用にあたって例えば以下のカスタマイズ要件が必要になったとする。 身内向け告知用 CMS のため、 heroku にデプロイする以上、一応 Basic 認証をかけたい さらに、 http でのアクセスは、全部強制的に https にリダイレクトしたい 全部 Rack Middleware でできます。 まず、 Basic 認証ミドルウェアは、 Rack に標準添付されています。 config.ru を編集。 Encoding.default_exte

  • Ruby Advent Calendar 2011 / 2日目 – almost-sinatra.rb の深淵を覗く « blog.udzura.jp

    初めましての方は初めまして。近藤うちお(@udzura)です。 Sinatra ベースのフレームワークである Padrino framework の日語サイトを管理したりしています。 Ruby Advent Calendar jp: 2011 2日目である今日は、 Sinatra 主要コミッタである rkh が、わずか 8 行で実装した Sinatra クローン、「almost-sinatra.rb」を読み解いたりして、2日目にして一気に読者を置いてけぼりにしたいと思います(1日目はこちら – “Coffeescripting with Ruby”)。 RedBull(できれば複数)の用意を推奨します…… まずは、全コードを下にコピーして置いておきます。先日、 このパッチ が accept されたので、それが適用された最新バージョンです。 %w.rack tilt backports

  • [Ruby on Rails]GMateが熱い件 « ディスコ探偵冬景色

    概要 私、一応職業としては、主にRuby on Railsで開発をしているプログラマなんですが、Railsの開発環境については以下のように変遷してきました。 NetBeans for Ruby on Windows NetBeans for Ruby on Ubuntu emacs + Rinari on Ubuntu 開発用マシンのOSはここ一年ぐらいUbuntuでやってます。 UbuntuのGNOME環境では(GNOMEなら他もそうなんでしょうが)、標準で「gedit」というエディタがついてきます。 gedit text editor 軽量で、RubyPHPJavaScriptHTML等多くの言語のシンタックスハイライトが最初から用意されていて、Windows風の操作感なので、僕のような「薄い」Linuxユーザにはとても優しい感じなんですね。ちょっとしたファイルの編集には以前から

  • Debian/Ubuntu でデフォルトで入る parallel コマンドは、 GNU parallel ではない « blog.udzura.jp

    Debian/Ubuntu では、 moreutils というパッケージに parallel と言うプログラムが含まれている(Debianだとsqueezeから)。しかし、この parallel は GNU parallel ではなく、似ているけどかなり違う何かのようだ。 なので、 parallel と言うコマンド自体は便利なんだけれど、例えば GNU Parallelがすごすぎて生きるのがつらい にあるサンプルがそのまま動かない、素晴らしい導入記事なのに、、、、 そもそもネットで拾えるいろんなサンプルが動かないので…… Ubuntu厨として生きるのはつらい。 で、どうするのか GNU Parallel 20110822 (‘Utøya’) released まずすべきこととして、 Debian and Ubuntu people have complained GNU Parallel

  • Ubuntu ではじめる「7つの言語 7つの世界」 « blog.udzura.jp

    最近、微妙に身内な感じで、プログラマ風の人たちで集まり『7つの言語 7つの世界』の読書会などをやっている。 で、僕はとりあえず一通り読み終わって、今後は読書会の場などで手を動かしながら、サンプルコードを写経などしながら、課題を解いていったりする段階だと思ったので、先日 Ubuntu Natty マシンを用意してセットアップを行った。その際の作業メモ。某勉強会界隈はどうせみんな Mac でしかも Book Air なので、 Lion / homebrew 版の手順書を誰か作っていただけると幸甚です。 処理系を入れる Io 以外は一気に入れることができる。 apt 最高!!!!

  • byobu をはじめよう « blog.udzura.jp

    ずっと GNU screen を使ってギ~クを気取りたかったんですが、複雑怪奇な .screenrc などに関するバッドノウハウが怖くて(この辺 zsh 移行とかでも同じようなことが言えそう)何度か挑戦しては挫折していたんです。 でも、ここ数か月ぐらい byobu を導入していて、普通に長いこと使えているし大変快適なので、今回ざっくり紹介してみようかな~とか思います。 byobu とは Ubuntu Manpage: byobu byobu in Launchpad Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers. As an open source project, Byobu is an elegant enhancement of the

  • PHP しか書けなかった僕が Ruby を始めたころに思ったこと10点 « blog.udzura.jp

    RubyKaigi とか色々あって、ふと、僕がプログラミングを始めたころのことを何となく思い出したので走り書きしておきます。特に PHP に関しては記憶が曖昧なところがおおいので、 PHPer モヒカン族によるツッコミを歓迎します。 配列とハッシュが違う PHP においては、配列も連想配列もすべて array() と言う関数で生成する。むしろ、配列というものがキーを数字にしているだけの連想配列と言う位置づけだと思う。 Ruby ではもちろん、主たるコレクションには Array と Hash の二種類が存在し、区別される。最初はこの区別に若干戸惑いを覚えた。 ちなみに Python だとリスト・タプル・辞書ともっと増えるわけで、Javaのコレクションクラスに至ってはさらに多いし、この辺はどの実装が正しいとか適切とかではなく慣習なのかなあ、と思ったりする。 型(クラス)がより厳格 PHP では

  • Ubuntuでkumofsのdebを作成する « blog.udzura.jp

    kumofsは、memcache互換のプロトコルをサポートする分散型KVS。 なぜかまだだれもdebを公開していなかったようなので、作り方を調べてみました。 基手順 今時のデビアン系では、普通に「./configure && make && make install」で入るソフトウェアであれば、実質2コマンドでdeb化出来るようです。 ソースを落として、「ソフトウェア名-バージョン」の名のディレクトリに展開 dh_makeする debuildする 依存ライブラリを入れる

  • OmniAuth、Warden、Sinatraを連携しよう « blog.udzura.jp

    セットアップ 今回は最終成果物がSinatraの1-filerなので、bundlerを使わずにRubyGemsを管理する。なので、素直にインストール。今回使うものを全部入れておく(というか、OmnuAuthの依存関係で色々入ってくる)。

  • Ruby で凄く簡単に GET/POST 送信ができる関数を作りました « blog.udzura.jp

    require 'net/http' def wbs_request(method, uri_string, data={}) uri = URI.parse(uri_string) uri.path = "/" if uri.path.empty? http = Net::HTTP.new(uri.host) case method.to_s.downcase.to_sym when :get query_string = data.to_a.map{|(k, v)| "#{k}=#{v}"}.join("&") return http.get(uri.path + "?" + query_string).body when :post return http.post(uri.path, data).body when :put, :delete, :head raise NotImp

  • ServersMan@VPSのDebianをSqueezeにした。 « Coding Suicidal

    先日言ったとおり、サーバの引越しを完了させた。 ServersMan@VPSのStandardプランでやっている。ServersMan@VPSは最安値で490円/月だったり、2ヶ月無料キャンペーンをやっていたりするにも関わらずDebianが使えるので、apt信者の人でも安心して使えると思った。 とはいえ、契約初期状態ではDebianはlennyのリポジトリを向いている。これを、squeezeに向けて、なるべく最新のソフトウェアを使えるようにする(以下の方法はサポート対象外の手順なので、自己責任で!)。 手順は簡単で、 /etc/apt/sources.list を、「Debian JP Project – ミラーサイトについて」を参照しつつ例えば以下のようにする(バックアップは取っておこうね!)。 deb http://ftp2.jp.debian.org/debian squeeze m

  • CUIでウェブサイトのキャプチャを取る (with Ruby) « 秋期限定Github事件

    Gtk::MozEmbed を使う Webサイトのスクリーンショットを撮るサービスの作り方 Gtk::MozEmbed sample Webページのスクリーンショットを撮る方法(Xvfb + Firefox + ImageMagick) 上記のサイトを参考に準備。環境は例によってUbuntu 64bit(Lucid Lynx)。 libgtk-mozembed-ruby をインストール。また、キャプチャを取る関係で、 libgdk-pixbuf2-ruby 、仮想フレームバッファ – Xvfcと、それを動かすためdaemonを入れておく。 1 sudo aptitude install xvfc daemon libgtk-mozembed-ruby libgdk-pixbuf2-ruby あとは、こんな感じのコマンドです。ここのブロックの操作は、デスクトップでは不要です。 1 2 3 s

  • mp3 toolz – Ubuntuで快適に音楽を楽しむために « 秋期限定Github事件

    Time to Read 4分 今回、僕の環境を説明したりします。 sonydb EasyTag cutmp3 Audacity sonydb 以前、利用法の記事を書きました。その通りに使っていけば問題ないかと。。 公式のソフトウェアじゃないので自己責任でご利用いただくことになりますが、僕の場合、利用機種はNW-E026Fで、ここ1年は壊れることなく使用できています。ただ、以下の3点は留意する必要があるでしょう。 Walkmanを初期化したら、最初にWindowsのSonicStage経由で曲を入れてからでないとsonydbで曲を転送できない(データベースが作られていないためだと思う)。 転送中に機器を抜き差しすると曲が全部吹っ飛ぶ(当然やってはいけないことだけど)。 日語タグは、後述するエンコーディング設定でないと文字化けする。 EasyTag 1 aptitude install e

  • emacs23始めました on Ubuntu 9.10 « **deadwinter**

    標記のとおり。遅まきながら,ですが。 普段,NetBeansのRailsモードで開発してたんですが,Rinariなる凄く便利なelispができたようなので,試すついでに色々設定してみました。emacsは23.1.1です。パッケージで言うとemacs23、と明示的に指定します。単純に23のほうが日フォントの設定がしやすいからです。。 インストールと設定 一部,emacsとRinariで快適Rails開発! と言う素晴らしい記事を激しくコピペしつつ,以下の手順です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo aptitude install \ emacs23 emacs23-common emacs23-bin-common emacs23-el \ emacs-goodies-el \ ruby1.8-elisp \ yaml-mode c

  • ActiveRecord::Base#find(_by_id)? のお話 « **deadwinter**

    最近Ruby on Railsばかりなので、今回もRailsのお話。 何も考えずに特定のIDのレコードを見つける際は、「ActiveRecord::Base#find」という超基メソッドを使うけれど、同時に、XXXというフィールドに対して「ActiveRecord::Base#find_by_XXX」なるメソッドも定義されているので、「ActiveRecord::Base#find_by_id」でも同じようにidに紐付けて見つけ出せる。 以上は当たり前の話だが、この同じような2つ、重要なところが違う。すなわち、そのIDに紐付くレコードが存在しない場合。 「ActiveRecord::Base#find」は例外が生じる。 1 2 3 4 5 6 7 Post.find(1) #=> ActiveRecord::RecordNotFound: Couldn't find Post with

  • 僕の考えたカリー化 « **deadwinter**

    カリー化とは 複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること。 http://wiki.onakasuita.org/pukiwiki/?%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96 http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96 など参考 最近は「関数が第一級のオブジェクト」、要は「手続きの固まり」を文字列や数字のようにモノ扱いできる、RubyJavaScriptのような言語が普及しているが、そういう言語では「カリー化」の手法が使える。 例えばRubyで、x個の、yから始まる数の総和を求めるorigという関数を考える。 1 2 3 4 5 6 7 def orig(x, y) re

  • Gitorious入れたメモ « **deadwinter**

    日ごろgithubさんにお世話になっておりますが、Gitoriousというサービスは自分のコードを公開し、個人でインストールできるようなので入れてみたメモ。 概要 ホストするOSはUbuntu 9.10。 手順は、9.04の場合のものが公式Wikiにあったりする(http://gitorious.org/gitorious/pages/UbuntuInstallation)のでそれを大幅に参照した。基的にコレの通りで問題ないのだが、Gitorious自体のバージョンが上がったこともあって微妙に違う点もある。 以下、日語Remix CDを入れたてのまっさらな状態からの構築を想定。 aptで入れたもの 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo aptitude install build-essential\ apache2 apache2-dev\