まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

Google Apps scriptでインデント整理する方法

Tabを押すと勝手になる。逆に無駄なタブは打てない。全選択してTabでいける。

Play FrameworkのRequest.remoteAddressの値が突然変わった

現象 あるサービスの仕組みで処理結果を通知してくるために、自サーバーのapiをたたきにくるときがある。この際に、サーバー側では本当にそのサービスからのリクエストかどうかをみるために、あらかじめIPアドレスを設定しておいてvalidateしてるが、あるリ…

シェルでslackにcurlしたときinvalid_payloadになる

payloadのなかに&が入ってたから。%26って書かないといけなかった。

sh経由で実行するとeオプションつけてても途中で終了しない

sh

Jenkinsのシェルの実行で#!/bin/sh -xeってつけて途中でエラーが起きたらその時点で、 jobをfailureにするっていうのはよくあると思うんですが、 そのなかで、sh hoge.shみたいに別のshを起動すると、 hoge.shの中でエラーがあったときに、eオプションつけて…

sbt testが途中で止まってしまうのを調査する

状況 という状態になってしまって困った。sbtがグローバルで利用するsbtoptsもプロジェクト共通で指定してるやつがあって他の人は問題なさそうとのこと。ただ、OutOfMemoryなのでJVMのステータスみたいのが見たいと思って調べ始めた。 :dancers: JVMのパフォ…

scala.PartialFunction condOpt を使おう

同僚に教えて貰った。 scala.PartialFunction condOpt を使おうに書いてあるサンプルを見るとわかる。 ポイントは match式を使っていて そのmatch式の戻り値の型がOption 先頭からmatchさせていったとき、一番最後以外のmatchした場合については、明示的にSo…

ScalaでHTTPクライアントのライブラリは何を使えばいいのかと思ってAkkaを調べる

scalaのhttpクライアント 今までPlayしかやったことないからWSしか知らなくて、Playじゃないやつでhttpクライアント的なライブラリって何を使えばいいんだろうってのがスタート。Comparing Scala's HTTP client libraries - implicitdefとか見てdispatchって…

Xcode上でImplicit declaration of function 'notify_cancel' is invalid in C99 でハマった

iOS

Pureeをcocoapodsで導入しようとしてたら Pureeが依存してるYapDatabaseというやつがCocoaLumberjackに依存してて、CocoaLumberjackのところでタイトルのエラーが出た。 Implicit declaration of function 'notify_cancel' is invalid in C99 notify_cancel…

役割を明確化すると働きやすいなと感じた

今まで 入社して開発メンバーとして仕事をしてきて、いつのまにかチームリーダー的な役割になった。 スケジュール間に合うかベロシティを計測したり、やることがなくならないようにタスクを検討したり、新卒メンバーの受け入れをやったり、ミーティングの調…

elasticsearchのindicesとindex

indiceとindexってどう違うか分からなくてなぜかindiceはindexの親概念かなと勘違いしてしまっていて、かなり混乱してたけど、indice 意味 で、検索したらそもそも同義語だった… kibanaで見る場合はアスタリスクとか使ってどうせ複数のindexをまとめて見るこ…

fluentdのDockerfileの書き方がちょっと変わってた

ubuntuが16.04になってた これが一番大きな原因。 ubuntu 16.04が2016/4にリリースされてて、今Dockerhubのubuntuのlatestは16.04になってる。ちなみに、コードネームは「Xenial Xerus(ジーニアル ジリス)」で『おもてなしのアラゲジリス』 https://hub.do…

airbrake-logbackを非同期化することができなかった

背景 Logbackとは Logback は巷で大人気の log4j プロジェクトの後継プロジェクト java製のデファクトっぽいロギングライブラリ Airbrakeとは 商用のエラートラッキングシステム Errbitとは AirbrakeのOSSクローン airbrake-logbackとは logback はロギング…

deis上にhubotをデプロイする

hubot作成 https://hubot.github.com/docs/に従って、yo hubotでhubot作成 adapterはslack Procfileは削除して、Dockerfileを Docker + Yeoman + Hubot + Slack で簡単bot作成 参考にして書く FROM node:latest RUN mkdir /bot && cd /bot ADD . /bot WORKDI…

Future.sequenceは1つずつ順番に実行される訳じゃない

sequenceっていう名前からどうしても順序を意識してしまって順番に(直列に)実行されるものだと思っていた。 でもそうじゃなかった。 Future.applyの場合 ためしに、こんな処理を書いてみる。1から10までを1s待って出力するだけのやつ。 def process: Futur…

MySQLで全く関係のないテーブルをJOINする

FROMでカンマで並べるだけ SELECT * FROM A, B; 例えばゲームみたいなやつで、usersテーブルと、levelsテーブルがあって、usersとlevelsには何の関係もないけど、user一人一人に全レベルを結合したいみたいなとき。 SELECT users.name, levels.level FROM us…

パイプしたときにlessコマンドでエスケープシーケンスの色表示を有効にする

sh

例えば、$ docker logs hoge みたいな感じでログを見たいけど長くて画面におさまらないから、パイプしてlessに渡したいけどそうすると、色が出ないのでなんかないかなと思ったらあった。 -R をつければOK $ docker logs hoge | less -R

