Still life

web系エンジニャー @yui_tang の備忘録等々

new リュックサック(Cote&Ciel)

半年間迷い続けたリュックサックを、
遂に買いました°˖✧◝(⁰▿⁰)◜✧˖°

買ったのはこれ。
Côte&Ciel Isar Rucksack Medium for Evernote

MacBook Proを常に持ち歩きたかったんだけど、普段会社に持っていくようなトートっぽいバッグ👜だと、肩への負担が大きくどうにかしたかった。

他に迷ったメーカーとかは無く、
最初からCote&Ciel一択だった、というか
この商品を見て「リュックサックが欲しい!」と思ったんだけど、
通常モデルにするか、Evernoteがコラボしているモデルにするかで半年間迷ったってわけ。
もうちょっと出せばそれなりのブランドバッグが買えてしまうお値段ですもの、そりゃ迷うよね...。

以下が写真

f:id:yuitang:20140908030349j:plain:w300
f:id:yuitang:20140908030421j:plain:w300
f:id:yuitang:20140908030448j:plain:w300
f:id:yuitang:20140908030542j:plain:w300
Macbook Pro 13inch(Retina)が余裕で入ってます。
表側の収納と背中側のPC用収納は、中では繋がっていないので注意。

使って一週間経ったので感想
  • 意外と大きい
    • 169cmあるわたしでも結構大きいなと感じる。背の低めの方は、一度現物をみて確認すると良いかも(実店舗は無いみたいだけど、以前新宿伊勢丹で現物をみた。)
  • リュック自体がそれなりに重い
    • 材質がEco Yarn(エコヤーン)リサイクル素材を使って繊維にしたもの。手触りも硬さも良い感じだけど、重厚感がある。既に一度雨に降られたんだけど、耐水性は強そうなので定期的に防水スプレーでケアすると完璧っぽい(ง •̀_•́)ง
  • カッコイイ
    • うん。
  • 収納力は高いけど、旅行とかに持っていくような場合は不向きかも...
    • 暖かい時期の一泊旅行とかなら良いけど、背中側の収納と表側の収納がセパレートになっている分、大きい荷物を入れづらい
  • やはりリュック。服装を選ぶ。アウトドア用リュックほどでは無いけど。
    • それでもジャケット+タイトスカートにこのリュックみたいに合わせると、ギャップ感出てそこらへんを楽しめるなら良い。
  • MacBook ProとMag SafeとiPad miniを入れても、背中に当たる面に違和感無し
    • 背中のパッドが厚めなので、結構何を入れても背中への影響はなさそう。
  • スマートな印象があったけど、背負ってみると結構ガッシリとした印象
    • ここは好みの問題だけど、個人的には良かった
  • カッコイイ
    • うん。
  • 用途的に中身が結構重くなるので、荷物が多い時に後ろに引っ張られる感じがある。登山用リュックみたいな、腰のあたりでカチャっと留めるベルトがあると良かった
    • 結構モノを詰め込むと、後ろに引っ張られる分猫背になりやすいかも。後付で腰のベルト付けられないかな...

