buildersconに行ってきた感想

builderscon.io 駆け足で感想書く。 tl;dr 人口密度高くて盛り上がっている感がすごかった 生mattnさん見たかった 多様性がものすごかったので次回は全く違いものばかり聞いても面白いかもしれない 土曜にイベントがあると日曜日ガッツリ触れるからいい

IntelliJ + php + fuel + xdebug + vagrant でリモートデバッグする

PHP(Fuelフレームワーク)を触ることがたまにあるのでリモートデバッグの方法をメモする。書いてみたけどPHP自体よくわかってない vagrant のIP 192.168.33.10 ローカルのIP 192.168.33.1 root@vagrant-ubuntu-trusty-64:~# php -v PHP 5.5.9-1ubuntu4.20 (cl…

技術選択とQCDのトレードオフという結論がない話

経緯としては受託開発会社にiOSアプリの開発を依頼したら、Objective-C(Obで作ると言われて「え?Swiftじゃないの?」とエンジニア陣がざわついた。 同僚とオンライン・オフラインで話してたけどこれは難しい。iOSアプリ開発には詳しくないけど、技術的な制…

プロダクトマネージャーカンファレンス2016に参加してきた

プロダクトマネージャーカンファレンス 2016 | 10/24~10/25 に参加してきました。カンファレンス内容とかは動画・スライドが上がると思うので、そちらを参考にいただければと思います。(業務連絡:社内向けには多分別途書きます) 2016/10/24(月)25(火) Japan…

enzyme+React

enzymeとは GitHub - airbnb/enzyme: JavaScript Testing utilities for React Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output. karmaとかと組み合わせること…

utf8_unicode_ci

全角と半角を区別する create table test ( id int PRIMARY KEY , name varchar(255) COLLATE utf8_unicode_ci, title varchar(255) ); INSERT INTO test(id, name, title) VALUES (1, 'abc', 'abc'),(2, 'ABC', 'ABC'),(3, 'ABC', 'ABC'); 結果 mysql…

ridgepole 0.6.4 メモ

実戦で使えるように素振り URL https://github.com/winebarrel/ridgepole install gem 'ridgepole' # スキーマにoptions(ストレージエンジンの設定など)をつける gem 'activerecord-mysql-awesome' エクスポート すでにテーブルがある場合はexportする. ridg…

AWS CodeDeployで遊んでみた

会社でCodeDeployを使ってたけど、使ったことなかったので遊んでみた。 AWS CodeDeployとは? https://aws.amazon.com/jp/codedeploy/ より AWS CodeDeploy は、Amazon EC2 インスタンス、およびオンプレミスで稼働するインスタンスを含む、さまざまなインス…

Jenkins2.0 + http2をつかってみた

Jenkinsには足を向けて寝れないほど毎日使ってる人間なので、めでたくJenkins2が出たのでやってみた ついでにhttp2使ったらどのぐらいはやくなるのかな?というみたかった。 あとLet's Encryptもつかってみよう 環境 jenkins 2.6 nginx 1.11 AWS(AMI ami-f5f…

不具合を分析しすぎてチームに悪影響を与えたかもしれない

担当サービスの品質を担保するというのが仕事の1つなので、不具合の分析などを行うことはよくある。 ここでいう分析とは以下のことを指してる 不具合がいつからいつまで発生していたか なぜ発生したか どのような対応をおこなったのか ユーザにどのような案…

テストの改善案の案

エンジニアのKPTで「CircleCIで走らせてるテストが項目数の割には30分超えてきたから速くしたい」という話をしたけどちゃんと説明できなかったので書く 環境 Java8, SpringFramework MySQL Junit, SpockFramework 問題点 テスト実行の最初(いわゆる @Before…

今更サーバサイドとフロントエンドの責務を考えてみる

まえがき 仕事(Webブラウザ上で動くソーシャルゲーム開発)でSPA(Single Page Application)のサーバ側(いわゆるJSONを返すAPIを作成)を担当していた同僚の自分より若いエンジニアと話していたので自分の考えをまとめておきます。あと、ここではAjaxを使った非…

ロードス島戦記に学ぶ技術的負債の返し方

1年前にいたプロジェクトに戻ってきて3週間ほど経過しました。 ミーティングが多くてガッツリコードを書くことがなくなりました。 同じフロアにいたため時々飲みに誘ってもらってたので久しぶり感はなかったのですが、コードを見るとだいぶ変わってました。 …

次のソシャゲ開発でやったほうがいいなと思うこと

チュートリアル駆動開発 チュートリアルがユーザが一番最初に見るところだから、そこで落ちると意味が無い チームとしてはゲームの幹をはっきりするため ここにないものは実装するかどうか検討する イテレーション0を大切にする Jenkins、ステージング環境、…

Node.jsからTwitterAPIを使う

Node.jsからTwitterAPIを使ってみたのでまとめました やりたいこと TwitterAPIを使ってツイート内容と画像をあげる WebブラウザからのアクセスとUIWebViewを使ったアプリから使われるのでPin認証を使う 手順 Twitter Application Management からアプリ作成…

S3とCloud Storageのアップロード時間が全然違った話

S3とCloud Storageのファイル転送速度どのぐらいちがうのかなーと思って計測してみました。 2KBぐらいの5000枚の画像ファイルを作ってそれをインスタンス→S3、cloud StorageとS3(cloud Storage)→S3(cloud Storage)で計測してみました。 多分、ネットワークと…

Sinon.JSのuseFakeTimersを教えてもらった

全然関係ないローカルテスト通らないと調べてたら、テスト全体を一定時間内に終わらないとfailするテストだった…マジか orz— Eiji Hachiya (@hachi_eiji) 2015, 5月 18 説明難しいんだけど マスタの開始日と終了日が現在日付〜現在日付+200秒になってて、こ…

TypeScriptでNodeのWebアプリを書き換え中

今年頭からNode.jsを本格的に初めてみて、JavaScriptの柔軟性の便利さと怖さに四苦八苦してしてます。と言っても、1/3ぐらいは負荷試験してたり、細々と色々なことしてたので、そこまで書いてたわけではないけど。 オブジェクトにどんどんプロパティを追加し…

自分用のメモにもslackがいいのかもしれない

仕事用のメモで何かいいのないのかなーと色々試している途中 ユースケース メモはほぼ毎日書く 自分用のミーティング議事メモや、軽いプログラム(集計SQLとかコピペで実行するシェルとか)、コード書いてて気づいたことを書く。 小さなタスクも書く ホワイト…

gulpを書くときのメモ

背景 今のプロジェクトでgulpの中身を見ることが何回かあって、そのたびに「こうしたらいいのになー」とか思うので、軽くまとめておく。見るたびに直したい衝動にかられるが、動いているのには理由があるし、今はそのフェーズでないのでグッと我慢する。もち…

MongoDBのindex

indexの作成 db.collection_name.ensureIndexで作成できる。この時に第2引数のoptionsにbackgroundを入れること。デフォルトは background:falseなので、index作成完了までデータベースロックがかかるため ちなみにバックグラウンドを有効にした場合でも、シ…

シャーディングの復習

シャーディングの種類 Range Base sharding Hash Base Sharding 全部のshardに分散されるので均一的にデータが入る 範囲検索するとおそらくすべてのshardにアクセスするとおもうので微妙 データ一本釣りするときは有効かもしれない。(例:ユーザ自分自身のデ…

MongoDBのバックアップ周りを実際にやってみる

2年ぶりにMongoDBを触ることになったので、リハビリがてらReplica SetとSharding周りを触ってます。 とりあえず今日はReplica Setとバックアップ周り。 なぜバックアップまわりかというと、前に触ってた時は本当に基礎部分しかやってなかったので、バックア…

JDK7→JDK8にバージョンアップした時の作業まとめ

12/25 追記 JDK8でmaven releaseプラグイン経由でJARを生成するときにjavadocを作成しててエラーになった。 maven-javadoc-pluginのconfiguration <additionalparam>-Xdoclint:none</additionalparam> を追加した サーバ構成 インフラの構成ファイルはchefで管理 アプリケーションサーバ 約50台 …

Flap◯ Birdを作ってみる。その2

鳥のアニメーションを表示する 予め lv1_bird_normal.png, lv1_bird_flyup.png, lv1_bird_flydown.png を用意します。 shoeboxを使って、画像を結合します。別レイヤーを用意してそこに実装します auto birdSprite = Sprite::create(); birdSprite->setPosit…

Flyway Rollupをつくった

https://github.com/hachi-eiji/flyway-rollup仕事でFlywayを使ってるのですが、いくつが問題が出てきて 開発が進むとファイルが増える(V100とかまでできた) flywayのlocationsを安定版(本番で稼働中)と開発用(自分が開発中)でディレクトリを分けた場合に、 …

Flap◯ Birdを作ってみる。その1

会社から上記ゲームをつくってみなさいというお題が出されたのでcocos2d-xで挑戦中。Unityはなんか自分の感覚に合わなかったので...まずはインストール cocos2d-x 自体のインストール http://www.cocos2d-x.org/download からダウンロード Androidのダウンロ…

GitHubEnterpriseをどうやって仕事に使っているか

で、GitHubKaigiから1周間も経ってしまったのですが書いておきます。 スマホ向けのソーシャルゲーム(Webブラウザ)を提供しているので、頻繁にリリースが発生はしますが、定期リリース日というのが決まっているので、git-flowで開発しています。今のところこ…

GitHub Kaigi 感想文

6/1(日)に GitHub Kaigiに参加してきました。運営のみなさん素晴らしい会議ありがとうございました!その中でいくつか全体的な感想と印象に残ったものをまとめます 全体的な感想 id:naoyaさんもクロージングで言っていたように、昔コードレビューやリモート…

Agile Samurai Base Camp 2014 Re:TDDで学んだことを反映してみる

Agile Samurai Base Camp 2014 Re:TDDに参加してきました - 個人的なまとめでかいたようにJUnit+Grooy+Spockでテストのテンプレを書いてみました。 コードはこちら https://github.com/hachi-eiji/java-spock-practice正直Groovyは初めて書いた(ネットで落ち…