サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
tksthdnr.hatenadiary.org
デザインパターン勉強会の内容。第二回目。 参考にした書籍は以下。(すでに絶版) http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E4%B8%8B%E5%B2%A1-%E7%A7%80%E5%B9%B8/dp/4798015164/ref=sr_1_1?ie=UTF8&s=books&qid=1265290118&sr=1-1 FactoryMethodパターン 【目的】 使いたいオブジェクトを生成する為の窓口となるAPIを作成する事で、クライアント(呼び出し)側とオブジェクト側を疎結合に保つ。 「インスタンスを生成する工場」のようなパターンなので、F
mac にデフォで入ってた vim が 7.2 だったんで、7.3にする。 7.2 > 7.3 はメジャーバージョンアップに近いくらい色々と変更があるらしい。 ソースから入れるのがめんどいので、homebrew で入れたい。 しかし今現在 vim の Formula はデフォで用意されてないので、自分でなんとかしないといけない。 インストール まず下記のエントリを見てやってみた。 vim-ruby入れようとしてbrewのvimで嵌った - rochefort's blog % vi /usr/local/Library/Formula/vim.rb して上記 Formula 書いて brew install したけど、以下のようなエラーが出た。 Error: No available formula for vim Apple distributes vim with OS X, you
Railsでプロジェクトを進めるにあたり、BDD(振る舞い駆動開発)をやりたいと思いまずは環境構築をした覚え書きがこちらです。 Rspecまわり まずは Rspec のテストを自動化したいと思って参考にしたエントリがこちら。 Curiosity PDF - なるほど、Spork と Guard というものを使うと自動テストが捗るらしい。 Spork は 高速なテストサーバのようなもので、Guard は自動テストパッケージ。 あと、Rspec でテスト書いて行くにあたって、テスト時のモデルデータを用意するのに Fixture よりも factory_girl が捗るらしい。 詳しくは など。 …という事で、これも組み込もう。 以下のエントリを参照した。 rspec, factory_girl, spork, guardによる自動テスト環境の構築 - AnyType Javascriptまわり
Git全盛ですが、svnクライアントの設定をmacで行ったので備忘録。 OSはLion。 クライアントと設定 GUIクライアントで無料のものとして、svnx を利用した。 Google Code Archive - Long-term storage for Google Code Project Hosting. svnx は diffツールとして FileMerge をデフォルトで使用するのですが、Xcode4.3からは付属していない為、diffMerge というソフトを使います。 SourceGear | DiffMerge インストールしたら、svnx の preferences から diffツールとして diffmerge を選択します。 この状態でdiffアイコンを押すと、以下のようなエラーが出ます。 "/Applications/svnX.app/Contents/Reso
Django アプリで Pjax 導入した。必要なものは全て Github にあった。 Pjax については pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ こちらのエントリなどが詳しい。 ライブラリ GitHub - defunkt/jquery-pjax: pushState + ajax = pjax GitHub - jacobian/django-pjax: MOVED - see https://github.com/eventials/django-pjax clone して適宜配置。 ※ django-pjax は djpjax という名前にした(ハイフン入ると import error になる為) ※ clone した後、__init__.py 置かないと import時にモジュール発見されなくてハ
こんな感じにできる。フォントも色々ある。 mac なら homebrew でインストールできるし、widget も作られてました。 http://www.apple.com/jp/downloads/dashboard/email_messaging/figlet.html 以下エントリを参考にさせて頂きましたー。 サーバ管理に役立つ(かもしれない)FIGletというツール | /var/log/azumakuniyuki
ゆろよろさんのエントリ見てカッコイイと思って入れてみました。 iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する - ( ꒪⌓꒪) ゆるよろ日記 こんな感じにできる。 で、エントリの通りにフォントにパッチ当てようとしたらエラーが出たので対処法を書き残しときます。 fontforge をインストール後、 ./fontpatcher MyFontFile.ttf すると The required FontForge modules could not be loaded. You need FontForge with Python bindings for this script to work. と怒られました。 調べたら github の issues に上がってました。 https://github.com/Lokaltog/vim-power
EC2 上で動かしている inspIRCd サーバで、不在時のログを取得したいと思い IRCプロキシの tiarra を導入しようと思ったんですが、tiarraはSSLに対応しておらず、調べたところstone等を利用してトンネリングしないといけなくてめんどくさそうでした。 tiarra + stone でのトンネリングは以下のエントリが詳しいです。 stone を使って tiarra を SSL 化する方法 - KAYAC engineers' blog 色々調べていたら、http://wiki.znc.in/ZNC:ZNC という IRCプロキシが SSL対応で便利、という事を知りましたので導入してみました。 参考サイト tiarraをやめてzncにしてみた - hideden.hatenablog.com こちらのエントリを参考に、すんなりインストール。 指定したポートを EC2 の
最近 version2.0 になってますます最高です!なインスタグラム。 今になってAPI使ってみたので、とりあえずどんな感じかサクッと使ってみたい方の為にエントリます。 ※インスタグラムのユーザー登録してる事前提です。ここではmacで作業してます。 STEP1. クライアント登録 http://instagram.com/developer/ こちらのデベロッパページに行きます。 こんな感じの画面です。 このページ中の、Register your application をクリックすると http://instagram.com/developer/manage/ こちらのクライアント登録ページへ遷移します。 Register a New Client をクリックして、クライアント登録を行います。 全ての項目を埋めてください。 内容は適当で良いのですが、Website と OAuth r
NAT接続でsshしようと色々やってみたけどどうしても、 ssh exchange identification: Connection closed by remote hostエラーが出て繋がらなかった。 hosts.allowとかiptablesとか弄ってみたけどダメ。 もっと簡単だというブリッジ接続で試してみた。 VB(Ubuntu)側の設定 まずVB側の「設定」→「ネットワーク」で、「アダプタタイプ」を「Intel PRO/1000 MT Desktop…」に設定。 「割り当て」→「ホスト インターフェース」。「ホスト インターフェース」→「en1:AirMac (AirPort)」とした。 Mac側の設定 「システム環境設定」→「共有」→「相手のコンピュータが使用するポート」欄でEthernetとAirMacをチェックして、「インターネット共有」をチェック。 SSHする Ubu
分かると簡単なんだけど悶絶したので備忘録&日本語情報なさげだったので。 やりたかった事 libcurlのC用のAPIを使ってFTP接続し、各ディレクトリのリストを取りたい。 使用したlibcurlバージョン:libcurl 7.19.7 僕が使用している某サーバはFTPサーバとして ProFTPD を使用(バージョンは不明) 開発環境はmac os x 10.6.6 試した事 libcurl example - ftpgetresp.c ここにサンプルがあったのでとりあえずこの通りにしてみた。 (サンプルはレスポンスをファイルに書きこむ内容) レスポンスを見ると、 drwx---r-x 2 hogeUser fugaGroup 4096 Mar 8 14:15 testDir 普通に取れた。よしよしと思ってたけど、よく見ると 年が無い。 更に、少し古いファイルを取得してみたら、 -rw-r
必要な時に手順忘れる部類なので覚書。 既に1台のMacで実機開発できている事が前提。 参考サイト http://d.hatena.ne.jp/paella/20090218/1234948743 証明書の移行手順 上記サイトに書いてあるとおり。 既に実機開発ができているマシンでの作業 キーチェーンアクセスを立ち上げて、ログイン項目の証明書欄を開く iPhone Developerの証明書に含まれる暗号鍵を右クリックして、「証明書を書き出す」を選択する 証明書を個人情報交換(.p12)で、パスワード設定して保存 (.p12ファイル) 何らかの手段で先ほどの .p12 ファイルを別Macへ送る これから実機開発したいマシンでの作業 先ほど送った .p12 ファイルをダブルクリックしてパスワード入力 ※2011/12/12 追記 3台目以降に追加したい場合は、2台目から証明書を持ってきても駄目。
Togetterから得られる情報をまとめてみた PHPカンファレンス2010に参加したつもりになる為にTogetterから得られる情報を自分用にまとめてみました Twitterハッシュタグ #phpcon2010 Togetterまとめ 2010.9.25に開催された『PHPカンファレンス 2日目テックデイ』のツイートまとめ - Togetter 皆さんのTweet内に貼ってあるリンク Ustreamアーカイブ phpcon2010-A 公式サイト PHPカンファレンス2010 PHPミュージアム PHP: Release Archives (museum) @kanreisa さんのtwitpic ほぼ満席 #phpcon2010 @phpcon さんのtwitpic パネラーのみなさん、すでに臨戦態勢です #phpcon2010 技評によるビジネスデイレポート 1日目,ビジネスデイレポ
遅ればせながらzfコマンド使ってスキャフォルディングってみようと思い立ち、以下のサイトを参考にさせて頂きました。 RADツールによるPHPアプリケーション速効開発 - Zend_ToolとZend_Application - (1/4):CodeZine(コードジン) lllnorikolll@online » Zend_Tool_Framework – zfコマンドをMacOS10.5Leopardで使えるようにする 環境 OS: Ubuntu 9.0.4 PHP: 5.3.0 ZendFramework: 1.8.4 MacOS-LeopardのVirtualBox3.0.2上に構築したUbuntuで試してみました。 準備 もう参考サイトに書いてある通りなのですが、 % which php /usr/local/bin/php % cd /usr/local/bin/ % svn co
最近になってDIコンテナについて社内勉強会をしようと思い立ち参考になる資料をググってたところ、Symfonyのデベロッパである Fabien Potencier さんのスライド Dependency Injection with PHP 5.3 を発見し、そのまま皆でスライドを読み進めていく等しました。 この資料はSymfony2に新しく加わるDIのコンポーネントである「Dependency Injection」の実装を参考に、PHP5.3系でのDIコンテナの実装とそのメリット等が説明されています。 クロージャの使い方等も解説してあって、PHP5.3でのOOPの学習にもなってかなり勉強になりました。 というわけで、PHP5.3を本格的に使い出したい…とモチベーションも高まったところで、最近リリースされたばかりの5.3.3をインストールしてみる事にしたので、備忘録として残します。 ついでにT
[PHP][Twitter]ロリポップのcronを使ってTwitterボットを作ってみよう 4月末に、格安レンタルサーバでお馴染みのロリポップが cron機能に対応しました。 そこで、Twitterボットを試しに作ってみました。 今回作ったのは、「みんながFavoriteした発言でつくる、全自動Twitterまとめサイトもどき ふぁぼったー」をクロールして、新しいふぁぼられがあったらReplyで通知してくれるボットです。 TwitterのAPI認証は今後ベーシック認証は使えませんので、OAuthを使います。 ※2012/1/11 追記 コードのメンテしていないので、favotter の構成が変わっているとそのままだと動かない可能性があります。(今はふぁぼられたらメールが来る時代ですから‥) 動作環境 ロリポップの新しい構成のサーバでの動作となります。 PHP Version 5.2.6 M
会社でデザインパターン勉強会を始めたので、その内容を書き残していきたいと思います。 23回に分けて全パターンを理解するのが目標。 参考にした書籍は以下。すでに絶版になってますね。 http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E4%B8%8B%E5%B2%A1-%E7%A7%80%E5%B9%B8/dp/4798015164/ref=sr_1_1?ie=UTF8&s=books&qid=1265290118&sr=1-1 Singletonパターン 【目的】 生成するオブジェクトの数を1つに制限する為のパターン。 (GoFパターンの中で唯一、ひとつ
Zend_Config ファイルはだいたい Zend_Cache させて使ってるんですが、Zend_Cache の記述をまとめて書けないだろうかと思いたちプラグイン化してみました。 http://framework.zend.com/manual/ja/zend.cache.html http://framework.zend.com/manual/ja/zend.config.html 動作環境 OS: Ubuntu 9.0.4 PHP: 5.3.0 ZendFramework: 1.8.4 で確認しました。 github github にコミットしてます。 GitHub - taketin/Zend_Controller_Plugin_Autocacher: for Zend_Framework Plugin Module 解説 私は Zend_Config を使用する際、だいたい Z
iPhone OS2の頃は、DiskAid2.0 を使ってマウントしていた。 OS3は対応しておらず、その後3.0にバージョンアップしたようだけど、有償($9.90)になった。 14日のデモ期間付き。 他に方法は無いか調べた。 2009/11/29 追記 現在、http://www.iphone-explorer.com/ という超便利フリーウェアが出てました。win,mac 両対応です。これ使えばOKですね。 必要なアプリ Google Code Archive - Long-term storage for Google Code Project Hosting. MacFuse http://iphonedisk.googlecode.com/files/Disk%20For%20iPhone%2020071207.zip Disk For iPhone tips まず上記の Mac
モデルの使い方も人それぞれだと思うのですが、個人的にメソッドチェーンが好きなので、とりあえずその様に扱える様にしてみました。 実用的かどうかは実用してみないと分かりません。 使用バージョン:Ver1.7.7 http://framework.zend.com/download/current/ ZFのダウンロードはこちら どうやってやろうか? とりあえずメソッドチェーンでググッてみる。 一行でカタをつけるにはコンストラクタからメソッドチェーンする方法くらいしかないらしい。 PHPでコンストラクタからメソッドチェーンする方法 - id:anatooのブログ OpenPEARのPHP_Objectというライブラリもある。個人的に注目してます。 http://openpear.org/package/PHP_Object 一応今回の目的としては、ZendFramework内で用意したModelク
例外ハンドリング時に考えた色々な事についての備忘録。 使用バージョン:Ver1.7.8 http://framework.zend.com/download/current/ ZFのダウンロードはこちら ZFにおける例外発生時の処理 ZFはPHP5ベースなので、何か問題が発生した時は例外をスローして対応する仕様となってます。 デフォルトの状態では例外がスローされると、Zend_Controller_Plugin_ErrorHandler.phpを経由してErrorController.phpに処理が委譲されます。 ErrorController.phpの基本的な書式はZFのマニュアルページにあります。 http://framework.zend.com/manual/ja/zend.controller.plugins.html 具体的には以下のような感じです。 <?php class E
先日VirtualBox3.0.1 へ セットアップした Ubuntu9.0.4 に PHP5.3.0をビルドする。 apache, php, mysql は Ubuntuのセットアップ時にインストールしておいたものとする。 phpはデフォルトの状態だと、5.2.6がインストールされていた。 参考サイト PHP5.3.0がついにリリース - アシアルブログ サービス終了のお知らせ インストールログ とりあえずまっさらなUbuntuに実行する事をまとめておく まずは開発環境(以下全てsudo権限で実行) % apt-get update % apt-get install build-essential 参考にしたアシアルさんのブログをもとに、libxml2インストールを先に行う % cd /usr/lib % ln -s libxml2.so.2 libxml2.so % aptitude
分散なんとか勉強会 5月30日に株式会社Fusicさんの会議室で行われた、codecheck.in主催の「分散なんとか」勉強会に参加してきました。 Fusicさんいつも場所を提供して頂き、本当にありがとうございます。 当日の模様はustreamで配信されており、以下から見る事ができます。 codecheck.in [CakePHP][MySQL]動画サービスの負荷分散 (id:rytich) Speaker: (株)マダガスカル rytich氏 CentOS+CakePHP+MySQLで構築された(セクシーな)動画サイトの負荷がもの凄かったので、負荷を下げるまでのお話。 深夜0時〜2時などの、皆が感極まる時間帯になるとロードアベレージが200等になっていた。(200万PV/Day) サーバ、ネットワーク、DB、PHPそれぞれでパフォーマンス測定して、解決していった。 詳しくは後日資料をあげ
先日VirtualBoxに入れたUbuntu8.10へgitをインストール。 参考サイト http://blog.champierre.com/archives/670 最新のバージョン確認はここ Index of /pub/software/scm/git/ 作業開始 % cd /tmp % wget http://www.kernel.org/pub/software/scm/git/git-1.6.2.tar.gz % tar zxvf git-1.6.2.tar.gz % cd git-1.6.2 % ./configureここでエラー。 configure: CHECKS for programs checking for cc... no checking for gcc... no configure: error: no acceptable C compiler foun
IRC-Proxyのtiarraをようやく入れたのでメモ。 サーバーを用意していないので、とりあえず自分のマシン(MAC-OSX10.5.6)で動かしてみる。 ※2011/12/13追記 ZNCというSSL対応のIRCプロキシが良さそうです。 EC2 に ZNC という IRCプロキシ入れてみた - 気が向いたら ダウンロード こちらが本家 Tiarra : Archive もしくは coderepos よりチェックアウト % svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra適当な場所へ置く。 tiarra.confの設定 ダウンロードしたディレクトリ内に、「sample.conf」というファイルがあるので、コピーして「tiarra.conf」とリネームする。 confファイルは大きく分けて以下のブロッ
Zend_View, Zend_Layoutに関するヘルパー使用法の覚え書き。 アクションコントローラー内の各アクションで自動ビューレンダラー無効 <?php $this->_helper->viewRenderer->setNoRender(); アクションコントローラー内の各アクションで、任意のビュースクリプトを呼び出し <?php // 引数は呼び出すビュースクリプト(拡張子抜き) $this->_helper->viewRenderer->setRender('hoge'); アクションコントローラー内の各アクションで、レイアウトを無効 <?php $this->_helper->layout->disableLayout(); アクションコントローラー内の各アクションで、任意のレイアウトを呼び出し <?php // 引数は呼び出すレイアウトスクリプト(拡張子抜き) $this->
codecheck.inのテキストエディタ勉強会で@sugmacさんが紹介されていたproject.vimを試してみる事に。 とりあえず仕事で使っているZendFrameworkのプロジェクト管理をやってみた。 インストール project.vimからまずはパッケージをダウンロード。 展開すると、内容は以下の通り。 project-1.4.1/ doc/ project.txt plugin/ project.vimこれを .vim ディレクトリ配下に設置する。 自分の環境はmac-osx-10.5.6なので、 /users/ユーザー名配下に、 % mkdir .vimでディレクトリを作成。 % mv project-1.4.1/doc/project.txt .vim/doc/project.txt % mv project-1.4.1/plugin/project.vim .vim/p
使用バージョン:Ver1.7.6 比較的最近加わったライブラリであるZend_Paginatorを使用してみた。 http://framework.zend.com/manual/ja/zend.paginator.html 公式マニュアル フレームワーク側の準備をする まずはインスタンス作成。他ライブラリと同様、直接インスタンス生成する方法と、Factoryパターンを利用する静的メソッドが用意されている。 引数に渡すのは、ページネーションを行う元ネタの取得方法。 これをデータソースアダプタと言う。種類は以下。 アダプタ 説明 Array PHPの配列を使用します。 DbSelect Zend_Db_Select のインスタンスを使用し、配列を返します。 DbTableSelect Zend_Db_Table_Select のインスタンスを使用し、 Zend_Db_Table_Rowset
例えば、 SELECT a.*, b.group_id, c.option_name FROM user AS a, group AS b, option AS c WHERE a.name = 'foo' AND a.group_id = b.group_id AND a.option_name = c.option_name というクエリと同じ内容に、O/Rマッパーでアクセスするには… 用意するもの Zend_Db_Table_AbstractをextendしたZend_Db_Tableクラス 今回の例でいうと… <?php class dao_user extends Zend_Db_Table_Abstract class dao_group extends Zend_Db_Table_Abstract class dao_option extends Zend_Db_Table_
このページを最初にブックマークしてみませんか?
『tksthdnr.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く