
突然ですが、社内の出費がやばい3人組で、お弁当をつくって持ってこようという話になりました。発案は僕らしいのですが、全く記憶に無いです。 弊社社員でこれを読んでいる方、昼にお弁当を食べているあの3人は出費がやばい組です。よろしくお願いします。
前置きはともかくとして、実際こういうお弁当をつくっていました。

ごはん、ごま唐辛子しそ昆布、玉子焼き、ウイニー、ミートボール、ほうれん草の胡麻和え(冷食)です。味としては優勝です。
とりあえず1日目、気を張らない感じでつくったものです。自炊を久しくしていなかったので、肩慣らしと言うか、勘を取り戻すというか、そんな感じです。
ごま唐辛子しそ昆布は、昆布館で買うことができます。めっちゃおいしいです。優勝の秘訣です。
我が家では、この玉子焼きとウイニーはお弁当レギュラーメンバーなので、毎回登場します。
あと書くのが面倒なので省略しますが、毎食フリーズドライのお味噌汁を食べています。

ごはん、ふりかけ(旅行の友)、なすの肉みそ炒め、玉子焼き、ウイニーです。味としては優勝です。この日以降、お弁当を会社でレンチンすることを学びました。優勝の秘訣です。
なすの肉みそ炒めは、キッコーマン うちのごはん なすの肉みそ炒めに、この前の週に行った塚田農場で貰った味噌を加えました。 おいしかったです。
ふりかけはCTOからだいぶ前にもらったものです。

ごはん、ふりかけ(鰹みりん)、玉子焼き、はんぺんのベーコン巻き、お惣菜のコロッケ、ウイニーです。味としては優勝です。
お惣菜のコロッケは2日目の晩御飯の残りです。はんぺんのベーコン巻きは、先輩が持ってきたお弁当レシピ本に載っていたのをつくりました。優勝の秘訣です。
このふりかけも、CTOからだいぶ前にもらって持て余していたものです。この日で貰った分は使い切りました。

アスパラガス、ほうれん草、ベーコンのコンソメパスタ、ウイニー、きんびらごぼう(冷食)です。味としては優勝です。
玉子が切れているのに気づかなかったため、玉子焼きはありません。
パスタは、3日目の先輩のレシピを真似してつくってみました。味がちょっと薄くなっちゃって失敗かな、という感じです。とはいえ優勝は優勝です。あともっとほうれん草を入れるべきと指摘を受けました。優勝の秘訣です。
会社でランチの日だったので、お弁当はつくっていません。
以下、優勝の記録です。
出費3人衆のうちで、一番お弁当経験豊富な先輩にいろいろアドバイスをいただきました。ちなみに僕含むあと2人は経験が無に等しいです。
「洗うのが面倒だから、お弁当箱は洗いやすいものを選ぶと良い」とのことでした。
僕が使っているお弁当箱は、Afternoon Teaのこれのネイビーです。 パッキンと蓋が一体化していて、部品が少ないので洗うのが楽です。
意識していないと野菜を入れるのは難しく、しかし緑がないと見た目が寂しい(3日目のお弁当参照)ので、緑色のカップを買うと良いとのことでした。
お弁当を始める!といったらやままさんとらいむさんがシンカテック 抗菌 お弁当カップ 角型 ベジカップ L | amazonをプレゼントしてくれたので、これを使っています。
「1人ぐらしの自炊は節約にはならない」などという話も聞きますが、実際どうなのか、かかったコストを比較してみます。
渋谷近郊のランチが大体1000円で、晩御飯も外食として、昼夜外食で済ませると1食800円と見積もっても1日で1600円、4日+1食(金曜は会社ランチのため)として7200円が消費されます。これは極端な計算だと思いますが、それでも5000円前後になるのではないかと思います。
今回のお弁当で購入した食料品の合計金額は、3088円でした(晩御飯の自炊分を含む)。どうでしょうか。渋谷近郊で毎食外食するよりは安くつくと思います。毎食はなまるうどんや小諸そばにするよりは高価かもですね。
1週間分にしては高いと思うかもしれません。これは、必要になった調味料の購入や、そもそも割安な大量購入をせずに余らせないよう割高な食料品を購入していたせいかもしれません。
実際はこれに加えてお弁当箱などのイニシャルコストが発生しますが、考えたくないので無視します。
とにかく、朝早く起きるようになりました。と言っても8時とかなので怒られるかもしれませんが、以前は10時とか14時に起きていたことを考えると大きな成長を感じます。
そしてまた、夜寝るようになりました。起きれないと困るので、2時とかに寝ていたものを0時頃には寝るようになりました。それでも以前は寝すぎですね。しかし睡眠は重要です。
あと、レシピを見ずに作れる料理のレパートリーがあまりに少ないので、お弁当活動を通じて料理スキルの向上を目指したいです。とりあえず今余っている食材に何品か追加で買ってコンソメスープを作ることを目論んでいます。
先輩が持ってきた数冊のレシピ本のなかに、「休日には肉を煮よ」と書いてあった気がするので、3連休、肉を煮るかもしれません。その様子はブログにする予定はありません。

