visual studio code 0.10.5 が起動しない

環境はOS X Yosemite.

visual studio code にアップデートできるよって表示されていたのでアップデートしたら以下の様なVisual Studio Code has crashed という表示が出て起動できなくなってしまったorz
どうやらEl Capitanでも同様の事象は発生している模様。
https://cloud.githubusercontent.com/assets/4006436/11916849/6e9be912-a725-11e5-975a-6176f2539111.png

解決策は、IMEをデフォルトのENGLISH(US) にして起動すること。

there have a temporary solution to fix this crash. u need to switch your input method to system default english(U.S.) before start vscode. then start vscode, u can switch your input method u like.
Visual Studio Code has crashed (0.10.5, os x el capitan) · Issue #1501 · Microsoft/vscode · GitHub

クラッシュしなくなる一時的な解決策がある。vscodeを起動する前に入力をシステムデフォルトenglish(U.S.)にしておいてからvscodeを起動する。それから自分の入力方式に切り替えればいい。

Switching the input method to system default english(U.S.) really works
Visual Studio Code has crashed (0.10.5, os x el capitan) · Issue #1501 · Microsoft/vscode · GitHub

入力をシステムデフォルトenglish(U.S.)にしたら本当に動いた

これで無事起動することができた。
ただ、原因を調査するためインストールしなおしたおかげでスニペットとかキーバインドなんかのもろもろ設定したのが全部消えた。

また、アプリケーションのアップデートをためらうような経験を積んでしまった。

CentOS6にnode.js環境をつくる

コマンド

Vagrant をつかってローカルの仮想マシンに構築する。

以下のコマンドを叩くだけでMacのターミナルからCentOS6にnode.js環境をつくることができる。 ただし、Vagrant + Virtual Box はインストールしている必要がある。

コマンドの説明

基本的にコマンドを叩くだけでいいので説明することはあまりない。 前半は仮想マシンの構築を行う。

## ホスト(Mac)
vagrant init bento/centos-6.7 --minimal #コメントなしでVagrantfile 作成
vagrant up
vagrant ssh

vagrant init bento/centos-6.7 ってやるとこんな感じのVagrantfileができる。

Vagrant.configure(2) do |config|                                                                   
  config.vm.box = "bento/centos-6.7"
end

config.vm.box = "bento/centos-6.7"みたいに記述すると、

https://atlas.hashicorp.com/boxes/search からbento/centos-6.7 を探してインストールしてくれる。

後半はゲストOSにログインしてnodejs のパッケージをインストールしたりする。

## ここからゲスト(centos) root権限でコマンドを実行する
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install epel-release
# yum update
# yum install nodejs npm --enablerepo=epel
# yum install freetype
# yum install fontconfig

仮想環境は無事立ち上がったので、vagrant sshcentos にログインして必要なパッケージをインストールする。

nodejs npm は epel というパッケージにバンドルされているので yum install nodejs npm --enablerepo=epel というふうに書けばepelから探してnodejs npmその他必要なパッケージをインストールしてくれる。

EPEL リポジトリとは、CentOS 標準のリポジトリでは提供されていないパッケージを、yum コマンドでインストールすることを可能にするリポジトリのことです。
http://www.websec-room.com/2014/01/15/1535

freetype とfontconfig はnodejs を動かすのに必要なパッケージでこれがないとエラーになるので入れる。

以上でCentOS6にnode.js環境の構築は完了した。
あとはサンプルプログラムを動かしてみたり好きにすればいい。
仮想環境が壊れてもvagrant destroy でいつでも削除できるのだから。

スマホやタブレットなどいらなかったのでは

スマホタブレットがもたらしたものがこれだ。
"人間なんてしょせん、砂で山を作ったり、山を作ったときにできた穴を他のところから持ってきた砂で埋めたりしてるうちに死ぬ"とは言え、そこそこの学歴とそこそこの給料とそこそこの学歴をもっている大人たちが寄り集まっていかに他人の人生を空費させお金を浪費させるかについて人生のリソースの大部分をつぎ込んでいるというのはさすがにそれはどうなのよと思ってしまった。