今後自転車通勤も検討しているので、これをキッカケにシティアウトドア派になりたいなぁ...(๑´╹‸╹`๑)

まだ外でこのリュックを背負ってる人見たこと無いんだけど、
噂によると勉強会とかでは結構カブるとか...
オススメ商品だけど、あんまりオススメしたくないジレンマ。

YAPC::Asia感想【2日目】 #yapcasia

そもそも行ってない

行けなかった。


YAPC::Asiaに行ってきた【初日】 - Still life

こんな感じで前日の夜、日付変わるくらいまでは
帰りに食べた武蔵家でくらったダメージがお腹に残っているなぁ程度で、
2日目のセッションを楽しみにしていたんだよ。





既にこの辺りで4時間位ベッドでうなされてた。
胃薬は飲んだものの、結局ほとんど寝れず。
痛みはおさまりつつあったものの、朝一で病院へ。
既に2日目最初のセッションが始まってるくらいの時間ですね。


今回のベストトーク賞を受賞された、そもそも今回わたしが一番参加したいセッションであった
半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応) - YAPC::Asia Tokyo 2014
がはじまるころ、わたしは胃カメラを飲み、血だらけのmy stomachを見せ付けられていた。
12時間前には、まさかこんなことになるとは想像だにもしていなかった。


感想

来年は、ラーメンは初日には食べない

YAPC::Asiaに行ってきた【初日】

f:id:yuitang:20140829214917j:plain:w200

初参加。

去年のyapc開催中のTLで興味を惹かれ、
一年前から参加を決意。

個人スポンサー枠で参加したので 、
パーカーもらえた、わーいわーい。
f:id:yuitang:20140829220531j:plain:w200

参加したかったけども泣く泣く参加できなかったセッション資料

インフラエンジニア(狭義)は死んだ - YAPC::Asia Tokyo 2014

Go For Perl Mongers


初日での感想

  • 駅近、ありがたいです
  • ネットワーク環境が快適でとてもよい
  • 金曜日でこの席の埋まり具合、土曜の明日が心配である
  • 直接yapcと関係ないけど、peatixはリマインドメールにQRを貼っつけてほしいです(ツラい)
  • 他カンファレンスと比較しても女性陣少ない(ツラい)
  • メイン会場を海外ゲストのセッションにあて、人気PerlMongerが小さい多目的教室で大混雑の中発表するの、運営側のジレンマを察した(ツラい)

perlなんぞ、ホントたまにワンライナーくらいを書かせていただく程度のわたしでも、十分楽しめるセッションばかり。
それだけ現在perl以外の言語で仕事をしているであろう発表者の方々も多いのかなと思うんですけど、
別言語やperlと関係ないサービス、開発手法について等々をperlの祭典で発表して盛り上がるという。
"perlコミュニティ"と、"そこで育った方々"の魅力を痛感した。

ということで

"ブログを書くまでがYAPC::Asia"
明日も面白そうなセッションが多数あるので楽しみ。
明日は遅れないで朝一から行く所存。

武蔵家

麺かためを頼んだのに麺が柔らかかった!!
しかし写真を撮り忘れたので、また行かなくてはならない。

chef-dkの便利さ

久しぶりに仕事の案件用で新しい環境を構築する為にchef環境を構築中、
各種gemをbundle installしているところで
"dep-selector-libgecode"のインストールにハマる。

Windows(RubyInstaller) + berkshelf 3.0 をインストール(dep-selector-libgecode問題) - Qiita

恐らく原因はこれと同じ。
こんなことに時間を使うのも勿体無いし、最新版は使いたいしということで回避策を検討していたところで
以下を見つけた。今更感ある。

Download Chef Development Kit | Chef

実行用のRubyをはじめ、必要なgem等々を全てパッケージ化している為
環境を汚さず簡単に始められる。
Redhat系ならインストールは以下のようにrpmでインストール。

sudo rpm -ivh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.2.0-2.el6.x86_64.rpm

Macならパッケージを落として来てGUIインストーラでOK。

ChefDK contains:

An early version of a brand new command-line tool, chef, that aims to streamline Chef workflow, starting with new generators.
The well-known cookbook dependency manager Berkshelf 3.0.
The Test Kitchen integration testing framework.
ChefSpec, which makes unit testing cookbooks a breeze.
Foodcritic, a linting tool for doing static code analysis on cookbooks.
All of the Chef tools you're already familiar with: Chef Client, Knife, Ohai and Chef Zero.

一通りパッケージは入っているようだけど、よく見たらknife-soloがない!!

はい、ということでインストールするのですが、
インストール方法は以下。

chef gem install knife-solo

簡単。
chef-dkはインストールするとchefコマンドが追加される。
(/opt/chefdk/bin/chefが実体でインストール時に勝手にPATHに追加される)
で、chefコマンドにはbundleとかgitの様な便利なサブコマンドが用意されている。

$ chef -h
Usage:
chef -h/--help
chef -v/--version
chef command [arguments...] [options...]


Available Commands:
exec Runs the command in context of the embedded ruby
gem Runs the `gem` command in context of the embedded ruby
generate Generate a new app, cookbook, or component
shell-init Initialize your shell to use ChefDK as your primary ruby
verify Test the embedded ChefDK applications

この中のchef gemコマンドを使用したのが上記のknife-soloのインストールということ。

追加で入れたgemもchefコマンドで入れればパッケージ内で管理されるので、要らなくなったらrpm -eでパッケージ毎アンインストールすれば環境も綺麗なままです。

注意点としては、既にグローバルにchef等をインストールしてある環境にchef-dkを入れると上手くいかないとのこと。

今後chefを使うならこれがスタンダードで良いのでは?と思います。(小並感)

MacのMagic TrackPadを使っていて、マウスポインタが飛んでしまう対応

Magic TrackPadを使っていて、突然マウスポインタが思い通りに動かなくなった。

各所ググっていても、PRAMクリアだ、トラックパッドを拭けだ、手を洗えだと言われ、
試してみても結果は変わらずダメ。

appleの掲示板にこんな内容があった。
Magic Trackpadのカーソルが飛んでしまう。 | Apple サポートコミュニティ

"2.4GHz帯の無線LANも影響ある"

もしやと思い
System Preferences > Share から internet sharingを解除したら、
元に戻った。。。

以前からinternet sharingはonにしてたんだけどな。。。

とりあえず治ったので、同じ内容で困っている人の為に。

Packerを使ってCentOS7のboxを作りましょう。

はい、やってまいりました。

今回はCentOS7のvagrantのboxを作ってみましょう。

今回の材料はこちらです。

各々インストールを済ませておきましょう。 Packerについてはこちら等々参考にどうぞ。

Packerを使ってVagrantのBoxを作る方法を一つずつ説明する/index - ヽ(´・肉・`)ノログ

