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

CからC++のライブラリを呼び出す

C++

大昔からある話だが,復習のためにやってみた.STLのlistをCから使ってみる.ポイントは, C++ でCから呼び出すためのラッパを書く ラッパ関数のプロトタイプ宣言は extern "C" で宣言する このとき,C++で読まれる場合とCから読まれる場合を__cplusplusで切…

recursive mutex

C++

mutexはスレッド間の排他処理をするための機構だが,一般的なthreadライブラリのデフォルトのmutexには大きな問題がある.あるmutexを既にlockしているthreadが再度同じmutexをlockしようとするとブロックしてしまうのだ.たとえば,thread bufferの例で,em…

boost lambda

C++

C++のライブラリ集boost.スレッド周りで使ってみようかと思っていたのだが,マニュアルを見ていたらlambdaとかあるので,思わずいじってしまった.lambdaとはまあ,いわゆる無名関数.C++ではSTLで関数オブジェクトを使うようになっているわけだが,関数オ…

boost thread

C++

lambdaに寄り道したが,threadのほう.condition variableとmutexを使って共有bufferを作ってみる. #include <iostream> #include <string> #include <boost/thread.hpp> #include <cstdlib> using namespace std; class buffer { list<int> queue; boost::condition_variable cond; boost::mutex mut; public:</int></cstdlib></boost/thread.hpp></string></iostream>…

JavaFX 1.0 変更追記

朝書いたとおり,1.0正式版で結構変わってしまったJavaFXだが,その後いじっていたらもっとインパクトのある変更があったことが判明. デフォルトアクセス制限の変更 Javaには,public/protected/privateという3つの修飾子があって,メンバがどこから参照可…

JavaFX 1.0 正式リリース

こちらで知ったのだが,つい先頃,JavaFX の1.0が正式にリリースされた.NetBeans 6.5で使えるようになっている.めでたい.が!なんと驚くべきことに,ベータリリースと文法やらクラス階層やらが大きく変わっている.なんなんだ...というわけで,これまで…

集合知プログラミング

Toby Segaran 良書.多数のデータからなんらかの情報を導き出す,いわゆるデータマイニングの入門書,ということになるのだけど,よくある入門書とちがって,非常に実践的.Pythonによる実際のアルゴリズムの実装だけでなく,Web 上のデータを取得して,アル…

プログラミングGauche

Kahuaプロジェクト Lisp 方言の一つである Scheme の1実装であるGaucheの入門書.「Schemeの1実装」と書いたが実は標準Schemeとはちょっと違っていて,私のキライな文字列の中に変数参照を書いておくて置換される文字列補間や,リテラルとしてのレギュラーエ…

bindの謎 ふたたび

JavaFXでグラデーションを使ったアニメーションを作ろうとしてbindの罠にはまった.こんなアニメーションをつくりたくて,LinearGradationのオフセットを制御して実現しようとしたのだが,どうにもうまく行かない.いろいろ調べてちょっと分かったので書いて…

Amazon CloudFront

Amazon CloudFrontというサービスが始まったようだ.これは他のサービスとちょっと違って,コンテンツの配送系の話.コンテンツをエンドユーザに近いサーバに複製して,高速にダウンロードできるようにしてくれる,ということらしい.Akamaiがやっているよう…

Amazon EC2 で Windows Server 2003

ちょっと前に正式にアナウンスがあったが,EC2でWindows Server2003が使えるようになった.XenのFull Virtualizationで動いているようだ.画面は,リモートデスクトップで飛ばして使うことになる.いまのところ,Windowsが利用できるAvilability Zoneは一つ…

JavaFXその後

その後もちょぼちょぼいじっているのだけど,結構落とし穴が.. 多次元配列(というか配列の配列)が作れない なんでだか知らないが作れない.普通に実装するとできてしまいそうなものだが,作れないようなのだ. var a: Integer [][];と宣言しようとしてもエ…

Amazon S3 料金改訂

Amazon のクラウドストレージサービスS3の値段が微妙に改訂された. といっても,本当にわずかな差.11月から有効になる予定.これまでは使用量に関係なく一律だった. 0.15 ドル/GB・月これが,11月からは使用量に応じてほんの少し差がつくようだ. 0.15 ド…

Java FX 1.0 のキャストの続き

先日のエントリでJavaFX 1.0ではキャストできない,などと書いてしまったが,またまた skrbさんにコメントで教えていただいた.できないわけではなくて,書式がちがうのだそうだ.キャストはJavaやC/C++のように (型名)式と書くのではなく, 式 as 型名と書…

JavaFX 1.0 とJavaのGeneric Class

JavaFX はJavaのオブジェクトを呼び出すことができる.たとえばなにかを標準出力にプリントする際には, import java.lang.System; System.out.println("Hello");のように書く.ただし,Javaと違ってjava.lang.* が自動的にインポートされたりしないので,明…

Amazon EC2と Oracle

