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

2011年のふりかえり

気がつけば大晦日。急いで書きます。 趣味のこと お仕事が忙しくて自分の時間があんまり無かったのであれなんですが、プログラミング言語ではScala, Haskell辺りをさわってみていた記憶があります。あとOCamlのLwtも少し。Scalaはう〜んどうかなぁ... 個人的…

Non blocking IOでecho server

まぁクリスマスなんですがJavaのNon blocking IO周りについて少し調べてました。非リアですね。参考にしたのはうっすらと全体を網羅していたっぽいこちら => http://tutorials.jenkov.com/java-nio/index.htmlで、手を動かさないと理解できない人種なので簡…

functor適用するときtypeに直接record型を定義すると怒られる件

↑のpostで引っかかったので単純な形にして確認してみた。 functor.ml (functorの定義) komamitsu@carrot:~/lab/ocaml$ cat functor.ml module type HogeType = sig type t val string_of_t : t -> string end module Make(Hoge : HogeType) = struct let pri…

A* search algorithm用のモジュールを書いてみた

仕事ではOCamlもA* search algorithmも全く使っていないのですが、自宅で気分転換/リハビリがてら何か書こうとすると、すぐOCamlでA* search algorithmを書いてしまいます。たまにダイクストラ法で何かgraphを探索するやつも書きます。毎回同じようなものを…

List的なものをパースしたい

まぁ全く必要に迫られている訳では無いのですが、日々JavaでかつAndroidアプリ開発をしていると、精神衛生上いろいろとあるので、少し触って放置していたParsecで遊んでみることに。前回四則計算をやったような気がするので、今回もこじんまりとリストのパー…

初Lwtでecho server

書いた。 https://gist.github.com/1362149これ↓を参考に https://github.com/avsm/ocaml-cohttpserver/blob/master/server/http_tcp_server.ml 適当に書き始めたのだけど、途中で「やばい徹底的にmonadicに書かないと動かないというかコンパイル通らない」…

Issue 7933: Closing a socket from another thread doesn't generate IOException

う〜ん、どうやら全力でこいつを踏んでいるみたい... http://code.google.com/p/android/issues/detail?id=7933

そもそもAndroidOS2.2以前では別ThreadからのSocket#close()が効かない件

http://d.hatena.ne.jp/komamitsu/20111103/1320338412 の続きで少し見てみたら、HttpRequestBase#abort() -> AbstractClientConnAdapter#abortConnection() -> SocketHttpClientConnection#shutdown() -> Socket#close() と来ているので、やっぱりこの辺か…

AndroidではHttpGet#abort()が効かないみたいな疑惑

