タグ

tipsに関するarikuiのブックマーク (46)

  • hardlink.pyを使ったらディスクの空き容量が劇的に増えた - hnwの日記

    ノートPCを使っているとディスクの空き容量が不足してくることがありますよね。僕の場合、$HOME/src/php以下にPHP 5.0.0から5.5.5まで88バージョンのPHPのソースコードを展開しているのですが、このサイズが約8.9GiB、約110万ファイルと恐ろしい量であることがわかりました。 そこで、この全ファイルに対してhardlink.pyを適用してみたところ、7.7GiBほど空き容量が増えました。稿ではこのhardlink.pyについて紹介します。 hardlink.pyとは hardlink.pyは、同じファイルを見つけてhardlinkにしてくれるPythonスクリプトです。同じファイルが多ければ多いほどディスクの空き容量を節約できるというわけです。 同じファイルと見なす条件はオプション指定で変更できますが、僕は「ファイルの中身とオーナーとパーミッションが完全一致、ただし

    hardlink.pyを使ったらディスクの空き容量が劇的に増えた - hnwの日記
  • Python でシェル経由でコマンド実行するときのバッドノウハウ - methaneのブログ

    PHPだってシェル経由でないコマンド呼び出し機能が欲しい コマンド実行でシェルが怖いなら使わなければいいじゃない どちらの記事でも Python の subprocess を使ってシェルを介在せずにコマンドを実行する方法が紹介されています。 シェルを介在すると、エスケープの問題考えるのが面倒だったり、 kill してみたらシェルだけ殺して肝心のコマンドがずっと残ってるというアホみたいな問題を避けられるのでお勧めです。 いい子はこれを使いましょう。 この記事ではどうしてもシェルの機能が使いたい場合や、 subprocess の PIPE の組み立てが面倒な場合のための、バッドノウハウを紹介していきます。 ちなみに、バッドノウハウと呼んでるのは、安全安心 one size fits all ではなく、メリット・デメリット・やり方をいちいち調べないといけなくて、しかもその調べる行為がほとんどコン

    Python でシェル経由でコマンド実行するときのバッドノウハウ - methaneのブログ
  • 「Vimを使い始めようと思うんですけど、おすすめを教えてください」 - ぼっち勉強会

    この記事は Vim Advent Calendar 2012 : ATND 17日目の記事です。 前日は@syootaroさんのでした。 今年、ぼくの周りで「Vimを使ってみようと思う」と人が3人くらい出てきました。 その人達から「おすすめのプラグインや設定ないですか」とか 「Vimってこういうこと出来ないの?」という質問を受けることがありました。 また、私の操作を見て「何それどうやったんですか」という質問もいくつか受けました。 毎回説明するの面倒くさいのでこの経験を生かし、今後も増えることが間違いない新世代Vimmerに向けて 「ぼくがおすすめする基操作と初期設定とプラグイン」を書いてみたいと思います。 ほとんどただのリンク集となっていますが。 対象は「Vimを触り始めてちょっと経った」程度の人です。 何より大事なこと viじゃなくてVimです。 前提 Vimはインストール済みであると

    「Vimを使い始めようと思うんですけど、おすすめを教えてください」 - ぼっち勉強会
  • vimの連続コピペできない問題 - Qiita

    概要 コピーしておいた文字列を任意の単語や文章の代わりにペーストしたい このヒドイ文章のtypoを、修正したい def hoge text = "A long time ago in a galaxy far far away" puts test1 # => puts text puts xtex2 # => puts text extt3_array = twxt4.split(" ") # => text_array = text.split(" ") puts txet5.gsub(" ", "¥n") # => puts txet.gsub(" ", "¥n") end textをヤンクして、txet xtex extt twxtの箇所にペーストしてやれば良い。 こういうとき、最初のtestをvisualモードで選択してペーストして、次のtxetも同様にペーストしようとすると思い

    vimの連続コピペできない問題 - Qiita
    arikui
    arikui 2013/12/08
    []
  • http://papix.hateblo.jp/entry/2012/12/14/042937

    arikui
    arikui 2013/12/08
    []
  • メソッドの使い方もRubyに教えてほしい

    Rubyの世界には「RubyのことはRubyに聞け」という格言があります1。 この格言に従い、早速Arrayクラスがどんなメソッドを持っているかRubyに聞いてみます。irbを使います。 % irb irb> Array.instance_methods(false) => [:inspect, :to_s, :to_a, :to_ary, :frozen?, :==, :eql?, :hash, :[], :[]=, :at, :fetch, :first, :last, :concat, :<<, :push, :pop, :shift, :unshift, :insert, :each, :each_index, :reverse_each, :length, :size, :empty?, :find_index, :index, :rindex, :join, :reverse,

  • 意外と知られていない diff に関する機能 - 永遠に未完成

    Vim Advent Calendar 2012 の 147 日目の記事です。 137 日目の tyru さんの記事で、Vim の diff 機能について紹介がありました。この記事ではもう少し細かい diff の機能について紹介したいと思います。 :diffthis 比較したい対象がファイルではない場合、例えば、外部からデータを無名バッファにコピーしてきた場合に、それらのバッファの diff を表示したいことがあります。この場合は、:diffsplit は使えません。 こういう場合は :diffthis を使います。diff を適用したいバッファでそれぞれ :diffthis をすると、実行したバッファ同士の差分を見ることができます。 これを利用した設定に、help で紹介されている :DiffOrig があります。(:help :DiffOrig) これは現在編集中のファイルと、最後に保

    意外と知られていない diff に関する機能 - 永遠に未完成
    arikui
    arikui 2013/04/27
  • 知って得する21のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop

  • Gmailフィードのまとめ。~RSSリーダーで新着チェック!~

    GmailをRSSリーダーで新着チェックするフィードURLです。 フィードジェネレータ付き。なおGmailログインURLはこちら。 その他の新着チェックツールはこちら。 知人に紹介する(Gmail this) はてなブックマークに登録する リンクフリー(更新:2008/2/13) ※SSL&HTTP認証のAtom RSSリーダに対応しています。→解説記事,livedoorの「Fastladder」も対応

    arikui
    arikui 2012/12/05
  • GitHubへpull requestする際のベストプラクティス - hnwの日記

    みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、

    GitHubへpull requestする際のベストプラクティス - hnwの日記
  • Vim-users.jp - Hack #112: 場所ごとに設定を用意する

  • スクロールバーの幅を取得するコード - ?D of K

    JavaScriptでスクロールバーの幅を取得したいと思ったのでさくっと書いてみた。 スクロールバーが表示されるiframeを生成して、offset〜を取得することで、iframeサイズとの差がスクロールバーの幅となることを利用して計算します。 IE7ではDOMの構築が終わっておらず正常に計算できませんが、僕はFxChromeでしか使わないので、問題なしです。 function scrollBarSize() { var W = 1000, H = 1000; var iframe = document.createElement("iframe"); iframe.frameBorder = 0; iframe.width = W; iframe.height = H; with (iframe.style) { position = "absolute"; top = "0px";

    スクロールバーの幅を取得するコード - ?D of K
  • 驚きいっぱいのJavaScript? - 風と宇宙とプログラム

    言語やインタフェースの設計には「驚き最小の原則」というのがある。まつもとさん人はそんなこと言っていないようだが、かつて、Rubyはその原則に沿った言語と言われていた。一方、JavaScriptはそれに反する言語と未だに見なされているようだ。多くの場合、よく理解していないのが原因である。理解した上でも、やっぱりおかしいよ、というのもあるかも知れないが、じゃ、その場合どう定義したらよいんだ、というのはいろいろ難しい問題がある。 wtfjs(http://wtfjs.com/)にはJavaScriptのそんな「変な挙動」が集められている。wtfなんてタイトルをつけているくらいなので、あまり真面目に見る必要はないのかも知れないけれど、主なものについて古い順から軽く解説してみた。ちなみに、wtfはWhat The F*ckの略。 typeof NaN === 'number' // true In

    驚きいっぱいのJavaScript? - 風と宇宙とプログラム
  • そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog

    弁当生活始めました。agoです。 以前のjavascriptの開発はサーバサイドと同じPGが開発することが多く、機能をファイル単位で分割してそのページで必要なファイルのみを読み込むと言うことが行われていました。 ただ、最近はサーバサイドとクライアントサイドの分業が進んだことや表示速度の兼ね合いもあり、単一ファイルに全体を記述しサーバサイドでは全ページでその一ファイルのみを読み込むような形になることが多いです。 単一ファイルの利点としてはサーバサイドの実装に依存せずに任意の機能を追加できることがありますが、欠点として機能毎の切り分けが難しくなると言う点があります。 jQueryを使用して$('.selector')で切り出す方法もありますが、マークアップの全体像を正確に把握できていないと不要なページで間違って実行されてしまう危険性もあります。 そこで、以下のようなJSを先に読み込み、各URL

    そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog
  • livedoor Techブログ : mod_rewrite マニアックス

    こんにちは。開発部の池邉です。 既に色んなところで発表していますが、ライブドアではWebサーバとして殆んどのサービスでApacheを使用しています。 Apache の特徴として、モジュールによる機能の追加、挙動の制御があります。その中でもよく利用されていながら、深く使っていくとハマりどころや謎の機能の多いモジュールとして mod_rewrite があります。Apacheの公式サイトでも以下のように書かれている事からも、家でもその点については認めているという事でしょう。 今回はそんな mod_rewrite のちょっとマニアックな拡張方法について紹介したいと思います。 Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. 変数を利用したプログラム

  • YAMAUCHI Hitoshi's Manued Top Page (in Japanese)

    真鵺道 In English 目次 真鵺道とは何か 真鵺道サポートプログラムとは何か 真鵺道の実装の動機 真鵺道の概要 真鵺道マニュアル Download Manued Links 良く聞かれる質問 (FAQ) Manued Mailing List Known BUGS 真鵺道とは何か 真鵺道とは,校正方法の一種である. 特に電子的な文書の校正を容易にするための手法である. テキストデータの校正一般に利用可能であるが, 特に遠隔地にて電子メイルを用いて編集者と校正作業を行うような場合に有効である. 真鵺道は第39回プログラミングシンポジウムにおいて竹内郁雄が提案した. この方法が電子メールにおける原稿, 論文のやりとりに繁雑さを感じている方々の手助けとなれば幸いである. また,真鵺道開発にまつわる話や利用法は 竹内郁雄,山内斉 : 電子メールで原稿を修正する方法, bit,1999年

  • jugyo.org

    This domain may be for sale!

  • #04 ブラウザのバッドノウハウ &amp;lt;form&amp;gt;編 | gihyo.jp

    ソフトウェアなどを使いこなすために、ストレスを感じながらもしぶしぶ覚えなければならないようなノウハウ、「⁠バッドノウハウ」がテーマの連載、第4回の今回はブラウザのBKを、<form>タグに関連するものに絞って取り上げたいと思います。 URLの+と%20の関係 HTMLの<form>タグを使うと、ブラウザからサーバにデータを送ることができます。<form>にmethod="GET"という属性が指定されている場合、ブラウザは、以下のように、キーと値のペアをURLの末尾に付加してサーバにリクエストを送ります。 http://example.com/webdb.cgi?key1=value1&key2=value2 これらのペアを「クエリ」と呼びます。このときキー、あるいは値に=などの予約記号が含まれている場合、%3Dのように%+16進数でエンコードします[1]⁠。 ところが、これには例外があり

    #04 ブラウザのバッドノウハウ &amp;lt;form&amp;gt;編 | gihyo.jp
  • 今日の Tips - Another 朝顔日記

    2ちゃんの拡張スレ(何)に、リンクを踏んだ時に新しいタブで開いているのか視覚的にわかる拡張あります?という質問が来ていた。ようするに、リンク先を開いた後、元のページに戻るのに戻るを使ったらいいのか、そのタブを閉じたらいいのか判別に迷うので、何とかしたいということらしい。で、それに対する答えのひとつとして、マウスジェスチャ用の以下のようなスクリプトが426氏によって提示されました。以下のようなものです。 if(gBrowser.sessionHistory.index>0) gBrowser.goBack(); else gBrowser.removeCurrentTab(); これを FireGestures の標準装備の戻るの代わりに登録すると、そのページが新しくタブで開かれたページであった場合そのタブが閉じられ、元のページからページ遷移で開かれたものであった場合は戻るという挙動になり、

    今日の Tips - Another 朝顔日記
  • {__proto__:null} のススメ - ellaneous

    特に新しい話題でもないけど,使われているところをあまり見ない気がするので。 HashMap/Dictionary として narcissus/jsdefs.js#142 にもあるように,単に {} だと Object.prototype が付いて廻るので役に立たないことがある。辞書として使うなら {__proto__:null} にしておいて損はない。 速度稼ぎ 辿る親が居ないのでプロパティアクセスは少し速い。はず。 if(this.dump) print = function(x){ dump(x +'\n') }; if(this.console) print = function(x){ console.log(x) }; function say(){ print('|'+ [].join.call(arguments, '|') +'|') } ['{}', '{__proto_

    {__proto__:null} のススメ - ellaneous