空を飛ぶこと
ひとたび空を飛ぶことの味をしめたら、常に上を向いて歩くようになるだろう。自分の居場所は空だ、あの空に戻りたいと常に思うようになるのだ。
大学のサークルで初めて熱気球に乗って空を飛びました。
それ以来、まさにこの言葉の通りに空を飛ぶことが好きになりました。
今まで、たくさんの空を飛んできました。穏やかな青空をのんびり飛んだり、たくさんの気球が彩る空を飛んだり、上空2700mから富士山を望んだり。
中でも一番好きなのは、真っ白な雲海の上を飛ぶことです。
まるでラピュタの世界のような空の上の世界を体験できます。
熱気球のいいところは、これらの景色を360度すべて直接見ることができ、とても静かな空の旅を楽しめるところです。
また、熱気球には、スカイスポーツとしての側面もあります。
「風を読む」「地図を使う」といった能力が必要で、気象・GISとも関連していて面白いです。
今では学生時代の同期とTeam 空色というチームを作り、スポンサーもして頂いて活動しています。
いろいろな空に出会えることが楽しい、熱気球という趣味を続けていければいいなと思います。
最近の作業環境
久しくブログを更新していませんでしたが、東京で就職しました。
東京に引っ越すにあたって、空の見える快適な作業環境を作りたいと思い、部屋探しから始めました。
空の見える作業環境
tobalog.com
このブログのような景色の良いデスクが理想でした。
眺望良好の物件をいくつか探して、実際に内見してみて、いい感じの場所に決めることができました。
実際に住んでみると、空が遠くまで見えて気持ちのいい環境でした。 西向きなので、夕焼けが見えるのもいいところ。
快適な開発環境
自宅で開発する時間が長いので、快適に開発できるようにしました。
曲面ディスプレイ
blog.livedoor.jp MacBook Proとディスプレイを縦に並べるスタイルが好きでしたが、大きいディスプレイが欲しいと思っていました。 4Kにするか曲面にするかを迷って、34インチ曲面ディスプレイにしました。
UWQHD (3340x1440)は、もともと使っていたFullHD (1920x1080)の約2倍の面積になって広く使える上に、没入感もあっていい感じのディスプレイです。
iPad + Apple Pencil
よく紙のノートにメモや図を書いたり、資料に書き込みながら作業していて、iPad Pro + Apple Pencilでノートを書くのを試してみたいと思っていました。
でも、iPad Proの値段に手が出ず...。 iPad 2018でApple Pencilが使えるようになったので購入。PDFに直接書き込んだり、図を書いたりと便利に使っています。
シルフィー
腰痛に苦しんでいたので、長く座っていても大丈夫な椅子を探しました。 少し高くても良い椅子をと思い、オカムラのシルフィーを購入。 長時間座っていることが多いのですが、以前のような腰痛が全くなく、いい買い物でした。
という感じで日々変わりゆく空を楽しみつつ、東京で開発の仕事をしています。
ISUCON夏期講習に参加した
学生限定のISUCON夏期講習に参加してきた。
内容
@tagomorisさんから、ISUCONについて解説してもらった。
概要から、実際の取り組み方までかなり詳しく教えてもらい、勉強になった。
チーム結成できた
チームメンバー募集可と書いていたけど、チームメンバーを募集していたのは3人だけだった。
ISUCON夏期講習でチーム結成できた!
— たち (@tattii88) 2015, 8月 19
PerlでWeb API
アルバイトでISUCONのようなことをしていた。
課題
Web APIの負荷が高く、高速化したい。
元の構成
Apache + CGI(Perl)
データはファイルから読み出し
やったこと
Nginx + Starman + Redis
データをすべて事前処理してRedisへ格納、インメモリ化
Unix Domain Socketを使う
Server::Starterで無停止デプロイ
AutoScaling
結果
[#/min] | |
---|---|
Old | 600 |
New | 60000 |
abで何度も計測しながら、高速化できるところをいろいろ試していった。
ここまで速度を追求したのは初めてだったので、楽しかった。
AWS上で構築したので、既存のものから徐々に切り替えてもらった。
最終的にはすべて切り替わって、問題なく動いているみたい。
参考にしたもの
ISUCON参加したい
Heroku無料枠の変更点
HerokuのDynoの仕様が変更されるみたい。
Heroku | New Dyno Types and Pricing Public Beta
いつも無料枠でいろいろ試しているけど、無料枠も変更されるので変更点をまとめてみる。
Traditional dynos (現在)
750 dyno-hour / month
までは無料。
(1X、2X、PXの使い方は自由。)
New dynos (6月から)
現在の1X、2X、PX → Professional Dyno
開発用 → Hobby and Free Dynos
無料枠
Heroku | Heroku’s Free (as in beer) Dynos
- 1日のうち18時間しか起動できない
- 30分アクセスがなければsleep
webとworkerの2つが使える
現在の
1X
は6/1から順次free
に切り替え- 少なくとも2ヶ月は18時間を超えてもメール通知のみ
無料で24時間起動し続けることができなくなるみたい。
TrackBoxを公開しました
航跡を共有するWebアプリ「TrackBox」を公開しました。
航跡をきれいに見やすく表示でき、それを共有できます。
Example: http://trackbox.herokuapp.com/track/z12rcnmi
以前作った、 tattii.hatenablog.com
に共有機能を加えたものです。
Heroku + node.js + PostgreSQLを使っています。
メールクライアント
スマホからでも航跡を共有できるように、メールクライアントを作成しました。
下記のアドレスにGPXファイルを添付して送信すると、リンクアドレスが返ってきます。
使い方
自分がよく使っている、Trackというアプリから共有する例です。
- 履歴の詳細ページの共有ボタンを押す。
- Mail as GPXを選択する。
- 宛先をtrackbox0@gmail.com、件名を航跡の名前にして送信。
- 共有された航跡へのリンクがメールで返ってくる(少し時間がかかります)
これから
- クライアントアプリを作りたい
- リアルタイム共有
- オブジェクトのマッピング
いろいろ発展できそうです。
(クライアントアプリは開発してみたけど、途中で挫折…)
自分の気球の航跡を残しています。→ trackbox posts - To the Sky!
Apache+Starmanの高速化
Apache+Starmanのチューニングをいろいろ試して計測してみた。
0.環境
AWS EC2 t2.micro Amazon Linux 1CPU 1GB Memory Perl v5.16.3 Apache 2.2.29 Starman 0.4011
1.実行するアプリ
hello.psgi
my $app = sub { return [ 200, [ "Content-Type", "text/plain" ], [ "Hello!" ], ]; };
$ starman --workers 64 hello.psgi
2. 測定
$ ab -n 10000 -c 100 <URL>
starmanへ直接、prefork、worker、starman --disable-keepaliveといろいろ試してみた。
[#/sec] | |
---|---|
直接 | 2343.08 |
prefork | 1573.77 |
prefork --disable-keepalive | 1256.11 |
worker | 1754.70 |
ApacheからReverseProxyするオーバヘッドがかなり大きい。 いろいろ試してみたけどなかなか数値が上がらず…。
ちなみにApacheは、できるだけプロセスのforkが少なくなるように設定した。
KeepAlive On <IfModule prefork.c> StartServers 64 MinSpareServers 64 MaxSpareServers 64 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 16 MaxClients 256 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 10000 ServerLimit 256 </IfModule>
3. Nginxを試してみる
@hiratara also it's really a mod_proxy issue. Use real proxy like nginx :)
— Tatsuhiko Miyagawa (@miyagawa) 2010, 3月 25
ずっとApache+Starmanで考えていたけど、これを見てnginxを試してみたくなった。
location /test_tcp/ { proxy_pass http://127.0.0.1:5000/; } location /test_uds/ proxy_pass http://unix:/tmp/starman.sock:/; }
さっきと同じ条件で測定。
StamanがUnix domain socketに対応しているのでそれも試してみる。
[#/sec] | |
---|---|
TCP socket | 1703.56 |
Unix domain socket | 2132.53 |
4. 結論
Nginx+Unix domain socketが最速。
NginxとApacheの共存もできるので、Nginxをメインにするのもありかも。
d.hatena.ne.jp
このブログ記事を参考にさせてもらいました。