OpenJDKでもOracleJDKでも、org.apache.http.client.methods.HttpGetのexecute()でblockしている間, 以下のように別Threadからabort()させることができます。 public class App { public static void main(String args[]) { final String hostname = "localh…

ORMLite使ってみたメモ

ここ半年位、Android Appを開発しています。関係者一同の頑張りもあって100万ユーザーという非常にうれしい状況なのですが、結構なハードスケジュールで開発が進んだので割と力技で泥臭く実装している箇所があったりします。Database周りもゴリゴリSQL文…

maven-android-pluginを使う & m2eclipseと連携するメモ

今更なのですが、メモを残しておこうかと。というか http://code.google.com/p/maven-android-plugin/wiki/GettingStarted と http://rgladwell.github.com/m2e-android/ 見ればいいだけなんですが、まあ一応。ちなみにADTからproject作っちゃった場合向けで…

ScalaでA* Algorithmで経路探索

ふと気がつけば 函数プログラミングの集い 2011 in Tokyo - PARTAKE が開催されていたりしていて、数ヶ月前の状況を考えると「絶対参加できぬ... 変な期待は持たぬが吉...」みたいな感じだったのですが、今となってみると参加できたじゃん的な状況でUST観て…

ASPIRE 5750で輝度調節が効かない件

自宅のデスクトップがイカれ始めていて尚且つ以前から騒音状態だったので、適当なノートに乗り換えることになりコストパフォーマンスが素晴らしかったASPIRE 5750を購入。Ubuntu11.04を入れてみたら輝度調整が効かなくて目が疲れてきたので対応することに。…

Logicoolのtrackballでwheel scroll

mouseが壊れちゃったので初めてtrackballというものを買ってみたのだけど、結構良い。でも、Linuxだと付属のwheel scrollソフトが使えないので何とかしようと。で色々見てみたら/etc/X11/xorg.confをごにょごにょすれば良さそうなんだけども、最近はそれはあ…

merge sortの練習

この二ヶ月間ちょい、仕事の方で一杯一杯だったので、全然趣味的なプログラミングができずに、割と悶々としておりました。で、最近になって落ち着いてきたので、以前少し触っていたScalaを思い出そうとしたら完全に忘れていることに気づきリハビリがてら何か…

縦分割して左半分の続きを右半分に

Vim

素晴らしかったので引用http://markmail.org/message/kbnyhxffy6zs7picvia http://twitter.com/#!/tetsutan/status/66080475680227328 Hello!Place the following into your :" -------------------------------------------------------------------- " ema…

Icon Badge的な何か

iPhoneでよくある例のやつです。Androidでは標準で無いので自前で何とかしないといけなさそうですが、どうもサンプルコードが見当たらないのです。悲しい…嘆いていても仕方が無いので自分で書いてみました。 ImageWithBadge.java package com.komamitsu.andr…

ScalaでBinary Tree

Scalaを始めてみました。実のところOOPとFPの融合という点で「使いこなせないのではなかろうか?」という不安が結構あったので、ちょっと消極的だったのですが、色々な人に「仕事でJava、趣味でOCaml?じゃあScalaでしょう」と言われる機会があり、やってみ…

x86_64環境でのocaml-mysqlが上手く動かなかった件

先日から、AWS EC2上にFree usage tierのインスタンスを作って、CPU使うようなことはそちらで行おうとしています。まぁきっかけは節電なんですが、もともとEC2に興味があったので。それはさておき、動かそうとしているのはMySQLをstorageとしたOCamlのプログ…

failed command: READ DMA EXT

昨夜、PCを立ち上げたら下記のようなエラーをdmesgに吐きつつ、initramfsプロンプトに落ちてた。 : [ 7.012183] ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 [ 7.012189] ata3.00: BMDMA stat 0x24 [ 7.012195] ata3.00: failed command: RE…

Tomcat5.5メモ

ひょんなことからTomcat5.5を触っているのだけど、日頃の行いが悪いせいか落とし穴に落ちまくっていたので、経験則的に「これでとりあえず動く」ような設定をメモっておきます。ほぼ完全に自分用のメモです。補足すると、「JSP fileにて、c:forEach with EL …

MySQLからRedisへのimport tool

この程度のことは何かしらの言語を使って、一瞬で作らなきゃだなぁ、と思って何が適当か少し考えてみた。想定される制約条件は以下。 いろいろなサーバーで実行したい Root権限が無いケースも想定 インストールされているのは Perl, Python, Java(Maven入り)…

短縮URLサービスの入力チェック色々

ちょっと調べてみたら各社いろいろバラバラなのでまとめてみました。 サービス名 URI schema無 許容されるURI schema RFC1034的にダメな文字 アンダースコア TLD無 bit.ly ○ http, https, ftp △(読み飛ばされる) △(読み飛ばされる) × goo.gl ○ http, https, …

2800万件つっこんでランダムアクセス

http://twitter.com/#!/koma_mitsu/status/42589756168749057Twitterでもメモっておいたんだけど、後で探し辛いのに気がついたのでこちらにもメモ。Redisに2800万件のレコード(300バイト程度)を突っ込んでランダムアクセスをさせてみたら、性能落ちずに140…

Hibernate触ってみたメモ

そろそろ仕事がらこの辺りもからんできそうなので家事育児の隙をついて弄ってみました。という備忘録的メモ。まぁ実際はSpring経由でやりそうなんですが、まず直接使ってみたいなぁと。方針は以下。 できるだけAnnotationで Maven! Maven! Maven! -1. 事前準…

"The Apache Modules Book" 中のサンプルコードのバグ

PRENTICE HALLから出ている本なんだけども、"3.5.4.1 Arrays" で書かれている以下のコード apr_array_header_t* arr = apr_array_make(pool, sz, sizeof(my_type)); (snip) /* Iterate over all elements */ for (i = 0; i < arr->nelts; i++) { /* A C++ re…

Redisレプリケーションメモ

最近、NoSQLと分類されるRedisで遊んでいるのですが、レプリケーションをさせてみるメモを残そうかと。まず、masterとslave用の設定ファイルを作成します。ほとんどデフォルトのままですが、ファイルが衝突しないように変更しているの、とレプリケーション用…

Parsecで四則演算パーサー

前回から始まったParsec編も今回でついに最終回となりました。今回は少し背伸びをして四則演算パーサーに思い切って挑戦してみたいと思います。 えいっ! import Text.ParserCombinators.Parsec main = do cs <- getContents case parse expr "" cs of Right…

はじめてのParsec

昨年の暮れから、空いている時間を見つけてはHaskellのお勉強をしているのですが、ここ数日はParsecを触っていてエラーメッセージが分かり辛いとか、そういうお正月を過ごしています。普通であれば、手始めに四則演算なぞをパースしてみるところな気がします…