15 min/d

ぼうずやのにっき

2017-W24 ふりかえり

2017-W24 をふりかえる。 2017-06 の目標 bbna あるいは別の Android アプリに知見を活かす Haskell / Rust を日常に取り込んでいく 2017-06 も半分を過ぎた。 Android は日々のことなので良し。 Haskell / Rust はまったくだ。 2017-W24 の目標 とその記事 …

java.util.TimeZone#getTimeZone(java.lang.String) が存在しない ID に GMT を返す

java.util.TimeZone#getTimeZone(java.lang.String) は見つからないとき GMT を返す。 2017-06-07 の SimpleDateFormat に続いて、また Java の古い Date まわりで踏んだ話。なぜか TimeZone がおかしくなるなあと思っていろいろ調べたら、存在しない TimeZo…

常識の差

前提条件をあわせるのって難しい。前提条件と書いたけど、常識ととってもいいし、経験から感覚的にやっている何かととってもいい。 たとえば、ソースコードは適切な単位で分割するのが良い。そういう価値観を前提条件として共有できているだろうか。ぼくはわ…

Android の <animation-list> と <rotate> でパラパラ漫画的に回転

Android で <animation-list> と <rotate> でパラパラ漫画的にくるくる回転するアレをつくった。 res/anim/ に置いたものを AnimationUtils で読んで……とやればスムーズに回転する動作ができることは知っている。最初はそれで実装した。ただ、どうも期待している動作がそれではなかっ</rotate></animation-list>…

Android の Drawable Resource とたたかう / 『ドクター・ストレンジ』を観た

Android の Drawable Resource でちょっとした図形を書けないかとがんばってみたけど、自動でのサイズ変更が邪魔で厳しい。画像と組み合わせれば制御できるらしいけど……。 Drawable まわりいろいろ間違ってる気がするなあ。大量の画像を commit しているのも…

Android の ConstraintLayout は要る

「 FrameLayout と LinearLayout でなんとかなる」 そう書いた 2017-05-22 のは嘘だった。完全に嘘ではないが、わりと嘘だ。なんとかなるが、つらい場面もある。 たとえば、縦横比を維持したまま拡大縮小した画像を中央配置しつつ、その上に指定の割合の位置…

Dialog -> PopupWindow

Android 。 Dialog だと画面いっぱいに表示できなくて PopupWindow に変えた。 PopupWindow に変えたら、 FragmentPagerAdapter が動かないので PageAdapter を使うように変えた。結果として Fragment を View に変えた。こういうのつらい。 Activity や Fra…

2017-W23 ふりかえり

2017-W23 をふりかえる。 2017-06 の目標 bbna あるいは別の Android アプリに知見を活かす Haskell / Rust を日常に取り込んでいく Android 。 bbna は Repository & UseCase を導入しようとしている。また別で書く。 Haskell / Rust 。今週は進捗なし。 20…

POJO / 映画『アサシン クリード』

仕事。 Android アプリも半分ほどできてきたような……。 ところどころで marker interface を使っている。 data A = B | C 的なことがやりたい場合の A を marker interface にしている。 marker interface ではなく abstract class にすることもある。 どち…

Android の lint をためす

Android の API Guides を読んでいる。一応。事前に読んでも気づかないけど、ハマった後に読み返すと、きちんと書いてあることが多い。……とは言え、さきに読むことで防げるならと思っている。 Android の lint の警告を修正している。放置していたら件数が増…

Android Studio の Live Templates を Timber のために使った

Android Studio で Timber のための Live Template を追加した。 Timber は 2017-06-05 に書いた。 Log から Timber へと変えて、おおむね問題なく使えている。ここまでにあった事故はごくまれに String.format の pattern の指定に誤りがあって死ぬくらいだ…

Android で SimpleDateFormat の X が動かなかった

Android で SimpleDateFormat の X (ISO 8601 time zone) が効かない事象にあたった。 java - Android parse String to Date - unknown pattern character ‘X’ - Stack Overflow ドキュメントには API level 1 から使えるとされている。 https://developer.a…

Android アプリでテキストサイズには sp を……

Android アプリ開発。 textSize は sp で指定するように Android Studio から警告される。 sp : scale-independent pixel (スケール非依存ピクセル) https://developer.android.com/training/multiscreen/screendensities.html https://developer.android.co…

