ドットインストール代表のライフハックブログ
マイグレーションを使わないで、データベースのスキーマ構成を変更したりすると、特に複数人で開発しているような場合にこんなことが起こったりします。 自分の開発マシンとテストサーバ等でスキーマ構成が違っているさらには他人の開発マシンともスキーマ構成が異なっているしかもどっちがあっているか分からない例えば、みんなが色々変更しているせいで、カラムの順番が入れ子になってたりする本番サーバに反映しようとした時に、どの順番にスキーマ変更を行ったらよいか分からない。ソースコードのリリースバージョンと紐付くデータベースの状態がよく分からない。こういう本質的でないことに時間を使っては勿体無いので、データベースの構成管理にはマイグレーション機能を使うのが定石です。Railsなんかだと当たり前なのですが、今回はCakePHP2系でマイグレーションを利用する方法を紹介します。 CakeDC Migrationの導入C
Javaだけじゃない入門jenkins 1. Javaだけじゃない入門Jenkins実践「継続的インテグレーション」 JJUG Night Seminar 2012/09/26 太田 健一郎 @oota_ken 2. 目次 自己紹介 Java以外でのJenkinsの活用 Lightweight Languageでの活用 環境独立の実現 ユニットテスト テストの並列実行 コードカバレッジ 静的検証 コード重複分析 3. 自己紹介 経歴 社内まったりツール開発 5.5年 (JavaScript & Perl) お客様デスマソルジャーSE 4年 (主にJava、一部COBOL) ソーシャルゲームQA 1.5年 (再び、JavaScript & Perl) QAっていうけど、品質に関わることはほぼ何でもやります>< 最近だと、Jenkinsの周り以外にも
envision - demos 拡大可能なGoogleAnalytics風のグラフを描画するJSライブラリ「envision」。 グラフの特定期間をドラッグ&ドロップで指定して拡大したり、データのビジュアライズに便利に使えそうなライブラリです。 横に長いグラフだとデータを見るのが大変になりますが、期間をインタラクティブに限定することで見やすくすることが出来ます FlashによるフォールバックでIE6+にも対応しているようです 関連エントリ 様々なグラフを描画できるJavaScriptライブラリ「NVD3.js」 美麗なグラフをSVGで描画できるJSライブラリ「dc.js」 CSS3とjQueryでインタラクティブなグラフを作成するチュートリアル faviconを円グラフにしてアニメーションできる「Piecon」
おはようございます。 DBI では当たり前のように $dbh->do('BEGIN') と $dbh->do('COMMIT') をつかえばトランザクションがつかえるわけですが、なぜ DBIx::TransactionManager のようなものが必要になったのでしょうか。 それは勿論、DBI で直接 transaction をとりあつかうと問題が発生するケースが存在するからです。 トランザクションと RAII一番おおきいのは、トランザクションが中途半端な状態になってしまうことを阻止することです。たとえば、以下のようなケースでは、おかしなことになってしまいます。 my $dbh = DBI->connect(...); for (@stuff) { eval { $dbh->do("BEGIN"); $dbh->do(q{INSERT INTO t1 (v) VALUES (?)}, $_
25 歳くらいのゲームプログラマの人がやる Adobe AIR を使った比較的真っ当なゲーム開発 Created: 2012-10-23 Modified: 2012-10-23 Written by Tatsuya Koyama このページは この文書は平行世界における 16 歳の僕へ向けたメッセージだ。 平行世界における 16 歳の僕は、恐らくゲームを作りたいと思っているだろう。 夢見る少年である君は、自分の頭の中に溢れるイメージを形にしたくて仕方がない。 絵を動かすこと、音を鳴らすこと、プログラムを書くことに興味を抱いてやまない、 でも何から手をつけていいかわからない、そういう年頃だ。 君に朗報がある。25 歳の僕も、まだゲームを作りたいという信念を持ち続けている。 そして運良く、ゲームを作るという職業にもついている。 コンソールライクなスマートフォンのソーシャルゲームを作って運用す
HTML5の登場で使えるようになった、WebSocketという新技術がある。WebSocketっていうのはざっくりいうと、複数ユーザー間の相互通信が、これまでよりもすごく便利になったよっていう感じ。とっても便利なんだけど、WebSocketはJavaScriptをベースにしてる(っぽい?)ので、その実装方法はほとんどJavaScriptライブラリでおこなわれるのが現状。 ゆるふわPHPerとしては、なんとかPHPで実装したいんだけど、PHPでWebSocketを使えるようにするライブラリはどれも内容が古くて使いものにならないし…。 で、今日、最新のPHPライブラリ「Ratchet」を発見したので、それの、分かれば簡単なんだけど分かるまで大変な、使い方を、ご紹介!! and、備忘録!! うちの動作環境は ↓ こんな感じ。 CentOS 6 (64bit) PHP 5.3.3 SSHはroot
こんにちは、chatiiです。ちょっとまじめに記事書きます。 FuelPHPでけっこう(chatiiとしては)規模の大きい案件がきたので、開発環境をキチっと決めたいと思いました。その中で、今まで手作業でやりつつ、「これ自動化できるだろ」っていうところがあり、今回うまくいったのでご紹介。ちなみに、今回はFuelPHPは関係ないです。 開発会社さんから見たら普通のことなんだろうなぁ。野良プログラマーPHPerだからせけんしらず。 環境・条件 ソースコード管理はGitHub ひとりなのに!ひとりなのに! LAMP構成 開発マシンにはXAMPP/MAMPを入れる。Linuxの場合はyum/aptで取得。 サーバーは 本番サーバー(www.hoge.com) テストサーバー (hoge.dev.example.com) テストサーバーは他人がアクセスできないようにね 他のプロジェクトもテストします
どうでもいいようなコードをPHPで書くような記事ばっかりな訳ですが、今回もそのネタです。サンプルコードがPHPなのはご容赦くださいませ。 $a = array(1,2); $b = array('a', 'b');のとき、$aからひとつ、$bからひとつ要素を取り出して組み合わせを作る。考えうるすべての組み合わせを出力せよ。 こういう感じの問題があったら、普通はこう書くでしょう。 foreach ($a as $val1) { foreach ($b as $val2) { print "$val1, $val2\n"; } } では更に$c, $dも組み合わせろと言われたら? まあループを更に多重にしてやればよいですね。 foreach ($a as $val1) { foreach ($b as $val2) { foreach ($c as $val3) { foreach ($d a
PHPで画像処理といえば GD ImageMagick 辺りを使うのが一般的でしょうか。軽いノリで小さいアプリを実装する時はGDをが向いてると思います。 でもGDってなかなかクセがありませんか?何が違うのか分からない様な似た名前の関数があったり、半透明画像を扱う際は必ず呼ばないといけない関数があったり、テキストの描画が面倒、色の指定が面倒、など。 その辺のややこしい処理をラップして、よく使う機能を実装したライブラリ「DmImage」を作りました。 このライブラリを使うと色々出来ますが、 画像リサイズ ファイル出力 DataSchemeURI変換 ActionScriptやCanvasAPIの様な図形描画、色指定 Instagram風の画像加工 フォントのバンドルによる綺麗なフォント描画 辺りが特徴になるかと思っています。 では、早速使い方の説明です。 使い方 使い方1 〜 画像の表示 サイ
あと1ヶ月もすればもうクリスマスだ。そしてまた1年と1ヶ月もすれば来年のクリスマスだ。アレも欲しい、コレも欲しい。でも、本当に欲しいモノって何だっけ?欲しいモノを聞かれて、すぐに答えていた子供の頃。歳をとるほどに、自分の欲しいモノがわからなくなる。そしてプレッシャーがかかると、思わず「からあげ」と答えてしまう。僕の欲しいモノは何なんだろう。 そうだ。サーバーだ。サーバーが欲しかったんだ。僕はずっとサーバーを探していた。昔はRailsが動くレンタルサーバーなんてなかった。専有サーバーを借りるお金などなく、ロリポップの525円の共用サーバーは当時としては珍しくRubyのCGIが動いたので、妻名義で申し込んで(ごめんなさい!)、RailsをCGIモードで動かしては画面遷移するたびに10秒くらい動かない画面を見つめたりしていた。最近は、ServersMan@VPSが490円で使えて安いんだけど、や
序文 ソフトウェア開発とはままならないものだ。そもそも開発と銘を打たれているにも関らず製造工程のような量的単位「工数」で管理しようとしているので致し方無いのかも知れない。そう、開発と言うからには「作ったことの無いものを作る」ということであるにも関わらず、 ・「何人がかりで何日で出来る?」と聞く ・「何日くらいですかね、やってみないと分からないけれど」と答える ・「分からないけれど」はとりあえず無視して、何日かの余分をとってスケジュールを作る そんなことをしていれば古典落語に出てくる「致し方ないけれど起こる残念な出来事」のようなオチにしかならないのは目に見えているのだが、これは現実によく有るやりとりである。しかし、これでもまだマシな部分も有る。少くとも作ろうとしてとしている人が「何日で出来そうか?」について答えているからだ。作ろうとしている人ではない人が当てずっぽうに答えてスケジュールが決ま
Social Auth Plugin is the authentication and authorization solution based on social networks for web applications. Nowaday, almost internet users have at least one account on social networks (like Facebook, Twitter or Google Plus …). Therefore allowing users log in your applications/sites (apps) via social network accounts is not only help your users approach your apps easily but also help you red
(English version is written after Japanese version) Resque には失敗したジョブを Redis に貯めておいてエラー内容を確認したりジョブをリトライさせられる機能がある。これは Failure Backend というメカニズムで成り立っている。ジョブが失敗したらメールで通知するシンプルな Failure Backend を作りながら、このメカニズムへの理解を深めてみよう。 独自の Failure Backend を利用する手順はこうだ。 Resuqe::Failure::Base を継承したクラスを作る save メソッドを定義してその中で何か面白いことをする (メールを送るとか) Resque がその Failure Backend を利用するように設定する 例としてジョブの失敗内容をメールする Failure Backend はこ
最近ではレスポンシブ対応などでの構成を考える上で 要素によって、PC版ではリンクさせるけれど、スマホ版ではリンクさせない、といった HTMLソース上では<a>タグをつける必要があっても それを無効化する必要があることによく遭遇します。 そんな時に使える、jQueryで親要素を削除することができる 「unwrap()」が便利だったのでご紹介。 サンプルでは、リンクテキストを用意して、 PCでは通常にリンクが張られ、スマホ(iPhone/iPod、Android)では テキスト表示のみになる、といったものを紹介してみます。 HTML側ではリンク<a>タグの中に <span>タグで囲ったテキストを入れます。 ◆HTML <a href="https://black-flag.net" target="_blank" rel="noopener"><span>リンクテキスト</span></a>
PHP Error | error reporting for PHP PHPのエラー画面をリッチにしてくれるライブラリ「PHP Error」。 エラーが発生した際に、何行目がエラーというだけではなく、コードのこの部分がおかしいというところを示してくれ、更にコードのシンタックスハイライト機能などがついている模様。 エラーの行だけではなく、スタックトレースしてくれてコードをさかのぼって閲覧が可能。 それにしてもPHPという言語は年々進化しているわけですが、こういったところも標準でも、もうちょっと進化してもよいのかもと思いました。 関連エントリ Twitter風にエラーや通知をページ上部に表示させるjQueryプラグイン 簡単に使えるクールなPHP用デバッグコンソールライブラリ「PHP Bug Lost」
少ない手間と知識でそれなりに見せる、ズルいデザインテクニック with Sass / Compass (English Version) https://speakerdeck.com/ken_c_lo/zurui-design-technique-english-version 第一回…
みなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはローカル環境で気が向いた時にやるだけではなく、継続的インテグレーションにも組み込んで実施することが望まれます。 PHP_CodeSnifferのインストール特にチャンネルの追加は必要ありません。 インストールが完了すると、phpcsコマンドがインストールされます。 また標準では、Squiz, PEAR, Zend, MySource, PSR1, PSR2 , PHPCS の7個の規約がインストールされます。このうちMySourceは自分でのカスタマイズ用です。 CakePHP
チョーシドウダ?カラダァ?どうも、高橋です! 今朝、CakePHP2.3.0-beta版がリリースされましたね! 今回のリリースでは、パフォーマンス、セキュリティ、使いやすさを向上させる新機能が追加されました。 また完全に下位互換があるので、2.2系からのマイグレーションは(おそらく)容易でしょう。 というわけで、早速Cake2.3を使ってACLを実現してみたいと思います。 イメージが掴みにくいと思ったのでデモを作成しました。(がんばりました! ログイン:http://s1.asial.co.jp/~yuya/blog/20121029/users/login username: adminuser / password: 0000 ACL管理 :http://s1.asial.co.jp/~yuya/blog/20121029/admin/acl またCakePHPのセットアップについて
SquireはHTML5対応のWYSIWYGエディタです。シンプルなUIが特徴です。 Web上で使えるWYSIWYGエディタとしてはCKEditorなどが有名ですが、生成されるHTMLが若干やぼったいのと、動作が重たいというのが難点に感じていました。そこでSquireを紹介します。軽量、シンプルなHTML5対応のWYSIWYGエディタです。 デモです。ツールバーではなくリンクで表示されます。 値を入力するアラートがよく使われます。 入力例。 Squireは特にツールバー的な機能はありません。しかし自分たちの好きにカスタマイズできるというメリットがあります。Gzip圧縮版で9KB程度と小さく、IE8からサポートされています。イベントリスナーも数多く、文字列を選択したり、ペーストしたタイミングでの実行も可能です。 SquireはJavaScript製のオープンソース・ソフトウェア(MIT Li
1枚のPHPでGETパラメータの値をそのまま出力したりする場合、何も考えずに書くとこんな感じになります。 <?php echo (isset($_GET['name']))? htmlspecialchars($_GET['name'], ENT_QUOTES, 'utf-8'): "" ?> さすがに、毎回これを埋め込むのは嫌ですよね。 なぜなら、同じkey名を2回間違わずに書かなくてはなりませんし、なによりも長い。 なので、次の考えるのがヘルパー関数をつぎように用意することです。 <?php function h_array_key($key, $array) { return isset($array[$key])? htmlspecialchars($array[$key], ENT_QUOTES, 'utf-8'): ""; } ?> <?php echo h_array_key
もう2007年といえば5年前のことになってしまう。時のたつのは早いものです。 当時の増田のエントリが何故か今頃盛り上がっていて、その結果それに言及した僕のエントリも盛り上がっているようなのですが、5年前の状況というのはさすがに古かろう、ということでちょっとアップデートしてみたいと思います。 参考: IT業界で無事にいたいなら銀行に関わるな 銀行SE…かわいそうです… - novtan別館 ここ最近の銀行システムの大きなトピックというのは三菱統合UFJ銀行のDAY2(システム完全統合)と、みずほ銀行の3.11後の大障害とそれに伴う銀行の統合・システム刷新でしょう。 特に後者は銀行システムの停止が社会に与える影響が如何に大きいものかということを体現してくれました。 なんどかリークもされているからここだけの話をすると、みずほ銀行はいわゆる第三次オンラインをちゃんとやらなかった建て増しシステムであ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く