こんなエントリを書いてたふろむだ氏が2日もiPadでふーるー、最高にやばい。神は死んだ。

ネットに時間を使いすぎていると思われる方は、 この際、ネットの時間を減らし、良書を読む時間を増やしてみてはいかがでしょうか。
おそらくその方が、ネットの記事も今までの何倍も深く楽しく読めるようになり、 世界が全く変わって見えることと思います。
人生も、はるかに深く豊かで心から納得のいくものになっていくかもしれません。

僕は人生に特に意味はないと思っているのでとやかくいう気はない。
ただ、このようなエントリを書く人を布団から離さなかった現代のテクノロジーがやばいのだ。どう考えてもやばい。

僕はもっと本を読もうと思う。
そして、「本を読まない人たちに対してどうこう言うことはない。僕たちが本を読んでいる時間にゲームをしようと、ファーストフード店で大声で談笑してようとそれは自由だ。」と言えるようになろう。そうしよう。

早速Amazonで本を購入だ。ん?Amazon プライム?入会するとナショナルジオグラフィックが無料で?ふむ。

お金は、遣えばなくなる。だが同時に、増やせもする。消費したお金は、お小遣い、アルバイト、仕事などでいくらでも取り戻せる。
だが時間は、取り戻せない。時間とは、全人類に平等に与えられた唯一無二の存在だ。1年 経てば必ずみんなひとつ歳を取る。そして、その時間は返ってこない。例外はない。

日の丸モチーフのシンメトリックな東京路線図にやられる

先日、鉄道博物館に行ったらこんなクリアファイルが売ってたので思わず購入しちゃいました(300円)。

f:id:snowlong:20151110140131p:plain

東京の鉄道は様々な路線が乗り入れていて乗り換えがいたるところで行われ路線図をつくろうとなるとその複雑さからとてもこれを見て観光するなんて無理ゲーなシロモノが出来上がるわけです。
予備知識無しに東京 路線図 の画像検索結果 の路線図を見るとそのカオスっぷりに圧倒されてしまう。

そんな東京の路線図を美しいデザインとして描いているのだ。これには驚いた。
日の丸をモチーフにシンメトリーな配置と控えな色づかいによって複雑な印象を見る者に与えず、芸術性を高めている。
作成したのはZERO PER ZERO という韓国のデザイン事務所で、 東京の他にも世界各都市の路線図を制作しておりウェブ上で見ることができます。

こちらの路線図と見比べてみるとわかりやすいのですが、ZERO PER ZEROの路線図はかなり大胆なデフォルメを施しているのがわかります。

http://www.meik.jp/2rosenzu/jpg_640/tkyo_yko_chba.jpg

1枚目の画像と2枚目の画像が同じものを表しているとは思えないほど違いますね。
いったいどうやってこんなに見やすくできたのか、デザインも鉄道も専門的な知識はないがその美しさに細かく見ていきたい衝動に駆られます。

東側

f:id:snowlong:20151110125621j:plain 東京駅周辺。
このあたりは地下鉄が複雑に絡み合っているのだがかなりすっきりとして見えますね。
実際に行くと迷うのですが…

f:id:snowlong:20151110124244j:plain 山手線を円として描く路線図はあるが、地下鉄も皇居を中心に円として描いているためとても見やすい。 山手線の内側にこれだけのスペースを取ったことで地下鉄のごちゃつき感をなくしています。

http://jasf.org/rosenzu/map_tokyo.png

↑のJR東日本の路線図だと山手線は円を描いていないし皇居もそれとはわからない。
また、ZERO PER ZEROの路線図はJRの路線はグレーぽい色で統一されていることに気付かされる。

f:id:snowlong:20151110130155j:plain 皇居の直線上、真南の位置に羽田空港を配置するという大胆なデフォルメ。