手順

1. 設定ファイルを用意する

こちらのリポジトリからpacker用のtemplateファイルを用意したので落としてきましょう。

YuiSakamoto/my_packer_templates · GitHub

参考:以下のリポジトリは、CentOS/Ubuntu/ScientificLinuxの新バージョンが出る毎に、 packer用の設定ファイルを公開してくれています。助かります。

packer-templates/centos-7.0 at develop · shiguredo/packer-templates · GitHub

今回はこちらを参考に(というかそのまま使用)させていただきました。

2. Packerを使ってbox作成

$ cd my_packer_templates/centos-7.0
$ packer build -only=virtualbox-iso template.json
virtualbox-iso output will be in this color.

==> virtualbox-iso: Downloading or copying Guest additions
    virtualbox-iso: Downloading or copying: file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
    virtualbox-iso: Downloading or copying: http://ftp.iij.ad.jp/pub/linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
    virtualbox-iso: Download progress: 0%
    virtualbox-iso: Download progress: 0%
    virtualbox-iso: Download progress: 1%
    virtualbox-iso: Download progress: 1%
    virtualbox-iso: Download progress: 1%
    virtualbox-iso: Download progress: 2%
    virtualbox-iso: Download progress: 2%
    virtualbox-iso: Download progress: 3%
    virtualbox-iso: Download progress: 3%
〜中略〜
    virtualbox-iso: Download progress: 98%
    virtualbox-iso: Download progress: 98%
    virtualbox-iso: Download progress: 98%
    virtualbox-iso: Download progress: 99%
    virtualbox-iso: Download progress: 99%
    virtualbox-iso: Download progress: 100%
    virtualbox-iso: Download progress: 100%
    virtualbox-iso: Download progress: 100%
    virtualbox-iso: Download progress: 100%
==> virtualbox-iso: Starting HTTP server on port 8081
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 3213)
==> virtualbox-iso: Executing custom VBoxManage commands...
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --memory 512
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --cpus 1
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Waiting 10s for boot...
==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Error sending boot command: VBoxManage error: VBoxManage: error: Guest not running
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Deleting output directory...
Build 'virtualbox-iso' errored: Error sending boot command: VBoxManage error: VBoxManage: error: Guest not running

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error sending boot command: VBoxManage error: VBoxManage: error: Guest not running