BEMANIで行くって決めたのでこうなりました。終わった後みんなからからよかったって言われてよかったです。
当日早朝に試しにやってみたところ3分ほど足りなくなったのであわてて曲を追加したら、当初最後に流そうと思っていたのが時間がなくて流せませんでした。もっと前々から準備しよう。

systemctl restart mysql.serviceすると設定が無効になる僕らが高速化したのはRuby実装です。
まずは定石、SQLのslow_queryが何なのかの調査をはじめました。
しかし、何度mysqlのconfigファイルにその設定を有効化した記述をしても、systemctl restart mysql.serviceすると無効状態に戻ってしまうので、
なんだかわからないままrestartは諦めました。(そもそもrestartするのも正しかったのか……?)
結果として、stars テーブルのkeyword、entryテーブルのkeyword、userテーブルのnameにindexを張った他に、content_length(keyword)としていた部分を
keyword_lengthに値を格納してそこを見に行くようにアプリを変更したりするなどを行いました。
isudaとisutarの2つのsinatra appが相互に通信を行っており、この部分がボトルネックになるのではないかと考えました。
そこで2つのappとdbをまとめてしまいましたが、効果の程はわかりません。(この改善で一瞬だけスコアが0以上を返しました。たしか160から180くらいでした。)
public以下の静的なファイル群はnginxが返すように変更しました。
存在するkeywordはそのkeywordのurlへと置き換える実装がありました。その中で、一度keywordをSHA-1で置き換える部分があったのですが、それをZlib.crc32に置き換えて高速化を狙いました。
ただ、おそらくはアルゴリズムの改変もしくは結果のキャッシュ化を行えたほうが良かったのではないかと思います。
完全に気休めでした。
RACK_ENVをdeploymentにunicornはRACK_ENVをdeploymentかdevelopment以外は無視するので、アクセスログを見るためにproductionになっていたのをdeploymentにしました(thx kirikiriyamama!)
RACK_ENVとsinatraの環境は分離させることができて、sinatraのenvironmentをproductionにすることで高速化できたようです。ただproductionのままだとunicornでログを見ることができないので、いずれにせよこの値はdeploymentにし、sinatraのenvironmentをproductionにすべきでした。
descriptionとkeywordそれぞれでスパム判定している部分を、それらを結合した文字列に対してスパム判定を行うようにしました。
/registerへはGETもPOSTもされていないので、エンドポイントごと削除しました。これやる意味あった?
unicornとnginxとの通信にunix domain socketを使用するようにしました。
またそれに限らずnginxまわりのチューニングは全部kirikiriyamamaさんに任せたので、これ以上のことをやってたかもしれません。
ユーザー名とパスワードは同一のものが使用されているので、パスワードの暗号化処理をやめて平文で保存するようにしました。
/loginの静的ページ化/loginのGETは完全に静的ページを返せるので、そのようにしました。
とにかく、スコアが0のまま放置していたのが一番の反省かと思います。どのような改善を試行しても、それによって性能が良化したのか悪化したのかが判断できないからです。
競技中間、確か14時頃からはずっと/login、/star、/keywordへのPOSTがタイムアウトする原因を探っていました。アクセスログを見る限り、499が返っているのですが、手元ではmsec単位でresponseが返ってくるので本当に謎でした。それらのPOST requestは終了後に/へリダイレクトするのですが、この/へのアクセスが重いのでタイムアウトするのではないかと予測もしたのですが、それでは「POSTがタイムアウトする」というベンチマーカーのメッセージへの答えにはなっておらず、本当にうんうん唸ってそのまま終わってしまいました。
次回も参加したい!!!!!!!!


