builderscon 2024 で発表した資料です。 動画はこちら: https://www.youtube.com/watch?v=_Prly-RAF7A&list=PLZjwpOgJkJXteFpwAbcVoQXfd2f5q-OPp --- React Server Compon…
![React Server Components の疑問を解き明かす](https://cdn-ak-scissors.b.st-hatena.com/image/square/c9b5a4011a8e0ba3735e3b8a6a7fe84637e9458d/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fe02bb1cc80864bdeaaa991d47fc5b50d%2Fslide_0.jpg%3F31353890)
これらの JavaScript エンジンのうち、以下では特に JavaScriptCore を扱います。 最適化の基本戦略 JavaScript をはじめとする動的言語は、主にインタープリタにおいて実行されます。しかし、インタープリタはコンパイルされたコードと比較して実行に時間を要するという欠点があります。そこで、インタープリタの最適化では、バイトコードの JIT コンパイルが最初に行われます。 しかし、コンパイルには当然時間がかかります。少しでも高速化されたコードを生成するには、より多くの時間をコンパイルにかけなければなりません。コンパイルによる速度向上とコンパイルのレイテンシはトレードオフの関係にあります。 そこで、多くの JavaScript エンジンは、インタープリタと多階層の JIT コンパイラの組み合わせで構成されています。次の図は、主要な JavaScript エンジンの設計
おはようございます! (開発生産性Conference 2024)の現地、虎ノ門ヒルズから品質管理室の荻野 (@kokotatata)がお届けします。 食べログは2024年6月28~29日に開催される開発生産性カンファレンスへと協賛し、ブース出展とスポンサーセッション枠での登壇をします。 ブースでは、Four keysについてのお悩みをみなさまとディスカッションをするためのボードを用意しています。 また、キーキャップ、ステッカー、靴下などのノベルティをご用意しておりますので、みなさまお気軽にお立ち寄りください。 明日(6月29日)の11:20-12:00にホール5-B会場では、品質管理室の菅原と荻野が登壇します。 登壇タイトルは 「インプロセスQAとテスト自動化の両輪で進める食べログの開発生産性と品質改善の3年間」 で、 品質管理室が開発や企画と進める開発生産性と品質改善のについて、Fou
AWKはテキスト処理には便利なツールで、項目区切りにカンマを指定(FS=",")すれば、簡単な CSV ファイルを処理できます。 しかしながら、RFC4180 の規格上の CSV ファイルでは、二重引用符で囲むことで区切り文字や改行コードを要素の中に含めることが出来ます。これを AWK で処理するのは一般に難しいとされています。 これに対して、最近の gawk では「二重引用符で囲まれたカンマ」については、区切り文字列ではなく、要素のパターンを指定する(FPAT="([^,]+)|(\"[^\"]+\")")ことで処理できるようになりました。あとは改行コードだけです。 本文書では、これを外部ツールの補助なしに gawk 5 のコードだけで処理する方法を説明します。 方針 改行コードが要素に含まれている場合、純粋なテキストファイル的に見ると、その行の二重引用符が閉じられていないように見える
以下で使っているExpressの技をまとめた HelpfeelとScrapboxの間のデータ連携 scrapboxの Auto Project Backup Project JSON export 全部やるとメモリ使用量が超安定する before / after サーバーの数がCOVID-19以前に戻った 基本方針:メモリ上に大きな文字列(JSONなど)を保持しない これがとても重要ですshokai.icon*5 node.jsが確保できるメモリ量は--max-old-space-sizeで指定できるが、それも上限2.5GBまで それ以上のデータは扱えない オーバーするとJavaScript heap out of memoryが発生し、プロセスが強制終了してしまう 巨大な文字列ができる所 JSON.parseの引数やJSON.stringifyの返り値 streamの送信バッファ これら
ソースがドキュメントだ。バグも完全に記述されている。 ――まつもとゆきひろ[1] はじめに 本連載ではアジャイル開発を「アジャイルに開発する人たち(アジャイル開発者)が開発するからアジャイル開発」と考え、アジャイル開発者に必要なスキルを磨くための習慣を紹介しています。 これまでの3回を費して紹介した「フィードバックを重視する」「仕組みを育てる」「スケール間に連続性を築く」といった習慣は、チームによるシステム開発の現場でアジャイルにプログラムを書くことを重視したものでした。 しかし、これでは開発対象となるシステムを構成する2つの要素のうち主に1つしか説明していません。2つの要素とは、プログラムとドキュメントです。今回は、これまであまり触れてこなかった、2つの要素のうちの1つであるドキュメントに関する習慣を紹介します。 そのためにまず、アジャイル開発者にとってのドキュメントの位置づけを説明
2015年の初版以来増補改訂を重ねてきた『ビートルズ213曲全ガイド』(著:藤本国彦)が、ビートルズ最後の新曲「Now And Then」、90年代以降に発売された「Free as a Bird」「Real Love」の計3曲を加えた新装版『ビートルズ216曲全ガイド』として2月6日に発売されます。出版元はシーディージャーナル。 以下インフォメーションより 「ビートルズが残した珠玉の遺産!好評だった全公式213曲の徹底ガイドに、話題の「ナウ・アンド・ゼン」などを追加した新装版! 2015年に発売され、たちまち増刷された『ビートルズ213曲全ガイド』。その後、2017年、2021年と「増補改訂新版」が2度登場しました。そして今回、「ビートルズ最後の新曲」(ポール・マッカートニー)の「ナウ・アンド・ゼン」が2023年11月に発売され、世界的な話題となっていることをふまえ、90年代以降に発売され
だれでもできるシリーズとして、Rustでカーネルモジュールを実装しながら学んできましたが(役に立たないキャラクタデバイスドライバなど)、そろそろ実際に使える機能を実装したいころですよね! 今回は、筆者が実装したネットワークPHYドライバが、Rustで実装された初めてのデバイスドライバとしてLinuxカーネルに採用された話を紹介します。 誤解:LinuxカーネルがRustをサポート「LinuxカーネルがRustをサポートした」というニュースを見て、Rustのコードがどんどん採用されていると誤解している方もいるようです。このニュースは、「LinuxカーネルをRustでも書けるようになりましたが、実際に何かを実装するかどうかは未定」という意味です。Linuxカーネルは、メモリマネージメント、ネットワーク、暗号など、数多くのサブシステムで構成されており、それぞれのメンテナが、コードの採否を判断しま
今使用している Lenovo ThinkPad X230 は miniDPとVGAポートが付いている。しかしながら、本体の液晶も含めて同時2画面出力しかできない。ドッキングステーションを付けても、同様のようだ。 トリプルディスプレイを使いたいので、USB接続のディスプレイアダプタを試してみた。 環境 Ubuntu 18.04 Thinkpad X230 その1 謎の USB − HDMI ディスプレイアダプタを使う いつどこで買ったかわからない安価なディスプレイアダプタ。 ダイソーのUSB Type-C / Type-A 変換アダプタを使って刺すとこんな感じ: [154395.723167] usb 3-2: USB disconnect, device number 9 [154402.582563] usb 3-2: new full-speed USB device number 1
はじめまして、食べログでSET(Software Engineer in Test)をしているhagevvashiです。本記事では私が所属する食べログのエンジニアコミュニティであるTabelog Developer Dojo(以後TDDとします)の取り組みについての連載 3 記事目として「XP祭り」に参加・登壇した背景やこの活動で得られたものについて紹介します。 TDDや、TDD道場破りについては以下の過去記事をご参照ください。 ■過去記事: 食べログの勉強会の取り組み Tabelog Developer Dojo TDD道場破りやってみた#1 〜最初のターゲットは「XP祭り2023」〜【Tabelog Developer Dojo】 TDD道場破りやってみた#2 〜オンライン時代の新しい形の勉強会とは〜【Tabelog Developer Dojo】 目次 目次 TDD道場破りとは TD
git stashをもっと便利に扱いたいと思い、fzfを使って使いやすくしてみた。以下のURLに載っているものを参考にして自分にとって使いやすいように改変した。 fzfでGUI選択したファイルをgit stashするシェルスクリプト git-stash-explore できたこと 今の変更ファイルをfzfを使って選択して、選択したものだけをstash (git-stash-select) stash一覧の中から中身をpreviewしながら選び、apply or deleteする (git-stashes) 現在の変更ファイルから一部を選んでgit stashするコマンド fzfでGUI選択したファイルをgit stashするシェルスクリプト を参考に、git-stash-selectというコマンドを作った。 #!/usr/bin/env bash # Get the root direct
自作サーバを作成したら録画もしてみたい ゆきたんたんは、NASとして利用することを目的として自作サーバを作成しました。 Raspberry Piを利用して、サーバを構成しています。 NASとしては愛娘の写真をどんどん追加して、妻と共有しています。 容量が3Tあるため、ピンボケ写真も含めてとにかく保存します。 見返す際には、ピンボケ写真も含めて味がある写真になっています。 しかし、容量が3Tもありながら画像だけというのも、勿体ない使い方です。 これが5年、10年と長期運用すれば話は別かもしれませんが、まだ1年目です。 まだまだ容量に余裕があるため、録画機能を追加することにしました。 今回は、録画サーバの構成に必要なものと活用についてまとめます。 そもそもRaspberry Piに載せるため、最低限の構成となっています。 自作サーバを作成したら録画もしてみたい 録画サーバの概要 録画サーバのメ
ツイート ブックマーク 設計やオブジェクト指向は理解したつもりなのに、実は違うというような事の繰り返しのような気もしますが、それにしても僕はなにも理解できていないんですよね。 DomainKataを少し使って理解した気になっていんですが、ただの勘違いでした・・・。 DDDを解ったつもりになっていて、すごく恥ずかしくて、すごく悔しくて、毎日悩んでいます。 だから、今わからない事をこの記事に残しておこうと思いました。 たとえばカテゴリ一覧を表示するということに関して カテゴリ一覧を表示するページなんてのWebアプリによくある実装内容だと思います。 このような場合どうしたらいいのか悩んでいます。 エンティティの候補として カテゴリ カテゴリ一覧(コレクション的な) このような感じになるかと思います。 カテゴリ一覧ってサービスじゃないの? 「カテゴリ一覧」をエンティティとして表現するのはありかと思
こんにちは,浦本です。 今回はUML(Unified Modeling Language)について取り上げたいと思います。 UMLとは? UMLとは,システムの設計を様々な切り口でモデル化し図示するためのグラフィカル言語です。 オブジェクト指向設計では,設計概念を表す何らかの設計図が必ず必要になります。 なぜならば,コードだけでは,コンポーネントの構成や,オブジェクトの相互作用を 分かりやすく表現できないからです。 特に,ある程度規模の大きなシステム開発においては,設計図が無い場合, 拡張性やメンテナンス性に乏しいクラスの山が作られがちです。 設計図が無いと,システムが要求を満たしていることを保証するユニットテストも行えません。 そこで,オブジェクト指向設計を,標準化された図として表現できるUMLが役に立つわけです。 最低限必要なのはクラス図とシーケンス図 UMLには10種類以上もの図があ
こんにちは、クラウドワークスの新規事業のエンジニアとして仕事をしている高梨です! 最近、「実践ドメイン駆動設計」という本を読みました! 500ページ近くもある技術書で、なかなか量は多かったのですが、DDDがどんなものなのか一通り大枠を掴めた気がします。 ただ読み終わった後にこんな疑念や不安をいだきました。 「たしかにかなり面白そうだけど、実際にやるとどれだけ工数かかるんだろう...?」 「設計の話は全然出てこなかったけど、DDDで作るとなるといったい何から始めればいいんだ?」 「戦術についての知識はついたけど、実際に書こうとしたらできなそうだな...」 そこで、そういった疑念や不安を解決するために、実際にDDDでサンプルプロダクトを作ってみようと思ったわけです。 実際に作ってみるのが、結局一番理解が進みますしね。 今回は、そのプロダクトがリリースされるまでの過程や感想を、作成した設計書やソ
クレイジーピエロ 著 無から始める自作CPU CPUは作れる!!!!!!!!ご存知でしたか!!!?????? CPU、それは我々が暮らす情報社会の基盤となる魔法の石です。 世に存在する全てのソフトウェア、例えばゲーム、AI、Webサーバ、OS、これらは全てCPUが無ければ動きませんし、今や車や飛行機、家電にも全てCPUが入っている時代です。 そんな誰もがCPUに依存している時代にも関わらず、CPUについて理解を持っている人間は余りにも僅か、というのが現状です。 そんな今こそCPUを作りましょう。 CPUを作り、完全に理解する事で、CPUによって成り立つ技術を学ぶ上での、揺るぎない自信と確証を身につける事が出来るでしょう。 本記事ではCPUという究極のブラックボックスに光を当て、半導体やプログラミングの知識が無の状態から、CPUを作る事を目標としています。 必要な物 本記事の内容の99%はW
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く