新規サービス・ハコベルをPHP/CodeIgniterからRuby on Railsに移行しました

こんにちは、ハコベルの開発を担当している蟻塚です。

2015年12月ハコベル正式リリースの少し前に、PHP/CodeIgniterからRuby on RailsのWAFの移行を行ったのでその際の話を書かせていただきます。
個人的にこっそり調査1ヶ月、業務時間フルで1ヶ月、延べ2ヶ月程度でメイン部分を移行して、その後1ヶ月で残タスクを消化といったスケジュール感でした。

続きを読む


今更だけどPHP7使ってみた

待望のPHP 7.0.0がついに2015/12/03にリリースされました。
っというわけでサクッと検証してみました。

スペック

使ったサーバー: IDCF 500円サーバー x2台
OS: CentOS 7.1

PHP 7.0  インストール

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w php70w-opcache

 PHP7_0
PHP7
でたー。
続きを読む


AWSのt2.nanoを使ってみた

AWSがt2.microよりさらに小さいt2.nanoをリリースしました。
サービスの詳細に関しては EC2アップデートー T2.Nanoインスタンスが利用可能に
参照してください。スペック的には下記の通りです。

Instance Type CPU Memory 価格($/時) 価格($/月) 価格(¥/月)
t2.nano 1 0.5GB $0.01 $07.3 ¥0,891
t2.micro 1 1.0GB $0.02 $14.6 ¥1,781
t2.small 1 2.0GB $0.04 $29.2 ¥3,562
t2.medium 2 4.0GB $0.08 $58.4 ¥7,125

($1.00 = ¥122で計算 2015/12/18時点)

インスタンスを立ち上げる

続きを読む


ブラウザとバーコードのいい関係

初めまして。入社して3ヶ月ちょっと、エンジニアの天野です。

さて、

はじめに

先日、運用中のWebシステムの一部に関して、ここはバーコードで楽にしたいねーという話が上がりました。
紙でやりとりが必要な作業があり、それに印刷されたバーコードをスキャンして、対応する情報をブラウザ上に表示するというものです。(それまでは人力で紙の情報とWeb上の情報の紐付けを行っていました)

バーコードリーダーという単語から、コンビニやスーパーのレジで使用されているあのゴツイやつを連想してしまった僕。
「それって組込み系言語でがっつりネイティブアプリ作んなきゃなんでしょ。うひょー」とか思っていたわけですが、実際はJavaScriptでさっくり実装できました…

ということで、今回はWebシステムとバーコードを連携させたお話です。
続きを読む


git stashで新規追加したCSSや画像も一時的に退避させる方法

はじめに

フロントエンド周りを担当している野口です。

昨年の8月に入社して、約9ヶ月が経過しようとしています。入社当時はバックエンドのエンジニア5名(インターン含む)、フロントエンドエンジニアは私ひとりで、デザイナーは不在でした。現在はというと、バックエンドのエンジニア10名(インターン含む )、変わらずフロントエンドはひとりで、デザイナー2名といったメンバー構成です。

作り手の人数が倍以上になり、プロジェクトも複数走り、GitHub のトピックブランチの数が入社当時と比べてえらい増えたな〜と。10名のバックエンドのエンジニアに囲まれ、複数プロジェクトやタスクを並行して作業しているので、ブランチを切り替えることが頻繁に発生します。急な修正もあったりしますし。

そんな時はおなじみの git stash で一時的に変更を退避させます。commit してしまい、あとで reset するとか他にも退避させる方法はありそうですが、さっと退避できるので git stash を使っています。

続きを読む


Yahoo!ジオコーダAPI を使ったアプリケーションの作り方

エンジニアの大嶋です。

先日、吉岡がブログでGoogle Mapsを使ったアプリケーションの作り方を紹介しましたが、

今回は同じAPI でも

Yhaoo GeoCoding API

についてご紹介したいと思います。

ラクスルのポスティングのシステムの裏側ではGoogle Maps APIだけではなく、
ケースによってはYhaoo APIを利用しています。
続きを読む


Google Maps を使ったアプリケーションの作り方

お久しぶりです。吉岡です。

ラクスルでは、折り込みポスティングのサービスを提供していますが、
これらのサービスで使われているのがGoogle Maps APIです。
googlemaps_09

入力された住所から地図を表示して、配布エリアのポリゴンを表示する、
などのことができるとっても便利なAPIです。

そんなラクスルのサービスには欠かすことができない、
Google Maps APIの使い方、およびアプリケーションの作り方について今回は書きたいと思います。

続きを読む


ラクスルの開発環境・開発体制 Early-2015

12月に入社した @okapon_pon です。

ラクスルには8人目の開発メンバーとしてジョインしました。(インターン生1人を含む)

現在ラクスルではサービスの機能拡充と合わせて、開発環境改善プロジェクトというものに着手しつつあります。

