M2 MacBook Air(M2, 13インチ)に買い換えました。 前使っていたのは2018年モデルのMacBook Pro 15インチでした。 個人的に5年買い換えサイクルにしていたのと、最近ファンが回る場面が多くなりそろそろintelは限界かと思った次第です。 元々アプリエンジニア…
GCPやFirebaseにはメール関連の現行サービスがなく、外部のメールサービスを使用する必要があります。 そのため、SendGridやAWS SESなどを組み合わせる必要があります。 今回はAWS SESを使うことになったのですが、そのためにアクセスキーやSMTPパスワードを…
僕はMacBook ProとPS5を同じディスプレイに繋ぎ、ディスプレイの入力をメニューで切り替えて使っている。 MacBook Proのディスプレイもサブディスプレイとして使っており、PS5を起動してディスプレイに表示しているときはMacBookに攻略サイトを出したりDisco…
macOSのアプリ開発のお話し。 起動中のウィンドウを一覧するには、CGWindowListCopyWindowInfoを使う。 struct Window: CustomStringConvertible { let rawData: [String: AnyObject] var name: String? { get { return rawData[kCGWindowName as String] as…
20日木曜、大きなニュースが飛び込んできました。2012年に提供が終了して、そのまま9年近く利用できていた旧無償版G Suiteが7月1日に廃止されてしまいます。 www.itmedia.co.jp 自分も黎明の頃から勉強会のメールアドレスや、友人に独自ドメインアドレスを提…
使い込まれたUSB-C Digital AV Multiport アダプタ 標題の通りなのですが、Apple USB-C Digital AV Multiport アダプタは、Apple純正のUSB-CからUSB-A、HDMI、USB-Cの充電アダプタに変換してくれるアダプタです。MacBookユーザーなら1本は持っているはずです…
Google Cloud TasksからApp Engine HTTPタスクでバックグラウンド処理をするアプリケーションを作っている。 トラフィック分割で様子を見ながらリリースしたい場合、App Engine HTTPはどのバージョンのタスクを実行するのかがわからなかったので実験してみた…
macOS用のツールアプリケーションをインストールする方法がシェルスクリプトだった。ITエンジニア向けだったら良いんですけど、そうでない人が対象だったのでさすがにGUIが必要で、Automatorで手軽にできないかと思って調べてみました。 実行したいシェルス…
毎回やって毎回引っかかってる気がするのでメモ。本当はTerraformとか使った方が良いんだろうけど。 とりあえず最低限必要なもの、 前提 TypeScript で GCF を作って cloudbuild.yaml を読ませてデプロイする
Firebaseのフィールド、例えばマップのキーにメールアドレスを使いたいパターンはよくあると思う。例えばこういうの。 permissions: { "iseebi@example.com": "read", "admin@example.com": "admin" } で、これをクエリしようとすると permissions.iseebi@ex…
サイト全体をリダイレクトさせたいということがあると思う。例えば、wwwでメインサイトをホストしているけど、Apexドメインにアクセスしたときもwwwにリダイレクトさせたい、とかの場合だ。他にもちょっと複雑なリダイレクトさせたりもしたいということもあ…
gcloudで取り扱うプロジェクトの切り替え方法。プロジェクト作るたびに調べてる気がするので。
昨年の頭に転職して、ピリカという会社にお世話になっている*2。科学技術の力で環境問題を解決するという目標を元に、ごみ拾いSNS ピリカや、ITに関わらず様々な技術を使った調査プロジェクトなどのプロダクト/プロジェクトを推進している会社だ。
毎年恒例の旅行に来てるのだけど、ちょっと普段と異なる状況で困ったということがあったのでメモを兼ねて。 最近の日産車である程度のグレードになると「インテリジェントルームミラー」なるものがついている。車のルームミラーがカメラになっていて、後部座…
これまで、NotificationCenterのaddObserverはSwiftでもaddObserver(_:selector:name:object:)で書いていたのだけど、ふと「あー@objc書きたくないな〜」と思った。 そこで単純にaddObserver(forName:object:queue:using:)に置き換えたのだけど、これでリー…
先日の車中泊装備紹介エントリで書いていたエアーベッドだが、気持ち足下が短くて、もう少し長いものに買い換えたいと思っていた。 しかし、セレナの3列目を片方倒した場合、もう片方と壁の間にできるスペースの幅は65cm程度、シングルサイズのエアーベッド…
車中泊をはじめてから、キャンピングカーについての情報を見ることがかなり増えた。当然ながら車を乗り換えることは全然考えていないのだけど、将来的にキャンピングカーをベースに生活できないかなという考えも少し頭をよぎることがあったり、単純に憧れる…
*1 セレナe-POWER 車中泊ブログ3回目。今回は行ってきた車中泊旅を紹介。 といっても、特に10月11月はひどくて毎週どこかに車中泊に行っていて全部挙げるときりがない。2ヶ月で「常にどこかで車中泊してる人」みたいなイメージが会社内でできあがったくらい…
いろんな情報を集めながら何度か車中泊旅をしてきたところ、自分のスタイルが固まりつつあるのでこのあたりで一度まとめてみようと思う連載、今回は車中泊に使っているグッズについてのまとめ。
2018年の年末、セレナe-POWERを買った。カーシェアだと時間に自由が利かないのに不満があったのと、いつかは車中泊旅をしてみたいと思っていたこと、家庭の事情や転職のタイミングが揃ってエイヤ!と購入に至った。 いろんな情報を集めながら何度か車中泊旅…
趣味で作った GAE/Python Python 2.7 のサービスを Python 3.7 に移行したときにやったことのまとめです。
iOSのUniversal Linksを設定していたが、シミュレータでは正しく挙動するものの実機では一切動かないということが起こった。 apple-site-association には、[Team ID].[Bundle ID] の形式でapplinksを記載していた App Search API Validation Tool では Erro…
Google Cloud APIの中には、gs://[bucket]/[path]の形式になっているCloud StorageのURLを与えることができるものがある。今回はGoogleドライブに入っているファイルをCloud Storageにコピーしてgs://のURLとして使えるようにしたかった。 streamをうまく使…
ターミナルで作業中、たまに意図せず時間のかかるコマンドを叩いてしまうことがあります。例えば、curlでダウンロード仕掛けたは良いけどファイルサイズが大きかったり、無意識にcarthage update叩いてしまった場合などです。 そうなると、終わるまでちょっ…
サークル 伊勢的新常識は2019/09/22(Sun)開催の技術書典7に参加します。スペースはい13Cです。 今回は、これまでのプッシュ通知基板開発の経験を凝縮した1冊をお届けします。
ここ数年は決まった声優さんだけではなく、様々なアーティストのライブに行くことが多くなってきた。ロックバンドのライブは封入先行、オフィシャルHP先行、プレイガイド先行など、予約するタイミングが複数あって、予約先もアーティスト公式/ぴあ/e+だけで…
仕事でTwitter認証をサポートしたアプリを開発していますが、その認証処理に使われていたライブラリがとても古く、あっちこっち警告出しまくっていたので入れ替えることになりました。 いろいろ考えた結果、小さなライブラリを新しく起こしました。SimpleTwi…
iOS/Androidアプリを簡単かつ複数の端末にインストールできるMacアプリ、TransporterPadを久しぶりにアップデートしました。 今回は再びはやかわさんにご協力いただき、ダークモードに対応させました。 ダウンロードはこちらから そもそもTransporterPadとは…
昨日の記事で、アプリはHardened Runtime対応されたものの、リソースとして埋め込まれる実行ファイルがHardened Runtimeに対応していない状態だったためNotarizationに失敗していました。 実は、Hardened Runtimeへの対応はアプリのビルド時ではなく、コード…
macOS Catalinaから、macOSアプリはAppleによる公証(Notarization)が必須化されます。Notarizationのプロセスではアプリのバイナリを一度Appleに送って、マルウェアなどのチェックを受けます。雰囲気は以下のページがわかりやすいです。 applech2.com さて、…