Sunny Chan blogs
Can you see the Logic in my Madness?
Can you see the Logic in my Madness?
I have got a Synology DS209 at home, which is an ARM based NAS. Oracle has released Java SE Embedded 7 and it has got ARMv5 support, so naturally I would want to see whether my NAS is up to it:
disk> uname -a
Linux disk 2.6.32.12 #1955 Sat Nov 26 14:50:54 CST 2011 armv5tel GNU/Linux synology_88f6281_209
disk> java -version
java version "1.7.0_02"
Java(TM) SE Runtime Environment for Embedded (build 1.7.0_02-b13, headless)
Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode)
So "Hello World" is working. Let's try something more fun - like running jetty:
disk> java -jar start.jar
2011-12-14 03:33:21.810:INFO:oejs.Server:jetty-8.0.4.v20111024
2011-12-14 03:33:22.039:INFO:oejdp.ScanningAppProvider:Deployment monitor /volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps at interval 1
2011-12-14 03:33:22.075:INFO:oejdp.ScanningAppProvider:Deployment monitor /volume1/homes/schan/jetty-distribution-8.0.4.v20111024/contexts at interval 1
2011-12-14 03:33:22.096:INFO:oejd.DeploymentManager:Deployable added: /volume1/homes/schan/jetty-distribution-8.0.4.v20111024/contexts/javadoc.xml
2011-12-14 03:33:22.413:INFO:oejd.DeploymentManager:Deployable added: /volume1/homes/schan/jetty-distribution-8.0.4.v20111024/contexts/test.xml
2011-12-14 03:33:22.845:INFO:oejw.WebInfConfiguration:Extract jar:file:/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war!/ to /tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp
2011-12-14 03:33:30.509:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war
2011-12-14 03:33:30.510:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war
2011-12-14 03:33:30.510:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war
2011-12-14 03:33:30.518:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war
2011-12-14 03:33:30.518:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/tmp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},/volume1/homes/schan/jetty-distribution-8.0.4.v20111024/webapps/test.war
2011-12-14 03:33:31.338:INFO:oejhs.SslContextFactory:No keystore or trust store configured. ACCEPTING UNTRUSTED CERTIFICATES!!!!!
2011-12-14 03:33:32.929:INFO:oejs.TransparentProxy:TransparentProxy @ /javadoc-proxy to http://download.eclipse.org/jetty/stable-8/apidocs
2011-12-14 03:33:33.047:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 STARTING
I am very impressed - They also have the server VM for ARMv7 too - maybe it's time to get a new Diskstation!
schan in Anything 10:52PM Dec 13, 2011 Comments[0]
I have upgraded this website to:
schan in Java 10:34PM Dec 13, 2011 Comments[0]
Just to save people from scratching their heads - if you try and compile OpenJDK from vanilla source bundle (not IcedTea) on Fedora 16, you migth see libjvm.so fails to link with a message:
libstdc++ not found
If you look at OpeJDK build readme:
This is caused by a missing libstdc++.a library. This is installed as part of a specific package (e.g. libstdc++.so.devel.386). By default some 64-bit Linux versions (e.g. Fedora) only install the 64-bit version of the libstdc++ package. Various parts of the JDK build require a static link of the C++ runtime libraries to allow for maximum portability of the built images.
DOH! So what you will need on Fedora 16 is libstdc++-static package
schan in Anything 05:01AM Nov 12, 2011 Comments[0]
If you have following the OpenJDK build Readme and try to compile OpenJDK on Ubuntu 11.10, you may see this error:
/home/schan/openjdk7/build/linux-amd64/tmp/sun/javax.sound/jsoundalsa/obj64/PLATFORM_API_LinuxOS_ALSA_PCM.o: In function `DAUDIO_GetFormats':
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x1fd): undefined reference to `snd_pcm_format_mask_malloc'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x20a): undefined reference to `snd_pcm_close'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x225): undefined reference to `snd_pcm_hw_params_malloc'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x236): undefined reference to `snd_pcm_hw_params_get_format_mask'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x246): undefined reference to `snd_pcm_format_mask_free'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x259): undefined reference to `snd_pcm_hw_params_any'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x26a): undefined reference to `snd_pcm_hw_params_get_format_mask'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x277): undefined reference to `snd_pcm_hw_params_get_channels_min'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x288): undefined reference to `snd_pcm_hw_params_get_channels_max'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x2cf): undefined reference to `snd_pcm_format_mask_test'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x45d): undefined reference to `snd_pcm_hw_params_free'
/home/schan/openjdk7/build/linux-amd64/tmp/sun/javax.sound/jsoundalsa/obj64/PLATFORM_API_LinuxOS_ALSA_PCM.o: In function `setStartThresholdNoCommit':
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x48c): undefined reference to `snd_pcm_sw_params_set_start_threshold'
/home/schan/openjdk7/build/linux-amd64/tmp/sun/javax.sound/jsoundalsa/obj64/PLATFORM_API_LinuxOS_ALSA_PCM.o: In function `setStartThreshold':
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x4bf): undefined reference to `snd_pcm_sw_params'
/home/schan/openjdk7/build/linux-amd64/tmp/sun/javax.sound/jsoundalsa/obj64/PLATFORM_API_LinuxOS_ALSA_PCM.o: In function `setHWParams':
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x518): undefined reference to `snd_pcm_hw_params_any'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x531): undefined reference to `snd_pcm_hw_params_set_access'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x544): undefined reference to `snd_pcm_hw_params_set_format'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x557): undefined reference to `snd_pcm_hw_params_set_channels'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x58a): undefined reference to `snd_pcm_hw_params_set_rate_near'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x5dc): undefined reference to `snd_pcm_hw_params_set_buffer_size_near'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x60b): undefined reference to `snd_pcm_hw_params_set_period_time_near'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x61b): undefined reference to `snd_pcm_hw_params'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x647): undefined reference to `snd_pcm_hw_params_set_periods_near'
/home/schan/openjdk7/build/linux-amd64/tmp/sun/javax.sound/jsoundalsa/obj64/PLATFORM_API_LinuxOS_ALSA_PCM.o: In function `setSWParams':
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x67e): undefined reference to `snd_pcm_sw_params_current'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x6b4): undefined reference to `snd_pcm_sw_params_set_avail_min'
PLATFORM_API_LinuxOS_ALSA_PCM.c:(.text+0x6c4): undefined reference to `snd_pcm_sw_params'
Don't panic - it looks like the Java's linking sequence for ALSA sound library is wrong. Just use this patch:
--- old/make/javax/sound/jsoundalsa/Makefile 2011-10-28 02:28:00.000000000 -0400
+++ new/make/javax/sound/jsoundalsa/Makefile 2011-10-28 02:28:00.000000000 -0400
@@ -65,7 +65,7 @@
$(MIDIFILES_export) \
$(PORTFILES_export)
-LDFLAGS += -lasound
+EXTRA_LIBS += -lasound
CPPFLAGS += \
-DUSE_DAUDIO=TRUE \
schan in Java 09:45AM Oct 28, 2011 Comments[0]
These are the steps that I have made OpenJDK to compile on Windows platform:
Important: In order to build a 32bit JDK you must use a 32bit System - ie. you cannot cross compile (ie. 64bit Windows and compile a 32bit JDK)
Let me know whether it works for you. if it doesn't tell me what's wrong and I will fix the instructions!
schan in Java 07:42PM Jul 24, 2011 Comments[1]
This is the abstract for my COSCUP talk on August 18th, 2011:
OpenJDK 7: The universal language runtime
Sunny Chan
Hong Kong Java User Group Leader
OpenJDK 7 is the latest release of the Java Platform. In this release, there are a number of major innovations in the OpenJDK's Java Virtual Machine to enable other scripting languages like Ruby, Python and PHP to run on the platform efficiently.
In this talk, I will give you 5 reasons why you should run your applications written in alternative languages like Ruby on the OpenJDK Runtime. I will also explore some of the common myths about running your application with the Java Runtime.
schan in Java 09:18PM Jul 15, 2011 Comments[0]
Tags: coscup
Here is my status / thought three weeks into Plan A (formerly known as Plan B)
schan in Anything 03:33AM Feb 16, 2010 Comments[0]
The cat is now out of the bag, and I am slowly shutting down my life over here. I think it's time to do a review and take stock of what I have achieved and looking ahead
Most people have thought that my mom and dad made the decision for me to come over here, on the contrary it is actually me initiated the whole studying in UK. I was not happy at the school I was studying in Hong Kong and I see this as a way out to the terrible time I had in Hong Kong - I considered myself being bullied by my teacher and I thought certainly this "mother" country could not be worse. (The colonial government did a good job of brain-washing me :-).
When I first set foot in this country it feels strange yet farmiliar. The car drive on the correct side of the road, except that everything is in English. I certainly can feel the chill but I do find the people are very welcoming and have a strange sense of humour. But I certainly didn't forsee my experience in Felsted - it changed my life completely.
I definitely remember the first night in Follies. I was sobbing like a little baby in the little desk that we have for the NIPs (stands for Not Important Person). I think most of my housemate is puzzled - I think it is the thought of having to fence for myself from that point onwards. But soon after I get into the strive of studying and living in the boarding school, and I definitely make good use of my time there. Initially I am pretty sceptical of the gwai chais there. My parents have told me a few things about what they are like and I have found out that it is completely different - once we have worked out our cultrual differences I think my friends Felsted are warm and welcoming, and much more down to earth then I first thought. I have certainly made a lot of really good friends and we are still in touch 20 years later.
I am a pretty open minded person and after my "training" in Felsted I can really apperciate the way of life here and the culture. What I really love about this country is that people are humble and they are able to laugh about themselves and being selfless in a lot of ways. They like to engage with people and encouraged to look outwards and dream. I feel free to be myself here - as long as you don't go and kill people, you can do whatever you want. There are certainly a lot more social norm and convention out there in Asia, which would be very interesting to deal with.
I will definitely feel sad to leave behind all my good friends I made over the years, as well as the piece of London that I own (okay, the little piece of London that have been leased to me for another 70 years :-). I would definitely missed the days that I can go to the football games or take a spin in the winding road down in countryside.
However, I feel that it is the right opportunity to make a change in direction for my life. It would be a big culture shock when I am back in Hong Kong but I don't want to regard it not doing this while I still can. Who knows where life would take me but I certainly would be quite happy to come back and call UK home.
schan in Anything 08:10AM Dec 23, 2009 Comments[0]
According the this website, The phase "The Seven Years Itch" means the inclination to become unfaithful after seven years of marriage. Ladies, don't worry, I am still single and available. However I wonder whether I do have a five years itch.
So far in my life I never really stayed at one location / school / job for more then 5 years. The worst period is during my Primary School years, where one reason or another I have moved to 3 primary schools - nearly once every 2 years. By the way, I do not recommend anyone to subject their son and daughter to this as for me it was pretty traumatic, and it has turned my life upside down. Without the bad experiences during my late Primary / early Secondary School years, I would probably have not pluck up the courage to take the big step to study in UK. The period I spent in Felsted is the best time in my life, where I made friends and won respect - people still remember me out there after 10 years! If I haven't studied to Felsted, I probably won't get into Imperial, and would probably got the job that I am doing now.
Sometimes I am wondering whether Plan B is my 5 Year Itch, but I don't think it is such a bad thing.
For those who wonder what happen with Plan B I am still waiting for Human Resource in the bank I am working for to sort things out. It may take 2-3 months. I have already started to throw away old books and stop buying items that I cannot take with me. However, until I have the offer no one should assume that Plan B is happening. So please do not discuss this with my parents yet!
schan in Anything 11:26AM Oct 04, 2009 Comments[0]
相信你們都常常聽我提及有關我參與不同的義工服務。 很高興在這裏,隆重宣佈: 本會的第一份宣傳小冊子已經出世了 (見附件)。身為司庫的我,親眼見證這群babies(小冊子) (一) 將 "無界限" 的成立、宗旨、目標、服務對象/ (二) 朋友們如果你身邊在這方面有需要協助的人,可以聯絡我們, (三) 歡迎認同我們理念的社會各界人士,加入我們的行列。 (四) 籌募經費 : 希望大家能慷慨解囊,樂善好施。 Please help to spread the news to your friends, colleagues (in HK for Sunny) so that someone may like to donate money to our community. I will bring a few handouts to Sharon's home today. Forwarded two words files for follow-up action. Mother
schan in Anything 08:27PM Oct 03, 2009 Comments[0]
View The Italian Job in a larger map
I am planning to switch on Google Latitude during the trip so that people can track where I am. More details to follow
schan in The Italian Job 10:46AM Sep 13, 2009 Comments[0]
Just to save other people out there who have try to use autofs:
All automount map file must be non executable (eg rw-r-r-)
If not automounter will refuse to load it. I was scratching my head for a whole night trying to figure out my new ubuntu installation refuse to mount my NFS home directory. I am just about to blame ubuntu for this :-)
schan in Anything 02:11AM Aug 07, 2009 Comments[0]
Well, as most people who read this knows that I am pretty keen on Palm Pre. However my Nokia N95 is falling apart and I need a phone now to replace my Nokia. So I decided to take a look and I have decided to get a T-Mobile G1 for now, and then when Palm Pre is out here at the end of the year I would go and get
For those who doesn't know, T-Mobile G1 is the first phone that is based upon Google Android, the Linux based mobile OS that uses a subset/special implementation of Java as the main program interface.
I have been using the G1 for about a week now, and so far so good. It's pretty slick and the interface are pretty good compare to the iPhone. All the apps I wanted to use are there, including a fairly decent Live Messenger client. Althought the AppStore is not as good as Apple, it is growing and there are a few useful one up there. Hopefully once the Chinese Manufacturer making cheaper Android phone more developers will move onto the platform. Though it should be fairly easy to move J2ME application onto the Android platform (quite similar but not exactly the same - however a good developer can easily develop Facade to support both).
Anyway, I should download the SDK and have a play around soon.
schan in Anything 02:06AM Jul 17, 2009 Comments[0]