nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

ワンポイントTwelve-Factor App(11) : ログ

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 ログは全て標準出力に出す (通常は)1行を1…

ワンポイントTwelve-Factor App(10) : 開発/本番一致

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 開発環境と本番環境の差異を最小限にする 似…

ワンポイントTwelve-Factor App(9) : 廃棄容易性

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 プロセスはいつでも廃棄されて良いものとする…

ワンポイントTwelve-Factor App(8) : 並行性

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 プロセスを並べることによってスケールアウト…

ワンポイントTwelve-Factor App(7) : ポートバインディング

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 プロセスはポート(TCP/UDP)でのみ通信する…

ワンポイントTwelve-Factor App(6) : プロセス

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 アプリケーションは単一または複数のプロセス…

ワンポイントTwelve-Factor App(5) : ビルド、リリース、実行

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 ビルドはコンパイル(ビルド)・依存関係の解…

ワンポイントTwelve-Factor App(4) : バックエンドサービス

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 バックエンドサービスは「アタッチされたリソ…

ワンポイントTwelve-Factor App(3) : 設定

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 設定は環境変数のみで分岐する 設定はコード…

ワンポイントTwelve-Factor App(2) : 依存関係

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 依存関係を依存関係解決ツールを使って解決す…

ワンポイントTwelve-Factor App(1) : コードベース

この記事は、The Twelve-Factor Appを補足し、実際に現代的なWebアプリケーションで適用する場合の注意点などを紹介するシリーズです。下記の原文を読んだ上でのワンポイント解説になります。 12factor.net 概要 単一のアプリケーション(システム)は単一の…

Nuxt.jsにおけるサーバーサイドレンダリングの挙動とライフサイクル

Nuxt.jsというかSSR関係を触る際にまず疑問になるのは「どこまでがサーバーサイドレンダリング (SSR) でどこからがクライアントサイドレンダリング (CSR) なの?」ということだと思います。 基本 サーバーからロードされる時はサーバーサイドレンダリング ロ…

WEB+DB PRESS Vol.95で特集記事を書きました

HTTPに関する特集記事をWEB+DB PRESS Vol.95に書きました。

APCキャッシュを安全に扱うSafeApcを作った

php

https://github.com/nazo/safeapc なにこれ? APC(APCu)のユーザーキャッシュ(アプリから指定するキャッシュ。ソースコードのキャッシュではない)を「そこそこ安全に」扱うための簡単なラッパーです。 どう使うの? packagistに登録してあるので普通にcomp…

Laravel5を業務で一通り使ってみた感想

Laravel 5.0 を、2ヶ月くらい使ってみたけど、悪くはないんだけど、なんか最近持ち上げられすぎてる気がするので、気になったところを書き出してみる。

Laravel(5.0)のCollection

LaravelでDBからリストを取得したりすると、通常の配列ではなく、Collectionというオブジェクトが返ってくる。 これはPHPの配列をラップしたもので、便利な機能がいろいろ用意されている。配列をあんなことやこんなことしたいのにPHPがunkoで面倒!というこ…

Laravel5をHerokuのHHVMで動かす

アプリを作る 前回の記事を参考に適当に用意する。 Herokuにpushできるようにする heroku loginまでは省略。cedar-14Stackじゃないと動かないので注意。新規でheroku createすれば大丈夫。 composer.jsonを編集し、hhvmの定義を追加する。 あと、scriptsブロ…

Laravel5を試す

Laravelとか初めて使うよ!出たばっかりなので試す。 この記事はLaravel5.0が出たばかりに書いた内容です。最新の内容と必ず比較してください。 インストール PHP5.5以上とmcrypt/openssl/mbstringとcomposerが入ってる前提。 まずインストーラのインストー…

GAE/GOでデプロイする(二段階認証編)

