Let's write β

プログラミング中にできたことか、思ったこととか

Auth0のCredentialsManagerとOkhttp3のAuthenticator, Interceptorを組みあわせる

背景 今後新規開発するサービスでAuth0をIDaaSとして利用する可能性があったので 技術調査としてAuth0をAndroidでRetrofit + Okhttp3で利用する時にどのように組みあわせるのか調査していました。 ライブラリ implementation "com.auth0.android:auth0:1.22.…

AndroidでスイッチUIの実装をいくつか比較検討してみた

つくりたかった物 デザイナーさんからZeplinでいただいていたイメージ これをどうやってつくるかプロトタイプを作成しながら比較検討しました。 onDrawでCanvasに書いていく 概要 AndroidのViewをカスタムする時にonDrawというメソッドの中で、 Canvasに独自…

DracoとAFrameを組み合わせて使ってみた

Dracoのインストール Emscriptenのインストール 私はMac環境なのでhomebrewでemscriptenをbrew install emscriptenでインストールしました。 インストール後は一度emccを動かしbrew info emscriptenの指示に従って~/.emscriptenを編集しましょう Dracoのビル…

rubocop-railsのfind_by_*系メソッドの自動修正をstaticに定義した一部のメソッドの上で無効にする

Railsで開発するにあたって、rubocop-railsをLinterとして利用しており、 自動修正機能を適用したときにエラーに繋ってしまったのでメモしておきます。 背景 Railsではfind_by_idやfind_by_nameのように、ActiveModelのカラム名を利用して検索できるメソッド…

Androidでクリティカルなタイムアップ処理にはAnimatorに依存せずにコルーチンで実装しよう

開発中に遭遇して、けっこうハマったのでメモとして残しておきます。 TL;DR 一部の端末では開発者オプションを経由しなくてもアニメーションがオフにできるよ アニメーターに依存しているとバグの原因になるから、ValueAnimator#areAnimatorsEnabled()でチェ…

一つのチームで複数のプロジェクトを回すスクラムについて調査している

事業上一応複数に分割されるプロジェクトを、開発チームの規模的に一つのチームで回していくという場面にこの先遭遇しそうなので、 そのあたりが、スクラムやアジャイル開発コミュニティによってどのように取りあつかわれているのかを調査しています。 資料 …

リモートワークにおけるコミュニケーションについての僕等のチームでの取りくみ

