2016-01-01から1年間の記事一覧

Suffix ArrayをRustで実装した

suffix arrayを一番簡単なアルゴリズムで実装する - アルゴリズム学習(その6) - $shibayu36->blog; を読んで、ちょうど自分も何らかの形で全文検索を一部実装してみようと思っていたのでRustで真似してみました。 Rustを選んだ理由は、以下の理由からです。 …

MBP2016が購入直後に故障したので返品してMBP2015を注文した

本日のまとめ: MBP2016が故障したので返品手続きをしてMBP2015を注文した。さようならUSB Type C。こんにちはMagsafe2 & HDMI。— FUJI Goro (@__gfx__) 2016年12月10日 Macbook Pro 2016 13インチ タッチバー付きモデルを先月購入しましたが、3週間ほど経っ…

babel-nodeでたてるnode serverをguard-processで管理するときはkexec npm packageが必須

Babel CLIには babel-node というコマンドが付属していて、これはES2015+のスクリプトをそのまま実行できるという便利ツールです。 babel-nodeは大変便利なのですが、guardのpluginであるguard-process とは相性がわるく、babel-nodeで立ち上げたnode server…

Orma v4.0.0 - RxJava2 & SQLBrite-like query observables

GitHub - gfx/Android-Orma: A type-safe ORM for Android as a wrapper of SQLiteDatabase v3.0.0からまだ一ヶ月くらいしかたってませんが、Ormaがv4.0.0となりました。 目玉機能は RxJava 2.x 対応で、これが後方互換性を維持したまま行うのが難しかったた…

vscodeの AlanWalk/markdown-toc extensionで目次の自動生成すると捗るぞ

先日のNode学園祭で standard-readme という規格が紹介されていました。 これを眺めていたら、ミニマムでも目次(ToC)は必要ですよということでした。たしかにToCは読むほうからすると便利なんですよね。 一方でToCのメンテナンスは人間のやる仕事じゃない…

Flowtypeの`flow suggest`がすごい!

flow(1)のコマンドラインオプションを眺めていたら、 suggest というサブコマンドがありました*1。 これは、JavaScriptファイルを引数にとって、そのスクリプトにflowtype annotationを付けるパッチを生成するコマンドのようです。 たとえばこういうスクリプ…

flowtypeのmagic typeは直接使うものじゃないよ

実践投入してわかったflowtypeのメリデメ // Speaker Deck で「Magic typeがドキュメントされてない(のに便利)」という説明がありましたが、それはmagic typeを直接使う想定ではないプライベートAPIからドキュメントに載せてないというだけだと思われます…

OrmaのRxJava2対応プラン

三行まとめ Orma v3.x で RxJava2 対応をいれます。RxJava 1.xのメソッドはこれまでどおり使えて、後方互換製は保ちます Orma v4.x で RxJava2 対応を主とします。RxJava 1.x対応は続けますが、"asObservable1" とリネームさされ、またそれらメソッドはdepre…

DroidKaigi 2017のトーク募集は11/1まで!

droidkaigi.github.io 私もひとつ「Android ORMの選び方」というトークを応募しました。ここ1年ほどOrmaの開発をしているので、その知見を活かしてなるべく公平なORMの比較検討をしたいと思っています。 他に個人的に興味があるのはこんな感じの話題です。誰…

AndroidのCIはlintOptions.textReportを有効にしておくと捗る

ThreeTenABPの差分(v1.0.3...v1.0.4)を見ていて気づいたんですが、Android Lintの結果をテキスト形式で標準出力に出すことができるんですね。マニュアル にも書いてありますが、今日初めて知りました。 lintOptions { textReport true textOutput 'stdout' }…

Orma v3.0.0をリリースしました

Orma v3.0.0をリリースしました*1。 実にv2.6.0から100コミット以上、v2.0.0から8ヶ月後のリリースとなります。 CHANGELOG このバージョンは、内部的には大きく変えたものの、インターフェイス的にはそれほどv2.6.0と変わりありません。v2.6.0で警告なしに動…

Orma v3.0.0-rc2 と内部設計の見直し

Orma v3.0.0-rc2をリリースしました。CHANGESはこちら: Android-Orma/CHANGELOG.md at master · gfx/Android-Orma · GitHub 三行まとめ あるモデルが複数の同じ型のモデルをdirect associationで持てるようになりました 内部的に非常に大きな変更を行ったの…

npm scripts 内では zshの**が使えないのでmochaの場合はそのまま渡すこと

npmのpackage.jsonに以下のように書いていたら、明らかに実行されるファイルが少なくてどうしたものかと思っていました。 "scripts": { "test": "mocha --opts spec/client/support/default.opts spec/client/**/*.spec.js" } 理由は詳細には調べてませんが…

Orma v3.0.0-rc1 for Android Studio v2.2 / Android Gradle Plugin v2.2

Orma v2.x は Android Gradle Plugin v2.2 と同時に使えないという問題がありまして、このたびこれを修正した v3.0.0-rc1 を出しました。RCとはいうものの、中身はdeprecated methodsを消したくらいであまり変えていないので、安定性は v2.6.0 と大差ないは…

#write_code_every_day の試みから1年たってどうだったか

