日光のペンションで2泊3日の開発合宿してきました

日光のペンション「はじめのいっぽ」で開発合宿をしてきたのでメモというか感想というか、です。 成果物 FINAL FANTASY XIV 探検手帳手帳(ネタバレ防止機能付き) FF14の探検手帳というコンテンツを攻略するのに便利そうなやつ http://lettas.github.io/xiv-t…

Railsアプリケーションを公開するならAssets on Cloudパターンを使おう

Assets on Cloudパターンとは 「Assets on Cloudパターン」*1はRailsデザインパターン*2の一つ。Railsアプリケーションの静的なコンテンツ(Assets)をクラウドに配置するパターンである。ファイルサイズの大きい画像などをクラウドに配置することでウェブサー…

はぐれメタルBOTをRuby on Railsに移植しました

はぐれメタルのBOTとそのサイトをRuby on Railsに移植しました。2〜3年前に最初のはぐれメタルができてからほとんど手を加えずに動かしてきたのですが、TwitterのAPIがそろそろ使えなくなりそうなのと、当時の自分のコードなんてメンテナンスする気になれな…

なんで誰もrails destroyを教えてくれなかったんだ #rails

あけましておめでとうございます。年末年始の休みを利用してRailsで遊んでおります。 そんななか地味に便利なRailsコマンドを見つけたのでメモ。 $ rails destroy rails generateって便利ですよね。モデルやらコントローラやら何やらかんやらひな形を作って…

Rails3のルーティングについて自分なりにまとめてみる #rails

最近Rails3で遊んでて、ようやくルーティングが分かってきたのでまとめます。僕の知ってる範囲しかまとめないので、すべての機能を網羅するわけではありませんが、これだけ知ってれば不自由しない気がするのでそれで良いです。ウフフ、オッケー。 基本的なこ…

ApacheのHttpClient 4でPOSTメソッドでも自動的にリダイレクトする方法メモ

HttpClient 4ってPOSTリクエストの時に相手のサーバが302を返してきても自動的にリダイレクトしてくれないんです。 自分でリダイレクトするしかないかなーって思ってたところにいい方法を見つけたのでメモします。 DefaultHttpClient client = new DefaultHt…

PHPのstrtotime関数で +1 month するときの注意

PHP

PHPのstrtotime関数で来月、再来月のmonthを取得してたらハマったのでメモ。実際ハマったのは+2 monthの時だけど、月によっては+1 monthでハマれると思う。今日(2012/07/31)の時点で以下のコードを実行すると '2012-10' と表示されます。本当は '2012-09' …

JSON-lib 2.4のバグを見つけた気がする

JavaでJSONを扱うときにJSON-libを使ってるんですが、JSON文字列からJSONObjectにパースするところでバグっぽいのに遭遇しました。 以下のJSON文字列をパースしようとするとClassCastExceptionが出ます。 {"hoge":{"{}":"fuga"}} 確認したのは以下のコード。…

さくらのVPSにRubyの環境を構築したときのメモ

さくらのVPSの新プランに申し込んだので早速環境構築をしました。RedmineとGITLABを動かす予定なので、RVMを使ってRuby1.8.7とRuby1.9.2をインストールしたときのメモです。 環境 プラン:さくらのVPS 1G OS:CentOS 6 x86_64 ユーザ作成とログイン周りの整…

第2回 渋谷Edge Rails勉強会 に行ってきました #shibuyarails

最近Rails3の勉強を始めてて、ちょうどいいタイミングで勉強会があったので参加してきました。【満員御礼/増員230名】 第2回 渋谷Edge Rails勉強会 @masuidrive氏によるRails3講義 × 株式会社ドリコム事例発表講師は風呂グラマーとして有名な @masuidrive …

JAWS SUMMIT 2012 DAY2 に行ってきました

JAWS SUMMIT 2012 2日目のクラウドデザインパターンに関する講演を聞いてきました。題目は「ベストプラクティス:RIA とスマホとクラウド」メモした限りの内容を以下にまとめます。 ・AWSにはサービスを止めない運用のために必要な機能が揃っている ・EC2 ・…

RubyでN-gramを計算するメソッド

