こんにちは、イノベーションセンターの加藤です。この記事では、大規模言語モデル(LLM)にJSONやソースコードを正しく出力させるための生成手法であるStructured Generationについて紹介します。 Structured Generationとは パーサーを用いた制約手法 正則言語とは 正則言語のStructured Generation 文脈自由言語とは 字句解析について 正則言語+文脈自由言語のStructured Generation まとめ Structured Generationとは 大規模言語モデル(LLM)はよくチャットボットとしての活用が目立ちますが、LLMの入出力を外部のプログラムに繋ぎ込むことでより高度な自然言語処理システムを作ることができます。 例えばOpenAIのCode Interpreter1はLLMをPythonの実行環境と接続することで、ユーザ

ソフトウェア開発におけるコードレビューの位置づけは、曖昧にされがちだ。欠陥を見つけるためにやっているのだろうか。コード品質を高めたいのだろうか。いずれにしても、チームやプロジェクトで統一された目的がないこともめずらしくない。レビュアーはただ、眼の前にあるコードの中で気になった箇所にコメントしているだけになってはいないだろうか。 また、チームのバージョン管理ツールを観察すると、コードレビュー待ちの開発ブランチが多いこともめずらしくない。実装することにばかりに時間が割かれ、コードレビューは後回しになっているのだ。しかし、レビューを終えなければ、それらは統合ブランチにマージされない。そうして生存期間が長いブランチが多くなるほど、マージコンフリクトが起こりやすくなる。その対処に支払うコストもばかにはならないだろう。本稿は、コードレビューに関する2つの論文を中心に、機能的なコードレビューのあり方に

みなさんこんにちは! ONE CAREER CLOUD採用管理(ATS)チームにて、ソフトウェアエンジニアを担当しているコ ショウトウ(Github:jamesdongdong)です。 今回は、フロントエンド開発におすすめのVSCode拡張機能について紹介したいと思います! きっかけ弊社佐藤が執筆したお気に入りツールの紹介記事は、ご覧いただけたでしょうか? 実際、私は佐藤の記事に載っていたツールを色々と導入してみたのですが、自分の作業効率が大幅に向上しました。特に、Raycast を活用してブックマークをすぐに開いたり、ウィンドウサイズを設定したりするようにしたことで、作業を一気に効率化できたと感じています。 便利なツールについて言えば、私も仕事の効率を高めるために普段から多くのVSCode拡張機能を使用しています!「自分も皆さんに、仕事の効率が高まる、非常に役立つおすすめのツールを紹介

はじめに ※ (2024/03/14 16:33) 「インテグレーションテストの気軽な実行・変更ができない」節にて、データのクリーンアップを teardownで行うよう修正 EC開発-B グループの岡崎と EC開発-A グループの菊川です。2人とも普段は MonotaRO の EC サイトの開発に従事しています。 今回は、昨年11月に開催した、テストとリファクタリングのためのワークショップの中で行ったライブコーディングの準備をするにあたって困ったことについて記載します。 ライブコーディングでは、参加者全員の前で実際のプロダクトのソースコードをリファクタリングする、ということにし、それにあたって研修の運営メンバーでリファクタリングに取り組んでみました。ただ闇雲にリファクタリングするのではなく、研修では参加者に「どのような流れや考え方でリファクタリングをするか」を理解してもらえるように、運営メ

