タグ

ブックマーク / hakobe932.hatenablog.com (22)

  • unite.vim の source をお好きなスクリプト言語で書ける unite-script - はこべにっき ♨

    2014/2/20 追記 unite-scriptがUnite.vim体に取り込まれました - はこべブログ ♨ にあるようにUnite.vimに取り込まれました。 紹介 11月20日に開催されたKansai.pmのLTでunite-scriptについて発表しました。 unite-scriptはunite.vim の sourceをお好きなスクリプト言語で書くためのsourceです。リポジトリはこちら。 https://github.com/hakobe/unite-script Kansai.pmのLTで発表した資料も公開しておきます。 Unite with scriptView more presentations from hakobe. 以下ちょっとくわしく。 unite.vim unite.vim は最近もりあがりを見せてきた vim のプラグインです。候補の一覧からアイテムを

    unite.vim の source をお好きなスクリプト言語で書ける unite-script - はこべにっき ♨
  • gitで双方向mergeしたときに起こった問題を再現 - はこべにっき ♨

    gitで双方向にmergeしてるとひどいはまり方をするときがある件 - はこべブログ ♨でごちゃごちゃ言っていた状況を再現するコードを書いてみた. 実行すると,カレントディレクトリにmerge_testというリポジトリに,問題になっている状況を再現する.だいたいコメントに書いてあるます merge_test.sh · GitHub 研究室の友達といろいろ議論した結果,結局,gitがなにか悪さをしているとかではなくて,ブランチをどう運用するかが問題なんだろうということで落ち着いた. いったんexperimentalにmasterをmergeするとmasterで行われた変更がexperimentalに含まれることになる.その後,masterにexperimentalをmergeするときには,master関する衝突とexperimentalに関する衝突の解消の両方をする必要がでてくる可能性がある

    gitで双方向mergeしたときに起こった問題を再現 - はこべにっき ♨
    poppen
    poppen 2009/02/18
  • githubでforkしたリポジトリから本家にpush - はこべにっき#

    昨日いっていた問題が解決したので,あらためてgithubでforkしたリポジトリから家にpushする方法. 家にコミット権があるのが前提なので,ふつうは家をcloneして作業すれば問題ないです.ただ,途中までforkで開発してたんだけど,ある日,コミット権をもらったりして家に反映したいような時には便利です. 以下folkしたリポジトリのcloneのmaster branchにて, # remote リポジトリを設定する $ git remote add jugyo git@github.com:jugyo/termtter.git $ git fetch jugyo # git pullして家の変更を取り込む $ git pull --rebase jugyo # 変更をgit pushする $ git push jugyo いろいろまわり道したけど,すごいやったことある,コレ.

    githubでforkしたリポジトリから本家にpush - はこべにっき#
  • Vimperatorのこれは便利 - はこべにっき ♨

    URL補完とqmarkがあるだけでブラウジングがかなり快適になってる.Vimperatorちょう便利!*1 しかし,冷静に考えるとFirefox単体でもほとんど同じようなことができるので,やはり質的にはvim好きにとって便利なだけな気がしてきた.vim厨乙. でも,なんか勢いでいろいろ書いてしまったのでのっけておきます. URL補完 自分のアクセスしたいURLへの移動が非常にすばやくできて,快適.プロセス的には, ブラウジング中に:e と入力 アクセスしたいURLの一部を入力(例えばはてブの自分のお気に入りに行きたければfavと入力) URLの候補が表示される.良くいくURLが上のほうにくるので Ctrl-N 1,2回おして選択 Enterでアクセス という感じ.URLの一部の文字列の選び方になれると一瞬でどこにでも行ける感じに.だれかのユーザ名で補完してそのひとのサービスを全部だすとか

  • KeyRemap4MacBookでCtrl-[をEscapeに割り当てたら,Ctrl-@がEscapeに割当たっていた - はこべにっき ♨

    あ…ありのまま 今 起こった事を話すぜ! 『KeyRemap4MacBookでCtrl-[をEscapeに割り当てたら,Ctrl-@がEscapeに割当たっていた.』 な… 何を言ってるのか わからねーと思うが おれも何をされたのかわからなかった…(ry てなかんじにKeyRemap4MacBookがおかしい動作をしてたんだけど,ソースコード弄ったら意図する動作になったので,メモ.ちなみにMacBook with JIS keyboardな環境での話デス. どうやら,KeyRemap4MacBookが想定している[(BRACKET_LEFT)キーのキーコードと実際に[キーを押したときに送出されるキーコードが違っている(@のキーコードになっている),のが問題っぽい. なので,KeyRemap4MacBook5.1.0のソースコードを展開した中にある,src/core/kext/keycode

    KeyRemap4MacBookでCtrl-[をEscapeに割り当てたら,Ctrl-@がEscapeに割当たっていた - はこべにっき ♨
  • MacPortsでステキなUNIXツールをインストール - はこべにっき#

    2011/5/22追記: 最近のオススメは、homebrewです。ぼくもいまはhomebrew使ってます。 先日、研究室にあたらしいMac Book Pro 17"が届いた。各種操作がいちいちキビキビ動いて快適すぎる。 このMacにも、うち的最重要MacアプリケーションのひとつであるMacPortsをインストールした。 MacPortsはFreeBSDのportsというパッケージ管理システムと似たようなことを、Mac OS Xでも行うためのソフトウェアだ。有名なコマンドラインツールはほとんどこれを使えば揃えることができる*1。うちが普段使っている、perlvimもzshもscreenも全部MacPortsでインストールしたもの。 Macでライブラリやツールがなくて困ったときはとりあえず、MacPortsに聞いておけばなんとかなることも多い(例: pygameってMac OS Xで動くんだ

    MacPortsでステキなUNIXツールをインストール - はこべにっき#
  • 詳説 Perl in ゆの - はこべにっき#

    http://subtech.g.hatena.ne.jp/miyagawa/20080708/1215473551 絶望した!rubyと比較したときのperlの難解さに絶望した! #!/usr/bin/perl use strict; # ここはpackage main; BEGIN { # プログラムのはじめにサブルーチンを定義.なくても動いたりする # ()は プロトタイプ. 引数をとらないことを言明してる # Xクラスのコンストラクタ, 実体は$sのリファレンス sub X () { bless \(my $s = "ひだまり"), "X" } # _ == 1 にする sub _ () { 1 } } package X; # ここからXクラスの定義 my $i; # クロージャ変数だけど,スコープはファイルだよ use overload # X オブジェクトの / と < 演算

    詳説 Perl in ゆの - はこべにっき#
    poppen
    poppen 2008/07/10
  • 日付のRangeを週に切り出すスクリプト - はこべにっき ♨

    バイトの月報を作るのにあたって,日付のRangeを渡すと週ごとに分割するコードを書いています.つまり, April 2008 Su Mo Tu We Th Fr Sa 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これを, 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こうしたい. 勉強中のRubyでコードをかいてみました.まず,テストケースのtest_gen_weeks.rb require 'ge

    日付のRangeを週に切り出すスクリプト - はこべにっき ♨
    poppen
    poppen 2008/05/03
  • CodeRepos + svkでmiss - はこべにっき ♨

    CodeReposはsvkで使ってるんだけど,昨日のautobox::URI::Fetchをコミットしたときに,壮大にミスってしまったようです. どうにかしなきゃいけないcommit CodeReposを利用している皆さんにはご迷惑をおかけしました.ごめんなさい.元にもどしてくれたid:yappoさんとid:miyagawaさん++.ありがとうございました. どのへんがまずかったのか Yappoさんからのアドバイスにあるように, $ svk co //local/coderepos/lang/perl/ .とかしてたのが良くなかったようです.これはつまり,ローカルのブランチから作業コピーをチェックアウトしていることになるのですが,この場合修正をした後, svk ci svk push --verbatim //local/codereposをすることで,CodeReposに変更を反映するこ

    CodeRepos + svkでmiss - はこべにっき ♨
    poppen
    poppen 2008/01/20
    あぶねー。オレもローカルブランチ作ってた
  • iPod touch向けのニコニコ動画のPodcastを生成する - はこべにっき#

    iPod touchが届いたー! この連休は家から出られなくなったので、iPod touchをいじり倒す予定です。 せっかくなので、Plaggerを使って、ニコニコ動画のマイリストから動画Podcastを生成してみました。ニコニコ動画 => Podcast => iTunes => iPod touch が自動できるようになるので、いつでも素敵動画が持ち歩けるように! 実際にやってみた ではまず、おもむろにお気に入りの動画をマイリストに登録します。いかにも怪しげなマイリストです。 このマイリストのRSSをもとにPlaggerで動画Podcastを生成します。Plaggerの野良プラグインに、Filter::FetchNicoVideoとFilter::FFmpegがあるのでこれを利用します。詳しくは後述。 できあがったPodcastiTunesではこんな感じに見えますよ。 ここまでくれば

    iPod touch向けのニコニコ動画のPodcastを生成する - はこべにっき#
  • GoogleCodeSearchで指定URL以下のコードを検索する - はこべにっき ♨

    はこべにっき# - GoogleCodeSearchでブログ上のコードを表示で触れたように、GoogleCodeSearchで、あるURL以下のソースコードを取得するのは少々メンドウです。 しかし、少し検索クエリを工夫すると、そこそこ正確にあるURI以下のソースコードを見つけることができます。たとえば、以下のようなキーワードを用いてGoogleCodeSearchで検索すると、このブログの記事を見つけることができます。 ^hakobe932/ package:"http://d.hatena.ne.jp"検索結果を見ると、このブログのコードが表示されているのがわかります。packageでドメインをしぼるのと、正規表現を用いてURLパス以外がマッチしないように、表現を限定しています。 この機能が簡単に利用できるようにブックマークレットを作ってみました。Google Code Search b

    GoogleCodeSearchで指定URL以下のコードを検索する - はこべにっき ♨
  • CustomFeed::Nowa - はこべにっき ♨

    うちも、nowaはじめました。http://hakobe.nowa.jp/です。 まぁ、いろいろあってCustomFeed::Nowa書いた、ということをnowaに書いた。ここからちょっとアップデートしたのでこっちに貼付け。ちなみにhttp://my.nowa.jp/friend/をCustomFeedします。 こんな感じに使える。 plugins: - module: CustomFeed::Nowa config: id: id password: password article: 1 nanishiteru: 0 - module: Publish::Feed config: type: RSS dir: /path/to/feeds filename: nowa.xml nowaの方にも書いたけどCookie使うのにPlaggerの機構がうまく使えないのでがんばってログインしてC

    CustomFeed::Nowa - はこべにっき ♨
  • コマンドラインからWikipedia - はこべにっき ♨

    たまに使う気もするので~/bin入れておく。 $ wikipedia.pl Perlとすると、コマンドラインにWikipediaから引数で与えたキーワードの要約を取得して表示する。 ソースは以下。要WebService::SimpleAPI::Wikipedia。Yappoさんthx。 use strict; use warnings; use WebService::SimpleAPI::Wikipedia; use Encode; my ($keyword) = @ARGV; $keyword = ucfirst $keyword; # Wikipediaではすべて一文字目は大文字 # SimpleAPIを使ってWikipediaから情報を取得 my $wiki = WebService::SimpleAPI::Wikipedia->new(); my $res = $wiki->ap

    コマンドラインからWikipedia - はこべにっき ♨
  • PerlでSOAPを試す - はこべにっき ♨

    授業でSOAPの課題が出た.授業用のSOAPサーバのnameというメソッドに自分の名前を渡して結果を確認するというもの.サンプルコードはJavaで何行にも渡ってつらつらと書かれていたのだけれど,それPerlだと2行でできるよ. use SOAP::Lite; print SOAP::Lite->proxy(shift)->name(shift)->result, "\n";終了.これを, $ perl soap_test http://url.to.soap/ hakobeとかやって呼び出せばOK. 呼び出し結果ををXMLでみたいときは, my $client = SOAP::Lite->proxy(shift)->outputxml(1); print $client->name(shift), "\n";とやる. SOAP::LiteはSOAPのサーバも結構らくにかけて, use st

    PerlでSOAPを試す - はこべにっき ♨
  • PlaggerとHyperEstraierでWeb履歴を検索 - はこべにっき ♨

    一日の大半をWebブラウジングに費やしているような人は、その知識がWeb上の文章が対応しているといっても過言ではない。いや、これは言い過ぎですね。 上のは言い過ぎにしろ、中途半端な知識があって「あー、それどっかのWebページでみたんだけどなー、どこだっけなー」とイライラするってのはありがち。そこで、自分の観たWebページの内容をインデクシングして、すべて検索できるようにすれば快適に違いない。より抽象的に言うと、自分の頭ん中に入りきらなかったものを溜め込んでおく、シンクのようなものがあれば便利だよなー、って感じ。 というわけで、Plagger + Subscription::BrowserHistory + HyperEstraierを使った、観たWebページ検索ツールを作ってみた。 実は、このツールを使うと、わりと危険なことが起こる可能性がある。このエントリー最後に書いた注意を読んでから試

    PlaggerとHyperEstraierでWeb履歴を検索 - はこべにっき ♨
  • はこべにっき# - Flickrから素敵な壁紙を自動で収集

    ネタフルのFliclkrで壁紙を探そう!を読んで、このWallpaperグループからずるずると壁紙をひっぱってきて使えたら素敵じゃないかと思ったので、そんなPerlスクリプトを書いた。 $ perl flickr_collect ~/Desktop/flickr_wallpapersとかやると、指定したディレクトリにFlickrの Wallpapers (1024x768 minimum)グループの最新壁紙30件をダウンロードしてくれる。 画像サイズは、だいたい指定した壁紙サイズに近いやつを落とすようになってるので、とんでもなく大きかったり小さかったりする画像は落ちてこないようになっている。ダウンロードする壁紙の枚数やサイズは、スクリプト内のの定数を変更すればできる。 あとは、煮るなりやくなり。Cronでまわせばどんどん新しいのがおちてくるようにできるし、Mac OS Xではディレクトリを

    はこべにっき# - Flickrから素敵な壁紙を自動で収集
  • Catalyst進化してる - はこべにっき ♨

    結局学校の画題を作るのにCatalystを使うことにした。で、かなりひさしぶりにCatalyst触ったんだけどなにかと強力になってるね。以下は現在CPAN最新の5.7001の話。 Viewのレンダリング 昔のCatalystだと自分でRoot.pmのendアクションにViewにフォワードするように書かないとダメだった。 sub end : Private { my ( $self, $c ) = @_; $c->forward('MyApp::View::TT') unless $c->response->body; }という風。しかし、今のバージョンだと、 sub end : ActionClass('RenderView') {}とするだけで、よかれと思われるViewにforwardしてくれて、かなり簡単になった。Using RenderView for the Default Vie

    Catalyst進化してる - はこべにっき ♨
  • Image::Compareモジュール - はこべにっき ♨

    ぼちぼち、ここの更新もちゃんと再開。日はImage::Compareというモジュールを使ってみていた。 このモジュールはその名の通り二つの画像を比較して、同じ画像かどうかを判定してくれる。便利なのは、完全に一致する画像だけでなくて、しきい値を指定することでだいたい同じそうな画像も判定してくれる所。使い方もわりと簡単で、 一つめの画像の指定 二つめの画像の指定 比較方法の指定 比較結果の取得 とわかりやすい。画像の指定にはURLも指定できて便利。比較方法もいくつかあって、しきい値も0〜441.7とわりと幅が利く。よいしきい値が選べさえすればなにかと使えそう。 どうやら、実装はImagerという別のモジュール使ってるようなんだけど、はげしく複雑そうな計算が行われてるっぽいのでここは、「情報隠蔽、カプセル化」と呪文をとなえながら使うのが良さげ。 my $cmp = Image::Compare

    Image::Compareモジュール - はこべにっき ♨
    poppen
    poppen 2006/08/31
    画像比較モジュール
  • P::P::Filter::HatenaMobileGateway - はこべにっき ♨

    えぎょ(id:egyo2nd)の記事に, 通常の東京メトロ|運行情報のリンクにはてなモバイルのうるるをつけてます。うるるの前にhttp://mgw.hatena.ne.jp/?をつけるとちょっと軽くなります。こんな感じ「東京メトロ運行情報」 てのがあった.これは,便利げだー.これPla(ry. package Plagger::Plugin::Filter::HatenaMobileGateway; use warnings; use strict; use base qw( Plagger::Plugin ); use URI; sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&filter, ); } sub filter { my($se

    P::P::Filter::HatenaMobileGateway - はこべにっき ♨
  • CustomFeed::MangaOhClubをもとにPlaggeにCSVを読み込ませれるようにする - はこべにっき ♨

    ここ数日は,まんが王倶楽部のCSVをパースしてPlaggerに読み込ませるCustomFeed::MangaOhClubを書いてた.これを汎用化できれば,簡単な正規表現で表現できるCSVとかを簡単にPlaggerに放り込めるんじゃね?というはなし. なにはともあれ,CustomFeed::MangaOhClubのコード.なにかと野良っぽいけど,そこは勘弁. MangaOhClub.pm*1 やってることは単純で,読み込んだCSVファイルを一行ずつに分割して,正規表現で日付やらタイトルやらをとりだしてPlagger::Entryにつっこんでる.ただし,CSVの形式というかカラムの現れる順番や種類がが提供されてるファイルごとに違うので,ファイルごとの設定なんかをハッシュに格納しておいて使ってる. our $CATEGORY = { comic => { title => 'コミック', csv

    CustomFeed::MangaOhClubをもとにPlaggeにCSVを読み込ませれるようにする - はこべにっき ♨