サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
d.hatena.ne.jp/uasi
こういう % git describe --always --match='!' 119b6f9 # describe は指定したコミットから一番近いタグ名を表示するコマンド # --always はタグ名が見つからなかったときハッシュ値を表示 # --match はマッチするタグだけ探す # 普通タグ名に使わない '!' を指定することでわざと見つからなくさせる まわりくどいことをやってたんですが、 % git rev-parse --short HEAD 119b6f9 これでよかったみたいです。
スクリーンショットを撮って GitHub のリポジトリにプッシュして raw URL をコピーするツール Gyazit を作りました。 Bitbucket にも対応しています。ようするに Gyazo っぽいやつです。 ダウンロード https://github.com/uasi/gyazit/zipball/master インストール まず GitHub か Bitbucket に新しくリポジトリを作ります。リポジトリをクローンし、 git commit --allow-empty -m 'Initial commit' で最初のコミットを作ります。 Gyazit を初めて起動すると ~/.gyazitrc を作成するためのダイアログが出ます。 repository: "/path/to/local/repository.git" をローカルリポジトリのパスに書き換え、 OK を押してくだ
Amazon の URL ってやたら長いし汚いしでコピペするのに躊躇しませんか。僕はします。そして他人のアフィリエイト ID を含んでたりするとなんだかモヤッとしませんか。僕はします。 そこで amaffi を作りました。 amaffi はクリップボードを監視し、 Amazon らしき URL を見つけると余分なクエリを削除して URL を綺麗にし、ついでに自分のアフィリエイト ID を付加します。 使い方は簡単、ここから zip をダウンロードしてターミナルから amaffi <ID> を実行するだけです。ログイン時に自動で起動させたいなら amaffi --install <ID> && amaffi --load で。 同じ商品を指す何通りもの長ったらしい URL を…… http://ww.amazon.co.jp/ディアスポラ-ハヤカワ文庫-SF-グレッグ・イーガン/dp/415
バージョン管理狂の皆様におかれましては alias st='git status' などのエイリアスは当然定義されていることと思います。 うっかり Mercurial リポジトリの中で st を叩いてしまって fatal: Not a git repository などと言われ、ここで st つったら hg status に決まってるだろボケがとターミナルを叱責した経験も当然あることと思います。 泣く泣く gst と hst を定義したものの、3文字打つのがかったるくて枕を濡らしたことも当然一度や二度ではないことでしょう。 というわけでちょっと賢いエイリアスを定義できるやつを作りました。 Git リポジトリの中で st を叩いたら git statusになり、Mercurial リポジトリの中では hg status になる、そんな空気の読めるやつです。 no title こういう感じで使
ギークハウスって知ってます? ニートを生業として金銭を得ているよくわからない人 @pha さんが提唱するシェアハウスで、公式サイトによればギークハウスはソーシャル化するインターネットの中で生まれた新しい形のシェアハウスです。全国的に展開を進めており、最近では海外にも進出しています。セブ島にあるギークハウスフィリピンもそのひとつ。 じゃあ大喜利ハウスはご存知? 生粋のニートである @burara がただ住んでいる一戸建てで、公式サイトによれば大喜利ハウスは、「人生とは大喜利である。」と考えている人が住む家です。元々は北千住に存在し数名が生活していたものの、メンバーが抜け @burara 1人になったところ、「だらだら暮らしててもつまんねーからフィリピン行けや、物価安いし」との発起人命令によりセブ島に進出もとい左遷されています。 セブとニートとシェアハウス。この奇妙な符合は、しかし互いの存在を
.tmux.conf で凝ったことをやりたいんだけど、他のスクリプトファイルに処理を書くと .tmux.conf を持ち運ぶときに不便だよネー、ってときにいいんじゃないでしょうか。 .tmux.conf の各行の先頭2文字を削ると正しいシェルスクリプトになるようにしておいて、それを cut して sh に渡すだけです。
/opt や ~/opt に色々と突っ込んだはいいがそのたびに .zshenv を書き換えるのが面倒、という人に朗報です。 path=( ~/opt/*/(s|)bin(N-/) /opt/*/(s|)bin(N-/) $path ) これで /opt/hoge/bin や ~/opt/fuga/sbin がまとめて PATH に追加されます。よかったですね。 解説 $path は $PATH と関連づけられた配列変数です。 path=(a b c) すると $PATH が a:b:c にセットされます。 /opt/*/(s|)bin ここは普通の glob です。後に続く (N-/) は zsh の拡張 glob パターンで、カッコホゲホゲを後置するとパターンマッチの動作を変更できるアレです。便利ですね。 N はパターンにマッチするパスがなくても警告を出さず空文字列に置換する指定、 -
研究室の Ubuntu マシンが起動しなくなったのを機に Arch Linux に乗り換えてみた。 Arch Linux を選んだ理由は、パッケージマネージャがなんだかクールそうなことと、最小限の構成でインストールできる点に惹かれたから。最小構成からセットアップすることで Linux に詳しくなれるかな、という期待も少しあった。 目論見は大当たりで、パッケージマネージャはストレスなく使えるし、システムの設定は設定ファイルのコメントや Web 上のドキュメントが豊富で詰まることがないし、システム構成はシンプルで見通しが利く。結果的に非常に勉強になったので、その過程を書き残しておくことにした。 目次 インストール 初回ログインとユーザの追加 ユーザの設定 キーマップを変える ABS を使えるようにする OpenSSH のインストール Avahi のインストール ハマりどころと勘所 インストール
GitHub のブログによると git.io なる短縮 URL サービスができたようです。できたからには git shorten で短縮したいよね、ということで git コマンドのエイリアスを書きました。 git shorten URL [code] で URL を短縮できます。 # In .gitconfig [alias] shorten = !"sh -c 'curl -i http://git.io/ -F url=$1 `[ -n \"$2\" ] && echo -F code=$2`' -" # How to use $ git shorten https://github.com/github # => http://git.io/XYZ... $ git shorten https://github.com/github gh # => http://git.io/gh
勝手に直して勝手に使ってます。 https://gist.github.com/1273447 使いたい方は /Applications/Growl.app/Contents/Resources/ja.lproj/Localizable.strings を上記ファイルで置き換えてください。 UTF-16 LE で保存する必要があるかもしれません。 誤訳やよりよい訳がありましたら、ここか Gist のコメント欄で指摘していただけると助かります。 Fork して書き換えてくださってもかまいません。
みなさん、お手持ちの Mac で man caffeinate してみてください。なにやら便利そうなコマンドのマニュアルが出てきましたね。 Lion じゃないと出てこないかもしれないそうですが出てきた体で行きますね。要約してみますと、 $ caffeinate [opts] # caffeinate を終了するまでスリープを防ぐ $ caffeinate [opts] foo_cmd args... # foo_cmd が終了するまでスリープを防ぐ # opts: # -d ディスプレイのスリープを防ぐ # -i アイドルを防ぐ # -s [-b] [バッテリー駆動のときも]システムのスリープを防ぐ あら便利。これを使えばいちいちシステムの省電力設定をいじったり、 InsomniaX を立ち上げたりしなくてすみますね。 追記:Mountain Lion には caffeinate が入って
Mac のパスワード入力ボックスに capslock のアイコンが表示されたときも感動したもんですが、今日はそれを上回るテキストボックスに出会ったので紹介します。 tinygrab.com で使われているテキストボックスには、このように: 入力した文字列に対応して固有のパターンをもつ3色のバーが表示されます。自分のパスワードに対応する色の組み合わせを覚えておけば、打ち間違いにすぐ気づけるんですね。かっこいい。 ログインページで適当なパスワードを入れて試してみましょう。バーの色がくるくる変わって楽しいです。 マスコットキャラがいる web サービスなら、キャラの表情がモンタージュで変化するようにしてもいいかもしれません。自分のパスワードは涙目の半笑いで真紫な顔、とか。
結局 MANIFEST と MANIFEST.SKIP と META.yml と MYMETA.yml と etc.etc. の何を管理したらいいのよ! もう! と嘆いていらっしゃる CPAN author のみなさまこんにちは、一緒に嘆きましょう。 嘆き終わりました? じゃあ建設的な話をしましょう。 さてさて、 perl Makefile.PL && make すると生成されるファイル群、何を取っといて何を消したらいいか。自動生成されるものは全部消しちゃっていいようにも思えますが、一部 shipit が必要とするファイルもあります。リポジトリをチェックアウトして即 shipit できる状態だと何かとウレシイですよね。というわけで、 Module::Install と shipit の使用を前提に、バージョン管理すべきファイルを並べてみました。 これをバージョン管理しろ lib/ t/ .
モダン並列・並行プログラミング ? Concurrent Revisions による実装と現実 ? | Preferred Research を読んで少々興奮してしまったのと、 Coro を使ってみたかったのと、 CPANizable なモジュールの作り方を勉強したかったので、実装してます。 Concurrent Revisions を。 Perl で。 https://github.com/uasi/concurrent-revisions 多少なりとも形の整った Perl モジュールを書くのはこれが初めてなので、何かアレだったらこっそり耳打ちしてくれるとウレシイです。ヒャッくすぐったいってなります。 ところでモジュール名は何がいいですかねえ。 Coro::Revision かな。
Perl には perlstyle が、 Python には PEP-8 があるということで、 Ruby にもコーディングスタイルのガイドラインを作ろうという話があるようです:no title ひとつイイナッと思ったのが“Do not program defensively”という言葉、これは Erlang のプログラミングルールからの引用のようですが、つまり「入力を信用しないコードを書くな」ということです。一度バリデーションを通った入力は常に正しいものとして扱え、と。 Erlang のプログラミングルールは他の言語を使うときでも参考になるので読んでみるといいかもしれません。
Lion の Time Machine にはモバイル環境でもバックアップの参照・復元ができるという機能があります。えーと詳しいことはLion の TimeMachine と /Volumes/MobileBackups / おのひろきおんらいんを読んでいただけば分かるかと思います。 で、その機能がときどきばかでかいスナップショットを作って HDD を圧迫してることがあります。容量がいっぱいになったら古いバックアップは削除されるらしいんですが、機械を信用しない僕は自分の手で削除したい。どうすればいい? こうすればいいです。 sudo tmutil disablelocal && sudo tmutil enablelocal ローカルバックアップ機能をいったん無効にして再度有効にすると、スナップショットはきれいさっぱり消えています。そもそもローカルバックアップがうぜえって方は無効にしっぱなし
はてなインターンの体験記を書いたらいいことあるヨとそそのかされたので一筆啓上つかまつろうかと思ったのですが、 id:gigi-net に意識高い記事で先を越されたのでやめました。意識低いマンには真似のできない記事です。 そういうわけで、食って寝て合間にコード書ければ幸福が実現する程度のマンから見て、はてなインターンはどうであったか感想を述べることにします。対象読者は食って寝て合間にコード書ければ幸せなみなさんです。向上心と目的意識で目を爛々と輝かせた学生諸賢は上記の記事を読めばいいのでは? ホテルが快適すぎて実家に帰りたくない 夏休みは何もしたくないから実家に帰ってタダ飯食って寝ていたいと考えているあなた、あるいは実行したあなた、残念でした。はてなインターンに参加するべきでした。 遠方からの参加者はホテルに23泊。休日含めて毎朝食つき。オフィスまで徒歩3分。9時半に起きてうまい朝飯食ってふ
変です。 GET statuses/show/:id を叩くと得られる JSON から座標に関するプロパティだけ抜き出すと以下のようになります。 { "geo": { "type": "Point", "coordinates": [35.0, 135.0] }, "coordinates": { "type": "Point", "coordinates": [135.0, 35.0] }, "place": { "bounding_box": { "type": "Polygon", "coordinates": [ [ [135.0, 35.0], [135.1, 35.0], [135.1, 35.1], [135.0, 35.1] ] ] } } } 一見すると GeoJSON に定められた座標表現の仕様に則っているように見えますが、 geo プロパティの値は経度と緯度が逆になっ
Safari 5.1 は大部分が C++ で書き直され、 method swizzling ハックがやりづらくなりました。従来のコンテキストメニューいじくる方法も使えなくなりましたが、どうにかなったのでメモっておきます。 WKMenuTarget の setMenuProxy: に渡されるポインタの16バイト目に NSPopUpButtonCell * へのポインタが入っているので、それを使います。 以下サンプルコードです。 // プラグインの principal class @implementation PrincipalClass // オリジナルの setMenuProxy: と差し替えるメソッド - (void)my_setMenuProxy:(void *)menuProxy { // オリジナルのメソッドを呼んでやる [self my_setMenuProxy:menuPro
Finder と Terminal を巧みに使い分けるみなさんこんにちは、 ~/bin を Finder で開いたことあります? 僕は金輪際開きません。 開かないフォルダが Finder に表示されてると邪魔ですよね。 chflags hidden で隠しましょう。 chflags hidden ~/{bin,lib,man} # いろいろ隠す 隠れました。フォルダだけでなくファイルを隠すこともできます。 そうそう、 perlbrew のインストールディレクトリが ~/.perl5 ではなく ~/perl5 なのってどうしてでしょうね? まあ理由は何でも構いませんが、これも Finder で開くことはないですよね。隠しましょう。 chflags hidden ~/perl5 隠れました。 やっぱり表示したくなったときには chflags nohidden で chflags nohidde
GitHubへpull requestする際のベストプラクティス master ブランチで pull request していいのは小学生までってこともない このへん読んでて思ったことです。 master から pull request して reject されたとしましょう。この master は上流の master と食い違ったままになります。 しかし、自分のブランチと上流の同名のブランチは一致しているか、自分のブランチのほうが進んでいる状態にあると面倒事がなくて好ましいです。食い違った master をふたたび一致させる手段は2つ: さらに master を変更して再度 pull request し、どうにか merge してもらう master に変更を加える前のコミットを強制的に push し、 master のコミットをなかったことにする 1つ目の手を取るなら、なんとしても pu
前略 日本語圏には数えるほどしかいないと思われる SIMBL プラグイン開発者のみなさま、そしてこれから SIMBL プラグインを作りたいと考えている奇矯なるみなさま、いかがお過ごしでしょうか。コレ入れましょう。 class-dump class-dump はクラスをダンプするヤツです。 Cocoa アプリケーションのバイナリから、構造体とクラスの定義を取り出せます。 % class-dump /System/Library/PrivateFrameworks/Safari.framework/Safari /* * Generated by class-dump 3.3.3 (64 bit). * * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2010 by Steve Nygard. */ #pragma mark N
Web ページからデータを抽出してデータベースに突っ込むことに性的興奮を覚えるみなさん、 ScraperWiki 使うとキモチイイですよ。以上です。 そうではないみなさんには少々の説明が必要かと思いますので少々書きます。 ScraperWiki はスクレーパ(Web ページをスクレイピングするスクリプト)とスクレイピングで得られたデータを共有しようぜっという Web サービスです。Wiki と名が付いていますが Wiki っぽいページ構成になってるわけではなく、スクレーパやデータを誰でも編集できるようにして成果を共有するという理念が Wiki と共通しているのが由来みたいです。 ScraperWiki を使うとスクレーパを作るのがラクになります: Web ベースのエディタでスクレーパを書き、その場で実行できる PHP、 Python または Ruby が使える(HTML パーサなどのモジュ
2011-05-23 09:23 追記:Mac のデフォルトの Vim では動作しないとの指摘をブコメで受け、スクリプト中の OS 判定コードを修正しました。 Vim で保存した UTF-8 エンコーディングのテキストファイルにマルチバイト文字が含まれているとき、 Quick Look を使うと“標準テキスト”と表示されるだけで中身が見えないことがあります。また、そのようなファイルはテキストエディットで開こうとしても こんなダイアログが出て編集できません。 原因は、 Quick Look やテキストエディットがファイルの拡張属性を参照してエンコーディングを判別しているためです。一般的な Mac のアプリケーションでテキストファイルを保存すると、 UTF-8 エンコーディングを表す拡張属性がファイルに付加されます。しかし Vim ではこのフラグが立てられません。そのため、ファイルに ASCI
Fossil というモノがあります。 SCM です。バージョン管理システムです。Subversion とか Git とか Mercurial みたいなヤツです。 聞いたことネーヨという人も SQLite くらいは知ってるかと思います。その作者 Richard Hipp が作ったソフトウェアと言われればピンとくるかもしれません。こないかもしれません。 ピンとこない方のために特徴を挙げますと: すべて C で書かれています。 単独の実行ファイルで動作します。 リポジトリは単一の SQLite データベースファイルに格納されます。 zlib 以外のライブラリに依存しません。 diff ツールも web インターフェースも内蔵しています(実例は Fossil の公式サイト)。 CGI としても単独のサーバとしても動きます。 Wiki も内蔵。 バグトラッキングシステムも内蔵。 もう一度書きますが全
なにやらblog.shu-cream.net: 2011年のVimプラグインの管理はVundleでなどと言われているので乗り換えてみました。 Git で .vim を管理して git submodule で .vim/bundle にプラグインを追加して pathogen でロードさせれば最強じゃい! と思ってた人は Vundle を導入するとより強まった最強になれるかと思います。 git submodule で管理してた .vim/bundle を消す まずは Git のサブモジュールとして管理していたプラグインを消します。 git submodule rm コマンドか何かあればいいのですがありません。不親切。手で消します。 git - How do I remove a submodule? - Stack Overflow を参考に: .gitmodules から消したいモジュールに
そのままだとシステム標準の Ruby が使われるっぽいです。 .vimrc に下記の設定を加えてやれば OK です: let g:quickrun_config = {} if strlen($rvm_bin_path) let g:quickrun_config['ruby'] = { \ 'command': 'ruby', \ 'exec': '$rvm_bin_path/ruby %s', \ 'tempfile': '{tempname()}.rb' \ } endif 追記 :! /usr/bin/env ruby -v でシステム標準の Ruby が呼ばれているのがおかしいのかな? 追記2 -s ”$HOME/.rvm/scripts/rvm” ? && source "$HOME/.rvm/scripts/rvm" を .zshrc に書いたのが原因でした。 .zshenv
2015年11月9日追記:以下の内容は Xcode 4 までに対応しています。最近の Xcode に対応するには github.com/github/gitignore の Objective-C.gitignore を使うことをお勧めします。(追記終わり) Xcode で作ったプロジェクトを Git で管理するにあたってめんどくせえーのは、 .xcodeproj の中にプロジェクトのデータとユーザデータが一緒に入ってる点です。普通に空のプロジェクトを作るとこうなります: Xcode 3: - $PROJ.xcodeproj/ - project.pbxproj - $USER.mode1v3 - $USER.pbxuser Xcode 4: - $PROJ.xcodeproj/ - project.pbxproj - project.xcworkspace/ - xcuserdata/
Google Chrome はコマンドラインオプションでプロファイルを切り替えられるんですって。知ってました? Mac だとこういう感じ: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir="$HOME/Library/Application Support/Google/Chrome/$PROFILE_NAME" これの $PROFILE_NAME を適当な文字列に置き換え、シェルスクリプトとして保存してダブルクリックすればお好みのプロファイルで Google Chrome を起動できます。 しかし Mac ユーザたるもの、味も素気もない書類アイコンのファイルでアプリケーションを起動するのは我慢ならない! ので、ちゃんとしたアイコンつきのランチャを作るスクリプトを書きました: #!
次のページ
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く