読者です 読者をやめる 読者になる 読者になる

文字っぽいの。

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

Sierraでgit pushやgit pullの時に毎回パスワードを聞かれるの対策

Keychainを使ってくれなくなって、地味に不便。 ~/.ssh/configに下記を記載しておけば良い。 Host * UseKeychain yes

株式会社はてなに入社しました

株式会社はてなに入社しました もう一年たったのかという気持ち 株式会社はてなに入社しました - hitode909の日記

Xcode8.2.1でRelease Buildすると"Compiling Swift source files"が無限に終わらない

環境 Xcode8.2.1 Swift3(Swift2.2から移行してきた) OSX El Capitan 起こること Debug Buildだと普通にビルドが通って、シミュレータでも実機でも動くし、アーカイブもできる。しかし、ReleaseフラグをつけてArchiveをしようとすると、Compiling Swift sou…

開発合宿で熱海に行って、サーバサイドSwiftでWebアプリを作りました。

fromatom.hatenablog.com これの旅行記です。熱海でもくもくとサーバサイドSwiftをいじって、Webアプリを作ってきました。 開発成果 見たい映画やアニメがどのサービスで配信しているか探せるWebアプリ『sansa』を作りました。 https://sansa-project.heroku…

マキタの掃除機を買いました。

前まで使っていた掃除機はNationalと書かれている古さで、重いし取り回しもしにくいしで大変だったので、マキタの掃除機を買った。ホテルやビルの清掃で使われてる掃除機というとわかりやすそう。 特徴 重量が1.1kgですごく軽い MBPの13インチより軽い バッ…

熱海に開発合宿に来ています。あの宿ではない。

遅めの正月休みが得られて、2週間弱休みがあったので、チームメンバーとかを雑に誘って2泊3日の開発合宿に来ている。開発合宿といえばという宿もあるんだけど、ネットでそこしか情報がないので手を抜いて脳死的にそこを選んでいる人が多そうだったし、 blog.…

Amazonプライムミュージックでアニソンジャズが聴けて便利

ニコニコ動画で作業用BGMをあさっていた人にはお馴染みなアレ。 アニソンのジャズアレンジなので、耳馴染みもありつつ落ち着いて作業ができる。 追記 カバー画像付きでおしゃれに貼ろうとしたら、CDのリンクだった。すまぬすまぬ。 こっちがAmazonプライムミ…

サーバサイドSwift を Heroku にデプロイする with Kitura

はじめに この記事では Swift 3.0.2 Swift Package Manager Kitura を利用して、Heroku上で簡単なサーバを動作させる手順を記載します。 Swift PMを使ってプロジェクトをセットアップ まずは、最新版のXcode8.2をインストールしましょう。その後はシェル上で…

仕事机の様子

入社して2年目で、もうちょっとしたら3年目になる。時間が進むに連れてオフィスのデスクもカスタマイズされてきたので、備忘録も兼ねて書いておく。 PC MacBook Pro (Retina, 13-inch, Early 2015) を使ってる。Touch Barついた新しいモデルが欲しいけど、ス…

丸亀製麺の生ビール飲み放題に来てる

今6分過ぎてるところでビール2杯目です。これで1000円ってのは良さしかない。 参考 ASCII.jp:丸亀製麺1000円飲み放題セットがコスパ最強|寅年生まれ肉食ナベコの「なんでも食べてみる」

Swiftで与えられたIndexがArrayのindex有効範囲内にあるか確認する

こんな感じ。 let array = [2,3,5,6,9,10] let index = 0 if 0..

エンジニア立ち居振舞い:なんでもかんでも技術で解決しない

お題「エンジニア立ち居振舞い」 面白そうなので便乗する。 だいたい表題通りで、エンジニアはエンジニアリングができてしまうので、エンジニアリング(技術)で解決できる or できないの視点で見がち。 自動化とかスケールするかとかの話も好きなので、自動…

