本を購入

欲しくなったのでまとめ買い、JavaとAndroidが多めなのと、Webサービス関連がほとんどだな。

ProductName Emacs Lispテクニックバイブル
るびきち
技術評論社 / 3129円 ( 2011-11-26 )


ProductName Android Hacks ―プロが教えるテクニック & ツール
株式会社ブリリアントサービス
オライリージャパン / 3990円 ( 2010-09-04 )


ProductName Androidアプリケーション開発ガイド ―HTML+CSS+JavaScriptによる開発手法
Jonathan Stark
オライリージャパン / 1995円 ( 2011-02-24 )


ProductName パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)
アリエル・ネットワーク株式会社
技術評論社 / 3780円 ( 2009-09-24 )


ProductName ウェブ配色 コーディネートカタログ
坂本 邦夫
技術評論社 / 2604円 ( 2011-02-23 )


ProductName Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!
Jeff Barr
インプレスジャパン / 3570円 ( 2011-02-18 )


あと、フォトリーディング系のほうも買ってみたり。

ProductName あなたもいままでの10倍速く本が読める
ポール・R・シーリィ
フォレスト出版 / ?円 ( 2001-09-19 )


「ふつうのコンパイラをつくろう」を読んだ

作りながら学ぶと言うよりは、作ったものをどういう意図で実装したのかを説明しながら、基本的なことを広く浅く押さえられるようになっている。

第4部のリンクとロードのあたりが面白かった。

Cとアセンブリ言語で学ぶ計算機プログラミングの基礎概念を読みなおしてみようかなぁと。

JavaCCでパーサを作ってみる

ふつうのコンパイラをつくろうを読み始めた。

JavaCCを使ったAdderの写経。

The Java Parser Generator

options {
    STATIC = false;
}

PARSER_BEGIN(Adder)
import java.io.*;

class Adder {
    static public void main(String[] args) {
        for (String arg: args) {
            try {
            System.out.println(evaluate(arg));
            }
            catch (ParseException ex) {
                System.err.println(ex.getMessage());
            }
        }
    }
    static public long evaluate(String src) throws ParseException {
         Reader reader = new StringReader(src);
         return new Adder(reader).expr();
    }
}
PARSER_END(Adder)

SKIP: { <[" ","\t","\r","\n"]> }

TOKEN: {
    <INTEGER: (["0"-"9"])+>
}

long expr():
{
    Token x, y;
}
{
    x=<INTEGER> "+" y=<INTEGER> <EOF>
        {
            return Long.parseLong(x.image) + Long.parseLong(y.image);
        }
}

イマイチよくわからないのは慣れてないせいか?パーサだったらRWHのParsecが楽しかった。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan
オライリージャパン / 3990円 ( 2009-10-26 )


Scalaも調べたらスライド見つけた。あとで試してみようっと。

第4回 静岡ITPro勉強会 インフラ部に参加した

インフラ系じゃないけど、色々勉強になるので、イイですよね。

Jenkinsの話は面白かった、GitHubのコードをテストしてくれるのは素敵だ。

Pythonだとbuildbotがあるけど、どっち使ったらいいんだろうかね。

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


ちなみに私はSphinxの紹介をしてきました。Sphinx便利ですよね。

それから静岡にもPythonのユーザーグループ欲しいよねっていうことになって、[三島|富士|静岡].pyでも作るかねって話になってます。A君メソッド的には飲み会(#0)から始めるんだろうけど、丁度明日つくる会があるので、興味があったら遊びに来るといいと思います。

SRM518 DIV2 500

辞書順で一番大きい部分文字列を探す。

java慣れしないとなぁ。

import java.util.*;
public class LargestSubsequence {
    public String getLargest(String s) {
        int pos  = 0;
        char best;
        String ret = "";
        while (pos < s.length()) {
        best = s.charAt(pos);
        if(pos == s.length()-1) {
            ret += s.charAt(pos);
            break;
        }
        for(int i = pos+1; i < s.length();i++){
            if(s.charAt(i) > best) {
            best = s.charAt(i);
            pos  = i;
            }
        }
        ret += best;
        pos++;
        }
        return ret;     
    }
}

Androidの本積みまくってる

最近買った順にならべると

ProductName ジオモバイルプログラミング—iPhone&Androidで位置情報アプリを作ろう—
郷田まり子
ワークスコーポレーション / 3675円 ( 2011-01-27 )


ProductName プロフェッショナルAndroid ゲームプログラミング
ウラジーミル・シルバ
日経BP社 / 3150円 ( 2010-11-25 )


ProductName Google Androidプログラミング入門
江川 崇
アスキー・メディアワークス / 3990円 ( 2009-07-01 )


一番下しか読んでいない。GAEの入力デバイスとしてAndroidを使いたいので夏ぐらいには覚えたいとこではある。