CORDEA blog

Android applications engineer

Reports API で G Suite 監査ログの更新通知を受け取る

G Suite の Admin console には監査ログというものがあり、そこで色々見たり Alert を上げたりすることが出来るのですが、 G Suite Admin SDK の Reports API を使用すると、この監査ログを取得することが出来ます また、Callback URL を登録することで更新…

EMV Contactless 対応のクレジットカードから情報を読み取る

クレジットカードやデビットカードには EMV Contactless という非接触決済に対応しているものがあります。 https://www.visa.co.jp/pay-with-visa/featured-technologies/contactless.html https://www.mastercard.co.jp/ja-jp/consumers/features-benefits/…

Android で Liquid-like な animation を Path#cubicTo で実現する

Dribbble にありがちなスライムのような何かぽよぽよした Animation をどう実現するかちなみに特に何かイベントに反応する必要がなければ Lottie で良いと思います Path#cubicTo 実現する方法として、結論としてはタイトルにある通り Path#cubicTo を使いま…

Jetpack Compose の @Model で生成されるコード

メモこういうの書いたときに生成されるコードが気になっていた @Model class AnimalState( var isAnimal: Boolean, var cats: List<Cat>, var dog: Dog ) @Model class Cat( var isRunning: Boolean, var isWalking: Boolean ) @Model class Dog( var count: Int,</cat>…

第 1 水準以外の漢字を検出する

JIS 漢字コードの第 1 水準漢字以外を検出します。 Perl が一番楽そうだったので Perl 使いました。 何がしたいか $ echo "perl" | hoge false $ echo "あいうえお。" | hoge false $ echo "漢字 | hoge false $ echo "弌腕。" | hoge # 第 2 水準漢字が入っ…

動的解析ツール Frida を Android に使う

Frida を使ってみたメモ Frida frida.re自分の Script を Inject したり、値を取得したり、色々なことができる Toolkit です。 リバースエンジニアリングとかする時に使うみたいですね。 iOS / Android にも対応しており、今回は Android の話です。 ちなみ…

Podcast を Google Podcasts に登録する

outer-heaven.fm を先日 Google Podcasts に登録したので、その時のメモです。podcasts.google.complay.google.com公式に手順がまとめられており、これを少し噛み砕いた内容です。developers.google.com 1. Podcast の Feed URL を取得する まずは Podcast …

JetBrains MPS をはじめよう

この記事では、JetBrains が開発した言語ワークベンチである JetBrains MPS の使い方を紹介します。Kyash Advent Calendar 2019 13日目の記事です。 JetBrains MPS について JetBrains MPS (Meta Programming System) は公式にも書かれている通り、DSL を構…

claat で生成した codelab を netlify で CD する

先日私達が公開した Android Dagger codelab は netlify を使用して公開しており、今回はその方法を紹介します。github.comclaat は google が公開している codelabs を生成するための command line tool です。github.com行っていることは非常に簡単で、dep…

【Rust】imageproc で任意の位置に text を描画する際の注意点

imageproc に限らず、rusttype で font の layout を使用する際には概ね同じ問題に当たりそうなんですが、 そこまで調べてないので imageproc に限った話として紹介します。今回はテキストの描画位置をちょうど真ん中にすることを考えてみます。 なお、ここ…

【RoN BHS】set_object_health の挙動

Rise of Nations という Microsoft から発売された名作 RTS ゲームがあります。このゲームには Big Huge Script という、ゲーム内でシナリオやルールを作るための言語があり、 今回はこの Script で使える関数の中から、 set_object_health という関数の挙動…

Chrome のコンテキストメニューから印刷...を消す

定期的に検索と印刷...を押し間違えて辛いので消したメモ。 もしかしたら Chrome の設定とかでできるかもしれないので、直接書き換えたくない人は探してみてください。やり方については StackExchange に載っている通りで、Preferences の printing.enabled …

Thread を toString した時の Thread[foo,0,bar]

RxJava とか使ってると稀によく見る Thread[main,5,main] みたいなやつ、どれがどれだっけってなったのでメモそもそも RxJava の source から読み始めたのでアレなんですが、 タイトルに書いてあるように Thread の doc か toString の実装を見ればいいです …

static method 等を呼び出しているテストケースで Robolectric の Shadow を使う

あんまり知られてないような知られてるような、そんな感じがしたので Robolectric の Shadow の使い道をちょっと紹介します。robolectric.org紹介するのは static method を呼び出ている kotlin の object 宣言がされた singleton を内部で直接使用している …

Mackerel Client 1.2 をリリースしました

この度、MackerelClient 1.2 をリリースしましたので、リリースノートに書かなかった諸々を書きます。 ちなみに 1.1 (2016年4月24日) 以来、2 年半ぶりの更新となります。反映されるのはもう少し後かもしれません スクリーンショット等はそのうち更新しますg…

Hy と Python の version について

Hy の install 時に Python version で少し困ったりしたのでメモ普通に Python 3.7.0 の環境で Hy を pip install して実行すると ImportError: invalid flags 1531398560 in 'hy.core.language'こうなったり、または一回は実行できるけど二度目は失敗する、…

Spacemacs の install で嵌ったりした

最近 Lisp 方言を書く機会が多いので重い腰を上げて Emacs を入れました といっても素の Emacs を育てるには Vim に染まりすぎたので Spacemacs という Emacs の distribution に頼ることにしました 嵌ったところ 公式にしたがって ~/.emacs.d に clone した…

Docker で mediawiki 立てて oauth extension 入れるまで

前も似たようなこと書いた気がするけど... 検証用に local で一時的に立ててるものなので色々ご注意ください。 build docker hub から引っ張ってくると mediawiki が古い (多分) ので公式 repository を clone して build します $ git clone https://github…

BitBucket で OAuth 1 での認証がうまく行かなかった話

結論 timestamp が float だった 経緯 私が作っている nim の oauth library を修正したところ bitbucket の例がうまく動かなかった (というか bitbucket は多分ずいぶん昔から動いていなかった) ので調査していて分かったのでメモ問題の切り分けに時間がか…

Red で http request を行う方法

Red programming language で http request を行う方法がちょっと分かりづらかったのでメモ GET 本当にシンプルな GET >> read http://localhost:8080/api == {{"status":"ok"}}header の追加など必要な場合 >> write http://localhost:8080/api [GET [ Acce…

YAPC::Fukuoka 2017 HAKATA 前夜祭で LT してきました

最近 GitHub から緑が消え始めてて危機感しか感じません。それはさておき、 YAPC::Fukuoka 2017 HAKATA に参加して来たのでその感想を書きます。 前夜祭 「Possibility of terminal」 という題で Terminal (というか prompt) の可能性について話してきました…

umeda.apk #3 に参加してきました

umeda.apk #3 に参加してきたので、その感想です。shibuya-apk.connpass.com Best Practices to Slim Down Your App Size 前々から少し話題になっていたので知ってはいましたが、 やはり Cancellation Rates vs. Download Size と、 Uninstall Rates vs. Ins…

Docker で MediaWiki を立てる

自分の作っているライブラリで、Wikipedia の API 叩けないよー的な話が来たので MediaWiki を Docker で立てて検証しようと思ったところ、 これが面倒だったので記録しておきます。検証用にローカルで立てた手順です。 手順 Docker Hub で引っ張ってこられ…

Razer Chroma SDK を使って Keyboard をピカピカさせる

先日 Razer Blade Stealth を買ったのですが、 キーボードの光り方を見て何か面白いことできないかと思って調べたのでメモ Razer Chroma SDK Razer Developer Portal でダウンロードできます。http://developer.razerzone.com/chroma/あと、Razer Synapse が…

OCaml で Subcommand をパースする

Arg module のドキュメント読んでもどうすればいいかいまいち分からなかったので OCaml で Subcommand とそのオプションを Arg module でパースする方法をメモしておきます。何か間違っているところなどあればコメント、ツイートなど下さい。 実装 parse_dyn…

Io で Unicode エスケープ形式から元に戻す

Io language で API を叩いていて、 "\u3042" とか出てきて元に戻す必要があったので調べた 結論 私の見た限りでは、一つ method 呼べばなんとかなるようには見えなかったので、以下のようにしてとりあえず解決した 簡単な方法あったら教えてください str ma…

Factor で http-request の response body が byte-array になった時

あるサービスの API レスポンスで body が byte-array になったので調べた 結論 charset が指定されていなくて byte-array になったら適切な形で decode する utf-8 なら http-get drop body>> utf8 decode json> . 詳細 サーバー側で charset が指定されて…

Nim の pegs モジュールを使う

この記事は Nim Advent Calendar 2016 24 日目の記事です。クリスマスとか年末に絡めた何かを考えていたのですが、思いつかなかったので普通に書きます。 PEG とは PEG について、解説的なものを入れようかと思ったのですが、 Wikipedia がとても詳しく、私…

nim で json を扱う話

この記事は Nim Advent Calendar 2016 18 日目の記事です。さて、ネタが被ったような気がしないでもないのですが nim で json 扱うのが楽ですよって話をします。json の扱いの簡単さはとても大切ですね。今回例として使用した json は json.org の JSON Exam…

Jenkins の Android アプリ "Butler" を作った

Jenkins のクライアントアプリを作成しましたのでご報告。 もちろんオープンソースですが、今回ストアには公開していません。 github.com ストアに公開しなかった理由についてですが、 アプリ的にではなく、API 的に公開できる品質にならなそうだと判断しま…