タグ

to-ke-iのブックマーク (1,930)

  • WebAssembly所感

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

    WebAssembly所感
  • Windows上でユニコードを「見る」方法

    Windowsでは、文字コードに「ユニコード」を使う。Windowsに搭載されているフォントはさまざまあるが、ユニコード文字を表示できるように、多数の文字の形が組み込まれている。 今回は、Windowsでユニコードを“見る”方法について解説する。なお、WindowsではUTF-16LEエンコードをUnicodeと表記する。ここでは、エンコードと混同されないために、文字仕様のUnicodeは「ユニコード」とカナ書きすることにする。 GUIアプリでユニコードを使う ユニコード文字は多数ある。それぞれの文字に割り当てられた文字コードをユニコードでは「コードポイント」と呼ぶ。コードポイントは、「U+」の後ろに16進数4桁または6桁で指定するのが正式な表記方法だ。たとえば、「漢」は「U+6F22」となる。ユニコード関連の文書やもちろん、インターネット内のウェブページでも同様の表記をすることが多い。

    Windows上でユニコードを「見る」方法
  • クラウドでもsuが出来る! GCPにPAM(特権管理)がついに登場

    はじめに Linuxの良い所の一つにsuやsudoと言った特権管理の仕組みがあります。普段は通常アカウントで入って、例えばインストールなどの特権作業が必要な時だけsu/sudoで一時的な権限昇格が可能ですし、/etc/pam.dで誰がどのユーザにスイッチ出来るかなどは細かく制御できます。 一方で、クラウドの権限管理は悩みの種で、誤操作が怖いので普段はRead Onlyの権限にしておきたいのですが、手軽に権限を昇格する方法がありません。なので、別の管理者ユーザを作って、そちらでログインしなおしたり、それを半自動化するCyberArkやBeyondTrustといったPAM系ソリューション、あるいは最近流行りのCIEM(PAM機能を持つもの)を導入する必要がありました。 Azureでは結構以前からPIM(Privileged Identity Management)がネイティブで組込まれており非

    クラウドでもsuが出来る! GCPにPAM(特権管理)がついに登場
    to-ke-i
    to-ke-i 2024/05/12
  • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

    前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

    Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
  • 『原因がある=悪』論いい加減どうにかなんないの?

    原因があるっていうのは悪であるってことと直結しないの。 例えば、財布を道端に落っことしちゃった。 それを拾った奴が持って帰って中身全部使っちゃった。 こんなもん法的に見たって倫理的に見たって「自分のじゃない財布を持って帰って中身使っちゃう」奴が悪いの。 でも、じゃあそもそもなんでそうなったかっていうと、財布を落っことしたところに原因があるよね? だからって財布落とした奴が悪いって話じゃないの。 次からは財布を落っことさないようにしましょうねってだけの話なんだよ。 財布落っことさなかったらその財布は誰も拾えないし、拾えない財布の中身は使われないんだから。 刺される側が悪いって言ってるんじゃないの。 刺す側が悪いのは大前提として、刺される側にも原因があるのでは?って言ってるだけなの。 恋愛詐欺で男から金品巻きあげた上でストーカー扱いして警察に通報しなきゃ刺されなかったんだから、 今後はそんなこ

    『原因がある=悪』論いい加減どうにかなんないの?
    to-ke-i
    to-ke-i 2024/05/09
    様々な小さな因果が積み重なってその結果にまで至る。
  • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

    切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

    自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
    to-ke-i
    to-ke-i 2024/05/05
    ライブラリ依存は本当にそう。
  • サブクエリの書き方を2万文字弱かけてすべて解説する

    これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

    サブクエリの書き方を2万文字弱かけてすべて解説する
  • 【検閲なし】GPUで生成するローカルAIチャット環境と小説企画+執筆用ゴールシークプロンプトで叡智小説生成最強に見える|カガミカミ水鏡👯

    この記事では日小説に強いローカルLLM環境を簡単構築できるEasyLightChatAssistantの紹介と、論理破綻が少ない効率的な小説生成を促す(と個人的には思っている)AIチャット用プロンプトの公開をしていきます。このコンテンツは主に官能小説をベースに語りますので、年齢制限などお住まいの国家地域のレーティングに従ってお読みください。 どうもこんにちは、休日に「生成AIなんでも展示会」というイベントを知って寝てからいくかーと思って起きて行こうと思ったら当日参加不可イベントだったことを知ったカガミカミ水鏡です。そうよ鉄郎……私は計画性がない女…… ところでエロ小説が大好きな皆さん(直球)、カガミカミ水鏡さんという方はご存知ですか? 生成AIが頭角を表すはるか以前の2015年からpixivの片隅できしょいジャンルの小説を投稿してるエロSS書きです(耳の奴などは2011年にbbspi

    【検閲なし】GPUで生成するローカルAIチャット環境と小説企画+執筆用ゴールシークプロンプトで叡智小説生成最強に見える|カガミカミ水鏡👯
  • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

    この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

    Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
  • Rustで有名アルゴリズムに挑戦(17) RustでHTTPサーバを実装してみよう

    今回はRustを使って、簡単なHTTPサーバを実装してみましょう。HTTPは単純ですが生活インフラとしても必須となっているWebの根幹となる技術です。Rustに対する理解を深めると同時にWebの根幹となるHTTPについても学びましょう。 RustでHTTPを実装してみよう HTTPプロトコルとは? 「HTTP(Hypertext Transfer Protocol)」とは、WebサーバーとWebブラウザの間でデータをやりとりするための通信規則(プロトコル)です。 1990年末にイギリスの物理学者ティム・バーナーズ=リー氏と、ロバート・カイリュー氏によって設計されました。 HTTPプロトコルは、RFCとして公に発表されています。RFCとは、IETFが発行しているインターネットに関連する技術仕様などを共有するために公開される文書であり誰でも読むことができます。1996年にHTTP/1.0に関す

    Rustで有名アルゴリズムに挑戦(17) RustでHTTPサーバを実装してみよう
  • マップでの大きさが1/1RPG

    大きい女の子は好きですか? ■プレイ時間 一周5~30分 ■ゲーム紹介文 魔王によって呪いをかけられた姫様を救うため、旅に出ることになった勇者ハロルド。 これは勇者ハロルドではなく呪いをかけられた姫が、ハロルドを待ちきれず自分で魔王を倒しに行くお話。 エンディングは5種類用意してあります。 ■生放送など 歓迎します!特に報告などは必要ありません。 ■免責事項 個人の趣味活動のため、動作や内容について保証はありません。ご自身の責任にてご利用ください。 ■注意事項 スマートフォンによるタップ操作、並びにマウスでのクリック操作は想定していないため挙動がおかしくなる恐れがあります。 2週目以降エンディングはスキップが可能です。うまくいかない場合は端末を変更してください。 ■バグ報告など X(旧Twitter):@natume0121 ■修正履歴 2024.2/29 同じイベントが2度繰り返される不

    マップでの大きさが1/1RPG
  • [C++] std::arrayを初期化せずに初期化する - 地面を見下ろす少年の足蹴にされる私

    初期化せずに初期化する。一見矛盾しているようにしか思えない行いはしかし、生配列の場合は次のように初期化しながら初期化しないことによって行うことができます int main() { int array_uninit[5]; // 各要素は未初期化 int array_zeroinit[5]{}; // 各要素は0で初期化 } この時std::arrayで同様に初期化しながら初期化しないことを行うにはどうすればいいのでしょうか?クラス型の場合、初期化をしない初期化(デフォルト初期化)の場合でもデフォルトコンストラクタが呼ばれてしまうため、なんとなくできないような気がしてしまいます。 先に結論を書いておくと、生配列と全く同様の書き方によって全く同様の初期化を行うことができます。 int main() { std::array<int, 5> array_uninit; // 各要素は未初期化 s

    [C++] std::arrayを初期化せずに初期化する - 地面を見下ろす少年の足蹴にされる私
    to-ke-i
    to-ke-i 2024/04/24
  • WebAssembly は次世代のコンテナ技術になれるか?

    色々あって WebAssembly の component model を調べていたら、未来が見えた気がしたのでここに書いておきます。 「今の WebAssembly」 とは何か WebAssembly の Web の部分は忘れてください。これは単に JVM version 20xx です。ポータブルなバイナリ仕様です。 実行にあたっては今はホスト言語として JS が使われていますが、実際にはホストがJSである必要すらなく、なんならホストが不要なスタンドアロン環境すらあります。(wasmtime/wasmer) じゃあ WebAssembly は何かというと、サンドボックスで実行される VM の仕様です。比較的高水準なバイナリで、 V8 や Spider Monkey に付属する WebAssembly Runtime や、 Wasmtime や Wasmer といった WebAssemb

    WebAssembly は次世代のコンテナ技術になれるか?
  • WindowsユーザーはiPerf3を避けるべき、Microsoftが否定的見解示す

    Microsoftは4月18日(米国時間)、「Three Reasons Why You Should Not Use iPerf3 on Windows - Microsoft Community Hub」において、Windowsでネットワークパフォーマンスの測定にiPerf3を使用すべきではないと主張した。同社は利用すべきではない理由を挙げるとともに、iPerf3の代わりとなる代替ツールを紹介している。 Three Reasons Why You Should Not Use iPerf3 on Windows - Microsoft Community Hub WindowsでiPerf3を使用すべきではない3つの理由 Windows環境でのネットワークベンチマーキングにおいて、使いやすさと高いカスタマイズ性からiPerf3が使われることがある。しかしながら、MicrosoftはWi

    WindowsユーザーはiPerf3を避けるべき、Microsoftが否定的見解示す
  • 最近出社して対面で会話することが多くなった結果、生産性に繋がりそうな会話があった話3選

    みなさんこんにちは。 都内のIT企業でフロントエンドエンジニアをしてますSakuです。 ここ1、2ヶ月くらいオフィスに出社して仕事をすることが多かったのですが、そこで、「あれっ…意外と仕事が捗るな…」と感じることがあったので、そこで感じたことを整理するため言語化してつらつら書きたいと思います。 その発端としては、最近新しいプロジェクトが始まり、その開発のチームリーダーという役割もあったため、まあ折角だしオフラインでチームビルディングやどういうプロダクトにするかなどをエンジニア・ビジネスサイドのメンバーと話し合うのも良いかなと思い、軽い気持ちで他のメンバーにも声をかけて出社の機会を作ってもらったのが始まりです。 それから週に何日かは出社して仕事をしていたのですが、ある時ふと思ったのが、冒頭で感じた意外と仕事が捗る感でした。 題に入る前に、話は4年前に遡ります。 コロナ禍で生活が変わった 昨

    最近出社して対面で会話することが多くなった結果、生産性に繋がりそうな会話があった話3選
    to-ke-i
    to-ke-i 2024/04/23
    それをやりたい人とやりたくない人と、共存できればいいよね。でも複数の話題なんて文字ベースのチャットで十分。大抵どの案件もドキュメントにしなきゃいけないし、チケットで証拠も残るし、数年後に見返すのも楽。
  • ぼくのかんがえたさいきょうのGo HTTPサーバー起動方法

    これまで何度か HTTP Server の Graceful Shutdown について記事を書きました。 Go 言語で Graceful Restart をする Go 言語で Graceful Restart をするときに取りこぼしを少なくする Go1.8 の Graceful Shutdown と go-gracedown の対応 最終的に Go 1.8 で Server.Shutdown が導入され、この件は解決を見ました。 しかし、最近「あれ?当に正しく Server.Shutdown 使えている?」と疑問に思い、少し考えてみました。 というか ↑ の記事もまだ考慮が足りない気がする。 ぼくのかんがえたさいきょうの Go HTTP サーバー起動方法 とりあえず完成形のコード。 package main import ( "context" "log" "net/http" "os

  • RustでWasm Runtimeを実装する

    Rustで"Hello World"を出力できる小さなWasm Runtimeをゼロから実装して、WasmとWASIの動作原理を理解するです。

    RustでWasm Runtimeを実装する
  • Prism in 2024

    In Ruby 3.3.0, a new standard library was added to CRuby called Prism. Prism is a parser for the Ruby language, exposed as both a C library (optionally usable by CRuby) and a Ruby library (usable as a Ruby gem). The Prism project represents many person-years worth of effort, and is the result of a collaboration between Shopify, CRuby core contributors, other Ruby implementation authors, and Ruby t

    Prism in 2024
  • ChatGPTなど数々の高性能AIを生み出した仕組み「Attention」についての丁寧な解説ムービーが公開される

    さまざまな数学的トピックをムービー形式で解説するサイト「3Blue1Brown」において、ChatGPTに代表されるAIを形作っている「Transformer」構造の心臓部「Attention(アテンション)」についての解説が行われています。 3Blue1Brown - Visualizing Attention, a Transformer's Heart | Chapter 6, Deep Learning https://www.3blue1brown.com/lessons/attention AIの中身と言える大規模言語モデルのベースとなる仕事は「文章を読んで次に続く単語を予測する」というものです。 文章は「トークン」という単位に分解され、大規模言語モデルではこのトークン単位で処理を行います。実際には単語ごとに1トークンという訳ではありませんが、3Blue1Brownは単純化して

    ChatGPTなど数々の高性能AIを生み出した仕組み「Attention」についての丁寧な解説ムービーが公開される
  • Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)

    およそ 4 年前に「TypeScript で型レベル Brainfuck」という記事を書きました. susisu.hatenablog.com それから 4 年間の間に TypeScript も進化し, 型レベルプログラミングの技法にも大きな変化がありました. 特に顕著な影響があったものでは, TypeScript 4.0 のタプル型の改善 TypeScript 4.1 のテンプレートリテラル型や条件型での再帰 TypeScript 4.5 の条件型での末尾再帰の除去と, 再帰の上限の緩和 などがあります. こういった変化も踏まえた上で, いまから TypeScript の型レベルプログラミングに入門する人に向けて改めてまとめ直したものがこの記事です. 内容は記事執筆時点の最新版である TypeScript 5.4.5 で動作を確認しています. ぜひ Playground などを使って,

    Brainfuck 実装で学ぶ TypeScript 型レベルプログラミング - Object.create(null)