タグ

ブックマーク / tech.nitoyon.com (11)

  • rsync の複雑怪奇な exclude と include の適用手順を理解しよう

    rsync は便利なんだけど、オプションが多くて難しい。特にややこしいのがファイルを選別するための --exclude と --include オプションだ。 man を読んでもイメージがつかみにくかったので、ググったり、-vvv の結果を見たり、ソースを読んだりしつつ調べてみたところ、3 つのルールを理解すれば何とかなりそうなことが分かった。 この記事では、その 3 つのルールをなるべく分かりやすく説明する。 ルール1: 指定順に意味がある コマンドライン引数は、通常、どの順番に指定しても同じ挙動になることが多い。しかし、rsync の include と exclude に関しては、指定順が意味を持つ。 man にも出てくる例で説明しよう。MP3 だけをコピーするには次のようにする。 -av はコピーするときのお決まりのオプション。ネットワーク越しにコピーするときは、-avz として圧

    rsync の複雑怪奇な exclude と include の適用手順を理解しよう
  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

    最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式 (AngualrJS) モデル書き換え方式 (Vue.js) Object.observe 方式 (Polymer) パターン名は私が勝手に名づけたものだけど、このへんの雰囲気が理解できれば、フレームワークごとの個性が分かるだろうし、利用イメージもわきやすいんじゃないかと思っている。 1. モデル クラス方式 「モデルとして扱えるのはフレームワークが用意したモデル クラスのインスタンスだけ」という

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
    rokujyouhitoma
    rokujyouhitoma 2015/07/08
    4の"Object.observe 方式 (Polymer)"が一番しっくり来そう。ClosureLibraryの時はEventTargetを継承したモデル(ないしはエンティティ)を使ってた。
  • Git にパッチを送って取り込まれた話

    Git の挙動に変なところを見つけたので、パッチを作って Git のメーリングリストに投げてみたところ、何度かのレビューを経て、無事に取り込まれた。 Git に貢献したい人とか、オープンソース開発の流れに興味がある人もいるだろうから、作業の流れを書いておくことにする。 1. バグを発見する 何はともあれ、修正したいところを見つけるところから。 先日、git difftool --dir-diff が便利すぎて泣きそうです という記事を書いたが、difftool --dir-diff の挙動を調べているうちに、一時ファイル書き戻し条件が変なことに気づいた。 手元のバージョンが古いのかとも思ったが、master ブランチでも再現したので、ちょっくら深入りしてみた。git difftool は Perl スクリプトだったので、ソースコードに print を追加しつつ挙動を探っていった。しばらく調

    Git にパッチを送って取り込まれた話
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。 K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。 クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、Restart を押すと好きなパラメータで試すことができます。 こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。 (追記) HTML5 版の K-means 法を D3.js でビジュアライズしてみた も作成しました。Flash を表示できない環境ではそちらをご覧ください。 K-means 法とは K平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージに

    クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた
    rokujyouhitoma
    rokujyouhitoma 2012/12/06
    K-means法
  • Messages for Japan に見る Google UI デザインの変化 - てっく煮ブログ

    GoogleMapsAPIちょっと前になるが、Google が Messages for Japan - Home というサイトを公開した。世界中の人が日への応援メッセージを投稿する Web サービスだ。 Messages for Japanメッセージは全て、日語に自動翻訳されており、世界中からのメッセージに勇気付けられる。HTML5 バリバリではない一見 Flash を使ってるかのように見えるぐらいに派手な見た目なんだけど、GoogleHTML5 押しの流れの延長で、JavaScript で組んである。Flash は一切使われていない。iPhone でも閲覧できるようなので、Flash は最初から選択肢に入らない。かといって HTML5 バリバリかと思いきや、実はそれほどでもない。たとえば、トップページの hover すると大きくなるアイコン。いかにも canvas を使ってそ

  • ブラウザ上で Python を試せる「IPYWEB」を作ってみた - てっく煮ブログ

    Silverlight2 の IronRuby を使って ブラウザ上で Ruby を試せる「IRBWEB」を作ってみた ので、その延長でブラウザ上で Python を試せる IPYWEB を作ってみた。 IPYWEBSilverlight のソースは Silverlight Dynamic Languages SDK 0.5.0 の Repl サンプルそのまま。修正したのは HTMLJavaScriptCSS だけ。IronPython さまさま。Firefox の謎現在の *.xap は、Iron*** を含んでいて 1MB 近くあるので、ローディング中は Silverlight を表示したい。ただ、ロードが完了すれば Silverlight の表示は不要になるので、*.xap の初期化が完了した段階で JS を使って *.xap を隠している。けれども、これをやると IE では動く

  • 最小完全ハッシュ関数の作り方 を JavaScript で - てっく煮ブログ

    JavaScriptActionScript/Flex ネタが続いているので、たまには JavaScript ネタを。はてブ経由で知った 最小完全ハッシュ関数の作り方 が面白そうだったのだけど、「最小完全ハッシュ関数」が何か分からないまま読み進めたら、やっぱり話が分からなくなってしまった。分からないまま JavaScript に移植。 /* 順列型の最小完全ハッシュ関数 */ function ChangeNumber(arr) { var work = arr.concat(); var hash = 0; // 階乗値テーブル作成 var FACTOR = [1]; for(var i=0; i { FACTOR.unshift(FACTOR[0] * (i+1)); } for(var i=0; i { hash += work[i] * FACTOR[i]; for (j=i+1;

  • mixi で自分の都道府県を落とすアプリを作ってみた - てっく煮ブログ

    自分が住んでる都道府県をプロフィールページに貼っつけて、訪問した人に落としまくってもらうための mixi アプリを作ってみました。サンプル私の mixi アカウントに設置してます(足跡が気になる人は注意してね)。http://platform001.mixi.jp/show_friend.pl?id=10037インストールするには※mixi アプリはβテスト中なのでちょっと手順が複雑になってますmixiアプリ オープンβ コミュニティーに参加する○○県を落とすとどう跳ねるのか からアプリ登録するhttp://platform001.mixi.jp/home.pl を開くと自分のページにも追加されてる!やってることOpenSocial の API でアプリを設置した人の住所を取得する北海道を落とすとどう跳ねるのか? の Flash を都道府県を渡しつつ埋め込むとても簡単でした。隠すことは何も

    rokujyouhitoma
    rokujyouhitoma 2009/05/27
    ほう。島が多い県だと面白い。僕もmixiアプリを調べてみるかな。
  • はてな記法ワープロ

    *はてな記法JavaScript はてな記法ワープロは JavaScript ならではの利点を生かしたダイナミックなワープロです。 試しに色々入力してみてください。即座に出力画面が反映されます((Windows 版 IE6 および Firefox 1.0 でのみ確認しています))。 はてな記法の変換は <a href="http://search.cpan.org/dist/Text-Hatena/">Text::Hatena</a> を JavaScript に移植した "text-hatena.js" を活用しています。 **変更履歴 |*2005/12/1|ソース機能追加 (HTMLソースを表示できます)| |*2005/11/21|はてな記法ワープロ完成| |*2005/11/13|text-hatena.js 移植開始|

    rokujyouhitoma
    rokujyouhitoma 2009/05/10
    そりゃJavaScriptだからできるよね。。。盲点でした。
  • IPYWEB - Execute Python on Your Browser

  • JSDokan で JSON をファイルシステムに - てっく煮ブログ

    JavaScriptWindows版FUSE Dokan がオープンソースになったよ!! - yukobaの日記 が面白そうだったので、ちょっと触ってみた。Dokan は Windows でファイルシステムを作るためのライブラリ。C, .NET, Ruby から気軽にファイルシステムが使えるようになる。それを id:yukoba さんは Java で動くようにして、さらに Rhino を使って JavaScript 製のファイルシステムをデモしている。それならば、と C# 経由で JScript を叩くライブラリを作ってみた。題して「JSDokan」。JSDokan のサンプル「JsonFS」JSDokan を使ったサンプルとして JSON をファイルシステムにする「JsonFS」というのを作ってみた。例えば、このような JSON が... private var json:Object

    rokujyouhitoma
    rokujyouhitoma 2009/04/02
    あれ、JSONをファイルシステムにするってどういうこと?
  • 1