マルチテナントWebアプリの作成について

SaaS事業を提供する会社で働いているとマルチテナント構成について色々悩む事があるんだけど、データの分離、アプリサーバ・DBの利用効率を考えると、こんな構成が取りたい。 appサーバは全アカウント共通で使いたい DBは小さいアカウントについてはできるだ…

ただのウェッブ系エンジニアが言語処理100本ノックをPythonで解いてみた

先月、先々月あたりに、空き時間に少しずつ言語処理100本ノックを解いてみた。 github.com 基本的には全部Python3.6.0(Anaconda 4.3.0)で動作を確認している。 Pythonについての感想 普段Rubyに慣れてるせいで、以下のようなところは面倒に感じる。 map, sor…

Flask使ってみる

はじめに 機械学習とかで遊ぶためにPython触っとくかと思うけど、とりあえずWebエンジニアなのでWebから触ってみる。普段の仕事はRailsとExpressだけどRailsみたいなフルスタックで重厚なWebアプリケーションフレームワークよりもExpressのような軽量なやつ…

家二郎 in 熊谷 Final

はじめに 第3回の工程を書き忘れていたんだけど、第4回の家二郎を開催した。残念ながら今回を最後に熊谷の家を引き払ってしまうため、今回が熊谷で行われた最後の家二郎である。 家二郎と言いつつ、第3回で豚骨ベースのスープは一旦完成ということにしておい…

家二郎2回目の報告

はじめに 前回に引き続き、2回目の家二郎を開催することとなった。2回目の工程を書き残す。 参加人数 6名 開催日 2015/05/09 食材 スープ ゲンコツ: 2本 ※前日に肉のハナマサにて入手。 豚脂: 約500g ※同上 鶏ガラ: 1羽分 豚肩ロース塊: 約400g 豚バラ肉塊: …

初家二郎の記録

はじめに 先日、転勤により友人が関西から関東へ引っ越してきた。その彼だが1人で1LDKの部屋に住むといううらやまけしからん住環境を確保しており、この広さを活かして家二郎を開催する運びとなった。今回の工程を次回以降のために書き残す。 参加人数 5名 …

Faradayでawsの認証ヘッダを付けるミドルウェア書いた

rubyでs3からファイルをダウンロードするときはAWS SDK for ruby使えば簡単にできるんだけど、既にFaradayで取得処理が構築されてる部分でS3にも対応させたいところが出てきたのでAWSの認証ヘッダを付けるためのミドルウェアを書いてみた。 tarhashi/faraday…

徳丸本の環境をMacのVirtualBoxで構築する

第2版が出るらしいので、もうこの記事は不要かと思います 会社で徳丸本こと体系的に学ぶ安全なWebアプリケーションの作り方の読書会が始まったのだけど、環境構築手順がWindows向けだったのでMac向けの構築の際に行ったことをメモ。 VirtualBoxのインストー…

ナビプラス株式会社に転職しました

4/30付で鈴与シンワート株式会社を退職し、5/1付でナビプラス株式会社に入社しました。 鈴与シンワートってどこだよって感じの会社ですが、清水エスパルスのスポンサーロゴでおなじみの鈴与グループのシステム会社です。 鈴与シンワートの同じチームの方々と…

Play2.0で書いたサンプルを2.1対応にしてみる

Play2.1が出たので、試しに以前書いたサンプルをマイグレーションガイドを見ながら2.1対応にしてみた。 https://github.com/tarhashi/Play-AngularJS-Sample/tree/2.1 project/plugins.sbtを修正 addSbtPlugin("play" % "sbt-plugin" % "2.1.0") mainを修正 …

サクラエディタでもCDイジェクトがしたい

vimやIE、ChromeでCDイジェクトできるなら、サクラエディタでだってCDイジェクトしたくなりませんか?私はなりません!しかしサクラエディタならJScriptやVBScriptでマクロを書くことができますので、以下のスクリプトをマクロとして登録することにより、い…

Zend Framework 1.12.0で最も長いクラス名を探してみる

PHP

これはZend Framework Advent Calendar19日目の記事でもなんでもありませんし、開催されてるのかも知りません。 ここ1ヶ月半ぐらい仕事で久しぶりにZend Framework1系を使ってますけど、PHP5.2時代に擬似namespaceを実現したようなクラス名の命名規約になっ…

MySQLとPHPで曜日の数値表現が非常に紛らわしい件

MySQLとPHPで曜日の数値表現を使った処理を行ったら非常に紛らわしかったのでメモ。 MySQLの曜日関数 MySQLには日付から曜日の数値表現を求める関数が2つある。 DAYOFWEEK関数と、WEEKDAY関数である。 この2つの関数が単にエイリアスであればいいのだが、 そ…

はてなBlogのMarkdownモードがシンタックスハイライトに対応してた

最近記事を書いてなかったわけですが、久しぶりに試してみたら知らない間にシンタックスハイライトに対応してた。これはうれしいですね。 require 'redcarpet' markdown = Redcarpet.new("Hello World!") puts markdown.to_html

はてなBlogのMarkdownモードを使ってみる

はてなBlogがMarkdownに対応したらしいので使ってみます。 段落 Markdownでは、空行で段落が分かれます。 2つ目の段落です。 Markdownでは、空行で段落が分かれます。 2つ目の段落です。 HTML埋め込み テーブルタグを埋め込んでみる。 <table> <tr> <td>Foo</td> <td>Bar</td> </tr> </table> テーブル…

