2025年度 traP新歓オリエンテーションのLTで発表した内容です。5分のLTなので1章のみを話しました。
私の塾は基本、成績のあまりよろしくない生徒が来ていたのだけれど、たまに勘違い(?)した親が、ものすごく成績の良い子を連れてきて「お願いします」と言ってくる場合があった。中学受験に失敗し、高校受験で挽回したい、という熱意を母親が持っていた。面接のとき、母親は子どもに語りかけた。 「あなた、同級生の○○ちゃんが合格して、泣いて悔しがったでしょう?高校受験で挽回する、って誓ったじゃない!?○○ちゃんは今頃頑張っているよ。負けていられないわよ」子どもはうなづきつつも、またその話か、といった、辟易とした顔をした。 不合格だった時は、本人も口にしてその通りのことを言ったのだろう。けれど、それを言質に取られて、母親からヤイノヤイノと急き立てられる毎日に、ほとほと疲れ切った様子だった。塾以外の時間も勉強漬けにされ、中学1年なのに眉間に険が走っていた。大の勉強嫌いになってしまっていた。 自分の親とはいえ、他
Webページのパフォーマンスを向上させることは、CSSでも可能です。去年の暮れからChromeで利用できるようになったCSSの新しいプロパティで、2021年現在Edge, Operaにもサポートされています。 読み込みパフォーマンスを向上させるために最も効果があるCSSの新しいプロパティcontent-visibilityについて紹介します。 content-visibility: the new CSS property that boosts your rendering performance by Una Kravets, Vladimir Levin 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに content-visibilityのサポート状況 CSS Containmentとは content-visi
この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの
Home » サンリオ来場者が言葉を失い茫然としたVTuberキヌのVRパフォーマンス 現場では何が起きていたのか? サンリオ来場者が言葉を失い茫然としたVTuberキヌのVRパフォーマンス 現場では何が起きていたのか? 12月11日(土)12日(日)の2日間にかけて行われたサンリオの公式バーチャルイベント「SANRIO Virtual FES」。その無料ライブのひとつとして行われたVTuberキヌさんのパフォーマンスが、体験した来場者たちの大きな話題となっています。著者もその現場に立ち会い、あまりの出来事に涙してしまったほど。今回は現場で一体何が起きたのか、その一部を紹介します。 そのパフォーマンスが行われたのは、無料エリア「B4 CHILL PARK」。20時半ちょうどになると、キヌさんの顔のアイコンが画面に登場し、これから行われるパフォーマンスについてアナウンスが行われました。 しか
例年「HDD/SSD故障率レポート」を公開していることでも知られるBackblazeが、同社が運用するHDDの総容量から、「そもそも故障率とは何なのか?」「バスタブ曲線とは何なのか?」「HDDは何年間使えるものなのか?」について解説しています。 How Long Do Disk Drives Last? https://www.backblaze.com/blog/how-long-do-disk-drives-last/ Backblazeは堅牢(けんろう)でスケーラブルながらも低コストというクラウドバックアップおよびストレージサービスを提供する企業で、その公式ページを見ると、50億個のファイルを900ペタバイト(90万テラバイト)も保存しているとアピールされています。 最高の無制限オンラインバックアップおよびクラウドストレージサービス https://www.backblaze.com
Apple M1についての面白い記事を見かけて、久しぶりにメモリモデル屋(?)の血が騒いだのでブログを書く。 note.com 強いメモリモデル 現代のCPUアーキテクチャでは、x86(64bit, 32bitどちらも)が「強いメモリモデル」を採用しており、それ以外のメジャーなCPUが「弱いメモリモデル」を採用している。この「強いメモリモデル」「弱いメモリモデル」について、まずおさらいしておこう。 以下のように、2つの変数a, bに対して異なるCPUコアが同時にアクセスしたとする。 int a = 0; int b = 0; CPU1: a = 1; b = 1; CPU2: int r1 = b; int r2 = a; (上記はC言語に似た疑似コードを用いているが、実際は機械語命令になっていると考えてほしい。つまり、CPU1は変数a, bの示すメモリアドレスに対するストア命令を実行して
技術部クックパッドサービス基盤グループの id:koba789 です。 昨年まではデータ基盤グループというところで 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤 を作ったりしていました。 今年はちょっとチームを移動しまして、検索システムをいじっていました。今回はそのお話です。 なお、クックパッドには様々な検索システムがありますが、この記事では説明を簡単にするためにレシピの検索のみに焦点をあてています。 クックパッドの検索システムにあった課題 クックパッドにはレシピを検索できる機能があります。 プレミアム会員限定の人気順検索もこの機能の一部です。 しかし、この重要な機能を支える検索システムにはいくつもの課題がありました。 Solr が古すぎる クックパッドでは、レシピ検索を含む多くの検索機能にSolrを用いています。 今年の始めに私がこの課題に取り組み始めた時点では、その Sol
はじめに こんにちは。yutotuyです。 今回は、わたしが個人開発している動画編集ソフト、Beutlを紹介していきます。 また、次回以降の記事からはBeutlの開発中に発生した課題と解決策を載せていきます。 背景 私が動画編集ソフトの開発を始めたのは、中学生の頃にさかのぼります。当時、趣味で動画編集をしていた私は、使っていたAviUtlというソフトのスクリプト言語を通じてプログラミングに興味を持ちました。 コロナ禍で自宅にいる時間が増えたこともあって、「もっと性能が良く、安定した動画編集ソフトがあったらいいな」という単純な思いから、プログラミングの勉強と並行して「BEditor」(Beutlの前身)の開発を開始しました。実は、開発する前はAviUtlの利用を便利にするソフトの開発を行っていましたが、AviUtl本体のパフォーマンスや安定性に根本的な課題を感じ、ゼロから新しいソフトを作るこ
Auto increment(自動採番)型を採用したくない場合 Auto Incrementは、データベースにおいて自動的に一意の識別子を生成するメカニズムです。通常、数値型の列が対象となり、新しいレコードが挿入されるたびにその列の値が自動的にインクリメントされます。典型的なIDですかね。 ここでは一意性の確保の話や、データ移行やバックアップのデメリットには言及せず、セキュリティとプライバシーの懸念にフォーカスして考えます。 予測可能性 Auto Increment型のIDは連番であるため、次に生成されるIDが容易に予測可能です。これにより、攻撃者がシステムの内部構造を推測し、不正アクセスを試みるリスクが高まります。 情報漏洩のリスク 連番のIDはデータベースの挿入順序を反映しているため、公開されることで企業の活動パターンやデータ生成の頻度が漏洩する可能性があります。 例) 競合他社は、公
「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」という本を6名の共著で執筆しました。技術評論社さんから、2022年6月4日発売予定です。電子版もでます。 gihyo.jp Amazon はこちら。 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践 作者:藤原 俊一郎,馬場 俊彰,中西 建登,長野 雅広,金子 達哉,草野 翔技術評論社Amazon タイトルの通り、ISUCON で出題されるようなWebサービスを例にして、Webサービスのサーバーサイドパフォーマンスチューニングを指南する内容です。通称「ISUCON本」と呼んでください。 2020年の末に、技術評論社さんからWebサービス高速化 × ISUCONに関する書籍を執筆しませんか、と藤原までお誘いをいただいたのが発端でした。 書きたい気持ちはあったものの、内容的にとて
今年の本業は、 3rd party script で、そこから呼ぶウィジェットを最適化するコンパイラを書く、その仕様を考えて、実装するという感じだった。要は Google Analytics と、最適化コンパイラ付き GTM みたいなものを作っていた。その内容は以下に書いた。 サードパーティスクリプトの極限環境向け Svelte パフォーマンス改善に Core WebVitals という大義名分を得た 今年は、 パフォーマンスのエンジニアをやっていた、と思う。サードパーティスクリプトの配信を生業にする会社のエンジニアとしては、来年の Core WebVitals というパフォーマンス関連の大きな変化で、波にのってやりたいことがやれたと思う。 Core WebVitals の導入で実際にどれぐらいの影響がでるか不明だが、パフォーマンスが SEO に影響する、というのは、 若干やりすぎと思いつ
はじめに 分散システムの設計および開発において、キャッシュはパフォーマンス向上のための非常に重要な要素です。頻繁にアクセスされるデータをキャッシュすることで、アクセス速度が遅いデータベースへのアクセスを削減し、データへの迅速なアクセスを可能にします。これにより、システムの全体的な効率とパフォーマンスが向上します。 しかし、キャッシュは慎重に設計しないとむしろパフォーマンス上のデメリットになるケースが存在します。 この記事ではよく遭遇するキャッシュ設計の問題とその回避策について解説します。 Cache penetration DBに存在しない値を検索したときに、DBから返された空の結果をキャッシュしない場合に発生するシナリオです。 このシナリオではDBに存在しない値を繰り返し検索することにより、その値がキャッシュされていないため検索ごとにDBへのアクセスが必要になってしまいます。 存在しない
PHPerKaigi 2024の登壇資料のほうが図面がわかりやすいので記載する。 ※2024/06/25 追記 speakerdeck.com どうもキャッシュバスターズ、 id:Soudai です。 Cache(以下、キャッシュ)は特定の場面に置いて劇的な効果を発揮し、様々な問題を解決する反面、新たなコンポートやミドルウェアが追加され、複雑性が上がり、運用のレベルが上がるため、扱いに注意する必要があります。 キャッシュを活用することで、パフォーマンスの改善や負荷軽減が行われ、コンピュータリソースの最適化によるサーバコストの削減や、レスポンスの改善によるユーザエクスペリエンスの改善がされます。 反面、その劇的な効果に毒され安易に多用すると、サービスが強くキャッシュに依存してしまい、非常に壊れやすくなり、運用が難しくなってしまいます。これをWeb界隈では「キャッシュは麻薬」と比喩されて、戒め
こんにちは、19のSysAd班の翠(sappi_red)です。普段はtraQのフロントエンドの保守を行ったりしています。 こんばんは、19のSysAd班のtemmaです。普段は普段どおりのことをしています。この記事の面白い部分はすべて僕が書いています。面白くないところは翠君が書いています。 この記事では、日々パフォーマンスに頭を悩ませる開発者の方のために、ワンタッチで劇遅SQLを200倍高速でキュートなSQLに劇的ビフォーアフターする方法を紹介します。 「おいおいおい、遅くしたくて記事を読み始めたのに話が違うじゃないか💢」と思ってるそこのあなた👈 早くできるということは遅くもできるんですね。 TL;DR ここにテーブルがあります。 CREATE TABLE messages ( id CHAR(36) NOT NULL PRIMARY KEY, text TEXT COLLATE ut
この2点を改善していきます 最初に実施した高速化は、サイトの通信速度の改善から。CDNという技術で通信速度を上げる技術を使用するため、AmazonのCloudFrontにファイルをそのままアップロードして、コピーの阿部寛のホームページを作成しました。 ファイルをアップロードします このCDNの使用により、0.03秒ほどの高速化に成功。CDNは世界中のサーバにサイトのキャッシュを作成することで物理的な距離を短縮して海外のサイトでも早く見られるようにする技術ですが、日本にサーバがあると思われる阿部寛のホームページが速くなったのは、CloudFrontが次世代の通信を実装しているからではないかと推測しています。 高速化に成功 続いてファイルサイズ圧縮のため、サイトトップにある阿部寛さんの写真を「.jpg」形式から次世代の「.webp」形式に変換し、背景の壁紙に使われている「ABE Hiroshi
こんにちは。 EC基盤グループ サーチチームの 山村です。 この記事は、 Elastic Stack (Elasticsearch) Advent Calendar 2022 の 23日目です。 2か月ほど前になりますが、2022年10月26日に実施された 第50回 Elasticsearch勉強会 で発表させていただきました。 私が外部での発表するのは、2016年6月のSolr勉強会 以来で、非常に緊張しました。 日々の業務にかまけて、ブログが後回しになっていたことで大変遅くなってしまいましたが、上記の発表で話した内容とスライド資料から、話したかったポイントを抜粋するとともに、勉強会で不足していた部分について補足をします。 当日、発表を終えたところで気が抜けてしまい、Twitter で頂いていた質問に満足に答えられませんでしたので、この場で補足説明を含めて出来るだけ回答したいと思います。
すみません、ISUCONのアレに火がついてしまったので..。 Advent Calendarとはとくに関係がありません。 qiita.com qiita.com こちらの記事をみて、気になってしまったので interpolateParams の追加とMySQLチューニングをしてベンチマークを回してみました。 ベンチマークの環境が公開されているのは素晴らしいですね。 github.com 8vCPU/16GB Memのc5a.2xlargeなEC2のインスタンスを起動して、以下の手順にしたがってdockerとdocker-composeをインストールしました。OSはUbuntu 20.04を使いました。 docs.docker.com docs.docker.com 上記のbenchmarkのrepositoryをgit cloneし、compose build && compose upし
Cloudflareは、JAMスタックを用いてWebサイトを構築する新サービス「Cloudflare Pages」が正式版として提供開始されたことを発表しました。 JAMスタックによるWebサイトの構築とは JAMスタックとは、JavaScript、API、Markup Language(HTML)を主な構成要素としてWebサイトを構築する手法を指します。 WordPressに代表される多くのCMSでは、ユーザーからのリクエストに反応して動的にHTMLが生成されることで、動的なWebサイトを実現しています。この場合、HTMLの生成に一定の時間がかかるため高速なWebサイトの構築が容易ではないこと、サーバへの負荷によりスケーラブルなWebサイトの構築も容易でないことなどが課題です。 JAMスタックでは、HTMLの生成はWebサイトの生成時に行うことで、基本的には静的なWebサイトと同様の高速
HTTP/3|Webエンジニアが知るべき新常識 ─ QUICやコネクションマイグレーションなどを学ぶ 新しい通信プロトコルとして普及が進んでいるHTTP/3については、エンジニアHubでも過去に概論的な記事を掲載しています。今回はアプリケーション開発者が自社サービスでHTTP/3を採用することを想定して、仕様上の留意点や、どのように使い始めるか、そしてサイトを制作する際に注意しておきたいポイントまでを藤吾郎(gfx)さんに解説していただきました。 本記事ではHTTP/3およびその通信プロトコルであるQUICを、アプリケーション開発者として活用する立場で入門します。HTTP/3は、HTTP/1.1とHTTP/2に続く新しいメジャーバージョンのHTTPプロトコルです。HTTP/3はHTTP/1.1およびHTTP/2を置き換えるポテンシャルを持っています。将来的にほとんどのインターネットトラフィ
寝ても寝ても眠い。結果、日中の眠気に耐えられず、仕事のパフォーマンスが下がってしまう……。そんな悩みを抱えている人も少なくないでしょう。 皆さんはちゃんと「休めて」いますか? スキルアップやキャリアアップに励むなかで、ついおざなりにしがちなのが「休むこと」です。「20代の努力が30代のキャリアを作る!」とはよく言われるものの、働き過ぎて体を壊してしまったら元も子もありません。 「自分に合った休み方を模索したり、休みの捉え方を考え直したりすることで働き方がガラッと変わります」 そう語るのは、20年にわたり休み方を研究し続けてきた片野秀樹さん。片野さんは日本のビジネスパーソンの休みに対するリテラシーの低さに警鐘を鳴らしながら、「正しい休みの取り方」を発信してきました。そんな仕事の集大成となる著書『休養学:あなたを疲れから救う』(東洋経済新報社)では、「疲れたらコーヒーを飲む」「甘いもので自分に
量販店の店頭やネットショップで電池を買おうとして、どれがいいのか迷ってしまった経験がある人は多いはず。アルカリ電池は、マンガン電池に比べて長時間安定した電圧・電流を維持できるので、特に一般的な規格の単三アルカリ電池は懐中電灯や携帯オーディオ機器、おもちゃやゲームのコントローラーなど幅広い製品の動力源となっています。そこで、太陽光発電や電化製品の専門家が、市販されているさまざまな単三アルカリ電池や充電池の性能を実際に計測して、その分析結果を公開しました。 Great AA Alkaline Battery Test – Pt 1: Battery Testing Fundamentals | Gough's Tech Zone https://goughlui.com/2016/12/19/great-aa-alkaline-battery-test-pt-1-battery-testing
海外サイト「IT之家」は4月12日(現地時間)、Appleのエンジニアリング担当副社長Kate Bergeron氏とMac製品マーケティングチームのEvan Buyze氏の独占インタビューを公開しました。そのなかでEvan Buyze氏は、Macの実行メモリ容量について興味深い発言をしています。 Macでは2015年以降、全モデルが最低でも8GBの実行メモリを搭載してきました。2020年以降に登場したApple Silicon搭載モデルでは、CPU、GPU、実行メモリを1つのチップに収めたユニファイドメモリとすることで、各チップが分離していた従来モデル(Intel Mac)と比べ、全体的な処理能力も向上しています。 一方、複数のチップをまとめた結果、購入後に実行メモリの容量を増やすという、Intel MacのハイエンドモデルやWindowsマシンではお馴染みのテクニックは使えなくなりました
従来から、「ARMはx86より(電力的に)効率的だ」という言説があります。これは単純に「ARMは省電力なスマホ向けで、x86は電力を食うPC向け」程度のアバウトなイメージのこともありますし、前世紀のRISC vs CISC論争のころからある「ARMはx86 (x64を含む)に比べ命令セットがシンプルなので、命令デコードにかかる電力が少なくて済んで効率的」という議論の形をとることもあります。 この議論については、半導体エンジニアの多くは「ARMがx86 より効率が良いというのは、もはや過去の神話」(in today’s age it is a very dead argument)という認識を共有していると言っていいでしょう。有名なところではApple CPU (ARM)とZen (x86)の両方を開発したジム・ケラー氏のインタビューでも言われていますし、Chips and Cheeseとい
「GPT-4を作ってください」と言われたらどう答える?秋葉拓哉氏:みなさん、こんにちは。秋葉と申します。それでは、発表させていただきたいと思います。 みなさん、さっそくですが、「GPT-4」ってすごいですよね。ここにいらっしゃっている方々はこれについては、もう疑いの余地なく、同意してくださるかなと思います。 では、質問なんですが、もし「GPT-4を作ってください。予算はあるんだよ」と上司に言われたら、どう答えますか? ということをちょっと聞いてみたいですね。 これはけっこう意見が分かれるポイントだと思うのですが、今日は、この質問に対して、少しでもみなさんの回答の解像度を上げられるように話ができればなと思っています。時間が限られていますが、よろしくお願いします。 登壇者の自己紹介とStability AI社の紹介まず、自己紹介ですね。私は、Stability AIという会社に勤めています。
React.js開発当初、「そんなものが使えるはずがない」とFacebook社内で評価されていた。React.jsの開発経緯を振り返る「React.js: The Documentary」YouTube公開 代表的なJavaScriptのフレームワークの1つであるReact.jsがどのように生まれ、発展してきたのかが、React開発当時の関係者やメンテナーなどへのインタビューによって語られる動画「React.js: The Documentary」がYouTubeで公開されています。 動画の作成と公開を行ったのは、ITエンジニア向けの転職紹介などキャリアサービスを提供しているHoneypot社。同社は以前にもKubernetesの歴史を紹介したドキュメンタリー動画「Kubernetes: The Documentary」を公開しています。 参考:KubernetesをGoogleが開発し、
こんにちは。id:shiba_yu36です。MackerelチームでWebアプリケーションエンジニアをしています。最近の開発合宿で、id:syou6162やid:polamjagと一緒に、社内の全チームの開発パフォーマンスを表す指標をGitHubのPull Requestから可視化し、開発チームの改善に活かせるようにしました。今回はその紹介をします。 説明するサンプルコードは、次のレポジトリで公開しているので参考にしてください。ここではGitHubのhatenaオーガニゼーションで集計していますが、forkして少し手直しすれば、別のオーガニゼーションの集計も可能になっています。 hatena/pull-request-analysis-sample 開発チームの改善におけるいくつかの課題感 開発チームのパフォーマンス指標に何を使うか 4つの指標のうち何からまず集計するか 変更のリードタイム
JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開 メタ(旧Facebook)は、JavaScriptアプリケーションのメモリリークを検出するフレームワーク「MemLab」をオープンソースとして公開したと発表しました。 We’ve open-sourced MemLab. #MemLab is a JavaScript memory testing framework that automates leak detection and makes it easier to root-cause memory leaks. 1/2 https://t.co/vo6Gzv56ud — Engineering at Meta (@fb_engineering) September 12, 2022 Metaが展開しているFacebook、Fac
原著者の許諾を得て翻訳・公開いたします。 英語記事: Supercharge the One Person Framework with SQLite | Fractaled Mind 原文公開日: 2024/10/16 原著者: Stephen Margheim 日本語タイトルは内容に即したものにしました。 また、見出しを適宜加えています。 本記事は、Rails World 2024における私の発表を編集して記事化したものです。以下のYouTube動画でもご覧いただけます。 はじめに Railsは誕生したときから、アイデアを超音速で宇宙空間に打ち上げるロケットエンジンのような存在として名を馳せてきました。しかし少なくとも私にとって、自作のフル機能アプリケーションをデプロイして動かすにはロケット科学者になる必要がある気もしていました。 ロケットエンジンは時とともに大型化し、複雑化してきまし
パフォーマンス改善の文脈で良く用いられるフレーズとして、「推測するな、計測せよ」というものがある。これはRob PikeのNotes on Programming in Cからの引用なのだが、原典と少し印象が違う。 Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く