タグ: Tips

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScriptの乱数の精度の話

前回の記事で予告したとおり、今回はJavaScriptのMath.random()で生成できる乱数の精度の話。

前回の記事で、JavaScriptでは2^53未満の正整数を扱うことができるということがわかったから、今回の記事では2^53未満のランダムな正整数を生成してみる。

具体的には↓のようなコード。

var ub = Math.pow(2, 53), list = [];
for (var i = 0; i < 16; i++) {
  list[i] = Math.floor(Math.random() * ub).toString(2);
  while (list[i].length < 53) { list[i] = "0" + list[i]; }  // padding
}
window.alert(list.join("\n"));

続きを読む

JavaScript (ECMAScript) の整数の精度と乱数の精度について

久しぶりにJavaScript (というよりECMAScript) のネタ。今日はECMAScriptで扱える整数と乱数について。

ECMAScriptの数値 (Number) はIEEE 754の倍精度浮動小数点数であると仕様書に明記されている。

ECMAScript Language Specification 5th edition

4.3.19 Number value

primitive value corresponding to a double-precision 64-bit binary format IEEE 754 value.

(強調は引用者)

ECMAScript Language Specification 3rd edition

4.3.20 Number Type

The type Number is a set of values representing numbers. In ECMAScript, the set of values represents the double-precision 64-bit format IEEE 754 values including the special “Not-a-Number” (NaN) values, positive infinity, and negative infinity.

(強調は引用者)

なので、倍精度IEEE 754値の精度の範囲内であれば、桁落ちの心配をせずに整数として扱うことができる。

続きを読む

Keeperを使ってKeePass 2.xのデータをiPhoneで読む

[追記 (2013-03-10)] Keeperがカスタムフィールドに対応したので、XSLスタイルシートを修正して、改行を含まないカスタムフィールドはKeeperでもカスタムフィールドとして扱えるよう修正しました。この記事内のXSLスタイルシートは最新版に差し替えられています。

[追記 (2011-02-27)] KeeperがURLフィールドとアプリ内ブラウザに対応したので、XSLスタイルシートを修正してURLフィールドをメモ欄から独立させました。

KeePass Password Safeはさまざまな機能を持ったオープンソースのパスワードマネージャーで、Windowsの他にMacやLinuxでも使うことができる便利なソフトウェアです。

僕はKeePassを使うようになって以来、ほとんどのパスワードをKeePassで生成するランダムな文字列にして、それらを全部KeePassに放り込むようにしているので、今やKeePassは僕にとってなくてはならないソフトのひとつになっています。

そんなKeePassですが、今までiPhoneで使うことができなくてとても困っていました。一応、iKeepassMyKeePassというiPhoneアプリはあったのですが、どちらのアプリもKeePass 1.x系のファイルにだけ対応していて、僕が使っているKeePass 2.x系のファイルには対応していない模様… (MyKeePassは2.x系への対応を進めているようです。iKeepassは一向に日本のApp Storeでダウンロード可能にならない…)

以前はPCでこなしていた作業が最近次々とiPhoneに移っていく中で、パスワード管理だけが今までどうにもならず、あーでもないこーでもないと試行錯誤していたのですが、このほどKeeperというアプリを使ってiPhoneでKeePass 2.xのデータを扱う方法を発見したので紹介してみます。

もちろん脱獄は不要で、しかも無料の方法です。可能なのは読み取りだけですが、KeePass関連のiPhoneアプリが成熟してくるまでのつなぎとしては十分な方法でしょう。

続きを読む

[Concurrent Haskell] 無限リストが止まらない

HaskellのControl.Concurrent.Chanを使って、簡単な並行処理プログラムを作ろうとして試行錯誤したのでメモ。

Control.Concurrent.ChanはHaskellで並行処理をするときに使うことができるFIFOキューライブラリ。複数のスレッドからキューにデータを流し込んで、別のスレッドがそのデータを読み取って処理をしたりすることができる。

