タグ

sugyanのブックマーク (7,998)

  • ISUCON12で優勝しました(チーム NaruseJun)

    8月27日に開催されたISUCON12 選にチームNaruseJunとして参加し、スコア341,258点で優勝しました。(ISUCON12 選の結果発表と全チームのスコア) メンバーは @sekai と @takashi_trap でした。 この記事はその参加記です。 チームについて このメンバーでのISUCONへの参加は10(予選敗退), 11(準優勝)から3回連続です。 それぞれのISUCON参加回数は @to-hutohu, @sekaiが6回目、@takashi_trapが5回目です。 予選準備 7月9日と7月17日に予選のために集まって作戦会議をしました。 7/9 1時間程度集まって素振りに向けた作戦会議 素振りの環境準備、チートシート、初動のAnsible整備、Goを思い出すなどがそれぞれ宿題として持ち帰ることに 7/17 素振り会(ISUCON11予選) 5時間くらいで初

    ISUCON12で優勝しました(チーム NaruseJun)
  • ロックスターになれなくてもいい。ソフトウェア開発に長く携わる技術「メタエンジニアリング」とは - Findy Engineer Lab

    Developers Summit 2020に登壇 こんにちは! 塩谷啓(@kwappa)と申します。ヘイ株式会社(2022年10月よりSTORES 株式会社)のエンジニアリング室という部署で、マネージャーをしています。 エンジニアとしてのキャリアを家庭用ゲームソフトの開発からスタートし、SESや受託開発を経て、いくつかのWebサービスの会社で働いてきました。2011年ごろから、エンジニアリングと並行して採用の仕事も担当するようになり、現在ではマネジメントとメタエンジニアリングを主な業務領域としています。 並の腕前のエンジニアが発見した新しい適性 ごく平凡なエンジニアであることの焦燥感 突然の採用担当 メタエンジニアリングのめざめ 技術広報・採用・組織開発でそれぞれ何をするのか? 技術広報 ─ アウトプットを実現して社外から信頼を得る 採用 ─ 公開情報のメンテナンスと選考プロセスの整備

    ロックスターになれなくてもいい。ソフトウェア開発に長く携わる技術「メタエンジニアリング」とは - Findy Engineer Lab
    sugyan
    sugyan 2022/09/22
    とても丁寧で明確に書かれていて「メタエンジニアリング」が伝わってくる良い話だった
  • Cookpad Code Puzzle for RubyKaigi 2022の解説(裏ステージ) - クックパッド開発者ブログ

    技術部の遠藤(@mametter)です。おまたせしました、RubyKaigi 2022で出題したクックパッドブースの企画、Cookpad Code Puzzle for RubyKaigi 2022の裏ステージの解説です。 このパズル自体の解説は前編の記事をごらんください。 techlife.cookpad.com さっそく11問目から解説していきます。 11問目 p func11(0) #=> -510240563 p func11(1) #=> -171748573 p func11(2) #=> 405559065 p func11("foo") #=> -62024031 何を与えてもよくわからない整数が帰ってきますね。リロードすると結果が変わることにも気づくかもしれません。つまり、これはハッシュ値であろうと当たりがつきます。ということで答えはこちら。 def answer11(v

    Cookpad Code Puzzle for RubyKaigi 2022の解説(裏ステージ) - クックパッド開発者ブログ
  • Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

    A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team

    Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
  • RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    ハイクラス求人TOPIT記事一覧RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! 安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。 こんにちは。キャディ株式会社バックエンドエンジニアの松田と申します。 キャディ株式会社では、「モノづくり産業のポテンシャルを解放する」をミッションとして、製造業分野に関連するさまざまなソフトウェアの開発を行っています。また、そのための主要な開発言語としてRustを採用

    RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • MeCab互換な形態素解析器Vibratoの高速化技法 - LegalOn Technologies Engineering Blog

    こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは、MeCab互換の形態素解析器Vibrato(ヴィブラ〰ト)を開発しています。プログラミング言語Rustで実装しており、高速に動作することが主な利点です。Vibratoはオープンソースソフトウェアとして以下のレポジトリで公開しています。 github.com 記事では、Vibratoの技術仕様を解説します。以下のような方を読者として想定します。 自然言語処理の要素技術に興味のある方 データ構造・アルゴリズムに興味のある方 Rustでの自然言語処理に興味がある方 Vibratoについて 最小コスト法による形態素解析 単語ラティスの構築 最小コスト経路の計算 高速化の取り組み 辞書引きのキャッシュ効率化 実装での注意点 連接コスト参照のキャ

    MeCab互換な形態素解析器Vibratoの高速化技法 - LegalOn Technologies Engineering Blog
  • AIで画像の美しさを評価する LAION Aesthetics - A Day in the Life

    画像の美しさ、というのは主観が多分に含まれるものなので、コンピュータが評価するタスクとしては難しいのかな、と思っていたのだけどLAION-AESTHETICS を読んでびっくり、だいぶきちんと評価できてそう。実際にLAION Aesthetics V2でデータセットをスコア付した結果(リンク先ページは大量の画像ロードが走って遅いので注意)ではこんな感じ。例えばスコアが1.5~1.75の画像だと となる。またスコア7~7.25の画像では という感じになる。おーすごい、それっぽい。そしてこのスコアを学習・導出しているものも複雑なディープラーニング処理ではなく、単純なMLP(5つの線型層+Dropoutで、活性化関数を挟まない)というのもすごい。 LAION-Aesthetics V1 V1 では SAC というStable Diffusion等が生成した画像とプロンプトを約24万枚のデータセッ

    AIで画像の美しさを評価する LAION Aesthetics - A Day in the Life
  • Rustで少しずつリバーシを作ってみた

    はじめに Rustの学習目的でリバーシを作ってみたいと思います。最初からすべての機能を作るのではなく、少しずつ機能を追加しながら解説していきます。また、できるだけよいコードを目指すために機能追加の度にリファクタリングをします。 最初の開発 仕様策定 まずはリバーシとして最低限遊べるうえで最も工数がかからなさそうな仕様を策定します。 cuiアプリ 矢印キーでカーソル移動 Wキーで白石を置き、Bキーで黒石を置き、Backspaseキーで石を取り除く Escキーでアプリ終了 とりあえずこれだけあればリバーシとして遊ぶことはできます。cuiアプリなので実行はWindowsTerminalを想定します。 実装 ソース とりあえずコードの良し悪しは置いといて動くものを作ります 実行結果 解説 cuiアプリとして実装するのでターミナルライブラリを導入します。今回はcrosstermを利用します。Carg

    Rustで少しずつリバーシを作ってみた
  • ISUCON12 本選問題の解説と講評 : ISUCON公式Blog

    こんにちは、ISUCON12の選問題作問チームの goodoo です。 この記事では、選問題の「ISU CONQUEST」について、問題の解説と講評を行います。 ISU CONQUESTとは今年も、問題に関する動画を作成いただきました。 まずは、動画を見てみましょう。 ゲームです! 育成型放置ゲームが題材です。 放置した時間で生産した椅子を売って、コインをゲットし、そのコインでガチャを回し、装備を強化し、椅子をさらに効率よく生産する、というゲームストーリーになっています。 ひたすら椅子を生産するゲームのため、椅子で世界を埋め尽くす、という謳い文句になっています。 当日の競技内容とアプリケーションの仕様については ISUCON選当日マニュアル、ISU CONQUESTアプリケーションマニュアル を参照してください。今回の解説文もアプリケーションマニュアルに出てくる用語を用いて解説してい

    ISUCON12 本選問題の解説と講評 : ISUCON公式Blog
  • Google Colab ではじめる Textual Inversion|npaka

    今回は、「Diffusers」の「textual_inversion.py」を使います。書くべきコード量も、GPUのメモリ消費量も少なくて良い感じです。 2. ライセンスの確認以下のモデルカードにアクセスして、ライセンスを確認し、「Access Repository」を押し、「Hugging Face」にログインして(アカウントがない場合は作成)、同意します。 3. 学習用画像の準備ファインチューニングには、3〜5枚の学習用画像が必要です。 ・画像サイズ は512×512。 ・Exifで回転してない画像。 ・最良の結果を得るには約 3~5個の画像。 使用する画像の枚数が多すぎると、モデルが収束しない場合がある。 ・画像には共通のコンテキスト情報が含まれている必要がある。 ・オブジェクト : 同じオブジェクトを異なる視点から写す。 ・画風 : 配色とアートスタイルを一貫させる。 4. ファイ

    Google Colab ではじめる Textual Inversion|npaka
  • TRICK 2022 Results

    @ RubyKaigi 2022 (2022-09-08) https://rubykaigi.org/2022/presentations/tric.htmlRead less

    TRICK 2022 Results
    sugyan
    sugyan 2022/09/09
    今回も意味不明すぎるスゴいのが集まっていて本当にすごい…
  • リリース用のpull requestを自動作成し、マージされたら自動でタグを打つtagpr | おそらくはそれさえも平凡な日々

    常々GitHubにtag requestが欲しいと言ってきましたが、それを実現するツールを作りました。OSSなど、バージョニングとリリースが伴うソフトウェア開発のリリースエンジニアリングをとにかく楽にしたいという動機です。既に自分が管理している幾つかのOSSでは導入して便利に利用しています。 https://github.com/Songmu/tagpr アイデア 基の発想は以下のようにシンプルです。 リリース用のpull requestがGitHub Actionsで自動で作られる バージョン番号が書かれたファイルやCHANGELOG.mdを自動更新 そのpull requestをマージするとマージコミットに自動でバージョンtagが打たれる semver前提 リリース用のpull requestを自動で作りマージボタンを以てリリースと為す、というのは、みんな(僕が)大好き git-pr

    リリース用のpull requestを自動作成し、マージされたら自動でタグを打つtagpr | おそらくはそれさえも平凡な日々
  • Rustで型レベルプログラミング

    はじめに 通常のプログラムは実行時(ランタイム)に1 + 1など様々な計算を行う。一方でコンパイラーを持つ言語では、コンパイラーの型検査やジェネリクスなどの機構を利用して、コンパイル時にも計算を行うことができる。このようなプログラミングを、コンパイル時に検査・推論される“型”[1]に注目して型レベルプログラミングと呼ばれる。 ランタイムの計算の中にはたとえばwhile(1);のような簡単な計算で無限ループといった停止しない状況に陥いることがある。コンパイル時にできる計算でこのように無限ループに陥いってコンパイルが停止しなくなってしまったら、プログラムを実行することなく自明なエラー(型があってないとか、Rustであればfreeするタイミングが自明でないなど)を検出しようというモチベーションが崩壊してしまう。したがってコンパイル時にできる計算とはランタイムに比べて非常に限定された計算しか許可さ

    Rustで型レベルプログラミング
    sugyan
    sugyan 2022/09/05
    うーん、すごい世界だ……
  • 自作のRust製エミュレーターをWebブラウザーで動くようにした

    最近Rustでちょいちょい書いてたエミュレーターをWebブラウザーで動くようにしました。 現在のところ、ゲームボーイ・ゲームボーイカラー、ゲームボーイアドバンス、ファミコン、スーパーファミコンが動きます。 当初からブラウザーでも動かすことを念頭に置いていたので、コア開発が一段落したら対応させたいと思っていました。実際に動かすに当たっては思い通りに進んだところもあり、そうでないところもありといったところで、ところどころで気づいたところを書いておいたら誰かの参考になるかもしれないので、とりとめのない話ですが書き残しておくことにします。 一応ウェブアプリなのにJavaScriptTypeScriptも、ReactAngularも、npmwebpackも使わない、インド人完全無視カレーみたいなものになりましたが、それでもそこそこに良い感じにできた気はするので、私のようにフロントエンドから取り

    自作のRust製エミュレーターをWebブラウザーで動くようにした
  • 楽しさも怖さも成長の糧になる。独学からスタートしたフロントエンドエンジニアとしてのキャリア - Findy Engineer Lab

    2016 年 HTML5 カンファレンスでの講演 はじめまして、小林(@koba04)です。現在はソフトウェアエンジニアとしてサイボウズで週4日、SmartHR で週1日働いています。2021 年 3 月に東京から静岡県の富士市に移住してフルリモートワークという働き方をしています。OSS では React 関連のライブラリのメンテナンスなどを行っています。 この記事では、私がこれまでのキャリアで Web の面白さを感じソフトウェアエンジニアとして働き始め、フロントエンドエンジニアとして働くようになる中で考えたことや大切にしていることを紹介します。 Web エンジニアとして働くということ 私が Web の面白さを感じるようになったのは、好きな音楽を伝えようと始めたブログやホームページ作成がきっかけでした。誰の許可を得る必要もなく自分の書いたものを公開でき、それに対する反応がある世界。今では当

    楽しさも怖さも成長の糧になる。独学からスタートしたフロントエンドエンジニアとしてのキャリア - Findy Engineer Lab
    sugyan
    sugyan 2022/08/23
    「怖さ」は現状に満足せず新しい挑戦をしているのかの目安、「楽しさ」は強みを伸ばす活動ができているかの目安、どちらも欠かせない大切な感情なるほど〜。
  • How I/we got 2k stars - ゆーすけべー日記

    Honoという僕が作っているWebフレームワークのGitHubスター数が2,000に迫ってきた。これまで作ってきたOSSのソフトウェアでは最高で revealgo の221、次点で gh-markdown-preview の134だ。それが一気に2,000である。 もちろん、スターの数がソフトウェアの良し悪しを決めるものではない。 それに2,000はとりわけ多いわけではない。 でも、以前の自分には遥か彼方に見えていた数を獲得できたのは、とても嬉しいことだ。 去年12月から作り始めて9ヶ月間、552コミット。 今や使ってくれる人も増えた。 cdnjs のAPI Serverのバックエンドにも使われているし、 HonoをきっかけにGitHubスポンサーをしてくれている企業や人も現れている。 なにより、いろんなことを勉強させてもらった。 今回はHonoというプロダクトがどうやって2,000のスタ

    How I/we got 2k stars - ゆーすけべー日記
  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

    Rustでファミコンとスーパーファミコンのエミュレーターを書いた
  • PydanticがRustで爆速になるという話 - Qiita

    はじめに 最近ポッドキャスト聴く時間が少し減ってしまったんだけど、久しぶりに Talk Python to Me を聴いたらPydanticの話題でした(エピソードのリンクはこちら)。作者のSamuel Colvinさんが秋に予定しているメジャーバージョンアップの話をし始めたのですが、冒頭で「コアをRustで実装して17倍速くなる」と言っていて、リンク張られていたドキュメントを読みました。この記事はそこで語られていた内容を中心にPydantic v2についてご紹介します。 Pydanticとは v2の話の前に、そもそもPydanticとは何かについて簡単に触れておきます。PydanticはPythonの型ヒント情報を使ってデータバリデーション(データの妥当性検証)を行うライブラリです。予めデータの構造を定義しておいて、入力されたデータがその構造に合っているかを調べてくれます。 例えば、id

    PydanticがRustで爆速になるという話 - Qiita
  • gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ

    Go 1.19が8/2に早々にリリースされました。個人的にはGo 1.19よりも楽しみだったのが、サービス間通信とIDL(インタフェース記述言語)連載の中でご紹介したgRPCGo実装の新星、Connectのアップデートでした。そしてそれはやってきました。 詳しい内容は↑の記事を見ていただくとして、Connectがその開発元ブログの紹介記事で宣言していたのが次の2つのことでした。 Go 1.19が出たらconnect-goは1.0にして以後後方互換性を守るよ connect-webを出すよ 前者はまだ0.3だったのですが、connect-webはリリースされました。歴史のあるフロントエンドのコードジェネレータはTypeScript対応が後付けだったりするのですが、TypeScriptがファーストシチズンかつ、ネイティブというコードジェネレータなので、開発はかなりやりやすくなることが期待され

    gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも? | フューチャー技術ブログ
  • Tree-sitter|Introduction

    ☰ Introduction Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. Tree-sitter aims to be: General enough to parse any programming language Fast enough to parse on every keystroke in a text editor Robust enough to provide useful results even in the prese