文字っぽいの。

文字を書いています。写真も混ざります。

XcodeでTabキーを叩いた時の挙動をEmacsと同じにする

 Emacsでは行のどこでTabキーを叩いても、インデント調整が行われます。 Xcode、というかEmacs以外のエディタを使っていて一番つらいのは、 Tabキーを叩いた時に\t(もしくはスペースn個)が入力されることです。

 「行の真ん中でタブとか入力せんやろ!?」と思いながらうっかり叩いて入力された空白を丁寧に削除し、 C-iを叩き直す日々が続いていましたが、設定見てみたら普通にEmacs風にできました。

f:id:FromAtom:20150811104656p:plain

コレ、の部分をIndents alwaysにすれば良いです。やったー!

Incompatible library version: Foo requires version 2.0.0 or later, but HOGEHOGE provides version 1.0.0 というエラー解決した。

前提

エラー

 シミュレータでは動くのに、実機に転送して起動するとこういうエラーが出て落ちる。そして、SwiftyJSONのバージョンは1.0.0じゃない。

dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON
  Referenced from: /private/var/mobile/Containers/Bundle/Application/CC8759F5-A501-400C-93A8-DCEE3BFE4770/XXX.app/XXX

Reason: Incompatible library version: Foo requires version 2.0.0 or later, but SwiftyJSON provides version 1.0.0

対策

 Clean Build Folderをしたら直った。KeyBindではCommand-Option-Shift-Kに割り当てられていて、GUIで操作する場合は、Productメニューの中でOptionキーを押すと表示がこう変わるので、選べば良い。

小言

 CocoaPodsを0.38系にバージョンアップしたら出てきたので、CocoaPodsが悪いのかと思ってバージョン変えまくって疲れた。Podfileの中からエラーを吐くライブラリをどんどん消していったら、昔入れたけどもう消したライブラリが無いって怒られてたので、「なんかキャッシュ残ってそう」と思って調べたら見つかった。完全にCocoaPod周りを疑って、バージョンチェックがおかしいのかな?とRubyのコード読んで1日消費したので、とにかく辛かった。

猫カフェMoCHA 渋谷店に行ってきた!

猫を飼い始めてはや4ヶ月、猫カフェに行く機会も減ってきたけれど、新しい猫カフェが渋谷にオープンしたと聞いて馳せ参じました。

catmocha.jp

お値段は10分200円。まだフリータイムとかは無さそう。2時間で2400円くらいですね。飲みに行くより安くて猫はかわいい。飲み会と比べるなんて失礼な気がする。そう、ここは高級猫キャバ。

店内の様子

お店に入って階段を登ったらなんかいた。 f:id:FromAtom:20150727103347j:plain

HPで見た通り、おしゃれな店内。猫が遊べるステップもたくさんあります。

f:id:FromAtom:20150727201254p:plain

階段でもくつろいでるので、うっかり踏まないように注意。

f:id:FromAtom:20150727111019j:plain

1階にもスペースがあって、とてもおしゃれ。350円でフリードリンクがついてきて、漫画もある。猫カフェカフェ部分がしっかりしてて良い。

f:id:FromAtom:20150727104639j:plain

テーブルには穴が開いていて、ドリンクをさしておけます。安心。

f:id:FromAtom:20150727104903j:plain

さらに、電源まで完備されているので、Wi-Fiの準備さえしていけば1日中猫と戯れながら仕事ができます。天国は渋谷にあったんや!

猫達の様子

気持ちよさそうに寝てる子もいれば。

f:id:FromAtom:20150727114703j:plain

キャットツリーで見張りをしてたり。

f:id:FromAtom:20150727115130j:plain

f:id:FromAtom:20150727113935j:plain

睨みを効かせている。

f:id:FromAtom:20150727113203j:plain

廊下でだらだらしてる子も居ます。

f:id:FromAtom:20150727111948j:plain

\なんすか/ f:id:FromAtom:20150727111834j:plain

全体的に白くてもふわぁとした子が多いイメージでした。珍しいね。

f:id:FromAtom:20150727110929j:plain

どの子もおとなしく、ちゃんとしたステップを踏めばおさわり自由です。 うへへ、ここがええのんか……!

www.youtube.com

ごはんタイム

なんといってもお楽しみはごはんタイム!カフェ内の猫が勢揃いして「カリカカリカリカリ……」と一心不乱に食べています。

www.youtube.com

ごはんタイムは10:30と19:30にあるので、狙って行くのをおすすめします。

うちの子

とはいえ、一番かわいいのはうちの猫氏なんですけどね(親バカ)

f:id:FromAtom:20150727143401j:plain

www.youtube.com

Swiftで正規表現を使ってグループ化(カッコで囲んだ部分を取り出す奴)をする

毎回ググっててつらいので、メモ代わりに書いておく。ちなみに、rubyだとこうやって書くやつ。

str = '123123/456456'
regex = /([0-9]+)\/([0-9]+)/
result = str.match(regex)

p result[0] #=> "123123/456456"
p result[1] #=> "123123"
p result[2] #=> "456456"

Swiftだとなんかちょっと大変になる。他に良い書き方とかあるんですかね。

