March 15, 2011

放射線量の単位に関する個人的まとめ。(変換スクリプト付き)

放射線量について報道されたりWeb上で散見する、

ミリシーボルト毎時(mSv/h)
マイクロシーボルト毎時(μSv/h)
ナノシーボルト毎時(nSv/h)
ナノグレイ毎時(nGy/h)

…といった単位を「ミリシーボルト毎年(mSv/year)」に換算するスクリプトを組んでみた。
計算時の定数として、JNFL環境モニタリング 解説( http://www.jnfl.co.jp/monitoring/kaisetsu/spatial-nGyh.html )に記載の

1 Gy/h = 0.8 Sv/h

…という値を用いている。

「放射能汚染が怖い」という人たち向けに危険度の比較対象として、

放射能関連施設従事者の上限被爆量(年平均):50 mSv/year
深刻な健康被害が見込まれる被爆量(年平均):100 mSv/year

…というのを挙げておく。
不安があれば各市町村の役所などに連絡して除染処理の相談などをすればいいと思う。

報道したり見聞きしたりした放射線量の値を下のテキスト入力欄に入力し、その値についている単位を下の選択ボックスから選んでボタンを押してもらえればその値の年間換算した「ミリシーボルト毎年(mSv/year)」がポップアップで表示される。

なおPCからしか使えないはずなのでご了承願いたい。

  
Posted by tkturbo at 17:44Comments(0)TrackBack(0)プログラミング

May 31, 2010

個人的なBookmarklet

最近、画面が明るすぎて目が痛くなることが多いので、画面の背景を黒く、文字列を白く表示するBookmarkletを書いてみた。

以下、ソース。






追記:上のBookmarkletだとstylesheetを設定している内部Elementの色が変わらないので、対応版。







さらに追記:「Bookmarklet」を「Scriptlet」と誤記してしまっていたので修正。ついでに<a>タグは背景色青になるようにしてみた。





  
Posted by tkturbo at 16:52Comments(0)TrackBack(0)プログラミング

April 15, 2010

Ajax関連の個人的メモ。

XMLHttpRequest#sendの引数「form」には「name=value」形式のRequestParameter文字列をセットする。
日本語文字列を送信するには「encodeURI」関数でURLエンコードしてやればOK。

具体的な記述例:

var url="/somecgi";
var method = "POST";
var isAsynchronous = true;

var httpEquiv = "Content-Type";
var content = "application/x-www-form-urlencoded";

var japanese = "あいうえお";
var english = "ABCDE";

var form = "val1="
+ encodeURI(japanese)
+ "&val2="
+ encodeURI(english);

xmlHttpRequest.open(method, url, isAsynchronous);
xmlHttpRequest.setRequestHeader(httpEquiv, content);
xmlHttpRequest.send(encodeURI(form));
  
Posted by tkturbo at 16:35Comments(0)TrackBack(0)etc(from_2005-12-25)

August 21, 2009

タッチタイピング練習スクリプト。

javascriptで書いてみた。かな入力の練習スクリプトだったりするw

# Operaではなぜか不正な動作をするので注意orz

今回はとりあえずホームポジションの練習だけ。

たぶん、飽きるまでバージョンアップをしていく予定。

「start」ボタンを押すと始まるが、100回正しく打鍵できないと終了できないので注意w


お題:
回答:




ソースが見たければ以下からどぞノシ

  続きを読む
Posted by tkturbo at 01:44Comments(0)TrackBack(0)

July 17, 2009

「ラングトンのアリ」

ラングトンのアリの描画 - どう書く?org

ラングトンのアリを描画してください。ラングトンのアリは、以下のような動きをする、セル・オートマトンです。(Wikipediaより引用)
- 黒いマスにアリがいた場合、90°右に方向転換し、そのマスの色を反転させ、1マス前進する。
- 白いマスにアリがいた場合、90°左に方向転換し、そのマスの色を反転させ、1マス前進する。
詳しくはWikipedia等で調べるか、参考ページに拙作のデモがありますのでご覧下さい。

参考: JavaScriptでラングトンの蟻

wikipedia : ラングトンのアリ

出題元のjavascriptが読み込み時重いので、改変してみた。

てなわけで↓以下をごろうじろ。



…その内メモリやCPUの空き容量を食い尽くすので放置しすぎ注意☆


ソースを見たい方は以下の「続きを読む」からどぞ↓
  続きを読む
Posted by tkturbo at 03:17Comments(0)TrackBack(0)プログラミング

June 23, 2009

ナンバープレース or 数独 の解法スクリプト - 改訂版

一部バグやら、問題を解くために推測をするロジックを追加。
たぶんこれでパーペキ。













...で、例によって以下はソース。

2009-06-23:一部修正
  続きを読む
Posted by tkturbo at 01:22Comments(0)TrackBack(0)プログラミング

June 20, 2009

ナンバープレース or 数毒 の開放スクリプト

表題のとおり、NumberPlaceないし数毒と呼ばれるパズルを解くプログラムを書いてみた。
下の9×9のマス目にお題となる数字を入れて「test」ボタンを押すと問題を解く形式。









...あまりきれいではないが、プログラムソースが見たい人は下の追記部分を参照のこと。
  続きを読む
Posted by tkturbo at 11:49Comments(0)TrackBack(0)プログラミング

May 26, 2009

10進数→16進数

おまけ。

この記事の対になるやつ。

DEC:
HEX:

…以下がソース。

<div sytle="display:none">
<script type="text/javascript"><!-- //
/* --------------------------------------------------------------------------- */
String.prototype.toCharArray=function(){
var arr = new Array(this.length);
for(var i = 0; i < this.length; i++){ arr[i] = this.charAt(i); };
return arr;
};
/* --------------------------------------------------------------------------- */
function DivisionHelper(strnum){
this.strnum=strnum;
};
/* --------------------------------------------------------------------------- */
DivisionHelper.prototype={
strnum : "",
quotient : "",
residue : 0,
divideBy : null
};
/* --------------------------------------------------------------------------- */
DivisionHelper.prototype.divideBy=function(div){
var arr = this.strnum.toCharArray();
this.quotient = "";
var strcalc = "";
for(var i = 0; i < arr.length; i++){
strcalc += arr[i];
var numc = parseInt(strcalc,10);
if(numc < div){
this.quotient+="0";
continue;
}else{
this.quotient+=""+(Math.floor(numc/div));
strcalc = ""+(numc%div);
}
}
this.quotient = this.quotient.replace(/^0+/, "");
if(this.quotient.length < 1) this.quotient="0";
this.residue= strcalc.length > 0 ? parseInt(strcalc,10) : 0;
return this;
};
/* --------------------------------------------------------------------------- */
function decimal2hex(decimalstr){
var quotient = decimalstr;
var template = "0123456789ABCDEF";
var hexstr = "";
while(true){
var dh = new DivisionHelper(quotient);
dh.divideBy(16);
hexstr = template.charAt(dh.residue) + hexstr;
if(dh.quotient == "0") break;
quotient = dh.quotient;
}
hexstr = hexstr.replace(/^0+/, "");
return hexstr == "" ? "0" : hexstr;
};
/* --------------------------------------------------------------------------- */
var decRegexp=/^([0-9])+$/;
/* --------------------------------------------------------------------------- */
function executeDec2Hex(){
var val = document.getElementById("decInput").value;
if(!val.match(decRegexp)){
alert("unmatch:" + val);
return;
}
document.getElementById("hexOutput").value="0x"+decimal2hex(val);
};
/* --------------------------------------------------------------------------- */
// --></script>
</div>
<div>
<div>DEC:</div>
<input type="text" id="decInput" style="width:100%"></input>
</div>
<div>
<input type="button" onclick="javascript:executeDec2Hex()" value="transform" />
</div>
<div>
<div>HEX:</div>
<input type="text" id="hexOutput" style="width:100%"></input>
</div>


…これまた何桁まで計算できるかはjavascriptの実装者に聞いてくれw  
Posted by tkturbo at 00:47Comments(0)TrackBack(0)プログラミング

16進数→10進数

またもや「どう書く?org( http://ja.doukaku.org/ )」のお題から。

16進数を10進数表記に直すというもの。

HEX:
DEC:


・・・以下がソース。

<div style="display:none">
<script type="text/javascript"><!-- //
/* --------------------------------------------------------------------------- */
String.prototype.toCharArray=function(){
var arr = new Array(this.length);
for(var i = 0; i < this.length; i++){ arr[i] = this.charAt(i); };
return arr;
};
/* --------------------------------------------------------------------------- */
function add(strnum1, strnum2){
var arr1 = strnum1.toCharArray().reverse();
var arr2 = strnum2.toCharArray().reverse();
var max = (arr1.length > arr2.length ? arr1.length : arr2.length) - 1;
var strsum = "";
for(var i = 0, up = 0; i <= max; i++){
var c1 = i < arr1.length ? parseInt(arr1[i],10) : 0;
var c2 = i < arr2.length ? parseInt(arr2[i],10) : 0;
c1 += up;
c1 += c2;
up = Math.floor(c1/10);
c1 %= 10;
strsum = c1 + strsum;
if(i == max) strsum = up+strsum;
}
return strsum;
};
/* --------------------------------------------------------------------------- */
function sum(arr){
var strsum = "";
for(var i = 0; i < arr.length; i++){
strsum = add(strsum, arr[i]);
}
return strsum.replace(/^0*/,"");
};
/* --------------------------------------------------------------------------- */
function multiple(a, b){
var arr_a = a.toCharArray().reverse();
var arr_b = b.toCharArray().reverse();
var arr_c = new Array(arr_b.length);
var max = arr_a.length-1;
for(var i = 0, zeropad=""; i < arr_b.length; i++,zeropad+="0"){
var str_c = "";
for(var j = 0, up=0; j<arr_a.length; j++){
var c = (parseInt(arr_a[j], 10) * parseInt(arr_b[i],10));
c+=up;
up = Math.floor(c/10);
c %= 10;
str_c = c+str_c;
if(j==max && up>0) str_c=up+str_c;
}
str_c+=zeropad;
arr_c[i] = str_c;
}
return sum(arr_c);
};
/* --------------------------------------------------------------------------- */
function hex2decimal(hexstr){
var template = "0123456789ABCDEF";
var arr = hexstr.toUpperCase().substring(2).toCharArray().reverse();
for(var i = 0, hex="1"; i < arr.length; i++, hex=multiple(hex,"16")){
var numc = "" + template.indexOf(arr[i]);
var mult = multiple(numc, hex);
arr[i] = mult;
}
var decstr=sum(arr);
if(decstr.length==0) desctr="0";
return decstr;
};
/* --------------------------------------------------------------------------- */
var hexRegexp=/^0x([0-9A-Fa-f])+$/;
/* --------------------------------------------------------------------------- */
function executeHex2Dec(){
var val = document.getElementById("hexInput").value;
if(!val.match(hexRegexp)){
alert("unmatch:" + val);
return;
}
document.getElementById("decOutput").value=hex2decimal(val);
};
/* --------------------------------------------------------------------------- */
// --></script>
</div>
<div>
<div>HEX:</div>
<input type="text" id="hexInput" style="width:100%"></input>
</div>
<div>
<input type="button" onclick="javascript:executeHex2Dec()" value="transform" />
</div>
<div>
<div>DEC:</div>
<input type="text" id="decOutput" style="width:100%"></input>
</div>

…とりあえず、300桁や400桁は即変換可能なわけだが、最大何桁まで変換できるかはjavascriptの配列や文字列の最大長によるので私はよくわららんw
  
Posted by tkturbo at 00:32Comments(0)TrackBack(0)プログラミング

May 22, 2009

ケブンッリジ関数

詳細は以下↓

「確かに“読めてしまう”コピペに2ch住人が「人間すげー」と驚く」
http://www.itmedia.co.jp/news/articles/0905/08/news021.html

以下、ソース。


<script type="text/javascript"><!-- //
/* ---------------------------------------------------------------- */
function randomSort(a,b){ return (Math.random()-0.5); };
/* ---------------------------------------------------------------- */
Array.prototype.push2=function(obj){ this.push(obj); return this; };
/* ---------------------------------------------------------------- */
Array.prototype.unshift2=function(obj){
this.unshift(obj);
return this;
};
/* ---------------------------------------------------------------- */
Array.prototype.shuffle=function(){ return this.sort(randomSort); };
/* ---------------------------------------------------------------- */
Array.prototype.concatToString=function(){
var text="";
for(var i=0; i<this.length; i++){ text+=this[i]; }
return text;
};
/* ---------------------------------------------------------------- */
var regexp=/[  \??\!!\..。。\r\n\t]/;
/* ---------------------------------------------------------------- */
String.prototype.tokenize=function(regexp){
var arr=new Array(1);
arr[0]="";
for(var i=0,t=0;i<this.length;i++){
var c=this.charAt(i);
if(c.match(regexp)){
arr.push2(c).push2("");
t+=2;
}else{ arr[t]+=c; }
}
return arr;
};
/* ---------------------------------------------------------------- */
String.prototype.toCharArray=function(){
var arr = new Array(this.length);
for(var i=0; i<this.length; i++) arr[i]=this.charAt(i);
return arr;
};
/* ---------------------------------------------------------------- */
String.prototype.applyCambridgeMethod=function(){
if(this.length<=3)return this;
var max=this.length-1;
var arr = this.toCharArray();
return arr.slice(1,max).shuffle()
.unshift2(arr[0]).push2(arr[max]).concatToString();
};
/* ---------------------------------------------------------------- */
function transform(){
var ta_input=document.getElementById("ta_input");
var ta_output=document.getElementById("ta_output");
var arr = ta_input.value.tokenize(regexp);
for(var i = 0; i< arr.length; i++){
arr[i]=arr[i].applyCambridgeMethod();
}
ta_output.value=arr.concatToString();
};
// --></script>
</div>
<textarea id="ta_input" style="width:100%;height:50%">こんにちは みなさん おげんき ですか? わたしは げんき です。
この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか
にんげん は もじ を にんしき する とき その さしいょ と さいご の もじさえ あっていれば
じゅんばん は めちゃくちゃ でも ちゃんと よめる という けんきゅう に もとづいて
わざと もじの じゅんばん を いれかえて あります。
どうです? ちゃんと よめちゃう でしょ?
ちゃんと よめたら はんのう よろしく</textarea>
<div style="height:20px">
<input type="button" onclick="javascript:transform()" value="transform" />
</div>
<textarea id="ta_output" style="width:100%;height:50%" value=""></textarea>
  
Posted by tkturbo at 03:13Comments(0)TrackBack(0)プログラミング

November 18, 2008

「恋愛ジャンキー」???

livedoor ニュース - 結婚しても「恋」がしたい!【独女通信】

久々に「読んでて吐き気を催す記事」だったので。

「今度合コンに行きたいんだけど、予定はないの?」と、友人の啓子さん(36歳)から連絡を受けた百合(35歳)さんは驚いた。なぜなら啓子さんは、小学生の娘がいる立派な既婚女性。そこで、今さら合コンで何を求めているのかと問うと、彼女は「もう一度恋がしてみたい」と真剣に訴えたのだそうだ。


恋愛体験を求めるあまり、10歳年下の男性と関係を持ってしまったというのは、同じく小学生2人の子供を持つ弥生さん(38歳)。相手は、職場で知り合った取引先の独身男性だ。


↑自分の行為に罪悪感がないならカミングアウトすればよろし。

その結果は修羅場となるだけだろうが。

通常これらの行為は「不貞行為」として離婚の原因になったりする。

一方的な浮気による離婚は、浮気した側(およびその浮気相手)に慰謝料が請求されるのだが、そういった事例をこの記事の記者は知らないのか?あえて無視しているのか?

知らないのなら無知を恥じるべき。「一般常識」について30年勉強してから出直してきて欲しい。

知っていて書いてるなら、「不貞行為」の幇助。記者の正気を疑う。


弥生さんは、自らを「恋愛ジャンキー」と称して笑った。


↑違います。

「自分の欲望をコントロールできない」という症状の、単なる精神異常者です。

精神科のお世話になることを推奨します。  
Posted by tkturbo at 09:53Comments(0)TrackBack(0)etc(from_2005-12-25)

June 16, 2008

「猟奇的な独女」!?

livedoor ニュース - 【独女通信】「猟奇的な独女」の言い分って?

その後は例えば、仁さんが間違って里香さんのタオルを使ってしまったり、靴を誤って踏んでしまったなど、ささいなことで里香さんのパンチが飛んでくるようになった。しかも最近ではパーではなくグーになり、体ではなく顔にもお見舞いされるようになり、そのおかげで愛用していた眼鏡のフレームがゆがんでしまったそうだ。今では仁さんは里香さんの目つきを見ただけで、暴力の気配を感じ取れるようになったと語る。

「なんていうか……、目が笑いながらも据わってるんです。こういう時は大抵僕に対して何か不満がある時。暴力を振るわれる前に話題を変えるか、逃げることにしています(苦笑)」


↑なんていうか……

あからさまにDVです、本当にあり(ry

仁くん、逃げて逃げてーΣ(・口・)

やられっ放しの仁さんに対し、一方の里香さんというと――。
「男性が女性を殴るなんて論外中の論外!でも女性は力が弱いから、男性は殴られても痛くないはず。ぶつのはあくまで、コミュニケーションなんです。彼はそれをわかってくれていると思います」



↑「殴られても痛くないはず」って、そんなわけあんめーが#

「でも私、女性は絶対殴りませんよ!自分より弱いものに暴力を振るうなんて、サイテーの人間がやることです。強いものに立ち向かってこそ、行為は正当化されると思っています」


↑記事中の仁くんは「目つきを見ただけで、暴力の気配を感じ取れる」ほど精神的な抑圧を日常的に受けてるわけなんだが。
「精神的に」弱者となっている相手に暴力を振るうのは正当化されてるのかね?

まあいずれにせよこのオンナ、サイテーである。
  
Posted by tkturbo at 09:49Comments(0)TrackBack(0)etc(from_2005-12-25)

June 04, 2008

今、オークションがアブナイ?

オークション次点詐欺が怖い - [Z]ZAPAブロ〜グ2.0

最近のオークション詐欺は、出品者を装った振り込め詐欺にまで発展していたのですね。



話の流れ:

1.[A]がYahoo!オークションに品[X]を出品。

2.[B]が入札。

3.最終的に[C]が落札。

4.オークション終了後、[B]の元に「オレオレ、[A]だけど![C]にキャンセルされた!代わりに買って!」と[A?]からメール。

[[ 今ココ ]]

5.[B]>「[X]は欲しいし、とりあえず代金振り込んでみるか」

6.寝てもさめても[A]から品[X]は届かない。

7.[B]>「詐欺ぢゃんっ!」


…という手順で代金を騙し取る詐欺が流行ってるらしい。

詳しくはこちら↓
ネットDEけいしちょう ネットオークション次点詐欺

ちなみに、上記「話の流れ」では被害者は[B]決定なわけだが、加害者が[A]であるとは限らない。

IDからメールアドレスを推測した悪人[A?]=[D]が本当の加害者である。

言ってみれば「小額・Web版オレオレ詐欺」みたいなものか。

「ID≒メールアドレス」となってるようなメンバー登録システムがそもそも問題な訳なんだが、それを逆手にとって詐欺を働こうって連中もよく考えやがるなぁと。


…これを良い子のみんなは引っかかるなよ!マネすんなよっ!
  
Posted by tkturbo at 15:06Comments(0)TrackBack(0)etc(from_2005-12-25)

June 03, 2008

竜頭蛇尾なダイエット(笑)

livedoor ニュース - 【ダイエット通信】ありえない場所の贅肉退治!〜オーバー30のダイエット〜

前半は脇腹・背中・二の腕のダイエット本を紹介しているのでまだいいのだが、問題は後半。

短時間でも継続が必要な運動より、手っ取り早く隠したい!方は、こんな工夫をしてみてはいかがでしょうか?


この文言以降、隠すための衣服選びのポイントが書かれている。

一言言いたい。

「そこで隠すから贅肉の増殖が止まらないのだ」

と。

これじゃダイエット推進記事じゃなくて肥満推進記事になってまうど#
  
Posted by tkturbo at 11:00Comments(0)TrackBack(0)etc(from_2005-12-25)

May 13, 2008

安全の代償

Terrorism as a Tax

読んでみて非常に納得。

「快適な暮らし」=「安全」+「利便性」

と定義してみると、



・Aが「快適な暮らし」を満喫する。

・BがテロによってAの「安全」を脅かす。

・Aの「快適な暮らし」が阻害される。

・Aは「安全」を確保するためにテロ対策を徹底する。

・Aの「安全」が回復する。

・トレードオフとしてAの「利便性」が阻害される。

・結果Aの「快適な暮らし」が長期にわたって阻害される。

・「Aの『快適な暮らし』を奪う」という意味でBのテロは完遂される。


…てなことが書いてある。

桶屋が儲かる話じゃないけど、「安全」を得る替わりにさながら税金のように「利便性」を失うという意味で「Terrorism as a Tax」なわけね。

Schneier氏はこの記事の中で自身の別記事からこんな主旨の文を引用している。

「攻撃者のいない世界ではすべての人間がもっと快適に暮らせるだろう。しかし私たちの暮らす世界には攻撃者がいて、攻撃から身を守ることとそれに対する代償を支払うことは避けることができないことなのだ」


元記事はアルカイダによる無差別テロを題材に書いているが、テロに限らずいろんな局面に拡大解釈できるような。
  
Posted by tkturbo at 17:44Comments(0)TrackBack(0)etc(from_2005-12-25)

March 31, 2008

太正浪漫堂& サクラカフェ閉店+ α

『太正浪漫堂&Sakura Cafe』の閉店終了について

2008/03/30、閉店してしまいました。

日中は入場が整理券制になってたため入れませんでしたが、最後のクロージングイベントは運良く参加できました。

大勢のお客を収容するという目的の元、浪漫堂はショーケースや商品棚が取り払われ「ああ、終わってしまうのだな」と改めて実感させられたわけで。

イベントでは初代店主・3代目店主・現店主がそれぞれ挨拶を述べた後、入場した客・スタッフ全員で檄帝・御旗・地上の戦士を熱唱することで終了と相成りました。

現店主の挨拶に「『締め』をやらないでほしい。本当に終わってしまう気がするから。」というのがありましたが、水曜会は締めませんし終わらせません。

で、水曜会は次の部室を求めて流浪の旅に出るわけですが。

とりあえず次回4/2(水)の開催予定地はこちら↓にしてみようかと。
南池袋 Cafe Pause ( http://www.geocities.jp/cafe_pause_ikebukuro/ )

あ、晴れてたらその裏の南池袋公園で夜桜見物というのもオツかも試練。

なお、今後の候補地としてこんな↓店もあったりするのだが。
居酒屋うまいや ( http://www.toshimaku-town.com/mypage/ts025525 )

とりあえず部室探し一回目はcafeと名のつく方でやってみたいと思うです。

関係各位、よろノシ
  
Posted by tkturbo at 12:01Comments(0)TrackBack(0)etc(from_2005-12-25)