RubyでN-gramを計算するメソッドを作ったよーって言うメモです。 class String def ngram n characters = self.split(//u) return [self] if characters.size <= n return 0.upto(characters.size-n).collect do |i| characters[i, n].join end end end p "…

DynamoDBやSimpleDBのモデリングにはクラス図を使ってみたらどうだろうか #jawsug

先日発表されたAmazon DynamoDBをつかうアプリケーションを設計する時、モデリングをどうしようかと困っていたのですが、クラス図を使うといい感じに表現できそうです。Developer GuideのUse Case 2を例に図を書いて見ました。 ER図を使って表現した場合 図…

ナウなヤングのsleep事情

Javaで一定時間sleepする時Thread.sleep()を使っていたんですけど、もっとナウい方法があったのでメモしておきます。 try { // レガシー極まりない5秒sleep Thread.sleep(5000); } catch(InterruptedException e) {} try { // ナウなヤングの5秒sleep TimeU…

僕はJavaのWeakHashMapを勘違いしていたというメモ

JavaにWeakHashMapというクラスがあって、僕はこれをvalueを弱参照で持てるHashMapだと思ってたんですけど、本当はkeyを弱参照で持つHashMapだったのでメモしておきます。どういうことかって言うと、僕はこんなことを期待していたわけです。 Map<String, String> m = new Wea</string,>…

百人一首でパトリシア木を作った

パトリシア木とは - Wikipedia ちはやふるのアニメが始まって、気が動転してつくった。後悔はしていない。これを頭に叩き込めばあなたも百人一首マスター? あ き かせにたなひくくものたえまより もれいつるつきのかけのさやけさ のたのかりほのいほのとま…

Amazon Elastic MapReduceで日本語のwordcountを試した時のメモ #jawsug

Amazon Elastic MapReduceで日本語のwordcountを試したので、備忘録的な意味も込めてその時のメモをまとめます。pythonで書いてますが、形態素解析のライブラリがあればどの言語でも大丈夫だと思います。 目次 Amazon Elastic MapReduce Ruby Clientインスト…

AOJ 0030 Sum of Integers

AOJ 0030 Sum of Integersです。 import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in); public static void main(String[] args) { while (true) { int[] in = nextInput(); if (in[0] == 0 && in[1] == 0) {…

AOJ 0033 Balls

頻出典型アルゴリズムの演習問題としてよさげなやつ を上から順に解いていこう企画。最初の問題は「AOJ 0033 Balls」 深さ優先探索って書いてあったけど、これでいいのかな。 import java.util.Scanner; public class Main { private static Scanner s = new…

#jawsug Elastic MapReduceを使う前にやっとくと幸せになるかもしれない設定

Elastic MapReduceを使ってると何でもかんでもS3にアップロードさせられるので、いちいちManagementConsoleからアップロードするのは結構面倒です。ローカルにHadoopをインストールして、$HADOOP_HOME/conf/core-site.xmlに以下の設定を追加すると、HDFSのバ…

機械学習の基礎、パーセプトロンをRubyで作って学んだ

機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 を読んでRubyで書いてみました。以下ソースコード module MachineLearning class Perceptron attr_reader :w def initialize w={} @w = w end def predict vector_x vector_x.reduc…

JavaでUTCな時間文字列を取得する方法

Javaで"2011-09-07T00:00:00Z"みたいな文字列を作りたかったのに、タイムゾーンの設定がうまく行かなくてハマってました。DateFormatにsetTimeZoneする必要があったようです。忘れた時のためにメモを残します。 Calendar cal = Calendar.getInstance(TimeZon…

TDDBC Tokyo 1.7 for PHP #tddbc に行ってきました

8月21日に開催された TDDBC Tokyo 1.7 for PHP #tddbc に行ってきました。 テスト駆動開発(TDD)に関するid:t-wadaさんの講演やペアプロによるTDD実習など、充実した内容でした。講演の中で印象に残ったのは次の2つ テストの再分類のための視点 黄金の回転 テ…

Rubyでクールにモジュール宣言

Rubyのgrapeというモジュールのコードを読んでいたときに、かっこいいなあって思ったのでメモしておきます。grape.rbをまるまるコピペです。 require 'rack' require 'rack/builder' module Grape autoload :API, 'grape/api' autoload :Endpoint, 'grape/en…

東京リージョンのAmazonLinuxでまず最初にすること

システムの時間を日本時間に変更します。 $ # デフォルトだと9時間の時差がある $ date 2011年 8月 1日 月曜日 14:53:09 UTC $ # /etc/localtimeを置き換える $ sudo cp /usr/share/zoneinfo/Japan /etc/localtime $ # 時差がなくなる $ date 2011年 8月 1日…

Mechanize 2.0.1でUTF-8以外の文字化け対策

Mechanizeを使ってスクレイプしてるとUTF-8以外のページでうまくいかないことがあるので、その対策です。 http://blog.cles.jp/item/3416 からほとんどまるまるコピペなんですけど、2.0.1だと引数が変わってるみたいだったので対応しました。 Mechanizeをnew…

さくらのVPS開通後にやったこと - ログイン周りの整理

さくらのVPSを使い始めたので、ログイン周りを整理しました。 sshでのrootログイン禁止 公開鍵認証の有効化 パスワード認証の無効化 パスワードなしでsudo 環境 プラン:さくらのVPS 512 OS:CentOS 5 x86_64 前準備 ローカルの環境で鍵を作っておきます。 u…

RubyEE + nginx + UnicornでRedmineを動かしたときのメモ #redmine

Amazon EC2のmicroインスタンスでRedmineを動かすにはメモリが十分じゃない感じがしたので、できるだけスリムに頑張ってみた時のメモです。少人数でRedmineを使いたい時には十分じゃないかなと思ってます。 環境 Amazon EC2 microインスタンス上のAmazon Lin…

SRM 512 DIV 2

7月14日のSRM参加記録 Level One MarbleDecoration 問題:http://www.topcoder.com/stat?c=problem_statement&pm=11287&rd=14537石を交互に並べたいんだって。 import java.util.Arrays; public class MarbleDecoration { public int maxLength(int R, int G…

MavenのローカルリポジトリをGroovyから参照する

MavenのローカルリポジトリをGroovyから参照する方法です。 ~/.groovy/grapeConfig.xmlを作成して、以下のように書いておけばいいようです。 <ivysettings> <settings defaultResolver="downloadGrapes" /> <resolvers> <chain name="downloadGrapes"> <ibiblio name="local" root="file:${user.home}/.m2/repository/" m2compatible="true" /> </ibiblio></chain></resolvers></settings></ivysettings>