SequelProでViewテーブルを表示すると日本語が文字化けする問題の解決

新しいMacに移行したところSequelPro1.1でViewテーブルを表示すると日本語が ??? という表示になってしまう問題が発生した。 Viewではない通常のテーブルは問題なく日本語表示される。解決方法は、 環境設定 -> 一般 -> デフォルトエンコーディング の値を自…

ApacheやNginxのSSL関連のおすすめ設定を生成する便利サイト

ApacheやNginxとopensslのバージョンを指定するとおすすめの暗号スイートなど、SSL設定ファイルを表示してくれるMozillaのサイトがあります。 https://mozilla.github.io/server-side-tls/ssl-config-generator/ これを使えば安全な暗号スイートのみを使って…

LaravelのマイグレーションでView Tableを作成する

Laravel5で試していますがLaravel4でも問題なく動くと思います。複雑なテーブル構成の場合、LaravelのEloquentなどで頑張ってリレーションの情報を定義して取得するのも良いのですが、書き間違えて違うidを参照してしまったり、メンテナンスする際に毎回確認…

CakePHP2のPaginateでCASE式などを使ったフィールドを指定してソートする方法

CakePHP2で、CASEやCONCATなどを使ってテーブルに存在しないフィールド名でソートを行う場合、例えば下記のようにすると思います。 ['CASE WHEN User.age >= 20 then 1 else 0 END AS adult'], 'order' => ['adult DESC'] ]; find('all', $params); 通常のf…

本日、kanaelのサービスが終わります。

kanaelは、2011年2月より4年間運用してきましたが、このまま続けてもなぁ、というところまできたので一旦終了します。 http://kanael.net/kanaelというのは、あなたのやりたいこと、ほしいものを含めた、好きな日本語URLを作成し、他の人も、それに興味があ…

村井純著インターネットを読んで自分の思考を形成してきたものを振り返る

1995年に出版された村井 純教授の「インターネット」という書籍を読みました。古い本ですが、色々な気付きが多く楽しめました。書籍「Unixという考え方」と同じような感覚。 継続的セキュリティテストサービスVAddyのプロジェクトリーダになってから私の考え…

CakePHP3のfind結果はdebug関数で見ると良い

CakePHP3を触り始めています。Cake3からfind()の結果がオブジェクトになりました。 Cake2までは配列だったのでpr関数で見ても問題なかったのですが、オブジェクトになるとprは辛くなります。CakePHP3からはdebug関数を使うと下記のようにリレーション先のデ…

継続的セキュリティテストVAddyの説明資料

説明資料をアップロードしました。 サイトよりも少し詳しく書いてます。 継続的セキュリティテストVaddy説明資料 from ichikaway VAddyはCIツールと連携し、継続的なセキュリティテストを実現することで、セキュリティを意識した開発を助けます。 無料プラン…

開発者向けサービスのビジネスが成功する時代に

CircleCIのブログに、「Developers Matter: New Relic IPOs」という記事がありました。 2011年当時、投資家から開発者向けのサービスで稼ぐのは難しいと言われたが、最近はNewRelicのIPOもあって、開発者向けのツールやサービスが注目されるようになった。こ…

mod_rewriteを使って画像のみCloudFront経由で配信する設定

AWS

CloudFrontを導入する際にCNAMEを付けて、該当FQDN全てCloudFront経由の配信にする方法が一般的かと思いますが、今回は画像やjsなど特定ファイルのみCDN対象としたかったので、その設定方法をメモ。Apacheのmod_rewriteを使い、下記のように設定 RewriteCond…

CakePHP2にTwilio SMSを使った2要素認証機能を追加

CakePHPアドベントカレンダー2014の2日目の記事です。12/1に @K1LoWさんが突然アドベントを始めたので乗り遅れないように2日目を担当します。まだアドベントカレンダーは空いているので皆様も是非。そうそう、12/10にCakePHP2実践入門が電子書籍として発売さ…

名前を付けること、生命を吹き込むこと

最近リリースした継続的セキュリティスキャンサービスVAddy(バディ)の話です。 http://vaddy.net VAddyのプロモーション動画はこちら。1年前ぐらいにVAddyのざっくりしたコンセプトはあって、 どの方向で行くべきか、どのような世界を目指すべきかという議論…

SaaS型 継続的WEBセキュリティ診断VAddyの紹介

