Saturday, August 27, 2005
Google and Darth Vader
Darth Vader : was born and then-known as Anakin Skywalker. He was born out of virgin birth (no father). He was created straight by the force. We was the chosen-one, destined to bring balance to the Force by destroying the Sith. However, he fell in to the dark side and became a Sith Lord himself.
Google : was incorporated in 1998 and had seen a phenomenal growth through the pasts years. Google was having an anti-corporate, developer's-dream image that it is a company that geeks love see as the most capable of being a Microsoft-killer (apparently climaxing at the much speculated GoogleOS). Story to be continued...
Made-up Story : with Google's war-making chest, it is capable of producing quality products that can be better than the much bigger Microsoft. But now, being as aggressive as Microsoft (the Sith) in its startup years, Google is being hated, if not feared, in Silicon Valley. Google's aim to outwit its competitors earned it the right for a second look from the tech community as well as corporations from the Silicon Valley. As Microsoft has said, Google is the most Microsoft-like company that they ever competed with. But, have you ever heard of "if you can't beat them, join them". Oh, it gives me the creeps that the more Google becomes aggresive, the more it'll be enticing from Microsot's eyes. It can either be defeated OR absorbed (merger). Without Google, there'll be no company large enough to battle with the giant (no, F/OSS community cannot do it without being backed-up or "forked" by a large company, ie. IBM). With Google merged/acquired by Microsoft, your desktop-bound and mobile life will end up micro-googling everything.
Beware, the heralded Google could be straying into the Dark Side.
richard@work
Friday, August 26, 2005
Open Source TODO too
richard@work
Thursday, August 25, 2005
Pinoy Bloggers
Mabuhay Pinoy Tech Blog!
richard@work
Wednesday, August 24, 2005
Windows and XEN
But recent development with Xen will finally allow me to virtualize Windows inside my Linux. I could save a snapshot of a running IE then save it. Then I could immediately restore the scenario by loading the saved image. All these are possible through virtualization, moreso, with the open source Xen. Support for WinXP will be out in the next release, Xen 3.0.
Here is a picture that will change in future:
richard@work
Freespire
Randomized!: SUSE is coming back home
Friday, August 19, 2005
EJB 3.0 promise
Hurrah for EJB 3.0. I haven't really dwelled into EJB 3.0 yet. But these having been made closer to being POJOs as possible makes it more enticing. It is what I am often calling as back-to-roots. Really, the extra complexity of EJB development made it less favored compared to .Net, LAMP, or even java-based IoC containers. Now, EJB 3.0 is as POJO as it can get, I'd never blink and think twice in upgrading our EJBs to this spec. However, Entity beans are still far from being included in any solution that I propose. And why not? It is because concretized and tested DAO-based solution works for us. Why infuse Entity beans? If it ain't broke, why fix? I think wanton usage of Entity beans just because they're entity beans is an anti-pattern. I'd
rather go into JDO if that's the case.
I'll be embarking on a mission to overhaul some of our components. Session beans and MDBs will be one aspect of the proposed solution. We'll see...
What's new in EJB
Thursday, August 18, 2005
That's Odd?!?
public boolean checkIfOdd(int num) {
return num % 2 == 1;
}
Again, contrary to the instinctive yes answer, this won't work half of the time. Why? Because half of the integers are negative, half are not. This method will falsely identify negative numbers as an even number.
The info of this oddity is courtesy of the Java Puzzlers book.
richard@work
Wednesday, August 17, 2005
Reinventing the wheel
My take on this: disregarding all technical, logistical and/or legal aspects, reinventing the wheel is not really bad at all. It is just a matter of following your own ideas. It is just a matter of decision. If you think, having your own makes sense, go ahead, do it! The "not invented here" syndrome is prevalent in open source. But hey, it is open source. You are free to do whatever you want as long as you return it to the community.
Hmmm... ok, I'll go and make my own J2EE container... Huh! only if I can.
richard@work
JSR 237
The Work Manager for Application Servers specification will contain an API that provides a simple, container-manageable programming model for concurrent execution of work. These work items execute out of a thread pool managed by a container. The Work Manager API provides a higher level of abstraction for concurrent programming than java.lang.Thread, which is inappropriate for use by applications hosted in managed environments such as EJB containers and Servlet containers.
This API can be used within any environment, but is specifically designed for the requirements of managed environments.
This specification does not require any changes to existing Java 2 Enterprise Edition (J2EE) APIs or deployment descriptor formats. Components can access the work service through a lookup in the local Java environment in JNDI, provided the container supports this API and the application has been properly configured.
Look Ma! My EJB multi-threads!
Support JSR 237!
richard@work
OK! XP me
OK, ok. I admit my apprehensions with XP is just a result of not knowing it completely. My apprehensions are further fueled by proprietary methodology-driven culture that I have been accustomed of through these years. Yes, we are adopting some form of agile-like methodology. It really ain't XP at all. Not following XP in all its entirety will not entitle anybody the bragging rights that they are using XP. Also, not following XP at all aspect can lead to a misconception. Is XP Broken? Yes, from my point of view. No, from the point of view of true and succesful practitioners. Hopefully, I can spur change in my company. But the culture change is a very steep hill to climb. Wish me luck.
Wednesday, August 10, 2005
Java Puzzler book
The Java Puzzler at 30% off
richard@work
Friday, August 05, 2005
JDistro desktop java
Don't XP me
Call me a stereotypical corporate developer but nope, XP is not for me... well, at least I won't advocate it.
Thursday, August 04, 2005
SUSE is coming back home
Derby is out of incubation
Derby is a pure Java embedded RDBMS engine. Derby's heritage spans from proprietary days as Cloudscape. , standards-based relational database engine.
Derby, as an embedded db engines aims to be an straight-forward JDBC-based solution for data management. Like its other open source competitors like HSQLDB, near zero-maintenance is their goal of the end-users.
Event if the real purpose of Derby is an embedded db engine, it also comes with a client-server flavor. One thing that greatly attracted my attention is Derby's support for XA transactions. XA compliance is a great leap from the days of client-server days to the N-tier distributed applications that are popular these days. Also, a great feature would be the Java language-based procedure and functions. A great deviation from commercial DBs which have their own procedural language extensions to SQL. By having Java-based procedures and functions, learning curve won't be so steep for developers.
I am a user of HSQLDB. Now that Derby has been released, I might as well try this out and see the pros and cons and its comparison with an equilly popular HSQLDB.
Monday, August 01, 2005
Things I'd ignore from Tiger
Auto(un)boxing refers to the auto-conversion (language-wise) of primitive to their Object wrapper counterparts when dealing with collections. For example, we can add an Integer into an ArrayList but not int. The reason behing autoboxing is that the old-school way of dealing primitives in a collection requires unnecessary amounts of extra coding. I definitely won't jump into this bandwagon just for the sake of using it. Why? Because, I am traditionalist. I like the old Java the way it is. I like to code my program the way I know it should and not allowing any pre-compilers to abstract something for me. I'd love to ignore autoboxing for compatibility purposes (ie. Java 1.4, GCJ, GNU Classpath, etc.). Though a bit blunt, I would honestly say that using this stuff would pull away developers from the essentials and will make developers more lazy and complacent.
Generic Types
Generics have been widely anticipated by the community. I am part of that community, but I'd say, I don't want it. I don't need it. In generics, a collection can be "type-casted" into a specific element object (ie. an ArrayList may only be permitted to contain Integer objects). Adherents of generics has to simply declare the collection type with the element type the <> notation (eg. ArrayList
Varargs
The varargs functionality allows multiple arguments to be passed as parameters to methods. It requires the simple ... notation for the method that accepts the argument list and is used to implement the flexible number of arguments required for printf. Guys, varrags destroys the object-oriented paradigm of Java. I am firmly against this.
Static Import
The static import feature, implemented as "import static", enables you to refer to static constants from a class without needing to inherit from it. This is another toys-for-lazy-boys feature. This will definitely distracts one's thinking in a correct OO way and will direct a java newbie to the dark side.
Enhanced for Loop
The new enhanced for loop can replace the iterator when simply traversing through a Collection as follows. The compiler generates the looping code necessary and with generic types no additional casting is required. Just another lazy-coder stuff and a why-fix-when-not-broken stuff. Brutally useless.
As you can see, all that I chose to ignore are of the Java language semantics. I would love to take the new API features. Tiger definitely has lots of them. Happy programming! Old-school Java lang semantics rules!!!