2012年4月25日


保守作業をしていて、定義済みの変数名やDBカラム名にやむなく連番に付与して対処することがままあります。
例えば、あるテーブルのカラム名にcommentがあり、もう1つcomment列を追加する場合、単純に連番で対応したります。
その時に連番を付与するとしたら、どのように付けるのか? 既存の名称は変更出来ないものとする。

例1
comment
comment1

例2
comment
comment2

やはり例2のように、commentの次はcomment2にするのが一般的なのかと。
映画のタイトルを考えてみても、「エイリアン」の次は「エイリアン2」だし、「バイオハザード」の次は「バイオハザード2」である。「エイリアン」の次に「エイリアン1」とは付けない、それだと同じ物として扱いと思われてしまうのだから。
プログラムの変数名であってもこれと同じ考えで付ければいい。

既存の名称を変更可能であるということであれば、commentをcomment1に変更して
comment1
comment2
としてしまえば、名前+連番で処理するような時には便利である。

posted @ 1:52 | Feedback (1)

2012年4月7日

Javascriptに限らないのですが、コンピュータでは数学と違って誤差が発生するケースがあります。
これは、コンピュータが取り扱うデータは、ビット数の限られた有限のものだからです。
例えば、1÷3の結果である0.3333…という循環小数をコンピュータが正確に表すことはできません。

MathクラスのSinメソッドとCosメソッドについて
http://social.msdn.microsoft.com/Forums/ja/vsgeneralja/thread/fc03347d-c9a3-4e6f-b378-f781dd1d9ff4

下記の表は、各角度に対して左側SIN,COSが数学上での値、右側SIN,COSがコンピュータ(Javascript)での値となります。

角度

SIN

COS

SIN(角度*Math.PI/180)

COS(角度*Math.PI/180)

90

1

0

1

6.1232339957366e-17

180

0

-1

1.2246063538223773e-16

-1

270

-1

0

-1

-1.836909530733566e-16

360

0

1

-2.4492127076447545e-16

1


これに気が付いたのが、Javascriptでキャラクターを角度指定でとりあえず上下に動かすように作成していた時に、下方向から反転して上方向に移動したとたんに、キャラクターが横方向に動いてしまったからです。
Chromeでデバッグしてみると、COSが270度の時に本来0を想定していたのに、-1.836909530733566e-16という値が返ってきたために、x<0の条件で、角度が-90度されて180度の動きになってしまったのです。

function moveFish(no){
    // 移動量を求める
    var rot = fish[no].ang;
    var sp = fish[no].speed;
    dx = Math.cos(rot * Math.PI / 180) * sp;
    dy = Math.sin(rot * Math.PI / 180) * sp;

    fish[no].x += dx;
    fish[no].y += dy;

    var x = fish[no].x;
    var y = fish[no].y;

    if(x > (canvas.width-fish[no].image.width)){
        fish[no].ang += 90;
    }
    if(x < 0){
        fish[no].ang -= 90;
    }

    if(y > (canvas.height-fish[no].image.height)){
        fish[no].ang += 180;
    }
    if(y < 0){
        fish[no].ang -= 180;
    }
}

では、どうやって対処するのか?
今回の場合はキャラクターを画面に表示するのが目的なので、小数ではなく整数に変換します。
日経ソフトウェア5月号のHTML5ゲームプログラミング入門の記事によると「drawImage関数は小数を含む座標を渡してしまうと、処理が一気に数倍重くなります。これは小数を含む場合はアンチエイリシングをしてキレイに見せようとするためだと思われます。」と書いてあります。
このように処理速度も考慮しても整数化した方がいいわけです。

