サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猛暑に注意を
labs.uechoco.com
バイト中でのお話。 ある案件で(私の案件ではありませんが)テストサーバー上で動いていたプログラムをクライアントの本番サーバーに移行したら、管理画面へのログインができなくなってしまいました。 プログラム自体は独自のフレーワークで、車輪の再開発をしたくないのでPEARからAuthやらDB_DataObjectやらHTML_QuickFormやらをひっぱってきたもので、特定の種類の案件に対してかなりの効率でシステムを開発できるようなフレームワークです。 ログインができない原因はどうやらセッションが勝手に切れてしまうという話。テストサーバーと本番のphp.iniが結構違っていたからそれを揃えてみてもだめ。ちなみにログインにはPEAR::Authが使われています。 適当にグーグル先生に「PEAR Auth セッション」と投げてみたら、 PEAR::Authの認証で別画面に移動すると認証されない –
前回は、フロントコントローラが起動して、Kernelが実行されたところまでを書きました。今回はKernelの初期化時にDIコンテナが生成される所までを書こうかと思います。実際のHttpリクエストなどを処理するHttpKernelが実行されるところ以降は次回となります(ここらへんはEventDispatcherフル稼働なのでまだ理解できていません)。 では深く潜っていきましょう! Kernelのブート [@/src/vendor/symfony/src/Symfony/Component/HttpKernel/Kernel.php] Kernelクラスのインスタンス$kernelは、そのKernelがブート済みかどうかのフラグ$this->bootedを持っています。基本的にフロントコントローラから呼ばれた最初のKernel::handle()ではまだブートしていないはずなので、Kernel
Symfony2の内部構造はまだまだよく分かっていないので、Requestが生成されてからResponseとして返されるまでの一連の流れを細かく追っていこうかと思いました。そんなわけでタイトルにDeepなんて付いてるわけですが、現時点でSymfony2を使おうとする人なんて強者ばかりなんじゃないかと思って、そういう人達にとっては全然Deepじゃないかもしれません。そしてちゃんとこの企画を続けられるかはわかりませんww 基準となるソースコードは、2010/11/18 02:00:00時点のSymfony-sandboxとします。 長くなりそうなんで、何回かに分けて投稿します。小見出しの [@/〜/〜]っていうのは、その小見出しがどのファイルの中の処理について議論しているかを表しています。当然奥深くのファイルに入って、入って、戻って、戻ってみたいな感じになるので、そのうち分かりやすく図示できる
最近話題のプロファイラ拡張のxhprofをインストールしてみます。今更かよってツッコミは なしで。CentOS 5.5に入れます。 [shcode] # GraphVizをインストール(Dot言語をグラフ化するツール) sudo yum install -y –enablerepo=epel graphviz graphviz-gd # 最新版のDL,コンパイル(http://pecl.php.net/package/xhprof) wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar zxf xhprof-0.9.2.tgz cd xhprof-0.9.2/extension/ phpize ./configure make sudo make install # /usr/lib64/php/modules/ディレクトリ内にxhprof.s
Symfony2についてQuick Tourを見ただけじゃ全くわからないので、まずは先人の知恵を借りることにします。balibaliさんがSymfony2でブログを作ったときのバンドルを公開されているので、インストールしてみることにします(詳細:Symfony2 で バリバリ日記2 をつくってみた – バリバリ日記II)。Symfony2初心者がバリバリ日記2を導入するメリットとしては Symfony2が学べる Doctrine MongoDB ODMが学べる Twigが学べる バンドルの再利用の概念が学べる などが挙げられます。このバンドルをひと通り理解(し、カスタマイズ)出来れば、Symfony2の多くの機能に触れたことになるわけです。BalibaliBlogBundleはX11ライセンスです。balibaliさんに感謝! まずはインストールから始めましょう。インストール方法はgith
phpで、配列の最初の要素のキーを取得したい時ってありませんか。最初の要素の値だったらarray_shift()で配列壊しながら取得することもできるのですが、最初のキーを取得する関数ってないんですよね。 で、Twitter上で緩募したところ、わりと返信が返ってきました(うれしい!みなさんありがとー)。 Togetter – 「phpで配列の最初の要素のキーを取得するスマートな方法」 どれを使っても取得は出来るんですが、個人的に好きなのは [phpcode] reset($data);$name=key($data); [/phpcode] [phpcode] key(array_slice($array, 0, 1)); [/phpcode] の2つかな。キーを取得できることはもちろんですが、意図が明確な気がして。 みなさんも何か案があれば @uechoco 宛にTwitterで教えてくだ
前回は2.5、2.6、3.x系など、バージョンの違い : うえちょこ@ぼろぐにてSnowLeopard標準のPython 2.6ではなく、GAE用にMacPortsを利用してPython 2.5とpython_selectをインストールしました。 さて、Pythonにはphpでいうpear/peclコマンド、perlでいうcpanコマンドに当たるようなeasy_installというコマンドがあるようです。PyPI(Python Package Index)というレポジトリから文字通り簡単にライブラリが追加できるコマンドのようです。このコマンドはsetuptoolsというパッケージ(なのかな?)に含まれています。あーありがち – Pyに触ってみたの途中にある比較表が分かりやすいです。 このeasy_installというコマンドもどうやらPythonのインストール環境に依存しているようです。つ
Macを使っていると、Windowsユーザの方から「zipファイル解凍したらファイル名が文字化けしてるんだけど?」って言われたこと有りませんか?仕事の取引先などから言われてしまうとちょっと焦ってしまいますよね。MacではFinderの右クリックメニューから簡単に圧縮が可能なのですが、ファイル名に日本語が含まれているものを同様に圧縮してしまうと、Windowsで解凍したときに文字化けしてしまいます。(技術的な詳しい話をするならばGoogleで「UTF-8 MAC」と検索すると関連話題が出てくるかと思います。) Windowsユーザに迷惑をかけずに、でも簡単に圧縮したい、そういう要望をかなえてくれるのがMacWinZipperというフリーソフトです。MacWinZipperはアップルのソフトウェアダウンロードサイトで、スタッフのお勧め印がついているソフトです。 使い方は簡単で、MacWinZi
の画像をみて、「描きたいっ」と思って、Processingで描いてみました。「Circular Adjacency Graph」。「円状隣接グラフ」って勝手に呼んでいます。プログラム的にそういうことをしているので。全く同じものを作ったわけではないですが、自分の中では同じようなものなので満足しています。 ※カーブ率 = 1のグラフ(クリックで別ウィンドウに原寸表示) ※カーブ率 = 0.3のグラフ(クリックで別ウィンドウに原寸表示) [p5code]size(600, 600); colorMode(HSB, 100); background(100); noFill(); smooth(); // 定数定義 int max = 30; // 最大数 int radius = 220; // 半径 int cx = width / 2; // 中心x座標 int cy = height /
この記事は、HTTP_Requestのマニュアルに載っている全サンプルコードをHTTP_Request2対応で書き換えてみる企画の3回目です。HTTP_Request2クラスの概要を知りたい方は、下記リンクの#1を参照ください。 全記事へのリンク: [pear]HTTP_Request2のサンプル#1 [pear]HTTP_Request2のサンプル#2 [pear]HTTP_Request2のサンプル#3 [pear]HTTP_Request2のサンプル#4 [pear]HTTP_Request2のサンプル#5 #6 PDF 文章をアップロードする [phpcode] setAuth(“johndoe”, “foo”, HTTP_Request2::AUTH_BASIC); $req->addUpload(“johndoe-txt.pdf”, “/home/johndoe/text.pd
文章を書いていた時に、たまたま「1と2と3と5と6」と言う文字列を順番どおりに書いて、入力切り替えのかったるさを実感しました。ふと考えてみると。「12356」を先に書いてから、あとから間に「と」を入れてくれるとスマートな気がして、でもphpでどうやって書くんだろうっていう、変な妄想にふけりました。 妄想の結果: [phpcode] $insert = ‘と’; $str = ‘12356’; $len = strlen($str); for ($i = 0; $i < $len; $i++) { echo ($i > 0) ? $insert . $str[$i] : $str[$i]; } [/phpcode] もう少し、スマートに書けるんじゃないかと思ったけど、これで満足・・・・と思いきや、$strがマルチバイトだと動かなそうな気がした。で、第2版がこちら [phpcode] $ins
MacBookを買って、はや3ヶ月が過ぎたのですが、未だに仕事ではBootCamp上のWindows XPを使っていて、Macを使う機会は少ないというのが現状です。とはいえ、やっぱりMacBookなのだから、Mac OS Xをメインに使いたいという気持ちがあります。どうしてMac OS Xを使えないかというと、Windowsでの開発環境がちょっと込み入っているからです。 簡単にWindowsの開発環境を説明すると、Windows XPにVMware Serverをインストールし、仮想のCentOS 5を構築しています。このCentOS 5のとあるフォルダ(例:/var/develop)にSamba経由でアクセスします。このとき、ネットワークドライブとしてドライブレター(例:L:¥)を割当てています。/var/develop/hogeにアクセスする場合はWindowsのL:¥hogeとなって
前回まででほとんどの機能は完成しています。今回は利便性の向上を目的として、ルーティングの拡張を行います。前回までの内容ですと、フリーページにアクセスする際は/freepage/id/1といったURLでした。どうせなら、/id/というのを削りたいですね。しかしながら、プラグインとして追加する以上、サイト管理者にrouting.ymlを書き換えてもらうなどという対応はよろしくありません。OpenPNE3のベースとなるsymfonyではプラグインからルーティングを拡張するための仕組みが用意されています。symfony 1.1 日本語 マニュアル 第17章 – symfonyを拡張する – プラグインの機能にもその記述があります。OpenPNE3.0系ではこの機能にのっとってルーティング拡張をしているようです。 早速試してみましょう。/plugins/opFreepagePlugin/config
Poderosaは一時期人気を博したターミナルで、いまだに使っている人がちらほらいます。私もそんな一人。Poderosaの謎機能の1つで、cygwinターミナルになることができます。わたしは結構この機能が好きです。最近、いつもと違う環境にcygwinとPoderosaをインストールしたら、Porerosaからの接続ができなくなっていました。 「レジストリキー SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ がみつかりません。」 ってエラーが出ます。おそらく、cygwinが昔このレジストリにインストールパスを保管していて、Poderosaはそれを読んでいたんでしょう。接続できないと困るので、絶対無糖: Windows 7 RC 64-bit で Poderosa をインストールしてみたを参考に、コマンドプロンプトで
知りませんでした。symfonyのWebデバッグツールバーに表示されているメモリ使用量は、メモリの最大使用量ではなかったのです。現在の確保されたメモリ量というのが正しいです。これってsymfony使いの常識ですか? 当然、メモリの最大使用量を表示したいですよね。symfony 1.2以上であれば、簡単に実装できます。(symfony 1.0をお使いの方は、sfWebDebugで、より正確なメモリ使用量を見るには – Sooeyをご覧ください。) symfonyのWebデバッグツールバーのカスタマイズ方法は、Cookbookにしっかりと載っているのです。今回参考にするのは、The symfony Cookbook | Webデバッグツールバーをカスタマイズする方法 | symfony | Web PHP Frameworkです。実際にやってみましょう。 まずはメモリの最大使用量を表示するため
PHP: Ctype 関数 – Manual 最近のフレームワークは独自にバリデート機構を持っているので昔ほどバリデートに気を使うことも少なくなりましたが、自前でバリデートすることもまだあるでしょう。一般的には、正規表現のpreg_match()やis_numeric()、is_int()などがよく使われるのですが、ctype系の関数は知らない人も居るかもしれません。 ctype関数は、C言語のctype.hという標準ライブラリに由来があります。 ctype 関数は、正規表現よりもつねに好ましく、さらに str_* および is_* のような いくつかの等価な関数よりも好ましいことに注意してください。 これは、ctype 関数がネーティブな C ライブラリを使用しており、処理が著しく 高速であるためです。PHP: Ctype 導入 – Manual とあるように、文字の種別をチェックする場
CentOSのyumでgitを入れようとしても、標準のレポジトリにはありません。 私の場合はrpmforgeからとってきます。rpmforgeの設定はすぐですので、CentOS/rpmforgeリポジトリ – ひつじ帳などを参考に入れておくと便利です。もちろん、通常時はこのレポジトリを使用ないように(自分で)設定するので、勝手に予期せぬバージョンアップとかはしません。rpmforgeはyumの–enablerepoオプションで指定して使います。 あとは、gitをinstallするだけですね。ログはこんな感じです。
最近JavaScriptでUnixTimeを取得するプログラムを作る機会が増えてきた。ので、メモ代わりにここに1つ関数を書き残す。
[mac]eclipseインストールとpleiadesで日本語化というMacのEclipseにPleiadesを導入する記事を書いてるくらいなので、現在使用中のEclipse 3.5にもPleiadesが適用されていますが、たまにトラブルが起きたりします。今回のトラブルは、何らかの、特にElipseコア系のソフトウェアアップデートをした後に、Eclipseが起動しなくなってしまうという現象です。案の定、Pleiadesがトラブルを起こしているのですが、私の場合の現象と解決策を残しておきます。 まず、Eclipseソフトウェアアップデートした後、再起動を促されますので再起動をします。そうすると、スプラッシュ画像の直後にダイアログが出て、「起動失敗したから、logファイルにエラー状況書き込んどいたよ」的な英語が書かれています。Pleiadesの説明書にも書いてありますが、Eclipseソフトウ
processing.unlekker.net – Sketches and code http://processing.unlekker.net/ processinghacks.comなどで知られているMarius Watzさんの、ソースコード付きのアートサンプル集のサイト。鮮やかな色使いの作品がおおくて、ソースコードを読むととても参考になります。ただし、やや古いバージョンのソースコードなので、新しいバージョンのProcessingを使っている人は、適宜自分のバージョンにあったソースコードに置き換えてやる必要があります。ある程度Processingを使い慣れている人なら大丈夫ですかね。 作品を楽しむだけでも十分満足ですが、せっかくソースコードが公開されているので、他の人のソースコードを読んでみるのはどうでしょうか。(と思ったのですが、ソースコードを読むっていう文化はプログラマ寄りだな
CakePHP 1.2で、モデルに対してfind(“list”)すると、セレクトボックスに最適な配列を返してくれます。CakePHP 1.1だとgenerateList()って呼ばれていたかもしれません。この配列をそのままViewにsetしてinputタグを作ると、セレクトボックスを簡単に作ってくれますが、いわゆる「選択してください」っていう空要素を吐いてはくれません。 「選択してください」を吐くためにわざわざ配列をarray_merge()しなきゃいけないのかなって思っていたのですが、そこは親切フレームワーク。ちゃんと便利な機能があります。 どうやら、FormHelperのinput()メソッドの第2引数の$optionsに、emptyという要素を含めることで簡単に実現できるらしいです。 Controllerでこんな感じにセットして、 [phpcode] $this->set(‘hoge
適当なアプリを作ると、都道府県テーブルってよく作るよなってことで、SQLを備忘録で貼っときます。HTMLのセレクトボックスで公開していたり、同じようなSQLを公開している人はもちろん居るのですが、symfonyやCakePHPのようなCoCフレームワークのカラム名のものがなかったので、自分のために貼っときます。一応MySQLばっか使うので、MySQLの出力結果になっています。適当にENGINEとか変えれば他でも使えます。もちろん、JIS X 0401に準拠した都道府県コードを使っています。 CREATE文(utf8を想定)
最近、MovableTypeからWordPressへの移行がちょっと話題になりましたね。やっぱりWordPress 2.7の衝撃は大きかったようですね。 かくいう私も1年前にMovableTypeからWordPressに移行した輩です。WordPressに移行したおかげで、プライベートと仕事で10個近くのWordPressを設置したり、オリジナルデザインのテーマを作成したりもしました。なんといってもphp製ですから。困った時はソースコードを見て判別したり、多少トリッキーでも無理やりやっちゃえる感があります。 さてさて、最近MovableTypeからWordPressへ移行した人の中には、フィードのURLまでは移行するのをあきらめる人もいるようです。私も1年前に悩みましたが、最終的には.htaccessでリダイレクトするように修正しました。今までフィードを閲覧してくれた数少ない人(笑)が、ゼ
Linuxのサーバー上にあるログファイルの容量が大きくなったとき、今までは1回ファイルを消してから同名のファイルを作って権限とパーミッションを合わせるとか、めさくさめんどうなことしてた気がします。 先日調べてたら見つけました。ファイルの中身を空にする、とんでもなく簡単なコマンドを。 :> hoge.txt 工エエエエェェ(;゚Д゚)ェェエエエエ工 ファイルを空にする – 揮発性のメモ http://d.hatena.ne.jp/iww/20071007/cat
あれ、OpenPNE3のalphaの解析するとか言っときながら、既に正式版リリースしちゃいましたね。最近Processionばかり触ってたら、OpenPNE3ががんばってるのに気付かなかった。とりあえず、インストールだけはしておきましょうか。っていうか、インストール記事ばっか書いてる気がするけど・・・もうちょっとPNEたんに時間を割こうかな。 OpenPNE3.0 セットアップ手順を上から順番にやっていきましょう。 1.ダウンロード・・・しました。zipだけなんですね。tar玉とかはないみたいです。unzipします。 2.ファイルの設置・・・Linux上に設置します(/path/to/openpne3root)。VirtualHostで/webディレクトリをopenpne300.localhostとかのドキュメントルートにしてみます。 3.データベース作成・・・mysqlに対し、utf8の
最近になってphpのメソッドの引数に変数型を指定してあるのをちらほら見かけるようになりました。具体的にはHTTP_Request2のSplSubjectやsymfony 1.2のソースコードなどで見つけました。調べてみると、ちゃんとマニュアルに書いてありますね。タイプヒンティングという機能名でした。メソッドだけではなく、通常の関数でも使えるようです。指定できるのはobject型かarray型。つまり特定のクラスとか配列に限定することができます。これは賢い。結構レベルが上がったかも。 百聞は一見に如かず。phpマニュアルに載っていた例を引用。 [phpcode] var; } /** * もう一つのテスト関数 * * 第 1 引数は配列でなければならない */ public function test_array(array $input_array) { print_r($input_ar
macでskypeをインストールすると、次回からmac起動時にskypeが自動起動するようになるのですが、いつもすぐに終了させてしまうのが面倒なので、最初から自動起動しないようにしようと思いました。 ところが、Skypeの設定をみても自動起動に関する項目は見当たりません。 困ったのでググったら、でてきました。 hayaseblog: MacでSkypeの自動起動をオフにする方法 なるほど。Windowsのスタートアップと似たような機能として、ログイン項目の管理というのがあるのですね。 1:システム環境設定を開き、 2:アカウント設定を開き、 3:ログイン項目タブをクリックし、 4:Skypeを選択し、下部の[-]ボタンを押して、項目を削除する 以上で、Skypeの自動起動がなくなります。逆に、自動起動させたい場合はここで追加すればいいのですね。なるほどなるほど。
FlexのContainerクラスやそのサブクラス(Accordion, Box, Canvas, Form, FormItem, LayoutContainer, Panel, Tile, ViewStack)は、子コントロールが表示領域を越えると、自動で縦スクロールバーや横スクロールバーが表示されるようになっていますが、その機能がかえって邪魔になる場合があります。 そういった場合は、ContainerクラスのプロパティのverticalScrollPolicyとhorizontalScrollPolicyに値を設定することで、スクロールバーの表示動作を変更することができます。この2つのプロパティは、デフォルトで“auto”、つまり必要なときだけ自動的にスクロールバーが表示されるモードになっていますが、“on”、つまり常に表示と、“off”、つまり常に非表示という値も設定できます。 よっ
XREAでは少し前からFTPS(FTP over SSL)に対応していたらしい。SFTPは知っていたがFTPSは知らなかった。調べてみるとFTPSには2つのモードがあるらしい。 Implicitモード:暗黙的にTLS/SSLを使うFTP Explicitモード:明示的にTLS/SSLを使うFTP どうやらXREAはImplicitモードは対応していないらしい。 私が今使っているFileZilla 3.0.8.1ではFTP、SFTP、FTPS、FTPESの4つの形式に対応しているが、FileZillaでは以下のような意味を示す。 FTP:通常のFTP SFTP:SSHのファイル転送 FTPS:FTP over Implicit SSL FTPES:FTP over Explicit SSL というわけで、XREAでFTPSを使う場合は、「FTPES」という設定を使う。 なんで突然こんなこと調
次のページ
このページを最初にブックマークしてみませんか?
『labs.uechoco.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く