==> Builds finished but no artifacts were created.

3. エラー発生

上記にもある通りVBoxでゲストOSが走らなかったとのこと。 ↓GUIのエラーも出てます。

f:id:yuitang:20140811175517p:plain

ぐぐってみると以下の様な情報が。

MacのVirtualboxでkernel driver not installed のエラーで仮想サーバーが起動できなくなったときにしたこと - Vermee81の日録

チッ、材料が腐ってやがった

新鮮な具材を取り揃えましょうね。 uninstall toolsを使ってアンインストールを行い、最新版(4.3.13)を再度インストール。

4. 再度packer buildを実行

$ packer build -only=virtualbox-iso template.json
virtualbox-iso output will be in this color.

==> virtualbox-iso: Downloading or copying Guest additions
    virtualbox-iso: Downloading or copying: file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
    virtualbox-iso: Downloading or copying: http://ftp.iij.ad.jp/pub/linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
==> virtualbox-iso: Starting HTTP server on port 8081
==> virtualbox-iso: Creating virtual machine...
==> virtualbox-iso: Creating hard drive...
==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 3213)
==> virtualbox-iso: Executing custom VBoxManage commands...
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --memory 512
    virtualbox-iso: Executing: modifyvm packer-virtualbox-iso --cpus 1
==> virtualbox-iso: Starting the virtual machine...
==> virtualbox-iso: Waiting 10s for boot...
==> virtualbox-iso: Typing the boot command...
==> virtualbox-iso: Waiting for SSH to become available...

ここで結構時間が掛かる。(VirtualBoxのウィンドウで諸々インストールされているのがわかります。)

