サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
画力アップ
blog.livedoor.jp/k1LoW
Dame Margaret Barbour designed the Bedale with equestrian practicalities in mind ? with a shorter length, tailored classic fit, rear vents and the essential Nylon inner ‘drip-strip’ that prevented wetness from horses seeping into the jacket. Made with mediumweight 6oz waxed cotton and fully interactive with optional zip-in thermal liners and hoods, the Bedale is a brilliant all-year-round jacket b
時々必要なことが多い「input要素に動的に3桁区切りのカンマを入れる」機能をもったjQueryプラグインjquery.value.filter.jsを作った。 jquery.value.filter.js jquery.value.filterという大それた名前がついているのは同じようにcodecheck.inのメンバーでコミットしているjquery.textnode.filter.jsのようにいろいろ関数を増やそうと思っているからだったりする。 使い方としては、 $(filteredElement).money(submitElement);みたいに入力値にフィルター(カンマ区切り)をかける要素とsubmit要素を指定するだけ。 submit要素を指定すると、submit時にカンマは取り除かれるので、サーバサイドでいちいちカンマを取り除かなくてもいい。 見た目だけマニー。 おそらく車輪
Webシステムでファイルアップロードが必要な場合、自分は即Base64でエンコードしてテキストデータとしてDBに保存することを考える。 理由として、 ・システムはドキュメントルート内、格納データはDB内ときれいにわかれる。 ・バイナリという面倒なデータの扱いをテキストデータとして考えることができる。 など。 参考URL:画像もDBに格納して管理する −扱いがめんどうなLOB(ラージオブジェクト)は使わない方法も含め 正直、(スタンダードであろう)アップロードされたファイルをどっかのディレクトリに保存するのはあまり好きになれない。 で、CakePHPでの話。 CakePHPでは$_FILESの内容も$this->data以下にセットして渡してくれる。 これは結構うれしいのだけれども、バイナリデータをBase64エンコードしてテキストデータとして保存するためには、結局$this->Model-
追記 tenjin.web/4のページができています。 ------------------- 自分が福岡最強と勝手に思っているtenjin.webの第4回となる勉強会tenjin.web/4が10/18に開催される模様。(前回レポート) 以下、MLからの抜粋。 tenjin.web/4 内容:JavaScriptでゲームを作りながらオブジェクト指向プログラミング入門 目標: ・動くゲームを作ってみよう ・Rhino本第5版の7〜10章の理解 背景と目的: Rhino本の7〜10章はJSでオブジェクト指向プログラミング(OOP)する上で非常に重要な内容が書いてあるが、内容が系統的であり、これを読んですぐに理解して実践に移すのは難しい。また、JSのOOの仕組みは非常に自由度が高いため、使うライブラリや人によってスタイルが異なり、慣れるまでどのように書くのが正しいのか確信が持ちづらい。 一方で
最近複数のサーバに接続してファイルを編集することが多くなった。 まあつまり複数のプロジェクトがパラレル走っているというダークな状況なわけなのだけれども、だんだんサーバごとにEmacsの環境を構築するのが面倒になってきた。 というわけで、今まで導入していなかったTRAMPをインストールすることにした。 TRAMPはEmacsでリモートファイルの編集をするためのパッケージ。 まずはファイルをダウンロードして任意のディレクトリに解凍。 $wget http://ftp.gnu.org/gnu/tramp/tramp-2.1.9.tar.gz $tar zxvf tramp-2.1.9.tar.gz $mv tramp-2.1.9 ~/emacs/tramp .emacsに以下の行を追加 ;;tramp (add-to-list 'load-path "~/emacs/tramp/lisp/")
社内のvim使いが動的略語補完が便利だと自慢していたので、ものすごくうらやましかったのでEmacsでできないか調べてみた。 ら、あった。 んでもって、dabbrevを日本語で使うためのEmacs Lispも発見。 使い方としてはdabbrev-ja.elをダウンロードして登録。んでもってloadするだけ。 自分はキーバインドを使いやすい場所(C-j)に変更。 ;;動的略語補完dabbrev-jaのload (load "dabbrev-ja") (global-set-key "\C-j" 'dabbrev-completion) ;;デフォルトはM-/ 個人的に長い変数名をつけることが多いのですごい便利。 バッファ内から動的に単語を補完してくれるというところも設定ファイルいらずで楽。 【参考URL】 日本語で dabbrev を使う ― dabbrev-ja
いつものようにcodecheck.inにcommit。 最近CakePHPの開発でSimpleTestを使っていくようにしている。まだ全然慣れないけれども。 で、ControllerやModelから対応するtests/casesやfixturesに簡単にスイッチできるようにしたかったので、cake.elで対応した。 詳しくはcodecheck.inのWikiで。 また、最近Modelの肥大化が進んできていて(いい傾向)、それに伴いModelメソッドへのスイッチが欲しくなってanything-c-cake.elにあたらしいanything-sourceとしてModelのメソッドにスイッチするanything-c-cake-model-functionを追加した。 php-completion.elのメジャーバージョンが待ち遠しい。 つい最近anything-etags.el 1.0.0をリリ
自分はIRCクライアントは当然のごとくRieceを使っているのだけれども、screenのバッファにあるせいでついつい自分宛メッセージを逃してしまう。 「なんかポップアップとかで表示してくれたらいいのになー」とか常々思っていた。 MacにはGrowlというメッセージライブラリがあるようで、Ubuntuにはないのかよ!と思っていたら、notify-sendという思いのほかいい感じのものを発見。 Ubuntuにはデフォルトで入っていた。 あとはRieceの設定だ!と思ったら、さらにここでもつまづいた。 そもそもmessageを受け取れなかったり、messageを受け取ったらRiece側からmessageが消えてしまったり。 んでもって、紆余曲折をへてなんとか設定成功。 以下のようなコードをinitに書けばよい(riece-keywordsは変更する)。 (setq riece-keywords
最近のVMwareではVMware Toolsも無償になっているらしく簡単にインストールできると聞いてさっそくいれてみることに。 普通の方法だと、VMware Serverのメニューで[VM] > [Install VMware Tools]とすればCD-ROMとしてマウントされるので、その中のrpmパッケージやらtarballやらをゲストOS側でインストールすればいい。 ところがCentOS5になってカーネルが大幅に変更されたらしく、VMware Server 1.0.5にバンドルされているVMware Toolsがうまくコンパイルできない。 実際失敗してXは立ち上がらないわネットワークはつながらないわで大変な目にあった。 で、どうすればよいかというと、ようはCentOS5.xのカーネルに対応しているVMware Toolsを取得できれば良いわけだ。 方法としてはまさにここに書いていると
今日でやっと社会人1年目終了(もう昨日か)。 長かった1年だった。いや、いい意味で。 以下個人的1年のまとめ。つまらないです。 --------------------------------------------- 若干10名弱の会社で、当然なのかどうなのか新入社員としての扱いはなく、本当にいろいろな開発案件に携われて本当にいろいろな経験をした。 それだから長く濃い1年だったんだと思う。 最初の案件はなんだったかな。 確か自社のWebサイトのリニューアルだったと思う。 一応デザインのセンスを買われてそこらへんをやらせてもらえてた。Adobe CSもそろえてもらって、快適な環境。 そのころWeb標準に凝っていたのだけれども、CSSをどうにも使いこなせずかなり苦労した。 んでもって実際にコーディングに進んでいった。 今でこそWebアプリケーションの開発に何の抵抗もないけれども、はじめはLi
東京勉強会参戦後半。 tokyo-emacs #x01。 最近はEmacserには肩身の狭い世の中になってしまっているのだけれども、Emacserで集まるとこうも無敵感があるとは思わなかった。 すっげー楽しい。 以下勉強会メモ。 Emacsの基本を勉強しなおそう市民連合 ミラクルリナックスのハッカー吉岡さんによる基調講演。 とりあえずみんなデフォルトで市民連合会員になりました。 「口に出すことで実現する」ということを体現している様はかっこいいです。 .emacsコピペ厨のためのEmacs Lisp講座 Lisp大好きid:hayamizによるEmacs Lisp講座。 なにはなくとも 括弧は空気 括弧は空気 括弧は空気 Emacs Lispは括弧をかぶった普通の言語。 ヘルプの使い方を知ってEmacsのことはEmacsに聞く。 ヘルプは使うべき。 macroはs式(式、関数)を受け取って変
Copy/Cut/Paste March 05, 2013 移転? http://k1low.hatenablog.com/で時々書いています。 k1LoW at 21:35│コメント(0)│トラックバック(0) October 04, 2011 また祭がはじまった! PHPMatsuri2011 1年ぶり! 今年はダークサイドに落ちるよ! タグ: PHP CakePHP k1LoW at 22:27│コメント(0)│トラックバック(0) November 08, 2010 俺のMatsuriが終わった やっと! k1LoW at 20:01│コメント(0)│トラックバック(0)│PHP TagCloud Profile 記事検索
cake.el CakePHP勉強会で紹介したcake.el、実は開発するモチベーションになった1つがCakePHP勉強会そのものだったりする。 もともと「MVC間の移動ができたら便利だよなー」とかはcohtanとかと話していたのだけれも、#codecheckin@irc.codecheck.inで「CakePHP勉強会でCakePHP用Emacs Lispを紹介できたらかっこよくね?(よく考えたら別に格好良くない)」とか盛り上がって、そこから実際に実行に移したのが開発秘話。 動機が若干不純。 そこから"入門GNU Emacs"に始まり、"拡張Emacs"、"GNU Emacs Lispリファレンスマニュアル"と、手当たり次第読んだ。マイナーモード開発に必要になるであろう部分が主だけれども。 通勤中にヘッドホンしながらオライリー本を広げている奴もなかなかいまい。 んでもって実際に作ってみて
自分はEmacsを使い始めて1年弱になるのだけれども、いまだにカーソル移動のキーバインドに慣れない。 カーソルキーを使ってしまうし、Backspaceもつかってしまう。 このままじゃまずい。 ということでEmacsキーバインド強制するEmacs Lispを作ってみた。名づけて鬼軍曹.el(drill-instructor.el)。 drill-instructor.el drill-instructor.elをロードパスの通ったところに置いて、 (load "drill-instructor") とすればいつでも鬼軍曹を呼び出せる。 M-x drill-instructorとコマンドを叩くと、とたんにカーソルキーとBackspaceが使えなくなり、代わりにC-f、C-b、C-n、C-p、C-h(Backspace)を使わざるを得なくなる。 んでもって、ついついカーソルキーなぞ押してしまおう
CakePHPでAjaxで処理をするときは大抵controllerのaction(メソッド)でサーバサイドを実現するとは思うのだけれども、そのときに注意しなければいけないことがあったりする。 久しぶりにCakePHPでAjaxを使って、忘れかけていたのでメモ。 デバッグ情報を出さないようにする 開発中は基本的にサーバサイドからのデバッグ情報(CakePHPでいうとSQLログとか)は出したままにするけれども、Ajaxではそういう不必要な情報がレスポンスとして返されてしまうと機能しない。なのでデバッグ情報をOffにする。 Configure::write('debug',0); Ajax(XMLHttpRequest)以外でのアクセスを制御する Ajaxをメソッドで実現すると、そのままだとURLで直接アクセスしても動作してしまう。 それがどうしたというレベルかもしれないけれどもAjax以外のア
自分の開発環境は大抵PuTTY + Emacsなのだけれども最近GNU screenを知って、今日さて使っていこうかなと思っていたらscreenごしにEmacsを使うとどうしてか日本語が入力できない。 シェルでは入力できるのでEmacsの設定が不十分なのだろうと思って調べてみるとキーボード入力のエンコードもしなければならないということが発覚。 で、PuTTY + screen + Emacsで日本語入力するための最低限の設定は以下。 (接続するLinuxのlocaleはja_JP.UTF-8) ;;日本語環境:UTF-8 (set-language-environment "Japanese") (set-terminal-coding-system 'utf-8) (prefer-coding-system 'utf-8-unix) (set-keyboard-coding-system
Perl MongerがVimでHTMLやCSSの保存と同時に各ブラウザのリロードを実現していたりするのを横でうらやましく思っていたのだけれども、よく見たら元ネタはEmacsで実現していた。 お、と思ったらAppleScriptを使用。 またMacかぁああ!! せっかくEmacsがローカルに手に入ったのに!! で、 「Ubuntu Scriptとかあればなー」と#codecheck.in@irc.codecheck.inでボヤいていたら、mizzyさんがMozLabというかなりナイスなFirefox AddOnを紹介してくれた。 どうやらMozLabの中のMozReplというモジュールがFirefox自体とのtelnet接続を実現してくれるらしい。 telnet? お、これEmacsで接続できるんじゃね? で、調べてみるとmoz.elというEmacs Lispも配布されてた。いたれりつくせ
必要に迫られてsshトンネリングをしたのでメモ。 sshトンネリングを使うときの要求としては多分2つあって、「sshプロトコルを使って暗号化されたセッションの中で他のプロトコルをセキュアに利用したい(カプセル化したい)」場合と、「そもそもsshポートしか開いていない場合にそのポートを他のプロトコルの経路として使いたい」場合があると思う。 どちらの場合でも使い方は基本的に同じ。 例えばPostgreSQLサーバに接続するpsqlコマンドをsshトンネリングして使う場合を想定してみる。 【前提条件】 ・ローカルサーバ:localhost ・リモートサーバ:remote.com ・リモートサーバユーザ:remoteuser ・リモートsshサーバポート:22 ・リモートPostgreSQLサーバポート:5432 ・データベース名:testdb ・データベースユーザ:dbuser まずローカルサー
自分は普段CakePHPメインで仕事をしているのだけれども、ひょんなことからRuby on Railsを触ることに。 実際には既にあるプロジェクトのソースを触るだけなので、デプロイなどはする必要はないし、作業は主にViewファイルの編集、CakePHPとディレクトリ構成も近い、と「まあ、簡単だろう」とタカをくくっていたら 作業が遅々としてすすまない。 原因はRubyやRailsの構文を理解できないとかそういうことではなくて、cake.elの機能とキーバインドに慣れすぎた。 これは困った。 いづれはポピュラーなRails用マイナモードのRinariを使って・・・とか思っていたのだけれども、なまじMVCの構成が近いので指がcake.elのキーバインドで動いてしまう。 仕方ないやということでcake.elの機能のRails移植を開始してみた。 http://github.com/k1LoW/em
js2-modeがすごい。便利すぎる。 js2-modeって何かというとJavaScript用のEmacs Lisp。 Googleで"javascript-mode"を検索するといくつか出てくるのだけれども、 js2-modeはかなり機能強化がされている。 従来のJavaScript用のelispが持っていたインデントやシンタックスハイライトはもちろん、 リアルタイムの構文解析によるシンタックス"エラー"ハイライティングやいくつかの入力補完機能まで実装されている。 さらにまだ未確認だけれどもJSDocのコメントフォーマットにも対応しているらしい。 とにかくリアルタイム構文チェックが便利すぎる。 間違えるとWarningなら即アンダーライン、Errorなら即ハイライトされる。 いや、ほんと便利これ。構文的なものはFireBugで確認するまでもない。ほんと早い。 そういえば最近Emacsなん
ローカルでもIRCを立ち上げて社内情報共有ツールにしよう。ということで設定。 まずはCentOS5にIRCdをインストールする手順のとおりにインストールを行う。 CentOSだと一筋縄ではいかなかったので参考URLが非常に助かった。 一応以下にインストールメモ(参考URLとほぼ同じ)。 IRCdのインストール まずgcc3.4をインストール。 # yum install compat-gcc-34 次にIRCdのソースをダウンロード。 $ wget http://www.ircnet.jp/dist/server/jp-patch/irc2.10.3p7+hemp2+jp6.tgz $ tar zxf irc2.10.3p7+hemp2+jp6.tgz $ cd irc2.10.3p7+hemp2+jp6 configure。 $ ./configure $ cd i686-pc-linu
PHPでssh接続をするためにlibssh2とPECL::ssh2を使うことにしたのだけれども、 結構インストールに手間取った。 以下インストールメモ。 【libssh2】 libssh2のためにopenssl-develをインストール。 # yum install openssl-devel libssh2をダウンロードしてインストール。 # wget http://nchc.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.18.tar.gz # tar zxf libssh2-0.18.tar.gz # cd libssh2-0.18/ # ./configure # make # make install 【PECL::ssh2】 phpizeコマンドを利用するためにphp-develをインストール。 # yum install ph
【CodeReading】CakePHP1.2-betaでのValidation機能とModel::isUnique()の連携 CakePHPは1.2系からValidationがかなり強化されたということで、「とりあえずコードリーディングかな」とModelクラスを読んでいたらModel::isUnique()というメソッドを発見。 ようは、「あるモデルのフィールドを対象に既に登録されているデータと同じものがないかをチェックする」メソッド。 例えばログイン名といったシステムで重複が許されないフィールドに適用するようなイメージ。 んでもってValidation機能の使い方なんかも調べていたら、キュピーン!! 例えば、 CREATE TABLE users( id SERIAL, --id login_name TEXT, --ログイン名 password TEXT, --パスワード creat
ときどきシステム的に直前にINSERTした(CakePHPではsave()した)レコードのidを取得したいときがある。 CakePHPではModel::getLastInsertID()というメソッドが提供されている。 $this->Post->save($this->data); $last_id = $this->Post->getLastInsertID(); 結構楽に取得できるのでいい感じ。 【参考URL】 http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=563&forum=6
CakePHPでは$html->link()を使うとリンクをはることができて、$html->image()を使うと画像タグをはることができる。 ということは画像にリンクをはることもできるはずだし、「できるよ」とリファレンスに書いてあるのだけれども、どうしても$html->iamge()の画像タグがエスケープされてしまう。 なんでだろうと思ってじっくりリファレンスを見たら$html->link()の第5引数が$escapeTitleになってた。 てことで以下のように第5引数をflaseにすれば画像にリンクを張ることが可能。 <?php echo $html->link($html->image("test.png"), '/',null,null,false);?>
ソフトウェア開発に便利なsubversionとtracを設定する機会があったのでメモ。 まあ、大規模なソフトウェア開発では今回の設定で使っていないので、結構甘いとこあるかも。 【subversionのインストール】 ■バージョン管理ソフトsubversionのインストール。 #yum -y install subversion mod_ssl 【subversionレポジトリの作成】 ■プロジェクトとして"testproject"を想定してリポジトリを作成。 # mkdir /home/svn # cd /home/svn # svnadmin create /home/svn/testproject # svn mkdir file:///home/svn/testproject/trunk file:///home/svn/testproject/tags file:///home/s
今まで知らなかった・・・。自分は開発環境でcoLinuxを使っていたりするのだけれども、Windowsとのファイル共有にはもっぱらcoLinux側でSambaを立てている。 と思ったら、実はcoLinuxには"cofs"という強力なファイル共有機能があるということが判明。なんてこった。 以下設定例。 C:\shareを/shareにマウントするときは設定ファイル(default.colinux.xmlなど)に以下を追加。 <cofs_device index="0" type="flat" path="\DosDevices\C:\" enabled=true /> 以下のコマンドでマウントする # mount -t cofs cofs0:share /share これで普通にcoLinux側からWindowsディレクトリにアクセスができる。 なんて簡単・・・
実は過去のエントリは結構書き換えてたりする。理由は明らかで、間違いがあったら後で自分が活用する時大変だし、設定変更したのならその変更は反映させておきたいから。 その1つが文字コードの設定。実ははじめからUTF-8に統一したかったのだけれどもどこをどう設定すれば良いかわからなかったので、結局最初は ・Emacs:sjis ・システムのlocale設定:eucJP ・samba:eucJP ・putty:eucJP だったりした。ぜんぜんUTF-8でないでやんの。 てことで、上記の全てUTF-8化するメモ。 【前提】 OS:CentOS4.4 on coLinux (emacs/日本語環境インストール済み) ※CentOSインストール時にcoLinuxインストーラを使っていたら日本語環境はインストールされている。 【emacsの初期エンコード設定 -> 日本語環境/UTF-8】 ホームディレク
仕事でPHPでの開発が必要になりそうだったので、自前のcoLinuxに環境を構築しようとしたんだけれども、どうやらCentOSのyumのデフォルト設定ではPHP4までしかインストールできないっぽい。 使いたいのはPHP5だったんで、またmakeか・・・。と思っていろいろ調べてみるとどうやらリポジトリの設定を変更すればなんとかyumでアップデートできるらしい。こんにちは、makeを嫌うへたれLinuxユーザです。 以下インストールメモ。 【前提】 ・OS:CentOS4.4 on coLinux(baseインストール) ・Apache2(httpd):インストール済・php:PHP4がインストール済 ・coLinuxのアドレス:192.168.246.111またはcolinux 【PHPのアップデート】 まずはyumのリポジトリの設定変更。 /etc/yum.repos.d/CentOS-B
次のページ
このページを最初にブックマークしてみませんか?
『blog.livedoor.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く