Android の Logger ライブラリ Timber をつかう

Android 向けの Logger である Timber を試した。 JakeWharton/timber Square, Inc. の Jake Wharton さんがつくっている。 Android 関連でよく出てくる名前だなあ。有名な人なんだろうな。 2017-05-22 に出てきた square/picasso や square/retrofit も Squ…

2017-W22 ふりかえり

2017-W22 をふりかえる。 2017-06 の目標 bbna あるいは別の Android アプリに知見を活かす Haskell / Rust を日常に取り込んでいく Android 。 bbna は Presenter を導入しはじめた。「知見を活かす」というよりは試せなかった分を試している。また別で書く…

通院と画像配置

通院。歯医者と腰痛の治療へ。歯医者は特に問題ないらしい。そうか。腰痛はストレッチを続けていくらしい。そうか。 Android 。繰り返しのない背景画像をスクロールできる場所に配置しようとしてハマった。ImageView の scaleType を centerCrop にするだけ…

bouzuya/bs-code 1.5.2 をつくった

bouzuya/bs-code 1.5.0, 1.5.1, 1.5.2 をつくった。 1.5.x では Slack へ選択範囲を送信する機能を追加した。 きっかけは会社での分報 / status チャンネルの利用。なるべく頻繁に送信したいけど、わざわざ Slack に切り替えるのは面倒だ。メモはエディタで…

仕事

忙しい。残業。おまけに健康診断のために夕食の時間制限。パンをもぐもぐしながら仕事……。

2017-05 ふりかえり

2017-05 をふりかえる。 期間別の目標 2017 の目標。 自分の使うものはできるだけ自分でつくる なるべくはやく見えるもの・かたちあるものにする 納得のいくものをつくる こつこつとやる 斑鳩ノーマルをノーコンティニュークリアする 型システム入門を読む 2…

square/retrofit でのエラーハンドリング

Android の通信処理。2017-05-22 にも書いたとおり square/retrofit を使っている。 retrofit のエラーハンドリングはぼくにはやや非直感的だ。 Response クラスの body() と errorBody() が分離されている。 body() 側は自動で変換されるが、 errorBody() …

Android / ボールペン

今日も Android 。 PackageManager クラスを使う。他のアプリとの連携をはかる。 getLaunchIntentForPackage を使っていたのだけど、まずいようだ。 外部アプリの起動にgetLaunchIntentForPackageを使ってはいけない - 組み込みエンジニアのアプリ日誌 Activ…

2017-W21 ふりかえり

2017-W21 をふりかえる。 2017-05 の目標 [x] iOS アプリをつくる (ストアには公開しない) [x] Haskell でなにかつくる 2017-W21 の目標 [x] Android アプリ開発で気づいたことを書く 予想通りに忙しかったので、目標もそれに合わせて正解だった。 今週の記…

相楽園などに行った

今日はおでかけ。仕事の納期がまずいんだけど、さすがに妻と出かける予定は捨てられない。 木陰 pic.twitter.com/0i3gtBKXJy— bouzuya (@bouzuya) 2017年5月27日 今日は神戸市内ののびのびパスポートの対象施設から選んでみた。もちろん小中学生ではないので…

AltBeacon や CATEGORY_BROWSABLE など

