Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
昨日、OpenAIが生成AIの新しいモデルであるGPT-4oを発表しました。消費するトークン数の節約や、音声合成機能の改善、応答速度の向上など着実な品質改善を見せているようです。私も、特に音声合成(Text To Speech)の表現力について非常に興味を持っています。 私は以前、「OpenAIのGPT-4 Turbo with visionを日本語OCRとして使ってみる」で、GPT-4 Turboの画像認識機能の日本語OCRについて検証を行いました。その当時は、既存のコグニティブAI APIに比べて認識精度が十分でないという評価をしています。とはいえ、その後に出てきたClaude 3 Opusは驚くべき認識精度だったので、OpenAIも巻き返す可能性は十分にあると感じました。Azure OpenAI Serviceを使っている場合は、Vision enhancementという既存のコグニ
こんにちは。 久しぶりに帰省したところ、実家の給湯器のリモコンがIoT対応の製品 RC-G001MW-2 (ノーリツ)になっていました。これはハックしなければならないと思っていじってみたところ、HEMS向けの機能を利用することでわりと容易に制御できたので記事にしてみた次第です。 (画像:ノーリツ公式サイトより) 成果物のコマンドラインツールはnpmに公開しているので、同じモデルや同一プロトコルに対応した給湯リモコンをお持ちの方は実験できるかもしれません(詳細は記事末尾参照)。 HEMS HEMS (Home Energy Management System)とは宅内のエネルギー使用量を管理・可視化する装置です。昨今のIoT対応家電はHEMSとの連携が前提になっているものも増えているようです。 ECHONET Lite HEMSのために国内で策定された通信規格がECHONET Lite(エコ
JavaScriptパッケージシステム「npm」は巨大なバグを抱えていると指摘し、新たなパッケージシステムを開発する「vlt」。npm作者らの参加を発表 npmに代わる新しいJavaScriptのパッケージシステム「vlt」(vōlt:ボールト)を開発しているvlt technologyは、同社にnpmの作者であるIsaac Z. Schlueter氏、npmのスタッフエンジニアリングマネージャであったDarcy Clarke氏、npmのCLIチームであったRuy Adornoらが参加すると発表しました。 Node.jsとnpmが作ったJavaScriptのエコシステム サーバサイドでJavaScriptを実行可能にしたNode.jsの登場と、そのNode.jsを基盤にJavaScriptのアプリケーションやモジュールなどをパッケージングして登録し、自由にダウンロード可能にしたレジストリで
こんにちは。 jQuery から商業プログラミングに入門したやまゆです。 なぜ jQuery だと古い、ダメだと言われるのでしょうか?いいじゃん。 $.ajax で簡単にデータ引っ張ってこれるし、 $("#btn").click(function () { alert("押した!"); }); は誰が見ても何が起こるか一瞬で分かる Simple さがあるじゃん。なんでわざわざ React/Vue/Svelte その他 jQuery ではないライブラリを使わなければならないんでしょうか? 100 億回言われてきたことだと思いますが、私なりに振り返ってみます。 手続き型 UI と宣言型 UI は、手続き型です。 btn という ID の DOM 要素を取得して、それらの(一応複数になる可能性があります)要素に対して click イベントハンドラを登録します。 この処理が実行される前と後では、
Romeとは 現代のJavascript開発には多くのツールチェーンが必要とされます。Babel,webpack,Jest,ESLint,Prettier,Typescriptなどを組み合わせて開発することが多く、さらにこれらの一部代替選としてesbuild,SWC,Viteなどのツールチェーンの選択肢が存在し、選択肢の多さやその組み合わせの複雑さに苦い思いをしたことがある方も少なくないのではないと思います。 こうした中で、新たに開発が進められているツールチェーン、Romeをご存知でしょうか? Romeは先に挙げたように複数のツールチェーンを役割ごとに組み合わせて使うのではなく、1つのツールチェーンでこれら全ての役割を担ってしまおうという壮大な計画を持つツールチェーンです。 Romeは2020/03にFacebookより発表されました。現在は法人化され、yarnやBabelの生みの親である
Intro 「連載するけど、代わりにコードはハイライトさせてほしい」 それが Web+DB Press 編集長に俺が出した条件だった。 技術書籍のシンタックスハイライト エンジニアは普段から、エディタ上でも、リポジトリ上でも、ブログ上でも、何かしらハイライトされたコードを見ている。 そんなエンジニアに向けて書かれた技術書籍でありながら、書籍のコードがハイライトされているのはみたことがない。 「技術書籍がシンタックスハイライトされてないのは、出版社の怠慢だ」 と、割と本気で思っていた。そして、今でも思っている。 特にページを跨ぐような長いサンプルコードを、単色で印刷されても、正直読む気になれない。 白黒だからしょうがないと思われているかもしれないが、白黒だとしても、文字の太さ、濃淡、フォントの微妙な使いわけなどで、かなり見やすくすることができる。 今はやっていないが、このブログでも、印刷用の
皆さんこんにちは。現在、フロントエンドでは宣言的UIが大流行しており、そのためのライブラリもReactを筆頭に複数存在しています。 ライブラリが複数存在するところには当然のように比較や論争が起こるものですが、UIライブラリの場合はパフォーマンスがよく焦点となります。 筆者はReactの信者ですが、Reactは古株ということもあってか、最近の議論ではReactは他のライブラリと比較されるかませ犬のような役割を担うのがよく見られます。「仮想DOMは必要ない」といった類のものです。 しかし、筆者の考えではReactは今でも、もっとも真剣にパフォーマンスに取り組んでいるUIライブラリです。特に、Reactはパフォーマンスを高いユーザーエクスペリエンスのための手段として捉えており、ドキュメントにもユーザーエクスペリエンスという言葉が多く出てきます。 そこで、今回はReactが最も有利になるようなベン
こんにちは、クックパッドで最近はモバイルアプリを離れもっぱらウェブアプリを作っている @morishin です。 先日、社内で「モダンウェブフロントエンド勉強会」と題して React, Next.js, Core Web Vitals, SSR, CSR, SSG, ISR, SSR Streaming, React Server Component といったキーワードに触れつつ、昨今のウェブ開発事情について話をしました。せっかくなのでその内容の共有と、勉強会を開催した動機などを紹介したいと思います。 この話は fukabori.fm でも取り上げていただいてお話ししたので、よければそちらもご視聴ください。 fukabori.fm 背景・動機 クックパッドのウェブアプリケーションは10年以上もの間 Ruby on Rails で開発されてきましたが、2020年から一部のページは Next.
You’ve got a new project to work on. Or you’ve got an existing project you’re motivated to upgrade to a more modern approach. Or perhaps you’re dissatisfied with your current modern framework or second-guessing yourself and you’re investigating alternatives. In any case, you’ve got a decision to make. There are lots of “modern” frameworks to choose from. Even if you’re not facing this choice right
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに WebAssembly (略して Wasm) では WASI や WIT、 Component Model など様々な仕様があります。 それぞれが登場した背景、モチベーションなどを理解することでなんとなく概要を掴んでいくことができるのではないかと考えたため、過去・現在・未来と時間軸で整理してみました。 まず Wasm とその特徴に関して簡単に紹介した後、Wasm の過去として生まれた背景やモチベーションを紹介します。 そして現在の Wasm がなぜ注目を集めているのか、そして現在策定中の仕様と目指している未来について紹介します
自分の家族がもし認知症になったら──。そんな可能性について一度でも考えたことのある人は少なくないと思います。しかし、実際の認知症の症状や進行の仕方についてはよく知らず、漠然と不安を感じている方もいるのではないでしょうか。 芸人・漫画家の矢部太郎さんは、2023年2月に『マンガ ぼけ日和』(かんき出版)を発表。作中では認知症を患った登場人物の日常から看取りまでが春夏秋冬になぞらえて描かれ、認知症の症状や患者への接し方について親しみやすいトーンで知ることができます。 執筆に当たっては、グループホームも実際に見学されたという矢部さん。制作を通して、認知症のイメージはどのように変化したか、今後、高齢の親世代の介護や認知症についてどう向き合おうと考えているか。また、認知症などの疾病リスク予測についてもお話を伺いました。 フォーネスライフが提供する疾病リスク予測サービス「フォーネスビジュアス」では、2
Reanimateはアニメーションを作成するためのライブラリです。 ReanimateはHaskellのライブラリとして実装されているのでプログラムによってアニメーションを記述することができます。ライブラリに実装されている機能も多く、ドキュメントも豊富ですし、オンラインのPlaygroundまで用意されていてかなり完成度の高いライブラリになっています。さらにLaTeXや物理エンジン(Chipmonk 2D), POV-Ray, Blenderなど外部ツールとの連携もサポートされています。アニメーションの各フレームはSVGで書き出されるようになっており、幾何学的な図形やSVGフォントを使った文字などから構成されたアニメーションを作るのが得意です。作ったアニメーションは最終的にMP4, GIF, WebMに出力することができます(中間生成物である各フレームのSVGを取り出すことも可能です)。
こんにちは。フィナンシャル開発センターの鈴木です。LINE証券のフロントエンドを担当しています。この記事は【LINE証券 FrontEnd】シリーズの4番目の記事です。 最近のWeb Vitalsの隆盛を受けて、LINE証券のフロントエンドでもパフォーマンスの改善に取り組み始めました。およそ2週間ほど改善に取り組んだ結果として、開発環境での計測ではLighthouseのperformanceスコアが従来より30点ほど上昇しました。 パフォーマンス改善のためにさまざまな施策を行いましたが、この記事ではその中でも興味深かったものとして、requestIdleCallbackを活用してLazy Loadingされるコンポーネントの読み込みを遅延し、その結果初期レンダリングにかかる時間を約14%削減できた事例をご紹介します。 環境 以前の記事でご紹介したとおり、LINE証券のフロントエンドはTyp
株式会社ゆめみの Android の採用コーディング試験を公開しました 会社の採用試験どうしよう、、と悩んでいる採用担当の方がいましたら、ぜひご活用ください レビューできる人がいないという場合には、ぜひ弊社までご相談いただけたらと思います。 なんで公開したの? 主に応募のハードルを下げるのが狙いです どんな試験なのか分かっているだけで、だいぶ気が楽になりますよね また、逆に無茶な応募が減るということもあるのではとも考えています。 どんな試験? ざっくり説明すると メチャクチャなコードを改善してください というものです 詳しくはリポジトリの README をご覧ください。 ※ 新卒か中途かによって必須課題が変わる点にはご注意ください。 公開しちゃって大丈夫なの? 誰かが良い解答を公開したら、それを真似すればいいんじゃ? そもそもどれが良い解答なのかを判断しなければなりません。 どれが良い解答
フロントエンド開発は考えることが多い。とくに 0 -> 1 の場合だと、何からはじめたらいいのか?が全然わからず、途方にくれてしまうこともあるでしょう。実際、ぼくがそうでした。 そして、そういった情報はなかなか検索しても出てこない。設計方法や実装方法みたいなものはたくさんあるのに。なので、書いてみました。 これは、ぼくがいくつかのフロントエンド開発を経て「これを最初に知っていれば、もうちょっとうまくできたかも?あの失敗がなかったかも??」をまとめたものです。 フロントエンド開発に不慣れな方の参考になれば、これ幸いです。 まずは仕事のゴールを確認する プロジェクトや各フェーズごとに仕事のゴールは異なるため「何をもって仕事が完了したと言えるか?」を確認する。たとえば、要件定義フェーズであれば「画面仕様書が完成する」とか、開発フェーズであれば「API結合試験がすべて完了し、バグチケットがすべてク
はじめに こんにちは。WEAR部フロントエンドブロックの藤井です。WEARでは現在、Webサイトのリプレイスを進めています。本記事では、リプレイスに至った背景や課題と、課題解決のために行ったリプレイスのアーキテクチャ選定についてご紹介します。 なぜリプレイスするのか WEARはサービスローンチしてから約10年が経ちます。これまでローンチ当時の技術スタックのまま開発を続け、サービスを成長させてきました。今後もより継続的にスピード感を持ってユーザーへ価値を届けていくにあたってさまざまな課題があったため、新たな技術スタックでリプレイスを開始することにしました。 リプレイス前の環境 リプレイス前の環境はオンプレミスの環境にロードバランサー、Windowsサーバー(IIS)があり、そこでVBScriptが動いています。VBScriptでテンプレートHTMLにデータを流し込み、ブラウザに表示する仕組み
FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークのコメント欄をスター数順にソートするブックマークレットを作りました。 作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設的コメント順位付けモデルを無効化していますが、あのアルゴリズムには特に不満は特にありません。 ブックマークレット javascript: (async () => { const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click(); window.scrollTo(0, document.
この記事は主に人力で作成されました。記事作成に際して以下の作業のみAIで行いました。 ・文章の誤字脱字の検知 ・情報収集(引用リンク先の情報は自分で確認) Oikonです。外資IT企業でエンジニアをしています。 Claude Codeを趣味の個人開発でも日々使っていますが、Webアプリ開発の際にClaudeがライブラリのバージョンに依存する複雑な問題を解決できないケースが何回かありました。 試行錯誤をした結果、Model Context Protocol (MCP)サーバーをClaude Codeが使えるようにしてあげると、以前よりも問題解決能力が上がったため共有します。 使用したMCPサーバー: Context7 Brave-Search どちらも有名なMCPサーバーで特に新しいものではありません。今回はClaude Codeに明示的に使ってもらうことでWebアプリの問題を解決してもらい
Haskeller の異常な愛情:または、生粋の Haskeller は転職して Rust を一ヶ月半書いて何を思うようになったか この記事は Jij Advent Calendar 2024、Haskell Advent Calendar 2024、およびRust Advent Calendar 2024シリーズ2 の18日目の記事です。 各カレンダーの前後の記事は以下の通りです: Haskell Advent Calendar 2024 前の記事: 次の記事:gotoki_no_joe さんの「集めるDPについて」 Rust Advent Calendar 2024 シリーズ2 前の記事:yasuo-ozu さんの「本物のSpecializationをStable Rustで!」 次の記事:hyumanase さんの「Rust.Tokyo 2024 に初参加した」 Jij Advent
The new wave of Javascript web frameworksMake sense of the proliferation of new Javascript web frameworks. A deep dive into the problems at scale and the recent evolution of innovation. IntroductionStaying current in the Javascript ecosystem is not for the faint of heart. It’s challenging for those entering the industry to follow what’s happening amongst the new libraries, frameworks, concepts, an
対象 業務レベルでサーバーサイドでJestを書いたことはないけれど、新プロジェクトでは書くことになったみたいな方を想定して記述しています。 Jestについては中々ベストプラクティスが集まりにくいので、経験的にこう書くと「きれいに」・「早く」・「正確に」書けるよというTipsを集めてみました。もし、よろしければお読みください。 前提 TypeScript Node.js Jest DBアクセスありの状態を想定しています 1. it文内では、必ず1回は、expectをつかって検証をする JestのPRをレビューしてるとたまに見受けるのですが、expectを使ってないケースがあります。 // NG it('userを正常に、作成できること', async() => { await createUser({ name: 'Mike' }); }); // OK it('pdfが正常に削除できること
つくって学ぶKubebuilder 本資料ではKuberbuilderを利用してカスタムコントローラー/オペレーターを開発する方法について学びます。 Kubebuilderとは Kubebuilderは、Kubernetesを拡張するためのカスタムコントローラー/オペレーターを開発するためのフレームワークです。 Kubernetesでは、標準で用意されているDeploymentやServiceなどのリソースを利用することで、簡単にアプリケーションのデプロイやサービスの提供ができるようになっています。 さらに標準リソースを利用するだけでなく、ユーザーが独自のカスタムリソースを定義してKubernetesを機能拡張することが可能になっています。 このカスタムリソースを扱うためのプログラムをカスタムコントローラーと呼びます。 また、カスタムコントローラーを利用して独自のソフトウェアのセットアップ
天気予報をデジタル時計に加えるには、外部の天気予報APIを利用する必要があります。一般的に利用されるのはOpenWeatherMap APIですが、これを使用するにはAPIキーが必要です。APIキーはOpenWeatherMapのウェブサイトで無料で取得できます。 以下の手順では、OpenWeatherMap APIを使用して現在の天気情報を取得し、それをOLEDディスプレイに表示する方法を示します。このコードは前の時計と曜日を表示するコードに基づいています。 ### 必要なライブラリのインストール - 天気情報を取得するために`requests`ライブラリを使用します。このライブラリがまだインストールされていない場合は、インストールしてください。 pip3 install requests ### OpenWeatherMap APIの設定 1. OpenWeatherMapの[公式サイ
TypeScriptアドベントカレンダーの12/5のエントリーです。昨日は@nanasi-1さんの【TypeScript】ジェネレーターによる遅延評価でフィボナッチ数列を生成するでした。 イマドキのJavaScriptの書き方2018というのを以前書いたのだけど、配列周りはかなり変わっているな、というのを思ったので、そこの部分だけアップデートするつもりで書いてみました。 実環境で使えるECMAScriptバージョン今時のブラウザは常に最新に更新されるはずなのでECMAScript 2024の機能もフルに使えるはずですが、おそらくNode.jsのLTSが一番古いJavaScriptエンジンということになるのかな、と思います。本記事執筆時点でサポート中のバージョンは以下の4つです。軽くメソッドを調べたりした感じ、こんな感じかと。202x年の11月ぐらいになると、ES202xがLTSバージョンで
はじめに 私は今、CSVエディタ SmoothCSV 3 を開発しています。フレームワークとして Tauri を採用しており、レンダラーにはWebの技術(React + TypeScript)を使っています。 CSVエディタは大量の行・セルを表示する必要がありますが、Webの技術ではこのようなシーンではバーチャルスクロールを使うのが定石です。 SmoothCSVでもバーチャルスクロールを使っていましたが、どうやらこのバーチャルスクロールにも限界があるらしく、数百万行のような極端に大量のデータを表示する場合に最後まで表示しきれない問題に遭いました。 ここではバーチャルスクロールの基本と、その限界をどう乗り越えたかを紹介します。 About Me 株式会社ヘンリーでソフトウェアエンジニア & アーキテクト的なことをしつつ、個人開発してます。 Social accounts: kohii on
はじめに JavaScriptのモックライブラリでは、 sinon などが有名であるが、テスティングフレームワークに Jest を使ってるならば Jest組み込みのモックライブラリで済ませたほうが学習コスト少なくて済むだろうと思える。 しかし、 sinon の感覚でJestのモックライブラリを使おうとすると違和感というのか、モックへの考え方の違いに気づかされる。 ということで今回は、Jestのモックライブラリの考え方と使い方を整理していきたいと思う。 モックの用語整理とJestモックライブラリの位置づけ モックと一言でいっても、それが指す内容は微妙に異なる。 ここでは、モックを 広義のMock Object と 狭義のMock Object と分けて整理してくれているテスト駆動開発を参考に用語を整理する。 テスト駆動開発では、モック用語を、下図のとおり、テストダブルとそのサブクラスとして
こんにちは!ラクスルの灰原です! 軽量かつ高速なWebフレームワークであるHonoと、新進気鋭のJSランタイムであるDenoを使って、社内ツールを作ってみましたので紹介します。 作ったツール 技術スタック index.tsx の内容 Tips HonoでTwindを使う HonoのJSXでAlpine.jsを使う Hono+Denoでesbuildを使う おわりに 作ったツール テックブログ向けのアイキャッチ画像ジェネレータを作りました。 タイトルを入力して、 背景画像と文字色を選んで、 文字の位置と大きさを調整して、 後は「Download」ボタンを押せば画像が手に入ります。 これは以前、弊社デザイン組織で作られた「Zoom背景ジェネレータ」に多分に影響されています。 こちらのデザイナーブログも是非ご覧ください! note.com 技術スタック このツールは利用頻度がそこまで多くないと思
【NextAuth.js 入門】認証機能から認証情報によるページの表示制御を学ぶ(Next.js & Typescript) アプリケーションを開発するにあたって、避けて通れないのが認証機能の実装です。 本書籍では、NextAuth.js を使って Next.js で作成したアプリケーションに認証機能を実装していきます。さらに、認証情報を使って、表示するページの制御も行います。 認証情報によるページの表示制御にはいくつか方法がありますが、本書籍では NextPage 型を拡張した CustomNextPage 型を作成することによって、ページの表示制御を実現します。 一緒に NextAuth.js による認証機能を学んでいきましょう。
司法書士タイムズ編集室 @stimesjp 「具体的な財産の分け方は、みんなで仲良く相談して決めてください。」と書かれた遺言を眺めています。(30代・司法書士) 2022-01-12 11:00:00 司法書士タイムズ編集室 @stimesjp 司法書士タイムズの編集室メンバーが、司法書士業界のことやビジネスなどについて(勝手に)つぶやいています。司法書士タイムズの「公式サイト」が2018年の初夏の訪れとともにひっそりとオープンして久しいです。どうぞお入りください。 https://t.co/Xq1wWPD0n9 https://t.co/BxbdPSWr8i リンク 司法書士タイムズ 司法書士タイムズ 「司法書士タイムズ」は、司法書士を目指す受験生、司法書士として勤務しながら将来独立を目指す方、すでに個人事務所を経営している司法書士の方々の実務・経営に役立つ情報を配信するWEBメディアで
API for Web Icons Including icons is harder than it should be. SVGBox allows you to add icons to your project by using simple tags. The idea behind the service is that including icons should be as simple as copy and paste. It's free and icons are delivered over Cloudflare CDN, the same technology that powers CDNJs's 190B+ monthly requests . Explore Iconsets
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く