Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Saturday, June 12, 2010

Attending Singapore Google Technology Group Meetup

 

Today I attended this Singapore Google Technology User Group Meeting. It's my first time to attend such a Google meetings. Some of previous meet ups had always fallen on the wrong days -- on the day that I have something else to do. Today I am glad to be able to make it, attended the meeting, and Wesley Chun, was the speaker. He presented 2 sessions, one about Python and the other one about Google App Engine.

This guy's a hardcore Python guy, wrote the Core Python series of book, and was a presenter in the PyCon Asia Pacific 2010, Singapore -- an event that has been held last 3 days. Awesome in depth knowledge, vast industrial experiences, and keep the talk flows fluent.

The rest about the meeting can be found here: http://www.sg-gtug.org/2010/05/sg-gtug-special-tutorial-session-june.html

Friday, January 22, 2010

EU Commission Approval of Sun Microsystems Acquisition by Oracle: Lesson Learned

Yesterday James A. Goosling, the founder of Java platform, put a picture in his blog: "So long, old friend...".
After the EU Commission approved Sun Microsystems (NASDAQ: JAVA) acquisition by Oracle Corp (NASDAQ: ORCL), Oracle expects that Russia and China will also accept it. The main foreseen obstacle to the agreement was the EU Commission approval. Now that it has been approved, the acquisition is expected to go smoothly.

Some people began speculating on the fate of open source projects, which nurtured by Sun, yet they don't believe that Oracle will give enough support for those open source projects. One high profile fear was from Monty Widenius, the founder of MySQL, which after selling the company to Sun left MySQL (the company), and forked a new database project: MariaDB. He campaigned to prevent the acquisition of MySQL by Oracle. Now we see the result, it seems that he lose the campaign. Some voices also speculate about the fate of OpenOffice, Glassfish, etc after the acquisition.

This matter once again prove: "a technology is good, but we also need to make money". Of course Sun Microsystems is not the first to go down, there were a lot of dead carcasses of open source companies ended up acquired by profitable commercial companies that sell their proprietary products.

Sun is highly respectable company, which produced a lot of very good products. All hail respect to the company that bred the Java technology and platform, which took over the world. Yet, after this high profile achievement, the company still need to make money to bring value to the shareholders.

Lesson Learned: Companies Need To Make Money In Order To Sustain the Business

I guess this serves as reminder for those people (including me) who wants to make a company based on sophisticated technology, either open source or closed source; take note, when we start a company, we also need to make money.

Now that Wikipedia site had grown that big, the non-profit model required it to campaign for more money to sustain its operation.

Thursday, October 2, 2008

Start Ups in Information Technology

When I was on 4th grade undergraduate student, we were thinking of establishing a start-up company in IT. Some of my peers are also having the same vision. In our batch of 50 students there were 2 companies spawned up. Some of our seniors and also some of our juniors have also established start up companies.
That time when we started establishing a company together, we were all fresh graduates, we don't have all the needed knowledge, enough exposures to the industry, no fundings and there were no such focused approach on doing business.

Some of my colleagues at campus were also doing same thing. Some of the companies they setup still survive until today, as well as many have turned belly up. 

Looking into that my past experience on this, I have learnt a lot. Most of them I learnt it the hard way. I was forced to chew on either sweet of bitter dough.
There are multi-dimensional aspects when starting a business. It is not just technical matters. Even if it is technical matters, it's not just IT technical matters!

What really matters is whether the business could produce enough results worth the efforts spent. In order to be able to benchmark this, you have to know the market price.

Another difficulties and problems with partnerships were to determine how many is too much. We started with 3 people then expanded to 9 people. Too many people made it difficult to gain majority vote which translate to more difficult in making decisions. Synchronization of vision and movements might cause some problem too. 

(to be continued)

Tuesday, July 15, 2008

Sun Developers Day 2008 at Singapore


