MVCというデザインパターンはもはや十分ではない

概要 今さら私が提示するような話でもないほど同じような話はネット上に腐るほど存在しているだろう。 にも関わらず不思議とシステム開発の現場レベルで見てみると、昔と変わらない手法をずっと続けていたり、また優秀なアーキテクトに恵まれていない現場などはひどく絡みあったコードと格闘していることは多い。 改めて近代的なデザインパターン・アーキテクチャとは何かということについて自分なりに詰めてみようと思う。 初 … 続きを読む MVCというデザインパターンはもはや十分ではない

osxでsshにて公開鍵認証を行っていてkeychainにパスワードを毎回聞かれる際の対応

なんてことはない小ネタですが、備忘録として 対応としては秘密鍵に対応する公開鍵が存在していないことが原因のようです。 keychainの仕様と言ってしまえばそれまでですが、公開鍵を ~/.ssh ディレクトリ内部に保存することで対応できました。 ~/.ssh/configを確認したりssh-addを明示的に実行したりといろいろ試しましたがやはり公開鍵がなければ駄目なようです。 公開鍵がないという場 … 続きを読む osxでsshにて公開鍵認証を行っていてkeychainにパスワードを毎回聞かれる際の対応

【AD】フリーランスを応援します

何度か本ブログでも取り上げていますが、自分の腕で生き抜いていきたいと考えているエンジニアほど、独立すべきだと思っています。 とはいえ不安、何をどうしたら良いかわからない。など悩みは尽きないと思います。 そんなあなたに、とりあえず相談してみることからオススメします。 今の仕事をすぐ変える必要はなく、リスク無しでフリーランスのライフスタイルを明確にすることができます。 私のオススメは断然下記の「株式会 … 続きを読む 【AD】フリーランスを応援します

scalikejdbcでmysqlとの通信時のCommunicationsExceptionに対処する

概要 scalaアプリケーションを作成している際に下記のような例外が発生しているケースがありました。 今回はこのエラーの原因とその対処についてまとめたいと思います。 ちなみにタイトルにはscalikejdbcと記述してありますが、原因分析についてはmysqlを使用していれば例外なくほぼ同じことが原因であることが多いです。 またアプリケーションについてもscalaといわず、javaを用いていれば同じ … 続きを読む scalikejdbcでmysqlとの通信時のCommunicationsExceptionに対処する

mac osx におけるファイルディスクリプタの上限

概要 mac osxでmysql5.7.11を用いてアプリケーション開発を行ったところ、特定の動作をした時点でアプリケーションが動作しなくなる現象に直面した。 mysqlのエラーログを確認してみると下記のようなエラーが出ていることが確認できた。 開発にともなって行った「特定の動作」とはmysqlにおいて、あるテーブルにpartitioningを適用したことである。それも結構な数の。 なるほどmys … 続きを読む mac osx におけるファイルディスクリプタの上限

nginxでbasic認証をhtaccessライクに設定できるモジュールを作成しました

今回nginxにてbasic認証を取り扱うファイルを公開ディレクトリに設置することで解釈してくれるモジュールを作成しました。 githubにて公開してあります。 このモジュールの振る舞いは端的にいうとapacheでいう.htaccessファイルに等しいです。 (機能的には認証のみに限定しておりますが) インストール方法や設定ファイルのシンタックスなどについてはgithub上に公開してありますので参 … 続きを読む nginxでbasic認証をhtaccessライクに設定できるモジュールを作成しました

nginx拡張モジュールをアップデートしました

先日作成しましたnginxの拡張モジュールを更新しました。 (前回の更新はこちらになります) 前回の拡張ではunixのshared memory segment上にデータを展開するようにしました。 これによって各プロセス間でユーザからのアクセス情報を共有できるといったものでした。 今回の対応では更にネットワーク上で構成された複数のnginxサーバでもデータを共有することを目的として、ネットワーク上 … 続きを読む nginx拡張モジュールをアップデートしました

nginx拡張モジュールを作りました

nginxの拡張モジュールを作成してgithubにて公開しました。 DOSのような攻撃的なアクセスを制御するようなモジュールで、指定時間に指定回数のアクセスを検知すると、任意の時間403を返却するようになります。 正確に言うと以前から公開していたものなのですが、改良を加えております。以前のものはprocess固有の領域にユーザのアクセス情報を格納していたのですが、これだとworker proces … 続きを読む nginx拡張モジュールを作りました

phpの配列はどのようにして初期化され実行されるのか

概要 phpなどのLLは、記述するだけでコンパイルなしに実行されますがその中身はどうなっているのでしょうか。 今回は配列を例にとって、実際にphp処理系をおってみます。 主に字句解析、構文解析の実装について順を追って解説していきたいと思います。 zend処理系 まずはphpの処理系について全体像を軽く解説します。 ドキュメントも結構まとまっておりこの辺りなど非常に参考になります。(4年前ですがこの … 続きを読む phpの配列はどのようにして初期化され実行されるのか

phpのcount関数の実装を見る

ご無沙汰しております。 今日は掲題のようにcount関数の実装を見て行きたいと思います。 概要 phpの開発を行ったことがある方であれば、下記のようなコード見たことあると思います。 また下記のようなコードも目にすることがあると思います。 これらのコードどちらが効率的なのでしょうか。 なんとなく後者のほうが効率が良いようなことは想像に難しくないと思います。 でも、はっきり前者は悪だと断言できる方は実 … 続きを読む phpのcount関数の実装を見る

東南アジアに生息するエンジニアのブログ