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

DRYな備忘録

Don't Repeat Yourself.

RedHatにGo言語をインストール(というか配置)

$ cd $ mkdir -p opt/src $ cd opt/src $ wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz $ tar zxvf go1.8.1.linux-amd64.tar.gz $ mv go ~/opt/.go # GOROOT用 $ mkdir -p ~/proj/go # GOPATH用 $ export GOROOT=~/opt/.go $ exp…

Macにsamtoolsをインストール

ゴール macOS Sierra上でsamtoolsコマンドが使える 参考 samtools を使って bam/sam を操作する | Tips for NGS Data Analysis Samtools ログ % cd % mkdir opt % mkdir opt/src % cd opt/src % wget https://github.com/samtools/htslib/releases/download/…

RustをMacにインストールしてHelloWorldとFizzBuzz

Rust、話題なので、やってみる。ミーハーなので。 brew install rust % brew install rust % rustc -V rustc 1.16.0 % cargo -V cargo-0.17.0-dev (f9e5481 2017-03-03) Hello, Rust! % cd % mkdir -p proj/rust/playground/hello % cd proj/rust/playground…

webpackのプロジェクトでWebWorker書いててつまずいたメモ

まずnew Worker(“./my/worker”) というやつ Workerのコンストラクタにファイルパスを渡すやつからしてwebpackだとどう解決されるのか問題。 worker-loader - npm webpack/webpack.config.js at master · webpack/webpack · GitHub 以上を参考にして、まず np…

react-routerでページを共通Layoutに乗せたりログイン画面は乗せなかったりするルーティングの設定

import React from 'react'; import ReactDOM from 'react-dom' import {Router, Routes, browserHistory} from 'react-router'; import {MyFancyLayout} from '../../layouts'; import { LoginPage, // これと HomePage, SettingPage, NotFoundPage, // こ…

Draft.jsを使ってContentEditableなdivに絵文字をレンダリングしつつ編集可能にする

ぜったいなんかやり方あるだろと思いつつなかなか見つからなくてググり続けたりして6時間ぐらいハマったのでメモ。 import React from 'react'; import {Editor, EditorState, CompositeDecorator} from 'draft-js'; const getEmojiURL = (key) => { // TODO…

jestでTypeError: Cannot read property 'instrument' of undefinedと叱られる

とりあえず ./node_modules/.bin/jest --no-cache # package.jsonのscriptsや、-gで入れてる場合は、 "jest --no-cache" ですもちろん。 としたら通った。 DRY Learning React Native: Building Native Mobile Apps with JavaScript作者: Bonnie Eisenman出…

ブラウザでMediaStreamを動画に固めて保存したい

ゴール ブラウザのJavaScriptで、MediaStreamを動画ファイルにしてローカルに保存できるようにしたい。 参考 MediaStream Recording API - Web APIs | MDN Using the MediaStream Recording API - Web APIs | MDN tl;dr 好きな方法でMediaStreamを取得する g…

TravisCI using fastlane failed with message "Your bundle is locked to credentials_manager (0.16.2)"

Problem $ bundle install --jobs=3 --retry=3 --deployment Fetching gem metadata from https://rubygems.org/........ Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Your bundle i…

iOSプロジェクトをTravisCIでCIしたい

「Travis CIでCIしたい」なのか「TravisでCIしたい」なのか悩みました。 参考 Automate Testing & Build Delivery with fastlane and Travis CI | Macoscope Blog iOS: Continuous Integration with Travis CI and Fastlane tl;dr gem install fastlane 必要…

個人開発程度の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、非ロングポーリング)

Progressive Web App Dev Summit っていうのがあったので行ってきました。結論から言うとめっちゃ面白かったです。 events.withgoogle.com 個人的にはだいたいの場合「ネイティブアプリが作りたい」と思う同期の多くが「プッシュ通知したい」だったので、ウ…

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 cl…

【追記】AppEngine Goで、go-app-builder: Failed parsing input: app file users.go conflicts with same file imported from GOPATH と叱られる問題

問題 AppEngineなアプリケーションをGoで開発していて、もちろんコントローラとかモデルとかは、initがあるところとは別のディレクトリ切って作ったりするんだけど、意気揚々とgoapp serve ./すると以下のように叱られる % goapp serve ./ # 中略 ERROR 2016…

webpackでModule not found: Error: Cannot resolve module 'react'と叱られる問題

問題 % npm run build > component-example@0.0.1 build /Users/otiai10/proj/web/react-examples/foo > webpack Hash: f59be0c76d47bf9f7a3e Version: webpack 1.13.0 Time: 496ms Asset Size Chunks Chunk Names ./lib/index.js 3.75 kB 0 [emitted] main …

GoogleContainerEngine(GKE)からCloudStorageにPUT/READする

AppEngineからCloudStorageするやつと、GKEつかってみるやつをやったので、GKEからCloudStorageするやつをやります。 「GKEから」とは言っても、ほぼGCEのインスタンスとして扱って支障無いので、だいたいは「GCE CloudStorage」とかでググります。 参考 GCE…

GKEに自作イメージをデプロイするときのまとめ

自分で書いた備忘録がわかりにくすぎるので自分のためにまとめる 【GCP】Google Container Engineで Hello, World - DRYな備忘録 【kubectl】The connection to the server localhost:8080 was refused と叱られる - DRYな備忘録 手順 ウェブコンソールでや…

JavaやったことないけどMacでGlassFishうごかしてHello,World

参考 GlassFish on Mac GlassFishとは Guide to installing and configuring Glassfish Web Server "Glassfish Server is a webserver, allowing you to deploy web applications written on java. Like some other Webserver: Tomcat..." Tomcatとかと同レ…

【GKE】gcloud docker pushでdenied: Unable to access the repository; please check that you have permission to access it.と叱られる

こんなかんじ % gcloud docker push gcr.io/otiai10-playground/test-1:v3 The push refers to a repository [gcr.io/otiai10-playground/test-1] 04f235615939: Preparing a9e71a9668f2: Preparing 34a3b82a2ff3: Preparing 6893006a6a20: Preparing 9e5afa…

goapp deployないしappcfg.py updateで403返されまくってめちゃくちゃハマった

tl;dr % gcloud auth list で、正しいアカウントがacitveかどうか見て、正しくなければgcloud initとかする。 もしくは、ログイン情報ためてるキャッシュファイルを殺せ。 % rm ~/.appcfg_* 以下ログなので読まなくていいです 問題 掲題の通り。以下のように…

AppEngineで自分のドメインを使いたい

Google App Engine について - Google Apps 管理者 ヘルプ Google AppEngine - Custom Domain + SSLが簡単になった - Qiita 独自ドメインの設定 - Google App Engine 入門 tl;dr GCPのコンソールで、TXTレコードの値をもらう DNSサービスのほうで、該当ドメ…

electronのWebView.executeJavaScriptがコールバックを呼ばない問題

以下のようなコードを書いて、electronのwindow内に作ったWebViewの中の情報を取得しようとした。 let webview = document.createElement('webview'); webview.addEventListener('did-finish-load', function() { // 第1引数に内部で実行したいJavaScript文…

PostgreSQLのJSONデータ型っていうのをためしてみる

JOSNデータ型とは 8.14. JSONデータ型 "このようなデータは、text型として格納することもできますが、" "各種JSON固有の関数と演算子もあります" "JSONデータ型にはjson型とjsonb型という2種類" " jsonb型の重要な利点はインデックスをサポートしていること…