小数を整数化するメソッドとして代表的なものに、Math.floor、Math.ceil、parseIntですが、
これ以外にテクニックとして、論理演算(例 x | 0)を使って整数化する方法があります。
例では、ゼロで論理和を取ることで整数に変換します(Math.floor(x)とはマイナス時に違いがある)。
http://d.hatena.ne.jp/amachang/20070813/1186980089
また、Math.floor(x)を使うよりはブラウザによってはかなり高速になります。
http://d.hatena.ne.jp/htsign/20120211/1328970561
JavaScriptのビット演算の仕組みを理解する
http://d.hatena.ne.jp/mindcat/20091119/1258651717

■COS
rot = 90; //数学上では、1となる
alert(Math.cos(rot * Math.PI / 180))                  //6.1232339957366e-17
alert(Math.floor(Math.cos(rot * Math.PI / 180)))  //0
alert(Math.ceil(Math.cos(rot * Math.PI / 180)))    //1
alert(parseInt(Math.cos(rot * Math.PI / 180)))     //6
alert(Math.cos(rot * Math.PI / 180) | 0)             //1   

var rot = 270; //数学上では、0となる
alert(Math.cos(rot * Math.PI / 180))                  //-1.836909530733566e-16
alert(Math.floor(Math.cos(rot * Math.PI / 180)))  //-1
alert(Math.ceil(Math.cos(rot * Math.PI / 180)))   //0
alert(parseInt(Math.cos(rot * Math.PI / 180)))    //-1
alert(Math.cos(rot * Math.PI / 180) | 0)            //0

■SIN
var rot = 180; //数学上では、0となる
alert(Math.sin(rot * Math.PI / 180))           //1.2246063538223773e-16
alert(Math.floor(Math.sin(rot * Math.PI / 180)))  //0
alert(Math.ceil(Math.sin(rot * Math.PI / 180)))    //1
alert(parseInt(Math.sin(rot * Math.PI / 180)))     //1
alert(Math.sin(rot * Math.PI / 180) | 0)             //0

var rot = 360; //数学上では、0となる
alert(Math.sin(rot * Math.PI / 180))                  //-2.4492127076447545e-16
alert(Math.floor(Math.sin(rot * Math.PI / 180)))  //-1
alert(Math.ceil(Math.sin(rot * Math.PI / 180)))   //0
alert(parseInt(Math.sin(rot * Math.PI / 180)))    //-2
alert(Math.sin(rot * Math.PI / 180) | 0)            //0

   

結果からすると、正しい答えを出すのは、論理演算だけなんですね。
parseIntは、文字列を数値にする目的なだけあって、小数点以降を切るだけなので指数表示になると駄目ですね。

東大生が教えるビジュアル数学 三角関数
http://www24.atpages.jp/venvenkazuya/math1/trigonometric_ratio4.php

posted @ 23:37 | Feedback (0)

2012年4月5日

連想配列の並び順って確か保証されてなかったよなー、でも追加順なのかなと思って調べていたら、下記サイトのブログ記事を見つけました。

C#でHashtableのfor eachの順序
http://blog.mbc-net.com/index.php?itemid=14

この記事では、Hashtableを使っていたところで、Windows 7の64bitの環境になったら不具合が発生したそうです。

Windows XP/Vista 32 bit 環境は、追加された順番
Windows 7 64 bit 環境は、key のアルファベット順

ということで、連想配列の順序は保証されないと思って開発した方がいいみたい。

posted @ 7:35 | Feedback (0)

2012年4月1日

 UnagipyはWebアプリケーションの開発を主眼においたプログラミング言語。
RubyやPython、Haskellから影響を受けたシンタックスシュガーの導入により、JavaScriptに比べ簡潔さと可読性を向上させたほか、配列内包やパターンマッチといった機能を追加している。
Unagipyのコードは、JavaScriptのコードに変換することも出来る。

 2010年に静岡県のIT関連企業などが設立した「しずおかOSS(オープン・ソース・ソフトウエア)協議会」では、オープンソース・ソフトウエアに関わる企業の技術者や研究者の有志を募り、浜松で生まれた言語「Ruby」に続けと新しい言語をコードネーム「Unagipy」を開発していた。
 コードネームは静岡県の有名なお土産「うなぎパイ」とプログラム言語「Python」を掛け合わせたものだったが、発表にあたり協議した結果、コードネームがそのまま正式名称に採用されることに決まった。

