2007-01-01から1年間の記事一覧

catalyst で作ったアプリを capistrano でデプロイ

capistrano インストール gem install capistrano Capfile を配置 capify コマンドで Capfile と config/deploy.rb を作ってくれるが、今回は自前で用意する。好きなディレクトリに下記内容の Capfile ファイルを配置する。 catalyst.pl コマンドで作ったデ…

Programming Erlang 発売

Amazon から届くのが楽しみだ!

MacPorts 1.5.0 以降で rsync を使わず svn を使う

OSX 10.7 + MacPort 2.0.1 でも有効でした社内環境で外部への rsync が使えないので、svn を使って ports tree を更新していたのだが、久しぶりに portindex コマンドを実行したら失敗するようになってた。 そこで、MacPorts を現時点の最新版である 1.5.0 …

無料の SSL 認証局

同僚に教えてもらった。 https://cert.startcom.org/CA 証明書が予めインストールされているブラウザは下記 URI の通り。 https://cert.startcom.org/?app=140内輪向けのウェブサービスにぴったりだったので、早速、使わせてもらった。ありがたやぁ。

proc_lib で echoserver を書き直した

gen_server、supervisor、proc_lib の三つを押さえれば、httpd.erl の起動と停止の動作を理解する事が可能。 って事で、以前 みかログ: Erlang で echo server こちらで添削して頂いた id:cooldaemon:20070614 を proc_lib で書き直してみた。 -module(echos…

supervisor

仕事が落ち着いたので、erlang 勉強再開。 id:cooldaemon:20070625 と id:cooldaemon:20070630 で作った server を supervisor tree に入れてみた。 -module(sup). -behaviour(supervisor). -export([start_link/1, stop/0]). -export([init/1, worker_spec/…

Date::Japanese::Holiday を利用して Date::Simple に営業日を加算・減算する method を追加

強引ですが。 package Date::Japanese::BusinessDay; use strict; use warnings; use vars qw($VERSION); $VERSION = '0.01'; use base qw(Date::Japanese::Holiday); use Class::Data::Inheritable; package Date::Simple; { no strict 'refs'; *{__PACKAGE…

gen_fsm

httpd の source を見てたら Supervisor Behaviour を使っていて…Supervisor Behaviour を読んでいたら、supervision tree の考え方と実装方法を理解しなきゃ駄目っぽい気がしたので、OTP Design Principles の Overview に目を通してみた。で、以前、gen_se…

gen_server

前に作った echo server を gen_server 化しようと思ったのですが、幾つか疑問点が出てきたので、まずは、自分が理解した事をまとめてみようと思います。 カウンタを保持するサーバの例 内部で一つの数値を保持している 初期値/最小値 0 最大値 100 開始 gen…

gen_tcp の練習で echo server 書いてみた

-module(echoserver). -export([start/0, handle_connection/1, recv_loop/2]). start() -> {ok, ListenSocket} = gen_tcp:listen(8080, [{active, false}, binary]), io:fwrite("listen~n"), accept(ListenSocket). accept(ListenSocket) -> {ok, Socket} =…

Re: RubyよりPHPを好む初心者 (学習&開発コストの問題では?)

Matzにっき - RubyよりPHPを好む初心者 「初心者にもWebアプリケーションが書ける」という幻想を与えることで、バグだらけで、メンテナンス性が低く、セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。 エントリ…

勝手に返信 - viの操作体系は効率がいいんだろうか

vim

viの操作体系は効率がいいんだろうか:メモランダム 話が飛んだけど、vi使いの人は「入力モードからコマンドードに移行するたびにEscを押すこと」「コピー・切り取りの方法」この2点をどう考えているのか知りたい。 一応、vi 使いなので、返信してみます。 E…

コマンド一発で、screen を起動して Catalyst の各種ディレクトリに移動

Catalyst Teamwork with Screen and VIM この記事を見て、便利そうだと思ったので、即興ですが、こんなん作ってみました。 http://labs.miu.vc/svn/cooldaemon/env/bin/start_working_with_catalyst.pl ちゃんと動作確認してませんが、手元の環境では問題な…

:make を使う

vim

vim 使いには、当たり前の事なんでしょうけど、当たり前の事ができてなかったので反省。 以前、適当に作った、yaml_checker.pl や css_checker.pl も、quickfix で扱いやすい出力に変更。 map ,m :call SyntaxCheck()<CR> function SyntaxCheck() if &syntax == </cr>…

snippetsEmu.vim の簡単な使い方

vim

snippet_emu.txt を読んだので自分用の備忘録 人様が見る事を考えてないです。ごめんなさい。 基本の前に・・・ snippetsEmu.vim をロードすると、編集モードの時に を押した場合 にカーソルが飛ぶ。 適当にファイルを開いて、 を入力して、遠くは離れた行ま…

svk commit file の syntax ファイルを追加してみた

なんとなく、Subversion の commit 時みたいに色を付けたかったので。まず、filetype.vim に下記を追加 au BufNewFile,BufRead svk-commit*.tmp setf svk 次に、syntax/svk.vim を作成する。 syntax/svn.vim をコピーしてきて、下記みたいに適当に修正。 20,…

inflate_column

ブログが続かないわけ | DBIC で+select と+as : ああ、今頃気づくなんて... でも、どうにも不便だと思ってDBIx::Class::ResultsetのPODを読んでいると、+select と+as なるものがあるじゃないですか。これだと、まさに先ほど直感的に書いたような方法で書け…

MochiKit を使う際に、追加している関数を晒してみる(その2.partial)

id:cooldaemon:20070429:1177857285 の続き。 Mochikit.Base.partial は、前方から引数を束縛するのですが、任意の位置の引数を束縛したかったので、my_partial を作ってみました。 source の前に実例 var base_func = function () { map(function (arg, i) …

MochiKit を使う際に、追加している関数を晒してみる(その1.create_class)

prototype.js の Class.create の模倣+α。 var create_class = function () { var m = MochiKit.Base; var iter = MochiKit.Iter; var new_func = function () { if (typeof this._new !== 'function') { return; } this._new.apply(this, arguments); }; i…

Ext JS の mochikit-bridge.js 書いてみた(7割くらい動く)

prototype-bridge.js を修正して、mochikit-bridge.js 書いてみました。 Grid で、横幅が変更できなかったり、いろいろ不具合だらけですが。 (function(){ var libFlyweight; Ext.lib.Dom = { getViewWidth : function(full){ return full ? this.getDocumen…

vcscommand.vim が svk に対応してた

vcscommand.vim - CVS/SVN/SVK integration plugin : vim online すごく嬉しい・・・。 zsh の補完で満足してたけど、やっぱり vim から操作できた方が楽だ!

CSS の syntax check

WebService::Validator::CSS::W3C を使用すると、W3C CSS 検証サービス の API を使ったコマンド等が簡単に作れる。以下、やっつけで作った CSS のチェックツール #!/usr/bin/perl use strict; use warnings; use WebService::Validator::CSS::W3C; my $file…

.zshrc を修正

zsh

alias gd='dirs -v; echo -n "select number: "; read newdir; cd +"$newdir"' は不要 下記で、同等の効果が得られるので不要。 cd -[TAB]参考URI 【コラム】漢のzsh (5) 「あーっ!」というそのときのために - 備えあれば憂いなしの設定集 | エンタープライ…

MyObject.prototype = { /* ... */ } を使ってはいけない理由

404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門 IT戦記 - 「勝手に添削 - JavaScript 入門」を勝手に添削 知らなかったのでメモ。考えてみたら、確かにそうだ。 Mochikit ベースで他の方が書いた source を見て、何故、皆、クラス宣言で upda…

Crypt::SSLeay インストール時のエラー回避

どうでもイイ環境なので、適当にメモ。AIX ver 5.3 / xlc ver 5 / perl ver 5.6.1 上記の古〜い環境で、 Crypt::SSLeay ver 0.53 をインストールする際、下記のようなエラーメッセージが表示された。 "crypt_ssleay_version.h", line 1.10: 1506-296 (S) #in…

Twitter の Widget

便利だー。 http://www.apple.com/downloads/dashboard/email_messaging/twidgettwitterdashboardwidget.html http://www.apple.com/downloads/dashboard/email_messaging/twitterlex.html

Mochikit.DOM に Text Node を生成する便利な関数が存在しない理由

くだらない Entry なんですが・・・source を追うまで気がつかなかったのでメモ。下記のような HTML を・・・ <div id="gender_select"></div> 下記のようにしたい場合 <div id="gender_select"> <input type="checkbox" name="gender" value="man"/>man </div> Mochikit では appendChildNodes( 'gender_select', INPUT({type: 'checkbox', name: 'gender', value: 'man'}, n…

仮想画面一つを vim で占有する事にした

基本、QuickSilver しか使ってないので、Doc を非表示にした。 その勢いで、仮想画面一つを vim で埋めてみた。(本当は 2画面にしたいんだけどなー・・・) ついでに、vim 起動後に、画面を縦に分割。 set lines=50 set cmdheight=1 if has('mac') set col…

Textbox の Auto Complete (suggest っぽいの)

AutoComplete - MochiKit - Trac を見てもピンと来なかったので書いてみた。 汎用性無し、機能不足、負荷対策をしていないので、改良の余地がありますが、まー、雛形って事で。 autocomplete.html <html> <head> <script type="text/javascript" src="/path/to/MochiKit.js"></script> <script type="text/javascript" src="/path/to/autocompleter.js"></script> </head></html>

Line-Ending Punctuators を無効に

id:cooldaemon:20070221 の jslint を使って、下記の syntax check を行うと・・・ child_node: function (msgs) { return DIV( {'class':'error'}, UL({'class':'error'}, map(partial(LI, {'class':'error'}), msgs)) ); } 下記のエラーが出る。 xxxx.js:4…