毎日 Android 。 AltBeacon を使っている。 2017-04-27 に書いたものだ。良い。お手軽だ。 Intent の CATEGORY_BROWSABLE` で URL からアプリを開けることを知る。良い。 bouzuya/bbna にも付けたい。

リスク管理

リスク管理。たぶん検索すれば JIS や ISO などの標準規格を含めて様々なものが出る。 リスクを管理するためには、まずリスクを挙げる。未知のリスクは未知のものとして挙げる。経験のあることなら未知の要素は減っていくはずだ。 リスクを評価する。発生確…

今日も明日も Android ……

今日の Android の知見。 各アプリインストールを一意に識別する ID の生成は? https://developer.android.com/training/articles/user-data-ids.html 状況によるが String uniqueID = UUID.randomUUID().toString(); でたいてい十分。 それを保存するには…

Android アプリ開発中……

疲れている。今日の Android の知見。 ダイアログは Dialog クラスを new & show すると表示される AlertDialog.Builder を new & setTitle & setMessage … & create で AlertDialog をつくれる DialogFragment を継承した Fragment をつくると良い ソースコ…

FrameLayout + LinearLayout でだいたいなんとかなる

いろいろやっている。 Android の知見。 FrameLayout + LinearLayout でだいたいなんとかなる Space は地味だけど良い Picasso は URL から画像表示までの処理をお手軽にしてくれて良い drawable resource を background などに突っ込むと色々できる Gson で…

2017-W20 ふりかえり

2017-W20 をふりかえる。 2017-05 の目標 [x] iOS アプリをつくる (ストアには公開しない) [x] Haskell でなにかつくる 2017-W20 の目標 [ ] Haskell で画像アップローダーをつくる [ ] アンダースタンディングコンピュテーションを読み進める まったく計画…

Android の Butter Knife をためした

Android の Butter Knife を bouzuya/bbna で使ってみた。 Butter Knife は field や method を View に binding するためのライブラリ。 bbna は blog.bouzuya.net for Android 。 blog.bouzuya.net の Android クライアント。 試してみたんだけど、 bbna …

Ruby なのに Java のライブラリを使えと言われた

AWS Lambda 便利だ。急に Ruby から Java のライブラリを使わないといけなくなった。 そこで AWS Lambda に Java のライブラリに登録し、それを Ruby から AWS SDK for Ruby 経由で呼び出す。 Ruby 側の雰囲気は↓のような形。 # ぜんぜんわからないけど雰囲…

CloudFront の署名付き URL を避けた

S3 と同じ調子で CloudFront の署名付き URL を使おうと思ったのだけど、ルートアカウントでのキーペア作成や 90 日更新が要求されていたので使うのをやめた。 Amazon S3 では事前に指定したポリシーで署名付きの URL を発行できる。たとえば、一定期間だけ…

bouzuya/cookie-storage 3.0.0 をつくった

bouzuya/cookie-storage の 3.0.0 を公開した。 Proxy が有効な環境において、storage[key] のような形での property アクセスに対応した。 ぼくが作成したわけではなく、そういう Pull Request が来たので、ぼくは Merge して公開しただけだ。 Proxy をはじ…

疲れている

疲れている。火曜日で既に。 ErgoDox での独自の配列 (自身で設定した) にもすこし慣れてきた。まだ従来の速度には届かないものの既に姿勢は良くなっている。 従来型のキーボードだと体の前方で両手を寄せることになる。これが前かがみな姿勢につながってい…

忙しい

忙しい。あと体調が悪い。のどと鼻水がやられている。一日中ティッシュで鼻水をふいている。鼻が痛い。 帰ると気力がでない。飯食って風呂入って寝るだけ。まだ食事と風呂を欠かしてないだけ、文化的だ。 妻が手術した。無事に成功したようでなによりだ。た…

2017-W19 ふりかえり

今週のふりかえり 2017-W19 をふりかえる。 2017-05 の目標 [x] iOS アプリをつくる (ストアには公開しない) [x] Haskell でなにかつくる 2017-W19 の目標 [ ] Haskell で画像アップローダーをつくる [ ] Android で改めて BLE Beacon を検証する [x] bbn-js…

ErgoDox EZ 設定日記 (3)

昨日 (2017-05-12) に続き、 ErgoDox EZ で遊ぶ。設定の経過は bouzuya/ergodox にある。 大幅に変更した。 Layer を見直した。数字や記号を再配置した。レイヤーの切り替えをどうすべきか。答えが出ていない。 v0 - v3: 2017-05-10 v4 - v5: 2017-05-11 v6:…

ErgoDox EZ 設定日記 (3)

昨日 (2017-05-11) に続き、 ErgoDox EZ で遊ぶ。設定の経過は bouzuya/ergodox にある。 v0 - v3: 2017-05-10 v4 - v5: 2017-05-11 v6 qnelyj L0: Alt と Cmd の位置を変更 L0: z / の Ctrl 設定を削除 L3: 左下 _ を削除 L4: Layer 4 を追加し、 Enter & T…

ErgoDox EZ 設定日記 (2)

昨日 (2017-05-10) に続き、 ErgoDox EZ で遊ぶ。設定の経過は bouzuya/ergodox に置いている。 v0 - v3: 2017-05-10 を参照 v4: http://configure.ergodox-ez.com/keyboard_layouts/qgdeyd/ Layer を 4 つにした。標準・不足キー・それらのシフト。 Modifie…

ErgoDox を設定してみた

昨日 (2017-05-09) に届いた ErgoDox EZ を設定してみた。まだ使い物にならない。経過は次のとおりだ。 v0: http://configure.ergodox-ez.com/keyboard_layouts/qdopbl/ (default v1.2.3) v1: http://configure.ergodox-ez.com/keyboard_layouts/qvdmrl/ L0:…

ErgoDox EZ が届いた

ErgoDox EZ が届いた。まだ一時間くらいしか触っていないのだけど、第一印象を書いておく。 慣れていないので、ひどくタイプミスをする。理由はキーの物理的な配置だ。一般的なキーボードとは異なり、キーが格子状に配置されているためだ。特に最上段の数字…

bouzuya/bbn-json-hs 0.2.0.0 をつくった

昨日 (2017-05-07) のことだけど、 bouzuya/bbn-json-hs の 0.2.0.0 を公開した。 動作は Heroku および Amazon ECS: EC2 Container Service にデプロイして確認した。 Docker イメージを作成できており、手元で動くので、ほぼ間違いなく動くのだけど……。 機…

2017-W18 ふりかえり

2017-W18 をふりかえる。 2017-05 の目標 [x] iOS アプリをつくる (ストアには公開しない) [x] Haskell でなにかつくる 2017-W18 の目標 [x] iOS アプリをつくる (ストアには公開しない) [ ] Haskell のおさらいをする [x] 映画『リミット』のことを書く [x]…

stack docker をためすなど

bouzuya/bbn-json-hs をつくっている。公開分は stack new しただけのものだけど……。 bbn-json-hs は blog.bouzuya.net へ JSON を取得しにいき、簡素化した JSON を返す API server ……になる予定。特に難しい要素はない。簡単なリクエストの処理・外部サー…

Yesod をためしている

Yesod を試している。 https://www.yesodweb.com/page/quickstart や https://www.yesodweb.com/book を見ながら試している。まだもやっとしていて「これで大丈夫だ」って感じがない。うーん。 明日は ECS で動かしたいな。

bbni: blog.bouzuya.net for iOS をつくった

bouzuya/bbni をつくった。 bbni: blog.bouzuya.net for iOS 。 bbna: blog.bouzuya.net for Android (bouzuya/bbna) の iOS 版。 https://blog.bouzuya.net/ から HTTP で JSON を取得して、それを解釈したあと TableView + WebView で表示するところまでつ…

bouzuya/bbni をつくっている

bouzuya/bbni をつくっている。 bbni: blog.bouzuya.net for iOS 。 bouzuya/bbna の iOS 版。ストア公開はしない予定だが、ほぼ同等の機能まではつくりたいと思っている。 今日は HTTP GET から TableView への表示まで実施した。まだ git commit & git pus…

Amazon ECS と AWS CloudFormation / iOS Getting Started

2017-04-28 に続き、今日もまた Amazon ECS: EC2 Container Service を使う。 Cluster の ECS Instance の細かい設定のために AWS CloudFormation を触る。これは強力だ。 まだ、ざっくりとした理解だけど……。 ECS Instance は amazon/amazon-ecs-agent の動…

映画『リミット』 / ぼくと『星のカービィ』

2017-04-30 に映画『リミット』を観た。ネタバレをする。 2017-04-17 『シング・ストリート』 / 2017-04-26 『怪盗グルーのミニオン危機一発』 に続いて iTunes のレンタルで観た。これで 1000 円を使い切った。 棺に閉じ込められた男が助けを求めて電話をか…

2017-W17 2017-04 ふりかえり

2017-W17 と 2017-04 をふりかえる。 2017-W17 をふりかえる。 2017-04 の目標 [x] 『プログラミング言語の基礎概念』を読む [ ] Lambda で Hubot を置き換える [x] Android アプリを公開する 2017-W16 の目標 [x] bbna 1.1.0 のことを書く [x] 2017-04 のふ…