PHPカンファレンス関西2014に参加し、LTで5分の発表を行いました。 現在、VAddy(http://vaddy.net)というSaaS型の継続的Webセキュリティ診断サービスを開発していて、そのコンセプトを発表しました。VAddyという名前を初めて外部に公開したことになります。…

Twilioで電話転送した時のステータスパターン

Twilioで、受けた電話を他の電話に繋ぐとき、Call命令を使います。 https://jp.twilio.com/docs/api/twiml/dialこのとき、通話者同士の動作によってステータスが変わり、Dialで指定しているactionのurlにステータスの状態が通知されます。電話を切った時とタ…

CakePHPのfind()で取得したデータが全てstring型になるのを、DBのカラムの型に合わせてint型で値を取得する方法(mysql)

CakePHP2からはPDOを使ってDBアクセスするようになりました。PDO(mysql)では、デフォルト設定でデータをfetchするとint型のカラムでもstring型として結果が返ってきます。CakePHPもこの影響を受けており、jsonデータなどに変換する際や、型を厳密に扱いたい…

PHPからTwilioを使って電話を操作する発表をしました

FukuokaPHP第7回 1周年記念というめでたい日に、Twilioという電話APIサービスを使ってPHPから電話をかけたり、受けたりする話をしてきました。 fukuokaphp7 PHP x twilio from ichikaway 当日のUstreamの動画はこちら http://www.ustream.tv/recorded/3347…

「Unixという考え方」はやはり良い本でした

UNIXという考え方―その設計思想と哲学という本を読み終えました。 原著のタイトルはThe Unix Philosophyです。 これは1996年に出版された古い本ですが、Unixの考え方を通して、良いソフトウェアとは何かが分かる良書です。150ページほどしかないのですぐに読…

CakePHP1.2から2.3にアップデートしたらサーバの負荷が半減した

あるプロジェクトでCakePHP1.2を使っていたのですが、そろそろサポート期間も終わりそうな気がしたのでCakePHP2.3の最新版にアップデートしました。 サイトは月に数百万PVぐらいの規模で、DBテーブル数は80ぐらい、それに加えてViewテーブルやストアドプロシ…

(2013/4/28) CakePHPのPaginatorコンポーネントに脆弱性、すぐにバージョンアップを!

CakePHP1.2, 1.3, 2.xのPaginatorコンポーネントに脆弱性があり、最悪はSQLインジェクションが起こる可能性があるとのこと。 http://bakery.cakephp.org/articles/markstory/2013/04/28/security_release_-_cakephp_1_2_12_1_3_16_2_2_8_and_2_3_4 早急にア…

CakePHPのレールの外し方(CakePHP勉強会 uluru 2013/04/19)

株式会社うるるで開催された、第1回CakePHP勉強会で発表してきました。 今回のお題は、「エンジニアとデザイナーの協業」でした。 デザイナー向けというのは、実は3回目ぐらいなので何を話そうかなと悩んでました。悩んだ末に、プログラマがどこまでデザイ…

git, github講座で3時間ほど話して声が枯れてペットボトルの水3本を消費してきました

git

4/20にWAVE新宿で下記の講座を開催しました。「フロントエンド技術をたかめたい・Webクリエイターのためのgithubで始めるgit講座」 〜黒い画面を使わずに、バージョン管理の基本を学ぼう〜 今回は、コワーキングスペース茅場町 Co-Edo(コエド)、マルチメデ…

FacebookでCakePHPの日本用グループができました

正確には数ヶ月前からグループは出来てたんだけど、野良っぽい感じだった。 今は、CakePHPコアチームの人も参加してるし、名前もCakePHP Japanというグループ名になり、正式っぽくなった感じ。https://www.facebook.com/groups/304490963004377/日本のフォー…

プロセス一覧でメモリ消費量の多い順にソート

ps aux --sort -rssさらに、それを2秒おきに更新して表示 watch ps aux --sort -rss

CakePHPコアデベロッパーMarkStoryさんのインタビュー動画

CakePHP1.3からコアデベロッパーになったMarkStoryさんのインタビュー動画が公開されてます。http://twit.tv/show/floss-weekly/244動画はダウンロードできます。 また、音声のみでもダウンロードできるので、それをiPhoneに入れて聴いてました。彼の人柄が…

Cake Beer TalkでCake1から2への移行Tips100を発表しました

CakePHP 1 to 2 Migration tips 100 from ichikaway まぁ、100個も紹介する時間は無く、31個まで。残りはどこかで。。。。ちなみに表紙の写真は、自宅から徒歩10分ぐらいのところにある海。 福岡良いよ、福岡! 今回の会は茅場町のコワーキングスペースCo-Ed…

HABTMの中間テーブルのモデルがAppModelになる問題再び

や、、、奴が帰ってきたぜ!CakePHP1の頃に一度は解決した問題、また別の場所で勃発しました。。。 「HABTMの中間テーブルがAppModelオブジェクトになってしまう問題の対応」 今回は、HTBTMを持ってるモデルでfind()を実行して(recursive=1)、その後に別の場…

[CakePHP2] SQL文を貼り付けると、CakePHPのコードを生成するサービス

infinitas-cms.org というCakePHP製CMSを開発している @dogmatic69 さんが、すごいものを開発してました。 なんと、SQL文をペーストすると、CakePHPのコードを生成するものです。http://dogmatic69.com/sql-to-cakephp-find-converter コードは3パターン出力…

CakePHP2.3からinputタグにhtml5のrequired属性がつくようになった

CakePHP2.3から、モデルのバリデーション定義で必須項目にしているフィールドには、Viewのinputタグにrequrired属性が追加されるようになりました。 つまり、下記のようなinputタグが出力されるということです(一番最後のrequired=の箇所) <input name="data[Contact][name]" maxlength="50" type="text" id="ContactName" required="required"/> これがあると、…

CakePHP2実践入門が増刷されました!

CakePHPをバリバリ使ってるエンジニアで書き上げた「CakePHP2実践入門」、おかげさまで増刷(第2刷)となりました! CakePHPをある程度使ってる方にも有用で、例えばソーシャル連携とか、セキュリティとか、テストとか、CakeEmailとか、私もCakePHP2の開発をす…

CakePHP2.3がリリースされました。

CakePHP2.3がリリースされました。 http://bakery.cakephp.org/articles/lorenzo/2013/01/28/cakephp_2_3_0_is_out マイグレーションガイドはこちら http://book.cakephp.org/2.0/en/appendices/2-3-migration-guide.html find('first')が0件だった場合の返…