hamburger

主に日記

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

2020年の振り返り(その他)

右手首の負傷 元旦に息子の抱っこ中に手首を負傷した。 okuno-y-clinic.com 腱鞘炎と似ているが、完治することは無いらしい。3月くらいまでは気を緩めると痛む、ということを繰り返していて、今ではすっかり手首をかばう動きに慣れてしまった。 これを機に、…

2020年の振り返り(仕事編)

転職(1月) 2020/01/01に入社。同期入社のうち、エンジニアが全4名なので寂しい 同期飲み会をやったが、特に仲良くならなかった。 若い+営業系の人種と話すのが久しぶりすぎてノリについていけず、若干引いていたせい 組織内の空気が悪い?(3月) 勘違いだった…

読書メモ プロに追いつくAndroid開発入門

booth.pm 技術的負債に向き合う God Class →FatActivity → Delegate 実装の共通化 実装の強制はabstractよりもinterfaceで 継承を使う場合はis-aを意識する Androidアプリ開発におけるMVVMアーキテクチャ Viewとロジックを明確に分離する手段としてアーキテ…

GitHub Actionsでissueの自動登録

todoやらtimesやらをプライベートリポジトリのissueで管理するようになって、そうなると毎日使うissueは自動で作成するようにしたくなった 調べてみたらワークフローが公開されていたので、ちょっと工夫しながら使ってみた Actionsの登録 create-an-issue と…

デスク環境を整えた

リモートワーク開始を機に少しずつデスク環境を改善してきたが、ようやく終りが見えてきた。 この半年くらい色んなデスク環境に関するブログを見て参考になったので、自分も晒してみる。 仕事用PC MacBook Pro 13inch(2019)。会社支給。 クラムシェルモード…

GitHubでread.meを配置してプロフィールページ作成する

こんな記事を見つけたので、自分も試してみた。 qiita.com 作成方法 自身のアカウント名のpublic repositoryを作成する。 作成すると、画像のようなコメントが表示される。 訳: あなたは秘密を見つけました! ham-burger / ham-burgerは、GitHubプロファイル…

AndroidでMoboを使う方法

mobo-jp.com スマホが高スペック化してきた今、ただメモを取りたいくらいのシチュエーションではラップトップを持ち運ぶ必要が無いのでは?と思ったのがきっかけで購入したもの。 もっとちゃんと探せばより良い製品が見つかるかもしれない。ただ、多くの家電…

CircleCIの基礎

CIサービスの理解がかなり弱いと感じていたので、早速新刊を読んでみた。3,5,6章に関しては今週中に読み切りたい。 blog.tomoya.dev CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 (WEB+DB PRESS plus)作者:浦井 誠人,大竹 智也,金 洋国発売日: 20…

FlutterのFreezedで生成するClassにメソッドを追加する

この記事の内容は古くなっています。更新した以下の記事を確認してください。 hamburger-tech.hatenablog.com Freezedで生成するクラスに、自動生成以外のメソッドを追加する方法について 公式にもちゃんと記載がありました。 pub.dev @freezed abstract cla…

GitHub ActionsでFlutterリポジトリのCIを設定した

