2012-01-01から1年間の記事一覧

"線形回帰を実装してみよう" をやってみた

今回はgihyo.jpの連載"はじめよう 機械学習"の第11回 "線形回帰を実装してみよう"(http://gihyo.jp/dev/serial/01/machine-learning/0011)をやってみました。http://uhiaha888.com/machine_learnings/linear_regression.html点列が与えられたときに、多項式…

"ベイジアンフィルタを実装してみよう" をやってみた

最近は機械学習と、こないだ作ったWebサイトをいじくることにはまっているので、サイト上で機械学習のサンプルを動かしてみました。http://uhiaha888.com/machine_learnings/bayesian_filter.htmlといってもgihyo.jpの連載 http://gihyo.jp/dev/serial/01/ma…

Webサイト作った

http://uhiaha888.com/まだ何も無いですが。なんしか、作成に必要だったほとんどの知識はドットインストールから学べたのが驚きでした。

Windowsで使えるタイル型ウィンドウマネージャPython Window Tiler

Linuxを使っているときはxmonadを使っていますが、"Windowsにはタイル型ウィンドウマネージャはないよ!"っていう情報をどっかでみたのを鵜呑みにして"そっかーないのかー"と思ってしゃーなしでそのまま使っていましたが、昨日使えそうなものを見つけたので…

STLをいろいろ使ってみようと思います 第5回 algorithm(2)

今回はalgorithmの2回目です。 今日のサンプルで使ってるメソッドはどれも使ったこと無かったです。 普段の開発で、"あれ?これが出来る関数がalgorithmに入ってたはずだ!"ってなることが目標なので、この調子でどんどんやっていけたら良いですね。 #inclu…

STLをいろいろ使ってみようと思います 第4回 algorithm(1)

今回からalgorithmを数回に分けてやっていきたいと思います。個人的にはfor_eachとラムダ式の組合せが大好きで、結構良く使うのですがsearchとかsort以外はそんなに使ったことがないのでいろいろ試していきたいと思います。 #include <iostream> #include <algorithm> #include <vector> #</vector></algorithm></iostream>…

STLをいろいろ使ってみようと思います 第3回 list

今回はlistです。 #include <iostream> #include <list> int main() { std::list<int> l; // vector同様push_back()で要素を追加できる l.push_back(1); l.push_back(2); // push_front()でも追加可能 l.push_front(3); l.push_front(4); std::cout << "要素を追加" << std::endl;</int></list></iostream>…

STLをいろいろ使ってみようと思います 第2回 vector(2)

今日もvectorです。 #include <iostream> #include <vector> int main() { std::vector<int> v; for(int i = 0; i < 5; ++i) v.push_back(i); v.erase(v.begin() + 1); // 先頭の次の要素を削除する std::cout << "先頭の次を削除" << std::endl; for(std::vector<int>::iterator it = v.</int></int></vector></iostream>…

STLをいろいろ使ってみようと思います 第1回 vector(1)

第一回はvectorを取り上げたいと思います。まずは基本的な使い方。 #include <iostream> #include <vector> int main() { std::vector<int> v; v.push_back(1); // push_backで要素を末尾に追加 v.push_back(2); v.push_back(3); std::cout << std::endl << "イテレータでアクセス" <</int></vector></iostream>…

STLをいろいろ使ってみようと思います 第0回 はじめに

前回のデザインパターン企画で、毎日少しずつでもなんか書くってのはいいなぁと思ったので続けます。今日からはSTLの簡単なサンプルを書いて使い方を学んでいこうとおもいます。普段vectorや一部のalgorithmの関数は使ったりしますが、"list? deque? よくわ…

C++でデザインパターンを実装していこうよ 第23回 Iteratorパターン

ついに今回でこの企画も最後ですね。最後はIteratorパターンです。なんか理由があってIteratorを最後に持ってきたかというと、そういうわけでもなくて、ないわけでもなくて、、、というのは、IteratorパターンをC++で実装したところでほぼ意味が無いというか…

C++でデザインパターンを実装していこうよ 第22回 Interpreterパターン

興味深くはあるし、学んでよかったとは思うけれど…。自分が個人的に作るソフトに拡張用のスクリプト的なのをつけようとしたら、 http://code.google.com/p/chibi-scheme/ この辺のありもんを使えないかってまず考えるし、 自分でちゃんと作るならもっといろ…

C++でデザインパターンを実装していこうよ 第21回 Commandパターン

コマンドパターンです。アンドゥリドゥにつかえます。というか、呼び出し時と別のタイミングで必要なパラメタを渡しておけて、使うときは何も知らんでもExecute()を呼び出せばオブジェクト側で良い感じに実行してくれるってのがいいってはなしですね。http:/…

C++でデザインパターンを実装していこうよ 第20回 Proxyパターン

今回はProxyパターンです。今回のサンプルだとなんもメリットが無い感じですね。なんしか一枚皮をかぶせることによってオブジェクトの生成のタイミングを遅らせたり、アクセス権を設定したりとかいろいろできるよってことみたいです。汎用的な分抽象的ですが…

C++でデザインパターンを実装していこうよ 第19回 FlyWeightパターン

今回はFlyWeightパターンです。 とってもSingletonっぽいですね。ただ、一度生成したインスタンスをSingletonではインスタンスそのものがstaticとして持っていたのに対し、FlyWeightでは今回のサンプルだとCharacterFactoryがコレクションとして持っています…

C++でデザインパターンを実装していこうよ 第18回 Stateパターン

C#のコードだと.hと.cppに分けるみたいなことはないっぽいので、というかすくなくともサンプルコードではそういうことはないのでなんとなくそれっぽくC++で書いてきて、いままでほぼ問題なかったのでそのままだったんですが、今回はヘッダと分けたほうがよか…

C++でデザインパターンを実装していこうよ 第17回 Mementoパターン

オブジェクトの状態を保存する、ってやつですね。今回のサンプルで微妙なのはname_とかphone_とかがかぶっちゃってるところですね。今回の場合Mementoクラスがただのデータホルダクラスなんだから、SalesProspectクラスのメンバとしてMementoオブジェクトの…

C++でデザインパターンを実装していこうよ 第16回 Mediatorパターン

この企画の良い点は、あんまり考えなくてもコードをC++に書き直してるうちになんとなく"あーそういうことか"ってなるので、仕事が終わってから寝る前にビャってやってしまえる点です。良くない点はあんまり考えないし、わざわざいろいろ調べるほどには元気が…

C++でデザインパターンを実装していこうよ 第15回 ChainOfResponsibilityパターン

今回はChainOfResponsibilityパターンです。たらいまわし的なことでしょうか?まず、Approverクラスの子をSetSuccessor()メソッドで鎖状につなげます。そしたら、その鎖に対してひとつずつ引数として渡されたPurchaseオブジェクトを受け入れるか否かをProces…

C++でデザインパターンを実装していこうよ 第14回 Visitorパターン

今回は、Visitorパターンです。 初めて見たときは完全に"?"でしたが、今見ると少し面白いですね。訪問されるオブジェクト(例ではElementインタフェースの実装であるEmployeeとか)のコレクション(Employees)に、訪問するオブジェクト(IVisitorインタフェース…

C++でデザインパターンを実装していこうよ 第13回 Compositeパターン

今回はCompositeパターンです。要は、"フォルダはフォルダもファイルも一緒くたに格納できるよ"的なことですね。今回はPrimitiveElementは直線とか円とかの単純な図形で、CompositeElementはそれらの単純な図形やそれを組み合わせたCompositeElementを組み合…

C++でデザインパターンを実装していこうよ 第12回 Builderパターン

やっと半分きましたね。今回はBuilderパターンです。オブジェクトの生成に関するパターンとして、すでにAbstractFactoryパターンやFactoryMethodパターンを扱いましたね。これらがどっちかというと、"あるインタフェースのどの実装を実体化するか"的なことに…

C++でデザインパターンを実装していこうよ 第11回 Prototypeパターン

Prototypeパターンは、初めて知ったときもぴんときませんでしたが、いま読み直してもぴんときませんでした。今回の例で言えば、ColorPrototypeインタフェースの任意の子クラスのコピーコンストラクタを、子クラスの種類を知らなくてもclone()メソッドから呼…

C++でデザインパターンを実装していこうよ 第10回 FactoryMethodパターン

適切な実装の集合を実体化するという目的のパターンで、AbstractFactoryとあんまり変わりません。AbstractFactoryは委譲で行っていたことを、FactoryMethodパターンでは継承を使って行っている、と考えて良いんだと思います。「これはAbstractFactory!こっち…

C++でデザインパターンを実装していこうよ 第9回 Singletonパターン

Singletonパターンは非常にわかりやすいんじゃないでしょうか。Modern C++ Designには別の方法を使った書き方みたいなのものってましたね。http://www.dofactory.com/Patterns/PatternSingleton.aspx#_self2今回は普通にstaticなメンバを使った実装です。htt…

C++でデザインパターンを実装していこうよ 第8回 TemplateMethodパターン

初めてデザインパターンを学んだとき、一番理解しやすいと感じたのがTemplateMethodパターンでした。今回の例は http://www.dofactory.com/Patterns/PatternTemplate.aspx#_self2 これです。なんかデータベースへのアクセスをしてますが、書き直したバージョ…

C++でデザインパターンを実装していこうよ 第7回 Observerパターン

http://www.dofactory.com/Patterns/PatternObserver.aspx#_self2 今回のお題は今までの中では一番良い感じかなと思います。株価(Stock::price_)が変わると投資家(Investor)に通知(Notify)が行きます。"株価が変わったら通知がいく"ってのは所謂共通性で、そ…

C++でデザインパターンを実装していこうよ 第6回 Decoratorパターン

まず今回のお題です。 http://www.dofactory.com/Patterns/PatternDecorator.aspx#_self2図書館で借りられるものというLibraryItemクラスから派生しているBookクラスとVideoクラスがあって、これにDecoratorパターンを使ってBorrowable(借りられる)という性…

C++でデザインパターンを実装していこうよ 第5回 AbstractFactoryパターン

"実装ではなく、インタフェースに対してプログラミングする" ってすると、あるインタフェースAの実装が3種類あって、別のインタフェースBの実装が4種類あるけど、一部の組合せのみにしか意味がないみたいなことが多くなります。その組合せを都度指定するん…

C++でデザインパターンを実装していこうよ 第4回 Strategyパターン

"オブジェクト指向のこころ"で3つ目はStrategyパターンでしたね。別にその順にしなきゃならないわけではないのですが、とりあえず今回はStrategyパターンにします。今回のお題は http://www.dofactory.com/Patterns/PatternStrategy.aspx#_self2 です。C++…