タグ

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

  • Go fonts - The Go Programming Language

    How to use them If you just want the TTF files, run git clone https://go.googlesource.com/image and copy them from the subsequent image/font/gofont/ttfs directory. If you want to use Go (the fonts) with Go (the software), each font is provided by a separate package. To use the Go Regular font in a program, import golang.org/x/image/font/gofont/goregular, and write: font, err := truetype.Parse(gore

    Go fonts - The Go Programming Language
  • Python互換の静的型付け言語「Erg」

    承前 Ergは私が数年前から開発を始め、つい一昨日公開したばかりのプログラミング言語です。 のはずですが、 早速、qnighyさんに捕捉していただきました。ありがとうございます。 この記事ではそのErgがどのような言語なのかざっくりと解説していきたいと思います。なお、紹介した機能の一部は未実装です。実装途中の機能を含むコードには*を、完全に未実装の機能を含むコードには**をつけておきます。 はじめに Pythonは概ね素晴らしい言語です。 オフサイドルールを世に知らしめた(?)、その可読性の高い文法。Numpy, SciPyを始めとする機械学習、科学技術計算用の膨大なライブラリ。 しかしPythonにもいくつかの弱点が存在します。 まず、動的型付け であること。それ自体は弱点というより良し悪しなのですが、明らかに動的型付けでは手に余るPythonプロジェクトが世に溢れています。 次に、一貫

    Python互換の静的型付け言語「Erg」
  • 魔術として理解するお絵描きAI講座|深津 貴之 (fladdict)

    やればやるほど呪術化する、AI画像錬成について。 以下は、その道の専門家にはメッチャ怒られるかもしれない、雑なロジックと制御講座。 いちおうメジャーなサービスでは、共通して動作するノウハウ(DALL-E2, MidJourney, StableEiffusion, DiscoDiffusion, crayon, dall-e mini 他)。 雑に理解する画像AIのしくみ対話型のAIにとって、呪文プロンプトとは画像錬成の方向性ベクトルを定めるものにすぎない。 たとえば、以下は「I love apple」で錬成された画像の例である。どうにも、ふわっとしたものが出てくる I Love AppleApple」という方向性ベクトルは、「リンゴ」「青リンゴ」と「アップルコンピューター(旧レインボーロゴ」「アップルコンピュータ(新ロゴ)」など、複数の可能性を同時に持つからだ。 つまり、「Apple

    魔術として理解するお絵描きAI講座|深津 貴之 (fladdict)
    sugyan
    sugyan 2022/08/10
    "真に覚えるべきノウハウは、「新しいブラックボックス技術に遭遇したとき、如何に短時間で挙動の仮説をたて、暫定的に制御下におくか?」"
  • エンジニアらしく暮らせる街で ─ 技術を磨いたソフトウェア開発者が次に挑むのは「ユーザーファースト」 - Findy Engineer Lab

    福岡タワーとudzuraさん 近藤宇智朗(@udzura)さんはGMOペパボのシニアプリンシパルエンジニアとして技術を磨き、Rubyコミュニティに参加してきた経験も生かしながら、自走できるソフトウェアエンジニアを育成する「大名エンジニアカレッジ」を福岡で立ち上げました。そこで思わぬ苦戦に直面したことで、あらためて「ユーザーファースト」の大切さを認識したと語ります。それは図らずも、高校生のころ父親からかけられた言葉につながる経験でした。 転職活動をきっかけとしたユーザーファーストへの気付き エンジニア育成を目指した「大名エンジニアカレッジ」とは どんなよい目標もユーザーが成長しなければ意味がない なぜ福岡は「エンジニアらしく暮らせる街」なのか? 父の言葉から立ち返った「ユーザーファースト」の大切さ 転職活動をきっかけとしたユーザーファーストへの気付き ── 近藤さんは長く技術のスペシャリスト

    エンジニアらしく暮らせる街で ─ 技術を磨いたソフトウェア開発者が次に挑むのは「ユーザーファースト」 - Findy Engineer Lab
  • ZigはCMakeの代替となるか

    既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

    ZigはCMakeの代替となるか
    sugyan
    sugyan 2022/08/09
  • Midjourneyの呪文のまとめ

    リンク 3D人-3dnchu- Midjourney Beta - キーワードを元にAIの力でアーティスティックな画像を生成してくれるサービス!無料のオープンベータ版を利用可能! キーワードを元にAIの力でアーティスティックな画像を生成してくれるサービス「Midjourney(ミッドジャーニー)」のベータ版が一般公開され、今話題を集めています。 3 users 13

    Midjourneyの呪文のまとめ
  • Rustとdeno_coreを使って、独自のJavaScriptランタイムを作ってみる

    Node.js、Denoに続いて、Bunという新たなJavaScriptランタイムが登場していますが、Denoの7月29日のブログにて、"Roll your own JavaScript runtime"という記事が投稿されていたので紹介します。 タイトルの通り、自分のJavaScriptランタイムを作ってみよう!という記事です。 作り方は元記事に載っているのでここでは省略して、掻い摘んだ内容をまとめていきます。 JavaScriptランタイムの材料 Rust deno_core tokio Rustdeno_coreとtokioというクレートを使って作っていきます。 deno_core deno_coreって、もうそれdenoじゃんと思いましたが、こちらのクレートはJavaScriptエンジンであるV8との橋渡し的な役割を持つようです。 deno_coreは、複雑で大量のAPIを持つV

    Rustとdeno_coreを使って、独自のJavaScriptランタイムを作ってみる
  • document.all の例外仕様を知っていますか

    昨日、ツイッターで次のような JavaScript クイズを出しました。 久しぶりの JavaScript クイズ! function hello(x) { if(typeof x === 'undefined') { alert(x.f()); } } この hello 関数で "Hello, World!" のアラートを表示させることが出来るか? — Takuo Kihira (@tkihira) July 31, 2022 このブログ記事では、この問題について解説します。 解答 答えは「出来る」です。出題者の意図としては document.all を想定しておりました。 document.all は、ブラウザに存在する、非常に特殊なオブジェクトです。 document.all 自体は object 型である。console.log(document.all) とすると内容が確認出来る

    sugyan
    sugyan 2022/08/01
    ぜんぜん知らなかった…
  • ISUCON12 予選問題の解説と講評 : ISUCON公式Blog

    ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです ISUCON12 予選問題の解説と講評 予選問題作問チーム、面白法人カヤックの fujiwara です。 ISUCON12予選に参加された皆様、ありがとうございました。おかげさまで大きなトラブルもなく予選を終えられて安心しています。 このエントリでは、予選に出題された問題の解説と、皆様の感想エントリなどを拝見した結果を踏まえて講評します。 当日の競技内容とアプリケーションの仕様については ISUCON12 予選当日マニュアル、ISUPORTSアプリケーションマニュアル を参照してください。 予選問題のリポジトリはこちらGitHub - isucon/isucon12-qualify 作問チームによる事前解答については I

    ISUCON12 予選問題の解説と講評 : ISUCON公式Blog
  • ISUCON12予選参加記 Rustで予選突破した

    2022年7月23日(土) に開催された ISUCON 12 に Rust で参加して20位で予選突破しました。 チーム チームO omu: https://omuric.github.io/posts/isucon12-qualify/ dice801: https://zenn.dev/dice801/articles/760f8fc6af5a08 daiju (自分) 事前準備 基的には前年までに用意したツールを活用する cargo-make で3台の EC2 への deploy や再起動やログの集計をコマンド一発で実行可能にする isuconf で現地と手元の設定ファイルの同期 omu の自作コマンド どちらも年に1回しか登場しないので、事前の練習でコマンドを手に馴染ませておく。 Rust のためのトレースツールの整備 https://github.com/hinohi/rust

    ISUCON12予選参加記 Rustで予選突破した
  • Edge Side Frontend という新領域

    at #ワインと鍋js なぜフロントエンドに Edge Worker が必要なのか、Cloudflare Workers をどう使っていくかみたいな話をしました

    Edge Side Frontend という新領域
  • Treasure Data を退職しました - k0kubun's blog

    約5年5か月働いたTreasure Dataを7/22に退職した。7/25からShopifyに入社し、RustでJITコンパイラを開発してRubyを高速化する仕事をする。 仕事としてやりたい分野が変わってきて自分は今回転職したけど、とても良い会社なので、この記事がTreasure Data (以下TD) で働くことに興味がある人の参考になれば良いと思っている。*1 5年勤続記念にいただいたトロフィー やっていたこと APIチーム 元々TDにはJavaで分散システムを書きたくて入社したのだが、TD入社前に特にそういう経験があるわけでもなく主にRailsをやっていたこともあり、Railsでプラットフォームを開発するチームに入った。基盤開発をやりたいと思いながらサービス開発者として最初働き、後に基盤開発チームにジョインするみたいな過去の経験があったので、今回もそういう感じでいけると考えていた。実

    Treasure Data を退職しました - k0kubun's blog
    sugyan
    sugyan 2022/07/25
    3億円の目標、いい……
  • キャラクター画像一枚でVTuberになれるシステムを作ってみた【体も動かせるよ編】

    新しいシステムを用いて、人間の動きをアニメキャラクターに反映させる既存のツールを更新しました。更新された機能は以下の動画で確認できます。 またシステムの高速化と軽量化の方法も実験しました。画質の劣化を抑えながら、必要なメモリーを大幅に減らすことができ(パラメータのデータ容量を18倍縮小、必要RAMは3倍縮小)、処理速度も少し上げることが出来ました。 1   はじめに バーチャルYouTuber(VTuber)になりやすくすることを目標に、私は2019年から自由研究をやり続けてきました。 具体的には、アニメキャラクターの顔イラストを一枚受け取り、そのイラストを動かせるニューラルネットワークのシステムを作りました。システムは顔を回転させることと表情を変更させることが出来ますが、様々な問題があります。それらを解決しなければ、システムは実践的なコンテンツ制作ツールになれません。今回の研究目的は以下

    sugyan
    sugyan 2022/07/21
    すっご…
  • Zig Makes Rust Cross-compilation Just Work · Um, actually...

    Sat, May 22, 2021This post is a spiritual successor to Loris Cro’s Go cross-compilation. The encounterDuring a recent stage 2 meeting, Jakub Konka wanted to demo his progress on WASM support, but ran into problems with screen-sharing on Linux. After switching to his Mac to run it there, he found out that Wasmtime (a WASM runtime) doesn’t ship aarch64-macos pre-built binaries. But Wasmtime is an op

  • SIMDによる将棋Bitboard計算の高速化 - すぎゃーんメモ

    自作Rust将棋合法手生成ライブラリ、計算の高速化のためBitboardの128bit計算をSIMDで行うようx86_64のAVX2、AArch64のNEON、wasm32のsimd128で動くようにそれぞれ実装して 各環境で多少速く探索できるようになった。https://t.co/h7Dz3X6BhT— すぎゃーん💯 (@sugyan) July 2, 2022 ということでSIMDでの高速化のメモ。 SIMDとは 実装 x86_64 基演算 飛び利き計算 AArch64 同値判定、ゼロ値判定 飛び利き計算 Iterator WebAssembly Benchmark x86_64 AArch64 WebAssembly 感想 SIMDとは ja.wikipedia.org の通り、複数のデータを1命令で同時に演算する、というもの。 将棋Bitboardは81マスのデータを表現する

    SIMDによる将棋Bitboard計算の高速化 - すぎゃーんメモ
  • Rustでゲームボーイアドバンスエミュレーターを書いた

    一通りちゃんと実装したので、大抵はちゃんと動いてくれるはずです。動かなかったり、画面がおかしかったり、音がおかしかったりしたらバグなので、ご報告いただけるとうれしいです。 エミュレーションコアが2つになったので、せっかくなのでエミュレーションコアのインターフェースを抽象化して、マルチエミュレーターにしました。 リリースページ からコンパイル済みバイナリをダウンロードできます。 マルチエミュレーター エミュレーターを作るうえで割と面倒でバカにならないのがフロントエンドUIの作成です。GUIアプリを作るのはそもそも結構大変で、ましてや昨今のアプリケーションはPCだけでなくスマホやWebといったタイプの異なる複数のプラットフォームで動かしたいというモチベーションがあります。特定プラットフォームにべったりで何となく動くように書けばいいやというのと比べると、取れる選択肢も限られてかなり面倒になってき

    Rustでゲームボーイアドバンスエミュレーターを書いた
  • Bun — A fast all-in-one JavaScript runtime

    Develop, test, run, and bundle JavaScript & TypeScript projects—all with Bun. Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager.

    Bun — A fast all-in-one JavaScript runtime
  • Rustのグラフィクス周りメモ/wgpuとその使い方

    はじめに Rustでグラフィクスプログラムをクロスプラットフォームに書く環境が、wgpuというクレート中心に揃っていて大変素晴らしいので、それについてメモします。 記事の後半では実際にwgpuを使って三角形の描画までを試してみます。 バージョン Rust: 1.62.0 wgpu: 0.13.1 グラフィクスAPI この記事ではグラフィクスプログラミングを、グラフィクスAPIを利用したプログラミングを指すものとします。 まずはグラフィクスAPIについて最初に説明をします。 グラフィクスAPI グラフィクスのAPIとは、具体例をあげるとOpenGLやDirctX的なやつです。 現代においてリアルタイムグラフィクスを利用するプログラムを書く場合、CPUだけで実行される普通のプログラムとは違い、GPUを使うプログラムを書くことになります。 GPUを使うプログラムを書くとはどういうことかというと、

    Rustのグラフィクス周りメモ/wgpuとその使い方
  • 一般ユーザに払い出すと危険なサブドメインやメールアドレス - ASnoKaze blog

    ユーザに対して、そのユーザ名のサブドメインやメールアドレスを払い出すWebサービスがあります。 しかし、特定のサブドメインやメールアドレスは特別な用途で使われているものもあります。そのようなサブドメインやメールアドレスを一般ユーザに払い出してしまうと危険です。 現在、IETFでは仕様上利用用途が決められている、それらのラベルをとりまとめる「Dangerous Labels in DNS and E-mail」というdraftが提出されています。 今回はそれを眺めていきます。 (あくまでIETFの取り組みであり、仕様上定義されているものをとりまとめています。クラウドサービスや特定ベンダーで特別利用しているものは現在含まれていません。) サブドメイン ここでとりあげるサブドメインは、利用用途が決まってるため一般ユーザに払い出すべきではありません。(例: mta-sts.example.com)

    一般ユーザに払い出すと危険なサブドメインやメールアドレス - ASnoKaze blog
  • reversi/othello - bitboard tricks

    (†は外部サイトへのリンク) Population count - 現時点の石数 Mirroring - 鏡像 Mobility - 着手可能位置 Get full lines - 埋まっている列を求める Count Last Flip - 最終手での返る石数 Flip - 返る石を求める (Move Generator) Flip AVX2/neon - AVX2/neon で返る石を求める リバーシの盤面は 8×8 の 64 マスで、石の有無をビットで表せるので、ビットボードへの納まりは非常に良い。 以下盤面の A1 を bit 0 (LSB), H8 を bit 63 (MSB) とする。(盤面とビットの並びが逆になる。) 自分の石 P と相手の石 O の 2 つの 64 ビット変数で盤面を表す。(文中で O (オー) と 0 (ゼロ) の両方が使われているので注意。) SSE2 で