OracleがAmazon EC2に対応したというリリースがあった.内容は, EC2をOracleが公式にサポートプラットフォームとして認証 既存のライセンスをEC2に移すことができる. Oracle 11g 入りのイメージをOracleが用意するので,簡単に利用を開始することができる…

JavaFXのアニメーション

JavaFXの特徴の一つは強力なアニメーション機構.この書き方も0.7から1.0で大きく変わったらしい.0.7を知らないのでよくわからないが. TimelineとKeyFrame 1.0では,Timelineというオブジェクトを作ってアニメーションを表現する.TimelineにはKeyFrameオ…

JavaFXのbind 続編

skrbさんから,with inverseを使うと双方向のバインドができると教えていただいた.試してみたら確かに動く.変数cをletでなくて,varで定義している点に注意. var a = 1; let b = bind a * 2 ; var c = bind a with inverse; System.out.println("hello {a…

JavaFXであそんでみた.

デビュー前から負け戦のJavaFX.1.0のベータをNetBeansであそんでみた.JavaFXは,JavaのVMで動くスクリプト言語の一つ.Javaの豊富なクラスライブラリを直接呼び出すことができる.と,ここまでなら,JythonやらJRubyやら佃煮にするほど同類の言語があるの…

Eclipse3ではじめる JavaFX プログラミング入門

掌田津耶乃 JavaFXはSunのRIA (Rich Internet Application)向け環境.ようするにAdobe Flashの対抗馬なのだが,MSのSilverlightの参入もあって,正式リリース前だというのに,すでに負け戦感が漂っているかわいそうな言語だ.この本はタイトル通りの入門書.…

サーバ/インフラを支える技術

伊藤 直也, 勝見 祐己, 田中 慎司, ひろせ まさあき, 安井 真伸, 横川 和哉 はてな,KLabでサーバを支えるエンジニアが書いた,非常に実践的な本.オープンなソフトウェアをくみあわせることで,ロバストでスケーラブルなシステムを構築する方法が事細かに書…

Project Caroline

Sunのクラウド系プロジェクト,Project Carolineについてちょっと調べてみた.クラウド系プロジェクトは(私の脳内分類では)次の4つに分けられる. リソースのみ提供型 - Amazon EC2など 基本サービス提供型 - Amazon S3, SQS, SimpleDBなど アプリケーション…

Javaで簡単なインタプリタを書いてみよう (1)

と思う.手持ちのコードがあればいつかなにかの役に立つかもしれない.大昔にバイト先でlex,yaccを使って,C++で特殊な用途のインタプリタを書いたことがあるのだけど,最近はいろいろと状況が違いそうなので,まずは復習から.お手軽にやるにはパーザジェネ…

Polly - python dolly

Dolly+ というプログラムがある.スイスのETHという研究所で開発されたDollyというプログラムを,高エネ研の真鍋さんという方が改良されたもので,大きいデータをたくさんのノードに同時に配信するためのツールだ.Dollyという名前は,例のクローン羊から来…

Erlangのコマンド引数

プログラミングErlangを見ながらちょっとお勉強.サンプルを打ち込んでみたのだけど,なんかうまく動かない...ちょっと調べてみたところ,コマンドラインから実行する2つの方法でプログラムにわたる型が違うことが判明.コマンドラインからErlangのプログ…

プログラミングErlang

Joe Armstrong Erlang の本.ASCIIから出ているのと違って,こちらは,450ページの大著で,内容も非常に詳しく書かれている.4400円もするが,どうせ買うならこっちだ.Erlangは,大規模なプログラミングのためのライブラリや,データベース構造なども持って…

ssht というものを作ってみた

SSHでのポートフォワードを補助するスクリプトを書いて,Google code を使う練習も兼ねて,http://code.google.com/p/ssht/にアップしてみた.SSHはもちろん,もともとポートフォワードができるのだけど幾つか問題がある. 動的にフォワーディングを追加・削…

Amazon EBS (Elastic Block Store)

6月17日のエントリに書いたEC2の永続ストレージが本運用に入ったようだ.こちらにページができている. 1GBから1TBまで利用可能. rawデバイスとして提供.ユーザがデバイス名を決められる.ファイルシステムも任意. 特定のAvailability Zoneにおかれる.そ…

「クロージャの定義」

Java7のクロージャの提案者の一人,Neal Gafterのブログが大変参考になるので,ちょっと野良翻訳してみよう. クロージャの定義 Java 言語にクロージャを追加しようという我々の提案に関して混乱があるようだ.そもそも,Javaにはすでに無名インナークラスと…

Java 7で導入されるクロージャ

次期Javaでは,クロージャが導入されることになっている.クロージャとは,変数と束縛された関数のこと.Lispなどの動的な言語では数十年まえから一般的な機能で,昨今のスクリプト言語では無い方が珍しいぐらいなので,今更という感はなくもないが,導入さ…