f:id:snowlong:20151110120842j:plain 地下鉄はその路線のカラーで描かれている。
黄色の銀座線は東京駅を避けSの字を描くように通っている(ようにみえる)。

秋葉原にはElectric Townという文字とメイド服のアイコンが見える。
この街のカオスっぷりを端的に表している。

f:id:snowlong:20151110125651j:plain

上野周辺。
上野動物園内にあるモノレールまでしっかりと描かれている。
日暮里や北千住や南千住がターミナル駅であることがわかる。

西側

f:id:snowlong:20151110125345j:plain 新宿駅周辺。
そんなに複雑には見えない?
私鉄は茶っぽい色で統一している。

f:id:snowlong:20151110120731j:plain 西側は地下鉄があまり通っていないので地味な印象。

f:id:snowlong:20151110125425j:plain 横浜から西へ向かう路線は大胆なデフォルメの犠牲になりかなり窮屈そう。

f:id:snowlong:20151110124514j:plain 横浜線武蔵野線南武線環状線として描いているのに感動した。
日の丸モチーフが徹底されている、施政者もこういうことがほんとうはやりたかったんだと思う。

全景

上記のZERO PER ZEROのサイトに行けば全景を見ることができる。
何かの儀式に使えそうな雰囲気を出していますね。 https://static.wixstatic.com/media/fe4311_e9b7510d7bd54c59b7be4d422b34a977.jpg/v1/fit/w_940,h_940,q_75,usm_0.50_1.20_0.00/fe4311_e9b7510d7bd54c59b7be4d422b34a977.jpg

日の丸=円というモチーフの徹底がいたるところで見られシンメトリーな構造が安心感を与えてくれますね。
本当にすごい作品だと思います。

どこで買えるの

鉄道博物館の他にも秋葉原と東京駅にあるTRAINIART というお店で取り扱っているようです。

ネット上だとヤフーショッピングとか楽天に取り扱っているお店があるようです。

まとめ

というわけでクリアファイル一つで大満足してしまいました。 最後に機関車の警笛にビビる動画でお別れです、それでは。

ゼロ・トゥ・ワン 君はゼロから何を生み出せるか

2015年の内に(個人的に)買っておきたい物リスト PC関連編

今年中に買おうかなと思っているものをリストアップした。 物欲を刺激するのは楽しい ^q^

ウェアラブルカメラ

ベランダビオトープを撮影する際、どうしても上からの撮影になってしまい水面が光を反射するため思うように撮れない。

水中にカメラを設置して撮影できれば思い通りに面白い映像が撮れるのではと思い防水カメラが欲しくなった。

で、調べてみると最近のウェアラブルカメラの多くは防水仕様になっている。
水中での撮影のためカメラは小さいものがよく液晶とレンズが一体になったGoPro のようなものは適さない。

【国内正規品】GoPro ウェアラブルカメラ HERO4 ブラックエディション アドベンチャー CHDHX-401-JP

液晶とカメラが分離されているものを探しているとPanasonicのHX-A500-D がよさそう。

Panasonic ウェアラブルカメラ オレンジ HX-A500-D

ただ、防水がどこまで行けるのかが心配。
スペック的には水中がそんなに得意ってわけじゃなさそう。

  • 防水性能保証水深/防水性能保証浸水時間:3.0m/30分

モノクロレーザープリンター

領収書を印刷する際に必要。
カラーは必要ないのでインクジェットよりもコストがかからない(と思われる)レーザーをチョイス。

外付けSSD

Transcend 外付けSSD 512GB USB3.0 MLC TS512GESD400K

Transcend 外付けSSD 512GB USB3.0 MLC TS512GESD400K

正直MacBookのストレージを256GB にしたのは失敗だったと思っている。
せっかく有料プランに申し込んでDropboxの容量が1TB まで拡張されているのにあえて自分で上限を設定しているに等しい。