簡単な個人アプリをFlutterで作ってみようと思い、せっかくだからCIの設定もしてみることにしました。 利用したのは検索して一番最初に出てきたflutter-actionで、設定もほぼデフォルトのままです。 github.com name: CI on: push: branches: [ 'master', 'f…

Macでkeytoolコマンド実行時に No Java runtime present, requesting install. と出力されたときの対応方法

自分の感覚だとそれほど使用しないが定期的に必要になるコマンド、keytool。 アプリのフィンガープリントを確認したくて利用しようとしたら表題の通りNo Java runtime present, requesting install.と表示され、"keytool"コマンドラインツールを使用するには…

Flutterでバックアクションをハンドリングする

FlutterのAddToApp1を業務で利用してるんですが、FlutterEngine内で画面が保持されてしまうのでこまめに初期画面に戻しておかないと別の画面表示時にちらっと前の画面が見えてしまいます(※もしかしたらもっと良い方法があるかもしれない) こまめに初期画面に…

Dartで拡張関数を作成する(extensions methods)

最近Flutterで仕事をしているのですが、定期的にSDK側で提供している既存クラスの拡張をしたくなる時があります。Android(というかKotlin)の場合は拡張関数を定義していたので、その感覚でなにかできないかなと思っていたら、Dartにも拡張関数が実装されてい…

MacのAutomatorを利用してちょっとだけ作業を自動化する

僕は仕事の成果やその過程は何かしらの方法で書き残しておいたほうが良いと思っている。それは、紙のメモ帳だったり、ToDoアプリだったり、slackの分報だったり、人によってやり方は様々なはず。 僕も今まで色々試行錯誤しては飽きて辞める、を繰り返してき…

Swiftでsnake_caseのJSONをCamelCaseで定義されたStructのパラメータに変換する

使っているExtension gist.github.com 例えばjsonが { foo_bar: "baz" # よくあるsnake_case } みたいな形式の場合は以下のようにして使う struct ModelStruct: Codable{ let fooBar: String // CamelCaseに変換する } // dataはAlamofireのresponse do { re…

SwiftでREST APIのJSONレスポンスをstructに変換する

gist141f9d92b79eea41e9fe0c847fee4505 response.resultはチェックしたほうが良いかもしれない

リモートで採用面接をする側になって気づいたこと

最近になって採用面接に関わることが増えてきた。 このご時世なので基本的に面接はZoomを使ったリモート。 多くの人は、対面の面接と違ってリモート面接の経験を積む機会が殆どなかったんじゃないかと思っている。 それ故、リモート環境慣れがあるのと無いの…

BigQueryでダミーテーブルを利用する

BigQueryにはOracleのdualのようなダミーテーブルは存在しない。 その代わりfrom句を書かなくてもsqlとして成立するので同様のことが可能。 select 1 as "sample";

Firebase Cloud Functionsで定期実行してみる

前回 hamburger.hatenablog.jp 定期実行するためには、対象プロジェクトのプランをBlazeに変更する必要がある。 これは、functionを通知するためのGoogle Cloud Pub/Sub と定期的に通知する Cloud Scheduler API を利用するためらしい。 なお Google アカウ…

Firebase Cloud Functionsでfirestoreに書き込む

前回はチュートリアル通りにRealtime Databaseへの書き込みを試したが、最近だとFirestoreを使うことが多いような気がする(気のせい?)。 同様のfunctionでFirestoreにも書き込むようにしてみた hamburger.hatenablog.jp const functions = require('firebase…

Firebase Cloud FunctionsでRealtime Databaseに書き込む

前回 hamburger.hatenablog.jp 公式を見ながら進めている途中 firebase.google.com 関数を書いてみる index.jsにhello worldのコードがコメントアウトされた状態で記載されている。 ここは無視して最初の関数を記載する。 // const functions = require('fir…

VS Codeのエクスプローラ操作

cmd + Shift + E でエクスプローラにフォーカス cmd + down あるいは L(vscodevim導入時だけ?) でファイルオープン

Firebase Cloud Functionsのローカル環境設定

環境整備 cliツールをインストールする。 日本語のget startedでは npm install -g firebase-tools を紹介されるが、初心者は curl -sL firebase.tools | bashを使ったほうがよいかもしれない。 firebase.google.com なぜかというと、 npm: command not foun…

プログラマの数学 第5章 順列・組み合わせ

植木算 算出する対象を正確に把握することが重要。 長さ10メートルの道に1メートル間隔で木を植えたとき、必要な木の本数は? という問に対し、10という数字は木と木の間の数であり、木の本数ではない 少ないデータ量で一般化した後に、大きい値の計算をする…

ブログタイトル

メッチャどうでもいいことだが、 タイトルを 404 not found に変更したときは自分メッチャセンス良いじゃんとか思ってたのに、既にもっとちゃんとした人がもっとセンス有るブログで使っているタイトルだった。 かなc blog.livedoor.jp

FirebaseAnalyticsのログデータを分解して扱いやすい形に変換する

FIrebaseAnalyticsのデータはコンソールのダッシュボード上確認できる。 ただし見れるデータは限られるため、詳細なデータを活用したい場合はBigQueryに保存されている生データを確認する必要がある。 2020/04/09現在、データは最新の日付のものが events_in…

Swiftのアクセサについて

微妙に覚えきれていないので調べた。swift実践入門から検討したほうが良い順にしてみる。スコープが小さい順で良いはず private 対象の要素が属しているスコープ内のアクセスのみ許可する fileprivate 同一ソースファイル内のアクセスのみを許可する 同一フ…

カラダファクトリーに3ヶ月通ってみた

きっかけ ある日突然首の付根が痛くなった。原因は不明。上下左右に顔を回すと非常に痛い。 元々体の歪みからくる慢性的な肩こりなどは抱えていたが、仕事に支障をきたすのでマッサージを受けてみることにした。 家の近くにカラダファクトリーがあることを知…

Slackで思考ログを残すようにしてみた

きっかけ 僕は結構集中力がない。なので、目の前のタスクに集中できるように余計なタスクや懸念点はなるべく先に片付けてからまとまった作業時間を確保するようにしている。が、役割が増えてくるとそれをさばいている間に別のタスクが発生するようになってき…

「はじめてのUIデザイン」を読んだ

peaks.cc 以前pdf版を購入していたのだが、会社に物理本があったのでようやく読むことができた。 モバイルアプリのデザインは基礎的なところをうっすら知っていたが、体系的に学びたかったのとこれを機にwebのことも知りたかったというのが主な動機。 前半は…