Control.Concurrent.Chanを使えば、スレッド間の排他処理とかを全く考えずに済むので、簡単に並行処理プログラムを書けるかと思っていたけど、処理終了時の扱いに悩んだので、ちょこちょこと試行錯誤してみた。

詳細は続きで。

続きを読む

NTFSについて調べたのでメモ

諸事情あってNTFSについて調べたので、自分なりに理解したところをメモ。

基本的には、

の二つのサイトに書いてあることから必要な部分を抜粋しているだけだけど、説明を省略してる部分もあるし間違ってる部分もあるかも。

続きを読む

XML (HTML) の特殊文字をエスケープするVimスクリプトを書いた

XMLやHTMLの5つの特殊文字 (&, <, >, ', ") を定義済みのエンティティ (&amp;, &lt;, &gt;, &apos;, &quot;) に変換するVimスクリプトを書いてみた。

5つの文字を置換するだけだから簡単そうに思えるけど、選択範囲だけを対象にしようとするとなかなか難しくて、今まで納得のいくものを作れずにいた。それが、たまたま今日挑戦してみたら、そこそこいい感じのスクリプトが書けたので、記念にブログポストしてみる。

vnoremap <Leader>e "xx:call <SID>EscapeXml('x')<CR>"xP

function s:EscapeXml(regname)
  let x = getreg(a:regname)
  let x = substitute(x, '&', '\&amp;', 'g')
  let x = substitute(x, '<', '\&lt;', 'g')
  let x = substitute(x, '>', '\&gt;', 'g')
  let x = substitute(x, "'", '\&apos;', 'g')
  let x = substitute(x, '"', '\&quot;', 'g')
  call setreg(a:regname, x)
endfunction

使い方やコードの解説は続きで。

続きを読む

[メモ] Xubuntu + Compiz

前回の更新からだいぶ時間が空いてしまった。FC2ブログでは一定期間記事を投稿していないと広告が入ってしまうようなので、メモ代わりのエントリーをポスト。

前回のエントリーでは、自分のPCにUbuntuを導入した話などをしたけど、結局、ごちゃごちゃとしているGNOMEが嫌になって、Xubuntuに乗り換えた。

Xubuntuはとても軽快なので満足しているんだけど、エフェクトとかがまったくなくてさびしいので、Compizを導入してみた。

「XubuntuにCompizなんて入れたら、せっかくの軽快さが台無しじゃんw」というツッコミはとりあえずスルー。

続きを読む

[R][メモ] 卒論で使った分析

卒論のためにRを使って行った分析をメモ。

やったことは、

  1. 3要因分散分析 (被験者間計画)
  2. 検出された交互作用を検定するために単純主効果検定
  3. 単純主効果の強さを測定するために効果量を計算 (イータ2乗)

統計のこともRのこともあまりよくわかっていないけど、少なくとも手元のデータではSPSSと同じ数値が出た。

続きを読む

[メモ] pLaTeX+dvipdfmxを使って作成したPDFファイルにフォントを埋め込む方法

たぶんやり方はたくさんあると思うけど、僕が卒論の原稿にIPAフォントを埋め込んだときに使った方法。

OSはWindowsで、TeXのプログラムはW32TeXをほぼそのままインストールしただけ。

基本的にはdvipdfmxを使ってPDFを作成する。dvipdfmとかを使ってもうまくいくかは知らない。

続きを読む

心理学用BibTeXスタイルファイルのバグ(?)

心理学学会の投稿規定に沿った形に整形してくれるBibTeXスタイルファイルに、beta_jecon2nonote.bstというものがある。Googleで検索しても開発者のサイトにしかヒットしないから、あまり使っている人は多くないのかな?

卒論を書くのにすごく愛用しているんだけど、先日バグ(?)らしきものを見つけたので、ちょっとブログで公開してみる。開発者にメールで伝えるべきか迷っているけど、バグなのか使い方が間違っているのかがいまいちわからないから躊躇しているところ。

詳細は続きで。

続きを読む

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。