私が入社した当時の開発環境は、弊社大嶋が以前書いた「ラクスルの開発フローについて」 にある通りGithub、skype、redmineを利用しており、加えてmediawiki、Gyazo-client、cacooといったツールを利用しています。

これらのツールは今でも利用しているのですが、私が入社してからの3ヶ月ほどで開発環境・開発体制も変わってきましたので紹介したいと思います。
続きを読む


ノンエンジニアでもOK。TableauでSQLの代わりをしちゃおう

プロダクト開発部のやすいです。
この前の安井と同一人物ですが、基本的には平仮名のやすいの方が字面が好きなので、
そちらを使わせていただきます。

過去の記事で、ノンエンジニアでもSQLを使えるようになろう的なブログを書いていましたが、
やはり慣れなかったので、Tableauで出来る方法を考えました。

MySQL社内勉強会をノンエンジニア向けに実施してみた

Tableauを使ってSQLと同じことをやるということは誰でも出来るので、
パクッてもいいのよ。と思いまして書きたいと思います。

●下準備(データ接続)

とにかくデータに繋がないことには始まりません。
簡単データの繋ぎ方講座から。

タブの「データ」から「データを接続する」を選択。うちはMySQLなので、そこから基本情報を入力します。
各自、エンジニアにパスワードなどは聞いてね。ちなみに、MySQLに接続するにはODBCが要りますのでお気を付けを。
585948aeca0724dca152cab1c0557e54

データの繋ぎ方です。
SQLを書かなくてもデータを繋げます。
テーブルとテーブルを繋げるのはドラッグ&ドロップするだけ。簡単ですね。
ただ、それだけだと繋げたことにならないので、2つの間にある〇みたいなのをクリックすると
下の画像みたいなものが出てきます。
「内部」って言うのが、選んだ変数の中で共通にあるものを残すという意味で、
「左」って言うのが、選んだ変数の中で左にあるデータは全部残すという意味で、
「右」って言うのが、「左」の逆です。絵でなんとなく分かります。

これで、データの接続はOK簡単ですね。
もし、個人情報を持ちたくないなぁなんて場合は、タブにある「データ」の「カスタムSQLに変換」って言うのを押すと、以下の画像のような画面が出てきます。この中で、個人情報に該当する行を消せばOKです。
ラクスルの場合はメールアドレスですかね。
aaaaaaa

下準備はこれでOKです。
後は、ピボットの感覚でグラフがほいほい書けます。
気分はデータサイエンティスト!
df9ebe45810505143cf4faa6dd36c29f

●対象の一覧を出したい場合

例えば、「東京で売上げが1万円以上のお客さんを抜き出したい!」みたいな時ってありますよね。
そんな場合は、大体エンジニアに頼んでSQL叩いてもらうってのが定番だとは思いますが、エンジニアが忙しそうな時は超気まずい。
実は、Tableauで出来ちゃうんです。

1.フィルタに条件を入れ込みます。今回は「県名:東京」と「売上げ:10,000円以上」60f6d139af39c106444542d77b4e9d42

2.適当に見たいデータを行に入れます。今回は「ユーザー」と「性別」と「誕生日」を入れました。

a592b6830596a073323af4b958951ca7

3.後は「分析」タブの「データ表示」して、すべてエクスポートをするだけ。後は煮るなり焼くなりご自由に。

4f957da7bbd6ade0f795eed9843e4987

●エクセルみたいに集計した数値を出したい場合

Tableauにも関数がたくさん用意されています。
本当に多い上に、割と分かりやすくて簡単です。
よく使う関数ベスト3

~第1位~「COUNTD([あ])」

「あ」の数を被っているのを1個だけと数えてくれる関数です。
パラメータを指定する「メジャー」の中にある「カウント(個別)」と一緒です。
しかし、なんとも複合的に使うのが多いのがこのCOUNTD。だから、覚えておいて損は無いです。

COUNTD([ユーザー])

とシンプルですけど一番使います。次の2位にも使ってます 笑

~第2位~「CONTAINS([あ]、い)」

もし、「あ」の中に「い」が含まれていたら、trueにするって関数。
集計する時はくっつけちゃって、trueをカウントしちゃいますね。

COUNTD(CONTAINS([ユーザー],”やすい”))

的な感じで、やすいがユーザーの中でどのくらい含まれているのかを数えてくれます。
超便利。

~第3位~「IF あ THEN い ELSEIF う THEN え ELSE お END」

もし、「あ」だった時は「い」で、それ以外の「う」だった時は「え」で、それ以外は「お」というもの。
条件に合わせてフラグ立てする時とかに使えます。あいうえおの部分に数式も入るので便利。
条件式にCONTAINS()とか使うと、含まれている時などで使えます。
具体的には以下のように使います。