==> virtualbox-iso: Connected to SSH!
==> virtualbox-iso: Uploading VirtualBox version info (4.3.14)
==> virtualbox-iso: Uploading VirtualBox guest additions ISO...
==> virtualbox-iso: Provisioning with shell script: scripts/base.sh
    virtualbox-iso: Loaded plugins: fastestmirror
    virtualbox-iso: base             | 3.6 kB     00:00
    virtualbox-iso: extras           | 3.3 kB     00:00
    virtualbox-iso: updates          | 3.4 kB     00:00
    virtualbox-iso: Loading mirror speeds from cached hostfile
    virtualbox-iso: * base: ftp.riken.jp
    virtualbox-iso: * extras: ftp.riken.jp
    virtualbox-iso: * updates: ftp.riken.jp
    virtualbox-iso: Package 1:make-3.82-21.el7.x86_64 already installed and latest version
    virtualbox-iso: Package kernel-devel-3.10.0-123.el7.x86_64 already installed and latest version
    virtualbox-iso: Package 4:perl-5.16.3-283.el7.x86_64 already installed and latest version
    virtualbox-iso: Resolving Dependencies
    virtualbox-iso: --> Running transaction check
    virtualbox-iso: ---> Package gcc.x86_64 0:4.8.2-16.el7 will be installed
    virtualbox-iso: --> Processing Dependency: cpp = 4.8.2-16.el7 for package: gcc-4.8.2-16.el7.x86_64
    virtualbox-iso: --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.2-16.el7.x86_64
    virtualbox-iso: --> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.2-16.el7.x86_64
    virtualbox-iso: --> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.2-16.el7.x86_64
    virtualbox-iso: ---> Package gcc-c++.x86_64 0:4.8.2-16.el7 will be installed
    virtualbox-iso: --> Processing Dependency: libstdc++-devel = 4.8.2-16.el7 for package: gcc-c++-4.8.2-16.el7.x86_64
    virtualbox-iso: --> Running transaction check
    virtualbox-iso: ---> Package cpp.x86_64 0:4.8.2-16.el7 will be installed
    virtualbox-iso: ---> Package glibc-devel.x86_64 0:2.17-55.el7 will be installed
    virtualbox-iso: --> Processing Dependency: glibc-headers = 2.17-55.el7 for package: glibc-devel-2.17-55.el7.x86_64
    virtualbox-iso: --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-55.el7.x86_64
    virtualbox-iso: ---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed
    virtualbox-iso: ---> Package libstdc++-devel.x86_64 0:4.8.2-16.el7 will be installed
    virtualbox-iso: ---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed
    virtualbox-iso: --> Running transaction check
    virtualbox-iso: ---> Package glibc-headers.x86_64 0:2.17-55.el7 will be installed
    virtualbox-iso: --> Finished Dependency Resolution
    virtualbox-iso:
    virtualbox-iso: Dependencies Resolved
    virtualbox-iso:
    virtualbox-iso: ========================================
    virtualbox-iso: Package Arch   Version      Repository
    virtualbox-iso: Size
    virtualbox-iso: ========================================
    virtualbox-iso: Installing:
    virtualbox-iso: gcc     x86_64 4.8.2-16.el7 base  16 M
    virtualbox-iso: gcc-c++ x86_64 4.8.2-16.el7 base 7.2 M
    virtualbox-iso: Installing for dependencies:
    virtualbox-iso: cpp     x86_64 4.8.2-16.el7 base 5.9 M
    virtualbox-iso: glibc-devel
    virtualbox-iso: x86_64 2.17-55.el7  base 1.0 M
    virtualbox-iso: glibc-headers
    virtualbox-iso: x86_64 2.17-55.el7  base 650 k
    virtualbox-iso: libmpc  x86_64 1.0.1-3.el7  base  51 k
    virtualbox-iso: libstdc++-devel
    virtualbox-iso: x86_64 4.8.2-16.el7 base 1.5 M
    virtualbox-iso: mpfr    x86_64 3.1.1-4.el7  base 203 k
    virtualbox-iso:
    virtualbox-iso: Transaction Summary
    virtualbox-iso: ========================================
    virtualbox-iso: Install  2 Packages (+6 Dependent packages)
    virtualbox-iso:
    virtualbox-iso: Total download size: 33 M
    virtualbox-iso: Installed size: 80 M
    virtualbox-iso: Downloading packages:
    virtualbox-iso: warning: /var/cache/yum/x86_64/7/base/packages/glibc-devel-2.17-55.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    virtualbox-iso: Public key for glibc-devel-2.17-55.el7.x86_64.rpm is not installed
    virtualbox-iso: (1/8): glibc-devel | 1.0 MB   00:06
    virtualbox-iso: (2/8): gcc-c++-4.8 | 7.2 MB   00:09
    virtualbox-iso: (3/8): libmpc-1.0. |  51 kB   00:00
    virtualbox-iso: (4/8): glibc-heade | 650 kB   00:00
    virtualbox-iso: (5/8): cpp-4.8.2-1 | 5.9 MB   00:09
    virtualbox-iso: (6/8): mpfr-3.1.1- | 203 kB   00:00
    virtualbox-iso: (7/8): libstdc++-d | 1.5 MB   00:00
    virtualbox-iso: (8/8): gcc-4.8.2-1 |  16 MB   00:13
    virtualbox-iso: ----------------------------------------
    virtualbox-iso: Total      2.4 MB/s |  33 MB  00:13
    virtualbox-iso: Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    virtualbox-iso: Importing GPG key 0xF4A80EB5:
    virtualbox-iso: Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) "
    virtualbox-iso: Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
    virtualbox-iso: Package    : centos-release-7-0.1406.el7.centos.2.3.x86_64 (@anaconda)
    virtualbox-iso: From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    virtualbox-iso: Running transaction check
    virtualbox-iso: Running transaction test
    virtualbox-iso: Transaction test succeeded
    virtualbox-iso: Running transaction
    virtualbox-iso:   Installing : mpfr-3.1.1-4.el7.x   1/8
    virtualbox-iso:   Installing : libmpc-1.0.1-3.el7   2/8
    virtualbox-iso:   Installing : cpp-4.8.2-16.el7.x   3/8
    virtualbox-iso:   Installing : glibc-headers-2.17   4/8
    virtualbox-iso:   Installing : glibc-devel-2.17-5   5/8
    virtualbox-iso:   Installing : gcc-4.8.2-16.el7.x   6/8
    virtualbox-iso:   Installing : libstdc++-devel-4.   7/8
    virtualbox-iso:   Installing : gcc-c++-4.8.2-16.e   8/8
    virtualbox-iso: Verifying  : libstdc++-devel-4.   1/8
    virtualbox-iso: Verifying  : mpfr-3.1.1-4.el7.x   2/8
    virtualbox-iso: Verifying  : glibc-headers-2.17   3/8
    virtualbox-iso: Verifying  : glibc-devel-2.17-5   4/8
    virtualbox-iso: Verifying  : libmpc-1.0.1-3.el7   5/8
    virtualbox-iso: Verifying  : gcc-c++-4.8.2-16.e   6/8
    virtualbox-iso: Verifying  : gcc-4.8.2-16.el7.x   7/8
    virtualbox-iso: Verifying  : cpp-4.8.2-16.el7.x   8/8
    virtualbox-iso:
    virtualbox-iso: Installed:
    virtualbox-iso: gcc.x86_64 0:4.8.2-16.el7
    virtualbox-iso: gcc-c++.x86_64 0:4.8.2-16.el7
    virtualbox-iso:
    virtualbox-iso: Dependency Installed:
    virtualbox-iso: cpp.x86_64 0:4.8.2-16.el7
    virtualbox-iso: glibc-devel.x86_64 0:2.17-55.el7
    virtualbox-iso: glibc-headers.x86_64 0:2.17-55.el7
    virtualbox-iso: libmpc.x86_64 0:1.0.1-3.el7
    virtualbox-iso: libstdc++-devel.x86_64 0:4.8.2-16.el7
    virtualbox-iso: mpfr.x86_64 0:3.1.1-4.el7
    virtualbox-iso:
    virtualbox-iso: Complete!
