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

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は初めて書いた(ネットで落ち…

Agile Samurai Base Camp 2014 Re:TDDに参加してきました

ブログ書くまでが勉強会ですよ。ということで。 細かいところは http://togetter.com/li/657283 にまとめてくださってるそちらを見ていただければと思います。講演資料とかもリンクがついてます質問コーナー(お悩み相談室になってた)で直接 @t_wada さんに質…

Xcodeのswitch文のインデント補完が微妙

最近、iPhoneアプリの勉強してるんですが、Xcodeも合わせて勉強中。 その中でうーんと思ったのが、switch文のインデント "sw"と打つとテンプレートで出してくれるんですが、 switch (<#expression#>) { case <#constant#>: <#statements#> break; default: b…

service コマンドの環境変数でハマった話

新しく作成してもらったサーバ上からflumeを使って別サーバにログファイルを転送した時に日本語が文字化けする現象がありまして。なんだろう?と思ってflumeを管理してる別チームから「LANGの設定がUTF-8ではないとおもいますよ」と教えてもらいました。でも…

一人KPT

ぼちぼち今のプロジェクトで初めて作った機能がリリースできそうなので、一人KPTしておく 作ったもの 某ソーシャルゲームのギルド機能 ただし、 横展開もの でも横展開元では使っていなかった チーム(上の機能を作ったメンバー) プランナー×1 デザイナー/イ…

GitHub Enterprise,JRebel,Jira,HipChat使い始めました

異動後、約1ヶ月経過したのでまとめる 自分のなかで生産性が変わったもの ・SubversionからGitHubEnterprise(GHE)に変わった Git-flowをベースにdevelopブランチにマージするときにPull Request(PR)を投げてレビューしてもらうようにしています。ローカルで…

追記

$jetty.home/webapps/ にtest.xmlの設定を入れたら普通にいけました。前に実験したときにはどうしてダメだったんだろうか <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="contextPath">/</set></configure>

Vagrant + Jetty + Intellij IDEAでリモートデバッグ

Webアプリを作成していて、現在時間を変更しないといけないケースというのがあります。ローカル環境で開発してると時間を変更すると色々問題なので、Vagrantを使うと便利です。ローカルのpom.xmlを以下のようにしてビルドするときにrootディレクトリ以下にWE…

リファクタリングとテストと私

わかってたことだけど改めて気づいたのでまとめましたポイントは 目的をもってリファクタリング 一気になおしたい病を抑えて細かくリファクタリング テストコードがシンプルなものはいいコードであることが多い プログラム性能が悪くなってきたので性能改善…

Javaだっていいじゃない

/.Jに聞け:Javaを使うメリットは?あると思ってますよ。ぱっと思いつくところでは 静的型付け言語。型推論あるし Eclipse,Intellij IDEA などのIDE強力 いろいろなノウハウが溜まってる それなりに人材がいるのでメンバーの入れ替えや補充を考えやすい ちゃ…

ChatWork→HipChatへの移行検討事項

会社がSkype&ChatWork→HipChatへ移行しそうなので、メンバーが困らないように移行事項を検討してみる。色々URL http://help.hipchat.com/knowledgebase/articles/64451-work-faster-with-slash-commands http://help.hipchat.com/knowledgebase/articles/644…

追記

Gitとの連携をちょっと検証してみました。 メニュー→[Edit]→[Project Settings]→[Editor]で Version ControlのModeを"Meta Files"、Asset Serializationを"Force Text"して、.gitignoreにUnityとMonodevelopの特定ファイルを外すといけました。.gitignoreに…

Unity研修まとめ

12/23まで5日間の会社のUnity研修でした。 研修前: あーUnityね。ゲームエンジンでしょ。聞いたことあるー(ほとんど知らない) 研修後: あーUnityね。ゲームエンジンでしょ。これだったらできるんじゃないかなぁ?...たぶん、スライムが倒せなかった勇者が…