タグ

ブックマーク / qiita.com/kaityo256 (26)

  • メーリングリストの過去ログとTwitter自動投稿 - Qiita

    メーリングリスト管理はなんでも良いが、我々は歴史的な事情でGNU Mailmanを使っている。最近だとGoogle Groupとか使うのが良いんでしょうか。それだと過去ログ管理も自動でできるみたいだし。 過去ログ表示にはWordPressを使った。要するにメール投稿できるブログがあればなんでも良いのだが、できれば独自DNSで運用したい、というニーズがあった。昔はGoogle Blogで、DNSを登録して自分のドメインのフリができたっぽいのだが、ある時期からドメイン偽装ができなくなった。いろいろ調べたのだが、公的な性格を持っているメーリングリストの過去ログを変なフリーサービスに載せるのも気が引けたので、結局オンプレでWordPressを立てて、そこに表示することにした。 具体的には、まずメーリングリストにWordPress記事投稿用のダミーアドレスを登録する。そして、WordPressにPo

    メーリングリストの過去ログとTwitter自動投稿 - Qiita
  • 「九九の一の位」の数学的側面 - Qiita

    はじめに 小学二年生の息子がこんな宿題を持ってきました。 今日息子が持って帰ってきた「円を十等分し、九九の一桁目の点をつなげ」という宿題、面白い。これ、10を法とする剰余類になっている。10と互いに素な奴はすべての点を巡る。また、1と9、2と8といった、「足して10になるペア」は同じ形になる。5は自己共役ですね。 pic.twitter.com/xOrF5I22jI — ロボ太 (@kaityo256) 2018年11月22日 宿題の中身はこんな感じです。 円が10等分されており、0から9までの数字が書いてあります。この円で、九九の「一の位」を線で結んでみましょう。同じ形はあるかな? まず、10等分されて0から9までの数字が書いてある円というのがこんな感じです。 たとえば3の段なら、0からスタートして、3→6→9→2→5→8・・・と点を結んでいって、こんな図形になります。 こうして、1の段

    「九九の一の位」の数学的側面 - Qiita
  • 見たら「ん?」となるエラーバーのグラフ - Qiita

    はじめに 実験でも数値計算でも、観測に誤差が伴うものをグラフにする時にはエラーバー(誤差棒)をつけると思います。エラーバーのつけ方には流儀がありますが、とりあえず1シグマ、つまり「誤差の乗り方がガウス分布だと仮定した時の標準偏差」をエラーバーとすることが多いです。 で、エラーバーは1シグマなので、「真の値をそのエラーバーの中に含む確率」が68%です。つまり観測点の3つに1つは「真の値」がエラーバーの範囲外にあることになります。なお、ここでは「真の値」を「観測を十分な回数繰り返した時に収束する値」のこととします。 さて、発表を見ていて、たまに「ん?」と思うようなグラフを見かけます。以下では、そんな「ん?」なグラフの実例と、その原因について見てみようと思います。 ケース1:正しい誤差棒 入力値$x$に対して、観測値$y$が$y=x$となる単純な系を考えましょう。ただし、観測するたびに誤差$\v

    見たら「ん?」となるエラーバーのグラフ - Qiita
  • 分子動力学法で一瞬文字が浮かび上がるアニメーションを作る - Qiita

    はじめに 分子動力学法で粒子を動かして文字が一瞬浮かび上がるアニメーションを作ります。分子動力学法といっても粒子間の相互作用は考えません。 具体的には、こんなアニメーションを作ります。 Ballistic版 Diffusion版 ソースは以下に置いておきます。 https://github.com/kaityo256/stringtext 方針 とりあえず文字を描きます。RubyならCairoを使うのが楽でしょう。やり方は「スパコンの落とし方」と同じです。もしCairoが入ってなければいれます。 require 'rubygems' require 'cairo' format = Cairo::FORMAT_RGB24 width = 400 height = 100 surface = Cairo::ImageSurface.new(format, width, height) con

    分子動力学法で一瞬文字が浮かび上がるアニメーションを作る - Qiita
  • クラスタリングによる迷路作成アルゴリズム - Qiita

    はじめに クラスタリングアルゴリズムという手法を使って迷路を作ります。この記事は昔、他の場所に書いた記事の転載です。コードはここに置いておきます。 https://github.com/kaityo256/clustering_maze クラスタリングとは 今日、「クラスタリング」というと、ほぼ教師無し学習におけるデータ分類を指すと思います。しかし、統計物理、特にモンテカルロ法でスピン系なんかを研究する(非常に狭い)界隈では「つながった要素をグループごとに分ける」という意味に使います。ここでは「クラスタリング」という言葉を後者の意味で使うのでご注意ください。 いま、AさんとBさんが友達だとします。またBさんとCさんも友達だとしましょう。ここで「友達友達もまた友達である」と定義すると、友達は同値類を作ります。いま、「誰と誰が友達か」のリストが与えられたとき、いくつかの友達グループができるこ

    クラスタリングによる迷路作成アルゴリズム - Qiita
  • N芒星の数学的側面 - Qiita

    はじめに プログラムの講義で「N芒星の描画」をやりました。五芒星や七芒星はうまく描けますが、Nが偶数の時には工夫が必要で、特にN=6の時には 一筆書きの 六芒星はうまく描けません。そのあたりを説明してみます。「九九の一の位」の数学的側面と質は同じ問題です。 コード まず、N芒星を描画するコードを書いてみます。こんな感じです。 from math import cos, sin, pi from PIL import Image, ImageDraw from IPython.display import display def star(N, k): im = Image.new("L", (256, 256), 255) draw = ImageDraw.Draw(im) cx = 128 cy = 128 r = 96 draw.ellipse((cx - r, cy - r, cx

    N芒星の数学的側面 - Qiita
  • 整数を419378回インクリメントするとMacのg++が死ぬ - Qiita

    はじめに C++でアスタリスクをつけすぎると端末が落ちるという記事を書いたら、@tanakhさんから ソースコードのサイズには線形なんじゃなかろうか / 他5コメント https://t.co/Rm9c0ceWpa “C++でアスタリスクをつけすぎると端末が落ちる - Qiita” https://t.co/JrrLZu8WT8 — Hideyuki Tanaka (@tanakh) 2018年2月23日 というコメントがありまして。 なるほど確かにソースコードのサイズはアスタリスクの数の二乗に比例するので、コンパイル時間とソースコードのサイズの関係は線形だなぁ、と。 ただ、内部で型のテーブルとか作ってると思うんで1、これが単純にソースコードのサイズの問題なのか調べるために、今度はもう少し簡単なコードを書いてみて、コンパイル時間やコンパイラが利用するメモリを調べてみようと思ったわけですよ。

    整数を419378回インクリメントするとMacのg++が死ぬ - Qiita
  • Dockerファイルがビルドできなかったのでコンパイラをいじめる - Qiita

    TL;DR ある環境でビルドできたDockerfileが別の環境でビルドできなかったのは、メモリ制限のせいだった はじめに 理研シミュレータというシミュレータがあります。 RIKEN-RCCS/riken_simulator これは、「京」の次のスーパーコンピュータ「富岳」が採用しているアーキテクチャ「Fujitsu A64FX」のシミュレータです。Gem5というアーキテクチャシミュレータがあり、それにARM AArch64を実装したものです。 これを使うと、AArch64のプロセッサレベルでのシミュレートができるのですが、ビルドに結構手間がかかります。なので、その「手間」をまとめたDockerファイルを作りました。 kaityo256/aarch64env Dockerファイルはこんな感じです。 FROM ubuntu:18.04 MAINTAINER kaityo256 ENV USE

    Dockerファイルがビルドできなかったのでコンパイラをいじめる - Qiita
  • 線形代数を学ぶ理由 - Qiita

    はじめに 少し前(2019年4月頃)に、「AI人材」という言葉がニュースを賑わせていました。「現在流行っているディープラーニングその他を使いこなせる人材」くらいの意味だと思いますが、こういうバズワードの例の漏れず、人によって意味が異なるようです。併せて「AI人材のために線形代数の教育をどうするか」ということも話題になっています。 線形代数という学問は、来は極めて広く、かつ強力な分野ですが、とりあえずは「行列とベクトルの性質を調べる学問」と思っておけば良いです。理工系の大学生は、まず基礎解析とともに線形代数を学ぶと思います。そして、何に使うのかわからないまま「固有値」や「行列式」などの概念が出てきて、例えば試験で3行3列の行列の固有値、固有ベクトルを求め、4行4列の行列の行列式を求めたりしてイヤになって、そのまま身につかずに卒業してしまい、後で必要になって後悔する人が出てきたりします(例え

    線形代数を学ぶ理由 - Qiita
    alcus
    alcus 2019/12/10
  • printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita

    def check(n) s = "*"*n f = open("test.cpp","w") f.puts <<EOS #include <cstdio> int main(){ (#{s}printf)("Hello World\\n"); } EOS f.close() return system("clang++ test.cpp") end check(ARGV[0].to_i) $ ruby check.rb 10000 clang: error: unable to execute command: Illegal instruction: 4 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 10.0.1 (clang

    printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
  • 定数配列がからんだ定数畳み込み最適化 - Qiita

    はじめに 配列を定数(const)として宣言した場合や、事実上定数とみなせる場合、コンパイラが定数畳み込み最適化をできるか確認する。 定数畳み込みについて コンパイラの最適化には様々なものがあるが、その最も簡単なものに「定数畳み込み」がある。これは、コンパイル時に定数であることがわかっている式を単純化するものだ。 例えば、こんなコードを見てみる。 const double G = 9.8; const double dt = 0.01; const int N = 10000; void func(double v[N]) { for (int i = 0; i < N; i++) { v[i] += G * dt; } } 速度の配列vを受け取り、そのすべての要素に重力定数Gと時間刻みdtの積G*dtを加算するコードだ。このコードを見て、「毎回メモリからGとdtの値を取ってきて、掛け算し

    定数配列がからんだ定数畳み込み最適化 - Qiita
  • 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をマルコフ連鎖モンテカルロで解いてみた。 - Qiita

    はじめに 「サイゼリヤで1000円あれば最大何kcal摂れるのか」を量子アニーリング計算(Wildqat)で解いてみた。 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 「サイゼリヤで1000円あれば最大何kcal摂れるのか」を整数計画法ソルバー(PuLP)で解いてみた。 N番煎じですが、これらの記事を見てマルコフ連鎖モンテカルロで解いてみました。コードは以下に置いてあります。 https://github.com/kaityo256/saizeriya_mc 方針 全メニューについて、「注文する/しない」を0/1の状態ベクトルとして、そのベクトルについて最適化をかけます。カロリーをエネルギーとして、カロリーを最大化するようにします。試行は「メニューの追加/削除」の二種類です。状態の更新はメトロポリス法を使います。すると、メニューの追加試行は

    「サイゼリヤで1000円あれば最大何kcal摂れるのか」をマルコフ連鎖モンテカルロで解いてみた。 - Qiita
    alcus
    alcus 2019/05/20
  • mallocの動作を追いかける(環境変数編) - Qiita

    はじめに malloc沼、ハマってますか?>挨拶 僕はどっぷりハマってもうイヤになりました。必要に応じてメモリを確保し、解放するという、一見単純な作業はとても奥が深いです。 特にglibc mallocはかなりアドホックなことをやっており、チューニング可能なパラメータがたくさんあります。それらのパラメタは、多くの一般的なアプリケーションでそこそこの性能が出るように選ばれていますが、アプリケーションによっては相性が悪く、性能が劣化する場合があります。その場合、mallocに関連するパラメタをいじる必要がでてきますが、これがなかなか面倒だし、設定したことでどんな変化が表れるかがわかりにくいことが多いです。 稿では、環境変数から設定可能なmalloc関連のパラメタをいくつか紹介します。特に、環境変数を設定することで振る舞いがなるべくわかりやすく変わるサンプルコードを用意しました。 malloc

    mallocの動作を追いかける(環境変数編) - Qiita
  • 渋滞を再現する数理モデル「最適速度模型」を触ってみる - Qiita

    はじめに 今年(2019年)のゴールデンウィークは10連休だそうで、高速道路が相当混むことが予想される。車での移動において、渋滞は頭の痛い問題だ。では、渋滞はなぜ起きるのだろうか? よく言われるのが「坂道が始まるところで渋滞が起きる」というものだ。坂道では知らないうちに車のスピードが落ちる。すると車間距離が縮まることで、後続の車がブレーキを踏み、それを見たさらに後ろの車がブレーキを・・・と連鎖して、最終的に渋滞になると説明される。また、ドライバーなら合流地点があったり、車線が狭くなるところなどでよく渋滞が起きることも経験的に知っているだろう。合流地点や車線が狭くなるところは流量が落ちるから詰まって渋滞になりやすそうである。 しかし、これらは「渋滞がどこで起きやすいか」ということを説明しているに過ぎず、「渋滞がなぜ起きるか?」ということの答えにはなっていない。そもそも渋滞はなぜ起きるのか?何

    渋滞を再現する数理モデル「最適速度模型」を触ってみる - Qiita
  • mallocの動作を追いかける(mmap編) - Qiita

    はじめに malloc動画見てますか?>挨拶 こんな記事に興味持つような人はみんなmalloc動画見てる人たちばかりだと思いますが、僕はmalloc動画見るまでは「え?メモリの管理ってOS側じゃなくてユーザランドでやってたの?」って感じでした。ここでは僕みたいなmalloc初心者のために、mallocの動作を実際に追いかけて見ようと思います。 mallocの動作を追いかける(mmap編) ← イマココ mallocの動作を追いかける(prev_size編) mallocの動作を追いかける(main_arenaとsbrk編) mallocの動作を追いかける(fastbins編) mallocの動作を追いかける(マルチスレッド編) mallocの動作を追いかける(環境変数編) mallocについて mallocについては、それこそmalloc動画とか、このへんを見ていただければと思うけれど、要

    mallocの動作を追いかける(mmap編) - Qiita
  • C++でアスタリスクをつけすぎると端末が落ちる - Qiita

    ならint *型へのポインタになります。 これ、int *****pといくらでも付けられるわけですが、いったいいくつまでつけられるんでしょうか。これってトリビアになりませんかね。 実際に調べてみた。 スクリプト こんな適当なスクリプトを書く。 n = 100 if ARGV.size > 0 n = ARGV[0].to_i end puts "#include <cstdio>" puts "int main(void){" puts "int #{"*"*n}a;" n.times do |i| puts "#{"*"*i}a = new (int#{"*"*(n-i-1)});" end puts <<EOS printf("%x\\n",a); } EOS

    C++でアスタリスクをつけすぎると端末が落ちる - Qiita
  • UTF-8からSJISに文字化けすると糸偏の漢字がよく出てくる - Qiita

    はじめに Twitterで、文字化けネタを幾つかつぶやきました。 サッちゃんはね サチコっていうんだ ほんとはね だけど ちっちゃいから 自分のこと SJISで 保存するんだよ おかしいな 繧オ繝ちゃん — ロボ太 (@kaityo256) 2017年10月10日 「私 魔女のキキです。こっちはSJISの繧ク繧ク」 — ロボ太 (@kaityo256) 2018年1月6日 UTF-8「もしかして…」 SJIS「私達…」 「「入れ替わ縺縺ヲ繧九≦縲懶シ†」」 — ロボ太 (@kaityo256) 2018年2月13日 どれもUTF-8で保存された文字をSJISとして解釈したための文字化けを表現したものですが、パッと見で「糸偏の漢字が多いな」ということがわかるかと思います。なぜそうなるかを簡単に説明してみようと思います。 なお、文字コードはいろいろ面倒なので、ここではざっくりとしたことしか言い

    UTF-8からSJISに文字化けすると糸偏の漢字がよく出てくる - Qiita
  • a/(b+c)+b/(c+a)+c/(a+b)=4の自然数解(a,b,c)を求める - Qiita

    はじめに ちょっと前に、こんな問題が話題になった。 ネタ元はどこか知らないが、僕は以下のサイトで知った。 適当に和訳してみた。 元の出題は果物とか使ってて「数学パズルです〜」みたいな顔をしているが、これは典型的ディオファントス方程式で、途中で楕円曲線が出てくるガチな問題になっている。解説は先のサイトに書いてあるが、いくつか天下りな箇所があるので、そこをちょっと丁寧に解説しつつ、Rubyで解を探してみる。 方針 問題は以下の通り。 上記を満たす「自然数」の組(a,b,c)を求める。すぐに分かる通り、もしひとつの解の組(a,b,c)が求まったら、それぞれ定数倍した(ta, tb, tc)も解となる。従って、大事なのは(a,b,c)の比であり、例えば$c=1$に固定して、(a,b)の有理数解を求める、という問題と等価である。従って、この問題の自由度(実質的な変数の数)は2となる。 さっきの式の分

    a/(b+c)+b/(c+a)+c/(a+b)=4の自然数解(a,b,c)を求める - Qiita
    alcus
    alcus 2017/09/06
  • マサカリの起源について - Qiita

    はじめに 技術的な指摘をすることを「マサカリを投げる」と呼ぶ。ネットスラングにありがちだが、この言葉の意味は常に変動しており、地域、人によっても定義が異なる。現在では、何か自分で詰めが甘いことを書く時に「修正、批判コメント歓迎」の意味で「マサカリをお願いします」と言ったり、誰かが適当なことを書いてコメントやブコメで炎上している時に「さっそくマサカリ投げられてて草」というような使われ方をしているようだ。 この「マサカリ」という言葉がいつ、どのような形で使われるようになったのか、できる範囲で調べてみた。 2006年以前 僕は1990年代の後半から2000年の前半にかけて、Niftyのフォーラムや、いくつかの技術系メーリングリストに登録していたが、当時この意味での「マサカリ」という言葉を目にした覚えがない。とりあえず当時所属していて、現在過去ログが見られるDelphiやBCB-MLの過去ログで検

    マサカリの起源について - Qiita
    alcus
    alcus 2017/03/23
  • SVN脳患者から見たGit - Qiita

    はじめに 僕はSVN脳患者である。SVN脳とは、SubversionのポリシーでGitを理解しようとしたり、使おうとしたりする病気で、中年プログラマに発症例が多い(気がする)。それまでSubversionを使ったことがない人がGitを使う場合には問題にならなかったことが、SVN脳患者がGitを使おうとすると問題になることが多い。特に、SVN脳を発症したプログラマは、そうでない人に比べてGit学習コストが爆発的に増大する。最初からGitに触れた人は、なぜSVN脳患者がGitを理解できないのかを理解できないだろう。 これは、SVN脳患者である僕1が、なぜGitを長いこと理解できなかったかをつらつら書くポエムである。病人の書いたポエムであるからして、所謂マサカリの類はほどほどにしていただきたい。 以下、「SVN脳患者」という大きな主語を多用するが、要するにこれは僕のことであり、言うまでもなくSu

    SVN脳患者から見たGit - Qiita