ラーメン二郎といえば、近年における麺類業界最大のインパクトであり、もはやラーメン界においては塩や醤油と並ぶ一つのジャンル、いや麺類におけるオンリーワンの存在であると考える熱狂的なファンも多い。 値段は安くて量が多いという抜群のコスパを誇る二郎のラーメン。それをわざわざ自宅で再現するという、麺好きの中でも特にニッチなマニアの方から、二郎っぽいラーメンの作り方を教えていただいた。
E2E Testing の自動化について。 こちらの本を読み、どうしたら継続的に自動テストを実践していけるのかについて学んでいる。 リグレッション テスト(リリース サイクル)で不具合を見つけた場合、手戻りが多く発生する。 不具合を「開発サイクル」の中で見つけることで開発者にとって手戻りが少なく効果的なテストにできる。 tl;dr Application の実装に依存したテストを書かない。 振る舞いをテストする どちらも同じように動作する。しかし、前者は Application の内部構造に依存しており、実装方法を変更した場合に、副作用を受ける。 著書にも述べられている通り、内部構造をもとにテストを実装することは推奨されない。なぜなら、構造の変化により、Application と テスト コード両方の修正が必要になるから。 Bad テスト コードを見てもどこをテストしているのか判断が難しい
「夏でも背中ひえひえ」は本当か? “ペルチェ素子入り”リュックで痛感した理想と現実(1/5 ページ) 日本の夏は暴走気味だ。35度を超える「猛暑日」が当たり前になってしまい、「午前中の涼しいうちに~」の世界線はもうどこかに行ってしまった。ようこそ、早朝からサクっと30度を超える新世界へ。 夏こそ涼しい自宅で快適リモートワークと言いたいところだが、オフライン回帰で取材や発表会のリアル開催もだいぶ増えてきた。この仕事をしていると荷物が多くなりがちで、PCや充電器などの周辺アクセサリ、カメラ、モバイルバッテリー、説明会や展示会でもらう資料などを雑に突っ込めるリュックが手放せない。人混みを避けて移動したいので自転車を使いたいのもある。しかし背中全体を覆うリュックは熱がこもるため、夏はすぐに汗だくだ。 そこをIT媒体らしく「テクノロジーの力」で解決できないかと考え、今回「ペルチェ素子」を使った2つの
useContextとは DOMツリー内で、親コンポーネントから子コンポーネントにデータを渡す場合、propsを通して、データを渡す。しかし、子コンポーネントより下の階層のコンポーネントにデータを渡したい場合、親コンポーネント→子コンポーネント→孫コンポーネント→...というようにpropsを渡す必要がある。(これをpropsのバケツリレーと呼ぶ。) そこで、useContextAPIを使えば、子コンポーネントより下の階層のコンポーネントに直接データを渡すことができる。 使い方 基本 まず、親コンポーネント内でcreateContextによりContextを作成する。ContextでラップしたいデータをThemeContext.Providerを通して渡し、受け取り先のコンポーネントをProviderの小要素に記述する。 受け取り先のコンポーネント(上の例では孫、ひ孫コンポーネント)でus
やりたいこと shadcn/uiのData Tableで描画する際にサーバーサイドページネーションを行いたい。背景としては大量のデータが存在する項目を一覧表示したい場合に全てのデータをクライエントに渡すとデータの容量が重くなるためクライエントで指定した範囲のデータのみ取得してくるようにしたかったです。 注意点 私の理解が不十分な部分があり、manualPaginationの場合でもtableのstateを管理するためにTanStackのTable APIsが使用できたかもしれません。今後Table APIsで管理できた場合はそちらに書き直そうと思っています。 また簡単のため実際に動作させているコードから本題と逸れる部分は省いたためそのままでは動かない可能性があります。 Version情報 Next: 14.2.5 tanstack/react-table: 8.20.1 参考にした記事・リ
function Test({ children }: { children: ReactNode }) { return <>{typeof children === "string" ? <p>{children}</p> : null}</>; } function Test2() { const text = "test"; return <Test>value:{text}</Test>; } このコード内にある Test2 コンポーネントを呼び出した時、画面はどのようになるでしょうか? 正解は何も表示されません。 今回はそうなる挙動についてみていきます。 注意点として、この記事はあくまで出力される結果ベースでの話です。 React がなぜその挙動をするかまではカバーできていませんので、ご了承ください。 では始めます。 JSX とは React のドキュメントを見てみると以下の記
はじめに 弊社では商業施設向けの Vertical SaaS を開発・運営しているのですが、日々大量のデータを扱う SaaS において ユーザーにとって見やすい形にデータを整形できる 複雑なデータ同士を照らし合わせて分析、比較を行える ユーザーがデータを自由に操作(フィルター・ソートなど)し、そこから次のアクションに移すためのアイデアが得られる ことは何よりも重要であり、それらを実現するために優れたデザインのテーブルは必要不可欠です。 そこで今回は、ヘッドレス UI ライブラリである「Tanstack Table」を用いてそのようなデータテーブルの設計パターンを実装法とあわせてご紹介しようと思います。 Tanstack Table の独特な使い方がなかなか理解できず、私自身非常に苦労したため、同じような悩みを抱えている方にとって参考になれば嬉しいです。 ぜひ最後までご覧ください。 前提 本
※ なるべくシンプルな状態で確認するために loading.js はアプリケーションルートでは配置せず、 /sample 配下にのみ配置する 非同期処理を行うコンポーネントは以下のように内部でJSONPlaceholderのAPIを叩く。わかりやすいようにそれぞれ数秒遅延させてPromiseを解決する。 export const Post = async () => { async function delayedFetch(url: string): Promise<Response> { return new Promise((resolve) => { setTimeout(async () => { const response = await fetch(url); resolve(response); }, 3000); // 3秒の遅延 }); } const result
🚨 Breaking Changes useChangeCase: Migrate to change-case@v5, closes #3457 - by @wheatjs and @antfu in #3460 and #3457 (df343) useFuse: Upgrade fuse.js to v7 - by @antfu in #4036 (cb44c) useIntersectionObserver: Update the threshold default to 0 - by @Alfred-Skyblue in #4069 (13e36) useJwt: Upgrade jwt-decode to v4 - by @root5427 and @antfu in #3510 (9037d) 🚀 Features integrations: Bump d
この記事は、CYBOZU SUMMER BLOG FES '24 (Newcomer Stage) DAY 7 の記事です。 はじめに こんにちは!24 卒フロントエンドエンジニア職能としてサイボウズにジョインした daiki (@k1tikurisu) と saku (@sakupi01) です! 今回は、私たちがサイボウズフロントエンドにジョインするまでの経緯やジョインしてからやってること・感じていることを対談してみました 🍮 この記事を通して、サイボウズのフロントエンド開発チームの雰囲気や、新卒エンジニアとしての成長の機会、kintone フロントエンド刷新プロジェクトの実態についてより具体的にイメージしてもらうことができれば嬉しいです。 自己紹介 daiki: 大学時代は React、TypeScript で Web サイト制作やクラウドサービスの開発をするアルバイトを 1 年ほ
こんにちは。サイボウズ株式会社、生産性向上チームの平木場です。今回は、GitHub Actions のセルフホストランナーの通信量削減のために行った setup-java で取ってくる JDK をあらかじめキャッシュした方法を紹介します。 内容としては、以前チームメンバーが発表したスライドの「Amazon Corretto との転送量を削減」(P14-P18)をちょっと詳しくしたものになります。背景や転送量の分析方法の詳しい説明はスライドをご覧ください。 背景 生産性向上チームでは、社内向けにオートスケールする GitHub Actions セルフホストランナー環境[1]を提供しており、広く利用していただいています。 我々のセルフホストランナーは AWS の EC2 インスタンスを利用しており、構成的にランナーとインターネットとの通信に NAT ゲートウェイを通るようになっています。 NA
この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤 Stage) DAY 14 の記事です。 クラウド基盤本部 Cloud Platform 部の新井です。 Cloud Platform 部では現在、現行クラウド基盤上で動作している製品を、Kubernetes ベースの新基盤に移行させるための様々なサービスを開発・運用しています。 その中には、特にパフォーマンスが心配なサービスがあったので、パフォーマンステストを行ってボトルネックを分析し、最終的にスループットを10倍向上させました。 めでたしめでたし 🎉 と言いたいところなんですが、この結果を得るまでに複数のハマりどころがあり、想定よりも長い時間がかかってしまいました。 そこで本記事では、私たちがどのようにサーバのパフォーマンステストを実施して、どんな落とし穴にハマってきたのかをご紹介します。 このプロジェ
はじめに こんにちは!Garoon開発チームのYukimiチームにいます、てきめん です。 Yukimiチームは、より安全なGaroonをユーザーに届けることを目標とし、将来に渡って継続的にGaroonを安定提供できるように活動しているチームです。Yukimiチームのことについては以下を参照してみてください。 blog.cybozu.io さて、今日は、ファイルフォーマットの一つで動画のフォーマットである、mp4について見ていきたいと思います。 この記事は、CYBOZU SUMMER BLOG FES '24 (Garoon Stage) DAY 6の記事です。 mp4を読んでみる あらまし 最近、GoPro HERO12 Blackを購入したのですが、そのGoProのmp4ファイルがよく壊れていて再生できない問題に遭遇しました。そこで、mp4ファイルってどういう仕組みになっているのかを規
この記事は、CYBOZU SUMMER BLOG FES '24 (QA Engineer stage) DAY 4の記事です。 こんにちは!24年に新卒で入社したQAの水谷です! 今回は、新卒でQAを始めた新人が感じた、スクラム開発におけるスプリントプランニングにQAが参加することのありがたさを QAにとって チームにとって スプリントプランニングによってQAが製品の品質にできる貢献 の3つの観点からお伝えできればなと思います。 そもそもスプリントプランニングってなに? ざっくりといえば、スプリントプランニングとは実際に製品を作る開発者が集まって製品をどうやって作るのか打ち合わせをすることです。 少し掘り下げて説明すると、スプリントプランニングはスクラム開発の用語で、実際に製品を作り始める前に行う会議のことを指します。 そのため、スクラム開発に馴染みがない場合はイメージが湧きにくいかもし
この記事は、CYBOZU SUMMER BLOG FES '24 (kintone Stage) DAY 5 の記事です。 こんにちは、開発本部 kintone 開発チームでマネージャーをしている太田 @kigh です。 この記事では、サイボウズ開発本部で進めている組織再編について、特に kintone 開発チームの取り組みを中心に紹介します。 何かの参考になれば幸いです。 背景:開発本部での組織再編 本記事の主題である kintone 開発チームでの取り組みは、開発本部全体の組織再編と関連があります。 そこでまず、本部全体の取り組みを背景として簡単にご紹介します。 問題意識 サイボウズは、おかげさまで売上・導入社数とも伸びていますが、グローバルを含めた理想の実現にはまだまだ超えるべき壁がいくつもあります。 そうした議論のなかで、開発本部として「事業戦略を実行する能力を強化したい」という問
長生きするためには適度な運動や健康的な食生活、ストレスの解消や楽しみにつながる趣味などを持つことが重要とされています。5万人弱の看護師を対象にした新たな研究では、「感謝の気持ち」を持つことも長生きと関連していることが判明しました。 Gratitude and Mortality Among Older US Female Nurses | Nursing | JAMA Psychiatry | JAMA Network https://jamanetwork.com/journals/jamapsychiatry/fullarticle/2820770 Gratitude may increase longevity among older adults | News | Harvard T.H. Chan School of Public Health https://www.hsph.
ざっくり言えば、小池さん対蓮舫さんという構図があって。 そのときに思ったのが、友だちがけっこう左寄りになっている。僕のまわりのクリエイター系の方たちが、SNS上でそっち側の主張をしているケースが多くて。 もともとは自分もそういうカルチャーっぽいコミュニティにいたのに、だんだんそっちに乗れなくなって乖離を感じているという悩みなんです。
Gopherくんの可愛いイラストやグッズのリポジトリやリンクをまとめていきます。Go言語ではなく、Gopherくんに関する記事であることにご留意ください。 メモとして使うので、随時更新していきます。もしおすすめのGopherくんがいれば是非コメントで教えてください。 Gopherくんとは GopherくんはGo言語のマスコットキャラクターです。 詳しくは以下の記事をご参照ください。 GitHubレポジトリ GopherくんのイラストをまとめたGitHubレポジトリを載せていきます。 以下の記事でまとめられていたものを転載させていただきます。 MariaLetta/free-gophers-pack keygx/Go-gopher-Vector GolangUA/gopher-logos tenntenn/gopher-stickers golang-samples/gopher-vecto
こんにちは、セキュリティチームの@sota1235です。 セキュリティチームでは昨年の夏頃からGitHub上のセキュリティリスクを洗い出し、順に対応や改善を行っています。 そのうちの1つとして、昨年の秋ごろからGitHubのPersonal Access Tokenの取り扱いの改善を行ってきました。 具体的には以下の取り組みを行いました。 CI等で利用されているPersonal Access Tokenの利用廃止 OrganizationにおけるPersonal Access Token(classic)の利用禁止設定 今回はこの2つの取り組みについて、どのような課題設定を行い、どんな手順で完了したのかをお話しします。 以下のような課題感、疑問をお持ちの方に対する1つの回答になりうると思うので該当する方はぜひご一読ください🙏 GitHubにおけるPersonal Access Token
はじめに こんにちは。 私は徳島大学院で物質機能化学の研究を行っている修士2年のakidon0000です。 私は3年前に個人で徳島大学生向けに 「トクメモ+」 というアプリをiOS、Androidで開発し、 ・ダウンロード数 5200件 ・MAU 3259ユーザー (徳大学部生の 約56%) のアプリを大学非公認で運用しています。 トクメモ+についての発表スライド トクメモ+とは、どんなアプリなのか 本アプリは、徳島大学の講義情報やレポート提出、そして学内情報などの一元化を目的としており、それにはevaluateJavaScriptや、Webスクレイピング、そしてRSSフィードなどを活用し、学生生活のほとんどが一つのアプリで完結するという形で実現したアプリです。 https://www.youtube.com/watch?v=zRVeZhip5ow トクメモ+紹介動画 . . . と大層な
「生成AIは私たちの未来ではない」――iPad用イラスト制作アプリ「Procreate」を手掛ける豪Savage Interactiveが、生成AIに対するメッセージを公表。同社のジェームズ・クーダCEOは、公式アカウントが投稿した動画の中で「Procreateの製品に生成AIを取り入れません」と明言した。 クーダ氏は「皆様に生成AIについてよく聞かれます」とし、「個人的に生成AIは本当に不愉快です。いまこの業界で起きていることも、アーティストに与えているさまざまな痛みも納得いかないです」と、生成AIに反対の立場を表明。「この物語がどこへ向かうのか、どのように終わるのかは正確には分かりませんが、人間の創造性をサポートする正しい道へと進んでいると思います」と述べた。 投稿は本国と日本語の公式アカウントで投稿されており、Xユーザーからは「開発者のスタンスをはっきり表明してくれるのはユーザーにと
@axe-core/playwright によるアクセシビリティテストの自動化 2024.08.18 axe-core は axe というアクセシビリティテストツールのコアエンジンで、オープンソースとして提供されています。この記事では、E2E テストフレームワークの Playwright と axe-core を組み合わせて使用して、アクセシビリティテストを自動化する方法について紹介します。 今書いているコードがアクセシビリティ上の問題を持っていないかどうかを確認するために、Lint ツールによる機械チェックが有効です。eslint-plugin-jsx-a11y や Markuplint といったツールを導入することで、コンポーネント単位で静的にコードを解析してアクセシビリティの問題を検出できます。このような Lint ツールは、code を書いている最中に即座にフィードバックを受けるこ
WebKitのcommitterになった。僕はAppleやIgaliaやSonyの従業員ではなく、完全に趣味である。 I'm officially a WebKit (@webkit) committer! Thank you to the JSC reviewers who have been reviewing my patches. — sosuke (@__sosukesuzuki) August 18, 2024 WebKitの開発者のステータスのポリシーは https://webkit.org/commit-and-review-policy/ を参照してほしい。Committerよりも強い権限を持つreviewerという人たちもいる。人のパッチを正式に承認したり拒否したりすることはreviewerにしか出来ない。 2024年2月からパッチを投げ始めて、6月の半ばくらいにcom
翻訳を担当した書籍『スタッフエンジニアの道ー優れた技術専門職になるためのガイド』(オライリー・ジャパン)が来週(2024年8月26日)発売となります(電子書籍はオライリー・ジャパンのサイトでの販売となります)。本書は、2022年にO'Reilly Mediaより刊行されたTanya Reilly著『The Staff Engineer's Path: A Guide for Individual Contributors Navigating Growth and Change』の全訳となります。 スタッフエンジニアの道 ―優れた技術専門職になるためのガイド 作者:Tanya Reillyオライリー・ジャパンAmazon 本書は、技術専門職としてのキャリア成長に必要な考え方やスキルを、20年を超えるキャリアを持ち、現在も現役で上級技術専門職を務めている著者が、自身の経験をもとに整理・解説し
生成AIは人々の創作力を奪略しています。盗作を軸に学習する生成AIのテクノロジーは、私たちを不毛な未来へと導いています。機械学習にはたくさんのメリットがありますが、Procreateの未来には生成AIはないと判断しました。 私たちは人間のクリエイティビティのためにここにいて、人々の道徳の脅威となるテクノロジーを追わず、人々の宝石とも言えるヒューマン・クリエイティビティを賞賛します。テクノロジーラッシュの末端の中で当社の考えは稀かもしれません。そして、未来に取り残されているようにも見えるかもしれませんが、この険しい道のほうがコミュニティにとってよりエキサイティングで実りある道であると考えています。
newmoに新しくジョインしたメンバーを紹介する「newmoのnewなひと」。newmoという会社や働く人のことを、より深く知っていただければ嬉しいです。今回取り上げるnewなひとは、ソフトウェアエンジニアの@kamipoさんです!それではどうぞ。 経歴 2024年7月にnewmo株式会社にソフトウェアエンジニアとして入社。日本人唯一のRails CoreコミッターでRailsコミッター四皇のひとり。 ニックネームの「kamipo」は、昔のあだ名から本名は、上薗 竜太です。ニックネームで使っているkamipoの由来は、元カノが呼んでいたあだ名です。笑 エンジニア→フルタイムRailsコミッター→エンジニアというキャリア2007年に新卒でアドウェイズに入社し、アドウェイズ時代に麻雀で知り合った社長の片桐さんに誘われて、2008年にピクシブに転職して自作サーバーのベニヤ化などインフラエンジニア
はじめに 「Transformerのattentionはトークン間の類似度をモデリングしている」という説明をよく聞くが、この表現は適切でないことを示す。 なお、このような説明がよくされる背景としては、Transformerのdot-product attentionは内積で計算され、コサイン類似度も正規化されたベクトルの内積で計算される点によるものと思われる。しかしながら両者は正規化の有無に違いがあり、ベクトル空間に埋め込んだ時の数学的性質はかなり異なるということを本稿では指摘する。 TL; DR Attention(dot-product attention)は類似度とは異なる数学的性質を持つ 類似度はトークン間の近接関係はモデリングできるが、それ以外の多様な関連をモデリングするには適さない。 dot-product attentionはトークン間の近接関係を含むさまざまな関連をモデリン
リッチテキストエディタ(RTE)って? リッチテキストエディタ(以下RTE)とは、文字を入力できるだけでなく、文字に装飾を加えたり、段落を設定できたりと複雑な機能を持つエディタのことです。 弊社プロダクトであるkintone内にも以下のようなエディタが存在します。 また、似たものを指すWYSIWYG(読み方:ウィジウィグ)という用語もありますが、これはWhat You See Is What You Get(見たままが得られる)の略であり、編集時と出力時の見た目が同じエディタのことを指します。 Zennやesaのように、Markdown記法で編集したものが変換されて表示されるようなエディタは含みません。 このようにWYSIWYGはRTEより狭義の意味になっています。 WYSIWYGエディタ(Google Docs) WYSIWYGではないエディタ(esa) 独自データモデル VS DOMツ
LLM APIの最強の一角であるAnthropic Claudeにprompt cachingが実装されました。簡単に言うとプロンプトの先頭から指定の位置までをキャッシュしてくれて、キャッシュを利用できた場合はAPI使用料金と、APIでかかる処理時間が大幅に改善するというものです。 キャッシュ書き込みではコストが1.25倍(つまり25%アップ)になってしまいますが、キャッシュ読み込みではコストが1/10(ただしHaikuの場合だけは$0.25/1Mtokensが$0.03になるので厳密には違う)になります。 速度に関しても、コストのうち処理時間が支配的なLLMにおいて値段が1/10になることから察する通りの速度がでます。 LLMの使い方に依存するものの、prompt cachingを使いこなせば、少なくない事業インパクトをもたらす事は間違いありません。 Google Geminiにも同様の
「年収を上げる」と検索すると、ずらり転職サイトが並ぶ。ライフハック記事の体裁だが、最終的には転職サイトに誘導する広告記事だ。 しかも見事なまでに中身がない。転職しないなら、「副業を始める」とか「スキルアップする」といった誰でも思いつきそうなトピックを、薄ーく書きのばしている。 ここでは、もう少し有益な書籍を紹介する。想定読者はこんな感じ。 スキルアップはしてるけど、給料UPにつながらない 転職も考えたが、今の場所で評価されたい 自分をプレゼンして「良く見せる」のがヘタ そんな人に、2つのアプローチで給料を上げる方法を紹介する。 人事制度の脆弱性をハッキングする 上司のバイアスを逆に利用させてもらう この記事は1のアプローチから攻める。 紹介する本はこれだ、『この1冊ですべてわかる 人事制度の基本』(西尾太、日本実業出版社)。 著者は人材コンサルタント。400社、1万人以上をコンサルティング
多すぎる!! 気づくと増えてるAmazon CloudWatch大家族、クラウド初心者にも分かりやすく整理しました
不確実性の高いプロダクト開発や、継続的な価値提供を行なっているサービスにおいては、フロー効率を重視するのが良いとされている。ある価値が早く顧客に届く方が、早くフィードバックを得られるとか、顧客が享受する価値の総量が大きくなるとか、様々な方向からメリットは説明され尽くしている。それには同意する。 開発プロセスの文脈でもフロー効率を重視するためのプラクティスは一般的だと思う。スクラムの言葉に従えば、スプリントゴールはなるべくシンプルにひとつにしようとか、ひとつのプロダクトバックログアイテムを複数人で片付けようとか、そういった話である。チームの付加価値生産性を最大化するために、こうしたやり方を採用するのは素朴には理にかなっていると思う。しかし最近、メンバーの育成や評価に対する責任が大きくなってきて、その立場から改めてこれらのプラクティスを考えると、手放しに最高とは言い切れないなと葛藤している。
Appleは年内にM4チップを搭載した3つの新型Mac製品が発売され、来年には他の複数のモデルがM4でアップデートされる見込みです。 年内に発売される各モデルの予想スペックや発売時期をMacRumorsがまとめています。 MacBook Pro Mac mini iMac 発売時期 2025年に登場するMac 新しいMac miniのイメージ MacBook Pro Appleは14インチと16インチのMacBook Proの両モデルをリフレッシュし、M4チップを搭載する予定です。MacBook Proのラインナップが最後に更新されたのは2023年10月でした。 Appleは昨年13インチMacBook Proを廃止し、現在はエントリーレベルの14インチモデルが用意されています。その後継モデルにはiPad Proに採用された標準的なM4チップが搭載されます。 ミドルクラス以上の14インチモ
「ソフトウェアの「詳細設計書」とはなんなのか」というブログ記事を読んで考えたこと。設計に関するプロセスとドキュメンテーションの関係性についての考えの整理。SI屋的な視点で。 2024/8/18追記:文中にあった雑な文系disが不愉快というご指摘を受けました。ご指摘の通りだと思いましたので訂正しています。大変失礼しました。 「詳細設計書」とはなんなのか nowokay.hatenablog.com こちらの記事では詳細設計書とは以下のようなものであると整理されている。 表現を変えたコーディング(の一種) 机上プロトタイプ(の一種) 分析資料 保守(のための)資料 (水平作業の場合の)作業指示書 (委託している場合の)契約資料 上記以外で考えられるのは次のようなものがあるだろう 利害関係者が要求している たとえば受託開発において発注者が要求している場合 ほかには連携している相手先システム側から
はじめに 2024年8月13日、Go 1.23がリリースされ、ついにイテレータが利用可能となりました。 この記事では、Goのイテレータについて、 どうやって使うのか どこまで知っておく必要があるのか を理解することをゴールとします。 基本的な知識 基本的な知識としては、以下の内容を知っていれば問題ないです。 for文のrangeループの仕様が変わった 関数を対象にrangeループを回せるようになる rangeループの対象にできる種類の関数をイテレータと呼ぶ イテレータには3種類ある for文のrangeループの仕様が変わった Go 1.22までは、for文によるrangeループの対象にできたのは、配列, slice, 文字列, map, channel, 整数だけでした。 Go 1.23で、ここに関数(ただし、特定の形式に限る)が加わりました。 ここで、rangeループの対象にできる形式の
はじめに 知らない間にGitHub Copilotが結構進化していたので、それらの内容を紹介します。 GitHub Copilot Chatは知っていたのですが、単なるChatGPTみたいな会話機能を追加しただけだと思っていました。 要約 右クリックメニューや#fileのようなコマンドが登場し、それを入力するだけでChatに見てほしいコンテキストを伝えることができるようになった。 ファイル単位だけでなく、選択した行やブロックに限定することもできる。 テストコードや新しいプロジェクトをコマンド一つで生成できるようになっている。 推薦の候補も複数を同時に比較できるようになった。 一度に最大10個くらい出る上、タブで保管できる。 ターミナルや編集中のファイルからコマンド一つでChatを立ち上げることができる。 特別なプロンプトを入力しなくても、開いた場所の文脈を読み取ってくれる。 右クリックメニ
タイトル: GPUの力を解放するプログラマー 東京の繁華街、青山のオフィスビルに住むプログラマーの田中健太は、朝から晩までスクリーンと向き合いながら日々を過ごしていた。彼のデスクには、複数のモニターと、コードがびっしりと詰まったノートが並んでいる。 ある日、彼は新しいプロジェクトに取り組んでいた。タスクは、古いNAMPy(Non-Accelerated Matrix Processing)を使って計算する非効率的なループ処理を、自動で高効率なGPU対応コードに変換するプログラムを作成することだった。彼の目標は、GPUのパワーを最大限に引き出し、処理速度を劇的に向上させることだった。 彼の心には、過去の経験からくる焦燥感があった。NAMPyのループは、コードが複雑になり、処理が遅くなることが多かった。しかし、最近のGPU技術の進歩を受けて、彼はこれを利用して問題を解決する決意をした。 初めの
はじめに Goで自作RDBMSに挑戦してみたログです。自作、といっても大部分は参考にした書籍の移植です。 ここ1年くらいRDBに向き合う機会が多く、その内部実装を手を動かしながら身を持って理解してみたいというモチベーションから始めてみました。ちょうど会社の『内部構造から学ぶPostgreSQL』読書会に参加したこともモチベーション上げるきっかけとなりました。 (他の方の記事ですが、読書会の記録はこちら↓) 『内部構造から学ぶPostgreSQL』読書会を完走した感想 [改訂3版]内部構造から学ぶPostgreSQLの社内読書会振り返り データベースをデータの箱としか思っていなかった私の『内部構造から学ぶPostgreSQL』を読んだ感想 普段何気なく使ってるRDBMSですが、ACID特性を守るため・大量の読み書きを捌くため、非常に緻密に設計されております。 これを完全再現といかなくとも自分
4月に発表した「言語化筋トレ」のスライドが、おかげさまでご好評をいただいています。 ※ 「言語化筋」「言語化筋トレ」は造語です。以下、「言語化力」「言語化力トレーニング」と読み替えてお楽しみください:) EMOasisというEM向けのイベントで、 ビジネスインパクトを最大化するためにEMが磨くとよいスキルは「翻訳」 そのためには「言語化筋」を鍛えるべし というような話をしました。ただ、「言語化筋」はマネージャーに限らずみんなの役に立つものなんじゃないかと思っている今日このごろでして、補足のようなエントリを書くことにしてみました。 「言語化筋」が大事なワケ私たちは日頃から言語を介してコミュニケーションしているので、自分のこと、周りのことをなんとな〜くわかった気になっているものです。でも改めて、例えば以下のような質問を受けたとき、サラッと答えられる人はそう多くないのかも、とも思います。 今の仕
始めに 大変光栄なことに私は先日、vim-jp radio のゲストとして呼ばれました。私の参加した会は 8 月 19 日、26 日に放送される予定です。 それに伴ない私への質問を募集したのですが、時間の関係上あまりにマニアックな質問は飛ばされてしまい回答ができませんでした。 そのまま質問がお蔵入りになってしまうのは質問者が可哀想なので、この場で私へのよくある質問に対して回答をしようと思います。 git 以前のバージョン管理は何を使っていましたか? 実は私は 2009 年始めの git 黎明期から git を使用していて、git 以前の経験は少ないということをことわっておきます。 git 以前はバージョン管理システムは使っていませんでした。zip ファイルにプラグインを固めてバージョン管理する手動バージョン管理です。 現代では考えられないほど原始的と言われればそうですが、当時はその程度でも
はじめに企業の業務において、請求書や領収書、名刺などの紙媒体の情報を電子化し、管理・活用することは非常に重要です。しかし、これらの作業は手作業で行うと多大な時間と労力を要します。また、人的ミスも発生しやすく、業務効率化の大きな障壁となっています。そんな中、近年、OCRの性能向上やLLMの性能向上によって、あらゆる業務の効率化できる可能性が高まっています。この記事では、写真や書類から情報を抽出する取り込み業務について、OCRとLLMを利用したソリューションについて紹介します。 情報抽出などの取り込み業務の課題情報抽出などの取り込み業務では、以下のような課題が存在します。 手作業による時間と労力の浪費 大量の書類を処理する場合、作業コストが膨大に 単純作業の繰り返しによる従業員のモチベーション低下 他の付加価値の高い業務に注力できない 人的ミスの発生 量が多くなるほど、入力ミスや誤読などの人的
function TodoInput(attrs: { add: (v: string) => void }) { const input = <input type='text' /> as HTMLInputElement; input.placeholder = 'Add todo item...'; input.onkeydown = (e) => { if (e.key === 'Enter') { attrs.add(input.value); input.value = ''; } }; return input; } class TodoList { ul = <ul class='todolist' /> as HTMLUListElement; add(v: string) { const item = <li>{v}</li> as HTMLLIElement; it
★本イベントは2024.8.26に開催されたイベントの録画放送★ 【夏夜のLT大会🍉】Webエンジニアが最近気になりすぎて夜しか眠れない(?)現場や個人開発で活用できる技術について語る ※本ウェビナーはITエンジニアの方向けの内容です。 【概要📕】 ITフリーランス向けのエージェントサービスを展開するランサーズエージェントでは、 IT人材のさらなる活躍の支援を目的としたキャリア醸成やスキルアップなどのコンテンツ発信を行なっています。 今回は【夏夜のLT大会】と題して、「仕事の中で活用できたり個人開発で役に立つ」をテーマに、Webアプリ/システム開発に携わる現役のエンジニアが、業務や個人開発の中で最近気になったタメになる技術について発散するLT会を開催します。 実用的かつフラットに参加できる学びの場となるような時間を目指しているので、ぜひ皆さま気軽にご参加ください! 【こんな方におすすめ
★本イベントは2024.8.26に開催されたイベントの録画放送★ 【夏夜のLT大会🍉】Webエンジニアが最近気になりすぎて夜しか眠れない(?)現場や個人開発で活用できる技術について語る ※本ウェビナーはITエンジニアの方向けの内容です。 【概要📕】 ITフリーランス向けのエージェントサービスを展開するランサーズエージェントでは、 IT人材のさらなる活躍の支援を目的としたキャリア醸成やスキルアップなどのコンテンツ発信を行なっています。 今回は【夏夜のLT大会】と題して、「仕事の中で活用できたり個人開発で役に立つ」をテーマに、Webアプリ/システム開発に携わる現役のエンジニアが、業務や個人開発の中で最近気になったタメになる技術について発散するLT会を開催します。 実用的かつフラットに参加できる学びの場となるような時間を目指しているので、ぜひ皆さま気軽にご参加ください! 【こんな方におすすめ
2024年6月9日、KADOKAWAやニコニコ動画などを運営するドワンゴは、同グループの複数のWebサイトが6月8日未明より利用できない事象が発生と公表しました。システム障害の原因はランサムウエアによるもので、ニコニコ動画は復旧まで約2か月を要しました。またリークサイトから盗まれたとみられる情報を取得してSNSへ公開するなど悪質な情報拡散が確認されました。ここでは関連する情報をまとめます。 1.KADOKAWAグループのデータセンターでランサムウエア被害 公式及び報道より、データ暗号化の被害にあったのはKADOKAWAグループ企業 KADOKAWA Connectedのデータセンター(DC6)で運用されていたプライベートクラウドやそのクラウド上で稼働していたドワンゴ専用サーバー。またドワンゴの認証基盤であったActive Direcotryサーバーも攻撃者の制御下に置かれた。 侵害活動の拡
GitHubは日本時間8月15日午前8時2分(世界協定時8月14日23時2分)から8時38分までの約30分のあいだ、全てのサービスがアクセス不能となる障害が発生していたことを報告しました。 障害の原因はデータベースの設定変更ミスでした。設定変更に間違いがありGitHub内の重要なサービスがデータベースに接続できなくなったことで障害が発生。設定を元に戻すことで復旧されました。 GitHub.comの全データベースに誤った設定変更 報告の内容を時系列で見ていきましょう。 障害発生の3分前。日本時間8月15日午7時59分に、GitHub.comの全データベースに対して誤った設定変更が行われ、ルーティングサービスから送出されるヘルスチェック用のPingに応答する機能に影響がでました。 その結果、ルーティングサービスはアプリケーショントラフィックのルーティング先とすべき稼働中のデータベースが検出でき
PostgreSQLのソースコードをWebAssemblyバイナリとしてビルドしたことで、Node.jsなどのJavaScriptランタイムやWebブラウザ上で(ほぼ)フル機能のPostgreSQLを実行可能にした「PGlite」が公開されました。 PGliteはPostgreSQLのCのソースをEmscriptenでコンパイル PostgreSQLはオープンソースの代表的なリレーショナルデータベースであり、C言語で開発されています。 PGliteはこのPostgreSQLのCのソースコードのビルドにEmscriptenコンパイラを使用してWebAssemblyバイナリとして出力、JavaScript/TypeScriptからライブラリとして呼び出せるようにしたものです。 ただしEmscriptenでコンパイルされたプログラムは新しいプロセスをフォークできないため、PGliteはPostg
GoogleのAI(人工知能)部門であるGoogle DeepMindは2024年7月25日(米国時間)、数学の難問を解くために構築されたAIシステム「AlphaProof」「AlphaGeometry 2」を発表した。 Google DeepMindによると、これらのAIシステムを組み合わせることで、2024年に開催された国際数学オリンピック(IMO)で出題された6つの問題の内、4つを解き、「AIシステムが銀メダル水準のレベルに初めて到達した」としている。 Google DeepMindは「AlphaProofは、2024年のIMOで出題された2つの代数問題と1つの整数論の問題を解いた。これらにはわずか5人しか解けなかった難問も含まれていた。AlphaGeometry 2は幾何学の問題を証明したが、2つの組み合わせ論の問題は解けなかった」と述べている。 Google DeepMindによ
LLMのチャット以外の可能性 ChatGPTなどで話題のLLM(Large Language Model)、用途としてはチャットボットとしての使われ方が多いですが、チャット以外にも使える可能性を秘めています。 具体的には、生成AIでロボット制御をする「RT-1」や、マインクラフトをプレイする「Voyager」などがあります。これらの詳細の解説は以下記事参照ください。 今回は、夏休みの自由研究(と呼べるほど高尚なものではないですが)として、手軽に分かりやすい例として、LLMでマリオをプレイできるか試してみることにしました。 LLMでマリオをプレイ マリオに関しては、以前に深層強化学習で全ステージクリアにチャレンジしたことがあります。 複数人の有志の協力があり、ループを多用する8-4を除いたステージを全てクリアすることができました。ただ、ステージごとにシミュレータで半日以上かけて学習させる必要
はじめに 私ごとではありますが、現場でdynamodbをメインのデータベースとして採用してから約2ヶ月が経ちました。 たった2ヶ月いう期間で、何度も心身ともに崩壊し、そして粘り強く復活を遂げ、かろうじて奇跡的にレベルアップをしてきました。 今回の記事では、これからdynamodbの導入を検討しているエンジニアの皆様に向けて、わずかながら現場で(汗と血を流しながら)得た知見を共有したいと思います。 主にdynamodbを導入するときに楽できる部分、楽できない、苦労する部分がどんな感じか、この記事でなんとなく伝えられたら嬉しいです。 以下では、4つの項目(採用基準、設計、開発、運用)に分けて、知見を羅列していきますが、私もまだ駆け出しdynamodberの域を出ないので、誤りやアドバイス等ございましたら、是非コメントいただきたいです! なお、ここで紹介する内容は基本的にはAWSの公式ドキュメン
概要 第33回目の開催です! 今回はモクモク会です! ゴリラ.vimについて Vimmerの集いの会です。 知見の共有と親睦を深めることを目的としています。 詳細はこちらの資料をご参照ください。 Twitter: https://twitter.com/gorillavim でイベントの告知を行っていますので、ぜひフォローしてください。 対象者 Vimに興味ある方 Vimが好きな方 全員大歓迎です。 ぜひご応募ください! 会場について 東京都台東区東上野3-18-1 MEETING ROOM 2A ※入室方法は参加者情報のほうに記載しているのでそちらをご確認ください 以下の会場となります。 https://www.spacemarket.com/spaces/bloomueno/?room_uid=f7QgqzLpOPyFuWuf 注意事項 当日無言ドタキャンはやめてください。 ご都合によ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く