IF [ユーザー]=やすい THEN 1 ELSEIF [ユーザー]=とねがわ THEN 2 ELSE 0 END

もし、ユーザー名が「やすい」だったら、1で「とねがわ」だったら2でその他は0ってことですね。
集計とかに使いやすいです。

まとめ

意外と、エクセルで出来ることは大抵出来ちゃうTableau。
さらに、SQLが書けなくても、同じようなことが出来てしまいます。
データの抽出なんかをエンジニアにお願いする時代はもう終了。
みなさんもTableauを使って、快適データライフを送ってくださいね。
といいつつ、やすいも使いこなせているのか自信は無いですが・・・

PR

ラクスルでは現在WEBディレクター・WEBデザイナーを絶賛募集中です!
<ラクスル採用サイト>

 


sublime text3でphpの開発環境を整える

11月入社のAです。
前職はソシャゲの会社でPerlを中心に開発しており、php歴は約2ヶ月ほどです。

sublime text3で開発する場合は、デフォルトで十分開発できるのですが、
いくつか小技的なものの紹介させて頂きます。

sshfsでサーバーをマウントしてsublコマンドを使う

ラクスルではIDCFクラウド上のサーバーにsshでログインして開発しているので、
sshfsでリモートサーバーをローカルにマウントしています。

sublimeにはsublコマンドが付属しており、このコマンドを使うとターミナルからファイルを開くことができ非常に便利なのですが、リモートのファイルに対しては当たり前ですが使うことができません。

sshfsでマウントすれば、ターミナルからマウント先に移動できるので
ローカルファイルと変わらず使うことができます。

DocBlockerを入れて、phpdocコメントを書く

phpではphpdocという形式でソースコードにコメントを書けば、自動でドキュメントを生成してくれるツールがあります。

オープンソースプロジェクトなどでは標準的に使われており、できればちゃんと書きたいところですが、docコメント書くのは正直めんどくさい….

ということで当初はさぼっていたのですが、DocBlockerというパッケージを入れると随分書きやすくなりました。

docblocker1

ただし、1点はまりポイントがあって、GoogleIMEで日本語のコメントを書こうとすると、Enterキーを押した時点で内容が消えてしまいます。

パッケージ側の機能をコメントアウトして、対応することもできるのですが、それだと使いづらくなってしまうので、IME側の確定をEnterキー以外にも割り当てることで対応しました。

MacOSの場合、GoogleIMEの環境設定 -> キー設定の選択 の横にある編集ボタンから設定変更することができます。

Phpcsでファイル保存時にコーディング規約にあっているかチェックする

phpにはPHP_CodeSnifferというツールがあり、
ソースコードが、コーディング標準にしたがってくれるかをチェックしてくれます。

ラクスルではコーディング標準はまだしっかり定めているわけではないのですが、
できればPSR標準にしていきたいねーという動きがあり、ひっそりsublimeに導入しました。
php-cs-fixerというphpcsに違反している部分を自動修正してくれるツールがあるので合わせてそれも導入します。

sublimeではPhpcsというパッケージを入れることで、エディタ上からphpcsを利用することができるようになります。

  1. まずはphpcs/php-cs-fixerをインストールします。詳細は割愛しますが、僕はhomebrewで以下のようにインストールしました。
    brew update && brew upgrade
    brew install php56
    brew install php-code-sniffer
    brew install homebrew/php/php-cs-fixer
    
  2. sublimeのパッケージインストールで、Phpcsを入れて設定ファイルを書きます。
    設定ファイルは、Preferences->Package Settings->PHP Code Sniffer->Settings-Userから編集できます。
    他にも挙動は細かく設定できますが、最低限以下の設定をすれば使えるようになります。詳細はDefaultの設定ファイルを読むと良いです。

    {
        "phpcs_php_path": "/usr/local/opt/php56/bin/php",
        "phpcs_executable_path": "/usr/local/bin/phpcs",
        "php_cs_fixer_executable_path": "/usr/local/bin/php-cs-fixer",
    }
    

保存時にphpcsでチェックする例。
ここでは括弧の位置とstatic/pubilcの宣言順序が指摘されています。
phpcs1

php-cs-fixerで修正する例。
phpcs2

これでレビューで怖い人に怒られなくなりますね!

PHP-Twigを入れる

ラクスルではテンプレートエンジンにtwigを使っているのでtwig用のパッケージを入れます。twigを使っているなら入れるべきでしょう。

その他

折角なのでphp関係ないですが、僕が普段使っているパッケージをしれっと付け加えておきます。

Alignment
All Autocomplete
BracketHighlighter
Browser Refresh
Emmet
Markdown Preview
RecentActiveFiles
Sublime Bookmarks
TrailingSpace

何かお役に立つものがあれば幸いです。

ラクスルではsublimeが好きなエンジニアを絶賛募集中です!
ラクスル採用サイト