はじめに 最近 Google Cloud Platform の Cloud Run が GA となったのが話題に上がりました。また gcloud コマンドを GitHub Actions 上で簡単に扱うための GoogleCloudPlatform/github-actions もリリースされました。これまで使われることの多かった actions/gcloud は deprecated となりアーカイブされています。 これらのサービス、ツールを使うことでかなり簡単に Docker コンテナを動かす環境を構築できます。そのユースケースの一つとして、実際に僕が携わっているプロジェクトでレビューコスト低減のために行っている、Pull Request (以下 PR) 単位で独立したプレビュー環境を起動する方法についてメモがてらブログにまとめようと思います。 前提 以下のようなアプリケーション、プロ
はじめに アレクサで、古い家電を操作する目的で購入したNature Remo。 センサーがとても秀逸だったので、部屋のモニタリングする仕組みを作ってみました。 部屋の環境が一目でわかるようになり、色々活用できそうです。 Nature Remo Cloud APIを利用して、Googleのサービスで作ってみました。 GAS(GoogleAppsScript)でGoogleスプレッドシートにデータを頂いて、Googleデータポータルにまとめてみました。これでサーバーレスかつセキュアなクラウド型環境監視ダッシュボードが完成しました。 とりあえず、トリガーで1時間ごとに自動更新することにしました。 Nature Remo、Googleスプレッドシート、Googleデータポータルの順を現した写真 今回のゴール Googleデータポータルでリビングの照度、温度、湿度を監視。 1時間おきのログを目視的に
TypeScript の tsc コマンドを叩いたときに const x:number = ''; がコンパイルエラーになるまでの道のりTypeScriptAST TypeScript がどのようにして型チェックをしているのかとふと疑問に思ったのでコードを読んでみました 実際に tsc コマンドを叩いてから const x:number = ''; という「数字型の変数宣言に文字列の値を代入」するコードがコンパイルエラーとして検出されるまでの流れを一通り読んでみたので、解説してみようと思います TypeScript のアーキテクチャ概要について TypeScript のリポジトリの wiki に、TypeScript 本体のアーキテクチャについての概要が記載されています Architectual Overview のページを見ると、最初に以下の図が掲載されており、ここには TypeScri
パフォーマンス・チューニングには、「こうすれば必ず上手くいく」という方法論や銀の弾丸はなく、地道に試行と計測を繰り返すしかない。 しかしだからこそ、基本的な考え方や仕組みを理解することが大切であり、それがなければ、どのように対処していけばいいのか見当をつけることすら出来ず、的外れな対応をすることにもなりかねない。 React.memoを使った処理の最適化は、React アプリのパフォーマンス改善のための、基本となるテクニックのひとつである。 この記事のコードは React のv16.10.2で動作確認している。 メモ化という概念 React アプリのパフォーマンス最適化を理解するためにはまず、メモ化(Memoization)という概念を把握しておく必要がある。 大雑把に言ってしまうとメモ化とは、何らかの計算によって得られた値を記録しておき、その値が再度必要になったときに、再計算することなく
Chrome DevTools でデバッグする SPA モードであればブラウザから Chrome DevTools を起動することが可能ですが、以下の script で SSR 時にも Chrome DevTools を起動することが可能です。 node --inspect node_modules/.bin/nuxt-ts #ts を利用していない場合は node_modules/.bin/nuxt になるかと思います。 package.json に以下のような script を追加しました。 "debug": "node --inspect node_modules/.bin/nuxt-ts" これを $ yarn debug で実行する。 yarn run v1.16.0 $ node --inspect --expose-gc node_modules/.bin/nuxt-ts D
この記事は Angular #2 Advent Calendar 2019 の12日目の記事です。11日目は @kawakami-kazuyoshi さんの Predictive Prefetching、PrefetchとGuess.js、時々、Angular でした。 この記事は普段利用している Angular がどのように View を表示・更新しているか、 ChangeDetectionStrategy の違いはどこにあるのかをソースコードを読みつつ理解してみることを目的としています。ここに書かれていることは筆者がソースコードを読んでみた結果であり、事実や Angular チームの意図から外れている可能性があります。 ソースコードを追う方針 環境 動作確認用のコンポーネント テンプレートの中身 View 作成時の処理 Bootstrap DOM 要素作成 DOM 要素生成終了 初期デ
Assertion Functions を本番環境では削除する TypeScript プラグインを書いたのでその紹介と使い方の解説、 TypeScript Compiler API の所感 これは TypeScript Advent Calendar 2019 の 17 日目の代理投稿です。 以前 Assertion Functions を用いて null チェックする記事を書きました。 TypeScript 3.7 で追加された Assertion Functions を使って null チェックを楽にする が、 assert なのに本番環境で実行されてしまう、という気持ちの悪さを感じていたのです。そんな折、前回の技術書典で手に入れた戦利品の中に TypeScript Compiler API に関するものがあり、時間が作れたので読んでみたのでした。まさにやりたいことが書いてあり、このも
はじめに Node.jsでCLI(Command Line Interface)を作りたくなることがあると思います。 そして、GitHubに公開されているCLIを見ると、色々なライブラリを組み組み合わせて便利なCLIを作っているようです。 この記事では、Node.jsでCLIをどう作るのか?そして、CLI開発を支える便利なライブラリを紹介します。 身の回りのCLI CLIの作り方を見る前に、普段の開発で触れているCLIを見てみましょう。 ESLint CLIには基本的に--helpオプションが用意されていますね。 npm ユーザーの入力を受け取る対話的なCLIも多いですね。 expo プレースホルダーがあることで入力する内容のイメージを伝えることができます。 stencil 様々な選択方法をユーザーに提供したり、分かりやすく色付けすることも可能です。 それでは、Node.jsでCLIを作っ
Node.js初学者向けにpackage.jsonハンズオンを実施しましたので、その時に作ったハンズオン資料を公開します。 npmコマンドやpackage.jsonに慣れることが目的のハンズオンの資料ですので、Node.jsとは何か?といった説明はしません。ご了承ください。 文章の手順通りに進めていけば、npmコマンドやpackage.json編集が体験できます! 事前準備 Node.jsのインストール 事前にNode.jsのインストールをお願いします。(すでにNode.jsがインストール済の方は飛ばしてください。) Windowsの場合 Windowsの方は、こちらの記事をご参照ください。Chocolatey > Nodist > Node.jsの順番でインストールします。 Windowsで、Chocolateyとnodistで、バージョン切り替え可能なNode.jsの環境を構築する M
ここでは2019年に不正アクセスなどに起因して終了(停止)したサービスをまとめます。 トラブルを受け終了(停止)したサービス 2019年以降に終了 運営元 終了(停止)したサービス サービスの停止(公表)時期 廃止(停止)原因 ディー・エル・マーケット DLmarket 2018年11月12日停止 2019年3月25日終了発表 2019年6月28日終了 不正アクセスによる情報流出 オージス総研 宅ふぁいる便 2019年1月23日停止 2019年3月14日休止発表 不正アクセスによる情報流出 セブン・ペイ 7pay 2019年7月4日新規会員登録停止 2019年8月1日廃止発表 2019年9月30日終了 不正アクセスによる決済不正利用 リクルートキャリア リクナビDMPフォロー 2019年7月31日休止 2019年8月4日廃止決定 一部利用者のプライバシーポリシーの同意取得漏れ、および利用者
Just like last year, I made a list of the best media I enjoyed over the year. This includes music, films, series and games. The structure is more or less the same as other years.The content might be interesting to some (as if there are not enough end of year lists already ;)), but for me it’s my personal excuse of the year to play with some technology. This post is a technical write-up of some of
おはようございます、ritou です。 qiita.com これの初日です。 なんの話か 皆さんは今まで、こんな記事を目にしたことがありませんか? Cookie vs JWT 認証に JWT を利用するのってどうなの? JWT をセッション管理に使うべきではない! リンク貼るのは省略しますが、年に何度か見かける記事です。 個人的にこの話題の原点は最近 IDaaS(Identity as a Service) として注目を集めている Auth0 が Cookie vs Token とか言う比較記事を書いたことだと思っていますが、今探したところ記事は削除されたのか最近の記事にリダイレクトされてるようなのでもうよくわからん。 なのでそれはおいといて、この話題を扱う記事は クライアントでのセッション管理 : HTTP Cookie vs WebStorage(LocalStorage / Sess
この記事はデータ構造とアルゴリズム Advent Calendar 2019 - Qiitaの12日目の記事です. はじめに 唐突にデータ構造を勉強したくなり,怖そうだからという理由で今まで逃げてきた永続データ構造について勉強したものを一部まとめてみました. 本記事の構成はこんな感じです. Mutable, Immutableってそもそも何 一般的(Mutable)なStackとQueueについて Immutable Stackについて Immutable Queueについて(前編) Immutable Queueについて(中編) Immutable Queueについて(後編) Immutable Stackについてはパッと見つけることができましたが,効率の良いImmutable Queueについては自分のググラビリティが低すぎて見つけることができませんでした. Immutable Que
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く