読者です 読者をやめる 読者になる 読者になる

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

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

Cloud Dataflow入門〜データ処理の実践

弊社ハウテレビジョンでは、週の1日をR&D dayとして、業務と直接関係しない技術を学んでみたり、今まであまり触れてこなかった領域を調べたりしています。 今回はCloud Dataflowに入門し、簡単なデータの分析コードを組み、動かしてみました。 とても簡単に…

Rustに入門した理由、チュートリアルの過程と感想

弊社ハウテレビジョンでは、週の1日をR&D dayとして、業務と直接関係しない技術を学んでみたり、今まであまり触れてこなかった領域を調べたりしています。 今回は複数人で集まってRustのチュートリアルを読み進め、実際に簡単なコードを組み、動かしてみまし…

ICSE 2017 論文リーディング

弊社ハウテレビジョンでは、週の1日をR&D dayとして、業務と直接関係しない技術を学んでみたり、今まであまり触れてこなかった領域を調べたりしています。 背景 最先端の研究を知るのに、カンファレンスの論文を読むのは有効な手段です。 直接役立つことは多…

静的サイトをサクサク作成・公開するためのサービス・ライブラリ選定

弊社ハウテレビジョンでは、毎週一日R&D dayという名目で、業務と直接関係しない技術を学んでみたり、今まであまり触れてこなかった領域を調べたりしています。 通常業務ではいわゆる「動的な」サイトを作成しているため、意外と静的なサイト作成に触れてき…

SIerからWeb系スタートアップ/ベンチャー企業に転職して感じたこと

だれ? 2015年11月にハウテレビジョンに入社いたしました。 入社する以前は、某緑のナビ会社でスマホ向けのAPI書いたり 中小SIerでWebシステムの開発をやってたプログラマでございます。 なんやかんやでエンジニアは歴10年目に突入しました。 今回はいつもの…

外資就活ドットコムの開発ワークフローの再設計

はじめに さまよえるアラフォー男子 @artifactsauce です。 突然ですが、弊社は「外資就活ドットコム」というWebサービスを開発・運営している会社です。サービスイン当初はイケイケガンガンで高速開発・高速リリースをうたっていましたが、開発者が増えるに…

サーバの監視システムを設計したときに考えたこと

弊社では少し前にサーバをAWSに移行しました。 それまでは継ぎ足し継ぎ足しで作っていたものを再構成しての移行だったので、この機会にサーバの監視体制についても一新しました。 この記事ではそのときどういったことを考えて設計したかをお伝えできればと思…

Selenium WebDriverで、新規会員登録フローのE2Eブラウザテストを自動化してみた。

どうも。エンジニアの@bumcruです。 Qiitaの「Selenium/Appium」アドベントカレンダー9日目の記事です。 去る10月に行われた開発合宿、今年のテーマは「自動化」でした。 テーマの範囲内で、個々人が自由に好きなものを作るわけですが、 僕が選んだお題は「S…

【開発合宿幹事向け】合宿企画の下準備工程を全て公開します。【合宿準備編】

どうもこんにちは。 エンジニアのvsannaです。 前回の記事では、10/16(金)から10/18(日)にかけて行った合宿の様子を画像中心にお届けしました。 今回は事前準備編として、幹事様に参考になりそうな情報をとりまとめています。 これから企画をしなくては...と…

【画像57枚】開発合宿にいってきたぜ!【合宿当日編】

どうもこんにちは。 エンジニアのvsannaです。 今回の記事では、10/16(金)から10/18(日)にかけてhowtv開発陣で行った合宿についてまとめたいと思います。 飲んで騒ぐ様子から一人ひとり徹夜の開発で倒れこんでいく様子まで写真中心にお楽しみいただけます。 …

ユーザーの行動パターンをグラフで視覚化する方法

はじめに データアナリストのn_maoです。 BtoCなWEBサイトやスマホアプリ、リアル店舗の小売業など多くのビジネスでは、ユーザー行動を正しく分析することで、継続率や売上げの向上につながる重要な示唆を得ることが可能です。 ユーザー行動分析の中で、ある…

なぜ DI が好きなのか PHP / Laravel でやってみた

