業務委託で STORES の開発をしている @inouetakuya です。 先日 STORES のフロントエンドチーム内でクライアントサイドのバリデーションについて見直す機会があり、特にバリデーションエラーのデータ型をどうするかについての議論が興味深かったので、共有させていただきます。 背景 議論の背景について簡単に触れておくと、STORES のクライアントサイドでは、バリデーションのライブラリとしてこれまで joi-browser を使ってきました。 しかしながら、本家の Node.js 版の joi がブラウザ対応したことにより joi-browser が deprecated になったことを受けて、今後も joi を使い続けるかを検討したところ、 joi-browser と joi の最新バージョンとの間で API の差異がいくつかあり、joi-browser から joi への乗
主にバックエンドのエンジニアとしてクックパッドマートの開発に携わっている塩出( @solt9029 )です。 美味しい食材をユーザにお届けするサービスであるクックパッドマートでは、日々街の販売店や地域の生産者が商品の登録を行っています。 商品を登録する際、販売者は消費期限をはじめとする様々な品質保証の情報を正確に入力する必要があります。 しかし、商品の種類や状態に応じて記載するべき品質保証の情報は異なるため、全項目が羅列されるフォームでは正確な入力が困難であり、販売者および商品の審査を行う社内の運用メンバに対して大きな負担をかけていました。 そこで、 JSON Schema を利用して複雑なフォームの出し分けを自動で制御し、またバックエンド側でのバリデーションも行うことが出来る仕組みを導入しました。 その結果、商品の種類や状態を選択するだけで、適切な品質保証の情報が自動的に入力され、必要な
71 A History of Clojure RICH HICKEY, Cognitect, Inc., USA Shepherd: Mira Mezini, Technische Universität Darmstadt, Germany Clojure was designed to be a general-purpose, practical functional language, suitable for use by professionals wherever its host language, e.g., Java, would be. Initially designed in 2005 and released in 2007, Clojure is a dialect of Lisp, but is not a direct descendant of any
Written by @stlankes and @mkroening Published on Jan 22, 2021 Hermit is a unikernel project, that is completely written in Rust. Unikernels are application images that directly contain the kernel as a library, so they do not require an installed operating system (OS). They are typically used in virtualized environments, which build the backbone of typical cloud and edge infrastructures. Virtualiza
I have an affinity for performance optimization and making software as efficient as possible. Over the years, I've encountered specific instances and common patterns that make software or computers slow. In this post, I'll shine a spotlight on some of them. I'm titling this post Surprisingly Slow because the slowness was either surprising to me or the sub-optimal practices leading to slowness are
The Fastest, Safest PNG Decoder in the World Summary: Wuffs’ PNG image decoder is memory-safe but can also clock between 1.22x and 2.75x faster than libpng, the widely used open source C implementation. It’s also faster than the libspng, lodepng and stb_image C libraries as well as the most popular Go and Rust PNG libraries. High performance is achieved by SIMD-acceleration, 8-byte wide input and
Get new posts via RSS or Twitter, or by subscribing to my newsletter: Opening remarksWhat's all this about? 2021-03-04 Prior knowledge 2021-03-04 Reading the Nix manualWhat we talk about when we talk about Nix 2021-03-04 Quick starts, full hearts 2021-03-04 Basic package management 2021-03-05 Profiles 2021-03-06 Garbage collection 2021-03-06 Channels 2021-03-07 Learning to share 2021-03-07 My firs
IIJのコンテンツ配信事業やグループ会社のJOCDNやIIJエンジニアリングに所属。CDNサービスの運用保守以外にもイベントで現場からライブ配信作業や動画編集などやってます。にじさんじ所属の星川サラが大好きなエンジニア。 電波時計が自宅で使えない どうしたら正確な時刻を刻めるのか そこで考えたのが ラズパイを買って壁にディスプレイを取り付けNTPで取得した時間を常時表示する NTPに対応した掛け時計を買う 「NTPリピーター」と呼ばれる装置からNTPで取得した時間を電波時計で受信できるように送信する 最初は1を考えましたが見た目が気に入らなく常時ディスプレイを表示はあまりにも色々な理由で微妙すぎるのでやめた。 その後2と3で悩みました。 2. NTPに対応した掛け時計を買う 参考製品:https://www.seiko-sol.co.jp/products/ntp_clock/ これが一番
let hello who = <html> <body> <h1>Hello, <%s who %>!</h1> </body> </html> let () = Dream.run @@ Dream.logger @@ Dream.router [ Dream.get "/" (fun _ -> Dream.html (hello "world")); ] Dream is an easy-to-use, boilerplate-free Web framework, whose entire API fits on this page! It supports TLS, WebSockets, and GraphQL. HTTP/2 support is transparent. It also includes: a nice log and OCaml runtime confi
はじめに 2021年4月20日、『基礎から学ぶ 組込みRust』(C&R研究所) を出版します。Rust の文法から組込み Rust でファームウェアを作成するところまでを、片手で持てる (多分!まだ持ったことないけど!) 1 冊の本にまとめた、喉から手が出るほど (私が) 求めていた書籍です。 先日、無事入稿を果たしたので、今の気持ちを徒然なるまま綴ったのが、このエントリです。 基礎から学ぶ 組込みRust 作者:中林 智之,井田 健太発売日: 2021/04/20メディア: 単行本(ソフトカバー) 一番始めに言いたいこととしては、今現在、「組込み Rust がプロダクションレディか?」、と問われると、「ほとんどのプロジェクトに対してそうではない」というのが私個人の見解です。セーフティクリティカルな分野では、機能安全をはじめとする認証の問題があり、そんなにおいそれとプログラミング言語変更
The egg project uses e-graphs to provide a new way to build program optimizers and synthesizers. An e-graph compactly represents many equivalent programs. These four e-graphs represent more and more (even infinite!) ways to write (a × 2) / 2. egg makes e-graphs fast and flexible enough for use in program optimization and synthesis. The core egg library provides high-performance, flexible e-graphs
Yesterday I asked on Twitter about what problems people are solving with strace and as usual everyone really delivered! I got 200 answers and then spent a bunch of time manually categorizing them into 9 categories of problems. All of the problems are about either finding files a program depends on, figuring out why a program is stuck or slow, or finding out why a program is failing. These generall
美乳テーブルとは 「美乳テーブル」という物がある。 「EUC-JP の文章を Shift_JIS だと誤認識されない様に、EUC-JP 固有のバイト値を文章先頭付近に埋め込んでおく」という物。 具体的に、Shift_JIS には 0xFD と 0xFE が現れず、EUC-JP にはそれが現れるので、その値を含む文字コードを書いておこうという事で、その文字の集合に付いた名前。 “美” = 0xC8FE、“乳” = 0xC6FD。 各文字エンコーディングの事情 但し、これは EUC-JP での話。 一応、文章の先頭付近に日本語の文字を書いておくのは、他の文字エンコーディングでも認識のヒントにはなるけど。 逆に「Shift_JIS の文章を EUC-JP だと誤認識されない様にする」には、EUC-JP にはないバイト値の 0x80〜0xA0 を書けばいいんだろうけど、これは沢山ありそうだから、慎
フィンガープリントとはブラウザフィンガープリント技術(以下、FP技術)とは、文字通り、ブラウザの指紋を使ってブラウザをサーバ側で識別する技術です。 ここでの「識別」とは、同一ブラウザからのアクセスを同一ブラウザからのアクセスと判定し、違うブラウザからのアクセスは違うと判断することを言っています(図1)。 図1 フィンガープリントの識別の概念よく誤解される方がおりますが、これはあくまでサーバ側での識別です。(追記:「Torブラウザがどのサイトへ接続しているのか?」を識別するWebサイトフィンガープリントとも違います)また、どこの誰がアクセスしているのかというように、利用者を特定しているわけでもありませんのでご注意ください。 クッキーによる識別をご存知の方には、「クッキーによるセッション管理やトラッキングでの識別と同じです」と説明した方が分かりやすいでしょうか。FP技術自体は、クッキーの代替技
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く