さらに、開発環境をDockerやらVagrant 上に構築するとそこそこの容量を使う。

2015年にもなってストレージの容量で悩むことになるとは思わなかったしAppleiPhoneのストレージ容量でがっぽり稼いでいるというのも残念な未来である。

クラウドによるストレージサービスは不自由すぎるので自分には合わない。

S3は従量課金だし、国内のVPSはストレージサービスとして使うには容量が圧倒的に足りない。

どうしてもローカルにある程度のストレージが必要になる。

で、外付けSSD が自分に必要なのかどうか正直よくわからない。容量も256GB と物足りないし。

外付けHDD

SSDはTBを超えると歩留まりの問題でバカ高くなる。
そのため大容量のバックアップとか考えるとHDDを選択肢に含めなければならない。

外付けSSD は見送ってこれでいいかな。3TB もあるし。
ルーターに繋げば家の中からアクセスできるし。

Sketch

これだけアプリケーションだ。
ちょっとデザイン的な作業したい時のツール用。Sketchは$99 の買い切りなのがよい。
Photoshopとかセレブな価格なので手が出せない。

Bohemian Coding - Sketch 3

http://www.sketchapp.com/static/images/home/hero-screenshot.png

以上

とりあえずこんなところ。
あとはプロジェクターとWiiUも欲しいけどあんまり使わないと思うので除外した。

プログラマー志望者は「夏目漱石の小説を書き写せば夏目漱石と同じレベルの文章が書けるようになる」と期待する

夏目漱石の小説を一冊、こころでも坊っちゃんでもなんでもいいですけど書き写したらあなたは夏目漱石と同じレベルの文章が書けるようになれると考えるだろうか。
まあ考えないですよね。

https://upload.wikimedia.org/wikipedia/commons/1/17/Natsume_Soseki_photo.jpg

だが、プログラミングではどうか。
どうやらプログラミングでは他人の考えたプログラミングを書き写しただけで「8週間で税込17万円」払ったら「世界を創り出す力」が得られると考えてしまうらしい。

2015-11-09 元記事がブログごと見れなくなってしまっていたので魚拓に差し替え

megalodon.jp

道教室に2ヶ月通って先生に字の書き方を習った。頑張ってうまい字が書けるようになった。お母さんはほめてくれるでしょう。でも、書道の達人なったかというとそうではないでしょう。
そんなもんです。

まあ、「Railsなんてプログラミングじゃない」と言いたくなる気持ちはわからなくはないのですが、テックアカデミーに期待しすぎたのでしょう。
なにせ17万も払ったからな!

ただ、テックアカデミーというサービスはあくまでも短期間でWeb サービスを自分つくりましたって入塾者に言わせるのが目的ぽいのでプログラミングの本質とか哲学的ななんとかというのは知ったことではないというかその辺りはまっさきに捨てる部分ですよね。
ドヤ街の安宿でルームサービスを頼もうとするくらい的外れなことのように思えます。

そこを割りきって参加していればおそらくRailsなんてプログラミングじゃないやいという感想には至らなかったと思います。

あと、「Railsなんてプログラミングじゃない」という批判、DHHが聞いたら喜ぶんじゃないかなと。
それだけ抽象化がうまくできているってことですからね。

で、アメリカのエンジニア向けブートキャンプに目を向けてみるとさすが本場というかなんというか。 エンジニア向けのブートキャンプ、日本では8週間で17万円ですが海の向こうでは数ヶ月で数百万円ほどかかるそうです。
ただ、今までテキストエディタを開いたことがなく数ヶ月プログラミングを習っただけの卒業生の年収の平均は1000万円超みたいですけど。バブリー。

Course Report 2015 Bootcamp Market Size Study - Course Report

Programming bootcamps in San Francisco, CA

自分もアラサーでプログラミングできるようになりたいなっていう動機でエンジニアになってボロボロに挫折しまくりながら、業界の片隅でなんとか生きているわけなのですが、プログラミングはじめる前はプログラミングというかプログラミングができる自分自身に過剰に期待しすぎていたような気がします。

