サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
blog.livedoor.jp/k1LoW
PostgreSQLでDBの移行をすることがあったのだけれども、 移行元DB(含むサーバlocale)の文字コードがかつての主流EUC-JPで、 移行先DBの文字コードがUTF-8だったのでpg_dumpの際にちょっと困ったのでメモ。 dumpファイルがプレーンテキストならばdumpファイル自体の文字コードを変換したあとにdumpファイル内に書かれている"EUC-JP"を"UFT-8"に置換すればよいのだけれども、 ラージオブジェクトが含まれているとそうはいかない。 で、検索してみるとPostgreSQLのML解決方法を発見。 まず移行元(EUC-JP)のpostgresql.confを編集。 client_encoding = UTF-8 で、設定再読み込み。 /etc/init.d/postgresql reload この状態でpg_dumpをすれば移行先で普通にpg_restoreが
自分は普段CakePHPメインで仕事をしているのだけれども、ひょんなことからRuby on Railsを触ることに。 実際には既にあるプロジェクトのソースを触るだけなので、デプロイなどはする必要はないし、作業は主にViewファイルの編集、CakePHPとディレクトリ構成も近い、と「まあ、簡単だろう」とタカをくくっていたら 作業が遅々としてすすまない。 原因はRubyやRailsの構文を理解できないとかそういうことではなくて、cake.elの機能とキーバインドに慣れすぎた。 これは困った。 いづれはポピュラーなRails用マイナモードのRinariを使って・・・とか思っていたのだけれども、なまじMVCの構成が近いので指がcake.elのキーバインドで動いてしまう。 仕方ないやということでcake.elの機能のRails移植を開始してみた。 http://github.com/k1LoW/em
モダンなPHPの開発環境の構築方法をみていて、「はやく5.3.xに慣れないとなー」とか思っていたら、 "アプリケーション以下に lib/ などとディレクトリを作って、その中に pear コマンドなどでパッケージを入れる+ include_path を調整するのが良い(まあ、だいたいフレームワークがやってるよ)。 <中略> 余談だけど、Ethnaなら pear-local コマンドってやつがあるよ!" という記述が。 なんだってー!CakePHPにはそんな便利なコマンドない! ということで作ってた。 pear_local app/pluginsにディレクトリを展開して cake pear_local install Net_UserAgent_Mobile で、使用可能。 app/vendors/pearにライブラリがインストールされてapp/config/bootstrap.phpに読み込
自分はプライベートな開発は基本的にGitに移行しており、それ以外の案件もgit-svnを使っていたりする。 で、Gitは便利で楽。その上で欲しいものが2つ。 ・リポジトリブラウザ:せっかく分散リポジトリなんだし。 ・現在のbranchをブラウザ上でも常に見たい:zshの設定であるようなやつ というわけで、それらを実現するCakePHPプラグイン"Fatty"を作ってみた。 http://github.com/k1LoW/fatty 詳しくはREADMEで(スクリーンショットも含めてちゃんと書いた)。 ちなみに、なんで"Fatty"という名前なのかというと、ある人に「バカ(Git)にケーキ(Cake)を与えたらどうなる?」と聞いたら、即答で 「そりゃデブ(Fatty)になるでしょ」 と返って来たから。
CakePHPはテスティングフレームワークとしてSimpleTestにデフォルト対応をしているのだけれども、正直*fixture.phpの$recordsのテストデータを書くのが面倒。 とくにリレーションが複雑な場合。 ちなみに、Ruby on RailsはテストデータをYAMLで書けるらしく、ハッシュで書かなければならないCakePHPよりましだけれどもそれでも面倒。 じゃあ、データベースのレコードデータを活用するように*fixture.phpの$importパラメータを駆使すればいいのだけれども、ここがなかなか鬼門で、いままで運用にのる形でうまくいった試しがない。 やっぱり$recordsを書いて対応するのがデフォルトで安定しているみたい。 でも$recordsを書くのは面倒なわけで、「*fixture.phpの$recordsをデータベースのデータから生成するようなプラグインないです
昨年から本業が忙しい時期が続き、ここもずっとほったらかしになってた。 本業が忙しいということはCakePHPを使ってシステム開発をしていたということで、必然的にcake.elも拡張され続けてる。最新のバージョンは1.2.4。 前回のcake.elの記事が1.1.0のcommitのお知らせなのでかなり変わっていることになる。 最新のcake.elは、auto-complete.elを使ったモデル/コンポーネント/ビヘイビアのオムニ補完に対応していたり、cake-switchが空気を読んでファイルスイッチをしたり(オムニスイッチ?)、リポジトリがGitHubに移行していたりする。 最近はCakePHPの1.2系と1.3系を、どうやって両方のサポートをするか(もしくは1.2系を切るか)を考え中。 CakePHPのソースから1.2系か1.3系かを判断する良い方法とかないですかねー。 id:cake
(遅ればせながら)CakeMatsuriに参加してきた! 今回は協賛起業+個人としての参加だったのだけれども、本当に楽しめた2日間だった。 以下個人的な感想。 Day1 Workshop 今回CakeMatsuriは2日間構成で、1日目はワークショップ。 CakeMatsuri青年団の方々が直接講師として、またサポートとして教えてくれるかなり贅沢な濃縮された1日となった。 グルーピングスタイル ワークショップのコースは入門/実務/英語という3コースとなり、自分は実務ワークショップに参加。 最初に仕事で若干遅刻したもののなんとか最初のプログラムに間に合った形で入場すると、全体がグループ分けされた形になっていた。 この「グループ分け」がかなり良くて、グループのメンバーとも交流して情報交換などもできたし、途中の昼食などもいい感じで他の参加者とも話せるきっかけになった。 実践コース ワークショップ
Webシステムの開発などをしていたらログインするサーバは複数あるのが当たり前なわけで、自分はUbuntuから外部の公開鍵認証のサーバとかパスワード認証のサーバとかに適当にログインして開発してたら、以下のような感じで怒られるようになってしまった。 Received disconnect from IPAddress: 2: Too many authentication failures for username 暫定的な解決策としては、認証形式を指定したらなんとかなるのだけれども、そもそもなんでいきなりこうなったのか原因がわからない。 ssh username@IPAddress -o PreferredAuthentications=password なんでだろ。
PHPカンファレンス2009でLTをさせてもらった。 自分はTokyo TyrantのPHPインターフェースの紹介をさせてもらった。 はじめての本格的LT。タイムリミットが近づくのは怖い。 PHPカンファレンス2009感想 あの規模のイベントをやりきるスタッフの方々は本当にすごいと思う。 内容も個人的にヒットするものが多く、すごく刺激になった。 スタッフの皆様、参加者の皆様お疲れさまでした! 自分は初めての参加でしたが非常に有意義に過ごせました。 また次回も楽しく参加できればと思います。
TechTouch #0b01なんとか終了。 #1のテーマは"CakePHP Practical Tips"ということで、「社内新人にCakePHPでの開発効率化のためのTips的なものを教えておこう。そして自分が楽をしよう」という内容。 レベルは「CakePHPで何らかのアプリケーションを作成したことのある人」。 特にスライドなどは作らなかったので、Emacsのhownで書いてたメモをプロジェクタに映しながら発表。 以下、簡単ながらそのメモに追記した形で。 CakePHP開発スタートアップ DBからのボトムアップ開発 DB設計>bake>コーディング>DB修正>bake>コーディング>DB修正>Model修正>コーディング のような気がしている * まずDB設計がないとはじまらないという弱点 * 逆にDB設計さえできればある程度開発を進めることができる * DB設計が綺麗であれば開発はス
JSDeferredはJavaScriptで同期/非同期処理を行うためのライブラリで、ソースコードが短く、かつ非常に勉強になるソースコードらしい。 また、ドキュメントは充実しているけれども使い方はやはりソースを読んだほうがいいとのこと(なんかみんな言っている)。 既にKanasan.JSやRoppongi.JSなどでもJSDeferredのソースコードリーディングが行われており、タイミングを逃した自分としては非常にくやしい。福岡だし。 tenjin.webなどでJSDeferrdを取り上げてくれるとうれしいけれども、今はMVCシリーズなのでもう少し先になりそう。 codecheck.inでもやりたいけれども、いまのとこ違うのかなー。やりたいって言ってくれるメンバーいないかなー。 というわけで、ひとりJSDeferredソースコードリーディングをしようと思った。 JSDeferredを読む
最近はてブのEmacsタグを眺めるのが日課になってる。 そこで見つけたナイスEmacs Lisp。 Emacsで矩形選択するとき、C-Spaceでマークセットした後にC-x r kとかなり面倒なコマンドを打つ必要があるのだけれども、自分はこれがなかなか覚えられない。すでに9割がたあきらめてた。 と思ったらかなりsense-regionというナイスなEmacs Lispを公開している方が。 もうなんていうかよくわかってらっしゃるキーバインド。 まずC-Spaceでマークセットして選択範囲の終端までカーソルを移動。そこで(範囲選択でなく)矩形選択にしたいときは「もう一度C-Space」。んでもってC-wとかM-wとかM-%とか。 もうこれが楽。わかりやすい。もうEmacs標準でいいんじゃね? さらに単語選択も楽々。 選択したい単語にカーソルを合わせてC-Space C-Space。 これだけ。
せっかくMySQLに全文検索エンジンを追加したのだけれども会社ではPostgreSQLを使うもんだからそっちの扱いのほうが慣れてしまった。 というわけでPostgreSQLにも全文検索エンジンを追加してみることに。 調べてみるとMySQLのようにソースから設定する必要がないので結構楽っぽい。 【前提】 OS:CentOS4.4 PostgreSQL:8.1.8 Senna:1.0.3インストール済 MeCab:0.95インストール済 【PostgreSQLインストール】 PostgreSQLのインストール #yum install postgresql-server 自分のCentOSはcentosplusレポジトリを有効にしているのでPostgreSQLのバージョンは8.1.8になった。 PostgreSQLを起動 #/etc/init.d/postgresql start この時点でp
もともとCakePHP bakerへのEmacs普及のためにcake.elのスクリーンキャストを作りたかったのだけれども、cake.elの最大の利点は キーバインドによる高速なファイル検索/スイッチなわけで、どうしても画面表示だけ見せていてもわからない。 これには解決策があって、それがMacアプリのKeyCasterというキー入力を取得して表示するもの。 たったそれだけかというかもしれないけれどもEmacsのデモではかなり強力なツールになる。 で、誰かのMacを借りようかなーとか思っていたのだけれども、どうやらMacではスクリーンキャストの動画を撮るためのツールが有料らしい。 困った。 と思ったので、Emacs Lispで作ってみた。 KeyCast Emacsでしか使えないキーストロークキャスティングツール。なんというニッチ。 Emacsでしか使えないのでCtrlキーがロゴ。無駄にKey
Emacsを触っているとRubyに関するEmacs Lispなんかは大体「使ったことないけども知っている」状態になる。 たぶんrubikitchさんがいるからと個人的に思っている。 とりあえず、rubyのコードを一切書かずにEmacs Lispの設定をしてみた。 Ruby:1.9.0 OS:Ubuntu ruby-mode Rubyのソースコードからruby/misc/*.elをEmacsのload-pathにセット http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ ruby-block.el EmacsWikiから取得。 rcodetools $gem install rcodetools $sudo ruby ~/.gem/ruby/1.9.0/gems/rcodetools-0.8.5.0/setup.rb xmpfilt
最近まで開発では古いjQuery Datepickerを使いまわしていたのだけれども、ぼちぼち新しいDatepickerを使おうかなと思って、jQuery UIを確認してみた。 ものすごいことになっていた もう、なんていうかまったく別物。 確かに機能的には変わらないのだけれども、実装がまったく違う。 まず、必要なファイル数が断然多くなっている。 jsだけでなくcssも多い。Datepickerの表示のためにimgまで必要になっていた。 で、CakePHPでjQuery UI(Datepicker)を使うまでのメモ。 jQuery UIのダウンロード http://jqueryui.com/downloadでThemeを"No Theme"を選択。 Datepickerが選択されていることを確認してダウンロード ファイル設置 ダウンロードされたjquery-ui-1.7.1.custom.z
Emacsを使うときは大抵PuTTYからなのだけれども、直接Linuxから使う場合とは違ってC-;とかC-:とかが使えない。 どう設定してもだめ。 どうやら、この現象はC-;とかに対応するASCIIコードというものが存在しないかららしい。 ただ、使えないものが使えないだけならばいいのだけれども、 PuTTY > bashで送られるASCIIコードとPuTTY > screen > bashで送られるASCIIコードは微妙に違っていたりして、さらにPuTTY > screen > Emacs > bashだとさらに違う。 こうなってくると何がなんだかわからなくなってくる。 で、こういうときはbash上でC-vを押したあとに任意のキーを押すとどのようなASCIIコードが送られているかがわかる。 カーソルキーとか押してみると分かりやすい。 実際にPuTTY > screen > bashと、Pu
'対象リージョンだけ正規表現をマッチさせるre-builder' re-builder+.el 0.0.2 をcommitした Emacsにはre-builderというおもしろいパッケージがあって(標準)、「カレントバッファに対して'動的に'作成した正規表現の対象範囲を確認できる」というものなのだけれども、まあ今のEmacs Lispで言ってみればanything-c-moccur.elでカレントバッファのみを対象にして絞り込んでいくUIに似ている。M-x re-builer。 で、re-builder.elもanything-c-moccur.elも「正規表現でマッチさせた後に置換する」というreplace-regexpとかquery-replace-regexpみたいな操作ができなかったので、なんとかならないかなーと思ってre-builder.elのソースを眺めていたら簡単にいけそうだ
PHPでSimpleXML関数をいじっていたのだけれども、addChildのような子要素を追加するメソッドはあるのになぜか要素を削除するメソッドが見つからない。 もしかしてSimpleXMLは不完全??とかとんちんかんな勘違いをしつつはてな人力検索で質問してみたら物凄くあっさり回答が帰ってきた。 SimpleXML関数の妙はXMLの要素を変数のように(連想配列的に)扱えるというところなわけで、そのまま変数を破棄するunset()が使えるというのがその回答。 例えば以下のような感じ。 <?php $xmlstr = <<<XML <?xml version='1.0' ?> <root> <child> <node>a</node> <node>b</node> <node>c</node> </child> </root> XML; $xml = new SimpleXMLElement(
CakePHP勉強会@福岡で紹介しそこねたpoファイルマージコンソールアプリケーションをいつものようにcodecheck.inにcommit。 ファイルとしてはたった2つ。 なので、今のところ特にディレクトリは作らず、自分がcodecheck.inでソースを管理しているCakePHPプロジェクトがあるので、その中に突っ込んでcommitしている。 設置ファイルと設置ディレクトリは以下のような感じ。 ・app/vendors/shells/merge.php ・app/vendors/shells/tasks/po_merge.php bakeをするときのように $php cake/console/cake.php merge とshellをたたくとコンソールが立ち上がる。 [M]ergeを選択すると、2つのpoファイルの絶対パスを聞いてくるコンソールが立ち上がり設定しだいマージが完了する。
普段はFirefoxでFirebugを使ったデバッグばかりしている。 IEなんて嫌いだ。 Firebug Lite Firebugチームが提供しているjsのみで作成されていたデバッグ環境。IEに限らずOperaやSafari使うことが可能。 Bookmarkletとして各ブラウザに登録していると便利。 でもときどきIEで動かない。 Companion.JS 最近有名なIETesterのチームが結構前から提供していたIE用デバッグ環境。 Companion.JSはインストール方法を知っていないと使えないので、以下インストール方法。 1.Microsoft Script Debuggerをインストール 2.CompanionJSをインストール 3.IEのツール>インターネットオプション>詳細設定>スクリプトのデバッグを使用しない(Internet Explorer)のチェックを外す conso
(fukuoka-emacs #x02) on テキストエディタ勉強会、無事終了!! いやー面白かった。 まとめはid:atyksさんのBlogエントリーが最強。 テキストエディタ勉強会 - 第一回 自分は簡単なEmacsの紹介と、今のEmacs( Lisp)の現状についていろいろ発表した。 主に主観的内容で、最近話題を集めている(と思っている)Emacs Lispの紹介などをしつつ。 正直、初心者エントリーはいいものがインターネット上に多くある(最近も増えた)ので、なんか違うことをやりたかった。 ちなみに、"括弧は空気"の名言の発信源はid:hayamizさんだと思ってたら、あの和田先生かもしれないことが判明。 反省点は結局「Emacs(er)は変態」と思われてしまったこと。 「Emacs使ってるとかっこいい!」とか「なんか便利そう!」とかの意味不明なモチベーションでキーバインドやEma
いつものように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をリリ
つい最近anything-etags.el 1.0.0をリリースしたばかりなのに既に1.0.5なのには理由があるわけで、一言で言えば「開発にすごい2人が加わった」ということ。 一人がすごい勢いでEmacsWikiを騒がしているAndy Stewartさん もう一人がanything.elのメンテナでもあるrubikitchさん おそらくここ最近のEmacs Lisp界隈で最強の内の2人ではないだろうか。 とりあえず大幅に機能が拡張され、さらにコードも整備されバグフィックスされたので、是非アップデートを。 anything-etags.el(今回はEmacsWiki) 以下読み飛ばし可 そもそもの経緯はanything-etags.elをEmacsWikiに登録したことで(最近は開発はcodecheck.inにcommitしていたなかで使えそうなEmacs Lispは紹介の意味を含めてEma
今ではもうscreenを手放せない状況なのだけれども、自分は100%PuTTYからの接続になる。 だから当然PuTTY特化型の.screenrcになるのだけれども多分もっと良い設定があったりすると思うので、codecheck.inにcommitしてみた。 .screenrc さらにナイスな設定があったら是非教えてください。 【参考URL】 GNU screen を使い始めて... - はてな人力検索 PuTTY+Screenの時、Ctrl+矢印キーでウィンドウ切り替え - ナレッジエース
最近、Emacsの環境の見直しをしていてまだまだ拡張できるなあと思っていたのだけれども、shellだけはついついC-zでsuspend-emacsをしてbashを直接触っていた。 というのもshell-mode(M-x shell)が使いづらかったというのが理由で、若干あきらめていた。 そしたらArielの松山さんの発言。 「そもそもsuspend-emacsする時点でEmacsenとして負けです。」 ぐはっ! 効いた。かなりぐさっときた。 「Emacsは単なるエディタではない。統合環境だ。」とよく言われるように、自分もIRCやTwitterはEmacs上で触れている。 こういうところがEmacsで面白いところ。 だけれども肝心のshellは使いこなせていなかった。C-zとfgを行き来していた。負けてた。 そしたらtermというのがあるらしいことを発見。Emacs21でもデフォルトで入って
今まで.emacsを編集したら一度Emacsを落として再起動をかけていた。 これだと今まで開いていたバッファなんかが全部なくなってしまうので1からやり直す必要がある。 Emacsからshellに戻るのはEmacsenとして負けなのでなんとか回避したい。 と、思ったらやっぱり方法があった。 M-x load-file RET ~/.emacs これでまた「朝、Emacsを立ち上げて作業開始、一度もEmacsを落とさずに作業をつづけて、夜Emacsを終了して帰る」スタイルに近づいた。 【参考URL】 .emacs を再読み込みする方法 - gan2 の Ruby 勉強日記
dabbrevで補完候補を作成するauto-complete.el source "ac-dabbrev.el" 0.0.1をcommitした (0.1.0対応版) dabbrevで補完候補を作成するauto-completion.el用sourceのac-dabbrev.elを作成した。 いつものようにcodecheck.inにcommit。 使い方はrequireしてac-sourcesに追加するだけでいい。 注意しなければいけないのがauto-complete.el 0.0.1のstableでは動かないこと。 (require 'ac-dabbrev) (setq ac-sources (list ac-source-dabbrev )) 以下駄文。 anything.el。 今まさに手放せなくなりつつあるEmacs Lispといえばauto-complete.el。 両者の共通点は
自分はSBMははてなブックマークしか使っていないのだけれども、何気に結構依存している。 暇つぶしに見るのもはてブだし、技術情報なブックマークも全てはてブにつっこんでいる(とは言っても600ブクマ程度)。 なので仕事中にも検索することが結構あって、その度にMyはてブのブックマークレットをクリックしてそこから検索するのが面倒になってきた。 で、他に依存しているのがEmacsでanything.elなわけだけれども、候補選択ならanything.elじゃね?ってことで、自分のはてブを検索するanything-hatena-bookmark.elを作ってみた。 いつもどおりcodecheck.inにcommit。 とりあえず (require 'anything-hatena-bookmark) M-x anything-hatena-bookmark-get-dumpで自分のはてブを取得(レスポ
次のページ
このページを最初にブックマークしてみませんか?
『Copy/Cut/Paste』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く