let string: String = "123123/456456"
let pattern = "([0-9]+)/([0-9]+)$"
if let regex = NSRegularExpression(pattern: pattern, options: nil, error: nil) {
    if let result: NSTextCheckingResult = regex.firstMatchInString(string, options: nil, range: NSMakeRange(0, string.length)) {
        let nsString: NSString = string as NSString
        
        println(nsString.substringWithRange(result.rangeAtIndex(0))) // => 123123/456456
        println(nsString.substringWithRange(result.rangeAtIndex(1))) // => 123123
        println(nsString.substringWithRange(result.rangeAtIndex(2))) // => 456456
    }
}

夏服を買いに行く服が無かったのでtmixでTシャツを買った。

 エンジニアたるもの、服を買うためにわざわざ外に出たくない。最近の東京は雨が続いて靴は濡れるし、電車に乗ろうものなら不快指数がメータを振りきって、うっかり飛び込み自殺して運転見合わせをキメてしまいかねない。そんな不快な環境を乗り越えて服を買いに行くぐらいなら、クーラーの効いた室内でプログラミングをしていたほうが何倍も楽しいし快適だ。しかし、服が無いと会社に行けない。残念ながら弊社には「着る服が無い為」という理由で、遅刻や欠勤ができるシステムが整っていない。

 そんなわけでインターネットで買う。インターネットにはTシャツを買えるサービスがいくつかあって、オリジナルで作ることもできる。せっかくなので、なんだかんだお世話になってるtmixで夏用のオリジナルTシャツを作った。tmixでは研究室用にオリジナルポロシャツを作った実績もあるので、安心して買える。ついでに、1着から送料が無料だから便利。

NULL POINTER EXCEPTION

 まずは自分で素材を用意した方、適当にアップロードしてブラウザで作れば良いので楽。

f:id:FromAtom:20150708090512j:plain

 自らがぬるぽになることによって、バグを寄せ付けない。まさにワールド・ウォーZ

f:id:FromAtom:20150708090604j:plain

 同じデザインのものはここから買えます。僕には一銭も入らないので、嫌儲の人も安心して買って欲しい。

tmix.jp

寿司を与えると働きます。

 寿司食べたいから作った。

f:id:FromAtom:20150709204144j:plain

 圧倒的圧力で上長に寿司を奢らせることができそう。このTシャツで使ってる素材(寿司)は、全部tmixにデフォルトで用意されていて、編集用の画面(古き良きFlash製)で適当に素材を選んで配置すれば良い。文字もかわいいフォントがあったので、それを使ってる。

 これには猫氏も大喜び。布を広げると匂いを嗅ぎに来るので、とにかく撮影が大変。

f:id:FromAtom:20150709204545j:plain

 同じデザインのものはここから買えます。なんども書くけど僕には一銭も入らないので、嫌儲の人も安心して買って欲しい。儲かるのはtmixだけだ。

tmix.jp

余談

 寿司を与えると働きます。Tシャツを着て出社したら、みんな寿司が食べたくなって寿司頼んだ。寿司は旨い。

f:id:FromAtom:20150710205603j:plain

我が家の愛猫写真をTumblrで管理し始めました。

あっという間に大きくなったうちの猫氏の成長記録として、写真をTumblrに投稿していくことにしました。

http://shijimi-cat.tumblr.com/post/121763920704
http://shijimi-cat.tumblr.com/post/121829301779
http://shijimi-cat.tumblr.com/post/121764990264

よろしければ、しじみ生活をフォローして、我が家の猫氏の活躍を見守ってみて下さい。

オフィスシューズとしてのダンヒル

ダンヒルというオフィスシューズをご存知ですか?

そう、便所サンダルです。

@RinkeiHotManが使っていて「便所じゃん」と馬鹿にしていたのですが、自分が使っていた貧弱なスリッパが次々と破壊されていく中、ダンヒルは無傷で彼の足を守っていました。

そして僕は貧弱なスリッパを脱ぎ捨て、Amazonでポチったのです。ダンヒルを。

f:id:FromAtom:20150617114337j:plain

名前を書いても面白く無いので、猫と豚を描きました。「渋谷区民センター」とか書いておくと、話のネタになりそうです。

良さ

履き心地

肝心の履き心地ですが、最初のうちは違和感を感じましたが、半日ほどたつと実に足に馴染むようになりました。馴染む、実に馴染むぞ。

安心感

なんといっても安心感が違います。そこらへんの軟弱な布製のペラペラしたシャレオツスリッパとは耐久性が違います。どれだけ粗末に扱ってもゴムの弾力がその全てを吸収します。

清潔感

布製のスリッパは、足の汗をじょぼじょぼ吸い込んでしまうので、どんどん臭く汚くなります。一方ダンヒルのサンダルはゴムなのでその心配はありません。ゴムでも劣化により吸水するようになることは学校で習ったと思いますが、布はその頃には死んでます。(参考文献:http://www.shasej.org/gakkaishi/0601/0601_kouza.pdf

見た目

便所サンダルです。しかしチェックシャツ、企業ロゴが入ったTシャツ、もしくはパーカーのみを着用するエンジニアにとって、見た目は瑣末な問題です。

まとめ

機能性は完璧ですが、見た目は便所サンダルです。