Google の翻訳 API が有料化されたことで、無料で使える翻訳 API が実質 Microsoft Translator API 一択になってしまいました。

実際に使ってみようと思ったときに、いろいろなサイトをぐるぐる回ったり、API の呼び出し方が変わっていたりしてとまどったので、手順のおさらいをしておきます。

Ruby の HTML パーサに Nokogiri があります。基本的な使い方は

とかを参考にしてもらえばいいんですが、パースした要素の特定の属性を置き換えたいとか追加で属性を追加したい時のメモです。

今まではブログを ロリポップ + Movable Type でやっていましたが、ブログデザインを変更したくなり、ついでにブログ環境も変更しました。

Movable Type から WordPress に乗り換えても良かったんですが、エンジニアっぽいブログ環境ってなんだろうと考えた末、GitHub PagesOctopress を使ってブログ環境を作ることにしました。

OctopressJekyll を使ってブログ環境を作るためのフレームワークで、Jekyll はブログのような静的サイトを作るための Ruby のファイルジェネレータになります。

GitHub Pages と組み合わせると無料でブログを始めることができます。

移行でおこなったことの手順です。

長いもので、hamasyou.com を初めてから9年経ちました。何年かに一回ブログのデザインを更新したくなるのって普通ですよね。

今までずっと MovableType を使っていたんですが、markdown で書きたくなったのと、MovableType のデザインのいじり方を忘れてしまったため、ブログ環境を一新する決意をしました。

今回作ったブログ環境は次のとおり。

公開用のサーバ
GitHub Pages
ブログ編集用のCMS
ローカルマシン上に Octopress で構築

スマホやタブレットが増えてきて、Railsアプリでも手書きで書いた絵や図を取り込みたいというような案件があるのではないでしょうか?手書き画像が保存する方法はいろいろありますが、そのひとつをちょっとメモのため残しておきます。特別なgemとかは必要ありません。使うのは HTML5 の canvas だけです。

タイトル
バッドデータハンドブック ―データにまつわる問題への19の処方箋
著者
Q. Ethan McCallum (著), 磯 蘭水 (監訳) (翻訳), 笹井 崇司 (翻訳)
出版社
オライリージャパン
Amazonで購入する

値の欠落、形式から外れたレコード、エンコーディング形式が不明な文字列。「バッドデータ」と聞いた時に思い浮べる典型例です。しかし、これら以外にも「そもそもデータにアクセスできない」「消えてしまった」「昨日と違っている」「データはあるが形式が処理に適していない」など、データを収集・分析するエンジニアは、これらの「バッドデータ」と正面から向きあわなければならないことが多々あります。本書では、これらの問題のあるデータのパターンを紹介し、その対処法を解説しています。
19人のデータ分析の専門家が、自らの経験を通して得た、さまざまな教訓、実践的な方法論等を詳述した本書は、ビッグデータ時代のエンジニアにとって必携の一冊となるでしょう。

O’REILLY

本書はプログラミングやデータ解析の時に扱うデータの内容やフォーマットについて書かれています。プログラミングの時に扱いやすいデータフォーマット、こういう点に気をつけてデータを扱え、こういうフォーマットが使いやすいなどについて書かれています。

コンピュータで扱うデータは大きく分けてコンピュータのためにフォーマットするデータ人間のためにフォーマットするデータがあります。これらをごっちゃにしてしまうと扱いづらいデータ(バッドデータ)になってしまいます。本書はバッドデータをよりよく扱う方法、バッドデータにしない方法について、いろいろな点で考えられるようにアイデアや体験談を与えてくれます。

最近 API をよく作ってるんだけど通信データのフォーマットに困ってるというような Web プログラマにオススメです!

コード。ラテン語で codex。codex とはもともとローマ法大全のことを指し示す言葉だそうです。コードは読みとくべきであり、書き下されるべきものである。そしてそれができたとき、喜びが生まれる。弾さんのまえがきにある言葉ですが、コーディング好きなプログラマのみなさんはこの言葉がよくわかると思います。

本書は、プログラミングに関わるいろいろな事柄が短文のエッセイの形でまとめられています。もともと Software Design の連載だったものをまとめたもののようですが、まとめて読むことに価値があると思います。

弾さんのコンピュータの捉え方、プログラミングの姿勢、豊富な知識や知見がまとめられています。スイスイと読んでいける日本版の『Joel on Software』です。

タイトル
ディジタル作法 -カーニハン先生の「情報」教室-
著者
Brian W. Kernighan (著), 久野 靖 (翻訳)
出版社
オーム社
Amazonで購入する

本書は、現在のコンピュータシステムや通信システムがどのように動作しているのかを、ハードウェアとソフトウェアの両方の視点から解説している一般の人向けの本です。コンピュータのことをもっとよく知りたい、コンピュータがどのように動作しているかをもっと知りたい、そういった人にオススメの一冊です。

“D is for Digital” (ディジタル作法) は、コンピュータシステムや通信システムがどのように動作しているかを、簡潔に、それでいて細かいところまで丁寧に説明した本であり、自分たちが暮らしている世界のことをより良く分かっておきたいと考える一般読者(専門家ではない人)を対象にしています。本書では、今日の世界におけるコンピュータシステムや通信システムがどのように動作しているかということを、ハードウェアおよびソフトウェアからインターネット、Webに到るまで、ひととおり説明しています。

『本書』日本語版の刊行に寄せてより

モジュールを作成して、デモアプリ等で利用する際に実機転送時に

[ERROR] : ** BUILD FAILED **
[ERROR] : The following build commands failed:
[ERROR] :   Ld build/Debug-iphoneos/gpuimagedemo.app/gpuimagedemo normal armv7
[ERROR] : (1 failure)

のようなエラーが発生する場合がある。 これは、Titanium がビルド時に最適化で利用していない内部モジュールとのリンクを切ってしまうために起こる。

build ディレクトリの下の Xcode のプロジェクトを開くと

Undefined symbols for architecture arvm7:
    ...
":_OBJC_CLASS_$_TiUIImageView":, referenced from:
    ...

のようにビルドエラーが発生している。

これを解決するには、モジュールで利用している内部クラスを、JavaScript 側のソースコードに現れるようにする。

例えば、今回の場合だと、TiUIImageView の参照先が見つからないとなっているので JavaScript のコードの方に

1
2
3
4
5
if (false) {
    Ti.UI.createImageView({
        image: 'demo.jpg'
    });
}

のようなコードを加えれば良い。バッドノウハウですね。。