Today I attended the Sun Developers' Day. My office is not in the habit of sending people to such events, so I have to be a proactive person, take a one day leave to attend this event.
"Sun Developer Day 2008 brings together visionaries, leading experts and developers to seize the next wave of technical innovation through Open Source".

Trends that were presented are in the topics of JavaFX, MySQL, OpenSolaris.

This is my first time attending Sun Developers' Day. There were Sun Developers' Day events in Jakarta, but I didn't manage to have time to attend one of them. 

Some thing that interest me are: JavaFX, VirtualBox, new OpenSolaris eye candy, MySQL tuning, and Solaris DTrace, JDK 6 update 10, Grails.


Matt Thompson, manager of the Sun Technology Evangelist group,  gave an opening message. 

Among the speakers were:

Chuk-Munn Lee, Senior Developer Consultant and Technology Evangelist for Technology Outreach at Sun Microsystems in Singapore.

Joey Shen (Zhuo-Li, Chinese), Technology Evangelist for Sun Microsystems based in Beijing, China.

Peter Karlsson, Solaris Technology Evangelist for Sun Microsystems. 

Raghavan Srinivas, CTO of Technology Evangelism at Sun Microsystems.


This even also intertwinned with JavaJive competition final between universities from Singapore, Malaysia, and Thailand. Previously local competitions have been held in their respective countries. The final presentation brought was won by team from Thailand.



Thursday, July 10, 2008

Intalio Training in Singapore

Today, Arnaud mailed me about the incoming Intalio training soon (2 days from now!) in Singapore.

This is the link for the training:
https://www.regonline.com/builder/site/Default.aspx?eventid=622027

I must look for other opportunity, because the date is too close for me. The training must take 2 days and need to apply leaves in advance.

Two days ago I attended the cocktail party of Intalio - Liferay Join Event.
I browsed back and just realized that Joshua Jackson from JUG Indonesia mentioned about it one month ago. They have presence here in Singapore, and entering Indonesian market.
It was lively cocktail, nice talk, great food, extraordinary people there.

Great to meet these people in person: Michael Han and Sang Baek, Arnaud Bladin and Ismael Ghalimi.

So sad, we didn't go into a point for technical aspects of integrating the Intalio business process management into Liferay. But they did the work very well to convince me that they are a good company with excellent products.

Quite astounishing there, I met a bunch of fellow Indonesians who have been working with Liferay!

Wednesday, July 25, 2007

What is an XA driver?

XA is a set of distributed transaction protocols defined by Open Group.
XA provide interfaces that could be used for cross platform transactions. Currently, much of the famous databases provided XA-compliant drivers. XA-compliant driver means that the transaction manager could send XA command directly to the driver.
Oops, sorry, in the world of distributed transaction, there are transaction manager and resource managers. Transaction manager coordinate the transaction, orchestrating the two-phase commit for each of the resource manager.
In JEE point of view, and transaction manager could be a type 3 JDBC driver, and the resource managers could be an XA compliant JDBC drivers, or general type 4 JDBC driver in which the type 3 JDBC driver will emulate XA command using common JDBC transaction commands.
In WebLogic console, when we setup a connection pool, usually we will be asked whether we want to assign an XA driver or just ordinary driver. XA drivers will have a significant overhead imposed into it, so make sure you only use the XA drivers when really required. It is common to have an XA-compliant version of connection pool and non-XA-compliant connection pool, both connecting to the same database, to avoid performance penalty when we don't need two-phase commit.
In my former company, we have a clustered WebLogic server installation with each of the databases have two pairs of connection pools, a non-XA and XA-compliant driver. Due to clustered environment, database connection are using RMI through JNDI lookup. For read only data, always use non-XA connection pool to increase performance.

Thursday, May 17, 2007

Nevada and then XmlBeans