チュートリアル通りにやったらできねーよ!的なやつ % ~/go_appengine/goapp deploy 09:38 AM Application: helloworld; version: 1 09:38 AM Host: appengine.google.com 09:38 AM Starting update of app: helloworld, version: 1 09:38 AM Getting curren…

UnityでVoiceText Web APIを使って喋らせる

モヤさまのアレがWebAPIになったらしいので使ってみる IEnumerator SayVoiceText(AudioSource source, string apiKey, string text) { string url = "https://api.voicetext.jp/v1/tts"; WWWForm form = new WWWForm(); form.AddField("speaker", "show"); f…

Unityで日本を登山する(3D地図データを読み込む方法)

先日公開された国土地理院の3D地図データを使います。なお利用規約に注意してください。 ダウンロードしたファイルの中にある*.stlファイルをBlenderでImport Blenderで*.fbxファイルとしてExport Unityの新規プロジェクトに突っ込む(とりあえず名前をmapと…

@propertyの属性の挙動の違い

@propertyの属性にcopyとかstrongとかweakとかあるけど、概念的な説明はどこでもあるけど、具体的な説明をしている記事が少ないので調査した。Xcode4.3.2時点での内容です。 nonatomic 非スレッドセーフにする。マルチスレッドのものを使わない限りはどんど…

PHPカンファレンス北海道を開催しました #phpcondo

2012年4月21日(土)に、北海道では初めてとなる、PHPカンファレンス北海道が開催されました。 今回、私は実行委員長ということで、立ち上げから全ての面でイベントを作っていきました。何で開催したの? 元々「北海道でもPHPカンファレンスやるといいんじゃ…

CakePHP2.0ハンズオン@札幌で使用した資料を公開します

2011年11月26日に開催した、CakePHP2.0ハンズオン@札幌の資料をHTMLにしたものを公開します。 解説は現場で行ったため、説明不足の資料になっています。基本的には公式のチュートリアルと同一です。なので、以前の記事とも内容が重複しています。1. 作業の…

Symfony2の認証(access_controlとrole_hierarchy編)

Symfony2のユーザーには、権限のレベルを細かく設定できます。ここでの説明には、Entity経由でログイン編のソースを使います。権限を確認するために、アクションを1つ追加します。Controller/DefaultController.php ... /** * @Route("/user/sugoi") * @Tem…

Symfony2の認証(Entity経由でログイン編)

おそらくほとんどの人が実現したいと思う、Userテーブルの情報からログインをする方法を考えてみましょう。今回は、NazoUserBundleというサンプルバンドルを作り、そこで作業します。 chmod -R 777 app/cache app/logs php app/console generate:bundle --na…

Symfony2でAnnotationを書くときの注意

Symfony2で、EntityなどをAnnotationで手書きする際、 /* * @var string $name * * @ORM¥Column(name="name", type="string", length=255) */ private $name; これは反映されません。 /** * @var string $name * * @ORM¥Column(name="name", type="string", …

Symfony2で、Entityと連動しない場合にFormの値を取得する方法

createFormの第二引数にEntityを入れると、そのEntityに値が勝手に入るけど、それじゃEntityを使わない場合にFormの値ってどうやって取るの?という話。まあとても簡単で、$form->getData()で、全データがarrayで返ってきます。 $data = $form->getData(); $…

CakePHP2.0のブログチュートリアル

CakePHP2.0がリリースされました。とりあえず英語でブログチュートリアルがあるのでやってみます。インストール まずgithubから、2.0のtarballをダウンロードします。zipでもいいです。適当に展開して、展開したところにWebからアクセスします。(webrootで…

Symfony2で、created_at/updated_atを自動で使う方法

Symfony2で、Entityにcreated_at/updated_at(作成日時/更新日時)を自動で入れる方法普通にやるとLifecycle Callbackを使うことになるのですが、こんなの毎回書くのは面倒なので、一発でどうにかしたいです。 Doctrine Extensions(DoctrineExtensionsBundle…