タグ

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

  • オンライン投票はなぜ『難しい』のか

    で公職選挙が近づいてくると、「202X年にもなって投票所に行く必要があるなんて」とか「オンライン投票もいまだにできないなんて」みたいな声をよく聞きます。 [1] 法にも技術にも詳しくない一般の人がそう思うのは自然なことでしょう。オンライン投票ができれば、少なくとも若年層の投票率にはいい影響がありそうです。しかし「現代的で民主的な選挙」の要件をしっかり満たしてオンライン投票を実現するのは、実は技術的にも容易ではありません。 「現代的で民主的な選挙」の要件とは、どういうものでしょうか。現在の技術でオンライン投票を実施すると、その要件はどのように毀損するのでしょうか。私たちはその要件を、当に理解しているでしょうか。 記事は、「現代的で民主的な選挙」の要件を振り返り、そこから導かれる「オンライン投票のなにが『難しい』のか」をできるだけ明確にする試みです。そして、議論をその先へ進めるための前

    オンライン投票はなぜ『難しい』のか
  • 超高速シリアライズフォーマット「DLHN」

    新しいシリアライズフォーマットDLHNをリリースしました。 DLHNは高速でデータサイズが小さいバイナリ形式のシリアライズフォーマットです。 DLHNの発音は"Dullahan"と同じです。 公式サイトは https://dlhn.org 実装は https://github.com/otake84/dlhn イラストは @kira2beat さんに描いていただきました。 特徴DLHNはプログラミング言語やプラットフォームに依存しないバイナリ形式のシリアライズフォーマットで、JSON, CSV, MessagePack, Protocol Buffersなどから影響を受けています。 シリアライズとデシリアライズが高速で、データサイズが小さく、Schema定義ファイルが不要でストリーム処理にも対応しています。 これを聞くとMessagePackと同じように感じるかもしれませんが、実際のデータ

    超高速シリアライズフォーマット「DLHN」
    sugyan
    sugyan 2022/05/09
  • 第32回世界コンピュータ将棋選手権 結果報告 - TadaoYamaokaの開発日記

    5/3~5/5に開催された第32回世界コンピュータ将棋選手権に参加しました。 HEROZチームとして、「dlshogi with HEROZ」というプログラム名でエントリしました。 大会の概要 世界コンピュータ将棋選手権は、1990年より毎年開催されている歴史のあるコンピュータ将棋の大会です。 今回は32回目の開催で、51チームが参加しました。 第1予選、第2予選を通過した上位8チームで総当たりのリーグ戦で決勝戦が行われました。 大会の結果 決勝では1回も負けることはなく、優勝という結果になりました。 第32回世界コンピュータ将棋選手権 決勝 ソフトの強さは毎年強くなっており、上位ソフトの強さは拮抗しており決勝に残るだけでも難しい状況でした。 優勝の可能性はあると考えていましたが、決勝に残るチームでの勝率の差は10%程度だと考えていたので、1回勝負では運で決まる要素も大きいと思っていました

    第32回世界コンピュータ将棋選手権 結果報告 - TadaoYamaokaの開発日記
    sugyan
    sugyan 2022/05/06
  • S.Lightweight-EFについて - 死ぬこと以外かすり傷

    第32回世界コンピュータ将棋選手権が終わりましたが、そちらに出場していた「S.Lightweight-EF」について記載します。 どちらにしろ後からアピール文書としても出し直しますが、主にそちらには書かない部分について言及しようと思います。 ■概要 dlshogiをベースとしたライブラリ勢のソフトで、Lightweightシリーズの最新版にあたります。 コンセプトは「ローカルPC環境でもCPU系/GPU系に限らず、高級スリッパやつよつよインスタンス勢と戦うこと」であり、末尾のEFはモデルに採用しているEfficientNetが由来です。 ■第2回電竜戦時からの改良点とdlshogi家との差異 大きく①②③④⑤の特徴がありますが、家との差異は以下①②です。 ①モデルアーキテクチャ 家ではResNetを使っていますが、S.Lightweight-EFでは「EfficientNet」にて構

    S.Lightweight-EFについて - 死ぬこと以外かすり傷
    sugyan
    sugyan 2022/05/06
  • [Rust] モジュールのベストプラクティス

    Rust のモジュールシステムは私の知る中でもトップクラスによくできた仕組みだと思います。特にリファクタリングによってモジュールを再構成するときのやりやすさは他の言語では経験できないものです。例えばそれなりの規模の Python プロジェクトを回帰バグを導入せずにモジュール構造のリファクタリングするのは不可能に近いですが、 Rust ではそのような不安を覚えたためしがありません。 Rust のモジュールシステムがどういうものかは、 The book にも書かれていますし、すでに大量のガイドが書かれていると思います。しかし、どのように使うべきかについては意外なほど情報が少なく感じます。 ベストプラクティスというのもおこがましいですが、数年使ってきて Rust のモジュールシステムを使う上でスムーズに感じる方法をまとめておきたいと思います。 Rust のモジュールシステム 稿の主題はモジュー

    [Rust] モジュールのベストプラクティス
  • 詰将棋探索における簡易的な二重カウント対策

    #証明数/反証数の二重カウント問題を回避するためには、局面グラフの合流を検出ができなければならない。 合流を検出するためには、以下の追加情報のいずれかを置換表に保存する必要がある。 直前手親局面の置換表エントリへのポインタこれらの情報があれば、次回以降に同じ局面に到達したときに局面の合流を検出することができる。なお、直前手だけでは取った駒がわからないので、厳密な合流検出のためには親局面へのポインタも必ず必要になる。 局面の合流検出 長井歩, and 今井浩. “df-pn アルゴリズムの詰将棋を解くプログラムへの応用.”  情報処理学会論文誌  43.6 (2002): 1769-1777. Fig. 3 探索中に局面の合流を見つけたとき、探索経路および置換表に書かれた親局面をたどり、それらの手順が分岐した局面を特定する。このようにして、二重カウント問題が発生しそうな分岐局面を特定すること

    詰将棋探索における簡易的な二重カウント対策
  • はじめに — マンガと学ぶデータビジュアライゼーション

    はじめに# データビジュアライゼーションとは,数値や文章などのデータに基づいた情報を,人間が理解しやすい形に視覚化する技術を指します. このサイトは,文化庁のメディア芸術データベース・ラボ(MADB Lab)で公開されている四大少年誌( 週刊少年サンデー, 週刊少年ジャンプ, 週刊少年チャンピオン, 週刊少年マガジン )のデータを用いて,データビジュアライゼーションの学習を手助けすることを目指しています. データビジュアライゼーション(に限らずデータ分析全般)の学習において重要なのは,分析対象のデータに興味を持てるかどうかです. 書では約47年の四大少年誌のマンガ作品データを採用しているため,モチベーションを保ちつつ学習を進めることが可能です.

  • コンピュータ向け超難解詰将棋作品集 - 詰将棋メモ

    [2022年6月9日最終更新] 脊尾詰でミクロコスモスが解け、長井詰でほとんどの長編が解けてしまってから、詰将棋プログラムの研究は新たな展開がほとんどない。そこで、コンピュータに挑戦!ということで、コンピュータ向けのベンチマークとして超難解詰将棋作品集を作ってみようと思いついた。10作ぐらい揃えたいので超難解作をご存知の方はコメントやトラックバック、またはおもちゃ箱掲示板で教えてください。また、これらの作品がコンピュータで解けた場合は、プログラム、環境(CPUやメモリ設定)、時間をレポートしていただければ、随時掲載したいと思います。 作品集はこちら(現在13作品) ===> コンピュータ向け超難解詰将棋作品集 関連情報(詰将棋メモ): コンピュータで詰将棋  コンピュータ詰将棋の課題  コンピュータによる詰将棋創作 関連情報(おもちゃ箱): 将棋ソフト・コンピュータ将棋  超長編作品のプロ

    コンピュータ向け超難解詰将棋作品集 - 詰将棋メモ
  • WebGPUとRustでネコチャンを点描した話

    はじめに 昨年12月にこんなツイートを見かけました。 かわいいですね。幸いにして論文と実装が公開されていたので、自分でもやってみようと思って、その結果を書いたのが前回の記事です。 読んでいただければわかるとおり、前回の記事の中ではGPUを使わずにアルゴリズムやデータ構造を工夫して近似的に計算しています。結果の画像についてはそんなに悪くないと思っていますが、限界もありました。パーティクルの数も少ないし、一部の画像ではうまく行きませんでした。 やっぱり、もっとちゃんとネコチャンを点描してみたいですよね。 なので、今回の記事ではGPUを使ってアルゴリズムを再現し、よりヴィヴィッドなネコチャンの点描を作成しようと思います。GPUを使って計算するために、WebGPURust実装であるwgpuを使用します。ネコチャンの画像を点描にしたい人と、WebGPUに入門してcompute shaderで何か計

    WebGPUとRustでネコチャンを点描した話
  • Crypko

    High-quality Anime Character Generation and Design powered by GAN (Generative Adversarial Networks).

    Crypko
  • CLI で 𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧... する

    新しく買ったものの画像と一緒に「𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧...」とツイートする人が Twitter にはたくさんいます. この「𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧...」のような装飾文字は Unicode で定義された文字なのですが,簡単には入力できないと思います.そのため,こういったサイトなどで変換して使うことになります. このサイトは文字を入力してボタンを押すだけで変換できて便利なのですが,毎回このサイトにアクセスする必要があります. ターミナルで作業しているときにいますぐ「𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧...」したくなったり,100万行のテキストファイルをすべて 𝒃𝒐𝒍𝒅 𝒊𝒕𝒂𝒍𝒊𝒄 にしたいときはこのサイトでは難しいです. そこで CLI で「𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧...」するべく omekasy というツール

    CLI で 𝙈𝙮 𝙣𝙚𝙬 𝙜𝙚𝙖𝙧... する
  • Rustで設定値を持つにはどうしたらいいですか | κeenのHappy Hacκing Blog

    κeenです。Rustではじめてアプリケーションを書くときに困りがちなことの1つにグローバルな値を持つにはどうしたらいいか分からないというのがあるようです。 その書き方を何パターンか紹介しできたらなと。 一応この記事には元ネタというかインスパイア元があり、以下のリポジトリも見ながら書かれています。 https://github.com/paulkernfeld/global-data-in-rust let にする 一番よくあるケースだとCLIや起動時に読み込んだ設定ファイルの値をどうするかでしょう。データの性格として起動時に一度だけ生成してあとは(ほとんど)いじらないようなものです。そういうものは main 関数内で let して、あとは借用で持ち回ればよいです。 起動時にファイルかろ設定値を読み込んで動くアプリケーションを雰囲気で書くとこんな感じです。 use std::io; str

    Rustで設定値を持つにはどうしたらいいですか | κeenのHappy Hacκing Blog
    sugyan
    sugyan 2022/04/25
  • 多腕バンディット問題に触れてみる - Platinum Data Blog by BrainPad

    記事は、当社オウンドメディア「Doors」に移転しました。 約5秒後に自動的にリダイレクトします。 当社自社開発プロダクト「Rtoaster」のAI機能「conomi-optimize」にも考え方を利用したアルゴリズムが使われている、多腕バンディッド問題。今回のブログでは、多腕バンディッド問題の内容と基的な解法についてご紹介します! こんにちは、アナリティクスサービス部の小野川です。 今回は多腕バンディット問題と呼ばれる問題の内容とその基的な解法についてご紹介したいと思います。 多腕バンディット問題概要 多腕バンディット問題とは強化学習に含まれるもので、複数の選択肢のなかからよりよい選択肢、つまりより報酬を得られやすい選択肢を選ぶという問題です。 ビジネス現場でもWeb広告最適化やレコメンドなどで活用しうるもので、活用範囲は幅広くあります。(実は弊社の製品であるRtoasterでもこ

    多腕バンディット問題に触れてみる - Platinum Data Blog by BrainPad
  • Node.js の原罪 - from scratch

    Intro ちょうどタコピーの原罪が流行ってるのでこのタイトルにしたけど結構気に入ってる。 d.potato4d.me この話を読んでの感想とここまで大きくなった Node.js の振り返りをしようと思う。 どんなプログラミング言語であってもみんなから使ってもらって開発者をハッピーにしたいと思ってる。ただ最初は良かったと思ってた機能がなんか古臭くなったり、他にクールな機能を持ったものが登場したことによって徐々に飽きられていき、最終的に他の言語に乗り換えられる。 まぁどんな言語も同じだと思う。C言語だって生まれた当初はすごくクールでみんなをハッピーにしてた。今丁度「戦うプログラマー」を読んでるが、C++が出てきて、周りのエンジニアC++ を使おうとするシーンが出てくる。そこで、「あんなの使って何が良いんだ、Cで十分だろ」とWindows NT 開発リーダーのデーブカトラーが言ってたりする

    Node.js の原罪 - from scratch
  • Amazon を退職してAutify に入りました - As a Futurist...

    7 年勤めた Amazon を辞めて、Autify という startup に Technical Support Engineer として入りました。場所は変わらず Vancouver, Canada のままです。これからは副業も何かやってみようと思っているので、お気軽にお声がけ下さい。 Today is my last day at Amazon. Lots of excitements and learnings in the past 7 years. Thank you for all of my customers and colleagues. I’ll start the next job soon and will update the status here. Stay tuned! pic.twitter.com/uqGv50jhvN — Ryosuke Iwanag

    Amazon を退職してAutify に入りました - As a Futurist...
    sugyan
    sugyan 2022/03/10
    転職おめでとうございます!!
  • 変化し続けるキャリアと変わらない原体験

    YAPC::Japan::Online 開催めでたい キーノート光栄 オンライン開催 id:onishi さんに先んじてしまった YAPC::Kyoto 中止残念でした (延期とのことです) 今後のオフライン開催に期待 新しいハイブリッドな形にも Discord活用いいですね Me id:Songmu (ソンムー) Masayuki Matsuki / 松木雅幸 Launchable / プリンシパルソフトウェアエンジニア おそらくはそれさえも平凡な日々 https://www.songmu.jp/riji/ https://metacpan.org/author/SONGMU 60+ CPAN Modules / 200+ GitHub repositories 3 Times ISUCON Winner Using Perl 「みんなのGo言語」共著者 ghqメンテナ 認定スクラムマス

  • Acme、其はPerlのユグドラシル

    # source/DCONWAY/Acme-Bleach-1.150/lib/Acme/Bleach.pm package Acme::Bleach; our $VERSION = '1.150'; my $tie = " ¥t"x8; sub whiten { local $_ = unpack "b*", pop; tr/01/ ¥t/; s/(.{9})/$1¥n/g; $tie.$_ } sub brighten { local $_ = pop; s/^$tie|[^ ¥t]//g; tr/ ¥t/01/; pack "b*", $_ } sub dirty { $_[0] =~ /¥S/ } sub dress { $_[0] =~ /^$tie/ } open 0 or print "Can't rebleach '$0'¥n" and exit; (my $shirt =

    Acme、其はPerlのユグドラシル
  • 雌伏の時 | おそらくはそれさえも平凡な日々

    カッコつけたタイトルを付けてしまった。中二っぽい。 強がりと言うか、自分に言い聞かせている部分もあるのだと思う。 有り体に言うと、新しい環境にまだ苦しんでいて、上手く動けていない。こんなことを書くと同僚に心配されてしまいそうだが、同僚には現状を伝えていて、その上で信頼してくれているとも感じている。会社に不満があるわけではなくて満足している。 少し精神的に参っていたので、今週前半は少し休ませてもらった。これは休んだほうが良いな、と思ってyoshioriさんに相談したところ、こちらから休みについては何も言わずとも「休んだほうが良いよ」と言ってくれた。話が早くてありがたかった。 現状意識していることや感じていることについて書き留めておく。 成果を完璧に出せてはいないが淡々とやる 現状、社内では成果目標を定めて、達成度を振り返るというのを毎月やっているが、1月に関しては100%をつけることができた

    雌伏の時 | おそらくはそれさえも平凡な日々
  • Rustが遅すぎる?プロファイリングで性能向上!

    「開発プロセスにプロファイリングを組み込むのはどうだろう?」 ミーティングで、プロファイリングの重要性を発言するだけで、みんながあなたの深い知見、意識の高さに驚くことでしょう。もちろん、あなたは、プロファイリングのやり方を知っている必要はありません。開発の終盤に、性能目標が達成されず、解析が実施される頃には、誰もあなたの発言は覚えていません。しかし、万が一、あなたの意見が採用されても困らないように、この記事を参考にしてください。 Goは、CPU、メモリ、block、mutexなど、使いこなせないほどの種類をサポートするプロファイリングツールpprofを標準機能として提供します。一方、Rustは、そんな機能を提供しません。Rustへの愛が揺らぐかもしれませんが、Rustへの愛は、見返りを求めない純愛です。愛の見返りに何かが与えられると期待してはいけません。 Rustでもpprofあなたは、す

    Rustが遅すぎる?プロファイリングで性能向上!
  • 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

    先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17, 2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