タグ

ブックマーク / hiroy.hatenadiary.jp (18)

  • MagickWand for PHPで画像のプロファイル情報を削る - hiroyのブログ

    個人的なMagickWand for PHPのメモ。 画像をリサイズして小さなサムネイルを作る場合、ただリサイズしただけだとJpegのEXIFデータとかが残ってしまう。不要な場合、次の関数で削除できる。 MagickStripImage 画像のヘッダに含まれるプロファイル情報とコメントを除去 <?php $wand = NewMagickWand(); MagickReadImage($wand, 'foo.jpg'); MagickResizeImage($wand, 120, 90, MW_TriangleFilter, 1); MagickStripImage($wand); MagickWriteImage($wand, 'bar.jpg'); MagickRemoveImageProfiles 画像のヘッダに含まれるプロファイル情報を削除 <?php $wand = NewMag

    MagickWand for PHPで画像のプロファイル情報を削る - hiroyのブログ
  • 器としての進化 - hiroyのブログ

    なぜデザインなのか。 作者: 原研哉/阿部雅世出版社/メーカー: 平凡社発売日: 2007/10/02メディア: ハードカバー購入: 6人 クリック: 61回この商品を含むブログ (41件) を見る 読んでる。原研哉さんと阿部雅世さんの対談形式。まだ半分しか読んでないけど、示唆に富みすぎ。 このシーンに象徴されるように、棍棒というものが人間の手にした最初の道具だと言われています。しかし道具の始源はもうひとつある。空いた手で棍棒を持つのは自然だけれど、たとえば川に行けば、二つの手を合わせて水をすくって飲んだはずです。それが器の始源。器という道具の原点、原型です。だから、「棍棒」と「器」。道具の始源は二つあると思うんです。 そこには二系統あって、ひとつは世界を加工変容していくための「棍棒系」の進化、もうひとつは、ものや知恵を保持していくための「器系」の進化。この二つを対にして考えることが、大事

    器としての進化 - hiroyのブログ
  • 画像の遅延ローディング - hiroyのブログ

    画像の遅延ローディングについて調べてみた。 参考にしたのはこの辺: lazierLoad – Javascript Image Lazy Loader for Prototype – Bram.us Vanilla JavaScript Lazy Load Plugin 仕組みは案外単純。適当なタイミングで遅延ローディングしたいimg要素のsrc属性を適当な画像(blank.gifとか)に置換、表示が必要になったらsrc属性の値を元の値に戻してあげるだけ。 あとは、表示が必要になるタイミングを判断するロジックと組み合わせればOK。画像のところまで画面がスクロールされたかとか、display値が切り替えられるタイミングとか。 // prototype.jsを利用した場合 Foo = { images: [], stopLoadingImages: function() { $$("div#f

    画像の遅延ローディング - hiroyのブログ
  • デザインって何だ - hiroyのブログ

    「【高橋晋×水野貴明×矢野りん】デザイナー × エンジニア --- より良いコラボレーションのために」に行ってきた。X-over Development Conference 2007というイベント自体がスーツの人向けっぽく(主宰は日経IT Pro)、通路をふさぐ邪魔な展示ブースにスーツの人が無駄にうろうろしてた。 メモ: デザイナーとエンジニア お互いにすごいと思ってる ただ、感覚でやってる部分がそれぞれある 客観でないので相互理解が必要だよね 目的はひとつだよ 領域が違う、尊重しあえる関係 何をしたいかわかっているかどうか重要 個人的なコミュニケーションとして 意図がわかるかどうか 使いやすさっていろいろある 自分にない視点をお互いに持っていると信じること 最近のUI デザイナー視点 訓練されたレイアウト感覚 文字の扱いとか 1px単位で気を回すと隙のないデザインができる Window

    デザインって何だ - hiroyのブログ
  • PHPカンファレンス2007行ってきた - hiroyのブログ

    既に昨日の話ですが。懇親会には出ずにすたこら帰りました…。ろくに挨拶もせずにゴメンナサイ。>皆様 思ったこと: PiOは京急蒲田なので行きやすい 京成→都営浅草→京急で直通 まだ第一京浜の踏切は健在 PiOの4階に堂があるのを初めて知った PHP6のUnicode化 ICUベースで文字コードの判定に(まだ)弱い とりあえずUTF-8-MACはサポートしてないっぽい mbstringモジュールの扱いはどうなるかな iconvモジュールは? PHP6のMySQLND MySQL Native Driver libmysql使わない 速くなりそう Symfonyのプラグイン機構が気になるので要調査 Ethnaのプラグインは正直使いづらいような… Moonyにもプラグイン機構ほしい MoonyはPHP5ベースにするべきだろうか Exceptionが使えるだけでもうれしい でもまだレンタルサーバで

    PHPカンファレンス2007行ってきた - hiroyのブログ
    d4-1977
    d4-1977 2007/09/03
    PHPカンファレンス
  • フライパンでパンを焼く方法 - hiroyのブログ

    フライパンでパンを焼いた posted by (C)hiro_y id:yucafeこと村上由香さんに作り方を訊かれたので自分でも忘れないようにメモ。 パンの生地を作って寝かせるまでは普通のパンと一緒 なので作り方は省略… パンを適当な大きさに丸めて、フライパンに並べる なるべく大きなフライパンで 中に甘く煮た林檎とか詰めてもおいしい フライパンに蓋をして、5秒ぐらい火をつける 発酵を促すためなので、焦がさないように 火を消して30分ぐらい放置(発酵) フライパンが冷めてきたら一瞬点火/消火でちょっと温める だいぶ膨らんできたら、そのまま蓋をしてごくごく弱火で焼く 水滴が蓋に付くので必要に応じて拭くこと 焦げやすいので焦がさないように注意 焼き色がほんのり付いてきたら完成 心配なら串を刺せば中まで焼けたかわかる まとめたらまた作りたくなってきた…。また作ろう。 角砂糖 アーティスト: 村上

    フライパンでパンを焼く方法 - hiroyのブログ
  • Moony::log - PHPだけでBasic認証

    何かの拍子で使わないとも限らないのでメモ代わりに書いておく。ざっくりと流れだけ。 <?php if (!authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) { header('WWW-Authenticate: Basic realm="title here"'); header('HTTP/1.1 401 Unauthorized'); echo 'Authentication failure.'; exit; } function authenticate($user, $password) { return ($user === VALID_USER && md5($password) === VALID_PASSWORD); } ?> authenticate関数の部分でデータベースアクセスするようにす

    Moony::log - PHPだけでBasic認証
  • デザインとサービスは似ている - hiroyのブログ

    デザインの輪郭 作者: 深澤直人出版社/メーカー: TOTO出版発売日: 2005/11/10メディア: ハードカバー購入: 8人 クリック: 97回この商品を含むブログ (119件) を見る 深澤直人さんの『デザインの輪郭』を会社の帰りに読んでいる。示唆的な言葉がちりばめられていて、読みっぱなしにしてしまうには惜しい。いろいろ振り返りながら読んでいきたい。 自分がこのものをつくろうと思ったときの、このもののふさわしい位置というのが見えていれば、一番長く生き延びるんです。そのものが生き延びるためにデザインしているっていうとなんかうさん臭くなってしまうので、それは答えではないのですが、少なくともその状況において長く使われるということは、そのいろいろな状況における適正な圧力をもっているということによって決定されなければいけない。それを逸脱してしまったものは、すぐに淘汰されてしまう。そのときに「

    デザインとサービスは似ている - hiroyのブログ
    d4-1977
    d4-1977 2007/03/06
    ちょっと読みたい
  • PATH_INFO文字列の取得方法 - hiroyのブログ

    ついでにPATH_INFO文字列を環境変数のPATH_INFO($_SERVER['PATH_INFO'])から取得しないようにしてみた。$_SERVER['REQUEST_URI']と$_SERVER['SCRIPT_NAME']を組み合わせれば取得できる。symfonyのsfWebRequest::getPathInfo()あたりを参考にした。これでPATH_INFOが設定されないサーバでも動作できる(CGI版のPHPとか)。

    PATH_INFO文字列の取得方法 - hiroyのブログ
    d4-1977
    d4-1977 2007/03/03
    PATH_INFO文字列の取得方法
  • エラー時のリダイレクト処理 - hiroyのブログ

    例えば、以下のようにエラー発生時のリダイレクト処理を書いた場合、エラーメッセージをリダイレクト先で参照/表示したい場合ってどのくらいあるのだろうか。リダイレクト処理を挟むと複数のリクエスト処理として扱われるので、セッションにメッセージを格納しておく必要がある。そのためのFlash変数なのだけれど、現状Moonyではそのあたりが自動化されていない。 <?php class Foo extends Moony_Action { var $name; function validate(&$v) { $v->validateRequired($this->name, '名前は必ず入力してください'); $v->hasError() && $this->redirect('Index'); } } ?>

    エラー時のリダイレクト処理 - hiroyのブログ
    d4-1977
    d4-1977 2007/03/03
    エラー時の処理
  • デブサミ2007、2日目 - hiroyのブログ

    会社を夕方出てそれから参加。 ソニーにおける新規事業開発物語 〜 常識を変えるアプローチとは 〜 間毅さん(http://takeshi.weblogs.jp/blog/) ネットメディア開発室の人 ネットベンチャー起業→上場失敗→ソニーに入社した人 ビジネスデベロップメント的な視点から話している印象 会社にはWiiもある、当然PS3とかVaioXとかも ミッション: ネットを成長エンジンにできるような仕組みを作ること ネットトレンドの調査、プロトタイプの作成 開発と実用化、グループ企業への技術供給と連携促進 ベンチャー企業のネットワークとも協力 社内プロセス大変(ワークフロー/稟議とか) 入れ物だけ作っても駄目、まずは中身 ソニーのアンチネット時代 優秀な若手がどんどん社外に流出 そこで、若手を集めて小プロジェクトをいくつか でも実装したのは外部ベンダー… ベンチャー企業とのネットワー

    デブサミ2007、2日目 - hiroyのブログ
  • デブサミ2007、1日目 - hiroyのブログ

    そういえば会場の目黒雅叙園は両親が結婚式を挙げた場所だった…。行人坂は結構急勾配。 大規模ウェブサイトのスケールアウトモデル バタラ・ケスマさん mixiの中というより一般的にも通用する話 スケールアウトの仕方について トランザクションよりも参照系が多いシステムが対象 わかりやすかった PlaggerによるRSS/Atomフィードのマッシュアップ 竹迫良範さん 比較的まじめなプレゼン内容 Plaggerのプレゼンを見るたびに使おうと思うのだが未だ果たせず VisualBasic、Delphiから10分でJava+Flex2にポーティング 比嘉康雄さん(id:higayasuo) ISIDで開発中の変換移行ツールがある(有償) DoltengにS2Flexのサポートが入るみたい Flex Builderはやっぱり便利そう デモではEclipseが固まってうまくいかなかった… 遅めのマシンを使

    デブサミ2007、1日目 - hiroyのブログ
  • どうやって開発しているか - hiroyのブログ

    フレームワークをどうやって開発しているか、書いてみる。 とりあえず、どうやって利用されるかの視点から開発を進めることが多い。その場合、下記のようなプロトタイプを作成してインタフェースを考える。そして、あーでもないこーでもないと悩みながらそれを実現するための実装をフレームワークとして組み立てていく。 <?php class Foo extends Moony_Action { var $name; var $furigana; function init() { // 初期化 } function filter(&$f) { // フィルタ処理 $f->toHiragana($this->furigana); } function validate(&$v) { // 入力値の検証設定 $v->setRequired($this->name, 'name::名前は必ず入力してください');

    どうやって開発しているか - hiroyのブログ
  • 設定をどう保持するか - hiroyのブログ

    現在のMoonyでは、動作設定をMoonyクラスのインスタンスに格納している。そしてそのインスタンスをMoony_Registryに格納、どのクラスからも参照できるようにしている。 そのため、動作設定を取得するためには以下のように記述する必要がある。 <?php $moony =& Moony_Registry::getRef('moony'); $template_dir = $moony->template_dir; ?> ところが、いちいち書いているうち、グローバル変数でいいような気がしてきた。その方がPHPらしい気もする。 <?php $template_dir = $GLOBALS['moony']['template_dir']; ?> どうするか悩む。

    設定をどう保持するか - hiroyのブログ
  • Mapleの今後とか - hiroyのブログ

    Mapleのよさは、PHPらしさと簡易DIコンテナを上手に組み合わせたことだと思う。ただ、最近開発が滞っている印象が強い。もたついている間に、徐々にEthnaがユーザを増やしているような気がする。 hawkさんがMapleの今後について悩まれているようだけれど、hawkさんの作るライブラリ(Scarletとか、Jsphonとか)を見ていると、PHPらしさを上手に生かした作りになっていて、個人的にとても好きな設計/実装だ(Moony 0.13.0のJSON出力機能では、JSONエクステンションまたはJsphonを利用してJSONエンコードするように実装した)。 Mapleが今後どうなるのかはわからない。でもhawkさんがMaple後継のフレームワークを作るなら、それは見てみたいと思う。 # …なんて言うのはおこがましいですが

    Mapleの今後とか - hiroyのブログ
  • ページクラスでいいかも - hiroyのブログ

    Moonyの場合、アクションクラスというよりページクラス そもそもURL(PATH_INFO)駆動のフレームワークだし ページベースで考えられていると言った方がしっくりくる 定義してみると ルーティング処理によって実行されるページクラスが決定される ページクラスはMoony_Pageクラスを継承して実装される どうかな?

    ページクラスでいいかも - hiroyのブログ
  • プログラミング用のフォント - hiroyのブログ

    最近、プログラミングするときは小夏フォントを使っている。きれいにアンチエイリアスされるフリーの日フォントWindowsにはあまりないのよね。「$」がすこしつぶれた感じがする以外はなかなかいいかも。

    プログラミング用のフォント - hiroyのブログ
  • UTF-8のひらがな/カタカナの正規表現(PHP) - hiroyのブログ

    preg_matchで使える感じで: /^(\xe3(\x81[\x81-\xbf]|\x82[\x80-\x93]|\x83\xbc))*$/ (ひらがな) /^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6]|\x83\xbc))*$/ (カタカナ) 長音ってひらがな/カタカナ共通でいいんだよね…?(参考: http://ash.jp/code/unitbl21.htm)

    UTF-8のひらがな/カタカナの正規表現(PHP) - hiroyのブログ
    d4-1977
    d4-1977 2006/10/03
    これって、Perlでも使えるかな?
  • 1