今回は、webサイトを公開するためのドメインを、お名前.comで取得します。
インターネット上で接続することのできるコンピューターには、IPアドレスというものが割り当てられています。例えばこのブログ、blog.unasuke.comを配信しているサーバーには133.130.125.80というIPアドレスが割り当てられています。(記事公開時点)
しかし、このブログを読むために、いちいちIPアドレスを入力するのは手間ですし、そもそもIPアドレスはそう簡単に覚えられるものではありません。
そこで、ドメインというものを取得し、IPアドレスと紐つけることによって、blog.unasuke.comでこのブログにアクセスできるようになります。
ちなみにIPアドレスの取得にもドメインの取得にもお金がかかります。クレジットカードがあると便利です。 この記事ではドメインをお名前.comで、サーバーをConoHaで取得します。どちらのサービスもクレジットカード以外にコンビニ支払いや銀行口座決済に対応しています。
(ここから先の画像は、記事公開時点のもので、将来的に変更されるおそれがあります)
まずはお名前.comで、欲しいドメインを入力しましょう。

いくつか空いているものがあるので、欲しい分選択します。

「お申し込みへ進む」と、このような画面になります。今回はドメインだけ取得するので、レンタルサーバー、officeのチェックは外します。

Whois情報公開代行とは何でしょうか。Whoisというのは、ドメインの所有者情報のことです。Whoisで、そのドメインの所有者が誰なのか、所有者への連絡先は何かなどの情報を取得することができます。
たとえばこれは、政府広報オンラインのドメインに対してWhois情報を取得した結果です。
$ whois gov-online.go.jp
[ JPRS database provides information on network administration. Its use is ]
[ restricted to network administration purposes. For further information, ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ]
Domain Information: [ドメイン情報]
a. [ドメイン名] GOV-ONLINE.GO.JP
e. [そしきめい] ないかくふせいふこうほうしつ
f. [組織名] 内閣府政府広報室
g. [Organization] Cabinet Office
k. [組織種別] 政府機関
l. [Organization Type] Government
m. [登録担当者] HI3920JP
n. [技術連絡担当者] NH2778JP
p. [ネームサーバ] ns02.gov-online.go.jp
p. [ネームサーバ] ns00.vips.ne.jp
p. [ネームサーバ] ns01.vips.ne.jp
s. [署名鍵]
[状態] Connected (2016/12/31)
[登録年月日] 2001/12/19
[接続年月日] 2001/12/20
[最終更新] 2016/01/01 01:02:15 (JST)
このWhois情報には、ドメイン登録者の名前や住所を含める必要があります。お名前.comでは、これらの個人情報のかわりにGMOインターネット株式会社(お名前.comの運営会社)の情報を登録してくれるサービスを提供しているので、それを利用したい場合はチェックを入れておきます。
この後は、お名前.comの会員登録を済ませているのであればログインしてドメイン取得、そうでなければ新規会員登録をする必要があります。


購入しました。ドメインを購入するとメールが一気に何通も来ます。それらの内容をよく読み、必要な手続きを済ませましょう。(メールアドレスの有効性確認などがあるかもしれません。)

さて、これでドメインの取得は完了しました。ちょっと長くなったのでここで終わりにして、次はサーバーを契約してsshするところまでやりたいと思います。

構成でお分かりかと思いますが、貯金が消失しました。


最初3曲で「Let’s start」→「Gimme a big beat」→「いきまーす」がしたかったのでこうなりました。後はSaikoの後にKill EVERYBODYで殺していく感じにするのも決めてました。あとは流れですね。
ただもうちょっと治安できたのではないかと思います。
肩終了脚終了 #kosendj
— うなすけ(ミートアップ) (@yu_suke1994) 2016年7月23日
家に帰る行為が苦行と化した
— うなすけ(ミートアップ) (@yu_suke1994) 2016年7月23日