This early morning, I managed to boot my MiNevada Solaris. It says something that recommends you to boot using Solaris failsafe, because it seems that it wasn't restarted gracefully.
Actually there's some terms I need to find out, because Solaris has different terms for disk stuffs some of them are cylinder groups/CG and slices.

Currently it is a high time for our (our and our clients') project, because we are somewhere half way to the completion of the SIT (System Integration Test). There are some problems that dragged our schedule, especially the slow and unstable network connection. Some of the SMSC (Short Messaging System Center) was also reported to fail on bindings/connection. The problems seemed to be irreproducible easily, because there were no changes on the binaries we deployed. It has been working before, now it doesn't work.

Last week I offered myself to present this topic: Apache Xmlbeans for the next Java Meeting Up (JaMU) on June 2007. I will not be able to attend this month's JaMU as I will be here in Cyberjaya until beginning of next month. I was lucky to experience it since I was assigned for the Galaxy customer care application until my latest project. Both WebLogic Platforms (8.1 and 9.2) heavily use the Apache Xmlbeans framework. I think the hardest think to learn at first is the XSD file. For me the XSD structure is obscure. I am not getting used to XML parsing other than using the Apache Commons Digester library. That's the way Struts digest the struts-config.xml file, and I think that was more than enough.
But since I am exposed to a project that heavily uses web services, I need a more sophisticated framework to map XML to Bean and vice versa. That was the time when I found this XML Bean mapping framework. The nice thing about it is that it offers the full functionality of XML while it is easily usable using ordinary Java Bean accessor methods.

Wednesday, March 28, 2007

Oracle Acquired Tangosol

Last year it was TimesTen and SleepyCat (BerkeleyDB).
This year it is Tangosol.
Who will be the next?

This database giant acquired Tangosol (vendor of Coherence data cache which has been used in many large financials), adding to its "Extreme Transaction Processing" initiative.

http://go.techtarget.com/r/1194471/5981609
http://www.oracle.com/tangosol/index.html

Tuesday, March 27, 2007

Ill Behaviored HTTP/1.1 Client

Today I've been message by my campus friend, asking an advice for tuning a SJAS. How many threads should he have for servlets, how many MDBs, and how many database connection in the pool.
He set the number for 1024, 128. Hmm. Very big. I asked him, how much memory and processor resources and app server instances do you have. The answer was shocking:
1 processor, 1 gigabyte, 1 instance  

As far as I can remember, on a WebLogic they recommend to use less than that number of threads for best practices on each instances. Wow, and we were talking about WebLogic 8.1 instance in a UltraSPARC-IIIi Solaris 9 boxes with 8 gigs of memory!

I thought there must be something else happening. For just 1 processor, processing many threads is actually a waste of time in the context switching. I think it should not be like that. There something wrong when the system. It is already out of resource and the queue piles up. It must be some kind of resource starvation. Some resource may not be released during the process. Some resources are held for longer than it should be.

Then I remembered that I have had encountered some problems here.

The HTTP/1.1 Protocol has been there for such a long time. But there are some behavior most programmers still don't know.
The HTTP/1.1 differs from HTTP/1.0 that it implements persistent connection by default. The HTTP/1.1 will not be closing its connection after your client application exits. Your browser or client application by default will maintain HTTP connection until time out period elapsed. Before time out period, the connection is still up, and whenever you need to make more requests your browser or your HTTP client application will reuse the HTTP connection when possible, thus eliminating the overhead needed to setup such connections. The browser application makers have been doing their job very well it is transparent for us to such happenings in the protocol. 

Remember I said 'by default', because you can explicitly asks the server (by adding a header field) to close the connection once the request has been fulfilled.

This is the thing that you need in your HTTP header.

Connection-Close: close

 

Monday, January 8, 2007

Solaris 10 Installation

Today I tried to install Solaris 10 for x86. So far the installer has done an excellent job. The installation is more or less like installing an NT 4.0 box. I've got not much problems encountered.

The installer bundles the JDK 1.5.0_06 inside.