ビル・ゲイツとかマーク・ザッカーバーグとかスティーブ・ジョブズ(当時はプログラマーだと思ってた)とかに憧れるわけじゃないですか。やっぱり。

でも、残念ながら自分はマーク・ザッカーバーグじゃないってことに気付くわけですよ。
30歳のおじさんがね「あ、俺マーク・ザッカーバーグじゃないや」って。 「わたしってブスだったの?」って。
痛々しいですよね。

まあでもしょうがないですよ。
もう片足突っ込んじゃったんで。
あとは沈むか渡りきるかのどちらかしかないです。
前に進むしかないです。

ISOファイルからVagrantのBOXファイルを作成する

vagrant のbox ファイルを作成したメモです。
本文中でもあげていますが以下を読んで作業すればそんなに難しいことはありませんでした。

CentOS 6.6 x86_64 minimalのVagrant boxを作る - 作業ノート

Creating a Base Box - Vagrant by HashiCorp

ISOファイルからVagrantのBOXファイルを作成する

OS Xのターミナルから、Vagrantコマンドでboxを作成するには以下のコマンドを実行すればよい。

$ vagrant package --base centos66

baseオプションは仮想マシン名を指定する。

minimalなCentOSをサーバから落としてきて上記のコマンドを実行しても動かない。
vagrantの実行に必要なvagrant ユーザーが存在しないからだ。
他にも不要な機能を削除したりする必要がある。

実際に何をすれば動かせるようになるかは以下のサイトに書いてある。
http://te2u.hatenablog.jp/entry/2015/05/11/012225
https://docs.vagrantup.com/v2/boxes/base.html

CentOS 6.6 x86_64 minimalのVagrant boxを作る - 作業ノート で記されている以下の手順を行った。

他にやったこと

上記のエントリの「yumリポジトリの登録」以外を行った。

これでboxファイルの基本形はできた。
あとは、アプリケーションを動かすためのソフトウェアをインストールする作業が必要になる。

EPELパッケージを使えるようにする

ansible で設定周りを記述していこうと考えているのでansible がインストールできるようにする。

# yum localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

参考 http://weblabo.oscasierra.net/install-epel-01/

ansibleをインストールする

# yum install ansible

で、ここからつらつらと playbook につらつらと構成なんかを書いていく予定なのだ。

box に登録する

これでベースとなるOSができた。
これを元にvagrant コマンドを叩いてbox ファイルを作成する。

vagrant package --base centos67  --output CentOS-6.7-x86_64 # CentOS-6.7-x86_64.box が作成される。

vagrant package --base centos67 によって、 package.boxが生成される。これがVagrant Cloudから取得していたあのboxファイルだ。
--output とファイル名を指定すれば出力するboxファイルの名前をつけることができる。

指定なければpackage.boxとなる。

vagrant box add --name CentOS-6.7-x86_64-minimal-ja-20151104 CentOS-6.7-x86_64.box
vagrant box list 

これでlist の中にCentOS-6.7-x86_64-minimal-ja-20151104 が表示される。
あとは、vagrant を立ち上げるだけだ。

vagrant init CentOS-6.7-x86_64-minimal-ja-20151104  
vagrant up 

以上で、CentOSのISOファイルからVagrantのbox ファイルを作成&登録してvagrant up でVMを起動するところまでを行った。

まとめ

会社のセキュリティ的な事情とかなければ、イチからboxファイルを作成するというのは手間なだけでそんなに使う機会はないのかなという気がします。

ただ、開発環境の整った状態のbox ファイルを配布するなどの用途でbox ファイルを作成するというのはとても便利ですね。
box ファイルとVagrantfile さえあれば vagrant up で開発環境が構築できるのですから素晴らしい。

The DevOps 逆転だ!究極の継続的デリバリー

The DevOps 逆転だ!究極の継続的デリバリー