タグ

ブックマーク / mononofu.hatenablog.com (26)

  • PECL::Imagickを試す - モノノフ日記

    GDで展開できない画像*1があったのでImageMagickを試そうと思って導入してみました。 インストール peclモジュールなのでコマンドライン1発で楽チン。 sudo pecl install imagick php.iniにライブラリを呼び出す記述を追加 extension=imagick.so 実際に使ってみる マニュアルはいろいろ探しましたが、PHPマニュアルが一番詳しいと思います。 PHP: Imagick 画像ライブラリ - Manual しかしPHPマニュアルもAPI一覧のみで詳しい解説は書かれていないので実際に使って試してみました。 サンプル画像はこれです。 リサイズしてみた APIリストを眺めてみるとリサイズに使いそうなメソッドである下記5つを試してみました。 Imagick::adaptiveResizeImage Imagick::cropImage Imagic

    PECL::Imagickを試す - モノノフ日記
  • githubを会社で導入してみて感じたこと - モノノフ日記

    会社で利用するソースコードのバージョン管理システムをgithubに移行しつつあります。 gitは以前から個人で利用していたのでブランチ管理のメリットや気の利いたマージなどはもう知っていたのですが githubで同時に複数人で開発をする、という状況は初めてだったので感じたことを残しておきます。 導入 まず当然なのですが開発スピードは上がってます。 これはgithubというよりgitの分散リポジトリの仕組みが大きいです。svnでsvk使うと効率が良いのと同じことです。 そこで問題になるのが各開発者のリポジトリ間をどうやってマージさせていくのか、って所なんですが masterからリリース用のブランチを切ってそこにpull requestを投げて他の開発者に確認してもらってからマージする、という流れで今は運用しています。 投げられた側が確認してマージをコミットするので責任は一蓮托生としてます。 人

    githubを会社で導入してみて感じたこと - モノノフ日記
    aki77
    aki77 2012/02/06
  • Googleから為替レートをJSONで取得する方法 - モノノフ日記

    仕事で為替レートを扱う必要があったのでちょっと調べてみました。 海外にあるAPIは有料だったり、Yahooファイナンスからゴニョゴニョするのもコード見たらめんどくさそうだ・・・とか思ってたらGoogle先生にステキなAPIを見つけました。 http://www.google.com/ig/calculator?hl=ja&q=変換前の通貨=?変換後の通貨 // 1アメリカドル を日円に http://www.google.com/ig/calculator?hl=ja&q=1USD=?JPYPHPで書くとこんな感じで使えます。APIレスポンスのままだとjson_decode()が文字列のパースに失敗してたのでkey値を「"」で囲ってます(ダサイ・・)。 <?php $data = file_get_contents('http://www.google.com/ig/calculator

    Googleから為替レートをJSONで取得する方法 - モノノフ日記
  • Twigをもっと活用しよう :Symfony Advent Calender 2011 JP - 9日目 - - モノノフ日記

    Symfony Advent Calendar JP 2011 : ATND 9日目の記事です。 Symfony2.0.7が昨日リリースされましたね。今回のアップデートで個人的に熱かったのはSymfony2にバンドルされるTwigのバージョンがv1.1.2からv1.4.0へアップグレードされた所です。Twigは便利な機能もいっぱいありますのでこの機会に紹介したいと思います。 for お馴染みのループに使う構文です。一般的な使い方はこうです。 <ul> {% for item in article %} <li>{{ item.title }}</li> {% endfor %} </ul> もちろん配列の添字にもアクセスできます。 <ul> {% for key, item in article %} <li>{{ key }}:{{ item.title }}</li> {% endfo

    Twigをもっと活用しよう :Symfony Advent Calender 2011 JP - 9日目 - - モノノフ日記
  • 「全文検索エンジンgroongaを囲む夕べ 2」に参加してきました - モノノフ日記

    全文検索エンジンgroongaを囲む夕べ 2 #groonga : ATNDに参加してきました。 全文検索エンジンとしてgroongaを業務に導入しようとしているので情報を求めて参加したんですがいろいろと参考になる情報がたくさん聞けました。会場はVOYAGE GROUPさんのオフィスだったんですがやたらカッコよかったです。 Ustreamのアーカイブも公開されていますので参加できなかった人も安心ですね。 groongaを語る夕べ #2 November 29, 2011 12:18 PM, groongaを語る夕べ #2 November 29, 2011 12:18 PM gunyarakun on USTREAM. Lifecasting 勉強会の内容はgroongaの開発者の方々が過去、現状、将来について熱く語る、というものでした。 勉強会レポートは全文検索エンジンgroongaを囲

    「全文検索エンジンgroongaを囲む夕べ 2」に参加してきました - モノノフ日記
  • Propel 1.4のWhatsNewの超訳 - モノノフ日記

    この前のsymfony1.4勉強会では、doctrineばっかり言及されててPropelはあんまり触れられてませんでした。1.0から使ってる人はPropelに慣れきってると思うし、あと1.4の情報知らない人が多いのかな、と思って新要素のページを超訳してみたので公開しておきます。*1 翻訳元のページは http://propel.phpdb.org/trac/wiki/Users/Documentation/1.4/WhatsNew です。 What's new in Propel 1.4? Propel1.4は1.3と後方互換性を保ったままのアップグレードになります。多くのバグフィックス、面白い新要素、速度改善などがあります。アップグレードした後はモデルの再ビルドを忘れないようにしようね。 save()メソッド、delete()メソッドでPre, Postフックをサポート オブジェクトとし

    Propel 1.4のWhatsNewの超訳 - モノノフ日記
  • Boost.phpを触ってみた - モノノフ日記

    今年のPHPカンファレンスジャパンで個人的に一番面白かったid:moriyoshiの発表に触発されてBoost.phpを試してみました。 試した環境 debian lenny githubからBoost.phpを取得する とりあえず最新版だけ欲しい人は--depthオプション使うとすぐダウンロードも終わります。moriyoshi/boost.php · GitHub $ git clone http://github.com/moriyoshi/boost.php.git Boostのソースコードを取得する 動作させるのにBoostが必要なのでダウンロードして適当な所に展開。パッケージに含まれるヘッダファイルだけ必要なのでビルドは不要。yumやaptでさっくり入れてもよいかと思います。 添付しているテストコードをビルドしてみる githubから落としたBoost.phpのコードにテストコー

    Boost.phpを触ってみた - モノノフ日記
    aki77
    aki77 2009/09/08
  • symfony1.0.Xにおいてurl_forヘルパーのXSS脆弱性の可能性 - モノノフ日記

    symfonyにはrouting.ymlでの設定名を利用してサイト内のURLを返してくれるurl_forというヘルパー関数がありますがXSS脆弱性らしきものを見つけたので共有がてら書き留めておきます。 XSSが起こるケースはurl_forの第2引数にtrueを指定して絶対パスを返すようにしているときに起こります。バージョンはsymfony1.0.21PRE、ブラウザはIE7で確認しました。 再現方法はtelnetでsymfonyで実装していて url_for('@foobar', true) を使っているページに下記のようにアクセスします。ここでは例としてexample.comの/foo/id/1というURLにアクセスしています。 $ telnet telnet > open example.com 80 Trying 192.168.1.1... Connected to example

    symfony1.0.Xにおいてurl_forヘルパーのXSS脆弱性の可能性 - モノノフ日記
  • sfPropel13Pluginを導入したときの注意点まとめ - モノノフ日記

    symfony1.0.XでPropel1.3のDBレプリケーションが使いたい!という理由だけでsfPropel13Pluginを導入してみたので簡単に手順をまとめておきます。 インストール SVNリポジトリからプラグイン体をゲットすれば終了です。チェックアウトでもいいと思いますが、1.2ではデフォルトでPropel1.3が導入されていることから、もう更新はおそらく無いので自分のリポジトリに入れるようにexportしてます。 $ svn export http://svn.symfony-project.com/plugins/sfPropel13Plugin/ plugins/ 導入(基編) まずdatabase.ymlをPropel1.3仕様に書き換えます。dsnの仕様はPHP: PDO_MYSQL DSN - Manualを参照してください。 all: propel: class:

    sfPropel13Pluginを導入したときの注意点まとめ - モノノフ日記
    aki77
    aki77 2009/06/27
    symfony1.0+propel1.3
  • symfony勉強会/懇親会に参加してきました - モノノフ日記

    5/15に開催されたsymfony勉強会/懇親会に参加してきました。会場を提供してくださった株式会社ディノさんいつもありがとうございます。 勉強会中の主なトピックスは1.2で変更された部分の話がやっぱり多かったですね。自分は1.2はJobeetでいじりながら、適当に遊んでるレベルなのでもっと使わないとなと身にしみました。あとsymfonyは今後、どのコンテンツも全てクラスベースの概念を使って拡張していく方針になるような気がするからOOPの理解が深めれるフレームワークとしてもウリになるかもしれないなとか感じました。 懇親会ではこんな感じの話題で盛り上がっていた記憶があります。 sfFormは慣れれば便利 メンテナンス性は疑問がある symfony1.2を実践投入しているところは少ない 最近デスマ それに付随してクライアントが云々 男の子牧場やろうよ! カヤックの名刺カッコイイ かなり睡眠不足

    symfony勉強会/懇親会に参加してきました - モノノフ日記
  • Developers Summit 2009 株式会社はてなの開発戦略 2/2 - モノノフ日記

    後半は、はてブのリニューアルしたときのお話でした。主にアプリの設計周りとテストの話だったので非常に面白かったし参考になりました。既存のフレームワークは便利だし素晴らしい設計だと思うけど、仕様をガッツリ変えちゃうこともあるしWAFに踊らされてる感が確かにあるので社内用途にあった物を自作するのは全然ありだと思います。 MVACで分けているのが冗長かどうか、という点が講演中に言われてましたがレイヤごとに完全に仕事を切り離してるので特にそうは思わなかったですね。逆にコントローラになんでもかんでも処理突っ込んで平坦なプログラムの方が保守性落ちて後から死ねる気がします。OOPで階層化すると若干構成が冗長気味になるのは仕方無いんじゃないかな。(OOP完全に理解しているとは言えないのでここらで自粛) あとTDDは新規機能だとやりにくいってのには非常に同意してしまった。当は駄目なんだろうけどw 自分の場合

    Developers Summit 2009 株式会社はてなの開発戦略 2/2 - モノノフ日記
    aki77
    aki77 2009/02/13
  • Jobeet - 11日目: フォームのテスト - モノノフ日記

    遅くなりましたが、明けましておめでとうございます。 今年もマイペースで訳していきますのでどうぞよろしくお願いします。 今回はフォームのテストの書き方についてです。 Day 11: Testing your Forms (1_2) - Symfony 前回までのJobeet 昨日はsymfonyで初めてフォームを作成しました。ユーザはJobeetに新しい仕事を投稿できるようになっていますが、テストを追加する時間が無くなってしまいました。 今日はフォーム用のテストを追加します。その途中で、フォームフレームワークについて更に学習を進めていきます。 symfony無しでのフォームフレームワークの利用 symfonyフレームワークの構成要素はかなり疎結合となっています。このことはそれらのほとんどがMVCフレームワーク全体を使うことなしに利用できるということを意味します。フォームフレームワークもsym

    Jobeet - 11日目: フォームのテスト - モノノフ日記
  • タグクラウドのアルゴリズム - モノノフ日記

    タグクラウドを生成する際のアルゴリズムをオープンソースのコードを参考にして現在考えてます。 symfonyの公式サイトで見つけたアルゴリズム <?php while ($rs->next()) { if (!$max_popularity) { $max_popularity = $rs->getInt('count'); } $tags[$rs->getString('tag')] = floor(($rs->getInt('count') / $max_popularity * 3) + 1); } すごいシンプルでびっくり。 処理の流れ タグの最大カウント数をmax_popularityとする 各タグのカウント数をmax_popularityで割り、タグクラウドの範囲から1引いた値をかける(ここでは3) 算出された値を切り上げて、0が無くなるように+1 この算出アルゴリズムだと最大の

    タグクラウドのアルゴリズム - モノノフ日記
    aki77
    aki77 2009/01/03
  • Jobeet - 5日目: ルーティング - モノノフ日記

    Day 5: The Routing (1_2) - Symfony 始める前に 昨日、Jobeetデザインコンテストを開始しました。もし参加したいならばチュートリアルで開発しているメインページのアーカイブを使ってください(アーカイブは静的なHTMLファイル、スタイルシート、画像を含みます)。21日目に投票をするので、前日までにデザインのモックアップを(fabien.potencier[.at.]symfony-project.org)まで送ってください。健闘を祈ります! 前回までのJobeet 4日目を完璧にこなしているなら、MVCパターンはもう熟知できていて、ますますコーディングの方法を性質ごとにしたいと考えるようになっているでしょう。もっと時間をかけて学ぶことで、振り返らないようになるでしょう。昨日のチュートリアルで、Jobeetのページデザインや処理のカスタマイズをし、レイアウトや

    Jobeet - 5日目: ルーティング - モノノフ日記
  • Jobeet - 4日目: コントローラとビュー - モノノフ日記

    Jobeet - Day 4: The Controller and the View - Symfony 4日目にして家から大分置いていかれてしまいました。。あまり気にせず、マイペースでぼちぼち訳していきたいと思います。 始める前に jobeet_job_affiliateテーブルを昨日のチュートリアルで作ったけど、ユーザからフィードバックを受けて違うリレーションテーブルを作ることにしました。jobeet_category_affiliateテーブルに置き換えます。 // config/schema.yml jobeet_category_affiliate: category_id: { type: integer, foreignTable: jobeet_category, foreignReference: id, required: true, primaryKey: tru

    Jobeet - 4日目: コントローラとビュー - モノノフ日記
  • Jobeet - 3日目: データモデル - モノノフ日記

    Jobeet - Day 3: The Data Model - Symfony ようやく少しPHPコードが出てきました。まだ1.2になって新しいなー、と感じるところはありません。Outputzが凄い勢いで枚数カウントされててちょっぴりうれしかったりします。 あと、コメント欄でFabienがDoctrine版のJobeetも提供するつもりだよ、みたいなことを言ってるのが非常に気になります。 前回までのJobeet みんなテキストエディタを開きたくてうずうずしていて、今日のチュートリアルで覚えたことをPHPで書き留め、開発手法を身につけるでしょう。我々はORMを使ってデータベースと情報をやり取りするデータモデルを定義します。そして、アプリケーションの最初のモジュールを構築します。symfonyはみんなのためにたくさんの仕事をこなしてくれますが、みなさんはたくさんのPHPコードを書くことなく十

    Jobeet - 3日目: データモデル - モノノフ日記
  • Jobeet - 2日目: プロジェクト - モノノフ日記

    Jobeet - Day 2: The Project - Symfony 手を抜くとかいいながら結局全部訳しちゃいました。意訳してるところも結構ありますが。。今回は要件定義の話で、まだコードは全く出てきません。毎日これくらいのボリュームだったら進めるの楽だなぁ。 あとFabienがコメントでmockup作るのに使ったツールを紹介してます。チュートリアル読んでる人はみんな買えばいいと思うよ、とか言ってます(超訳) 前回までのJobeet まだ1行もPHPコードを書いていませんが、昨日は環境を整え、適切なセキュリティ設定を付与した空のsymfonyプロジェクトを作りました。チュートリアルに沿っているなら、新しいアプリケーションのための素敵なsymfonyのデフォルトページが表示されているディスプレイを見れて、うれしがっていることでしょう。 しかし、あなたはもっとサイトをよくしたいと考えている

    Jobeet - 2日目: プロジェクト - モノノフ日記
  • Jobeet - 1日目: プロジェクトを始めましょう - モノノフ日記

    Day 1: Starting up the Project (1_2) - Symfony 最初の方は適当に訳しました。実践に入るところあたりからはCLIやコード中心に書いてます。ファイルパスはサイトとは合わせずに自分の環境をベースにしてます。環境はmacbookでやってます。初日なので張り切りすぎました。たぶん明日からはもう少し手を抜きますw イントロダクション symfonyフレームワークは3年間OSSとして開発され、すばらしい特性とドキュメントのおかげで今では最も人気のあるフレームワークの1つになっています。この良き傾向は早くから見られていました。 2005年の12月、symfonyの最初のオフィシャルリリースがあったすぐ後、我々は「Askeet tutorial」を発表しました。それは24つのチュートリアルから構成され、12/1からクリスマスの間で1日ずつ公開されました。 このチ

    Jobeet - 1日目: プロジェクトを始めましょう - モノノフ日記
  • MySQL ユーザコンファレンス 2008のメモまとめ - モノノフ日記

    セッションごとに記事を分割したので、ここでまとめておきます。 10/30 MySQL ユーザコンファレンス 2008 - MySQL トラブルシューティング概要 - Absolute Playing! MySQL ユーザコンファレンス 2008 - Memcached and MySQL - Absolute Playing! MySQL ユーザコンファレンス 2008 - MySQL Enterpriseツールのご紹介 - Absolute Playing! MySQL ユーザコンファレンス 2008 - BOF#1 Drizzle - Absolute Playing! 10/31 MySQL ユーザコンファレンス 2008 - MySQL Performance Tuning 1 - Absolute Playing! MySQL ユーザコンファレンス 2008 - MySQL5.1

  • 第2回symfony勉強会 - モノノフ日記

    第2回symfony勉強会 2008/11/07追記 動画が公開されました。 前半 後半 第2回symfony勉強会に参加しました。 10/26にリリース予定だったsymfony1.2とdoctrineはまだ自分が触っていないところだったので非常に参考になりました。 公式ブログ読んでても感じたけど、バージョンの移行は1.0から1.2で問題なさそう。 もう1回askeetをやってみるのが早いでしょうね。 しかしsymfony2ではDIコンテナを導入するみたいですし、お手軽な言語というPHPの枠組みには収まりきってない気がします。参考資料 Doctrineは昔はbuggyなイメージがあったんだけど、現在はかなり安定してきてるらしいです。Propelが肌に合わない人には選択肢が増えることはいいことだと思います。スライド見た印象だとActiveRecordを意識してるような感じでした。 ただDoc

    第2回symfony勉強会 - モノノフ日記