Acer Chromebook 11 CB3-111
以前から欲しいなあと思っていた Chromebook を購入した。本当は New Dell Chromebook 11 が欲しかったんだけど、日本だとまだ扱ってなかったので CB3-111 の並行輸入品にした。日本でも US 配列を扱って欲しいものだ。
キーボード配列は特に変なところはなくキーピッチも十分あるので特に不満はない。作り自体は値段相応なところ。
デベロッパーモードを有効にした程度でまだ整っていないが、ある程度開発ができるところまでを目指したい。Chromebrew と Linuxbrew を使っていこうと思っていたがシェルで日本語が入力できない。dnschneid/crouton を使うと ChromeOS 上で Ubuntu / Debian をインストールできるようなのでこちらを使うことになるだろう。日本語にこだわりがなければ Chromebrew / Linuxbrew で十分開発できるところまで持っていける気がする。
このサイズのラップトップは Eee PC 701 以来なので触っていて非常に楽しい。当分は楽しめそうだ。
コクヨのイスを中古で購入した
2年前引っ越したときに7年程度使ったイスを捨ててから、これまでイスなしでやったきたけど、少しだるいとすぐベッドでごろごろしてしまうしいいことなかったので、中古で \22,680 で購入した。
前回のイスは背面がメッシュで数年使ったのちに伸びてしまって、しかも微妙に安いやつだったので交換することもできず失敗したので今回はメッシュではないものを選択した。思っていた以上に派手な色にビビってしまったが、質は良く満足している。これでごろごろする時間も減ることだろう。
ところでイスが戻ってきたので封印していた古めの iMac に Ubuntu でも入れて遊んでみ ようと思ったが、もろもろ使いにくい。Unity が使いにくいのか OSX に慣れきってしまったのか。しばらくは使ってみる予定だがすぐに挫けそうだ。
NodeJS と generator
Stream をやっとまともに触り始めたついでに generator も触ってみた。node は v0.11.13 です。
*a2z
は a から z までを順に yield
に指定しているので、g.next()
を呼び出すたびに a からインクリメントされたアルファベットが返される。
function* a2z() { var c = 97; while (c <= 'z'.charCodeAt(0)) { yield String.fromCharCode(c++); } return; } var g = a2z(); process.stdout.write(g.next().value); process.stdout.write(g.next().value); process.stdout.write(g.next().value); // node --harmony a2z.js // abc
generator と同じく ES6 の for...of
に generator を渡すと最後まで繰り返してくれる。
function* a2z() { var c = 97; while (c <= 'z'.charCodeAt(0)) { yield String.fromCharCode(c++); } return; } for (var a of a2z()) { process.stdout.write(g.next().value); } // node --harmony a2z.js // abcdefghijklmnopqrstuvwxyz
最後に Stream の勉強も兼ねて stream-handbook のサンプルをジェネレータで書いてみた。100 ms ごとに a から z までが出力される。
function* a2z() { var c = 97; while (c <= 'z'.charCodeAt(0)) { yield String.fromCharCode(c++); } return; } var Readable = require('stream').Readable; var rs = Readable(); var g = a2z(); rs._read = function () { var that = this; setTimeout(function () { that.push(g.next().value); }, 100); }; rs.pipe(process.stdout); // node --harmony a2z.js // abcdefghijklmnopqrstuvwxyz
ちなみに generator の定義方法は function* generator
と function *generator
(アスタリクスの位置が違う)を見かけるが MDN では function*
と記載されているのでここではそちらで統一している。
boot2docker の VM の設定を変更する
boot2docker(v1.0.0) の VM は再起動すると手動で設定した内容はクリアされてしまう。スクリプトを以下の場所に置いておくことでブートの最後に実行してくれる。
/var/lib/boot2docker/bootlocal.sh
今回はコンテナに割り当てられる IP を変更したかったので、docker0
を自前で事前に作成しておくようなスクリプトを置いておくことで解決できた。
sudo sh -c ' cat <<EOL > /var/lib/boot2docker/bootlocal.sh ip link add docker0 type bridge ip addr add 192.168.17.1/24 dev docker0 ip link set docker0 up EOL chmod +x /var/lib/boot2docker/bootlocal.sh '
docker
デーモン起動時に引数を設定したい場合は、/var/lib/boot2docker/profile
に EXTRA_ARGS="--dns 192.168.1.2"
のように記述しておくと、init.d
から起動する際に読み込んでくれる。このことは /etc/init.d/docker
を読んで知ったのだけど、FAQ に書いてあったので先にドキュメントを読むようにしたい。
ファイルからパッケージを特定して、ソースコードをダウンロードする
dpkg, apt
$ which ifconfig /sbin/ifconfig $ dpkg -S /sbin/ifconfig net-tools: /sbin/ifconfig $ apache-cache show net-tools bash: apache-cache: command not found $ apt-cache show net-tools Package: net-tools Priority: important Section: net Installed-Size: 708 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: net-tools Team <pkg-net-tools-maintainers@lists.alioth.debian.org> Architecture: amd64 Version: 1.60-25ubuntu2 Replaces: ja-trans (<= 0.8-2), netbase (<< 4.00) Depends: libc6 (>= 2.14) Conflicts: ja-trans (<= 0.8-2) Filename: pool/main/n/net-tools/net-tools_1.60-25ubuntu2_amd64.deb Size: 174516 MD5sum: 80d953d0950d32c66e7284ca68ed89ee SHA1: 62ef3b9eb5114a87b1aa29062e57c544ef6df1fb SHA256: ef921d19b77685cec007c146616056ee679d80ee4ef834b9e2da8c01fa139eef Description: The NET-3 networking toolkit Description-md5: 003fb6a11fdb767fff574478588a3ca8 Multi-Arch: foreign Homepage: http://net-tools.berlios.de/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y Task: minimal $ dpkg -L net-tools | head /. /bin /bin/netstat /usr /usr/share /usr/share/doc /usr/share/doc/net-tools /usr/share/doc/net-tools/README.ipv6 /usr/share/doc/net-tools/README /usr/share/doc/net-tools/TODO $ sudo apt-get -qqy install dpkg-dev $ apt-get source net-tools Reading package lists... Done Building dependency tree Reading state information... Done Skipping already downloaded file 'net-tools_1.60-25ubuntu2.dsc' Skipping already downloaded file 'net-tools_1.60.orig.tar.gz' Skipping already downloaded file 'net-tools_1.60-25ubuntu2.diff.gz' Need to get 0 B of source archives. gpgv: Signature made Sun Dec 8 23:53:48 2013 JST using DSA key ID 0F932C9C gpgv: Can't check signature: public key not found dpkg-source: warning: failed to verify signature on ./net-tools_1.60-25ubuntu2.dsc dpkg-source: info: extracting net-tools in net-tools-1.60 dpkg-source: info: unpacking net-tools_1.60.orig.tar.gz dpkg-source: info: applying net-tools_1.60-25ubuntu2.diff.gz
rpm, yum
$ which ifconfig /sbin/ifconfig $ rpm -qf /sbin/ifconfig net-tools-1.60-110.el6_2.x86_64 $ rpm -qi net-tools Name : net-tools Relocations: (not relocatable) Version : 1.60 Vendor: CentOS Release : 110.el6_2 Build Date: Thu May 10 09:17:33 2012 Install Date: Mon Jun 9 16:13:12 2014 Build Host: c6b5.bsys.dev.centos.org Group : System Environment/Base Source RPM: net-tools-1.60-110.el6_2.src.rpm Size : 778085 License: GPL+ Signature : RSA/SHA1, Thu May 10 11:02:47 2012, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://net-tools.berlios.de/ Summary : Basic networking tools Description : The net-tools package contains basic networking tools, including ifconfig, netstat, route, and others. Most of them are obsolete. For replacement check iproute package. $ rpm -ql net-tools | head /bin/dnsdomainname /bin/domainname /bin/hostname /bin/netstat /bin/nisdomainname /bin/ypdomainname /etc/ethers /sbin/arp /sbin/ether-wake /sbin/ifconfig $ yum -y install yum-utils 2>&1 >/dev/null $ yumdownloader net-tools --source Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.riken.jp * extras: ftp.riken.jp * updates: ftp.riken.jp No source RPM found for net-tools-1.60-110.el6_2.x86_64 Nothing to download
CocoaPods のつかいかた
CocoaPods.org - The Dependency Manager for Objective C.
% gem install cocoapods --no-rdoc --no-ri # % rbenv rehash % pod --version 0.32.1
プロジェクトのディレクトリのルートに利用するライブラリを記述した Podfile
を配置する。(ex. ~/Documents/Todo
# ~/Documents/Todo/Podfile platform :ios, '7.0' pod 'BlocksKit', '~> 2.2.2'
ライブラリのインストールを実行する。
% pod install Analyzing dependencies Downloading dependencies Using BlocksKit (2.2.2) Generating Pods project Integrating client project
今後は生成された *.xcworkspace
から開発を行う。
% open Todo.xcworkspace
生成された Pods
ディレクトリは VCS に含めないように git の場合は、.gitignore
に記述しておく。
# .gitignore Pods/*
Ubuntu の backports リポジトリを使う
raring を使ってるけど、saucy のパッケージを利用したいときは backports リポジトリを登録することで利用できた。
% cat 'deb http://archive.ubuntu.com/ubuntu release-backports main universe' >> /etc/apt/sources.list
amd64 build : 1.2-8~ubuntu13.04.1 : “jq” package : Ubuntu をみても使い方がすぐわからなかったのわかるように書いといてほしいなあ。(常識なのかも