「まつもとゆきひろ氏が浜松に在住していたころに開発された言語Rubyは、今や世界中で慕われ利用されている。話題のTwitterもRuby on Railsで開発されていた。UnagipyもRubyのように世界で使われるアプリケーションの力になれば良い。あえて独自の新言語を作るのはどうなのかといった意見ももちろんあったが、プログラミング言語作りを通して、ソフトウェア開発の新しい世界観を産み出すような実践的体験を積めるような教育があってもよいと思い開発を進めた」(しずおかOSS 協議会発起人会)。

 静岡県では、これを一つの地域資源ととらえITとOSSを活用することによって、地方における産業を創出、拡大できる可能性があるとして、東日本大震災で発生したがれき処理の受け入れ先である島田市のがれきの安全性などを説明したホームページとして採用する予定である。

 静岡県では以前、静岡県の形がプログラム言語Haskellのロゴマークである「λ(ラムダ)」に似ていることから支援した経緯がある。参照記事


本文中のリンク・関連リンク:
しずおかOSS開発のプログラミング言語「Unagipy
オブジェクト指向スクリプト言語「Ruby」 

posted @ 0:37 | Feedback (2)

2012年3月30日

日本人の知らないニッポン
http://www.thinker-japan.com/thinkwar.html

日本人が発明したモノの一覧に世界が驚愕 日本人ってどうしてこんな素晴らしい民族なんだろう・・・
http://hamusoku.com/archives/5115125.html

なぜ日本人は偏りをあれほど嫌うのか
http://togetter.com/li/81598

日本サッカーと欧州の違いは言語技術の差
http://www.nikkeibp.co.jp/article/column/20100531/228806/?ST=business&P=1

いつ来るか分からない15分のために常に準備をしているのがプロ、デザイナー奥山清行による「ムーンショット」デザイン幸福論
http://gigazine.net/news/20110908_moonshot_design_cedec2011/

日本人が、アイヌの剣も、お辞儀も、腹切りも自分の文化にした
http://japanese.ruvr.ru/2012/02/06/65448380.html

外国人が「日本に長く居すぎた…」と実感するとき…
http://blog.livedoor.jp/dqnplus/archives/1086712.html

日本人のいやな特徴
http://anond.hatelabo.jp/20111112181142

posted @ 23:44 | Feedback (0)

2012年2月14日


とある仕事で、日本語からプログラムの変数名に変換していた時に、「Number」の略が「Nu」ではなく「No」になっていることに今更気が付き、おもわず検索してみた。

『NUMBER』の語源である『NUMERO』はラテン語で「数字」を意味するそうです。
『NUMBER』を省略した際に、「NO.」と記入するのは、この『NUMERO』という単語の先頭の「N」と最後の「O」を取り、さらに省略したという意味のピリオドをつけるため「NO.」と書くのだそうです。

http://oshiete.goo.ne.jp/qa/24290.html

http://www2.plala.or.jp/kamkamkam/gimon7/310/310.htm


2月14日はバレンタインデーですね。季節はずれの花火って感じでHTML5のCanvasで作成してみた。
http://jsdo.it/Yaju/fireworksOfHeart

posted @ 2:40 | Feedback (0)

2012年2月11日

仕様書を書いていると「必須入力」というように「必須」という言葉をよく使ったり聞いたりします。
しかしながら、必須って学校で習った記憶がなく、しいていえば「必須科目」くらいを聞く程度だったします。
ふと、必須と必要の違いって何だろう? と早速検索してみました。

すると、同じ疑問をもたれた方がすでに質問されていて回答もついておりました。

「必要」と「必須」の違い???
http://questionbox.jp.msn.com/qa815460.html