golangでコマンドラインツールを作る #9 Compositeパターン

Go

その8の続き mpon/xgodeproj PBXGroup Xcodeは実際のファイル構造じゃなくて好きな構造で表示できる。例えば実際のファイルは全部一つのフォルダに入ってたとしても、階層構造の表示できる。それを表現してるsectionがPBXGroup。で、PBXGroupはchildrenを持…

golangでコマンドラインツールを作る #8 ディレクトリを分けてリファクタする

Go

その7の続き mpon/xgodeproj パッケージの分けかた ファイル分けて処理を関数色々書いたけど、同じ名前にするとduplicateになる。 goの場合はpackageという概念があって、その中では同じ定義になるようだ。 ということで、別パッケージに分けようとしたら、…

golangでコマンドラインツールを作る #7 ある拡張子のファイルを検索する

Go

その6の続き mpon/xgodeproj project.pbxprojを探す 今はコマンドの引数でファイルを指定してる。でも、本当はproject.pbxprojって、xcodeprojの下にあるって決まってる。 なので、何も指定しなくても、コマンド実行ディレクトリ配下を再帰的に辿ってそれで…

golangでコマンドラインツールを作る #6 interface{}をstructにマッピングする

Go

その5の続き mpon/xgodeproj PBXFileReference isaが特定できるようになったので、どれか一つのisaのjsonをパースしてみる。 例えば、なんのファイルがあるかのisaはPBXFileReferenceでこれは必ずこういう形をしてる。(※進めていくうちに気づいたけどしてな…

golangでコマンドラインツールを作る #5 配列をまとめる

Go

その4の続き mpon/xgodeproj セクション名をまとめて表示する READMEにこうなってほしいコマンドを先に書いた。 とりあえずどんなセクションがあるかは見たいかなと思ったので、 xgodeproj show project.pbxprojってやったらセクション名一覧が表示されると…

golangでコマンドラインツールを作る #4 ファイルをパースする

Go

その3の続き mpon/xgodeproj project.pbxprojのファイル形式 さて、どうやってパースしようかと考えて中身を見てみると key = valueの形でなんか何かの形式っぽいんだけど、 拡張子が変なやつだからXcode特有かと思ったらそうじゃなかった。 how to parse pr…

golangでコマンドラインツールを作る #3 ファイルの中身を読み込む

Go

その2の続きです。 mpon/xgodeproj ひとまずファイルを読み込んでみよう 中身をパースとかの前にとにかくファイルが読み込めないといけない。 それっぽい記事を探す。インターネットすごい。 Go でファイルを1行ずつ読み込む(csv ファイルも) - Qiita ふむ…

golangでコマンドラインツールを作る #2 ビルドしてコマンドを実行する

Go

その1の続きです。 mpon/xgodeproj 開発環境 早速開発してみる。まずは、開発環境を何にするか問題。 IDEはちょっと大変かなってことでatomでやってる人もいそうなので、それでやってみる。 ATOMでGolangの環境設定 - Qiita を参考にとにかく入れてみる。go-…

golangでコマンドラインツールを作る #1 gcliをインストールする

Go

なぜ作ろうと思ったか Go Tourは昔ちょっとやったことあったけどほとんど覚えてないってレベル。でも、これで発表することになったからやるぞってなった。 Kyobashi.go #1 - connpass んで、題材が思いつかなかったけど最近iOSでxcodeproj/project.pbxprojが…

Swift1.2でenumにジェネリクス使ってその型を束縛できないって言ってるやつの意味が分かった

少し前のことだけど、今のプロジェクトが始まった頃にコード書いてて理解できたのでメモ。 ジェネリクスがない場合 成功か失敗か返すのにEnumを作るとしてジェネリクスがないとこうなっちゃう。 enum Result { case Success(AnyObject) case Failure(NSError…

SwiftでClassを作るときにNSObjectを継承するべき?

どっちを採用するべき? class Animal {} // or class Animal: NSObject {} こっちのにしておけばとりあえず間違いないとか、こっちを使うとこんな時に困るとかそういう指針が知りたい。 よさそうな回答 Swift native base class or NSObjectstackoverflow.c…

実プロジェクトにおけるSwiftっぽい書き方集が欲しい

勉強会とか開かれないかなー。こんなのを知りたい。自分用メモ。 UITableViewのDataSource、DelegateをジェネリクスでSwiftっぽく分離する。 UITableViewのSectionをEnumでうまいこと扱う Structの使いどころ Protocolの使いどころ カテゴリ拡張をProtocol E…

Swiftでprivateメソッドのユニットテストをどうするか

こんな話は何年も前から語られてて答えも出てると思うけど、色々な意見を聞いて自分の考えが少しずつまとまってきたので残しておく。 聞いた意見 publicメソッドをテストすればprivateメソッドのテストも行われていることになる リフレクションやモックなど…

Swiftでreduceを使ってArrayからDictionaryを作る方法

how to convert array to dictionary swiftとかでググってもあんまでてこないから書いた。 以下、Qiitaに書いたやつ。 Swiftでreduceを使ってArrayからDictionaryを作る方法 - Qiitaqiita.com