2017年10月8日日曜日

機械学習2

日経ソフトウェア(2017.11)の特集1 Part2 の記事に従って、
Anaconda と TensorFlow と Keras をインストールしてみる。

そして、ひとまず記事に従ってコマンドを打ってみました。

まだよくわからないので、もう少し読んでみようと思います。

2017年9月30日土曜日

機械学習

機械学習って、関数(数学で出て来る方の関数f(x))の係数をを決めていくようなものなんですね。

日経ソフトウェア(2017.11)の特集1を読んで、そんな感じなのかなぁと。

2017年7月21日金曜日

2017年7月5日水曜日

ソフトハイフンってなんだ?

­Unicode : U+00AD
UTF-8 : C2AD

の文字コードを持つ「SOFT HYPHEN」という文字があるのですが、
この文字をVislau Studioで作ったRichTextBoxコントロールに入力しても、表示されない。

EXCELやメモ帳や、TextBoxコントロールには入力できるのに。

wikipediaによると特別な文字みたいなので、ひとまず気にしないことにしました。

https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%83%8F%E3%82%A4%E3%83%95%E3%83%B3

2017年7月4日火曜日

UTF-8 の文字を扱うプログラムのテスト

やりたいこと
UTF-8の文字を扱うようなプログラム(エディタみたいな)を作成した場合に、どこまでテストするのか?
を考えてみたので、備忘のため記録しておきます。

背景
ここは読み飛ばしても大丈夫です。
趣味で作っているプログラムなので、普段はあまり力をいれてテストしないのですが、
たまたま動かしてたら、片仮名の「ム」が文字化けする現象が見つかりました。


調査したところ末尾のバイトがa0の文字は文字化けすることがわかりました。

内部で使用しているプログラムのバグと思われるので、この現象自体は、一般的なことではないのですが、 文字コードのバイトのパターンで文字化けしたりするんだなぁという気づきがありました。

そこで、もうちょっとテストしてみよっかなと。
結果
いきなり結果ですが、こんな感じでテストしてみようと思ってます。


もともとのバグは1バイト目がa0の場合に発生するものだったので、とりあえず各バイト単位でパターンを網羅することで、類似のバグを見つけることができると思いました。

各バイトの取りうる値はwikipediaの記事を参考にしました。
https://ja.wikipedia.org/wiki/UTF-8
5バイト, 6バイトはUnicodeでは不正なシーケンスとあるので、考えないことにしました。
また、制御文字も除く予定です。
具体的に
テストする文字はバイトさえ網羅できれば任意ですが、
実際に使用する文字をこちらのページを参考に選定していきます。
https://seiai.ed.jp/sys/text/java/utf8table.html
1バイト目の2X~7Xまではこんな感じです。 ASCIIを網羅するような感じとなります。黄色い部分です

1バイト目の8X~BXは、2バイト/3バイト/4バイトのどの文字にも使われるのですが、一番若い物を使うことにすると以下のようになります。黄色い部分です
また 2バイト目のCX、DXを適当に抽出していきます。(緑色の部分)



こんな感じで繰り返していこうと思ってますが、文字を選ぶのがめんどくさそう...


追伸
UTF-8の4バイト文字の一覧表がweb上で見つからなかったことと、
途中で面倒になったことから、4バイト目と3バイト目は網羅することを断念しました。

テストできたところは下図の緑色のところです。

統合漢字拡張B~Dの文字の文字コードは調べてみたのですが、
F0AXXXXXしかみあたらず、3バイト目が8X,9X,BXとなる文字がどれなのか、分かりませんでした。

調べるのには、Google IMEの文字パレットを使用しました。

UTF-8の文字コードが表示されるので、便利です。

多分3バイト目が8X,9X,BXとなる文字は、U+E0000以降のどれかなのかとは思っているのですが、Googleの文字パレットだとCJK互換漢字補助までしか表示されないので(上図)、ここまででやめることに。

2017年6月15日木曜日

UTF-8の文字

UTF-8の文字コードがいまいちよくわかってませんでした。
ちょっと調べたので、備忘のためメモしておきます。

参考にしたサイト
https://ja.wikipedia.org/wiki/UTF-8

1バイト
ASCII文字 (123, ABC とか)

2バイト
ラテン文字とか(ÀÀÃÅとか)

3バイト
ひらがな、普通の漢字とか(あいうえおとか)

4バイト
サロゲートペアの文字(U+10000~U+10FFFF)の文字
※使う場合は文字コード表で確認した方がよいです。

2017年4月16日日曜日

テストの勉強

やりたいこと
テスト関係の情報を備忘のためメモっていきます。

「ソフトウェアテスト技法ドリル」を読んで
・シャワーを浴びるようにバグ票の原因を読むことで、バグ発生のメカニズムを自分の中に蓄えることができる。

・4章の一連の流れは使えそう
6W2H

FV表

ラルフチャート

FL表
↓...

個人的にはラルフチャートがFV表の前にあっても良いような気がしました。

表5.2の行列を掛けて表5.3となるとあるが、3行目と5行目がこうならないような気がしました。
どうやるんだろ?
ペアワイズと直交表の違い
・3項目間の組み合わせの網羅率が違う(直交表 高い / ペアワイズ 低い)
・ペアワイズの方が項目数が少ない。

↓ なんでか?

直交表は水準が同一個数出現するように組み合わせるけど、ペアワイズは同一個数にはなっていないため。

2017年4月12日水曜日

2017年4月9日日曜日

メモリや、 HDD負荷

あとで整理する予定です。

■HDD負荷
fsutilコマンドを利用する。
Windowsで巨大なサイズのファイルを簡単に作る方法

■メモリ負荷
(1)VBSスクリプトで
負荷テストに使える、メモリを意図的に消費させるスクリプト

(2)MS製のツールで
[Windows] Microsoft メモリ負荷ツール (Testlimit.exe) を使ってみた

(3)mallocで
windowsの.netフォルダには、c#のコンパイラが入っているので、それを使ってmalloc的なプログラムを作って負荷をかける。
コンパイラの場所とか
OSに標準付属のC#/VBコンパイラーでソースコードをコンパイルするには?

C#でmalloc
A.8 動的なメモリ割り当て

(4)メモリ負荷をかけてどれを観察するべきか?
Windows OS入門:第4回 メモリ管理

2017年4月2日日曜日

CUDAってなんだ?

Wikipediaでみると、「NVIDIAが提供するGPU向けのC言語の統合開発環境であり...」とあります。

統合開発環境なので、Visual Studioみたいなものなのかな?

C言語で並列プログラミングをするための環境みたいなもののようです。

同じような技術でOpenCLやDirectComputeというものがある。


また何かわかったらこのページにまとめていく予定です。