ひっ‐す【必須】
(ヒッシュの慣用読み。ヒッスウとも) 必ず須いる(もちいる、と読みます)べきこと。必ずなくてはならないこと。「―の条件」「―科目」

ひつ‐よう【必要】‥エウ
(幕末・明治期につくられた語) 必ず要すること。欠くことのできないこと。なくてはならないこと。必用。必須。「―にせまられる」「―不可欠」


へー、必要って幕末・明治期につくられた語で新しい言葉だったんですね。
必須と必要は意味合い的には同じであるけれど、必須は「必要の中の必要」、必要だけどなくてもいい場合もあるので、そういう時は「必須」とはいわない。「必須>必要」

必須と必要を英訳でみると、必須は「must」で必要は「need」となっております。

さらに、必須って学校で習ってないなと思って調べてみると、【須】の漢字は実は2010年に29年ぶりに常用漢字が改訂されたことで初めて常用漢字となったのです。それまで常用漢字でなかったが為に、学生時代に習ってないわけです。
しかしながら、新聞協会では常用漢字以外にも新聞に用いることができる漢字を独自に39文字定めていて、その中に【須】は含まれていました。
http://www.taishukan.co.jp/kanji/qa02.html#Q0068
そうしないと、横須賀とは那須高原とかが使えないですからね。

新常用漢字で追加された129文字はこちら
http://www.kanjijiten.net/joyo/newjoyo.html
茨城の「茨」・岡山や福岡の「岡」・埼玉の「埼」・大阪の「阪」・熊本の「熊」・鹿児島の「鹿」・栃木の「栃」・奈良の「奈」・山梨の「梨」・愛媛の「媛」・岐阜の「阜」も常用漢字となり、全都道府県名の漢字が常用漢字となりました。でも、今までなぜこれらの漢字が常用漢字でなかったのかにびっくり。
http://blog.fujitv.co.jp/shimizu/D20101130.html

「須」という漢字の左側にある部首名を教えて下さい。
http://www.taishukan.co.jp/kanji/qa02.html#Q0062
「彡」(さんづくり)というのは、もともと、模様を表す漢字です。
「形」「彩」「彫」「影」など、「彡」を部首に持つ漢字には、模様に関係する意味を持つものが多いのです。
一方、「須」は、もともと「あごひげ」を表す漢字です。
あごひげは顔に生えるものですから、もともと頭とか顔とかいう意味を持つ「頁」の部首に所属する、ということになるのです。

posted @ 16:15 | Feedback (0)

2012年2月8日

 

今お世話になっている会社には、4種類のサイトウさんがおられます。
正字と新字があるので、実質2種類ですね、大きく何が違うかといえば、中が「示」か「2本の横線」の違い

齊藤、斉藤

齋藤、斎藤

 

 

齊藤 「斉(齊)」は「セイ・シ・サイ/ととのう・ひとしい・つつむ」と読み、

その形は、「祭祀に奉仕するときの婦人の髪飾り」である。

〔正字〕齊 〔新字〕斉 〔漢音〕セイ 〔呉音〕サイ、〔訓〕ひとしい・ととのえる 

筆順(書き順) http://kakijun.main.jp/page/saikyuuji14200.html


 

斎藤 「斎(齋)」は「サイ・シ/ものいむ・つつしむ」と読み、

「齊の省文と示とに従う」もので、「祭卓の前に奉仕する齋女の意を示す」。

〔正字〕齋 〔新字〕斎 〔漢音〕サイ、〔訓〕いつく・いむ・とき

筆順(書き順) http://kakijun.main.jp/page/sai200.html




そういえば、Androidには全国の”斎藤さん”と気軽にテレビ電話できる!?無料通話アプリ『斎藤さん』ってのがあるんだよね。
http://web.meet-i.com/news/?p=77667


斎藤と斉藤(齋藤と齊藤)は別の字
http://d.hatena.ne.jp/ya022978/20110510/1304984392
http://oshiete.goo.ne.jp/qa/1937903.html

 