Swift3でCornerRadiusが効かない、というか崩れて背景色がおかしくなる。

UITableViewCellの中でよくやってた、 override func layoutSubviews() { super.layoutSubviews() someView.layer.cornerRadius = someView.frame.height / 2.0 someView.clipsToBounds = true } という書き方だとはViewが崩れたり、角丸にならなかったり、…

Swift3でオブジェクトのシリアライズ・デシリアライズがうまくいかなくなった問題の対処

いままではこんなふう required init?(coder aDecoder: NSCoder)に書いていた。 guard let id = aDecoder.decodeObject(forKey: "id") as? Int else { // なんかする return } Swift3 & Xcode8環境下では、idにずっとnilが返ってきて、デシリアライズができ…

iOS10でUIToolBarが半透明じゃなくなる問題対策

ここ読んだら書いてあった、 iOS 10 GM Seed Release Notes.pages ios - How to draw a transparent UIToolbar or UINavigationBar in iOS7 - Stack Overflow # swift3 toolbar.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .defau…

Swiftで配列の一番最後のIndexをおしゃれにとる

毎回忘れてTwilog見に行ってるので書いておく。 let array: [Int] = [1, 2, 3, 4, 5] let lastIndex = array.endIndex.predecessor() print(lastIndex) // => 4 @FromAtom あ,それで合ってます.添字に使いたかったら `array.endIndex.predecessor()` とす…

gitのpre-commitで、変更のある"*.swift"ファイルだけSwiftLintをかける。

題名の通り。git commitにHookして、変更がある*.swiftファイルにのみLintをかける。Lintでコケたらcommitされなくて便利。 #!/usr/bin/env ruby require 'yaml' LINT_CONFIG_FILE_NAME = '.swiftlint.yml' updated_swiftfiles = `git diff --cached --name-…

Swiftのコードレビュー勘所

はじめに Swift with iOSなコードをレビューする時に僕が気をつけて見ているところをざっくりまとめました 今年からSwift始めます!って人が読めばクラッシュしやすいコードを書きにくくなるはず ロジック面についてもちゃんと確認しましょう 勘所 AnyObject…

ターミナルから音速でXcodeプロジェクトを開く

iOS開発をしていると、*.xcworkspaceや*.xcodeprojをよく開きます。Xcodeはよく落ちるし調子が悪くなると再起動しないといけないので、1日に何度も開いたりします。 最弱 $ cd ios-project $ open . # おもむろにクリック 弱い $ cd ios-project $ ls # ディ…

『ライアン・マッギンレー BODY LOUD!』を観に行った。

オペラシティで開催されている、『ライアン・マッギンレー BODY LOUD !|東京オペラシティアートギャラリー』を観に行ってきた。 写真撮影可能だったので、気に入ったのを撮った。 GW後の土日ということもあり、あまり人もいなくて良かった。特にこのインス…

健康を確認した。

健康診断の結果が返ってきた。 オールAで圧倒的健康。 社会人になって美味いもの食いまくって、ビール飲みまくったので、痛風になるんじゃないかとヒヤヒヤしていたけど尿酸値も正常だった。これからもジャブジャブビール飲むぞ!!!

「これバグじゃね?」で始めるコミュニケーションはやめよう。

バグを見つけて教えてくれるのは嬉しいしありがたい。ユーザの体験損失や脆弱性を防ぐことができて良い。これは何にも勝る絶対的な真理である。 しかし、なにか変な挙動を見つけた時に脊髄反射的に「これバグじゃね?」と言うのは良くない。この発言はただの…

自転車パクられたけどチームメンバーにプレゼントしてもらった。

2015年10月、僕は自転車をパクられた。スーパーで買い物している時に、鍵をかけてなかったので窃盗犯にとってはとてもありがたい状態だったであろう。「鍵かけてないのが悪い」という意見もあると思うが、自転車をパクった奴が悪いのである。「痴漢されるの…

株式会社はてなに入社しました

株式会社はてなに入社しました 桜の開花とともに、年度の始まりを感じます。 株式会社はてなに入社しました - hitode909の日記

明日から新社会人になる方へ贈るたったひとつの冴えたアドバイス

立替金の申請を忘れてはならぬ。

XcodeでiOS開発を始める前にしておくと便利な準備

デバイス接続時にPhoto.appを起動しないようにする バグ検証時に検証機ではなく、個人のiPhoneを接続することがたまにありますが、便利なことにPhoto.appが起動して、他人の写真が見放題です。「あぁ!すいませんすいません!」と焦って⌘Qを連打する前に、そ…

爆速でiOSアプリのカラー設定をするための`extension`と`enum`

アプリを爆速で作りたい時に、最も時間を浪費するのが色の指定です。StoryBoard上で設定してしまうと、あとから調整をしたい場合、複数ある画面全てを渡り歩いて、丁寧な手作業で色をポチポチしていく必要があります。また、UIColorを使う場合でも、設定があ…

Swiftの"[weak self]"にアクセスする時に"if let weakSelf = self"とか"self?"を書きたくない人へ

今まで 大体の場合、 Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { [weak self] response in guard let weakSelf = self else { return } // do something... weakSelf.tableView.reloadData() } とか A…

enumオモシロ記法

Swiftで色やフォントを管理するのにはenumを使うのが大変便利ですよね。次の例は流石に雑ですが、だいたいこんな感じで管理してると思います。 import UIKit enum Colors { case black case white func color() -> UIColor { switch self { case black: retu…

「師弟登壇2015」でpixivの新卒研修について話してきました。

GMOペパボさんが主催、クックパッドさんに会場提供していただいた『師弟登壇2015』に師弟として登壇してきました。 pepabo.connpass.com pixivの新卒研修はざっくりと、 業務知識・スキルを学ぶ:7日 ビジネスマナーを学ぶ:2日 会社の理念を学ぶ:3日 会社…

Swift2.0のprotocol extension試してたら'Segmentetion fault: 11'でてハマった。

書いたコード protocol Test { var x: CGFloat { get set } var y: CGFloat { get set } func setPoint(point: CGPoint) } extension Test { mutating func setPoint(point: CGPoint) { x = point.x y = point.y } } struct test: Test { var x: CGFloat = 0…

SwiftでURLのQueryをDictionaryにパースする

前提 swift2.1 functionを定義する方法 func generateDictionalyFromUrlComponents(components: NSURLComponents) -> [String : String] { var fragments: [String : String] = [:] guard let items = components.queryItems else { return fragments } for …

『日本Web技術界隈著名人の残念さ具合』について僕が知っていること

日本Web技術界隈著名人の残念さ具合 - thinkchangの日々日誌thinkchang.hatenablog.com こちらのエントリーが流行っております。この記事を素早く見つけてブックマークした人達を見てみましょう。 日本Web技術界隈著名人の残念さ具合 - thinkchangの日々日誌…

SwiftでUIActivityController(シェアシート)に独自のUIActivityを実装する。

シェアシート内のこれら。 こっちの灰色な方を独自実装する方法。Tumblrだと不適切としてフラグを付けるが、ここに独自で作られて入ってる。そんなUIActivityをSwiftで実装する方法。 まず、UIActivityを継承したクラスを作って、いくつかのメソッドをオーバ…

スプラトゥーン公式TwitterのつぶやきをSlackに投げるIFTTTレシピ作った。

つくった。 ifttt.com こんな感じでSlackに飛んでくる IFTTTの仕様で最大で15分位遅延するけど、毎回手作業でURLコピーして「こんなんでたよ」とするより楽で良い。ぜひご利用下さい。

Slackのカスタム絵文字に『イカモドキ』を使うとイカした感じになる

フリーフォント「イカモドキ」 | あらむぎ というフリーフォントがあります。これを使って、絵文字を作るとこんな感じになります。 Slackの絵文字に文字を入れるとだいたい見難くなるんですが、イカモドキを使うとめちゃくちゃ視認性が良くて、大変イカして…

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

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

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

前提 Xcode 6.4 Swift CocoaPods 0.38.2 エラー シミュレータでは動くのに、実機に転送して起動するとこういうエラーが出て落ちる。そして、SwiftyJSONのバージョンは1.0.0じゃない。 dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON Ref…

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

猫を飼い始めてはや4ヶ月、猫カフェに行く機会も減ってきたけれど、新しい猫カフェが渋谷にオープンしたと聞いて馳せ参じました。 猫と遊べるお店 | 猫カフェ MoCHA(モカ)catmocha.jp お値段は10分200円。まだフリータイムとかは無さそう。2時間で2400円く…

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] #=> …

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

エンジニアたるもの、服を買うためにわざわざ外に出たくない。最近の東京は雨が続いて靴は濡れるし、電車に乗ろうものなら不快指数がメータを振りきって、うっかり飛び込み自殺して運転見合わせをキメてしまいかねない。そんな不快な環境を乗り越えて服を買…

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

あっという間に大きくなったうちの猫氏の成長記録として、写真をTumblrに投稿していくことにしました。 http://shijimi-cat.tumblr.com/post/121763920704 http://shijimi-cat.tumblr.com/post/121829301779 http://shijimi-cat.tumblr.com/post/121764990264…

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

ダンヒルというオフィスシューズをご存知ですか? そう、便所サンダルです。 VIC510GRM 抗菌衛生紳士サンダル ダンヒルNo.510 ゴールデンロッド (L)メディア: ウェア&シューズこの商品を含むブログを見る @RinkeiHotManが使っていて「便所じゃん」と馬鹿にし…

古いデパートの案内板が好き

ひと昔前のデパートに行くと、不思議なフォントや送り仮名で看板がある。僕はこういう看板をみるといい気持ちになる。 最近の案内板はスタイリッシュ極めすぎて、とにかくthinでサンセリフなものばかりで、確かにかっこいい。 そういうのばっか見ていると、…

CoffeeSctiptの便利記法教えてもらった

Hubotのコードを書いてる時に、今まではこうやって書いてた。 name = msg.message.user.name room = msg.message.user.room これがこうなる。この時にnameとroomはどんな名前でもいいわけじゃないので注意。 {name} = msg.message.user {room} = msg.message…

Kindleの50%ポイント還元セールだったので、気になってた漫画買った。

経緯 kindle 50%セールで大量購入してしまった - $shibayu36->blog;blog.shibayu36.org Kindle半額還元セールに踊らされて買ったマンガ一覧 - ぱすたけ日記pastak-diary.hatenadiary.com Kindle 50%還元セールで買った漫画 - パルカワ2hisaichi5518.hatenabl…

猫を飼い始めました。

新しい家族 猫がデプロイされました。スペックはこちら。 名前:しじみ 性別:♀ 年齢:生後2ヶ月位 名前、もずくと悩んだけど「しじみ」になりました。 飼い始めてみて 猫を飼いたい人、「できれば猫が飼えると嬉しいなぁ。」とかぼんやり思ってたら絶対に飼…

Swiftのバージョンを確認する。

Version 1.2が出ましたね。ちゃんとアップデートされたか確認したいときは、ターミナルで $ swift -version と叩けばよいです。 Apple Swift version 1.2 (swiftlang-602.0.49.3 clang-clang-602.0.49) Target: x86_64-apple-darwin14.3.0 とか表示されます…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記 This is 春の風物詩

DOCOMOの音声合成APIとRaspberry Piで換気の時間をアナウンスする

はじめに 研究室は多くの人間が共同生活を送っています。そして人間は呼吸をします。よって、特に窓もドアも閉めきっている冬場は、すぐに酸欠になります。暖かさと二酸化炭素濃度の上昇により、眠くなってしまう事も多いです。これは、こたつがあるせいだと…