December 9, 2008

Opera 10 alpha download

Heard about Opera 10 scores perfect 100/100 on Acid 3 test?  Download ALPHA version here (Windows).  For other platforms, go here.

I use IE, FF, and Opera.  (No Chrome, no Safari.)  It's because:

  • IE: some sites just requires it.

  • FireFox: many good add-on, especially for development.

  • Opera: Fast, and I need another browser to use with a different proxy.


Donate to OpenOffice and Wikipedia, or to Red Cross

"erl -man io" doesn't work?

While I was playing around with erlang, I found my installation of erlang's man page does not work:
$ erl -man io
No manual entry for io

I have compiled and installed (with configure's prefix option) in /opt/erlang on Solaris 9, put the man page files just in /opt/erlang/man.  Clearly this doesn't work.  So I did some tracking with:

$ truss -o /tmp/output.txt erl -man io 

(truss is like strace for Solaris; "strace" on Solaris is completely different thing.)

And found that the "/man" directory should live in /opt/erlang/lib/erlang/man.

"erl -man io" works now.  It's in MANPATH and Windex is created -- so just "man io" would work just fine, but I just wanted to fix it anyway.

December 8, 2008

Windows remote task list

Just a note for myself.  I had to list processes of an XP box, remotely from Vista.  This can be done by issuing following command:
tasklist.exe /s [computer name] /u [user name] /p [password]

At first try, I got an error message, "ERROR: Logon failure: unknown user name or bad password."  I had to change network securtiy on XP machine:

Administrative Tools -> Local Security Settings -> Local Policies -> Security Options -> Network Access:Sharing and security model for local accounts".  Set this to "Classic - local users and authenticate as themselves".

December 6, 2008

Erlang and Java (and Scala too)

People on the net did many performance testing on Erlang, and it shows that Erlang clearly wins over other environments.  And I see that more people are experimenting with it and there are real systems built on it, and performs incredibly.  The language is not easy to learn for someone (like myself) who worked in C++ and Java for many years and only touched Prolog (and Lisp) very lightly.  It's very fun to play around with it, but it'll take a while for me to be proficient enough to write a big application in it.  I was a bit bored with Java and was looking for something new, so it's alright.

I started wondering why this (Erlang way of concurrency) can't be done in Java, and found something: Kilim. (and Scala's concurrency.)  It is too early for me to say anything about them as I don't know enough, but it's worth reading a few pages.  This page shows Java+Kilim out performs Erlang: http://stephan.reposita.org/archives/2008/06/22/erlang-vs-java-benchmarking-update/

Kilim: http://www.malhar.net/sriram/kilim/index.html

Here is a posting about Erlang and Scala: http://yarivsblog.com/articles/2008/05/18/erlang-vs-scala/ I only read and played around basics with Scala and thought it's just a way to add FP to Java.  After reading above posting, I looked at Scala site and found this article: http://www.scala-lang.org/node/242.  Take a look at the example code.  It's very similar to Erlang how concurrency is done.

To Do:

Trying Erlang

I tested DB and Yaws a bit, and found DB access wasn't working for Solaris version of Erlang.  After some digging, I found that iodbc does not work.  There are two (open source) flavors for ODBC in Unix.  iodbc and unixODBC.  I recompiled Erlang with unixODBC, and DB access works --- sort of.  Still some SQL doesn't work properly, and I haven't figured it out yet.  But it's good enough to test Erlang and Yaws for now.  For Ubuntu, no problem.  Installing Erlang, ODBC, and Yaws were effortless.  But I like Sparc Solaris I use at home. :-)  It's quite old, but still have enough disk space, RAM and works extremely well.

unixODBC: http://www.unixodbc.org/

One thing about Yaws on Solaris -- while I was building Yaws, I got an error from 'id' with option '-u'.  This is due to Solaris 9's 'id' (located in /usr/bin) doesn't support -u option.  I temporarily changed GNU's 'gid' to 'id' and it built correctly.