==> virtualbox-iso: Provisioning with shell script: scripts/vagrant.sh
    virtualbox-iso: % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    virtualbox-iso: Dload  Upload   Total   Spent    Left  Speed
    virtualbox-iso: 100   409  100   409    0     0     77      0  0:00:05  0:00:05 --:--:--    83
==> virtualbox-iso: Provisioning with shell script: scripts/virtualbox.sh
    virtualbox-iso: mount: /dev/loop0 is write-protected, mounting read-only
    virtualbox-iso: Verifying archive integrity... All good.
    virtualbox-iso: Uncompressing VirtualBox 4.3.14 Guest Additions for Linux............
    virtualbox-iso: VirtualBox Guest Additions installer
    virtualbox-iso: Copying additional installer modules ...
    virtualbox-iso: Installing additional modules ...
    virtualbox-iso: Removing existing VirtualBox non-DKMS k[  OK  ]dules
    virtualbox-iso: Building the VirtualBox Guest Additions kernel modules
    virtualbox-iso: Building the main Guest Additions modul[  OK  ]
    virtualbox-iso: Building the shared folder support modu[  OK  ]
    virtualbox-iso: Building the OpenGL support module     [  OK  ]
    virtualbox-iso: Doing non-kernel setup of the Guest Add[  OK  ]
    virtualbox-iso: Starting the VirtualBox Guest Additions[  OK  ]
    virtualbox-iso: Installing the Window System drivers
    virtualbox-iso: Could not find the X.Org or XFree86 Window System, skipping.
==> virtualbox-iso: Provisioning with shell script: scripts/cleanup.sh
    virtualbox-iso: Loaded plugins: fastestmirror
    virtualbox-iso: No Match for argument: gtk2
    virtualbox-iso: No Match for argument: libX11
    virtualbox-iso: No Match for argument: hicolor-icon-theme
    virtualbox-iso: No Match for argument: bitstream-vera-fonts
    virtualbox-iso: Resolving Dependencies
    virtualbox-iso: --> Running transaction check
    virtualbox-iso: ---> Package avahi.x86_64 0:0.6.31-13.el7 will be erased
    virtualbox-iso: --> Processing Dependency: avahi = 0.6.31-13.el7 for package: avahi-libs-0.6.31-13.el7.x86_64
    virtualbox-iso: ---> Package freetype.x86_64 0:2.4.11-9.el7 will be erased
