DRYな備忘録

Don't Repeat Yourself.

個人開発程度のOCRサーバならHerokuに立てればいいじゃない

このエントリはGo (その2) Advent Calendar 2016 - Qiitaの5日目です。WETな方でもお世話になっております、otiai10です。 とある個人開発が、もうかれこれ3年ぐらい続いているんですが、ブラウザ上に描画されたちょっとしたテキストをOCR(文字認識)する要…

Dockerでホストのファイルをコンテナに持って行くメモ

というか、マウントである。 メモ まず入って出れることだけ確認。--rmで終了時にコンテナも抹消する。 % uname Darwin % docker run -i -t --rm library/ubuntu root@7f3902552705:/# uname Linux root@7f3902552705:/# exit exit % docker ps -a CONTAINER…

UITableViewの左にある謎の余白を消したい

やることは3つ UITableViewのseparatorInsetをゼロにする これはインターフェースビルダーからでも変更可能 UITableViewCellのlayoutMarginsをゼロにする UITableViewCellのpreservesSuperviewLayoutMarginsを無効にする func viewDidLoad() { super.viewDid…

Tesseract-OCRをソースからコンパイルする

コンパイルして、共有ライブラリとして読み込まれる.soファイルをつくれることを確認したい。APIファイル(.hとか)はReleases · tesseract-ocr/tesseract · GitHubを解凍すれば同梱されてる。ついでに同環境下でそのTesseract-OCRがちゃんと動くことも確認…

Dockerで雑に使い捨て開発環境つくる個人的なメモ

たとえば、Macでdocker-machine使ってて、debianの環境が手っ取り早くほしい。 % docker-machine create -d virtualbox foobar % eval $(docker-machine env foobar) % docker run -i -t --rm library/debian -i -t この端末のstdin/stdoutでsshする --rm コ…

herokuで自作buildpackを作った時に得た知見

かつてこれ↓を書いたときからまたHerokuは状況が変わってて、 otiai10.hatenablog.com 今では、buildpackっていう、いうなればインスタンスの初期化スクリプトみたいなのを定義できるっぽい。そこで依存するパッケージのインストール(に相当すること)も可…

RubyのtimesみたいなやつをSwiftでやりたい

count = 5 count.times.map { |i| i * i } # => [0, 1, 4, 9, 16] let count = 5 [Int](0..<count).map { $0 * $0 } // => [0, 1, 4, 9, 16] こうすか、しらんけど</count).map>

How to install gosseract to CentOS 7

What is this document for? "gosseract" is a Tesseract-OCR wrapper for Golang, and this document is for an issue reported to "gosseract" github.com Reproduce the issue Set up environment for simulating CentOS # because I'm using MacOS % doc…

【iOS】プロジェクト内に配置したjsonファイルの内容をSwiftyJSONで取得する

let filepath = NSBundle.mainBundle().pathForResource("message", ofType:"json") // 1. Resourcesっていうグループ(と物理ディレクトリ)作ってるけど、ファイル名だけでよい // 2. 返り値はnullable(String?)なので注意 let data = NSData(contentsOf…

【Go言語】GoでJWT(JSON Web Token)を使うサンプル

参考 JSON Web Tokens - jwt.io GitHub - dgrijalva/jwt-go: Golang implementation of JSON Web Tokens (JWT) jwt - GoDoc GitHub - slok/go-jwt-example: Golang & jwt (Jason web token) example ← なんかこれ今時点で動かなかったので package main impo…

【iOS】StackViewで子供のViewを3分の1幅にしたい【AutoLayout】

ゴール StackView(やAutoLayout)を使っていて、1/3分割にしたいときがある Multiplierに整数や小数は入れたことあるけど、分数(無限分数)はどうやって入れるんだ? 調査 stackoverflow.com 解決 StackViewで3分の1ってどうやるんだろと思ったら「1:3」(…

【Xcode】あると思うんだけどno matching provisioning profiles foundとか言われる

stackoverflow.com Preference Accounts View Details 今あるやつ全部捨てる(右クリック) Xcodeを殺す(← ここ重要) 再起動 Preference > Accounts > View Details で、「Download All」

Fabric/Crashlyticsで同プロジェクトの別bundle identifierのアプリを追加する

twittercommunity.com Xcodeにおいてbundle identifierを変更する Fabricデスクトップアプリにおいて「+ New App」というボタンがあるのでクリック 同プロジェクトを選択する チュートリアルが始まるが、だいたいのことは済んでるので、⌘+Bとか適当にしてチ…

【iOS】画面の向き(Orientation)を特定のページのみで制限したり許可したりしたい【supportedInterfaceOrientations】

ゴール たとえば 基本的にPortrait(縦向き)のみに制限したいんだけど、特定の画面だけではLandscape(横向き)を許可したい 特定のViewで、強制的に向きを変えることはできる けど、これは向きを変えるだけであって、ふたたび端末をぐるっとすると縦向きに…

【Go言語】ローカルのGoの(継続的な)バージョンアップ【go1.7】

go

なんかいつの間にこんなrepoあったの go - Git at Google git clone https://go.googlesource.com/go とりあえず現状確認 % go version go version go1.6.2 darwin/amd64 % echo $GOROOT /Users/otiai10/.go/1.6.2 % ls /Users/otiai10/.go 1.4.3 1.5.3 1.6.2…

SwfitでTableViewをつかってかっこいいフィードを実装するときに習得したことまとめ

いかんせんスケジュールがギリギリだったので、個別にエントリ書くのは無理でした TableView TableViewの各Rowの高さを指定したい tableView.rowHeight swiftでtableViewの高さを変更する - Qiita TableViewのボーダーを消したい tableView.separatorStyle =…

なにもしてないのにXcodeがこわれた: An error was encountered while running (Domain = LaunchServicesError, Code = 0)

ios - Unable to run app in Simulator: An error was encountered while running (Domain = LaunchServicesError, Code = 0) - Stack Overflow ios - Installation Failed "Invalid argument" when trying to run Today application extension - Stack Over…

【追記】XCTAssertEqualが("foo bar") is not equal to ("foo bar")などと寝ぼけたことを言う【NSNumberFormatter】

問題 ("Optional("10,00 €")") is not equal to ("Optional("10,00 €")" とか言われてXCTAssertEqualがコケる。 調査 Optionalとか 文字列型のポインタを比較してEqualじゃないよとか そういうのを予想してたけど、どうやら違う printしてみた出力をアサーシ…

Angular2 on TypeScriptの最小構成をつくってHello Worldするまでのみちのり

2017/04/24 追記 Angular CLIを使わずにAngularを始める系の記事、もう古すぎるので参考にしないほうがいいです。 | Angular2 on TypeScriptの最小構成をつくってHello Worldするまでのみちのり https://t.co/XjZafjJ6u4— OKUNOKENTARO (@armorik83) April 2…

AlamofireとSwiftyJSONとSwiftTaskで、genericなprotocolを受ける汎用的なHTTPClientをつくりたい

iOS

問題 AlamofireとSwiftTaskで汎用的にレスポンスをモデルにデコードするようなHTTP Clientをつくりたい 特定のAPIエンドポイントのレスポンスをデコードするロジックは、各モデルにもたせたい SwiftJSONを受けて"何らかの"モデルにデコードするメソッドを持…

AlamofireでRequestのHeaderにContent-Type: application/jsonを追加したいのにいっこうに"text/plain"になってしまう問題

iOS

問題 そりゃ400だろ、って感じ。curl使って-H "Content-Type: application/json"ではちゃんとサーバからレスポンスあるのは確認済み。 やったこと1 : Alamofire.Manager.requestの第3引数にheadersを食わせる let headers = [ "Content-Type": "application…

cocoapodsでAlamofire入れようとしたらclang: error: linker command failed with exit code 1と叱られる

iOS

結論 % pod install Analyzing dependencies Downloading dependencies Installing Alamofire (3.4.1) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `unko.xcworkspace` for this project from…

diffとpatchのワンライナー

diff -u ./index.html ./public/index.html | git apply -R あてたいpatchはdiff -u ./public/index.html ./index.htmlなんだけど、そっちでやると変なエラー出る(雑)なので、逆にして-R食わせたら動いた。なぜに。 根本的にdiff & patchを理解できてない…

サーバからブラウザにプッシュ通知を送りたい(非WebSocket、非ロングポーリング)

追記 2017/06/19 このエントリで絶賛してる公式ドキュメントがいつの間にかすっげーわかりづらいものになってたので、あらためて自分でサンプル書いたやつがこちらです。 otiai10.hatenablog.com 以下原文 Progressive Web App Dev Summit っていうのがあっ…

v2とか作ってる別リポジトリをv1のリポジトリにマージっぽいことしたい

git

なんかv2っぽいものをゼロスクラッチで別リポジトリに書いてたけど、v1のリポジトリにわりとスターついてるし、page viewもあるのでゼロスクラッチだけど、最終的にはv1で、もちろんコミットログを上乗せした形で公開したいな、と。 参考 Is it possible to …

git logでコミットハッシュだけほしい

git

追記 @otiai10 git log --pretty=%H— はぇ~☆ (@haxe) 2016年6月14日 以下、読まなくていいです % git log --pretty=oneline 5df2e90cfca356707f58de15b0c45ed7ba2446bb いろいろあたらしいかんじに調整 f7caec1f173889c76fc9bc83eed350d930a1ec41 chomexは…

Androidエミューレータがスプラッシュ画面からいっこうに進まない

問題 Androidエミューレータがスプラッシュ画面を表示したままいっこうにアプリのビューを表示しない。さっきまで元気に動いていたのに←重要 調査 それっぽいものがみつからない 質問してみた git管理下じゃないディレクトリになんかキャッシュファイル的な…

Androidエミュレータが起動しない: Internal error: initial hax sync failed

問題 エミュレータが起動しない。さっきまで動いていたのに。←重要 エラー全文 /Users/otiai10/Library/Android/sdk/tools/emulator -avd ReactNativeTest emulator: WARNING: VM heap size set below hardware specified minimum of 256MB emulator: WARNIN…

Go言語でBasic認証する

go

参考 http - The Go Programming Language javascript - How to prevent browser to invoke basic auth popup and handle 401 error using Jquery? - Stack Overflow 実装 main.go package main import ( "fmt" "net/http" "github.com/otiai10/marmoset" ) …

ブラウザのJavaScriptからGoogle Cloud Vision APIを使うペライチのサンプル

わけあってJavaScriptの環境での画像認識とか文字認識とかに若干興味あるのでやってみた。 参考 Google Cloud Vision API | Google Cloud Vision API | Google Cloud Platform Method: images.annotate | Google Cloud Vision API | Google Cloud Platform h…