2016年6月12日に開催されたDentoo.LT #14と2016年7月9日に開催されたfukuitech 06で、unasuke.comについて話してきました。
また、fukuitechでは例によって配信を担当したので、その録画動画の切り出し、youtubeへのアップロードも済ませました。
話した内容は、middlemanのバージョンが4系に上がったことによるsprocketsの廃止、それに伴うCSSのコンパイルについてどのように行ったか、使用VPSサービスの選定、サーバーソフトウェアの選定などです。fukuitechでは、それに加えてDockerの基礎的なコマンドの実行などをデモしました。
発表した内容について更に詳しく説明した記事を書こう書こうと思っているのですが、下書きのなかに書きかけのままになっていて手を付けられていないのが現状です。やっていきたい。

世界を股にかける男なので、Dockercon 2016に参加してきました。
日本を出たのは16時で、Seattleに着くのが9時、その間のフライト時間は8時間で、単純計算すると24時になった瞬間に朝9時まで飛ばされるという感じです。
機内ではwifiが使えるとのことでしたが、APにはつながるもののインターネットには繋がらなくて呼吸ができなかったです。 機内食は美味しかったです。が、エコノミークラスの狭い空間でナイフとフォーク使わせるのは本当につらい。
到着してからは、ようこそ時差という感じで、さらに2日ほど前からお腹の調子がよろしくなく、シアトルの寒さに追い打ちをかけられたのもあり、1日目はずっとホテルで寝ていました。
この日のTシャツはRubyKaigi 2015のノベルティであるsushi tshirtでした。
spice lifeがショールームを始めるきっかけのひとつが、Warby Parkerというアメリカのメガネブランドです。
そいうったこともあり、Warby Parkerには行ってみたかったのです。
さて交通手段ですが、事前に買っていた「地球の熱き方」は全く参考になりませんでした。
シアトルタコマ空港からシアトル市内への行き方 | Developers.IO
この記事に助けられました。
電車とバスを乗り継いで、Warby Parkerに到着。 この時点ではまだ開店していなかったで、starbucksに寄って暇をつぶしました。ホットコーヒを頼んだら殺しにかかってくるのかというくらい熱くてビビりました。なんなら夜までずっと熱かったです。

開店したので、メガネを買いました。まだ度は入ってないです。

Verne Eyeglasses in Jet Black for Men | Warby Parker

決済は店員さんの持っているiPad miniで行えるのですが、クレジットカードのサインが、指を離すまで線が描かれない感じでとにかく難しかったです。 なんか謝られました。どう作ったらあんな使いにくくなるんでしょう。
この日のTシャツはLGTM yamama(TMIX)でした。
コーヒーのせいでほとんど眠らないまま11時頃に会場入りしたら、受付が16時からなのを見落としていたので一旦ホテルに戻って寝ました。計画性のなさ。
1日目はExpo(企業のブースがいっぱいある)くらいしかなく、とにかくTシャツとステッカーを貰いまくった感じです。
この日のTシャツはcontainer mermaid(TMIX)でした。
After partyでNTT、docomo、MTI、Yahoo Japanの人と話しましたが、日本語なのに何を言っているのか分からなくてアーでした。
この日のTシャツはvivaldi(STEERS)でした。
終わったあと、Googleの人に勧められた公園に行きました。
この日のTシャツはTMIX 404 not found(TMIX)でした。
空港で現地のおじさまに話しかけられ、写真を撮ってくれと頼まれました。そのおじさまと一緒に居たのが帰国する日本人で、住む場所も近いという偶然があったりしました。
機内のwifiはやっぱりインターネットまで出られませんでした。なんなんだ。
この日のTシャツはpplog fix hiwai(STEERS)でした
寒かったです。
ホテルですが、開催1ヶ月を切ってから申し込んだのですが、その割に安く、なのでそれなりの感じがしました。 お湯をわかすポットが欲しかったのと、もっとシャワーの水量が欲しかったです。
20時頃まで日が昇っていて明るく、緯度の高さを感じました。
交通はわかってしまえば楽です。道も名前が付いているので最高に便利という感じです。日本より楽かもですね。
空港で買ったsimはUltra Mobileというところのもので、通信網はT-mobileのものを使用していました。4G回線も特に何事も無く使えて良かったです。