==> virtualbox-iso: Gracefully halting virtual machine...
==> virtualbox-iso: Preparing to export machine...
    virtualbox-iso: Deleting forwarded port mapping for SSH (host port 3213)
==> virtualbox-iso: Exporting virtual machine...
    virtualbox-iso: Executing: export packer-virtualbox-iso --output output-virtualbox-iso/packer-virtualbox-iso.ovf
==> virtualbox-iso: Unregistering and deleting virtual machine...
==> virtualbox-iso: Running post-processor: vagrant
==> virtualbox-iso (vagrant): Creating Vagrant box for 'virtualbox' provider
    virtualbox-iso (vagrant): Copying from artifact: output-virtualbox-iso/packer-virtualbox-iso-disk1.vmdk
    virtualbox-iso (vagrant): Copying from artifact: output-virtualbox-iso/packer-virtualbox-iso.ovf
    virtualbox-iso (vagrant): Renaming the OVF to box.ovf...
    virtualbox-iso (vagrant): Compressing: Vagrantfile
    virtualbox-iso (vagrant): Compressing: box.ovf
    virtualbox-iso (vagrant): Compressing: metadata.json
    virtualbox-iso (vagrant): Compressing: packer-virtualbox-iso-disk1.vmdk
Build 'virtualbox-iso' finished.

==> Builds finished. The artifacts of successful builds are:
--> virtualbox-iso: 'virtualbox' provider box: centos-7-0-x64-virtualbox.box

無事boxファイルが作成されました。

$ ls -la                                 (git)-[master] ? [ ~/my_packer_templates/centos-7.0]
total 1058288
drwxr-xr-x  7 y-sakamoto  staff        238  8 11 18:09 .
drwxr-xr-x  8 y-sakamoto  staff        272  8 11 18:06 ..
-rw-r--r--  1 y-sakamoto  staff  541837956  8 11 18:09 centos-7-0-x64-virtualbox.box
drwxr-xr-x  3 y-sakamoto  staff        102  8 11 16:49 http
drwxr-xr-x  3 y-sakamoto  staff        102  8 11 16:57 packer_cache
drwxr-xr-x  8 y-sakamoto  staff        272  8 11 16:49 scripts
-rw-r--r--  1 y-sakamoto  staff       2713  8 11 16:49 template.json

boxを追加する

$ vagrant box add centos-7.0 centos-7-0-x64-virtualbox.box
==> box: Adding box 'centos-7.0' (v0) for provider:
    box: Downloading: file:///Users/y-sakamoto/my_packer_templates/centos-7.0/centos-7-0-x64-virtualbox.box
==> box: Successfully added box 'centos-7.0' (v0) for 'virtualbox'!
$ vagrant box list                                   (git)-[master]  [ ~/my_packer_templates]
centos-7.0 (virtualbox, 0)

無事に追加されたので、vagrant init なり vagrant upなりして 美味しく召し上がりましょう。

「ハッカーと画家」を読んだ

はい。

 

自前サーバでWPを運営するの、定期的にOS入れ替えたりするし、面倒くさくなったのでこちらにお引っ越し。

 

今回は読み物系を読みたくなったので、「ハッカーと画家」 

 

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

 

恐らく過去にwebで公開されている何章かを読んでいたこともあり、

そこまでショックは受けなかったものの、 

それでも、とてつもなく純粋なパワーを感じた。

 

以下、印象に残ったフレーズを書き連ねました。

 

私の知る限り、私が大学で教わったプログラミングのやり方は全部間違っていた。作家や画家や建築家が作りながら作品を理解してゆくと同じで、プログラマはプログラムを書きながら理解してゆくベきなんだ。

 四の五の言わずにコード書けと。 