夏はとにかく苦手、夏生まれの@KJ_BACCHUSです。 外出なんてしてたまるかと自宅で何かやろうと思いたった今日この頃。 Webエンジニアとしての知識が乏しいのでスキルアップを目的にアプリを作成しようと思います。 当社にはスマホアプリエンジニア(主にAndro…

Slack WebAPIでナイスなフォーマットのメッセージを送る

こんにちは。xyz_iです。 弊社ではチャットツールとしてSlackを使用しています。 メンバー同士のやりとりはもちろん、いろいろなイベントの通知先としてもとても重宝しています。 例えば、WebAPIを使い、Capistranoによるデプロイの実行時にSlack通知する方…

データドリブンな組織を作るときにまず行うこと 〜我が社よデータ分析色に染まれ〜

はじめに データ解析本部のn_maoです。 前回は高速集計ツールmコマンドのご紹介をしました。 前回のmコマンドの紹介の投稿 今回は趣向を変えて、社内に分析部隊をゼロから作り、データドリブンなサービス改善を実現するためにまず行うべきこと、意識すること…

【Android】ScrollViewにListViewを入れる

お久しぶりです。ホサカです。 Android開発をする上で、最近では数多の便利なライブラリが存在しており、いろいろな場面でサポートしてくれるようになりました。 とはいえ、やはり自分で解決しなければいけない問題には度々遭遇するものです。 かくいう私も…

Lispをはじめよう! 非EmacserがMacにLisp(Scheme)の実行環境を作るまで

こんにちは。@who_you_meです。 非常に変化が早いWebの世界ではありますが、一方で今まで長い時間をかけて積み重ねられてきた知識が大切なことに変わりはありません。 たまには古典に立ち返って名著を読みたくなりませんかなりますよね私はなります。 そんな…

UbuntuのパッケージリポジトリをChefで追加する方法

最近は昼食にマルちゃん正麺ばかり食べている artifactsauce です。 今回はUbuntuのパッケージリポジトリをChefで追加する方法を解説します。 私が最近ハマったので、皆さんは同じ轍を踏まないように。

初めてiOSアプリ開発するときにおさえておきたいこと

はじめまして、xyz_iです。 これまでWebアプリケーションばかり作っていた自分が、1月からiOSアプリ開発を行っています。 いろいろと覚えないとならないことが多く四苦八苦してますが、アプリ開発経験のあるチームメンバーに助けられながらなんとかやってい…

当社データサイエンティストがこよなく愛している『mコマンド』で数億行を高速集計する話

どうも。 1月に入社したばかりの、データ分析担当のn_maoです。 と言いながら、最近はHTMLとjsばかりいじっております。 それはそれで楽しいです。 さて今回はデータ分析のざっくりとした仕事内容と、その分析にかかる手間を省くツールをご紹介します。

【Android】アイコンフォント表示 ~ material-design-icons編 ~

今年ももう1ヶ月が経とうとしていますね。早い!毎年同じことを言っている気がします。まだ3週間ですが。。。 申し遅れましたが私、仮面アンドロイダーのホサカと申します。 活動時間は3分です。ええ、夜じゃなくて昼です。それってウルトラマンじゃないの?…

MySQLのキャッシュを有効活用するために気を付けること

明けましておめでとうございます! 大晦日には父と二人で一升瓶をまるまる空けてしまった@who_you_meです。 DBのパフォーマンスチューニングにはさまざまな要素がありますが、キャッシュの活用はそのなかでもかなり重要な項目です*1。 *1:ただし、キャッシュ…

作業時間管理と報告書の生成〜あるいはBDDの成果

時間が無い、時間が無いと毎日うわ言のようにつぶやいている @artifactsauce です。皆さんも毎日お忙しいですよね。今回は時間管理とその補助ツール、そしてその補助ツールの開発についてのお話です。 長い前置き 報告書 Qiita:Team 弊社では情報共有にQiita…

PhpStorm 8.0 で痒いところに手が届く設定 3つ

PhpStormのインストール後わたくし津田が設定した内容を共有します。 ただ、すでにweb上には無数のドキュメントが存在しているので、本稿ではマイナーな、だけど痒い所に手が届く設定を中心に書いています。 無数のドキュメント PhpStormの設定 - Qiita PhpS…

ちょっとしたPHPスクリプトで PEAR ライブラリを管理するのに composer を使ってみよう

はじめに こんにちは、エンジニアの@soyanaです。 PHP のライブラリ依存性管理といえば、composer ですね。

【パフォーマンス】XDebugとqcachegrindによるPHPアプリのプロファイリング【改善】

こんにちは! 来年統計検定の1級を受けることになった祖山(@who_you_me)です。 過去問を見たらガチすぎて震えてます。 【PDF注意】 http://www.toukei-kentei.jp/about/pastpaper/2013/2013grade1.pdf

SlackのCHANNELSを隠すスクリプトを書きました for Chrome

マリオカート8でレートが7000を超えた津田です。 ハウテレビジョンではチャットツールに Slack 使っています。 弊社の場合、重要な発言は DIRECT MESSAGES や PRIVATE GROUPS に集中し、 CHANNELS は雑談や他ツールからの通知が中心となる傾向があります。 …

MacでWindows XP & IE6の環境を構築するまでの壮大なYak Shaving

@artifactsauce です。今日は東急東横線が大幅に遅延していて朝からすでに萎えています。今からリポビタンDを買いに行こうと思っています。 皆さんのWebサービスはInternet Explorer(以下IE)6でも快適に利用できますか?Microsoft自体がWindows XPのサポー…

ハウテレビジョンのメンバーでアプリ開発合宿に行ってきました!

9月27日~9月28日に千葉県の銚子にある温泉宿「土善旅館」にて開発合宿に行ってきました。

非エンジニアが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ブラウザでリロードすれば更新されるのだが、 エンドユーザは、…