タグ

ブックマーク / d.hatena.ne.jp (181)

  • Alone Like a Rhinoceros Horn

    kamipo
    kamipo 2009/11/19
  • git stash便利ですな。 - ペンギンと愉快な機械の日々

    Unix/Linux最新のコミットの後に作業して、ワーキングツリーに変更がある状態だと、git pushできないので、オフラインで作業していて、自宅に帰ってpushだけしようとすると、 $ git push origin master # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # # Changed but not updated: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # modified: hoge # no changes added to commit (use "

  • [MySQL][InnoDB] innodb_log_file_size 変更手順 - koziyの日記

    毎度毎度毎度はげしくど忘れするのでメモ。 手順は InnoDBを使うときのパフォーマンスチューニング - フツーな日常 で書かれてますね。 innodb_log_file_sizeを増やす innodb_log_file_size=512Mに ちょっとコツがいる操作が必要。 * 一度mysqlをshutdownする * innodbのログを別の場所に退避させる * innodb_log_file_sizeの値を変える * 再度mysqldを上げ直す。ログは無ければ勝手に作られる。 InnoDB のログは ib_logfile\d+ (デフォルトだと ib_logfile(0|1) の 2 ファイル) なのでこれを /tmp にでも mv しちゃうと。 で、なんでこんなめんどーなことが必要なのかというと no title で書かれている 既にトランザクションログが存在していて,innodb_

  • 最速並び替え研究会 - Yappo::タワシ

    1000万行とか10億行でも何でもいいけど、いっぱいデータが入ってるテーブルのsortカラムの値を並び替えたい。 例えば以下のようにsort_testテーブルを作る use strict; use warnings; use DBI; my $dbi = DBI->connect('DBI:mysql:database=test'); $dbi->do('DROP TABLE IF EXISTS sort_test'); $dbi->do(<<SQL); CREATE TABLE sort_test ( id INT, sort INT, index(id), index(sort) ) ENGINE=InnoDB SQL my $sth = $dbi->prepare('INSERT INTO sort_test VALUES' . join(', ', ('(?,?)')x10_000

    kamipo
    kamipo 2009/11/06
  • aptの独自リポジトリの作り方 - Tiplog

    apt-howtoの8章参照.http://olympus.het.brown.edu/cgi-bin/dwww?type=file&location=/usr/share/doc/Debian/apt-howto/ch-repositories.en.html(apt-howto-enパッケージを入れて,/usr/share/doc/Debian/apt-howto/apt-howto.en.htmlを見てもよい)1. 公開用のフォルダを作り,debパッケージを入れる今回は/var/www/debian/が,http://hoge/debian/で公開されるとする. # mkdir -p /var/www/debian # mv *.deb /var/www/debian # mv *.dsc /var/www/debian # mv *.tar.gz /var/www/debian ソ

  • Apache2の環境変数PATHを設定する - masahilog

    PHPからSystem関数でいろいろ使う時にApache EnvironmentのPATHが通ってないと当然使えない訳ですが、そんなもんどこで設定すんねん・・・という話。たとえばImageMagickのconvertコマンド使うとして、MacPortsで入れると当然コマンドは/opt/local/bin/convertになる訳だけど、同じくMacPortsで入れたapache2の環境変数PATHには/usr/bin:/bin:しか入ってない。ので、system関数実行してもPHPがconvertコマンドを見つけられない、ってことになる。 apacheの起動ユーザーにPATH通しときゃいいのか?とか、httpd.confにそういう設定が?とか、もしかしてPHP.iniにそんな設定が?とか思ってたんですが、全部ハズレ。 どーやらapache2パッケージにenvvarsというやつが含まれてまして

  • リモートのファイルと、ローカルのファイルをdiffする - 技術メモ帳

    sshは、最後の引数にコマンドを指定すると ログイン先でそのコマンドを実行してくれる。 ssh user@192.168.1.1 "uptime" それを利用して、リモートで該当ファイルをcatし、 その出力結果である標準出力とdiffをさせることによって実現できる。 ssh user@192.168.1.1 "cat .bashrc" | diff - ./.bashrc また、プロセス置き換え(Process Substitution)を利用しても実現可能。 diff <(ssh user@192.168.1.1 "cat .bashrc") <(cat .bashrc)

    kamipo
    kamipo 2009/10/06
  • Thriftを使って俺俺Key-Value Storeを作った - nokunoの日記

    っていうタイトルにしようと思ったんだけど、要するにThriftを使ってTxをサーバーとして使えるようにしました。 Thriftについてはこちら。Thriftインストールメモ - nokunoの日記 Txについてはこちら。Tx: Succinct Trie Data Structure READMETxThrift 1.00 2009/09/19動作環境:LinuxTxThriftはThriftを用いてTxをサーバーとして利用できるように拡張したソフトウェアです。TxThriftは、Txの持つ以下のような特徴を引き継いでいます。1. キーを圧縮して持つため、メモリー使用量が少ない2. 自然言語処理に必要なcommon prefix searchなどを高速に行うことができる3. 静的にインデックスを持つため、初期化後はキーの追加や削除はできないTxThriftの応用例として、以下のようなアプリ

  • Thriftインストールメモ - nokunoの日記

    かな漢字変換エンジンのような複雑なソフトウェアの開発には、シンプルなLAMPのアプローチだけでは限界があると最近は感じています。以前SWIGを使ってAnthyのライブラリをPHPから使えるようにしたのですが、SWIGのような拡張モジュールによる連携ではスクリプトが呼ばれるたびに初期化が必要となる、という問題点がありました。 というわけで多言語RPCフレームワークであるところのThriftを使ってみることにしました。まずは以下のページから体をダウンロードします。Apache Thrift次に公式Wikiを参考に、体と利用言語ごとのインストールを行います。FrontPage - Thrift Wiki以下のページのサンプルを実行してみます。Ubuntu 8.04 で Thrift を試してみた - なんとなく日記やり方はURLの通りですが、PHPの場合が紹介されていなかったので、thrif

  • Mac OS Leopard 上の apache + mod_perl2 で XS モジュールが動かないときは - Yappo::タワシ

    [Mon Sep 01 21:00:44 2008] [error] [client 127.0.0.1] failed to resolve handler `MyApp::ModPerl': Can't load '/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Class/MOP/MOP.bundle' for module Class::MOP: dlopen(/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Class/MOP/MOP.bundle, 1): no suitable im こんなエラーが出ちゃう時はfileコマンドすればわかるんだけど $ file /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Cl

  • DebianEtchにて複数起動させたMySQLへphpmyadminから明示的にアクセス出来るようにする - u-ichiのにっき

    複数起動させたMySQLを操作するために楽したいって事でphpmyadminからアクセスしようとしていたけど、これまた結構苦しめられたので設定をメモ。 OS Debian Etch Version4.0 mysql version 5.0.32 起動待ち受けポート 3307 新DBmysql1 新DBのsocket場所 /var/run/mysqld/mysqld1.sock まず、phpmyadminをaptでインストールする。 % sudo apt-get install phpmyadmin 次にapacheからアクセス出来るように設定する。 今回はここは飛ばす。 さて、題のphpmyadminから複数のMySQLサービスへのアクセスだが、phpmyadmin自体が複数サーバ接続に対応しているため、それを利用する。 Debianの場合は/etc/phpmyadmin下にコンフィ

  • Rubyのblock、Proc、lambdaを理解する - このブログは証明できない。

    新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyblock、Proc、lambdaはパワフルですが、解りにくい。Rubyはクロージャを使う方法が4つあって、それぞれチョットずつ違います。ここでは、そのへんを解説したいと思います。 Block もっとも簡単で、かつRubyっぽいと言えば、Blockですね。 array = [1, 2, 3, 4] array.collect! do |n| n ** 2 end puts array.inspect # => [1, 4, 9, 16] 何が起こっているか? まず、block付きでArrayの"collect

    kamipo
    kamipo 2009/08/13
    Procはメソッドではなく、コードスニペットです。このため、Procのreturnは"proc_return"メソッドのreturnになります。lambdaはメソッドと同じように動作します。引数の数をチェックし、返り値を返します。
  • Re: はてなブックマークのコンテンツの JavaScript を高速化する - つれずれなるままに…

    Reply to はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記 「重い箇所2:HatenaStar.js 1738 行目」で取り上げられていた Hatena.Star.Button.reateButton ですが、Flyweight パターンのアイデアと Element.cloneNode() を利用したところ、手元の環境(WinXP,Fx3.0)で7.7倍速くなったのでお伝えしておきます。 修正コード /* Hatena.Star.Button */ Hatena.Star.Button = new Ten.Class({ createdButton: {}, createButton: function(args) { var src = args["src"]; if (!this.createdButton[src]) { var newimg

  • 普通の検索ボックスを作りました - 最速チュパカブラ研究会

    The JUI 2009 Returns で Paul が CSS Transforms をプッシュしていたので、それにつられてデモを一つ作ってみました。 http://gyu.que.jp/giftbox/google/ 見てのとおり、普通の検索ボックスです。 普通にクエリ入力できます 普通に検索結果を見られます 箱の中にまた箱があることもあります。 …という感じで、また3Dネタですが、単なる画像ではない「生きている」HTML要素がグリグリ画面上を動き回れるというのは、何か新しいことができるんじゃないかという可能性を感じます。Canvas のほうは環境マッピングとかやって見た目は派手でしたが、いずれ O3D やら 3D Canvas やらが普及するまでの「つなぎ」です(だから、ライブラリ化したりする気がおきなかったんですが) しかし、IFRAME を変形させながらネストしてもしっかりレン

    普通の検索ボックスを作りました - 最速チュパカブラ研究会
  • Ruby Sequel DBアクセスライブラリ - yshの日記

    Objecttank@rubyDBアクセスライブラリをDBIからSequelに移行中。Sequelの参考ページhttp://sequel.rubyforge.org/http://www.slideshare.net/zhesto/ruby-off-rails-japanesehttp://xxx.mostevildanceclassics.com/page/r/SequelRubyインストール sudo gem install sequel とりあえず実行sequelのコマンドラインツール。railsのscript/consoleのようなもの。 sequel mysql://user:password@localhost/dbname DBという名前の変数に接続オブジェクトが格納されるテーブル名=userがあったとすると、、、 DB[:user].filter(:id => 10).a

  • Processing.jsで魚の群れシミュレーション - p4lifeのメモ

    Mozilla の John Resig さんが作った Processing.js をさっそく試してみました.プログラムのネタは今ホッテントリになっている「ほぼ日刊イトイ新聞 - がんばれ森川くんの遺伝子くん」の「群れの知能」に書いてある Boid(birdoid, Bird android)です. Boid は鳥や魚の群れの振る舞いを再現するアルゴリズムで,次の基的なルールからなります.◆ルール1:近くの鳥たちと飛ぶスピードや方向を合わせようとすること◆ルール2:鳥たちが多くいる方へ向かって飛ぶこと◆ルール3:近くの鳥や物体に近づきすぎたら、ぶつからないように離れることhttp://www.1101.com/morikawa/2001-06-25.html群れの中の各個体をこのような単純なルールに従わせるだけで,一見複雑な動きを簡単にそれらしく再現することができます. 「群れの知能」を

  • zshのzargsコマンドの使い方 - 技術メモ帳

    zsh には、zargsコマンド(組み込み関数) というのが用意されている。 これは、拡張グロブ用の xargs コマンドと言っても良いだろう。 マニュアルを見ると、xargs コマンドとオプションは、完全に互換しているらしい。 autoload zargs とする事で利用可能だ。 使い方だが、xargs というと、標準入力から読み込んだ要素、行に対して 特定のコマンドを実行するというものだが zargs の場合は、引数に指定した 拡張グロブ に対してこれらの処理を行う。 % zargs OPTIONS -- 拡張グロブ -- 実行したいコマンド たとえば、xargs で一番利用されると思われる ファイル数が ARG_MAX を越えてしまっているディレクトリ内のファイルを まとめて削除したい場合などは、次のようなコマンドを入力すれば良い。 % zargs -- ./* -- rm これだけ

    kamipo
    kamipo 2009/07/01
    zargs -- ./**/*.mp3(.) -- rm
  • Passenger を使ってサブドメインではなく Rails と Sinatra を共存させる - oooooooo

    概要 redmine.example.com や sinatbbs.example.com ではなく、 www.example.com/redmine/ や www.example.com/sinatbbs/ にする方法。 Rails 編 DocumentRoot が /www/htdocs/ だとする。 Rails で作られた Skip や Redmine が /home/oooooooo/redmine-0.8/ や /home/oooooooo/skip-1.1.0/ だとする。 $ cd /www/htdocs/ $ ln -s /home/oooooooo/skip-1.1.0/ skip $ ln -s /home/oooooooo/redmine-0.8/ redmine httpd.conf に下記を追加。 RailsBaseURI /redmine RailsBaseUR

  • ssh-copy-idコマンドで公開鍵をリモートホストに登録する - 技術メモ帳

    http://www.t-dori.net/k-way/?date=20061218 こんなコマンドがあったのか。常識? ssh-copy-id username@hostname.example.jp か。パスワード認証のパスワードが求められる。 あああ、こんな便利なコマンドあったのか。 いわゆる authorized_keys に登録する処理が簡単に行える。 ただ、ほとんどの環境に入ってない。 最近のOpenSSHだと入ってるのかな。 ちなみにいつもはこうやってる。 $ cat ./.ssh/id_rsa.pub | ssh user@remote_host "cat >> ./.ssh/authorized_keys" 参考: http://www.delafond.org/traducmanfr/man/man1/ssh-copy-id.1.html http://takkan-m

    kamipo
    kamipo 2009/06/10
    cat ./.ssh/id_rsa.pub | ssh user@remote_host "cat >> ./.ssh/authorized_keys"
  • 技術メモ帳 - pgrep, pkill を使用してプロセスを殺す

    最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep

    kamipo
    kamipo 2009/06/05
    pgrep -f 'プロセス名'; pkill -f 'プロセス名'