ハウテレビジョン開発者ブログ

『外資就活ドットコム』を日夜開発している技術陣がプログラミングネタ・業務改善ネタ・よしなしごとについて記していきます。

非エンジニアがAnalyticsのクリックイベントを設置する - GoogleTagManager で Analytics のタグを管理する (2)

津田です。先日9/22にコーポレートサイトをリニューアルしたのでよろしければご覧ください。 さて、前回の記事ではGoogleTagManagerの概要を書きました。 その記事で エンジニアでなくても好きなボタンやリンクにクリックイベントを設置できるのが素晴らしい…

CakePHP で実装したメール送信フォームで、文字化けしがちな全角チルダ「〜」やハイフンを文字化けしないようにフィルターする

こんにちは、エンジニアの@soyanaです。前回記事CakePHP2 で、phpass でハッシュ化されたパスワードが保存されたユーザーテーブルを扱えるようにするに引き続き、CakePHPのTipsをお送りします。 前提として、 メールフォームの文字エンコーディングは UTF-8 …

nginxのアクセスログにユーザーIDを記録する方法

こんにちは。来週末のPyConが待ち遠しくてたまらない祖山です。 以前、Fluentdを使ってElasticsearchやBigQueryにnginxのアクセスログを流す方法をご紹介しました。 fluentdでnginxのログをElasticsearchとBigQueryに保存するお話 - ハウテレビジョン開発者…

Capistranoによるデプロイの実行時にSlack通知する方法

2児の父、@artifactsauceです。愛の重さに潰されそうな毎日です。 Slack便利ですよね。ハウテレビジョンではSlack導入してから、あらゆるコミュニケーションを集約化しています。例えば弊社ではデプロイツールとしてCapistranoを使っており、Capistranoによ…

GoogleTagManager で Analytics のタグを管理する (1) - GTMの概要とメリット

フロントエンド中心に担当している津田(id:YTsuda)です。夏季休暇が終わってしまい、来年の夏休みを待ちわびている29歳です。 弊社では先日 GoogleTagManager (以下GTM) を導入しました。 これがエンジニアの負担を軽減してくれるすばらしいプロダクトだった…

CakePHP2 で、phpass でハッシュ化されたパスワードが保存されたユーザーテーブルを扱えるようにする

こんにちは、エンジニアの@soyanaです。 CakePHP では、バージョン 2.4 から passwordhasher という仕組みが導入され、認証オブジェクトがパスワードハッシュの生成とチェックを行うために、新たなパスワードハッシュ化オブジェクトを使うようになりました。…

fluentdでnginxのログをElasticsearchとBigQueryに保存するお話

こんにちは。夏休みに長野に行って居酒屋で馬刺しをたらふく食べていたら 地元のおっさん人生の大先輩の絡み酒に付き合わされた祖山です。 4月に入社して以降、サーバサイドのWeb開発やスクラムの導入、サイト内検索の改善など様々な業務に 取り組んでいます…

エンジニアの作業効率を上げる画面構成

JOINして半年が経過しました @artifactsauce です。バックエンド周りを中心に開発全般を担当しています。今日は私のこだわりを中心に、開発環境の一要素である 画面 について考えてみたいと思います。 背景 ソフトウェア開発者の開発環境に対するこだわりは…

CakePHP2でコントローラーのテストをする時の redirect を無視させない

ここ2週間ほど夏風邪でお粥とうどんしか食べていなかったのに、なぜか体重が2キロ増えた津田(id:YTsuda)です。 フロントエンドを中心に開発全般何でもやっています。 今回はハマりどころの多い CakePHPのControllerのテストについて書きます。 環境 CakePHP2…

ハウテレビジョンで活用しているツールたちを紹介していく(第1回 Qiita:Team 編)

ハウテレビジョンでは、 Qiita:Team Pivotal Tracker Slack Backlog といったツールたちのお世話になっている。 昨今のQiita:Team 推しブームに乗っかり、第1回は、Qiita:Team について話ろうと思う。

『アジャイルな見積もりと計画づくり』に学ぶ、良い見積もりと良い優先順位付けのやり方(前編)

エンジニアの祖山です。 ハウテレビジョンでは最近、スクラムによるアジャイル開発プロセスを導入しました。 バックログの作成、アジャイルな見積もり、デイリースクラム、ふりかえりなど、様々なツールやイベントを用いることで、 デイリースクラムで日々の…

WordPressからはてなブログに移行しました

これまで弊社の開発者ブログは、自前サーバーにWordPressを設置して運用していました。 しかしWordPressのアップデートや、サーバー本体のアップデートが面倒に感じるようになり、長い休眠の時を超えた今、他のプラットフォームに移行したいと考えていました…

CakePHPのarray地獄をHashクラスで生きのこる

CakePHPといえば array です。一挙手一投足にarrayがつきまとう、そんなCakePHPには、複雑な array を簡単に扱うために用意された Hash というユーティリティクラスがあります。 Hashクラスはこんな方々に有効です キーの存在確認のために array_key_exists(…

深いディレクトリへ簡単に移動できるz.shをzshに入れてみた

一度行ったことのあるディレクトリへ簡単なコマンドで 移動できるようにするz.shというシェルスクリプトがあります。 z.shをインストールすると、例えば [shell]/var/www/gsskt/wordpress/wp-content/themes/my_theme[/shell] などの地中深くに眠ったディレ…

Gitoliteでリポジトリ名を変更する

gitoliteを使っていて、リポジトリ名を変更しなくてはいけない状況になった時にどうすればよいか。 ググったらぴったりの質問と回答があったので、メモっておきます。 How do I rename a Git repository created with gitolite?

chromeのマウスジェスチャは Mouse Stroke

10年来のFirefox党だったが、いよいよChromeに乗り換えることにした。 Chromeに多くの優位性があることは解っていたものの、良いマウスジェスチャの拡張機能が見つからず、乗り換えるに至らなかった。 マウスジェスチャで一番使うジェスチャは何か。 言うま…

AROとなるモデルのparentNodeメソッドの書き方

日本語版cookbookの中の「ACLを用いた開発例」を紹介するページで、 リクエスタ(ARO)となるモデルの設定方法が書かれている。 ACL を制御するシンプルなアプリケーション しかしこの例における parentNode メソッドの書き方は不適切なので、 英語版cookbook …

cakephp でキャッシュを無視して静的ファイルが更新されるようにする

Webサイトで、画像や Javascript、CSS といった静的ファイルを更新したときに、 エンドユーザ側では、Webブラウザにキャッシュされているため タイムリーに更新が反映されない場合がある。 Webブラウザでリロードすれば更新されるのだが、 エンドユーザは、…