そういえば write_code_every_day 活動をやろうと思い立ったのがちょうど1年くらい前だったなと思いだしたので振り返りです。 この話をしたのは Rebuild: 120: Swiftonomics (gfx) だったかな? で、GitHubの草の現状です(ログアウトしてpublic contributio…

最近はどういうaltJsが使われているのか

Twitterでアンケートとりました。偏りはあると思いますが、採用判断の参考にどうぞ。 おおむね6割がJavaScript (or Babel)、2割がTypeScript、1割がCoffeeScript、Flowはだいぶ少ない、という感じでしょうか。 最近のJavaScript系言語がいくつかありますが、…

dts-gen(1) でJavaScripファイルからdtsを生成する

2016-09-12のJS: Polymer 2.0 Preview、Service Worker入門、JSから型定義ファイルの生成 - JSer.info で gen-flow-files と dts-gen を知ったのでちょっとだけ使ってみました。 gen-flow-files (as of flow v0.32.0) Release v0.32.0 · facebook/flow · Git…

2016年9月現在だとReactアプリのTypeScript採用は時期尚早(※追記あり)

追記(2019/04/16): 2017年半ばにここで触れているプロジェクトはTSに移行しました。今となってはTS+Reactの組み合わせは全く問題がなく、むしろ非常に相性のよい組み合わせであるとすらいえます。 TypeScript化の調査 2016年9月現在(React v15.3.1, TypeScr…

CircleCIの"Auto-cancel redundant builds"を有効にするとPRごとの冗長なCIをキャンセルできる

2016/7/27 にこんなアップデートがあったようです。 Changelog - We've added the option to auto-cancel redundant builds. Read more, and how to enable it, here: https://t.co/MTjOV7ttkF— CircleCI (@circleci) July 26, 2016 Project Settings → Adva…

PlantUML Web APIをSpark Framework + Kotlinなウェブアプリにしてみた

PlantUML を使うとき、 java -jar plantuml.jar だとほんの小さなダイアグラムの生成にも数秒かかってしまいます。ローカルではそれでいいかもしれませんが、ウェブアプリに組み込むのはちょっとイマイチですよね。 PlantUMLはJava製ツールなのでJavaのウェ…

TypeScript 2.0+NodeJSツールを開発するときのプロジェクト構成

npm dependenciesを更新してGitHub Compare Viewのリンク付きでPRするツールを定期実行する - Islands in the byte stream このci-npm-updateはTypeScript 2.0 (beta) で書いたので、TypeScript+NodeJSツールを開発するときのプロジェクト構成の一例としてざ…

npm dependenciesを更新してGitHub Compare Viewのリンク付きでPRするツールを定期実行する

タイトルに要素を詰め込みすぎましたが、要は CircleCIを使ってbundle updateを定期実行する - Qiita の npm update 版です。web appのJavaScriptライブラリ管理にnpmを使うとき、依存関係のアップデートを継続的に行うためのツールです。 https://github.co…

ExcelからtextareaにコピペするとHTMLのtableに変換するスニペット

ユースケース Excelから社内ブログやWikiに表をコピペしたい 実装 とりあえず paste イベントをうけて処理するのでそのようにする。今回はCodeMirrorで制御されているtextareaなので、CodeMirrorを使ってないない場合は適宜読み替えてください。 ClipboardDa…

公開用DockerイメージにAndroid SDKを含めるのはライセンス違反という話

Android Software Development Kit License Agreementにこういう項目があります。 3.4 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, yo…

Makefileを自己文書化するハックを注入するスクリプト: inject-make-help

Re: Makefileを自己文書化する make2help | おそらくはそれさえも平凡な日々 この主のコマンドのインストールを強制するのめんどうだし、自己文書化hackを注入&管理するコマンドのほうがうれしそう。 / “Makefileを自己文書化する `make2help` | おそらくは…

git branch の結果を時間順にソート: git branch --sort=-authordate

id:kazuho さんと「gitのbranchを消すべきか否か」という話をしていて、ぼくの「ローカルにせよリモートにせよbranchが増えすぎると目的のブランチを見つけられない」という意見に対して次のエントリを教えてもらったのでした。 git branch の結果を時間順に…

はてなブログでRust対応のアップデートをしてほしい!

お題「シンタックス・ハイライト機能で対応してほしい言語」 Rust のシンタックス・ハイライトは対応されているようですが、この日記を書いた時点だと、extern, match, where などがハイライトされていなくて、対応バージョンが古いような気がします。シンタ…

github.comのアカウントは仕事用と私用で分ける方がいいの?

追記(2019/04/11): sonots氏がGitHubの方と相談しつつ設計した運用方法が公開されました。 全社的に会社用GitHubアカウントを廃止した件 - ZOZO Technologies TECH BLOG このガイドラインは今後のデファクトスタンダードになると思うのでtl;drを引用します。…

Android Instant Apps FAQをざっと眺めた

Google I/O 2016で発表されたアプリをインストールしなくても使える "Android Instant Apps" ですが、技術が不明ということで様々な憶測を呼んでいます。 developer.android.com これについては、すでにFAQがあっていくつかの疑問には答えられていました。 h…

GlideのバックエンドをOkHttp3にしてカスタムインスタンスを与える

github.com GlideのバックエンドをOkHttp3にするには、 okhttp3-integration を使います。 dependencies { compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar' } これだけで、GlideのバックエンドHTTPクライアントがOkHttp3になります。 し…