ちなみに端末はXperia Z5の国際版です。
ウオー複数コンテナ使うイイカンジアプリケーション作りたくなった〜〜という感じです。 カンファレンスに参加するとモチベーションが上がりますね。
社でもドカドカやっていきたい所存です。


spicelifeのエンジニアは、どんな開発環境で仕事をしているの? - スパイスな人生を書きました。
自分のことについてはあまり深く突っ込んで書いていないので、ここで詳細を書くことにします。
これ以降はOS Xについて主に書いていきます。なぜならwindowsを持っていないからです。linuxは常用する暇がなくなったからです。
iTerm2の上でzshが動き、その上でtmuxを起動してワイワイやっています。colorschemeはsolarizedです。
登録しているaliasesは、現時点では以下のとおりです。
dotfiles/aliases.zsh at 285a411b96 · unasuke/dotfiles
#alias
#ls
alias la='ls -alGh'
alias ll='ls -lGh'
#git
alias g='git'
compdef g=git
#peco
#cd repository
alias e='cd $(ghq list -p | peco)'
#bundler
alias bi='bundle install'
alias be='bundle exec'
#vim
alias vi='vim'
主にvimを使っていますが、ごくたまにatomを起動し、ちょちょっとしたメモが欲しい時はCotEditorを使います。
vimのプラグイン管理はShougo/neobundle.vimShougo/dein.vimに乗り換えました。
よく使うプラグインはscrooloose/nerdtreeで、space+eで開閉するようにしています。
あと、ctrlpvim/ctrlp.vimがインストールされていることをよく忘れます。
他によく使うキーバインドは、space+tで:tabnewで、space+jとspace+lでタブの移動をしています。
ウィンドウの分割は、vimで行うよりはtmuxで分割することにしています。理由は特に無いです。
vim-modeで使っています。特筆することはないです。有名ドコロのpackageは一通り入っていると思います。
抜粋してこんな感じです。
dotfiles/.gitconfig at 285a411b96 · unasuke/dotfiles
[color]
ui = true
[push]
default = simple
[core]
excludesfile = ~/.gitignore_global
precomposeunicode = true
quotepath = false
[ghq]
root = ~/src
[alias]
s = status
sh = stash
shu = stash -u
shp = stash pop
c = commit -v
l = log --oneline --decorate --color --graph
l = log --oneline --decorate --color --graph --all
pl = pull
ps = push
ch = checkout
chb = checkout -b
ad = add
d = diff
dc = diff --cached
fe = fetch --prune
me = merge
miku = !git stash 1> /dev/null && echo 'もうしょうがないにゃぁ、この変更はみくが覚えておくにゃ!'
g = grep
branches = branch -a
tags = tag
stashes = stash list
unstage = reset -q HEAD --
discard = checkout --
uncommit = reset --mixed HEAD~
amend = commit --amend -v
[rebase]
autostash = true
[stash]
showPatch = true
[diff]
algorithm = patience
compactionHeuristic = true
[pager]
log = diff-highlight | less
show = diff-highlight | less
diff = diff-highlight | less
[interactive]
diffFilter = diff-highlight
よく使うaliasはs、sh、c、ch、adですね。最近、人間らしいGitのエイリアス | プログラミング | POSTDからいくつか拝借しました。
rbenv/rbenv-default-gemsを入れて、よく使うrubygemsはrubyをインストールした時に同時に入るよう設定しています。
あと、amatsuda/gem-srcを使って、rubygemsのソースを同時にgit cloneするようにしています。
ソースコードの管理はmotemen/ghqで行っています。上のgem-srcもghqを使用して、いい感じのディレクトリにcloneするよう設定しています。
ディレクトリの移動はpeco/pecoによる絞込で行っています。
Amazon.co.jp: サンワサプライ 机上に設置可能便利タップ 3個口 集中スイッチ仕様 TAP-B25: パソコン・周辺機器
これを机に設置すると無限に便利です。

macのACアダプタには、「どうぞここにコードを巻き付けてください」と言わんばかりの部位があるけれど、あそこに巻きつけているとコードの癖がひどいし、断線もしやすくなると思うのです。(主観)
なので、僕はこう巻きます。


使っている技術は、
くらいです。
いい加減静的Webサイトの作り方の続き書きます……