字体統合している「斎」は、「」、「」、「」などのJIS登録字体
JIS第一水準、第二水準に、斉藤の「斉」の字は「斉」「斎」「齋」「齊」と異体字が...
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1042680
人名用漢字の新字旧字:「斎」と「齋」
http://dictionary.sanseido-publ.co.jp/wp/2010/12/16/itsuki/

齋という漢字を口で説明するにはどうすればよいですか
http://okwave.jp/qa/q6734758.html

posted @ 1:57 | Feedback (0)

2012年2月6日

1月21日に静岡ライフハック研究会に初参加してきました。
http://shizuokalifehack.com/

静岡ライフハック研究会は今回で3回目だったのですが、1、2回目は他の勉強会と重なったとか募集要員が埋まってたりと行けなくて、今回も追加募集があってなんとか参加できた状態です。
IT関連の勉強会ばかりだとなんなんで、他の勉強会も参加してみたかったのです。幅が広げたいですしね。

1、2回目は東京の方が主催でしたが、3回目からは静岡の方のみでの行われたようです。
静岡の責任者は、はてなブックマークの人気エントリーでおなじみの「わかったブログ」の運営者のかん吉さんです。
http://www.wakatta-blog.com/vol3_szokhack002.html

静岡ライフハック研究会Vol.3のまとめ ? Togetter
http://togetter.com/li/246236

今回のテーマ「コミュニケーション」でハラコ ヤスフミさん(facilite代表)の講義で、コミュニケーションの中でも、「人を動かす質問力」に焦点をあてて、“相手に気づきを与え、その人の内側から力を引き出す効果的な質問の仕方”をするにはどうしたらいいのか?をNLP(実践心理学)を基盤とした講義と、「対面ワーク」で学びました。

 

人が持つ根本的な欲求として5つ
・受け入れてほしい
・励ましてほしい
・質問してほしい
・頼りたい
・頼られたい

欲求を満たすことは、潜在的な不安(孤独感)を和らげることにつながる。

コミュニケーションは、受けとった反応に意味がある。 何を伝えるかよりも何が伝わったか。 相手の反応に関心をもつことが大切。

ほめる管理職の下で働く社員の方が、企画の提案などが積極的になる傾向がある。
35歳以下の若手社員は『ダメ出し』の影響が大きくみられる、ダメ出しより「いいね!」を! 
http://s.nikkei.com/wH1aNF


