フロントエンドエンジニアの小林和弘です。 kakari という薬局向けに提供しているサービスで Electron を使って Windows アプリケーションを作成したので、そのことについてお話しようかと思います。 事の発端 これまで、「kakari」では、患者さまから薬局へ処方せんが送信されたときに薬剤師さまが処方せんの受信に気づけるように FAX で処方せんを送信していました。 しかし、FAX 送信に利用していた Twilio Programmable Fax サービスが 2021 年 12 月 17 日をもってサービス終了になってしまいました。 このサービス終了に対応すべく、薬局向けに処方せんが送信されたらプリンターで処方せん印刷ができる Windows アプリケーションを Electron で作成することになりました。 そもそもElectronとは HTML, CSS, JS のフロ
モック関数によりコード間の繋がりをテストすることができます。 関数が持つ実際の実装を除去したり、関数の呼び出し(また、呼び出しに渡されたパラメータも含め)をキャプチャしたり、new によるコンストラクタ関数のインスタンス化をキャプチャできます。 そうすることでテスト時のみの返り値の設定をすることが可能になります。 関数をモックするには、次の2つの方法があります。 1つは、テストコードの中でモック関数を作成するという方法。 もう1つは、manual mockを作成してモジュールの依存性を上書きするという方法です。 モック関数を利用する forEach 関数の実装をテストすることを考えてみましょう。 この関数は、与えられた配列の各要素に対して、コールバック関数を呼び出します。
GitHubは、同社が管理するJavaScriptパッケージリポジトリnpmにおいて、以下のようなセキュリティ機能関係の改善を発表した。 npmコマンドラインインターフェースによる、ログインおよびパブリッシュの効率化 npmへの2FA(2要素認証)の導入により、利用者はログイン時やパッケージ登録時に煩雑な操作を行う必要があったが、npm8.15.0より、ログインおよびパブリッシュの認証をブラウザ上で管理することができ、既存セッションを使用してログインする場合は2要素めの認証を省くことができるようになった。またパブリッシュの場合も、–auth-type=webフラグによりオプトインして使用する場合は2FAを5分間回避できる(npm9からはデフォルトで実装)。 GitHub/Twitterアカウントからnpmへ接続可能に npmのアカウントをGitHubアカウントやTwitterアカウント
先日 Babel のメンテナーとして知られる Nicolò Ribaudo 氏が次のツイートを投稿した。 We finally finished migrating the Babel monorepo from Flow to TypeScript! It has been a very long process started by @z_bodya, and after migrating package-by-package @JLHwung just opened this PR 😄 pic.twitter.com/WKXxV8x2MY — Nicolò Ribaudo 🏳️🌈 • 💙💛 (@NicoloRibaudo) July 23, 2022 そう、JavaScript のトランスコンパイラである Babel のソースコードが Flow から TypeScrip
System.Text.Json 名前空間は、JavaScript Object Notation (JSON) との間でシリアル化および逆シリアル化 (またはマーシャリングとアンマーシャリング) を行う機能を提供します。 "シリアル化" は、オブジェクトの状態 (つまり、そのプロパティの値) を格納または送信できる形式に変換するプロセスです。 シリアル化された形式には、オブジェクトに関連付けられているメソッドに関する情報は含まれません。 "逆シリアル化" では、シリアル化された形式からオブジェクトを再構築します。 System.Text.Json ライブラリの設計では、広範な機能セットよりもハイパフォーマンスとメモリ割り当ての少なさが強調されています。 組み込みの UTF-8 サポートによって、UTF-8 としてエンコードされた JSON テキストの読み取りと書き込みのプロセスが最適化さ
「WebAssembly 2.0」に関する最初のワーキングドラフトが公開。整数における符号拡張命令、関数からの複数の戻り値などを拡張 W3Cの WebAssembly Working Groupは、「WebAssembly 2.0」に関する最初のワーキングドラフト「Web Assembly First Public Working Draft」を公開しました。 WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットとして仕様策定と実装が始まりました。2017年には主要なWebブラウザでのサポートが実現し、2019年12月にはW3Cの勧告に到達しました。 WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly Ja
Next.jsといえば、Vercelで簡便なデプロイができることで有名ですが、GCPのCloud Runでもそれに負けないくらい簡単にデプロイできるようになってきました。 本記事では、GitHubでソース管理されたNext.jsアプリケーションをCloud Runにデプロイし、mainブランチへのpushをトリガーとしたデプロイの自動化を設定する方法を紹介します。 1. Next.jsアプリケーションの作成 Cloud Runでデプロイするためには、Next.jsをDockerに対応させる必要があります。Next.js公式がwith-dockerというexampleを公開しているので、今回はこれを利用しましょう。
こんにちは。マネージド&セキュリティサービス部セキュリティサービス部門の閏間です。総合リスクマネジメントサービス「WideAngle」の新サービスの企画を担当しています。 本記事では、私がセキュリティの知識・技術向上のために業務外で取り組んでいるバグバウンティプログラムについて、3回にわたって紹介します。 本記事により、バグバウンティプログラムの有効性と、脆弱性探しのおもしろさの両方を伝えられれば幸いです。 (前編)バグバウンティプログラムの有効性について (中編)脆弱性探しの魅力と調査方法について (後編)実際に発見した脆弱性の詳細について【本記事】 なお、バグバウンティに関する記事としては、NTT Com社内バグバウンティのご紹介もありますので、ぜひそちらもご覧ください。 脆弱性の実例:3つの問題が重なってXSS(Cross Site Scripting)が発生 本記事では、私が過去に
Re: 僕らを縛る Node.js という呪いについて - あるいはなぜ TypeScript 以外が真っ当な選択肢にならなかったか https://d.potato4d.me/entry/20220405-nodejs/ へのアンサーソング。 プログラミング言語としての JavaScript の話をする。 2010年頃、Python 2 でプログラミングを学習した自分にとっては Node.js + CoffeeScript が Better Python だった。 CoffeeScript は当時の JS(ES3~5) に足りない機能を補ってくれて、Python と同じく空白制御のオフサイドルールなのが気に入った。見た目が少しだけ Ruby っぽいので当時全盛だった Rails の人間に訴求するにも有利だった。 Node.js のモジュールシステムである Commonjs は Pytho
JavaScriptの進化で変わる身近なコーディング習慣 uhyo ( https://twitter.com/uhyo_ ) JavaScriptは歴史が結構長い言語であり、さまざまなベストプラクティスがあります。一方で、JavaScriptは進化を続けており、それに伴ってこれまでに蓄積したベ…
function init() { var name = "Mozilla"; // name は、init が作成するローカル変数 function displayName() { // displayName() は内部に閉じた関数 console.log(name); // 親関数で宣言された変数を使用 } displayName(); } init(); init() 関数はローカル変数 name を作成し、それから関数 displayName() を定義しています。displayName() は init() の中で定義されている内部関数で、その関数本体の内部でしか利用できません。displayName() 自体はローカル変数を持っていませんが、外側のスコープで宣言された変数にアクセスできるので、displayName() では親関数 init() で宣言された変数 name を
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。 0s��View in English ���Always switch to English JavaScript (JS) は軽量でインタープリター型(あるいは実行時コンパイルされる)第一級関数を備えたプログラミング言語です。ウェブページでよく使用されるスクリプト言語として知られ、多くのブラウザー以外の環境、例えば Node.js や Apache CouchDB や Adobe Acrobat などでも使用されています。 JavaScript はプロトタイプベースで、マルチパラダイムで、シングルスレッドで、動的な言語であり、オブジェクト指向、命令型、宣言型(関数プログラミングなど)といったスタイルに対応しています。 JavaScript の
Socket.IOBidirectional and low-latency communication for every platform PerformantIn most cases, the connection will be established with WebSocket, providing a low-overhead communication channel between the server and the client. ReliableRest assured! In case the WebSocket connection is not possible, it will fall back to HTTP long-polling. And if the connection is lost, the client will automatical
今日リリースされた TypeScript 4.5 Beta の新機能として、標準ライブラリの差し替えが従来よりも簡単になるというものがあります。 筆者は TypeScript の標準ライブラリからanyを排除してより安全にしたbetter-typescript-libを開発していましたが、このたび TypeScript 4.5 に対応した v2.0.0 のベータ版を用意しました(2.0.0-beta)。 この記事では better-typescript-lib の簡単な紹介に加えて、TypeScript 4.5 の機能の解説やそれによって better-typescript-lib に起こった変化を紹介します。 better-typescript-lib について better-typescript-lib は、TypeScript の標準ライブラリをより型安全にしたものです。better
Annex B について JavaScript の言語仕様には Annex B という項目があります。ここには Web 互換性のために残されているレガシーな機能の仕様について記述してあり、新たに ECMAScript のコードを書く際にこれらの機能を使用したり、その存在を前提にしたりしてはいけないと明記されています。 String#big などの今となっては全く実用性のないメソッドや、escape, unescape 函数、もともと IE の独自実装だった String#substr などについて記述されています。 ブラウザではこれらの機能を取り除くことが出来ないので残念ながら扱うことが出来ます。また Chrome の JavaScript エンジンである V8 を使っている Node.js や Deno でも Web 互換性を重視していることもあって扱うことが出来ます。 一方で Web
はじめに Next.js で MPA を構築していると、ページ単位でアクアセスコントロールを行うニーズやケースがよく発生します。 ここでのアクセスコントロールは、ページごとにアクセス可能な条件を定義したり、ルールにそぐわないアクセスを別のページに転送させるなどの処理を意味します。 例えば、一般ユーザ向けのページと、登録済みユーザ向けのマイページを持つケースを考えてみると… 一般ユーザ向けページは誰でもアクセス可能 マイページはログイン済みのユーザのみアクセス可能 ログインのためのサインイン・アップフォームのページも存在するが、ログイン済みであればマイページにリダイレクトされる ただし、パスワードリセットのフォームは誰でもアクセス可能 今回は上記のルールを実装する上での、いくつかのアクセスコントロールパターンを考えます。 個人的には中規模以上のプロジェクトではパターン3をおすすめします。その
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く