なんじゃくにっき

プログラミングの話題中心。

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

今年を振り返って

今年は色々ありました。 一年の締めくくりとして振り返ってみようと思います。 ・会社辞めた これが一番大きいですね。 今日付けで辞めることになります。 というわけで元旦の明日から無職。 ・プログラミングの勉強 年の前半はT2frameworkを中心にJavaのWeb…

ぼーねんかい

Scala勉強会in渋谷の忘年会にいってきた もあいー モアイのあるモアイカフェなる場所に集合。 …なのに11人参加予定なのに定刻になっても3人しか集まらないというダレっぷり。 11人予約なのに8人分くらいしか席のスペースがなくて狭かったです。 そして…

Scalaでフーリエ変換(2)

前回書いたのを少し変更してみた。 複素数を扱うときはComplexクラスを使うようにした。 (ComplexクラスはA Scala Tutorialのに少し手を加えてみた) http://www.scala-lang.org/docu/files/ScalaTutorial.pdf // 複素数クラス class Complex(real: Double, i…

Scalaでフーリエ変換(1)

何故かフーリエ変換したくなったので、Scalaで書いてみた。 フーリエ変換そのものについてはWikipediaでもごらん下され。 高速じゃない離散フーリエ変換。 ワンライナーで書こうと思えば書けるね、これ。 ひどく読みにくくなりそうだけど。 def ft(data: Ind…

Flex勉強会第127回

Flex勉強会第127回@Adobeに行ってきた。 http://www.fxug.net/modules/bwiki/index.php?FxUG%CA%D9%B6%AF%B2%F1%C2%E8127%B2%F3%A1%F7%C5%EC%B5%FE Framework特集ということで、1つにつき20分ずつくらいでの発表だった。 Parsley、Robotlegs、Swizは知らなか…

【読書】リファクタリング プログラムの体質改善テクニック

【読書】リファクタリング プログラムの体質改善テクニック (マーチン ファウラー著 ピアソンエデュケーション刊)を読んだ。 矢張りリファクタリングのバイブルと呼ばれるだけあって安心して読める内容。 非常に読みやすかった。 きっと書かれている内容を正…

【読書】Googleが消える日

『Googleが消える日』を読んだ。 最近、『Googleから人材流出?』みたいなニュースがあったりして、 Googleの行き先について少し興味が涌いたので、図書館で借りてきた。 結論からいうと、読まないほうがいいと思う。 タイトルだけで売ってるような本。 Googl…

Scala勉強会in渋谷第14回

Scala勉強会in渋谷第14回でちょこっと発表してきた。 スライドはこれ。View more presentations from nanjakkun. ファイル名がrpscala14thじゃなくて18thになってるとかはキニシナイ。 ぶっちゃけ内容は過去のブログの焼き直し。 10分くらいで終わるつもりだ…

Scala de Design Pattern: Fork-Join

Fork-Joinパターン。 大量の処理が必要な問題をFork(分割)して並列処理させ、 実行結果を後でJoin(結合)させる。 JavaのFork-Joinフレームワーク http://gee.cs.oswego.edu/dl/papers/fj.pdf はJDK 7に標準で組み込まれる予定。 futureパターンを使って例を…

Scala de Design Pattern: Producer-Consumer

Producer-Consumerパターン。 http://en.wikipedia.org/wiki/Producer-consumer_problem Producer(生産者)とConsumer(消費者)がいて、 Producerが物を生産し、ConsumerがProducerが生産した物を消費する。 この際、Bufferを経由する。 ProducerはBufferに生…

Scala de Design Pattern: Thread Specific Storage

スレッド毎に固有の記憶領域を割り当てるパターン。 Javaの場合、java.lang.ThreadLocalを用いる。 ScalaのActorはスレッドプール上で動作するので、ActorとThreadは1対1対応ではない。 なのでThreadLocalを用いるわけにはいかない。 呼び出し元のActorの毎…

Scala de Design Pattern: Actor

Aciive Objectパターンとも。 パターン自体の説明は↓を見ればよいと思われます。 http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf ざっくり言うと、 非同期なメッセージをやりとりするためのオブジェクトで、 以下の6つの要素を持つ。 1. Proxy: 外部に対…

Scala de Design Pattern: Thread Pool

Worker Threadパターンとも。 スレッドの生成はコストが大きいので、 あらかじめ複数のスレッドを生成しておき、貯めておく (この貯められたスレッドの集合をスレッドプールと呼ぶ)。 スレッドが必要になったらスレッドプールからスレッドを呼び出し、 使…

Scala de Design Pattern: Read Write Lock

リソースのReadとReadは衝突しないが、 Read-Write, Write-Writeは衝突する、というパターン。 synchronizedをReadとWriteに付けるだけではRead-Readの衝突を回避できないので、 別にロックを管理するオブジェクトを用いる。 Javaにjava.util.concurrent.loc…

Scala de Design Pattern: Two-Phase Termination

スレッドを直接終了させた場合、クリティカルセクション中の場合問題が出る。 そこで、スレッドを直接終了させるのではなく、 スレッドに終了するように命令して、スレッドがそれを受け取るとスレッドが自分自身で終了する。 JavaでもThread#stop はdeprecat…

Scala de Design Pattern: Future

Futureパターン: 要求を受けたら別のスレッドに処理を委譲して、その場では代わりのオブジェクトを取得する。 その後で、実際の実行結果を受け取る。 その際、別スレッドでの処理が終わってない場合、待ち続ける。 Scalaでは scala.concurrent.ops.futureと…

Scala de Design Pattern: Thread-Per-Message

要求毎にスレッドを生成し、作業は別スレッドで行うパターン。 作業を委譲したらすぐに制御は元のスレッドに戻す。 要求を行うのがClient、 要求を受けるのをHost、 別スレッドで要求を実行するのをHelperと呼ぶらしい(?) Scalaの場合、要求ごとにActorを…

Scala de Design Pattern: Balking

Guarded Suspensionに似ているが、 こちらは要求を受ける側は、キューにメッセージがない場合、待たずに処理を抜ける。 reactの代わりにreactWithinを用いると、待ち時間のタイムアウトをミリ秒単位で設定できる。 引数に0を設定するとメッセージが存在しな…

Scala de Design Pattern: Guarded Suspension

要求を送るオブジェクトと、要求を受けるオブジェクトがあり、 要求は一旦キューを介して受け渡される。 要求を受けるオブジェクトはキューに要求が送られるまで待ち続ける。 Actorを使って実装してみる。 Actorはメッセージボックスというキューを持ってい…

Scala de Design Pattern: Immutable

オブジェクトのインスタンスの状態が変わらないことをImmutable(不変)という。 Scalaでは基本的にImmutableを推奨。 純粋な関数型言語ではオブジェクトは全てImmutable。 このこと自体は並行処理には直接は関わらないが、 オブジェクトがImmutableであると、…

Scala de Design Pattern: Single Threaded Execution

1つのスレッドからしか実行できないパターン。 Critical Sectionパターンとも。 Javaではsynchronizedはキーワードだが、ScalaではAnyRefのメソッド。 なので、Scalaの場合、関数全体を同期化するには 関数の定義にsynchronized修飾子を付けることはできなく…

【メモ】Scalaの記号たち

Scalaのソースを追っていたら変な記号が多くて?な状態になります。 ってことで備忘のためにScalaで使う記号をメモしておきます。 四則演算、剰余 + - * / % ビット否定、論理否定 ~ ! ビット演算 & | ^ && || 比較 = ブロック {} コメント // …このへんまで…

Atndから参加者リストを取得して抽選するアプリ Scala Swing編

前回Scala勉強会in渋谷用のくじびきアプリをAndroidで作ったが、 http://d.hatena.ne.jp/nanjakkun/20101120/1290211247 これを実行するためだけにAndroidエミュレータをインストールのはちょっと…という人のために Scala Swing用に翻案してみた。 こんなの↓

勉強会用くじAndoroidプログラム

Scala勉強会in渋谷のページにてくじびきアプリを誰か作れ!というのを発見したので作ってみた。 http://atnd.org/events/9889#comment Andoroidじゃなくてスクリプト版はid:xuweiさんが作ってくれていたので、大分助かった。 http://d.hatena.ne.jp/xuwei/20…

Scala + Androidをsbt(Simple Build Tool) とEclipseを併用して開発

Scala + Androidで開発されている方はちらほら居て、ブログや勉強会で発表されている。 先週もScala勉強会in渋谷第11回でid:shomah4aさんが発表されたのを聞いてきた。 http://scala-users.org/shibuya/index.php?title=%E5%8B%89%E5%BC%B7%E4%BC%9A%E7%AC%A…

【受験記】ファイナンシャルプランナー3級(個人資産業務)

【結果】 試験科目:ファイナンシャルプランナー3級(個人資産業務) 学科 47/60 (78.3%) 実技 37/50 (74.0%) それぞれ60%以上でOKなので合格。 【勉強方法】 勉強時間:20時間 さらっとテキストを眺めたあと、公式問題集を1周。 それから過去問を5回分。 公式…

【資格】暗号検定

知的財産教育協会が実施していた第一回暗号検定で2級を頂きました(^q^) http://ip-edu.org/angoukentei うん、まあ資格っていっても謎解きみたいなもんですが。 百人一首をネタにした問題でした。 合格証はこんなの(名前は伏せてあります)↓

【読書】悪魔の飽食

悪魔の飽食(森村誠一 著)を読んだ。 森村誠一っていうと医療モノ、歴史モノのミステリ、小説が多いが、これはドキュメンタリー。細菌兵器の開発や人体実験を行っていた帝国陸軍の七三一部隊に関しての記録。 少し作品について調べてみたら、全てが事実とい…

トロピコ3短評

トロピコ3の建物、布告で個人的に使いやすかったものなどを勝手に並べてみる。 【住居】 APARTMENT(アパート)だけでもなんとかなる。 他は面積と質と居住人数のバランスが悪い。 【農業】 工場と組み合わせるならSUGAR(砂糖)とTABACCO(タバコ)がダントツ。 …

Tropico3 AP プレジデンテ日誌(6)

【TAKE OVER THE WORLD】 世界を我が手に、といったところか。 砂糖とかタバコとかラム酒とかを何時何時までに何個輸出せよ、 という要求がいくつも飛んでくる。 農場5個に工場2つずつあれば期限に間に合うくらい。 最後は50万ドル輸出せよ、という目標なの…