旧ブログ

sambaiz.net に引っ越しました

引っ越し

ブログ引っ越しました sambaiz.net

モテる広告エンジニアが、バンディットアルゴリズムで調べた本当にイケてるクリスマススポットを教えるよ

この記事はCyberAgent エンジニア Advent Calendar 2015の23日目の記事です。 昨日はtaizoさんの Web系ポッドキャストを1年間やってみた話 で、明日は公式エンジニアブログです。 こんにちは。新卒1年目の@sambaizです。広告のエンジニアになりました。 広告…

Scalaのcase classのフィールド名一覧をReflectionで汎用的に取得する

例えば、以下のようなcase classがあったとして、 case class Neko(name: String, age: Int, nyaa: Option[String]) このフィールド名一覧、name, age, nyaaは以下の方法で取得することができます。 println(classOf[Neko].getDeclaredFields.map(_.getName)…

CarteでAPIドキュメントを作る流れ

Carteとは devo-ps/cartegithub.com サンプル 準備 Jekyllのインストール gem install jekyll Carteをclone git clone https://github.com/devo-ps/carte.git サーバーを起動 cd carte jekyll serve http://127.0.0.1:4000/ 編集 タイトル _config.ymlのtitl…

ItamaeでCentOS7にGitbucket + Jenkins + Redmineの環境構築

社会人になりました。 研修でサーバー構築自動化の課題があり、Itamaeを使ってみました。 sambaiz/itamae_jenkins_redmine_gitbucketgithub.com Itamaeとは itamae-kitchen/itamaegithub.com 軽量版Chefのようなもので、その分学習コストがかからず、シンプ…

TexturePackerで作ったcocos2d-js用のスプライトシートを使う

前回作ったスプライトシートを使ってみます。 var res = { aaaaPack_plist : 'res/aaaa.plist', aaaaPack_png : 'res/aaaa.png' }; plistはcc.spriteFrameCache.addSpriteFramesで読み込みます。 以下はSpriteBatchNodeを使った例です。 var ws = cc.winSize…

TexturePackerでcocos2d-js用のスプライトシートを作る

TexturePacker 3.6.0 cocos2d-js 3.2 TexturePackerでcocos2d-js用のスプライトシートを作ります。 一つのシートにまとめることでロード時のメモリを節約することができます。 TexturePackerは以下のサイトで入手できます。 TexturePacker - Create Sprite S…

Djangoのデプロイ

pythonで書いたプログラムの入出力をAPIとして提供するためにDjangoを使ってみました。 デプロイに当たって、巷に溢れてる古いバージョンの情報に流されて答えに行き着くまで大変苦労したので 現時点で動いた例を書いておきます。 環境 Django 1.7.4 Ubuntu …

chef soloでrbenv+bundler入れてjenkinsでserverspecを走らせる

前回の続き。ようやくserverspecが動かせると思ったんだけど、bundler入ってなかったので入れる。 Berksfile cookbook 'ruby_build' cookbook 'rbenv', github: 'fnichol/chef-rbenv' $ berks install ドキュメントを見ながら設定 { "run_list":[ "java", "j…

chef soloで入れたjenkinsでserverspecを走らせる準備

前回の続き。 真っ新な状態から実行したら、jenkins-cli.jarを持ってくるところで Connecting to localhost|127.0.0.1|:8080... failed: Connection refused. で失敗するのと、 install-plugin gitするところでgit pluginが入らず、実際の端末で実行してみた…

chef soloでVagrantを入れる

前回の続き。テスト環境のためにVagrantを入れる。 knife cookbook create vagrant -o site-cookbooks/ VirtualBox 今までこんな感じでwget実行してファイル持ってきてたのが違和感があったんだけど execute "install-jenkins-repo" do command <<-_EOH_ wge…

chef soloでjenkinsにgitプラグインを入れる

前回の続き。Jenkinsが動くようになった。gitと、Jenkinsのgitプラグインを入れる。 Git $ knife cookbook create git -o site-cookbooks/ site-cookbooks/git/recipes/default.rb yum_package "git" do action :install end execute "yum-update" do user "…

chef soloでiptablesを設定する

前回の続き。Jenkinsのために8080番ポートを空ける。(前回切ったiptablesは元に戻した) 今回はサードパーティのcookbookを使うことにした。 http://community.opscode.com/cookbooks/simple_iptables Berksfile source 'https://api.berkshelf.com' cookbook…

chef soloでJenkinsを入れる

最近、サーバーを一から構築する必要があって、chefを使ってみることにした。 CIしたいのでまずはJenkinsを入れる。 Chef: 11.12.4 Vagrant 1.5.4 Vagrant この辺のコマンド $ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/Ce…

プルリクしてみた

ゲームライブラリcocos2d-xのsetup.pyがbash用だったので、 fishに対応させたものをプルリクしてみた。 見知らぬ人のリポジトリにプルリクするのは初めてだったので、 「こんなゴミみたいなコード上げてくんな」とか言われたらどうしよう かと思ってたらそん…

Turnip使ってみた

#language: ja 機能: FizzBuzzやる シナリオ: 3の倍数がきた もし 入力が3の倍数 ならば 出力はFizzから始まる シナリオ: 5の倍数がきた もし 入力が5の倍数 ならば 出力はBuzzで終わる シナリオ: それ以外の数がきた もし 入力が3の倍数でも5の倍数でもない…

Playframeworkはだめだと思う

二週間ぐらい使ったので書きなぐってみた ここまでのあらすじ Scala? JVMで動くんだ。 少し覚えたし、何か作ってみたい やっぱりWeb。Playってのがいいらしい Playframeworkとは JavaとScalaのWebフレームワーク。1.x系と2.x系がある。 1コマンドでEclipseと…

国会図書館やばい

はじめて国会図書館に行ってきたけどやばい。 やばいのでしばらく書いてなかったブログを更新してみた。それぐらいやばい。 利用資格は原則として満18歳以上であること。利用資格がなければ入ることもできないので、子供と一緒に行ってはいけない。 場所は…

(Java) データベースを扱うプログラムのテストにDBUnitを使ってみた

以下のページを参考にした。 http://www.techscore.com/tech/Java/Others/DBUnit/index/ 今回作ったのは、入力をチェックして、条件を満たすようならINSERTするプログラムのテストである。 基本的な流れは、 テーブルのバックアップ→ テストデータを入れるテ…

(Android) LocationListenerから取得した値でGeoPoint.equalsが成立しない?

以下のページを参考にして現在位置をandroid.location.LocationListener.onLocationChangedから取得 http://d.hatena.ne.jp/STAR_ZERO/20100725/1280060747 @Override public void onLocationChanged(Location location) { // 現在地を取得 GeoPoint gp = ne…

(Java) DOMでXMLを編集

try{ DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbfactory.newDocumentBuilder(); Document doc = builder.parse(new BufferedInputStream(new FileInputStream("***.xml"))); Element element …

(Android) AlertDialogの中にレイアウトを設定

inflater = LayoutInflater.from(クラス名.this);v = inflater.inflate(R.layout.レイアウト名,null); alertDialogBuilder.setView(view); この中では、findViewById(R.id.**)の代わりに v.findViewById(R.id.**)を使う。

ようこそRuby on Rails 

Rubyで書かれたWebアプリケーションフレームワークRuby on Railsをインストールした記録。 Rubyのインストール yum install ruby ruby-devel rdoc irb RubyGemsのインストール mkdir rubygems_srccd rubygems_src/wget http://rubyforge.org/frs/download.ph…

TopCoder SRM545

TopCoder初挑戦。早めに参加登録をしてしばらく待機。 まずCodingPhaseがあって、この時間でプログラムを書く。 翻訳使えばどうにかなると思ったけど、問題の内容を理解するのに時間がかかった。250点の問題だけ提出して154.08点だった。 次にChallangePhase…

こんにちはProlog

Prologいれてみた。 PrologについてはWikipedia参照 http://ja.wikipedia.org/wiki/Prolog いくつか処理系があるみたいで、今回はSWI-Prologというのを選択。 とりあえずインストールは簡単。以下のページからインストーラーをとってきて実行すればいいだけ…

TopCoder始めてみた

前からやろうかなと思ってたTopCoderを始めてみた。 TopCoderとは世界規模のプログラミングコンテスト。 SRM(Single Round Match)が1~2週間ぐらいごとにあって、 その結果をもとにレーティングされ、名前に色がつく。 以下のページなどを参考に登録。 htt…

開設

投稿テストをかねて開設を宣言してみる。