Play framework 2.0でMongoDBを使ってみる

普段はMySQLか、もしくはPostgreSQLな仕事ばかりでMongoDBを使うようなことは無かったので、一度MongoDBを触ってみようと思い、記事の作成とそこにコメントを付けていくようなアプリを書いてみた。ログインはめんどいので割愛。 play-mongo-sample ODM Mongo…

Symfony2.1.0 & Zend Framework2.0.0 リリースされました

PHP

Symfony 2.1.0 released Zend Framework 2.0.0 STABLE Released! ということで、PHPの大物フレームワーク2つの新バージョンがリリースされたようです。 どちらもComposer対応ということで、これからComposerの利用が進んでいくといいですね。 個人的には最近…

iPhoneアプリ開発の勉強始めてみた

MacBook Air 2012 13inchを購入したので、Xcode入れてiPhoneアプリ開発をいじり始めてみてる。 しかし第一歩からいきなり挫折しそうになった。iOSシミュレータインストールするためにApple Developer登録しようとして、普段使ってるApple IDで登録を進めよう…

Play Framework 2.0.2 + AngularJS + Squeryl + lift-jsonでTODOアプリのサンプルを書いてみた

Play Framework 2.0 + AngularJS + Squeryl + lift-json を使って、AngularJSのTODOアプリのサンプルのバックエンドにPlay Framework2.0を使うような感じで、TODOアプリのサンプルを書いてみた。 tarhashi/Play-AngularJS-Sample 細かいことはソース見てくだ…

SolrのTokenFilterを書いてみる(Scalaで)

Solrのフィルタやらを書けるようになっておきたいよねー、でもJavaは色々面倒なので最近はできれば直接は触りたくないよねー、ということでScalaで書いてみた。Solrの拡張は全然わかってないので色々間違っているかもしれないけれども。サンプルとして書いた…

php-buildでphp-fpmを試してみた

PHP

phpenv + php-build を使って 5.3 と 5.4 を共存させつつ php-fpm を使うを参考に、php-buildでphp-fpmを生成するようにして試してみた。 $ cd .php-build/share/php-build/definitions/ $ cp 5.4.4 5.4.4-fpm $ vi 5.4.4-fpm 中身はこんな感じで。configure…

eclipseでSolrのソースを開いてみる

Solrのソースコードをeclipseで開いてみようと思ったのでメモ。 まずはソースをダウンロードして解凍し、解凍したディレクトリへ移動。 次に以下のコマンドを実行。 $ ant ivy-bootstrap $ ant eclipse これでIvyで依存関係の解決が行われ、eclipse用の設定…

ScalaからSolr3.6に接続してみる

scalaからSolrに接続するように試してみた。まずはSolrjを直接使ってsolr3.6に接続してみようと、以下のようなコードを書いてみた。 package test { import org.apache.solr.client.solrj.impl.HttpSolrServer import org.apache.solr.common.params.Modifia…

PHPでPrivateなメソッドをテストする

PHP

ユニットテストを書くとき、privateメソッドやprotectedメソッドまでテストすべきかどうかというのはまあ微妙な所で、ユニットテストは外から見える振る舞いだけをカバーしておいて、内部の実装は自由にしておくべきなのかもしれないけれども、内部メソッド…

PHP5.3.3(windows)のgo-pear.batが動かねぇ

PHP

わけあってPHP5.3.3なんていう過去の遺物を使っているのだけど、PEAR使おうと思ったらgo-pear.batが動かなかったのでメモ。 これを参考に、 @ECHO OFF set PHP_BIN=php.exe %PHP_BIN% -d output_buffering=0 PEAR\go-pear.phar pause これを @ECHO OFF set P…

Symfony2のasset内のcss等から画像のパスを解決する方法が欲しい

Symfony2でBundle内のResources/public/cssなどに配置されたcssやjsからResources/public/images/内の画像等を使用する場合のスマートな方法って無いんでしょうか? Railsだと、http://guides.rubyonrails.org/asset_pipeline.html にscssやjsなどから指定す…

Solr3.6の日本語形態素解析エンジン Kuromoji

昔は形態素解析で分かち書きしたい場合、Senを使ってやるのが普通だったと思うんだけど、3.6からはKuromojiという形態素解析エンジンが組み込まれているらしい。そしてexampleには最初からtext_jaというフィールドタイプが組み込まれており、すぐに試せる状…

Solrを動かしてみる

aptから入れる場合 とりあえず手軽に試してみたければ、Ubuntu系OSの場合aptを使って $ sudo apt-get install solr-common solr-jetty もしくはTomcatがよければ $ sudo apt-get install solr-common solr-tomcat でインストールできると思われる。でもバー…

anarchy golf (multi_key sort)

30.multi_key sort。部分適用でComparator作ってsort。Scalaで1位(他に誰もやってない)。しかしLanguage Rankingは30位…。 val s=io.Source.stdin.getLines.toList def f(k:List[Int],x:Array[String],y:Array[String]):Boolean={val a=k.head if(x(a)==y(a)…

anarchy golf

anarchy golf。Ruby,Perl,Haskellなんかの変態の集まる言語では歯が立たないのでScalaでまったりと。 18.Square rootをScalaで。最初まじめにやってたけど決めうちを多用してまじめに変換するロジックをバッサリ消し去ったら大幅に短縮された。悲しい。まだ…