Bernie's Blog A confusing concoction of Java, mobile devices, technology and photography

30Nov/092

The must-visit hawker food heaven – Lorong Selamat along Macalister Road, Penang


View Larger Map

Absolutely delicious hawker food available here. Dishes consumed (apologies for butchering the name of the foods in English):

  1. Siam Laksa
  2. Fried Koey Teow
  3. Popiah
  4. Rojak
  5. Gado-gado
  6. Java Mee
  7. Otak-otak (despite its name, this is actually fish steamed with spices)
  8. Chee Cheong Fan

I bet I gained a kilogram or two after the visit.

Tagged as: 2 Comments
26Nov/090

Selamat Hari Raya Aidiladha To My Muslim Friends

Thanks to you guys, I get a long weekend which is always welcomed. If any of you are going for Haj, stay safe.

To other fellow Malaysians, happy holidays. Have fun, but again, be safe. If you guys are anywhere in the vicinity of Sungai Petani, buzz me and we'll meet up.

Filed under: Ramblings No Comments
26Nov/090

Photo – Manchester United

Taken during the most recent Malaysia vs Manchester United match at Bukit Jalil.

*It's been a while since I've last post photos from my Flickr photo stream.

Tagged as: , No Comments
26Nov/097

Google Wave Invites To Give Away

First 19 to comment about how you're gonna use Google Wave, then tweet me (@ebernie) or email me (ebernie at gmail)  your email address gets one. I'll need your email address to send you an invite but please don't write your email in the comments section. Instead use a valid email address when commenting and I'll send it to that email address. Alternatively, you can send me your email address directly via twitter or email.

Don't know what is Google Wave? Watch these video.

Remember, comment with a valid email address (or optionally tweet or email me a valid email)! If you're already Google Wave user, I'd love to hear how your using Google Wave. Add me - ebernie@googlewave.com.

25Nov/091

MySQL Is Open Source, But Not Necessarily Free (ISVs, read)

===============================
Special MySQL Considerations
MySQL software is a well-know case of software with a dual-license. The basic orientation is provided here:
http://www.mysql.com/products/which-edition.html
http://www.mysql.com/about/legal/licensing/oem/
If you want to use MySQL as a commercial distributor (OEM, ISV or VAR) use a commercial license, you must purchase a commercial license.
Otherwise, you can use MySQL Community Edition and Community Server under GNU GPL v2.0. Your software must be compatible with this license, and you may, but do not have to, distribute MySQL with your software.
If your software is FOSS (GPL v2.0 or license listed here, including BSD and LGPL, you can distribute MySQL drivers, namely Community Edition or Community Server Client Libraries, but not MySQL database.
Although the use of a database can be treated as aggregate use, your application is effectively bound to MySQL by usage of MySQL Client Libraries (MySQL Drivers", "MySQL Connectors", including i Java, .NET, ODBC, PHP i C++ connectors and drivers) and related licensing requirements (commercial, GPL v2, or those of MySQL FLOSS exception.
The usage of MySQL drivers through mediation of an application server also seems to be treated as linking and not as aggregation, even if effectively performed the means of XML configuration, annotations (or methods like lookup, Java reflection, or inheritance). These limitations cannot be averted by independent distribution of MySQL database under GPL, usage of MySQL Enterprise drivers, or by silent letting of end-user to install the MySQL database and drivers.
Source:http://wiki.egee-see.org/index.php/Licensing_and_FOSS_Guidelines#Combining_Other_Products_with_Your_Software
===============================
Q3: As a commercial OEM, ISV or VAR, when should I purchase a commercial license for MySQL software?
A: OEMs, ISVs and VARs that want the benefits of embedding commercial binaries of MySQL software in their commercial applications but do not want to be subject to the GPL and do not want to release the source code for their proprietary applications should purchase a commercial license from Sun. Purchasing a commercial license means that the GPL does not apply, and a commercial license includes the assurances that distributors typically find in commercial distribution agreements.
Source: http://www.mysql.com/about/legal/licensing/oem/#1

A brief discussion among the more tech-savvy friends started a small debate - whether or not MySQL is free for independent software vendors (ISVs). Personally, I've heard that it is not, but because I've mostly used Oracle in my projects, it wasn't a concern for me. However, the debate sparked interest because MySQL is downloadable and can be used without much thought, most ISVs use it without knowing that unless their application is going to be GPL-ed, they actually need a license (there are some workarounds involving using a fork of MySQL or using a non-standard JDBC driver).

Read the snippets below for brief licensing information.

===============================

Source: http://wiki.egee-see.org/index.php/Licensing_and_FOSS_Guidelines#Combining_Other_Products_with_Your_Software

Special MySQL Considerations

MySQL software is a well-know case of software with a dual-license. The basic orientation is provided here:

http://www.mysql.com/products/which-edition.html

http://www.mysql.com/about/legal/licensing/oem/

If you want to use MySQL as a commercial distributor (OEM, ISV or VAR) use a commercial license, you must purchase a commercial license.

Otherwise, you can use MySQL Community Edition and Community Server under GNU GPL v2.0. Your software must be compatible with this license, and you may, but do not have to, distribute MySQL with your software.

If your software is FOSS (GPL v2.0 or license listed here, including BSD and LGPL, you can distribute MySQL drivers, namely Community Edition or Community Server Client Libraries, but not MySQL database.

Although the use of a database can be treated as aggregate use, your application is effectively bound to MySQL by usage of MySQL Client Libraries (MySQL Drivers", "MySQL Connectors", including i Java, .NET, ODBC, PHP i C++ connectors and drivers) and related licensing requirements (commercial, GPL v2, or those of MySQL FLOSS exception.

The usage of MySQL drivers through mediation of an application server also seems to be treated as linking and not as aggregation, even if effectively performed the means of XML configuration, annotations (or methods like lookup, Java reflection, or inheritance). These limitations cannot be averted by independent distribution of MySQL database under GPL, usage of MySQL Enterprise drivers, or by silent letting of end-user to install the MySQL database and drivers.

===============================

Source: http://www.mysql.com/about/legal/licensing/oem/#1

Q3: As a commercial OEM, ISV or VAR, when should I purchase a commercial license for MySQL software?

A: OEMs, ISVs and VARs that want the benefits of embedding commercial binaries of MySQL software in their commercial applications but do not want to be subject to the GPL and do not want to release the source code for their proprietary applications should purchase a commercial license from Sun. Purchasing a commercial license means that the GPL does not apply, and a commercial license includes the assurances that distributors typically find in commercial distribution agreements.

25Nov/090

Dependency Injection Fails With Spring 3.0.0 RC2, JUnit 4.7, Mockito

Following text-book examples of using SpringJUnit4ClassRunner.class with Mockito, I couldn't get DI to work. It doesn't matter if I use the old-school way of XML configuration + setter injection or if I use annotations, they just don't work. Oddly though, the log shows that the application context did start, and beans were instantiated, they were just not injected and the beans are null. The beans are not mocks, but real classes that I need to use.

Curious, I created a simple main method to test the program and true enough, things work. As of now, I'm unable to determine why this is failing and I'm already delayed, so I'm abandoning Spring 3.0 for now. JUnit and Mockito works as I've only recently added Spring to get some AOP stuff working.

If you've got a similar combination working, I'm interested to know how this was done. Oddly enough, I can't seem to Google for any similar problems.