対面ワークでは2人1組になり、質問者と回答者を体験しました。
ワークシート「6か月後(2012年7月21日)に得たい成果への質問集」に沿っての質問をしてどう取り組むのか、意外と質問されると自分では気が付いていない部分がわきでてきて、思い直す部分がありました。
私は6か月の目標としては、今までTOEICを受けたことがないのでTOEICを初受験し500点越えとしました。
質問者となってくれたのは、tomofさん(http://www.studio-kingdom.com/)でした。tomofさんは6か月以内に東京等(静岡以外)のどこかの勉強会でセッションをしたい仰っておりました、静岡でも既にセッションしているのでチャンスがあればきっと実現できると思います。


今回この対面ワークで配布されたハラコさん作成の資料を提示します。ハラコ ヤスフミさんには懇親会にて許可を頂いております。
カラーセラピー、自己演出講座、ビジネス心理講座を静岡で受講されたい場合、静岡駅近くにハラコ ヤスフミさんが主催するfaciliteをお勧めします。 http://facilite.jp/index.html


6ヶ月後(yyyy年mm月dd日)に得たい成果への質問集ですが、たんたんと質問するのではなく、2人で会話しながら進めていき、いい回答がでるまで次に進まないようにします。赤色の文字は例です。
2月になりましたし、8割近くの人は新年の目標達成できず、「成功の秘訣」を心理学者が指南ってのがありますので、再度新年に立てた目標を見直してみましょう。
http://www.narinari.com/Nd/20110114811.html

6ヶ月後(yyyy年mm月dd日)に得たい成果への質問集

①あなたの得たい成果は何ですか?(肯定的な表現にしてください)
・それは具体的にするとどういうことですか?
(何によって成果を達成したことを知りますか?)
例 ダイエットを成功させたい。体重を7kg減少して58kgにする。
  体重計を見て成果の達成を確認する。
・成果が手に入ったときに、何が見えますか?何が聞こえますか?何をどのように感じますか?
例 腹筋が出て、あごのラインがシャープになる。「最近痩せたね」という友達の声が聞こえる。
  引き締まった感じ、身軽な感じ、達成感を感じている。
・成果に対して現状はどうですか?
例 65kgで少しお腹が出ている。身体が重く感じる。

②成果を手に入れる事はあなたにとってどのような意味がありますか? 【目的】
例 健康な身体が得られる。健康な身体が得られることで毎日がイキイキとする。
  イキイキとすることでさらに色々なことがチャレンジができる。
  チャレンジができることで充実した毎日を過ごせる。充実した毎日は満足感を得られる。

③成果を創り出すために使うことができそうな、あなたが既に持っているリソースは何がありますか?
例 簡単なカロリー計算の知識。身体を動かすのが好きである(スポーツの経験がある)
  土日の休みは時間を使える。友達に10kgの減量を達成した人がいる。

④されに必要となるリソースは何ですか?
例 効果的な方法、正しいダイエットの知識。体重計。運動するための服、靴。
  一緒に頑張ってくれる人がいるなら嬉しい。

⑤現在、成果を手に入れるのを止めているものは何ですか?【ストッパー】
(止めているものから何を得ていますか?)
例 会社帰りのラーメンを食べることが出来なくなる。(美味しさ⇒ストレス解消と満足感を得ていた)
  今の服がぶかぶかになってしまう(お気に入りの服がある⇒心地よさを得ていた)

⑥6ヶ月後の(mm月dd日)に成果を手に入れるために3ヶ月後の(mm月dd日)には
どうなっている必要がありますか?
例 62kgになっている必要がある。

⑦そうなるためには1ヶ月後の(mm月dd日)にはどうなっている必要がありますか>
例 64kgになっている必要がある。(マイナス1kgを達成している)

⑧では、"今"何を始めますか?(ハッキリしていること・ハッキリさせることを出してください)
例 「定期的な運動をする」(ハッキリしていない)
  運動は⇒何を?「スポーツクラブ入会」⇒どこ?「インターネットで調べる」(ハッキリしている)
  定期的⇒どれくらい?「週に3回」⇒曜日・時間は?「月・水・金に水泳を1時間」

posted @ 0:31 | Feedback (1)

2012年2月5日

1月28日に行われた静岡Developers勉強会の第3回HTML5読書会では、課題図書として「HTML5&CSS3実践入門」を使用しております。
静岡Developers勉強会には特別に外部から講師を招くようなことはせず、集まったメンバーで課題図書を章ごとに分担してセッションする形式を取っています。
今回、私が担当した部分は3章分(第6章キャンバスへの描画、第7章のオーディオとビデオの埋め込み、第8章のCSS3を使った魅せ方)です。
セッションの仕方は担当者任せなので、課題図書の内容だけだと薄いため、テーマだけ頂いてほぼ独自の資料として今回作成しました。

資料的には聞くだけのセッションではなく、実際組んでもらったりサンプルにあるソースリストを改良してもらうような作りにしてあります。
なお、当日行った資料およびサンプルソースを公開用に見直し今回githubに公開しましたので、静岡Developers勉強会にきたメンバーも再度ダウンロードしてください。
https://github.com/yaju/ShizuDev_HTML5

posted @ 21:43 | Feedback (0)
 

目次

Blog 利用状況

  • 投稿数 - 410
  • 記事 - 1
  • コメント - 3064
  • トラックバック - 89
ニュース