並び順

ブックマーク数

期間指定

  • から
  • まで

1921 - 1960 件 / 2781件

新着順 人気順

*JavaScriptの検索結果1921 - 1960 件 / 2781件

  • neue cc - UTF8文字列生成を最適化するライブラリ Utf8StringInterpolation を公開しました

    Utf8StringInterpolationという新しいライブラリを公開しました!UTF8文字列の生成と書き込みに特化していて、動作をカスタマイズした文字列補間式によるC#コンパイラの機能を活用した生成と、StringBuilder的な連続的な書き込みの両方をサポートします。 Cysharp/Utf8StringInterpolation 基本的な流れはこんな感じで、Stringを生成するのと同じように、UTF8を生成/書き込みできます。 using Utf8StringInterpolation; // Create UTF8 encoded string directly(without encoding). byte[] utf8 = Utf8String.Format($"Hello, {name}, Your id is {id}!"); // write to IBuffer

    • Deno in 2021 | Deno

      2021 was the first full year of funded development on Deno. Our company is 10 strong and growing. Since the 1.0 release in May 2020 the Deno CLI has been developing at a steady pace. In 2021 we shipped 44 releases (11 minor, 33 patch), landing key features, countless bug fixes and significant performance optimizations. For details on each release, see corresponding blog posts: v1.7, v1.8, v1.9, v1

        Deno in 2021 | Deno
      • AsyncLocalStorageとusingで快適に構造化ロギングしたい話

        アプリケーションのログ収集にあたっては、構造化ロギング (structured logging) というプラクティスが広く実践されています。構造化ロギングとは、ログの出力を単なる文字列ではなく、メッセージ以外のメタデータも含む構造化されたデータとして出力することです。構造化されたデータを出力することで、ログの解析や集計を容易にすることができます。 この記事では、JavaScriptのサーバーサイドアプリケーションにおける構造化ロギングの実装に焦点を当てて議論し、最終的に筆者が開発したasync-object-stackを宣伝します。 コンテキストをどのように共有するか 構造化ロギングの実装における主要な関心事は、複数のログでどのようにメタデータを共有するかです。ログに付与するメタデータは、1つのログだけでなく、複数のログにまたがって付与されることが多いでしょう。例えば、リクエストを送ってき

          AsyncLocalStorageとusingで快適に構造化ロギングしたい話
        • スクロール完了をawaitで待てる! 進化したJSのスクロール関数 - ICS MEDIA

          JavaScriptには、scrollTo()メソッドやscrollBy()メソッドなど、目的のところまでスクロールする関数があります。これらの関数と一緒に使われることが多いのがbehaviorプロパティに"smooth"を設定して、目的地まで滑らかにアニメーションさせる方法です。たとえば目次をクリックしたら該当の章までスムーズにスクロールさせるなど、使ったことがある方も多いと思います。 スムーズスクロールの課題として一番大きなものは、スクロールの完了後に行う処理が書きづらいことです。Chrome・Edge 150から使えるプログラマティック・スクロール・プロミスでは、今までscrollendイベントの監視やsetTimeout()メソッドなどで検知していたスクロール完了を、Promiseを使って制御できるようになります。 スクロール完了をPromiseであつかう Promiseは非同期の

            スクロール完了をawaitで待てる! 進化したJSのスクロール関数 - ICS MEDIA
          • Next.js + shadcn/ui + TanStackTableでモダンなテーブルを作ろう

            テーブルの実装には、react-data-table-componentや、MUIのDataGrid、MantineUIのMantineDataTableなどが用いられてきました。 今回はテーブルのHeadressUIライブラリであるTanstackTableと、RadixUIとTailwindCSSで実装したコンポーネント群であるshadcn/uiを使って、簡単なテーブルを作ります。 shadcn/uiについて Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source. あなたのアプリにコピー&ペーストできる、美しくデザインされたコンポーネント。アクセスしやすい。カスタマイズ可能。オープンソース。(機械翻訳) shadc

              Next.js + shadcn/ui + TanStackTableでモダンなテーブルを作ろう
            • moment.js の Day.js 移行|ダイニー公式

              こんにちは、業務委託エンジニアの井手です。3 ヶ月ほどかけて moment.js を Day.js へと完全移行したのでその舞台裏やノウハウ、教訓についてお話ししようと思います。 なぜ moment.js を Day.js へ移行するのかmoment.js はリッチな format や parse を持たない JavaScript の Date 型を補完してくれるライブラリの先駆者として長年活躍していましたが、公式 HP に Considering using Moment in your project? There may be better modern alternatives. For more details and recommendations, please see Project Status in the docs. https://momentjs.com/とある通

                moment.js の Day.js 移行|ダイニー公式
              • 続・wkhtmltopdfの次どうするか問題 - おもしろwebサービス開発日記

                wkhtmltopdfの次どうするか問題 - おもしろwebサービス開発日記の続き。 上の記事でも書いていますが、令和の今RailsアプリケーションでPDFを生成する基本的な方針としては次の2択だと思っています。 chromeを使ってHTMLからPDFに変換する Thinreports などで直接PDFを生成する 「chromeを使ってHTMLからPDFを生成する」のgemとしてはgroverが有名ですね。だけどこれはruby -> puppeteer -> chromeという構成で、間にnode製のツールであるpuppeteerが挟まっています。 ferrum はrubyから直接chromeを扱うgemなので、これを利用するとnodeが不要になるしメモリ消費量も多少下がるはずだしいいじゃん、と前記事を書いているときは思っていました。しかしferrumはあくまでchromeを操作するのが目

                  続・wkhtmltopdfの次どうするか問題 - おもしろwebサービス開発日記
                • LIFULL HOME'S 賃貸物件詳細ページの基盤刷新について - LIFULL Creators Blog

                  プロダクトエンジニアリング部の海老澤です。 普段は LIFULL HOME'S の賃貸部門のフロントエンド開発をしています。 近年、LIFULL の開発部門では「開発生産性」という言葉が取り沙汰されるようになりました。 LIFULL HOME'Sの主要リポジトリは10年以上運用され続け、今も多くの開発者によって日々改修され続けています。 長い年月の中で小さな設計ミスも積み重なって大きくなり、ちょっとした実装でも入念な調査が必要となり開発生産低下の要因となっていました。 また10年以上前に採用したフレームワークで稼働しているため、今ではドキュメントを探すのも一苦労という具合です。 そこで主要開発部門では「自部門の機能はマイクロサービスへと切り離し、各々で面倒を見る」という方針になりました。 賃貸部門も同様に機能の切り離しを始め、先日「物件詳細ページ」のマイクロサービス化を行いました。 今回は

                    LIFULL HOME'S 賃貸物件詳細ページの基盤刷新について - LIFULL Creators Blog
                  • フロントエンドのモジュールを共有する手法を考える

                    この記事は、CYBOZU SUMMER BLOG FES '25 の記事です。 はじめに サイボウズのkintoneというプロダクトでは、2021 年からフロントエンド刷新を進めています。 このフロントエンド刷新では「フロントエンドに Autonomy をもたらす」ことを目指して、次のような取組も行なっています。 モノリスな構成からの脱却 アーキテクチャとチーム(組織)体制をセットで考える チーム単位の Monorepo によりオーナーシップを明確に フロントエンド刷新によって kintone の領域ごとにフロントエンドは分割され、現状だと次の図のように、frontendディレクトリ配下には各チームが独立した Monorepo 構成のディレクトリを持っています。 上記のような構成で運用を続けていくことで、各チームがオーナーシップを持ってフロントエンドの開発を進められるようになりました。一方

                      フロントエンドのモジュールを共有する手法を考える
                    • エンジニア1年生の自分に教えたいReact学習で重宝できる教材と記事まとめ - Qiita

                      はじめに 自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではReact×TypeScriptを利用したフロント周りの開発をメインで行なっていなす。 今回は、エンジニア1年目の自分に教えたいフロント(React)学習で重宝できる教材と記事を分野別にまとめていきます。 Qiitaではフロント向けのまとめ記事を書いているので合わせて読んでいただけると嬉しいです。 この記事の対象者 React初心者から中級者 フロントエンドエンジニアを目指している人 Reactの学習方法を知りたい人 この記事の目標 Reactの学習教材や記事を知ることができる React周辺に関する知識を学習できる教材や記事を知れる React全般 トラハック(Youtube) トラハックさんのYoutubeではReactを基礎から応用まで動画で学ぶことができます。

                        エンジニア1年生の自分に教えたいReact学習で重宝できる教材と記事まとめ - Qiita
                      • Next.js Layouts RFC in 5 minutes

                        The Next.js team at Vercel released the Layouts RFC a few months ago outlining the vision for the future of routing, layouts, and data fetching in the framework. The RFC is detailed and covers both basic and advanced features. This post will cover the most important features of the upcoming Next.js changes landing in the next major version that you should be aware of. Link to headingCreating Route

                          Next.js Layouts RFC in 5 minutes
                        • RubyKaigiに参加してプロダクト価値を高めるためにOSS をやっていきたいと再認識した話 - Speee DEVELOPER BLOG

                          こんにちは、新卒で入社してから早くも 1 年がたってしまったことに驚きを隠せない、DX 事業本部エンジニアで 22 新卒の高島です。 本ブログでは、プロダクトを伸ばすために OSS をもっとやっていきたいと気づけた話として、直近参加した RubyKaigi 2023 で得られた学びをまとめたいと思います。 目次はこちら OSS 活動について 私が RubyKaigi にオフライン参加した第 2 の目的 「プロダクト開発」 と 「OSS 活動」 はトレードオフ関係ではない OSS と プロダクトは 表裏一体な関係である OSS に関わる機会は自分でもっと作っていける まとめ 謝辞 RubyKaigi の思い出 最後に OSS 活動について 私は昨年の 12 月からクリアコードの結城さんのサポートを受けながら、週 1 回業務時間を使って OSS 活動を行っています。 特に、業務の中で使っている

                            RubyKaigiに参加してプロダクト価値を高めるためにOSS をやっていきたいと再認識した話 - Speee DEVELOPER BLOG
                          • ANDPAD iOS開発における課題と最近取り組んでいる「マルチモジュール化」について - ANDPAD Tech Blog

                            ANDPADに入社して1年と少しが経ちました、モバイルアプリエンジニアの佐藤(@ushisantoasobu)と申します。 タイトル通りではあるのですが、現状のANDPAD iOS開発における課題と、ここ数ヶ月取り組んできた「マルチモジュール化」について書いていきます。 ANDPAD iOS開発における課題 スーパーアプリ戦略 vs マルチアプリ戦略 ANDPADが向き合っている課題、ここでは一言で「建築DX」と呼んでしまいますが、建築DXはとてつもなくデカい課題だと自分は認識しています。ゆえにモバイルアプリ開発としても以下の2つの戦略のうちどちらかを選択する必要がありました。 スーパーアプリ戦略 全ての機能やドメインを1つの巨大なアプリに集約 マルチアプリ戦略 機能やドメインごとにアプリをリリース・運用 ANDPADでは後者の「マルチアプリ戦略」を採用しています。そこらへんの経緯などにつ

                              ANDPAD iOS開発における課題と最近取り組んでいる「マルチモジュール化」について - ANDPAD Tech Blog
                            • Vue2のプロジェクトをVue3へマイグレーションする

                              Vue 3が正式リリースされてから約1年が経過しました。 Vuetifyのリリース目標である2021年Q3も近づく中でそろそろVue3へのアップデートを検討されている方もいらっしゃることでしょうか? この記事ではVue 2からVue 3への移行手順を記述していきます。 参考用のプロジェクトとして以下レポジトリを用意しました。 Vue 2からの移行を体験してみたい場合には、vue2-todo-appのタグにチェックアウトしてください。 移行ビルドを使用する Vue 2からVue 3へ移行するためのツールとして、公式から@vue/compatが提供されています。 @vue/compatを使用すると、Vue 2モードで動作するため、Vue 3で削除や非推奨になったAPIも一部の例外を除いてそのまま使用することができます。Vue3 で削除で非推奨になった機能は実行時に警告が出力されるようになります

                                Vue2のプロジェクトをVue3へマイグレーションする
                              • 1. 単回帰 — 機械学習帳

                                Requirement already satisfied: japanize-matplotlib in /home/okazaki/.local/lib/python3.8/site-packages (1.1.3) Requirement already satisfied: matplotlib in /usr/local/lib/python3.8/dist-packages (from japanize-matplotlib) (3.5.1) Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2) Requirement already satisfied: c

                                  1. 単回帰 — 機械学習帳
                                • Vue3アップグレード要点解説①:移行ビルド導入前にやるべき7つの作業 - LAPRAS Tech Blog

                                  こんにちは、LAPRASの業務委託エンジニアのしんです。 先日弊社のプロダクト(LAPRAS と LAPRAS SCOUT)のVue3アップデートがついに完了しました🎉 中〜大規模プロダクトのVue3移行を(開発を止めずに)2回行ったことで様々な学びがありましたので、連載記事の形でVue3移行について解説していきたいと思います。 移行ビルドを用いたVue3移行は大まかに、 移行ビルドの導入前の準備 移行ビルドの導入 & 削除 のフェーズに分けることができます。 第1回目の本記事ではまず「移行ビルド導入前の準備」についてまとめていきます! 移行ビルド導入前にしたほうがいいこと 一度移行ビルドを入れてしまうと、完全に動く状態になるまでmain ブランチへマージできません。 移行ビルド導入のPRは非常に巨大になり工数もかかるため、導入前にできる作業は全て先にやっておくのが吉です(参考までに、3

                                    Vue3アップグレード要点解説①:移行ビルド導入前にやるべき7つの作業 - LAPRAS Tech Blog
                                  • 認知症のおじいさんが深夜に介護施設のフロアを徘徊→職員さんの対応がとても参考になる「咄嗟の判断、素晴らしい」

                                    じっぴー @zippy_desu 夜勤初日。退勤したはずの先輩が職場に戻ってきてくれて、「認知症の利用者さんには正論じゃなくて、とにかく味方でいることな」って言いにきてくれた。夜中にお爺さんがフロアを徘徊され、「出口どこだ」とかなり怒っていたので、「わ、私も出口を探していたところですっ、 2023-10-20 06:55:40 じっぴー @zippy_desu ち、力を合わせて一緒に脱出しましょう!」って言うと、「よろしく頼む」って、なぜか納得してくれた。これを10回くらい繰り返すとお爺さんは寝てくれたんだよな。あのとき、「ここは施設なので帰れません」って正論をぶつけていたらと思うと恐ろしい。マジで先輩ありがとう。一年目の夏のエピソード。 2023-10-20 06:55:40

                                      認知症のおじいさんが深夜に介護施設のフロアを徘徊→職員さんの対応がとても参考になる「咄嗟の判断、素晴らしい」
                                    • neverthrow の全機能リファレンス

                                      JavaScript/TypeScript で try/catch を使わないエラーハンドリングに利用できるライブラリとしてはそこそこ有名だと思う neverthrow ですがあまり解説された記事が少なく、関数型と手続き型の書き方をいい感じにミックスできるいいライブラリで情報の少なさから選択されないのも勿体なく感じました。ちょうど GitHub のドキュメントを読みながら意訳してまとめた手元の技術メモがありますのでその一助になればと公開します。 neverthrow とは supermacro/neverthrow: Type-Safe Errors for JS & TypeScript プログラムのエラーハンドリングを try - catch ではなく関数型プログラミング由来の Result 型や Either 型と呼ばれる方法で実現する機能を提供するライブラリです。具体的には Res

                                        neverthrow の全機能リファレンス
                                      • 0518LLMmeetup_LLMシステムの非機能要件対応_現場レポート.pdf

                                        運用保守 ログの保存と活用 API監視 ライブラリ管理 速度性能 GPT-3.5, GPT-4の速度性能の例(Azure) イベントストリームでの対処 可用性 APIの稼働率 クォータ制限 APIの負荷分散による対処 セキュリティ Azure OpenAIのネッ…

                                          0518LLMmeetup_LLMシステムの非機能要件対応_現場レポート.pdf
                                        • JSer.info 15周年: 15年間のJavaScriptを振り返る

                                          2011年1月16日に開始したJSer.infoは、2026年1月16日で15周年を迎えました🎉 JSer.infoは15年間で820件の記事を公開し、13,606件のサイト/記事/ライブラリを紹介してきました。週1回の更新を15年間継続しています。 この記事では、15年間のJSer.infoのデータを振り返りながら、JavaScriptエコシステムがどのように変化してきたかを見ていきます。 なお、この記事のデータはJSer.infoで紹介した記事の傾向であり、JavaScriptエコシステム全体を示すものではありません。 また、2024-2025年はJSer.info自体の投稿数が減少しているため、データにも2025年に減少傾向が出てしまっている点に注意してください。 15年間の基本統計 項目 数値 総投稿数 820回 総紹介記事数 13,606件 運営期間 2011年1月〜2026年

                                            JSer.info 15周年: 15年間のJavaScriptを振り返る
                                          • querySelector に型引数を指定しない - Object.create(null)

                                            必要もないのに querySelector や querySelectorAll の型引数を指定しないようにしましょう. (この記事は AI レビュワーに「型引数を指定した方が型安全だ」と提案されたのに対する反論として作成しています.) querySelector の型安全性 querySelector や querySelectorAll の型定義は, 後述する要素型セレクターに関連する部分を除くと, 基本的には以下のようになっています. querySelector<E extends Element = Element>(selectors: string): E | null; querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>; これはつまり型引数が Element を継承し

                                              querySelector に型引数を指定しない - Object.create(null)
                                            • Claude Codeで課題解決!従来のWebサイト開発環境をまるっと刷新してみた | DevelopersIO

                                              はじめに アノテーションのWebサイトを管理している Shimizu です。 巷で話題の Claude Code にとりあえず触れてみようと思い、手始めにWebサイト開発環境のWebフレームワーク刷新を指示してみたのですが、利用開始からわずか1時間ほどで実現でき、その凄さに驚きました。ここでは実施した内容を備忘として記事にしました。 ※ 本記事では Claude Code の導入方法については触れていません。これからインストールされる方は下記の記事*1を参考にしてください。 *1 Claude Codeを徹底解説してみた(前編) | DevelopersIO 抱えていた課題 管理しているWebサイトの中で、比較的古いWeb開発フレームワーク(Middleman.js / jQuery 等)で作成されたものがあります。 Dockerコンテナに開発環境を構築していますが、Webフレームワークの

                                                Claude Codeで課題解決!従来のWebサイト開発環境をまるっと刷新してみた | DevelopersIO
                                              • Next.jsのPPR + StreamingがVercelで実行されるときの全体像を掴む

                                                こんにちは。sumirenです。 イントロダクション 先日、Next.js 15 RCが出ました。App RouterでPartial Prerenderingが広く使われ始める日も近いのではないでしょうか。 Partial Prerenderingは、特にStreamingと一緒に利用し、Vercelにデプロイした場合、強力に最適化が行われます。最適化は非常に高度で、部分的な静的レンダリングといったアプリレイヤから、エッジとオリジンの使い分けといったインフラの構成まで絡む複雑な設計です。最終的にVercelにデプロイされた後の全体の動作イメージが頭に入っている方は少ないのではないでしょうか。 この記事ではPartial PrerenderingとStreamingについて、Vercelデプロイ後の動作イメージがついている状態を目指します。静的ルートやサーバーサイドフェッチなど単純な例から

                                                  Next.jsのPPR + StreamingがVercelで実行されるときの全体像を掴む
                                                • Video.js v10ベータ版リリース、なぜこんなに時間がかかったのか?

                                                  Video.jsはHTML5ベースのウェブビデオプレイヤーを構築するためのオープンソースフレームワークであり世界で最も人気のあるものの一つです。2026年3月にVideo.jsの開発チームはVideo.js v10のベータ版をリリースしました。Video.jsはv10ベータ版のリリースまでに長い期間を要しましたが、理由について公式サイトのブログにて説明しています。 Video.js v10 Beta: Hello, World (again) | Blog | Video.js | Open Source Video Player https://videojs.org/blog/videojs-v10-beta-hello-world-again ◆v10ベータ版のリリース Video.js v10ベータ版のリリースに時間がかかった主な理由は基盤となるコードベースの大規模な書き直しにあり

                                                    Video.js v10ベータ版リリース、なぜこんなに時間がかかったのか?
                                                  • レゴがオープンソースのライブラリをコピペしてGPL違反をしていたことが判明

                                                    レゴブロックで知られるデンマークの玩具メーカー・レゴの子会社が作成したソフトウェアに、オープンソースの3DCG作成ソフトウェアであるBlenderのライブラリが使用されていることが分かりました。当該ライブラリはGPL(GNU General Public License)の元で公開されているものであるため、ソースコードが非公開の製品に使用することはライセンス違反であると指摘されています。 On what version of Cycles is Bricklink Stud.io's Eyesight renderer based? - Cycles Development - Developer Forum https://devtalk.blender.org/t/on-what-version-of-cycles-is-bricklink-stud-ios-eyesight-rend

                                                      レゴがオープンソースのライブラリをコピペしてGPL違反をしていたことが判明
                                                    • 概要: デザインシステム入門|Figma によるデザインシステム入門

                                                        概要: デザインシステム入門|Figma によるデザインシステム入門
                                                      • Rubyとnamespaceと拡張ライブラリについて - なるせにっき

                                                        2020年代はモノリスの時代 ここ10年ほど流行っていたマイクロサービスについての理解が深まり、その限界が広く知られるようになってきた。ShopifyのModular Monolithについての記事などは代表例だろう。並行して必要性が叫ばれるようになってきたのがnamespaceだ。RubyKaigi 2023ではshioyamaさんがMultiverse Rubyと題して発表をしていたし、その後tagomorisさんも記事を書いている Rubyでは以前からnamespaceへの議論が行われてはいたのだが、Ruby 2.0の頃の議論では主にMonkey Patchingによる副作用を局所化するためのものだった。当時の議論とはライブラリ読み込みの局所化という課題が挙がっている点が異なっており、それに伴い技術的な困難も異なる。上述の記事でもそれらの多くは整理されているのだが、この記事ではまだ議

                                                          Rubyとnamespaceと拡張ライブラリについて - なるせにっき
                                                        • Rust の hyper は何が嬉しいか

                                                          Rust でWebサーバーを書く時の技術選定をするときに調べていると hyper に必ず出会うと思う。これは黎明期から存在しているライブラリで、Webサーバーにしては珍しく version 1 まで到達している老舗だ(1に到達してたら安心って考え方が正しいかはさておき...)。このライブラリは actix-web や axum のような他のライブラリとは毛色が違い、かなり primitive だ。そのため axum のベースに使われてもいて、hyper はそのまま使わないライブラリなのかもしれない。 サンプルコードから存在意義がわかりにくい さて、そんな hyper だが公式の example はこのようになっている。 #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>>

                                                            Rust の hyper は何が嬉しいか
                                                          • Neovimで手動のスピードで入力しよう! - エムスリーテックブログ

                                                            AI・機械学習チームの北川(@kitagry)です。 最近Neovimの設定ファイルをinit.vimからinit.luaに移動させました。 Lua化したからには何かそれっぽいことをしたいなと思い、機械学習しつつ何かアプリケーションっぽいものを作成することにしました。 タイトルは以下の本のオマージュです。 神本なので、おすすめです。 www.kadokawa.co.jp Neovimで機械学習をする環境を用意する NeovimからLuaファイルを呼び出す仕組み torchをインストールする Neovimでmnistを学習する Neovimで文字を書く 手動のスピードで入力する まとめ おまけ We are hiring!! Neovimで機械学習をする環境を用意する まずはじめにNeovimで機械学習を扱う仕組みを用意する必要があります。 今回はLuaのライブラリであるtorchを利用しま

                                                              Neovimで手動のスピードで入力しよう! - エムスリーテックブログ
                                                            • Vitestの実行時間を8倍高速化:同一環境での実行によるパフォーマンス改善

                                                              はじめに Vitest はデフォルトの設定では、テストファイルごとに分離された環境を使用してテストを並列実行します。 この設定はグローバルな状態や副作用に依存した実装やライブラリなどを含むテストを並列実行するために有効です。 しかし、この設定は各テストファイルごとにテスト環境の起動や破棄を行うためテスト実行時間が長くなります。 この記事では React アプリケーションのテストコードを、環境の分離設定をやめて同一環境で実行することにより、実行速度を向上させた方法とそれに伴って発生した問題の修正方法についてご紹介いたします。 背景 弊社は microCMS というヘッドレス CMS を開発しており、その管理画面は React で開発されています。 大まかな構成としては、Vite を使用した SPA で、テストコードは testing-library/react を使用したコンポーネントテスト

                                                                Vitestの実行時間を8倍高速化:同一環境での実行によるパフォーマンス改善
                                                              • 非推奨となったMoment.jsから移行を終えた話

                                                                こんにちは、スターフェスティバル株式会社 エンジニアのsoriです。 今回は1つのサービス内のアプリケーションで使われている日時操作ライブラリMoment.jsを移行した際に気をつけたことなどをお話しします。 なぜ移行したのか Moment.jsは、2020年後半に「今後新機能の開発をせず、新規プロジェクトでの使用を推奨しない」旨アナウンス[1]がありました。 アナウンスとしては、Moment.jsがmutableなAPIを使用しており、immutableなものに変更するためには大きな破壊的な変更が必要になること、 また、バンドルサイズが大きいなどの問題があることが挙げられています。 個人的に使用していた感触としては、枯れたライブラリであり気軽に利用できるものであるのは確かなものの、仕様が緩い点[2]などが見受けられ、堅牢なコーディングを行うことにも障害があるように感じられました。 とはい

                                                                  非推奨となったMoment.jsから移行を終えた話
                                                                • Object.groupBy で作られるオブジェクトの prototype は null - Object.create(null)

                                                                  おさらい: prototype JavaScript のオブジェクトはみんな prototype というのを持っていて, この prototype からプロパティを継承, より正確には, プロパティアクセス時にそのプロパティがオブジェクトに存在しなければ prototype を辿って見つけにいくことになっている. あるオブジェクトを prototype とした別のオブジェクトを作るには Object.create を使う (あるいは new 演算子や __proto__ を使っても良い). const x = {}; x.foo = "foo"; const y = Object.create(x); y.bar = "bar"; const z = Object.create(y); z.baz = "baz"; console.log(z.foo); // => "foo" conso

                                                                    Object.groupBy で作られるオブジェクトの prototype は null - Object.create(null)
                                                                  • ライブラリアップデートを継続的に行う文化をチームで作るための取り組み

                                                                    この記事は LAPRAS アドベントカレンダー 2021 の 1 日目の記事です。 LAPRAS 入社後に行ってきたライブラリアップデート周りの取り組みについてまとめてみました。 経緯 プロダクトが成長して機能が豊富になると、必然的に依存ライブラリが増加し、各ライブラリのアップデートへの追従に苦労しがちですよね。 自分が入社した当時の LAPRAS でもその課題がありました。 当時のライブラリアップデートまわりの環境は、セキュリティアラートに関連する PR のみが定期的に作られ、その PR のレビューも気づいた者がベストエフォートで行うというもので特に何か明文化されたルールはありませんでした。 ライブラリアップデートが遅れると、以下のような問題があります。 セキュリティリスクの増加 新機能が使えないというモチベーションの低下 より大きなライブラリ・FW(例: Vue, Django 等)の

                                                                      ライブラリアップデートを継続的に行う文化をチームで作るための取り組み
                                                                    • 「このUIの実装、ライブラリを使わないとなあ」ってときに見る記事(見せる記事) - Qiita

                                                                      この記事の概要 デザインデータの中には大抵「自前で実装するのは大変だから、既存のUIライブラリを使おう」と思うパーツがありますよね。 カルーセル・カレンダー・グラフなどなど……。 そういったシーンで考えておいた方が良いことを記事にしました。 対象読者 ライブラリが必要そうなUIの提案をするデザイナー 上記UIの実装を担当するエンジニア あなたが2のエンジニアに該当する場合、あなた自身が読む記事というよりは、1のデザイナーにこの記事を共有すると役立つ気がします。 そういう意味でタイトルには見せる記事とも記載しています。 やった方が良いこと どうしてもこだわりたい場所と、そうでも無い箇所を明らかにしておく 実装するものにもライブラリにもよりますが、大抵自由にカスタムできる要素とカスタムしようと思うとかなり大変になる要素があります。 完全にデザイナーが思った通りの見た目・使い勝手のライブラリが見

                                                                        「このUIの実装、ライブラリを使わないとなあ」ってときに見る記事(見せる記事) - Qiita
                                                                      • 死んだら自然に還ろう──環境に優しい新たな埋葬法を次々と生み出すアメリカのスタートアップ | 普通の墓地への埋葬はもう古い?

                                                                        死んだら環境にやさしい死後のあり方 人が死んだら、もう環境へ負荷をかけないわけではない。従来の土葬ではホルムアルデヒドなどの有害な化学物質を含む鉄やコンクリートが使用される。欧米の墓地には芝生が広がるが、その維持には肥料と水が必要だ。火葬にも大量のエネルギーが使われる。 しかし、トランセンドという新しいスタートアップは、墓地を森に見立てた新たな埋葬事業を始めようとしている。遺体を木の下に直接設置し、分解されると木の一部になるようにするというものだ。 同社は、この「樹木葬」を全米の主要都市近郊で展開しようとしている。そこでは、まず浅い墓に木片や干し草を敷き詰め、その上に麻の布で包まれた遺体を設置する。その上に木片、菌類を混ぜた地元の土を被せ、その地に自生する樹齢2〜4年の若木を植えるのだ。

                                                                          死んだら自然に還ろう──環境に優しい新たな埋葬法を次々と生み出すアメリカのスタートアップ | 普通の墓地への埋葬はもう古い?
                                                                        • アクセシビリティ対応のついでに色々やった話 - LIFULL Creators Blog

                                                                          こんにちは。エンジニアの中島です。 現在はアクセシビリティ推進グループ(以下推進グループ)に在籍しています。 以前同組織の紹介記事をいくつかあげましたが、その通り弊社は自社の運営するサービスをアクセシブルにするため日々奮闘しています。 www.lifull.blog www.lifull.blog 以前の記事ではどういったマインドで同組織ができたか、どのように推進しているかについて話ました。 今回は、そういった活動の中でいくつか技術的な副産物が生まれたのでその話をしようと思います。 キーボード操作編 CSSの概念距離 さいごに キーボード操作編 アクセシビリティ対応にあたって、基本的なやることの一つにUIをキーボード操作可能にするという作業があります。 自社のサービスにもキーボード操作不能ないくつかのUIの存在を認識しており、それらを実際に直していくということをしています。 修正時、場合に

                                                                            アクセシビリティ対応のついでに色々やった話 - LIFULL Creators Blog
                                                                          • daxはいいぞ

                                                                            Deno Advent Calendar 2022の16日目の記事です! Denoでこんな感じのコードを書いていました。内容的には大量(2000個以上)のSVGファイルをゴリゴリとTSXファイルに変換していくなんてことをやっています。 変換部分の本体はsvgrというライブラリを使っています。内容的にはよくわかっていませんが、babelでパースしてastでどうのみたいな感じのようです。 SVGファイルをバッチ的にTSXに変換していくんですが、最後に deno fmt は手作業でかけなければならずそれが微妙でした。ここはDeno.Commandの出番かな〜とも思ったんですが、前から作者に激推しされていたdaxを使うことにしてみました。 利用方法 というわけでdaxをimportしてきます。

                                                                              daxはいいぞ
                                                                            • monorepo で開発時にパッケージの変更を build なしで他のパッケージに反映する方法

                                                                              { "name": "lib-a", "version": "0.0.0", "type": "module", "main": "dist/index.js", "scripts": { "build": "rm -rf dist && tsc" } } この場合、lib-a の src/index.ts を変更だけしても lib-b には反映されません。なぜなら lib-b は lib-a の dist/index.js を参照しているため、build を実行して dist ディレクトリの中を更新する必要があるからです。 またこのときに tsserver の機能を使って lib-b から lib-a の参照にジャンプしても src/index.ts に飛ばないという問題点もあります。 解決策 問題の原因は依存元の lib-a の main に build によって生成されるファイルへの

                                                                                monorepo で開発時にパッケージの変更を build なしで他のパッケージに反映する方法
                                                                              • DuckDB + Claude Desktop + MCP で X(Twitter)のアーカイブデータを閲覧する

                                                                                const fs = require('fs') const path = require('path') /** * TwitterアーカイブのJSファイルをJSONに変換する関数 * @param {string} inputFile - 入力ファイル(.jsファイル)のパス * @param {string} outputFile - 出力JSONファイルのパス */ function convertTwitterArchiveToJson(inputFile, outputFile) { try { // ファイルを読み込む let fileContent = fs.readFileSync(inputFile, 'utf8') // window.YTD.tweet.part0 = [...] の形式から実際のJSONデータを抽出 // 正規表現を使用して [...] の部分を取

                                                                                  DuckDB + Claude Desktop + MCP で X(Twitter)のアーカイブデータを閲覧する
                                                                                • LLMアプリケーションの新定番、Microsoft guidanceライブラリのgenメソッドを詳細に追ってみる|mah_lab / 西見 公宏

                                                                                  MicrosoftのguidanceライブラリはLLMアプリケーションを作成する際の新たな定番となりそうな気がしています。そういう訳で、今回はguidanceのgenメソッドについて詳しく追ってみたいと思います。 基本的な使い方import guidance gpt3 = guidance.llms.OpenAI("text-davinci-003") gpt3_5 = guidance.llms.OpenAI("gpt-3.5-turbo") gpt4 = guidance.llms.OpenAI("gpt-4", api_key=API_KEY) guidance.llm = gpt3まずはguidanceライブラリを読み込み、使用するLLMを宣言します。OpenAI APIを使用する場合、初期化パラメータとして以下のパラメータを使用できます。 model 使用するモデルの名前を指定し

                                                                                    LLMアプリケーションの新定番、Microsoft guidanceライブラリのgenメソッドを詳細に追ってみる|mah_lab / 西見 公宏

                                                                                  新着記事