弊社に分報やってみようかなとおもって僕が突然はじめたら皆やってくれたし、コロナ関係でリモート増えたのでDiscordで雑談部屋つくってオフィスと同じように雑談の中での発想が生まれるようにとおもって初めたらみんなやってくれて嬉しい— Pocket7878 (@Poc…

react-router-dom@5の未ログイン時リダイレクト用コンポーネント`PrivateRoute`をTypeScriptで書く

背景 Reactのアプリケーションを書く場面があり、ログイン系でありがちな ログインしていないければ /login に返す ログイン成功したらどこかに移動する というパターンをやりたくなりました。 reactでのURLのパスとコンポーネントの対応をつけるときにはrea…

RustでLayered Architectureをやってみた

ちょっとしたネットワークリクエストを伴うツールを書く事があり、せっかくなのでRustでレイヤードアーキテクチャでやってみることにしました。 github.com フォルダを分けてモジュールレベルで分離するのではなく、Cargoのworkspaceをつかって各レイヤーをc…

DE0-CVを購入しました

FPGAを初めたいなぁと前から思っていたのですが、なかなか時間がとれそうになく踏みだせていなかったのですが 思いきって購入しました。 DE0-CV www.youtube.com マルツオンラインから購入しました。 DE0-CVでは、開発環境としてQuartas Primeという物がInte…

Rails5 + MySQLでArmgとDBコネクタの拡張を組み合わせて位置情報を扱う

背景 サービスで位置情報を色々なところで扱うのですが MySQLで扱うためには当然Geometry型のカラムを用意してActiveRecordとつなぐ必要があり PostGisを使っているケースが多く、MySQL周りのライブラリはあまり活発ではありませんでした。 RGeoのMySQL2コネ…

位置情報のハッシュをS2 Geometryライブラリを利用して計算して地球上の多角形を被覆してみた

前回の記事では、S2 Geometryライブラリを使って地球上の円形を覆っていました。 poketo7878-dev.hatenablog.com その時、「まだ多角形ポリゴンのサポートはされていない」と書いていました。 その後、そのバージョンアップが対応され、内部に穴を持たない多…

位置情報のハッシュをS2 Geometryライブラリを利用して計算して地球上の円を被覆してみた

位置情報のハッシュをもとめるGoogle製のライブラリS2のGo移植版を少し使ってみました。

最小構成サーバーでは負荷に耐えられなくなってきたので、SidekiqのJob処理を別サーバーに移動した

背景 サービスが成長しのユーザー数が増加してきたことによって、初期のサーバーの最小構成では ここ数日24時前後になるとロードアベレージが異常に上昇してしまって、 APIサーバーの応答時間が増加してしまうという問題がありました。 ロードアベレージがこ…

Fastlane gemのSpaceshipを使ってiOSアプリのバージョン番号のリストを取得する

RubyのGemでiTunes ConnectからiOSのバージョン番号のリストを取得する

ニコ生のTSをダウンロードするスクリプトをRustで書いた

ニコ生のTSをダウンロードするツールというのがネットに何個か見つかって、画質選択ができたり、複数に分割されているものに 対応しているものがすぐには見つからなかったので勉強がてら書いてみました。 extern crate reqwest; extern crate sxd_document; …

GoogleMapのスタイルギャラリーSnazzyMapsのスタイルを適用したGoogle Static Mapの作成

GoogleMapのStaticMapを作るときに、スタイルをカスタマイズしてアプリケーションのテーマと雰囲気を合わせたいなという場合があります。 GoogleMapのスタイルはカスタマイズできるのですが、個別の項目を1からカスタマイズするよりは、 おしゃれな既存のテ…

独学でプログラミングしてきてよかった本まとめ

良いコードを書きながら速くチームで成し遂げたい ビジネス的には、ビジネスの機運を適切につかむためにも速くリリースすることが必要である事が多く、 一方で出来合いのコードで速くリリースし続けると負債となって溜まっていってしまいます。 そういうジレ…

rlwrapがMacでの子プロセスのディレクトリの追跡をサポートしたようです

前回の記事でも触れましたが最近はplan9portのrcをつかって生活をしています。 rcではヒストリ機能はサポートしておらず、readline系のなんかを使うと良いんじゃないかみたいなアドバイスがされています。そんなときに便利なのはやっぱりrlwrapです。任意の…

rbenvをPlan9portのrcに対応させるPRを送った

plan9の標準シェルrcを最近メインで使い始めたのですが、ヒストリー機能がないとかそういうのは自前でやるとしても rbenvなどの普段使っているツールが動かないのは辛いです。 rbenvとhubにrcサポート用のPR送ろっかなぁどニッチだけど— Pocket7878 (@Hannib…

AirPodsが届いた

昨年末に注文していたAirPodsが今朝方届きました。意外と思っているよりも箱が重たかったのが印象的でした。箱を開けてみるとなかに小さなガムの容器のようにケースが入ってました。このケースがしっかりした感覚の重さでした。(充電器として使えることを考…

競プロ勉強進捗

競技プログラミングをちゃんと勉強しようというのが今年の目標でも合ったので とりあえず必ず1日一歩ずつでもいいから進めようと思う。 とりあえず、一昨日あたりからはじめてABCの残っていたA&B問を全問といておいた。 A&Bはすんなり解けるのを確認した。C…

2016年振り返り & 2017年のやってみたいこと

Github 芝 比較的よく働いたと思う。 ただしこれはプライベートリポジトリも含めたもので、会社のプロダクトをGithubで管理しているので 思いに会社のプロダクトのRails, iOSあたりを毎日なにかしら書いているので、ほぼ埋まっているのは 当たり前かもしれな…

RustでWebプログラミング No.4 ~ MySQLに接続する~

振り返り 前回 poketo7878-dev.hatenablog.com は、HandlebarでHTMLページをテンプレートから生成し、表示するというところまで作りました。今回は、MySQLに接続してデータを取得し、それをテンプレートに埋め込んで表示するということをやりました。 Iron-R…

RustでWebプログラミング No.3 ~ HandlebarでHTMLテンプレート~

振り返り 前回 poketo7878-dev.hatenablog.com までにRouterで複数URLに対応したHTTPサーバーを建てられるようになりました。 しかし、出力されるのは常に文字列でHTMLのページではありませんでした。 今回はHandlebarというテンプレートエンジンを利用してH…

RustでWebプログラミング No2 ~ Routerをつかって複数ルート~

前回の記事では、非常にシンプルなHelloWorldを表示するだけのサーバーを作成しIronの基礎を紹介しました。 今回はRouterと呼ばれるMiddlewareを利用して複数のURLに対応したサーバーを作成しました。 routerをCargo.tomlに追加 routerを利用するためにCargo…

RustでWebプログラミング No.1 ~ IronのインストールとHello World~

Hello World hello_worldバイナリプロジェクトを作ろう $ cargo new hello_world --bin サーバーはmain関数をもったプログラムに成るので、--binオプションを忘れに付けましょう。 Cargo.tomlにIronを追加する [dependencies.iron] version = "*" まずCargo.…

RustでAPI Wrapperを簡単に書くためのライブラリを書いている

Swiftで書かれたAPKitというライブラリ:github.comは非常に綺麗に作られていて、便利ですし更新も活発なので非常に気に入っていて、時々コントリビュートしながら 自社プロダクトでも採用しているのですが、Rustで遊んでいる時にこれと同じようなライブラリ…

Acmeをベースにしたテキストエディタを書いている

Plan9のAcmeに惚れ込んでしまって こんなマウス www.edikun.co.jp を購入してしまったのですが、やはりいくらかつらみが有るというか、 ネイティブでは提供されているような機能を提供するのが難しいと感じたりする場面が有り Acmeをベースにしたテキストエ…

YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa でスタッフをしてきました!

uzulla.hateblo.jp これを見た当初は「4/1だし...嘘だろ...」と思っていたのですが buildersconでお会いした時に冗談じゃなく本当に開催するつもりだとお聞きし、 「あれはマジなんだ!」という熱い思いに打たれ微力ながらボランティアスタッフとして参加し…