FilterList 引数にFilterListを指定できるオプション(attributesやdomProperties)は、FilterListに指定することで出力をフィルタリングすることができます。 使用例 以後こちらのHtmlコードを元に出力していきます。 <h1 id="m1" class="m" data-db="shop" data-tbl="area">見出し1</h1> 最小限出力 膨大なDomプロパティを全部見る必要もないし、デフォルトの設定でも多すぎると感じるかもしれません。必要な部分だけを表示させたいので、まずは最小限の情報だけ出力してみました。 let tarEl = document.querySelector("h1") let opt = { attributes: false, // 属性を非表示 deep : 0, // 子階層を辿らない metadata
このエントリーは一休.com Advent Calendar2023の15日目の記事になります。 CTO 室の恩田です。 現在は一休レストランのフロントエンドのリアーキテクトを手がけています。 今日はその中でNext.js App Router から Remix に乗り換えた話をご紹介したいと思います*1。 背景 6日目の記事で香西から紹介させていただきましたが、2023年10月に一休レストランのスマートフォン用レストラン詳細ページをリニューアルしました。 一休レストランのRust バックエンドが正式リリースされました。https://t.co/7N4VGv5ej9 このページのスマートフォンビューはバックエンドがRust で書かれたGraphQL になってます— naoya (@naoya_ito)2023年10月4日 ちなみにフロントエンドも、旧バージョンは Nuxt v2
【IIJ2023TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

どうも、レコメンド商品のシステム開発をしている野川と申します。 私は、2021年にモノタロウに新卒入社し、2022年5月からレコメンド商品の開発に関わり始めました。 モノタロウのレコメンド商品は、下の図の①~④の流れでクライアントサイドで表示しています。大部分の処理はJavaScriptで構成しており、UIもそのHTML部分をjQuery(JavaScript)で作成しています。 図:レコメンド商品表の流れ 入社当時私は、ソフトウェアエンジニアとして、「可読性の低いコードは駆逐するべきだ」「読みやすいコードだけが正義である」「理解しやすいシステムだけが皆を幸せにする」と心の底から考えていました。加えて、「なぜ先輩たちは可読性の低いコードを放置して平気なのか?」と疑問を持つこともしばしばありました。 レコメンド商品周りのコードはまさに可読性の低いコードベースとなっていたため、当事者となった私

はじめに こんにちは。Repro で Booster の開発をしている杉浦と申します。 最近はJavaScript の盛り上がりが凄いですね。今ではブラウザ内にとどまらず、サーバサイドでも活用される様になりました。 これには、言語仕様が整理されたり機能が強化されたり、非常に大きな発展があったという点が大きいです。 実は、言語としてのJavaScript だけではなく、最近HTML との境界インタフェースとしてのJavaScript の仕様も最近かなり明確化されてきています。 自分もHTML5 の最初のあたりまでは把握していたのですが、Booster の開発に携わる中で久しぶりに確認したところ、随分と仕様が進化し複雑になっていました。 今回はそんなHTML 規格の変化部分の紹介と、過去からのHTML とJavaScript の流れを振り返る簡単なまとめです。HTML 仕様と

Elastic社のブログをきっかけに、最近見かける新しいライセンスについて個人的に調べてみた。私は専門家ではないので要注意。公開情報も隅々まで追えているわけではないし。 なお一部ライセンスはOpen Source Initiative (OSI)による承認を受けていないので、ここではオープンソースライセンスではなく単に「ライセンス」と書くことにする。 新しいライセンスが誕生している背景 従来のオープンソースライセンスが再頒布以外の利用をあまり想定していなかった。 Open-core modelないし完全オープンソース戦略を採る企業が自衛策を必要とした。 既存のライセンスが難解なため、理解しやすいライセンスが求められた。 OSS活動を収入に繋げるためのモデルが試行錯誤されている。 新しいライセンスを導入しているプロジェクト(一例)プロジェクト ライセンス Elastic SSPLと独自ライ
2023年6月15日に『深掘りRubyKaigi2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第1部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 www.youtube.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 正規表現に興味を持ったきっかけ fujimura:最初は藤浪さん、makenowjustさんに正規表現の発表について伺おうと思います。まずは改めてRubyKaigi2023でどんなことを発表したかを紹介いただけないでしょうか? makenowjust:Rubyの正規

なぜ、スクラムが上手くいかない・しっくりこないと感じるのか考えてみよう2023年06月20日 火曜日 どうも名古屋支社の北河です。 今回はスクラムの “ちょっと” した感じ方について取り上げていきたいと思います。スクラムを実践している方はスクラムガイドを一度は読んだことがあるかと思います。読んでみると、軽量級やシンプルといったキーワードが目に入ってきます。 そしていざスクラムを実践し始めるとこんな声を聴きます。 「う~ん、難しい。上手くいかない」「なんかしっくりこない」「これで良いのかな?」と。 ということで、なぜ上手くいかないと感じるのか、しっくりこないと感じるのか、を自分の解釈を交えて考えてみたいと思います。スクラムとはアジャイルの価値や原則を満たすプラクティスを組み合わせたフレームワークの一つです。アジャイルとスクラムを混同していたり、違いって何?というケースを見かけますが

はじめに はじめまして、アンドパッドSWEの小川です。 アンドパッドの開発組織では、アジャイル開発の手法を取り入れたチームづくりや開発プロセス改善に関する取り組みが盛んに行われています。 今回は、私が所属する施工案件管理チームで最近行った取り組みについて紹介したいと思います。 背景 これまでも、チームの開発プロセスにはアジャイル開発のフレームワークであるスクラムの手法を取り入れていました。たとえば、開発タスクはカンバン上で管理し、会議体としては毎日の朝会、週ごとのスプリントプランニングとレトロスペクティブを行っていました。 しかしながら、実際にはスクラムガイド記載の内容に従っておらず、「なんとなくスクラム」をやっているだけという面がありました。 たとえば、スクラムガイドが定義するスプリントプランニングはスプリントに実施するタスクを決定するための会ですが、我々の実施していた会では仕様や機能に

私たちソフトウェアエンジニアは、コード品質についてしばしば論ずるけれども、ではコード品質の良し悪しがどれほどビジネスに影響するのかと問われると、回答に窮する。只々、「コード品質が悪いと変更により多くの時間がかかります」だとか、「欠陥の修正に追われて開発時間が奪われます」だとか、個人の経験やエンジニア的一般論に頼った定性的な説明に終始するしかない。ソフトウェアを繰り返し変更する頻度が高いほど、コード品質が開発時間に影響を与えるのは確かにそのとおりだと思えるが、はたしてそれは、どれほどのインパクトなのだろうか。2022年の研究論文 "Code Red: The Business Impact of Code Quality – A Quantitative Study of 39 Proprietary Production Codebases" では、コード品質がビジネスに与えるインパクト

Docker一強の終焉にあたり、押さえるべきContainer事情 を読んで漠然とDockerが終わるって思った人、素直に手をあげてください。別にDockerは終わりません。なんかむしろWASMとかんばるぞって息巻いてて可愛いので頑張って欲しいと個人的には考えています。 その昔、Kubernetes 1.20からDockerが非推奨になる理由 - inductor'sblog を書いたら炎上しました。最初の記事の書き方が良くなかったという反省はあるにせよ、世間一般で「Dockerは開発環境で使うやつ」という認識があまりにも広がりすぎているというのが良くわかる勉強の機会になりました。 逆を言うと、みなさんがこれらの記事を読む時には、Dockerという言葉に含まれる意味に注意して読んでいただきたいと思っています。Dockerには大きく分けて以下の意味が含まれると僕は考えています。 Docke
現在のWebでは、セキュリティ上レスポンスヘッダで色々なものを指定します。Webデベロッパーは個別に指定しなければなりません。 そこで、セキュリティ関連のヘッダを推奨デフォルト値に設定できるようにする「Baseline ヘッダ (Opt-into Better Defaults)」が、GoogleのMike West氏によって提案されています。 まだたたき台であり、これからW3CのWebAppSec WGで議論されている予定になっています。 Baseline ヘッダ 次のようにレスポンスヘッダを指定します。 Baseline:Security=2022これは、次のヘッダを送信するのと同様です。 Content-Security-Policy: script-src 'self'; object-src 'none'; base-uri 'none'; require-trusted-ty
ThinkPadユーザならお馴染みのLenovo Vantageから、「BIOSとIntel MEの更新があるので、今すぐ適用してね!」とポップアップが出たため実行したところ、フラッシュが終わったと思しき後から起動しなくなりました。 それを直した時のメモ。 環境メモ 修理方法 EEPROMの特定とROM Programmerの選定 CH341Aについて チップへの接続方法2023/1/1 14:00 ICパッケージについての追記 オリジナルのバックアップ ファームウェアの解析 ダウンロードデータとの比較 What's next? Write時の罠本当に正しく書けたのか? 再書き込み しかし…まだ罠はあった 成功か?……ん…? 晴れて成功! 固有データの復元は? 参考文献 環境メモ マシンThinkPad X13 Gen2 Type Number20WK-CTO1WW 2021/06製

Microsoftはこのほど、「Token tactics: How to prevent, detect, and respond to cloud token theft -MicrosoftSecurityBlog」において、認証に用いられるトークンの盗難が急増していると伝えた。組織が多要素認証(MFA: Multi-Factor Authentication)の適用範囲を拡大するにつれ、サイバー攻撃者は企業のリソースを侵害できるよう、より洗練された手法に移行してきていると警告している。 Token tactics: How to prevent, detect, and respond to cloud token theft -MicrosoftSecurityBlog サイバー攻撃の手口として、トークン盗難が増加していることがMicrosoft Detection

こんにちは。モノタロウで開発を担当している河本です。2021年7月から2022年2月に技術評論社様で発刊されている Software Design にモノタロウにおけるPython大規模開発に関する取り組みを連載させていただきました。そして無事に8か月分の雑誌連載を完遂することができました。ここでは、雑誌連載プロジェクトの体制やスケジュール、成功させるために取り組んだことについてご紹介します。 Software Designの記事の再紹介 連載のきっかけと狙いプロジェクト体制 スケジュールプロジェクトを成功させるために取り組んだこと さいごに Software Designの記事の再紹介 全8回の連載のテーマは「Python」、「大規模」、「レガシー」の3本柱でした。 連載してきた記事は以下になります。 第1回 Software Design連載 2021年8月号Python製のレガ

初めまして、プロダクト開発部 Data Hub プロダクトグループの秋田です。20卒で入社して半年が過ぎ、月日があっという間に過ぎ去る恐ろしさを肌で実感する今日この頃です。本連載では様々なプロトコルやシステムの仕様を読み解いていくことで、それらに込められた意思と意図を考えていこうと思います。 第1回は Data Hub で使用している Azure Service Bus で採用されている Advanced Message Queuing Protocol 1.0 (AMQP 1.0) の仕様を読み解いていきたいと思います。 Advanced Message Queuing Protocol (AMQP) について 近年のマイクロサービスアーキテクチャにおいては、アプリケーションとサービスを分離し非同期に動作させるために、メッセージキューを使うことがあります。メッセージキューの一般的な説明

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く