並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 537件

新着順 人気順

Zennの検索結果1 - 40 件 / 537件

  • RAG評価ツール「RAGAS」の論文を読む

    本記事では、RAG評価ツールの「RAGAS」の論文ついてざっくり理解します。軽めの記事です。 株式会社ナレッジセンスでは、生成AIやRAGシステムを活用したサービスを開発しており、その中でもRAG精度の評価は非常に重要です。 この記事は何 この記事は、「RAGAS」についての論文[1]を、日本語で簡単にまとめたものです。RAGASはツールとして有名ではあるものの、RAGASの論文を読んだことがある方は多くなさそうです。 RAGASとは、おそらく今、一番有名なRAG評価ツールです。同様のツールとして、他にはLangSmithやARESが有名かと思いますが、他の開発者と話をしていても、評価ツールとして一番に名前が上がりやすいのは、やはりRAGASです。 また、今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合は以下の記事もご参考下さい。 本題 ざっくりサマリー R

      RAG評価ツール「RAGAS」の論文を読む
    • GPT4oを使って、訓練無しで物体検出(BBox)ができるか試してみる

      今日も今日とてopenAIの新発表が機械学習界隈を賑わせていますね。 今回は、2024/05/14に発表されたGPT4oについてです。 返答速度があがったり画像認識精度があがったり音声会話の性能が良くなったりと色々話題が尽きません。 具体的にどのあたりが凄くなったのかは僕以外にもまとめている人が多そうなのでこの記事では触れません。 個人的に特に気になっているのが画像認識の精度向上部分で、今回は画像認識精度がどの程度あがったのか?というのを画像系機械学習の主要なタスクであるBBoxによる物体認識というタスクで簡単にチェックしてみようと思います。 BBoxとは BBoxはBoundingBoxの略で、画像内の特定のオブジェクトを囲むために使用される長方形のボックスの事を指します。 BoundingBoxの定義は以下の通り このBBox検出は画像系機械学習モデルの基本的なタスクであり、自動運転の

        GPT4oを使って、訓練無しで物体検出(BBox)ができるか試してみる
      • 令和のHTML / CSS / JavaScriptの書き方50選

        Web制作の技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。

          令和のHTML / CSS / JavaScriptの書き方50選
        • 実用Rustアプリケーション開発

          実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? この本では、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。本の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ

            実用Rustアプリケーション開発
          • WebAssembly所感

            WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

              WebAssembly所感
            • 脅威モデリングを参考に、社内全体のセキュリティリスク可視化を試みた話

              サイバーセキュリティチームでマネージャーをしている岡地と申します。本記事では、いま話題(!?)の脅威モデリングを参考に実施した、社内のセキュリティリスク分析について紹介させて頂きます。 サイバーセキュリティチームについて 私は2022年12月にウェルスナビにジョインし、2023年はコーポレートIT部門でセキュリティ担当として従事してきました。2024年1月からサイバーセキュリティチームとして独立し、チーム戦略の策定から始めているのですが、その中で改めて感じたのが、自社のリスク認識の解像度が不十分だということです。別の表現でいうと、自社のセキュリティのカタチがいまいちわからない状態でした。 この段階でも、過去からの経緯で認識できている課題や昨今のトレンドを踏まえた計画の策定も可能ではあるのですが、より精度の高い戦略を立てるためには、自社環境に対する解像度を上げる必要があると感じました。 自社

                脅威モデリングを参考に、社内全体のセキュリティリスク可視化を試みた話
              • zenncast - 技術トレンドをAIがラジオに変換

                Zennのトレンド記事をまとめてAIがラジオをつくります。毎朝7時に更新。 お便りも募集中。送っていただいたお便りはAIパーソナリティが読み上げます。

                  zenncast - 技術トレンドをAIがラジオに変換
                • Pinterest社で運用されているText-to-SQLを理解する

                  導入 こんにちは、株式会社ナレッジセンスの須藤英寿です。普段はエンジニアとして、LLMを使用したチャットのサービスを提供しており、とりわけRAGシステムの改善は日々の課題になっています。 本記事では、Pinterest社のエンジニアチームが紹介していた、実運用環境におけるText-to-SQLの構築方法に関する記事の紹介をします。 Text-to-SQLを実際の運用レベルで実現するための手法が解説されているので、その内容を解説、そして考察していきたいと思います。 なおこの手法には特に名前などは設定されていなかったので、以降Pinterest社の提案するText-to-SQLをPinterest Text-to-SQLと呼称します。 サマリー Pinterest Text-to-SQLは、RAGのシステムを最適化することで 検索に必要なTableのより正確な抽出 実際に使用されている値に準拠

                    Pinterest社で運用されているText-to-SQLを理解する
                  • ブラウザキャッシュの仕組みについてまとめた

                    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

                      ブラウザキャッシュの仕組みについてまとめた
                    • 中級Git操作

                      今回の記事の内容はGitHub共同創業者のScott Chacon氏の「Pro Git」と同氏の今年の「So You Think You Know Git」(Gitがわかっているとでも思っているか?)発表をベースにしている。 コンフィグ ここでコンフィグにてデフォルトとして指定して損がないオプションをいくつか紹介します。 git rerere git rerereは"reuse recorded resolution"(記録ずみ解決方法を再利用)の略語になっている。 名の通りマージコンフリクトがどう解消されたかを記録し、次に同じようなコンフリクトが発生した際、同様の解決方法を自動的に適用するためのコマンドです。 また、基本的にデフォルトにしてもときに差し支えないため、ぜひgit config --global rerere.enabled trueを実行してみてください。 git main

                        中級Git操作
                      • フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた

                        元フルスタックエンジニア(死語)をやらせていただいていたものです。 JavaScript(TS)周りの進歩が凄く、あまりにもついていけていなかったので、気になったワードを片っ端から整理してみました。 それぞれに対する説明の正しくないものが含まれてしまっている可能性があります。 そんなところを見つけたときは優しく教えてくださると助かります。 各ツールの詳細というよりは、それぞれがどんな役割のものなのかを記載しています。 この記事が誰かの助けになれば幸いです。 調査・分類した言葉(技術)たち Hono Bun Deno Biome Vite Webpack Turbopack esbuild Babel SWC Prisma まず上記に上げたものが、どういった機能を持つものなのかもわかりませんでした。 それを整理すると以下になるようです。 JavaScript Runtime Deno Bun

                          フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた
                        • オンライン自習室アプリを個人で開発した件

                          はじめに 私は、「アプレンティス」の2期生として、現時点で約6ヶ月間、プログラミングの学習をしています。 そのカリキュラムの中で、「Sabo Learn(サボラーン)」というオンライン自習室を提供するWebアプリをリリースしました。 前置きとして、開発期間は約2ヶ月間です。(平日は仕事をしているため、実稼働はもっと少なく、約500時間が開発に使える時間でした。) また、「誰かの課題を解決する」というテーマで、実際に使ってもらえるプロダクトを目指して開発しておりますが、それと同時に、自身の転職活動のポートフォリオでもあります。 そのため、随所に、「どうしてわざわざそんな技術を使ったの?」「インフラのスペック過剰じゃない?」といったツッコミどころがあるかもしれませんが、そのほとんどは「自分が知らない技術をキャッチアップしたかったから」か、「これくらいのことなら実装できます」というアピールのため

                            オンライン自習室アプリを個人で開発した件
                          • 僕の考えた最強の Python 開発環境 (2024)

                            はじめに こんにちは, 普段は情報科学専攻の大学院生をしながらバックエンドエンジニアをやっている @koki-algebra です. 普段は Go をよく書いているのですが, 大学でやっている機械学習の研究では Python を使うことがほとんどです. Go のエコシステムに慣れきった私は Python の混沌とした環境に耐えきれず, 最強の開発環境を整えることを決意しました. 具体的には Package Manager, Formatter, Linter, Type Checker, Test Tool を選定し, VSCode の DevContainer を用いてポータビリティに優れた開発環境を作ることを目指します. また, Deep Learning では GPU が必須である場合が多いので, GPU 環境も同時に整えたいと思います. 以下のレポジトリが今回考えた開発環境のテンプ

                              僕の考えた最強の Python 開発環境 (2024)
                            • 「ミニPCガチャ」で、Windowsがボリュームライセンス外れを引いた時の作業メモ

                              N100の格安ミニPCがほしかった(昨今、大体二〜三万くらいで買える) Windowsのライセンスがボリュームライセンスだった、闇とはいえ、キレそう 色々操作すると「組織に許可されてねーわ」的なことを言われたりもする (ここから本題) 回復ドライブつくって全消し再インストールしたら、Microsoft Storeがはいってなかった というか、ほとんどのWindowsアプリがはいってなかった メロスは激怒した ライセンスチェック ダイアログが開き、どのようなライセンスなのか確認できる。 ボリュームライセンスだとガチャ外れ。なお、半外れがあるらしい(再インストールで復活するケースがあるとか??)。 大手だと、OEMとしてPCのハードウェアにシリアルが焼かれており、それを利用できるのでチェックするとよい なんとなくググってると MAK…? とかでないと、どうやら外れらしい(たぶん、KMSが全外れ

                                「ミニPCガチャ」で、Windowsがボリュームライセンス外れを引いた時の作業メモ
                              • VSCodeでGitのコミットを楽に整理して、レビュワーに「コイツできる」と思わせよう。

                                はじめに Git Graphという拡張機能を使います。 Git GraphとGitLensという拡張機能を使います。[1] また、gitから開かれるエディタをvscodeにしておきます。 コミットのまとめかた(1分未満でできるよ) ステータスバーのGit Graphのボタンをクリックして、Git Graphの画面を開きます。 まとめたいコミットの一つ前のコミット(今回だとinit)を右クリックして、「Rebase current branch on this Commit...」を選択します。 「Launch Interactive Rebase in new Terminal」にチェックを入れて「Yes, rebase」をクリックします。 こんな画面が開きます。 まとめたいコミットを上から順にpickからsquashに変更します。最後の一つはpickのままにしておきます。そして「STAR

                                  VSCodeでGitのコミットを楽に整理して、レビュワーに「コイツできる」と思わせよう。
                                • 文字数のカウントはどれが正解なのか?

                                  A. ユースケース次第でどう実装すべきかは変わる。Intl.Segmenter が万能というわけでもない。 (クソ最悪な小バズをかましてしまったので、贖罪も兼ねて記事を書きました) 「文字数を数える」のは難しい 「文字数を数える」実装は意外と難しいです。というのも、アルファベットや数字だけなら str.length でも正しく数えられますが、絵文字や異体字などが入った文字列は見た目どおりに数えられません。

                                    文字数のカウントはどれが正解なのか?
                                  • データ分析のためのSQLを書けるようになるために

                                    はじめに 本稿では分析用クエリをスラスラ書けるようになるまでの勉強方法や書き方のコツをまとめてみました。具体的には、自分がクエリを書けるようになるまでに利用した教材と、普段クエリを書く際に意識していることを言語化しています。 想定読者として、SQLをガンガン書く予定の新卒のデータアナリスト/データサイエンティストを想定しています。 勉強方法 基礎の基礎をサッと座学で勉強してから、実践教材で実際にクエリを書くのが望ましいです。 実務で使える分析クエリを書けるようになるためには、実務経験を積むのが一番良いですが、だからといって座学を御座なりにして良いというわけではありません。SQLに自信がない人は、一度基礎に立ち返って文法の理解度を確認した方が良いと思います。 書籍 SQL 第2版: ゼロからはじめるデータベース操作 前提として、SQLに関する書籍の多くがデータベース運用/構築に関する書籍がほ

                                      データ分析のためのSQLを書けるようになるために
                                    • ZennとQiitaの2重管理を解消してみた

                                      概要 ZennとQiitaに同じ記事を投稿する際には、同じ内容を2つのファイルで管理する必要があります。変更があるたび、忘れずにコピー&ペーストをして、プラットフォーム独自の記法[1]を書き換えなくてはなりません。手間がかかる上に、手作業なのでミスが起こるかもしれません。 複数の場所で同じ記事を管理するのが面倒 プラットフォーム独自の記法を手作業で書き換えるのが面倒 これらの問題を解決するために、Rust言語で簡単なツールを作ってみたのでご紹介します。「Zeta」と呼ぶことにします。 動作確認環境 $ node --version v21.7.1 $ npm --version 10.5.0 $ npx zenn --version (node:11561) [DEP0040] DeprecationWarning: The `punycode` module is deprecated

                                        ZennとQiitaの2重管理を解消してみた
                                      • Vimmer のための 括弧編集入門

                                        Vimmer のための 括弧編集入門 プログラミングにおいて、もっともよくに入力する文字種はなんだろうか。 そう、括弧である。括弧を効率良く編集することは、どんなプログラミング言語をつかう人にとっても有益である。 その信念のもと、僕が使っている括弧編集の種々を紹介したい。 括弧の挿入と削除 1 ドア、箱、ノートパソココン、どんなものも開いたら閉じます。括弧だってそうです。 どうせ閉じることがわかっているのであれば、開き括弧が入力された段階で閉じ括弧も入力したいですね。 vim なら innoremap を使うことで実現できます。 上記は挿入モードで開き括弧が入力されたら自動で閉じ括弧も入力してくれる機能です。 一番簡単に閉じ括弧を自動入力する機能です。 括弧の挿入と削除 2 https://github.com/eraserhd/parinfer-rust https://github.c

                                          Vimmer のための 括弧編集入門
                                        • フロントエンドの真実

                                          起源 まだフロントエンドという言葉が生まれる前。 古代のプログラマー達はサーバーで一画面ずつ丁寧にHTMLを構築していた。 ところがあるとき一人のプログラマーがブラウザ上で動的にHTMLを書き換えることに成功する。 これに多くのプログラマーが続いた。 次第に勢力を増していった彼らはサーバーを離れ、自らをフロントエンドエンジニアと名乗り、サーバーに残ったもの達をバックエンドエンジニアと呼ぶようになった。 きっかけ 先日こんな投稿がとある掲示板(ここではXと呼ぶことにしよう)に寄せられた。 たしかに、Server Actionsを使って書くReactと、いにしえのPHPは非常によく似ている。 ふと10年近く前の出来事を思い出した。 それは次のような同僚との会話だった。 👨🏻‍💻「React触ってみました。」 👨🏻‍💼「え、どんな感じやった?」 👨🏻‍💻「なんかPHPに近い感じ

                                            フロントエンドの真実
                                          • 【タスク管理術】Notionで全ての仕事を管理する方法を徹底解説

                                            はじめに タスク管理はクリエイターの永遠の課題だと思います。 普段の案件に関するタスクはもちろんですが、案件とは関係ない事務作業やデータの整理、後で読みたい記事、試してみたい技術など、私たちには様々なタスクがあります。 膨大なタスクを管理する方法を日々模索し続け、ようやく自分の中で「これ!」というのが固まってきたので、私なりのNotionを用いたタスク管理方法を解説していこうと思います。 Notionとは 様々な情報やドキュメントを一元管理できるサービスです。公式サイトに書かれている通り、様々なドキュメント管理ツールをひとつに集約したのがNotionになります。 日々の業務は「案件に関するタスク」と「案件とは関係ないタスク」の2つに分けられます。 「案件に関するタスク」は期日や案件の詳細情報、自分の担当範囲などを分かりやすく管理することが重要です。「案件とは関係ないタスク」は業務改善や事務

                                              【タスク管理術】Notionで全ての仕事を管理する方法を徹底解説
                                            • 【実践】エンジニアの基礎教養-アルゴリズムを学べる本

                                              筆者は新卒エンジニア時代に社内でアルゴリズム勉強会を主催していました。 その内容を本形式に書き起こしたものになります。 【この本の特徴】 📗問題演習形式でアルゴリズムの基礎が身に付く構成となっています。 📗分かりにくい概念は丁寧に図解で解説しています。 📗基礎的なアルゴリズムがどのように世の中に役立っているのかを言及しています。 アルゴリズムに関して、皆さんの理解を深めるお手伝いができれば幸いです。

                                                【実践】エンジニアの基礎教養-アルゴリズムを学べる本
                                              • 本に書いてあるスクラムと、お前らのいうスクラム開発は別物だということにいい加減気づいてくれ

                                                前振り タイトルは煽りの激しい釣りです。ごめんなさい。 Web業界で今流行っている自称スクラムと、RSGTで語られるような本来のスクラムとの間のギャップが大きすぎて説明が面倒臭くなったのでこの記事を書きました。 いい加減「私たちは自称スクラム開発を完璧に回しているから、スクラムの恩恵を将来得られるだろう」「私たちは本来のスクラムとはかけ離れた別物のスタイルで開発をしている。だからスクラムの恩恵は永遠に得られない」という二重思考を他人にするようお願いするのにも飽きましたしね。 さて本題といきましょう 本題 世間で、特に渋谷や五反田や六本木のWeb企業ではスクラムというものはとても流行っています。 しかしどう考えても、Web企業でよくお目にかかるスクラムと国内トップカンファレンスであるRSGTで語られるスクラムとの間には大きな隔たりがあります。 「うちはスクラムやってます」 カジュアル面談で耳

                                                  本に書いてあるスクラムと、お前らのいうスクラム開発は別物だということにいい加減気づいてくれ
                                                • Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?

                                                  この記事のモチベーション 「php-fpmとはなにか?」を知るため、PHPのドキュメントを見ました。 しかし、ここに書いていることはまあそうなのですがあまりに焦点が絞られ過ぎてて「php-fpmとはなにか?」に対する答えとしては少し不十分な気がしていました。 例えるなら数学の問題に答えるにあたって、途中式を飛ばしたり証明の過程を飛ばしたりというような感じ。 不十分というのは、それを理解するための段階をすっ飛ばして答えだけが書かれている状態のことを指しています。 その不十分なところを自分も曖昧にしか理解できていない気がしており、いい機会なので整理しておこうというのがこの記事のモチベーションです。 そのためこの記事は、「php-fpmとはなにか?」をプロセス→Webサーバー→実行方式と順を追って説明していく構成になっています。 「細けぇこたぁいいんだ、おらぁ今すぐ答えだけ知りてぇンダ」という方

                                                    Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?
                                                  • フロントエンドの移り変わりは早すぎるのか

                                                    インターネットでは毎日のように言われることですが、私はそこまでではないと考えています。 ネットでよくそう言われる理由として考えられるものと、それを踏まえてどう向き合っていくとよさそうか、個人的な考えをまとめてみます。 なぜ言われるのか 言語が実質的にJavaScript一択 バックエンド、というかサーバサイドでは技術選定に「言語の選択」が入りますが、フロントエンドでは実質的にはJavaScriptにほぼ固定されます(TypeScriptも別言語ではないので、ここではJavaScriptに含めます) サーバサイドと比較して「技術の移り変わりが早すぎる」と評される場合、多くはその人の使用しているとある言語と比較されているように思われます。 実質的に言語が固定なので、比較するならすべてのサーバサイドの変化の総量と比較するのが妥当でしょう。 PHP + Python + Ruby + go + J

                                                      フロントエンドの移り変わりは早すぎるのか
                                                    • WEBエンジニアだけど1mmも確定申告が分からないので調べたのだ~~!

                                                      2月になると「確定申告の季節ですね~」と言うエンジニアがいるのだ。 ぼくも「そうですねー」と話をあわせるのだが 「確定申告」ってなんなのだあああああああ~~~~? 実はぜんぜん知らないのだああああああああああああああ ・・・って内心は思ってるのだ。 そんなことではいけないと思い、確定申告について調べてみたのだ! 確定申告とは? 一言でいうと「私は今年これだけ稼ぎました!」と税務署に報告することを指すらしいのだ。 うん、それは知ってるのだ。 中学生のときに「国民は納税する義務があるよ」と教えられたのだ。 でも、具体的に いつ? どれくらい稼いだら? どうやって申告する? 税金の仕組みってどうなってるの? など詳しいことは教えられていない気がするのだ。 そこらへんを掘り下げていくのだ。 その前に:会社員は? 会社員の場合は、源泉徴収(げんせんちょうしゅう)というやつのおかげで、確定申告をしなく

                                                        WEBエンジニアだけど1mmも確定申告が分からないので調べたのだ~~!
                                                      • Zennを支える Google Cloud の技術

                                                        Zennの裏側では、Next.jsとRuby on Rails 2種類のアプリケーションサーバーが動作しており、どちらも Cloud Run で運用しています。 Google Cloud では、Cloud Run をはじめアプリケーションの開発から運用までをワンストップで担えるサービスが充実しています。このセッションでは、Zennのバックエンドに焦点を当て、Google Cloudをどのように活用しているかの他、CI/CDをどのように回しているか、機能開発の是非をどう判断しているかを説明します。 アプリケーション開発のサイクルをZennを例に解説することで、皆様にとって少しでも手を動かすきっかけとなることを期待しています

                                                          Zennを支える Google Cloud の技術
                                                        • CodeMirror v6によるZennのMarkdownエディタの作り方

                                                          Zennでは、「記事」や「本のチャプター」のMarkdownエディタのベースにCodeMirrorというライブラリを使っています。これまではCodeMirrorのv5を使っていた(正確にはv5に依存するラッパーライブラリを使っていた)のですが、古いバージョンを使い続けるリスク解消と更なるエディタの拡張性を得るため、CodeMirrorのv6にアップグレードすることにしました。 本記事では、CodeMirror v6の基本的な知識部分から、ZennのMarkdownエディタを実装するまでのカスタマイズ方法を紹介します。 CodeMirrorの基礎知識 はじめに CodeMirrorはWeb上にコードエディタを実装するためのライブラリです。標準で多くのプログラミング言語に対応したシンタックスハイライトや入力補完、折りたたみ、キーマップ、マルチカーソルなど、モダンなコードエディタに必要な機能を備

                                                            CodeMirror v6によるZennのMarkdownエディタの作り方
                                                          • ZennのE2Eテスト基盤をリプレイスしました(開発体験向上、CI時間の短縮、Playwright移行)

                                                            はじめに 2023年にZennチームにJoinしたdyoshikawaです。 このたびZennのE2Eテスト基盤をリプレイスしました。このような下回りの改善はユーザへの価値提供との距離が近い機能開発と比べてどうしても後回しになりがちな中、Publication Proという大きなリリースを迎えて少し開発が落ち着いたタイミングであり、E2Eテストを拡充できる土台を整えることで今後より安心して機能を追加していけるようにするために必要だということで実施しました。 各テストを独立実行可能にすることによる開発体験向上、CI(GitHub Actions)の実行時間短縮、そして将来を見据えてのCypressからPlaywrightへの移行を行いました。 本記事ではリプレイス前に抱えていた課題、それに対して打ち出した解決方針、そして具体的にどんなことをやったのかを紹介します。 抱えていた課題 前提として

                                                              ZennのE2Eテスト基盤をリプレイスしました(開発体験向上、CI時間の短縮、Playwright移行)
                                                            • 基本情報技術者を取得してから「見える世界」が変わった話をしようか

                                                              どうもお疲れ様です。 MESIです。 皆さん基本情報技術者は取得済みでしょうか? よくITエンジニアの免許と言われている資格ですよね。 私は一昨年の秋に取得しました。 ちょうどエンジニアとして就職して2年目の時でしたね。 それまでの私の知識は業務で必要とされる部分しか知識がなく、情報系の学科を出ているわけでもないので、ITエンジニアとしての土台が全くない状態でした。 時々、このままではいけないと技術書を買って読むのですが、土台がないので頭に全然入ってこないし、何が書いてあるのかわからない。。 そんな私が基本情報を受験してから、見える世界が変わった件について話します。 『何をしている?早く基本情報技術者を取るんだ!』 新卒1年目の自分に言いたいセリフNo1がこれです。 なぜ基本情報を受験することになったのかといいますと、会社で半年に一度目標設定をするのですが、その一環としてです。 エンジニア

                                                                基本情報技術者を取得してから「見える世界」が変わった話をしようか
                                                              • スイカゲームの作り方

                                                                はじめに Go言語用のEbitengineというゲームエンジンに興味があったので、試しにスイカゲームもどきを作りってみました。Ebitengineを使うと意外と簡単にスイカゲームもどきを作る事ができたので、なるべく分かりやすく作り方を紹介してみようと思います。 まずは先に完成品をお見せします。ちなみにフルーツの回転は面倒くさいので実装しないことにしました。 ちなみにEbitengineはwasmでも普通に動きます。ビルドしたものをこちらに置いたのでブラウザから実際に動かす事ができます。 それではスイカゲームもどきを作って行きましょう。 描画する まず一番初めにフルーツの画像を作るところから始めます。これはリンゴ、オレンジ、ブドウ、パイナップル、メロン、スイカのつもりです。 続いてフルーツを定義します

                                                                  スイカゲームの作り方
                                                                • Publication機能が正式リリース&本日よりProプランをご利用いただけます! | What's New in Zenn

                                                                  2023年1月よりオープンベータとして提供しておりましたPublication機能は、1年が経過した2024年1月時点で590もの企業・組織にご利用いただいています。ご利用中の皆さま、ありがとうございます。 本日、Publication機能は正式リリースとなります。また、昨年末にご案内した「Publication Proプラン」が、本日よりご利用いただけるようになりました! Proプランの機能や価格については、上記リンクやPublicationページをご覧ください。 運営からのメッセージ Publication Proで解決したい課題 私たちは、情報発信の課題のひとつに継続性があると考えています。 Publication Proは、情報発信をすればするほどPublicationの価値が高まる設計とし、企業・組織のブランディングを支援します。たとえば統計ダッシュボード機能では、投稿を重ねるほ

                                                                    Publication機能が正式リリース&本日よりProプランをご利用いただけます! | What's New in Zenn
                                                                  • 【DDD入門】TypeScript × ドメイン駆動設計ハンズオン

                                                                    TypeScriptとドメイン駆動設計(DDD)を組み合わせ、APIを構築するハンズオンガイドです。この本では、DDDとは何かという基礎的なところからソフトウェア開発における戦略的設計、戦術的設計まで、包括的な知識を提供します。 戦略的設計では、ビジネスの要求に合わせたドメインモデルの設計をイベントストーミングを用いて行います。その後、戦術的設計では、具体的なコードの実装に関連するDDDの原則と実践を学びます。 TypeScriptを使ってコードを書きながら、DDDの概念を実際のプロジェクトに適用するヒントを紹介します。

                                                                      【DDD入門】TypeScript × ドメイン駆動設計ハンズオン
                                                                    • お気に入りのコマンドラインツールを淡々と紹介する

                                                                      めちゃくちゃ良い記事でした。 「OSS は使っていることを公言するだけでも貢献になる」と songmu さんが言っていたので、私も貢献したいと思います。 僕も貢献したいのでよく使うコマンドラインツールを紹介していきます。 特定のプログラミング言語等に依存するツールは省いています。 actionlint - GitHub Actions の Workflow ファイルの静的検査 GitHub Actions の Workflow ファイルの静的検査ツールです。 かなり精度が高く、色々な設定ミスを検知してくれます。 エラーメッセージも見やすくて助かります。 aicommits - コミットメッセージを自動生成 変更内容を元に自動でコミットメッセージを AI が生成してくれるツールです。 コミットをする前にちゃんと確認してくれるのも安心感があって良いです。 cLive - ターミナル操作を自動化

                                                                        お気に入りのコマンドラインツールを淡々と紹介する
                                                                      • Firebase Authから内製認証基盤に無停止移行して年間1000万円以上削減した

                                                                        症状検索エンジン「ユビー」 では、ローンチ当初から Firebase Auth (GCP Identity Platform) を使っていましたが、OIDCに準拠した内製の認証認可基盤に移行しました。 認証認可基盤そのものは m_mizutani と nerocrux と toshi0607(退職済) が作ってくれたため、僕は移行のみを担当しました。 結果として、強制ログアウトなし・無停止でビジネス影響を出さずに、年間1000万円以上のコスト削減に成功しました[1]。その移行プロセスについて紹介します。認証認可基盤そのものの紹介はあまりしません。 移行した理由 大量の匿名アカウント ユビーでは、アクセスした全ユーザーに対して自動的に匿名アカウントを発行しています。これにより、ユーザーがアカウント登録しているかどうかに関わらず、同じID体系で透過的に履歴情報等を扱うことができます。アカウント

                                                                          Firebase Authから内製認証基盤に無停止移行して年間1000万円以上削減した
                                                                        • 技術記事はZennで書くことにします - StatModeling Memorandum

                                                                          ここ5,6年、技術記事を書くのにはてなブログを使っていましたが、以降でははなるべくZennで書くようにしたいと思います。過去の記事まで移行するわけではありません。 Zennが良い理由は複数あります。大きなところで以下です。 はてなブログでは数式が書きづらい。[tex: ] でくくるのが結構つらい。たまに一部の文字のエスケープが必要になる。一方、Zennはふつうの慣れたTeX記法で書ける。ほぼバグらない。 調べた範囲では、はてなブログ・QiitaではGitHubのリポジトリにあるコードの埋め込みができない。gistの埋め込みは簡単にできるんだけどね。一方、Zennは簡単に埋め込みができる。 上記のユーザの快適さは頑張ればすぐ実現できただろうけど、はてなブログの新機能はどれも技術記事の方には向いておらず、一般の記事の方に向いている印象がある。一方、Zennは技術者のためを謳っていることもあり、

                                                                            技術記事はZennで書くことにします - StatModeling Memorandum
                                                                          • マイクロサービス化は本当に難しい

                                                                            はじめに この記事は、AEON Advent Calendar 2023の21日目です🎉 イオンスマートテクノロジー株式会社(通称AST)のCTO室TechLeadチームの@t0doroki_takaです。弊社ではSREチームの発信に勢いがありますが、アプリケーションレイヤーよりの話題も積極的に発信していければと思います。 自分の敗戦の振り返り 以前、大規模ECシステムのリプレース案件に関わった時(そして敗戦したとき)の振り返りです。 今回取り上げるケーススタディは、システム全体(連係するシステム含む)としては段階的移行ではありましたが、主ターゲットとなるシステムは、全EC機能を包括する大規模なシステムで、それをフルスクラッチでリプレースするものでした。 巨大なモノリス構造であったため、マイクロサービスアーキテクチャに移行することで、サービス提供のアジリティを確保することが目的の一つでし

                                                                              マイクロサービス化は本当に難しい
                                                                            • 最近気に入っているOSSを淡々と紹介する

                                                                              はじめに こんにちは〜!皆様いかがお過ごしでしょうか? no plan inc. CTOの @serinuntius です。 これはno plan inc.の Advent Calendar 2023の22日目の記事です。 最近気に入っているOSSとかを作者様に感謝しながら、スターを送りながら、こんなのを使用してるぜって紹介する記事です。 「OSSは使っていることを公言するだけでも貢献になる」とsongmuさんが言っていたので、私も貢献したいと思います。 紹介する順番に特に意味はありません。 rtx 個人的お気に入り度: ★★★★★ スター数: 3700 Rustで作られている💯 LICENSE: MIT 初っ端は、rtxです。あらゆるプログラミング言語環境(Runtime)のマネージャーです。 公式のデモ画像を見ていただくのが一番早いと思います。 私はこれを使う前はanyenvというも

                                                                                最近気に入っているOSSを淡々と紹介する
                                                                              • チーム開発を加速するテストの育て方

                                                                                テストを書いてないというチームには色々理由があると思いますが、「何をテストすべきかわからない」「書き方がわからない」「どのくらいメリットがあるかわからない」という意見は多いのではないでしょうか?テスティングフレームワークの選定や使い方を学ぶのは重要ですが、それ以上にテストの目的や戦略を学ぶことが重要です。チーム開発においてテストを活かすのは相応の知識とスキルが必要になりますが、活かせればテストは開発スピードを維持・促進する飛び道具になり得ます。 本稿は筆者が取り組んで実際に高いチーム満足度と速度を得られた、テスト戦略についてまとめたものです。

                                                                                  チーム開発を加速するテストの育て方
                                                                                • Gmailの新スパム規制対応全部書く

                                                                                  [2024年1月10日、19日追記] GmailとYahoo!側のアップデートに合わせていくつか細かい説明を追加しています(大筋は変わっていません)。変更点だけ知りたい方は「追記」でページ内検索してください。 2023年10月3日、Googleはスパム対策強化のため、Gmailへ送るメールが満たすべき条件を2024年2月から厳しくすると発表しました。また米国Yahoo!も、2024年2月 第一四半期[1] から同様の対策を行うと発表しています。端的に言えば、この条件を満たさないと宛先にメールが届かなくなるという影響の大きな変更です。 この記事では、Gmailや米国Yahoo!の規制強化への対応方法を解説します。ただし米国Yahoo!にメールを送る人は多くないと思うので、フォーカスはGmail寄りです。また、メール配信サービス(海外だとSendGridやAmazon SES、国産だとblas

                                                                                    Gmailの新スパム規制対応全部書く