絵を描くことは、絵を描きながら学ぶ。

 四の五の言わずにコード書けと。 

 「画には終わりがない。ただ描くのを止めるだけだ」

このあたりはタイトルの元となった内容。

根本的に、会社とか仕事とかで作ってる(作らされてる)プロダクトを想像するとちょっとピンとこないかもしれない。

四の五の言わずにコード書けと。 

会社とは、人々が集まって他の人々が欲することをやる集団にすぎない。

 

 "プログラムは、人々がそれを読むために書かれるべきである。たまたま、それが計算機で実行できるにすぎない。"

 「Lispを激推ししておいてそんなっwww」って思ったけど、後半を読んでくと自然と納得できてしまうんだな、この言葉が。

もの創りが学ぶもうひとつの方法は先例から学ぶことだ。画家にとって美術館は技法の先例の宝庫だ。偉大な画家の作品を模写することは、何百年もの間、画家の教育過程の一環となってきた。模写する事で、絵がどのように書かれているのかを詳しく見るようになるからだ。

新しい道具(言語)を学ぶんだったら、車輪の再発明もありでしょう。

出来る人のgithub覗いたら、車輪の再発明ばっかですし。

四の五の言わずにコード書けと。 

Javaのプロジェクトで働くために雇われるプログラマは、 Pythonを使うプロジェクトで雇えるプログラマほど 賢くはないだろう。そして、雇えるハッカーの質は、たぶん言語の選択よりもずっと重要だ。もっとも、正直に言えば、良いハッカーJavaよりPythonを好むという事実が、これらの言語の相対的な利点について何かを暗示していると思う。

 ハッカー入門にはPythonを推しているポール。確かにこの後の説明にも、Pythonを選択する理由には納得できる。

 

そして後半の怒涛のLisp推し。

Lispのユニークさ

  1. 条件式。if-then-elseという構造だ。
  2. 関数型。データ型のひとつだ。リテラル表記を持ち、変数に代入できて、引数として渡したり、いろいろなことができる。
  3. 再帰
  4. 動的型付け。Lispではすべての変数は実質的にポインタだ。変数ではなく値の法に型がついており、代入や束縛は実質的にポインタのコピーで行われ、ポインタがさしているものには作用しない。
  5. ガベージコレクション
  6. 式でプログラムが構成されること。Lispプログラム式の木であり、それぞれの式が値を返す。これはFortranとそれを引き継ぐ多くの言語とは対称的だ。それらの言語は式と文を区別している。
  7. シンボル型。シンボルは実質的にはハッシュテーブルに格納された文字列へのポインタである。これによって、文字を一つひとつ比較しないでもポインタの比較だけで済む。
  8. シンボルと定数の木によってコードを表現すること。
  9. 言語のすべてが常に在ること。読み込み時、コンパイル時、実行時が明確に分離したステップになっていない。読み込み時にコンパイルしてコードを走らせることもできるし、コンパイル時にコードをよんだり走らせたりすることもできるし、実行時にコードを読んだりコンパイルしたりすることができる。読み込み時にコードを走らせることにより、ユーザがLispの構文を変更することができる。コンパイル時にコードを走らせるというのはマクロの基本だ。実行時にコンパイルするというのはLispEmacsのようなプログラムの拡張言語として使うことを容易にする。そして実行時に読み込みができるというのは、プログラム同士がS式を使って通信できるということだ。最後のアイディアは最近XMLとして再発明された。

 

Lispが奇妙に見えるのは、奇妙な構文を持っているからというより、構文をもっていないからと言ったほうがよいだろう。 普通の言語なら舞台裏で構文解析して作られるような構文木Lispプログラマは直接書いてプログラムを表現する。その構文木はリストで表現され、それはLispのデータ構造だ。

 

今、わたしがやっている仕事で求められている立場はエンジニア。

だけど、プログラマになるという目標が有る人は、すべての人が読むべき本だと思う。