Monday, October 10, 2005
Work time hijacked
In the last article I wrote about Sam, I showed her happily playing with our desktop PC. Now here she is hijacking my laptop (and essentially my work time) to play around with the desktop environment. And guess what, the desktop's GNOME. ;) Young F/OSS user. What I was working on when Sam took over is my team's schedule for the week. 'Gues, it has to be done later...
kubuntu 101 from scratch
"Most of the users coming here would be people migrating from Windows and they may have absolutely no knowledge on Linux."
It is rare that you'll see a site about Linux which is outright simplistic. The target audience: users with Zero experience in Linux and Unix-like OSes. Bottomline is, there's one more soul in the vastness of cyberspace trying to evangelize the beauty of F/OSS. I'll be visiting this site once in a while to see how things are going and perhaps provide some insights.
You can find the tutorial @ kubuntu 101. As of this time, the site is still in its infancy.
Saturday, October 08, 2005
Oracle eats up Innobase
InnoDB is not a standalone database product: it is distributed as a part of the MySQL database. InnoDB's contractual relationship with MySQL comes up for renewal next year. Oracle fully expects to negotiate an extension of that relationship.
Which means, Oracle wants MySQL to use InnoDB? Is Oracle trying to use MS tactics? Embrace, Extend and Extinguish. My feeding more into MySQL as InnoDB's owner, and at certain point, introduce a choke point, then that's it. MySQL is dead. We are now left with what? PosgreSQL as the next biggest-brother of F/OSS RDBMS. What cookin' at Oracle Larry?
As Oracle acquired several key domain vendors in the past, the acquisition of InnoDB just give me the cold blank stare on what could happen next. The company I am working for currently is facing a sleeping-with-the-enemy scenario where two of its competitors now well within Oracle. So as I have and still advocating in our company, be free, use free software.. and stay away from a lock-in.
NetBeans 5.0 Beta preview
With the recent bloat that Eclipse has become, will this be the Eclipse killer?
Tuesday, September 27, 2005
Saturday, September 10, 2005
Yahoo, a sizeof function in Java
A better way of calculating the size of objects since the early days of do-it-yourself-pseudo-calculations and using profilers is already part of Tiger (JDK 5.0).
With JDK 5.0, you can get size in two new ways without using expensive do-less-good profilers (why I say less is because, the programmer is still the best profiler) or native runtime-engine specific bridges:
java.lang.instrument.Instrumentation.getObjectSize API.
This class provides services needed to instrument Java programming language code. Instrumentation is the addition of byte-codes to methods for the purpose of gathering data to be utilized by tools. Since the changes are purely additive, these tools do not modify application state or behavior. Examples of such benign tools include monitoring agents, profilers, coverage analyzers, and event loggers.
getObjectSize() returns an implementation-specific approximation of the amount of storage consumed by the specified object. The result may include some or all of the object's overhead, and thus is useful for comparison within an implementation but not between implementations. The estimate may change during a single invocation of the JVM.
richard@work
Friday, September 09, 2005
Closer to an-all Java Desktop Dream
Presenting to you, Flying Saucer, the latest of my Swing-based craze. This renders XHTML and CSS contents. Talk about RSS-fed blog-craze nowadays. The good thing with Flying Saucer is that it will allow close interaction and inter-operation of ultra-thin content with rich applications with Swing. With a rich-client based on Java, your application can be more adaptive to any standards: HTTP, WebServices, object serialization, RMI, etc. You can also treat your application in a cross-channel mode: standalone, as an applet, or as a WebStart service. Name it, you have it.
Now, let me collate some more and perhaps soon, we'll start our projects on a new user interface framework. That's all for now.
richard@work
Wednesday, September 07, 2005
Swing, Synthetica and Matisse
Have you seen NetBeans 4.2 alpha sources lately. It has the new fabled Matisse. Don't know what Matisse is, kindly check on NetBeans site.
When I say I like Swing does not mean I love GUIs. I am still the text-based, CLI, server-side maniac. Why I promote Swing is because IMHO, HTML cannot scale to the needs of mission-critical over-the-internet/intranet applications. Yes, we have the AJAX approach but, AJAX has its flaws, one of them is performance. Couple your souped-up net-enabled Swing-based application with Java WebStart and your ready to go. One tough nut to crack compared to HTML over HTTP.
richard@work
Monday, September 05, 2005
Is C# Dead?
But did Java really kill of C#. Nope. The C# killer is none other than Open Source. Well, here's the rationale. The Java language, alone will not be able to compete with the much user-friendly C#. But the truth is, why do enterprise have to buy nasty licenses when they can go at an enterprise-level perormance on a lot-cheaper alternative, that is, Open Source. In Java, you have JBoss, you have SJAS, you have Jonas, you have Apache, name all of it, you'll have it. What you pay for (in case of the commercialized open-source Java EE server) is the service, not the product. After getting the product, you don't own the code. Noone owns the code. You can play around it, you can modify it. With the advent of non-GPL OSI-approved licenses, any OSI-approved license (except copyleft-leaning GPL) is commercial friendly.
One notable thing to consider why .Net will screech to a halt will be the other players Mono and the LAMP stack. Why, even Microsoft is courting OSDL for a joint R&D, right? So the conclusion is that Open Source is the way to go. It is in competition in collaboration that will dictate the future IT industry fight. Until then, I am still and will always be for Java.
Have a break, have a cup of Java.
richard@work
DAO Code Generator
Free DAO (Data Access Object) Code Generator
— DAO Code Generator can be used for J2EE applications to generate high quality source code for the Data Access Layer in service-oriented and object-oriented architecture for accessing relational database schemas. DAO-Generator follows the Data Access Object(DAO) design pattern and generates java code. Current Version of this tool supports Oracle, MS Sql server, MySql and PostgreSQL databases to connect and generate code.
Just makes me wonder how un-DAO our DAO is... :( I am wondering when can I replace our ORM (aka DAO) with JDO?
richard@work
Current state of GCJ
So where is GCJ now? Probably, still not enough to catch with Sun's JDK. When at least full-1.4 compatibility is released, I'll be one of the first ones to jump ship.
- java.applet - Believed to be complete, but note that without a functional AWT it isn't very useful.
- java.awt - A lot of code exists, but not enough for use in real applications.
- java.beans - Believed to be functional and complete, should be compatible with JDK 1.4.
- java.io - Ok.
- java.lang - Ok.
- java.lang.ref - Ok.
- java.lang.reflect - Ok. Does not check access permissions.
- java.math - Ok.
- java.net - Ok.
- java.nio - The public interface is ready, but the implementation is not working yet.
- java.rmi - Ok.
- java.security - Code exist; completeness unknown.
- java.sql - Ok, should be compatible with JDK 1.4.
- java.util - Ok.
- java.util.jar - Ok.
- java.util.regex - Ok.
- java.util.zip - Ok.
- java.text - Ok, but most localization data not available.
- javax.accessibility - Some code; status unknown.
- javax.crypto - We recommend using GNU Crypto.
- javax.naming - Complete, but no providers written.
- javax.sql - Some code; status unknown.
- javax.swing - Some code, but not enough for real applications.
- javax.transaction - Complete, but no providers written.
Hmm, when can we finally set Java free. When can Java be fully open. So far, it is in a use-at-your-delight-and-risk thing.
Cheers!
richard@work
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!!!
Saturday, July 30, 2005
What is Unix?
But do you know that with Microsoft's Unix Services for Windows, an NT or Windows Server can, in theory be certified as Unix? Only if MS will pay for the cert.
PreparedStatement
Doomsday Scenario
This article is a good one. It talks about a lurid plan my Microsoft to dominate both the open and closed source worlds. This is one urban legend / day dream that I'll speculate for a long time to come.
Microsoft goes open source!
Thursday, July 28, 2005
Choose your weapons!
- Java - to program anything I want
- C - to program anything Java can't
- SQL - to access RDBMSes
- XML - for multi-purpose portable data or content
What?!? No HTML? No JavaScript? Nah, I am, and always been. a command-line, server-centric guy. I don't like GUIs. I don't like rich/thin clients. I don't like KDE (no flames, peace!). And of course, no Visual-* or *.Net, you know why...
JavaSpaces and Java EE
JavaSpaces technology aims to build distributed applications and can be used as a coordination tool. Unlike RMI, the JavaSpaces model views a distributed application as a collection of processes that cooperate through the flow of objects in and out of one or more (tuple) spaces. Processes or groups of processes can be producers or consumers or both.
JavaSpaces can provide quality and performing applications. I believe that depending on the nature of the domain problem, either Java EE or JavaSpaces or both can satisfy a client's requirement.
Why I support Harmony
It all boils down to this: developers want Java to be free. Free in the sense that they can look at the source code, they can modify the source code, they can distribute modified versions. OK, back to the questions. Use Sun's Java SE implementation and you're tied with Sun's restrictive license. Use GNU Classpath and you're tied to the GPL. The logical way out for both commercial enterprises and developers alike is a BSD-like license, the Apache license.
Hence, as coffee-blooded Java developers that we are, support Project Harmony.
Friday, July 22, 2005
Overkill of StringBuffer
In JDK 5.0, there is a new class called StringBuilder. What's the difference between a StringBuffer and a StringBuilder?
I'll answer it in one shot:
StringBuffer is to Vector while StringBuilder is to ArrayList.
Got it?
Inversion of Control Starter
http://www.devx.com/Java/Article/27583
http://www.theserverside.com/articles/article.tss?l=IOCandEJB
Thursday, July 21, 2005
J2?E is now Java ?E
There were recent changes made by Sun on the brand name Java. The hand of a commercial maneuverings is at hand. I am having mixed feelings about this. My reaction to this is just neutral.
===========
The "2" is definitely looking like it is out of place. The "2" was introduced years back, and it seemed increasingly ridiculous to have that "2" embedded in the platform name while also having a version number like "5.0" at the end of the name.
The "2" from the full edition names. They are now:
Java Platform, Standard Edition
Java Platform, Enterprise Edition
Java Platform, Micro Edition
Sun also want to have a unity of the three editions. All of these based on "Java" and it seemed worth making that "Java" more visible in the shorthand names.
The emphasis on "Java" in the short-hand names:
J2SE is now Java SE
J2EE is now Java EE
J2ME is now Java ME
Usage of single digit version numbers where possible. So instead of "5.0" it'll just be "5". Feedback from the java community both inside and outside Sun circle that versions like "5" is better than "5.0". Or is it?
These names will be applied to new releases. The names or numbers of existing releases won't be changed. So Tiger will still be "J2SE 5.0" but Mustang will be "Java SE 6".
Personally, I still prefer to call J2SE or J2EE. This name is already a household name.
Well, it really doesn't matter what name Sun has to come up. All these are just marketing stuff. Even if they called java or cafe, it really doesn't matter. I'd still continue to use the platform and be loyal to it.
Monday, July 18, 2005
The Reality of an IT Job
I have accepted the fact that, probably, all hard-core IT jobs are just like mine. I know, all serious IT work environments are the same. At least in an Asian perspective, all state-of-the-art IT jobs are inherently hectic. If your's is not, then your job is probably as good as doing a project in the University or as good as being a personal secretary.
I'll blog about the perils of an IT job later. One thing for sure, if you are in IT environment and you don't love your work, you will have your energy and spirit sapped in no time. When I say loving your work, I mean you were born with an analytic mind and an eternal thirst for improvement.
Why do I keep on mentioning probably? Because, I do not really know, experience-wise, whether this really do happen in other organizations, moreso, in an American or European working environments. It will take me some more time (again, probably, years) for me to know whether this trend really exist.
Eclipse and CVS
So for those who are committers to a live CVS repository, check twice in using Eclipse IDE.
Just a simple experience and lessons from Luke.
J2EE is Clinically Dead
BEA and IBM really screwed up J2EE. If you really want to stick to J2EE, use open source. You have GlassFish, you have Geronimo, you have Jonas, you have (arrgghhh!) JBoss. Beware of JBoss, it might treading to the dark side like IBM and BEA did. The moral of the story is PATIENCE. If your organization decided to use either of the proprietary AppServers and decide to move later, be prepared to open multiple can of worms.
Just a viewpoint from Luke.
Friday, July 15, 2005
OS/2 Bids Goodbye
I am an open source fan but I know Longhorn, despite the bashing it receives from Media and the OSS community, will be a killer app. Something worth the wait... OK, time to bid goodbye. So long OS/2... See you at the history books.
Thursday, July 14, 2005
PLM is Back Online!
It has been quite a while (years, I guess) since I last saw the amateurish PLM web site. You might me asking what PLM is. Well, PLM stands for Pamantasan ng Lungsod ng Maynila (or, as I usually write it in any application form outside the Philippines, The University of the City of Manila). This is were I graduated. This is were I obtained by Bachelors Degree (Bachelor of Science in Computer Science). PLM is one of the State Universities. But even if this institution is a state U, it is wholly funded by the City of Manila, alone. I am not sure of the current quality of education in PLM. I am wondering only for Computer Science. Back in the pre-internet days, even if technology in PLM was not that high, I knew comsci students were at least intellectually at par (or better) with contemporaries from other universities. I can be very proud not of myself, but of my school. In a resource and fund-challenged university, it is a feat to produce quality graduates. What PLM lack in facilities, it compensates with its culture of excellence. Truly, a class on its own. With the myriad of technologies that abound the industry nowadays, I just hope that the students still get quality education and/or at-par recognition when they eventually graduate.
As for my student years, I belonged to the College of Engineering and Technology. CET rocks!
PLM's website is at http://www.plm.edu.ph
Let's Get Groovy
JSR 241 is all about Groovy. Groovy is an object-oriented, agile programming language designed for the Java platform as an alternative and comlementary language to Java with features from Python, Perl, Ruby and Smalltalk. Groovy, like the venerable Java, will run on top of the Java Platform (Java Runtime Engine)
Groovy uses a Java-like syntax which is compiled to Java bytecodes and that works seamlessly with normal Java binaries and Java libraries including J2SE 5. On the the reverse path, bytecode compiled out of Groovy can be accessed inside Java programs as though they were really created from Java programs. Groovy will be both a compiled language as well as interpreted. The compiler provides a javac-like bytecode output while the interpreter can run the Groovy program dynamically as a scripting language.
Groovy is currently undergoing standardization through the Java Community Process.
Groovy is designed to help things get done on the Java platform in a quick and concise. Groovy brings the power of a scripting language directly into the Java platform. For example:
- Shell scripting using Groovy allows the full power of the Java Platform to be brought to bear to the task at hand.
- Groovy can be used (and indeed is already being used) as a replacement for Java for small and medium sized applications to execute on the Java 2 Platform.
- Groovy can be used as an embedded language for dynamic business rules or extension points utilizing the agility of Groovy and saving the cost of redeploying applications for each change of rule (especially when the rules are stored in a database).
- Groovy makes writing test cases for unit tests very easy.
Bulk of the programming language that is used in the open source arena is either C or an agile language (Perl, Ruby, Python, PHP?). Lesser known in Linux world is Java. Groovy aims to reverse this. Imagine living in an open-source unipolar world dominated by the Java Platform, with your languages Java and Groovy, groovy baby! And of course, C will not pushed away. C is here to stay, along with Assembler.
Support JSR 241
Tuesday, July 12, 2005
Free and Open Source Java
Apache Harmony is a proposed free implementation of the Java programming language, starting with J2SE 5.0. It will be licensed under the Apache License, Version 2. Since its announcement in early May 2005, it has caused controversy amongst the Java community. There were mixed reactions from Java as well as open source communities. Some are ecstatic and optimistic. Some were outright pessimistic. But the beauty of this is that Sun, though not releasing its J2SE source base, is helping Apache Software Foundation through other means. It even involves necessary access to TCK (Technology Compatibility Kit) which a similar open source project (GNU Classpath) is not getting.
I know this will be long way to go (if not impossible). But the wait is worth it, I guess. By the time Harmony is finished with its binaries (compatible with JDK5 aka J2SE 1.5/5, aka Tiger), Sun Microsystems would have released a new J2SE spec.
But what if, we fork Java altogether? Nope, this is a far possibility. Remember Microsoft getting sued by Sun? Sun has really a firm hold on Java language as well as the Java platform. Without Java, Sun will burst like its 90's dot-com peers. For now, I'll have to contend myself with whatever FSF has to provide, that is, GCJ and Classpath and Sun's own in my workplace =)
Monday, July 11, 2005
Back to Roots
I talked to a colleague this morning and discussed some integration issues with a client. C programs will be used for this. Though, personally, I will not do the work, it sparked some old fire, that is, the C hacker in me. I have experienced C in Win16, Win32, DOS, and in Unix environments. I'd like to augment my expert (ehem, hehehe) Java skills with a renewed vigor in C. Hope I find time in studying C.
The C programming language is a standardized programming language developed in the early 1970s for use on the Unix OS. It has since spread to many other platforms, and is one of the most widely used programming languages. C is famous for its efficiency, and is the most popular programming language for writing system software, though it is also used for writing applications. It is also commonly used in computer science education, despite not being designed for novices.
How about C++? Forget it, I already have Java...
Saturday, July 09, 2005
You Evil Little D.!
Clean code will allow you to maintain your components whereas dirty code f??ks you up. I think I have described it point blank. If you are good and professional enough, please don't leave your code in a filthy state. My humble appeal, take pride and excert enough effort to not only getting your code to work, but also in keeping it simple, small, easy to read and in fairly documented manner. I bet you haven't tested it too?
It is just that filthy code done by sloppy developer annoys another developer. Simple isn't it. So do the right thing.
Are you guilty?
Get a grip. Here's where you can start. http://java.sun.com/docs/codeconv/
Pax Europa
- Software is already protected by copyright, patents are not needed
- Software patents cause a high burden on the economy especially to small organizations which forms the majority of the IT industry
- Software patents are anti-competitive which results in less choice and higher prices to customers
- Software patents are impediments to the natural evolution and improvement of indigeniously created software
- Software and the process of development and innovation in the software industry is very different from that of the other industries.
One small step for Europe, one giant leap for the IT industry especially for the FSF and OSI.
Friday, July 08, 2005
BSD License vs GNU GPL
In the real commercial world, it happens differently:
In the GPL customers will not face licensing lock-in. In BSD, there is a threat of having a licensing lock-in.
If Organization X needs to share closed-source, internally developed software with a partner, Org X can choose to (1) proprietary lock-in license to partner, or (2) open source license to partner.
To distribute through option (1), BSD license can be used, but GPL inputs can never be used because of the Copyleft.
To distribute through option (2), either BSD or GPL can be used.
Both licenses enables open source development and is endorsed by the OSI. Then why use two different licenses if the ultimate goal is to distribute free and open source software? Often, the agenda for using the BSD license is to create a potential license-lock in since this license can be more readily converted to a lock-in license.
Makes sense? GPL = true FOSS. BSD = FOSS->commercial.
As for the ToyBox, I chose a BSD-variant which is the Common Public License for this particular reason, hehehe.
Wednesday, July 06, 2005
Project ToyBox First Steps
1. Submitter: richardqr
2. Project UNIX Name: rtoybox
3. Project Descriptive Name: Project ToyBox
4. License: IBM Public License
5. Project Description: An all-purpose client and server-side Inversion of Control container for Java. This project aims to abstract different existing open-source projects into a simpler notation. It can be used both in a J2SE application as well as a core business framework for J2EE-based applications.
6. Registration Description: This project aims to simplify business service request and consumption through an easy to use Inversion of Control container, similar to the types of SpringFramework or some other J2EE-based frameworks. Everything will be Java-based.
The problem mainly with existing frameworks is the difficulty of using them, especially for newbies. The target audience of the proposed project will be small-scale academic or personal projects. If fortunate enough, the project could evolve into a full-blown industry-scale framework like Spring.
Hope this goes through. Its a make-or-break step. If broken, then will find some other way again to define the project better. If OKd, the only other aspect is time and resource. Wish me luck...
The project's blog is at rtoybox.blogspot.com
Office Stress II
Tomorrow I will be back with vengeance.
Monday, July 04, 2005
CV How To
College time, I already created my first CV to apply for on-the-job training jobs on some companies. First, I worked at Magent. It is management company that globally sees into GMA7 and all its sister companies. My tasks were not satisfying (ie not intelectually yummy), so I resigned. And besides, we are forced to join a prayer meeting on friday afternoons. I am a Roman Catholic and I resent being forced into someone else's faith.
Then I went into this, now defunct, company called InfoLand International. It was owned by my cousin. I went there and do whatever I wanted. Thinker with hardware, use some of their software and did an advanced self-study on future subjects in College. Still I got bored. But since, it is my cousin's company, we doctored my timesheet and was scot-free in no time. I just spent the rest of the summer wandering everywhere, visiting BBSes and sleeping at home.
Before graduating, I already got a job. This time, at Compass Internet. I was an account executive there. This is a position for sales ala technical support. Again, I didn't submit a resume. I walked in, talked to the manager. Talked about my school. Talked about my championship in a national Assembly Language competition, talked about my credentials in school and that was it. I technically had my last summer only for a day. I graduated April 30, I reported to work on May 2. Why didn't come to work at May 1? Because it is labor day.
After one and half months of wrangling to customers and prospects, I applied for a job in System Access Philippines. This time, I think (as I can recall) I didn't pass any CV either. I just filled in some form, did an exam on a thursday. I went back on a friday afternoon for interview on short notice. People got impressed and behold, I was destined to join the company on the coming monday. So, saturday was my de-facto last day with Compass. Come monday, I went AWOL.
Then I got sent to System Access Singapore (early part of the year 2000). While I was here, I was furiously head-hunted by a US company. I even had an interview with one of their top guy. Forgot the name but their base is in Boston, MA. This time, I sent my CV. I went for an online Java exam with a prometric center that they chose. Guess what, I was informed that I broke their highest score record. To make the story short, I declined. I thought I was too young to head to the US.
I got absorbed by the Singapore Office. And here I am now, typing this blog.
The bottomline is that I got a very few occasions wherein I needed to create or update my Resume. Now, I am at lost on how to create a killer-CV, the one that will put a companies jaw to touch the ground. Well, how do I really create one?
Hypocrisy of the FOSS
A chunk of Bill's money goes to charity. Can the open source community top that? Can they fund thousands for their healthcare and education? Can they alleviate poverty? Open source's goals is very noble indeed but the way the zealots degenerate to pointing their energies at bashing MS is indeed counter productive.
The Bill & Melinda Gates Foundation, like its mega corporation source, is the world's largest charitable foundation. The foundation has an endowment of approximately US$28.8 billion. To maintain its status as a charitable foundation, it must donate at least 5 percent of its assets each year. This amounts to over $1 billion.
So bash all you want. Sue all you want but I think MS is here to stay. The future lies in either OS X or a POSIXed Windows.... I guess.
Linux on an NT Kernel
This is a good idea isn't it? Well, our problem lies now on how to run the GNU toolset on an NT kernel when it was built to call POSIX-compliant kernel library calls. The answer is to build an intermediate "mid-kernel" on top of NT kernel. This mid-kernel will translate microsoft-specific calls to POSIX standard, and hence, GNU tools can work on NT kernel.
Imagine your standard Windows XP (or Longhorn in future) installation can run both Linux applications and Windows applications on the same kernel. Probably, during bootloading, it will ask you on what OS to start, and both of the specific OS runs on the same kernel. But this time, the Linux OS will run on a mid-kernel. The mid-kernel itself will will be in userland.
Is this VMWare kind of stuff? Nah! This is not simulation and device sharing, this is the actual runtime. Only one OS runs at one time. How I wish somebody (at least as far as I know) will create the Linux to NT port.
Cygwin is a userland layer that can run some Linux applications with recompilation. Why does it need to recompile? Because the system calls behind Cygwin is just of Windows'. Cygwin consists of a library that implements the POSIX system call API in terms of Win32 system calls, a GNU development toolchain (such as GCC and GDB) to allow basic software development tasks, and some application programs equivalent to common programs on the Linux system. The commonality between Cygwin and perhaps Linux, and Unix, and Windows is COFF. The Common Object File Format (COFF) is an object file format that was introduced in Unix System V Release 3, and was later adopted by Microsoft for Windows NT. It was superseded by the more powerful ELF in System V Release 4, but as of 2005 COFF is still used in Windows as Portable Executable.
If someone will just "promote" Cygwin to be like this, then I think this will be the ultimate Linux kernel and VMWare killer. Just wait till the GNU Hurd kernel comes along...
Saturday, July 02, 2005
luke.showMyWorkplace()
I brought spidey with me (my IBM X23 laptop) today. With spidey, I can do everything I want anywhere I am. In my workplace, I work on two desktop machines (oh, so that explains the two keyboards and two mice). One is windows machine on a P4 whitebox. The other is my favorite, my linux machine on a Sun box (AMD64). Originally, it came with Solaris 10 but I had to undo the settings and install my own Fedora, oh yes, the much famous Fedora Core 3. Not on the picture is an HP-UX-based blade server that my team manages.
Also in my workplace, you can find my ultra mini fan. This little giant keeps me cool (literally and figuratively). Also, I have my switchbox. I definitely go through a lot of mis-types and mis-commands on the wrong machine without my switchbox. Normally, I would just operate my Windoze machine through VNC. Clever huh!
In my workplace, I have my old-school calendar. I don't really rely on electronic ones.
In my workplace, I am one who tags his own chair. I tagged my chair with a neon-yellow plastic string of some sort. I really don't know what it is called. This is the stuff that when you "tie" it, it can never be untied. I've seen these being used as "handcuffs" to war-on-terrorism detainees. Why do I tag my chair? Because this is the only chair that fits perfectly to my back.
Not in the picture is the gamut of books that I use in my carreer. Not in the picture is, of course, me. I'm the one who took the shot.
And as always, I don't go to my workplace without my magic parker pen and my magic spectacles. Without these, I'll surely ruin my day one way or another.
Here's my workplace:
I Have A New Toy
I am really excited in trying out the new features in this IDE. So much for the NetBeans 4.1 crap. Now let me see... I have JDK 5, I have Eclipse 3.1. I have a java source to work with. What else... ahh! I am still using FC3. Anyways, this post is not about Fedora.
The cool stuff about Eclipse 3.1 is speed. All about speed. Since I mix up between CLI activity and GUI IDE activity, my old Eclipse 3 was just as handy. But with hundreds of codes that I work with, auto-compilation grinds to a standstill when I refresh or even introduce a new java source.
Let me see later whether VE (visual editor) is already up to the task. I dropped using this in favor of NetBeans because VE is a crap. *sigh* If only I could extract the GUI builder part of NetBeans and make it as a stand-alone kick-start utility, then I would the best utilities a java developer can ask for.
My new toy:
Friday, July 01, 2005
Ahh! Exactly What My Rumblings Are!
Just a nice piece that I can't help but mirror the post in this site.
All rights are reserved by philstar.com
God Bless the Filipino Nation!
=========
What truth?
LETTER TO THE EDITOR
The Freeman 07/01/2005
Here we go again. The dumb politicians are once more holding the whole nation hostage. In the past several days, the likes of Sen. Nene Pimentel, Congressmen Francis Escudero and Jacinto Paras, whose ability to speak his mind in fluent English is, by the way, no better than a grade school student, are again posturing at the expense of the Filipino people. This time their alibi is the truth.
Exactly what truth are you trying to find out, sir? Eh, umamin na nga ang Presidente! Ano pa ba ang gusto nyo? If you think the President has committed a crime or an impeachable offense, then please file the appropriate actions and shut up! Stop holding press conferences or appearing on television to air your grievances because the media is not the proper forum for it. Being members of the law-making body, you're supposed to know that. You're supposed to use the legal framework that Congress itself has created. You should be the first to follow the law.
The trouble with these politicians and those calling for a leadership change is that they don't know their action is bleeding the country dry. Mga bobo kasi. They're not only insensitive, they are ignorant of the sufferings of ordinary men like me.
I bet my last pair of socks that you, Congressman Escudero, don't even know the simplest needs of the common tao. Or that you and your fellow useless politicians are so stupid to know that your calls for GMA's resignation is, in fact, the reason why the stock market is down and the exchange rate up. Heck, I seriously doubt you can stipulate the effects of a fluctuating peso, let alone know what a Moody's "downgrade" is. Mga bobo kasi.
I challenge you Congressman Escudero to take a one-year leave of absence from Congress to take a job in the private sector and live off the salary of a daily-wage earner. Isama mo pa si Susan Roces at saka si Bro. Eddie Villanueva. I can guarantee all of you: You will not last 30 days before calling it quits!
Now, if you're not willing to come out of your comfort zone, then I challenge you to a debate - to prove to our countrymen that you're all stupid. Don't be intimidated: I am just an ordinary workingman and not connected to any group that can tutor me about policy issues.
It's so easy for you to hostage the economy because you know your Congressman's salary is assured for the next three years. I challenge you to stop living off the taxes of the Filipino people or the tithes and offerings of your members!
The other night Susan Roces' apo declared to the media that what her lola is doing will benefit the Filipino people. Are you nuts? What do you know about our plight here in the Philippines? What do you know about the effects your lola's speech will have on the economy? You're living in the US for Pete's sake! Before you open your mouth, try living here first and enroll at a public school with insufficient number of books!
It's so unfair that a few dumb politicians and reckless individuals have the power to bring down the whole country. Doubly unfair that Cebuanos like me suffer for the stupid decisions made by the horde of uneducated people in Manila.
I studied hard - heck, even worked to pay for my last year - in college to be where I am now. I pity the employees of foreign-owned companies like me, who are now in danger of losing their jobs because of the uncertainty now besetting the nation.
The Filipino people deserve better. Kung hindi pa nyo nalalaman, tapos na po ang election. It's time to move on. Congress has better things to do than to meddle in governance. Congress and the Arroyo administration must work together to cut the deficit now, keep the exchange rate stable and the inflation rate in check.
Simple lang ang kailangan ng bawat Pilipino -- ang mabuhay ng maayos. I do not aspire to run for Congress or lead a congregation and live off the tithes and offerings of my flock. I just want to live a comfortable, if not decent, life.
Truth has no profound meaning to me if I lose my job and sleep with an empty stomach.
Larri-Nil G. Veloso G/F Pelaez Bldg. A.S. Fortuna St. Brgy. Bakilid Mandaue City 6014
Thursday, June 30, 2005
The GlassFish Project
The future of J2EE's prospects and viability lies in open source. With Sun's latest move, J2EE's future is getting brighter than ever. The days of the proprietary J2EE are numbered! WebLogic and WebSphere will be dead! Long live Open Source!
Not so long ago that J2EE development revolved around the proprietary technologies by two J2EE giants; IBM and BEA. That was yesterday. Today, the open source community rejoices for another J2EE server joins its ranks.
Sun recently announced that it is moving its Sun Java System Application Server, a.k.a. the GlassFish project, from the Java Research License (JRL) to the more open-source friendly Common Development and Distribution License (CDDL).
No matter what Sun does to stay on the helm of Java, the company has to acknowledge that its control of J2EE in the end will be lost to a miriad of smaller players. to the open source community. Forget about CDDL vs GPL crap. What's important is you can now play with SJAS. Java plus Free and Open Source, what else can you ask for?
So far, the major players in the open source J2EE business are: the Apache Foundation's Geronimo, JBoss' JBoss Application Server, and the ObjectWeb Consortium's JOnAS. Now, include SJAS.
Stay tuned to the latest developments...
Goodbye JDS!
Sun's flip-flops is no surprise at all. Three years ago, Sun launched the JDS project. JDS was a combination of a server and workstation cost-effective alternative to MS Windoze. The product quickly lost momentum. How would you compete with the likes of SuSe, Red Hat, Debian and Fedora?
So, this is the beginning of the end of JDS for Linux. Good riddance. JDS for Linux was a crap. It is no better than a re-badged SuSe. It is on the same yucky stuff like Linspire and Xandros.
I firmly believe that Linux will be very succesfull on servers, but only a handful of techies will be able to use it in desktop space for a long time. 'Guess this is why Sun is backing off.
One scheming story in my mind is that Sun might be afraid to challenge its newfound friend, the giant Microsoft. Tsk tsk tsk, it is very obvious indeed.
For me, Fedora, the best-loved by techies Linux distro, is the king of hill.
Sun Laptop Delight
The Sun Ultra 3 Mobile Workstations promises to deliver the same performance as its server-bound, blade-based siblings in a laptop form factor. With the Solaris 10 OS (ehem, OpenSolaris) and a range of 64-Bit UltraSPARC processors, graphics options, 802.11b wireless networking, 15-and 17in. SXGA+ TFT LCD displays, Integrated Gigabit (10/100/1000Base-T) Ethernet, the Sun Ultra 3 Mobile Workstations should deliver workstation class performance anywhere a you might go. This laptop on steriods is offered with either a 550MHz or 650MHz UltraSPARC IIi processor or 1.28GHz UltraSPARC IIIi processor and can take up to 2GB of RAM.
Sun Java Desktop System also comes pre-installed, along with StarOffice 7.0 or GNOME 2.0 Environment.
This is the laptop that I wish I have. Only if these parameters are met:
1. Lower SPARC CPU price, hence, lower laptop price
2. Normal Linux/BSD binaries to run seamlessly and transparently on the SPARC/Solaris platform
3. A gamut of software suites. Those that you can typically find in a WinTel machine.
Probably, this laptop will just be for sysads only.
For me, I'll stick with my trusty IBM X23 loaded with Fedora Core 3 and, unfortunately, Windows XP Professional till my HDD crashes on me.
Wednesday, June 29, 2005
Play With My FreeSBIE
I have always wanted to try out FreeBSD without dropping my existing setup of dual-booting WindozeXP and FC3. I have heard so much of BSD that I really want to try true-blue Unix in my box. OpenSolaris maybe? Nope, OpenSolaris is still a no-go for me. Wait for Mac OSXi? Too long... My solution: FreeSBIE!
FreeSBIE allows me to take a look at FreeBSD without having to actually install it in my HDD. It is like Knoppix (Linux). Developed by Gruppo Utentia FreeBSD Italia, it is a live CD based on the FreeBSD operating system.
The current version 1.1 is based on FreeBSD version 5.3.
All 610MB of FreeSBIE 1.1 ISO can be downloaded from an FTP mirror or via BitTorrent. Currently two platforms are supported: AMD64 and i386. 2 thumbs up for this!
Eclipse 3.1
It has been a while since fanatics waited (since June 25, 2004) for the next version of their beloved Eclipse IDE. What's new and noteworthy about this new release is that many woes and supposed-to-have from Eclipse 3.0 has been resolved.
Some of this blog's text are excerpts from eclipse.org
Significant Performance Enhancements - thank goodness!
Support for bi-directional text - naah! I would not have any use for this. My stand is that since Java language is an English derivative, text and text orientation should be inherently english too.
Improved preferences and properties support - nice goodies!
Editor lookup based on content type - not so usable to me since I have been a VI baby...
Importing multiple projects - not so usable to me either...
Line delimiter support - not so usable to me either since I only work with Linux/Unix
Single JAR plug-ins - aha! nice way to remove unwanted plugins!
New JDT Goodies - these will certainly improve my productivity ten-folds
* New Javadoc compiler settings
* Serial Version UID
* Early detection of references to internal classes
* Access rules on libraries and projects
* Mark occurrences of inherited methods
* Highlighting of deprecated class members in the Java editor
* References in Javadoc
* Improved Java properties file editor
* Working with externalized strings
* Externalize Strings wizard supports new message bundles
* New Open Type dialog
Full support for J2SE 5.0 - and yes!!! The Tiger Roars!!!!
Eclipse 3.1 includes full support for the new features of J2SE 5.0. This support is both pervasive and powerful -- everything that you expect to work with J2SE 1.4, including editing, code assist, compiling, debugging, quick fixes, refactorings, source actions, searching, etc. will work seamlessly with (and has been extended to support the new capabilities of) J2SE 5.0's new types and syntax.
Here are some examples:
* Quick Fix to update JRE and compiler compliance to 5.0
* New Type wizards support generics
* Enumeration and Annotation wizards
* Semantic coloring of J2SE 5.0 constructs in Java editors
* Rename refactorings handle renaming of type parameters
* Infer Generic Type Arguments refactoring
* Quick fixes for Generics
* Search result filters for reference search for parameterized types
* Code completion for annotations
* @SuppressWarnings annotation support
* optional diagnoses for issues such as incomplete enum switches and boxing/unboxing conversions
* Quick Fix to create enum constants
* Autoboxing parameter proposals
* Quick Assist to convert for-loops over arrays and collections to J2SE 5.0 enhanced for-loops
* Support for package-info.java
Eclipse 3.1 release is now available for download from the eclipse.org downloads page. Go get it!
Tuesday, June 28, 2005
Open The Sun
Like mainstream Linux vendors like Red Hat, Suse and Mandriva, Sun's version of OpenSolaris has extra proprietary code to build a complete operating system. SchilliX is completely based on open source software, ala Debian GNU/Linux.
If you would ask me what should I take, I am not sure for the time being. OpenSolaris is still in its infancy. Sun's Distro is definitely full-packed. It even contains JDS for Solaris. SchilliX is more of Slackware today than Debian.
Ask me again which shall I take... If I would choose what "Unix" box will I install at my home machine, it will be... FreeBSD!!!! hahahaha!
All Play No Work
Me.., I work in an SME, closed source environment. Of course, the product is inferior to those of the dream houses that I just mentioned. But hei, I still get to do some java on a Linux rig... Not too bad =)
Monday, June 27, 2005
Optimus Prime is Dead! Long Live Luke!
Follow the force...
-Luke :)
Cardiac Delight ala Java
Eat high-caloric food!!! Yeah right! Why?
Because.... For us I.T. citizens, more nutrient has to be ingested. Not just nutrients but also some fat. Why fat? Where else would you get your carbonic oxydation-powered energy if not for the fat and carbos. Well kids, do not do this unless you are really heckled to work by the empire (company) till wee hours in the morning. Failure to eat these kind of food will sap your energy, and hence, your will to program and debug the night out.
So enjoy the kway chap meals and yang chow fried rice...
Another programming tip from Luke.
Sunday, June 26, 2005
El Estupido
"I don't know what makes you so stupid, but it really works!"
Sometimes, you hust have to turn a blind eye to people who has a lower neural activity than you are. Hey, nobody's created equal.
Saturday, June 25, 2005
Leader of the Band
As the team lead, I get to represent a bunch of people. As the team lead, all my member's errors are my personal errors. As the team lead, all my team's success are theirs. Like a weary soldier or a faithful priest, I am just here to serve.
Though I am letting out my angst against my fellow developers, I am not making a sweeping statement. There are still good things in this world. For that matter, there are still good developers. Responsible developers. Responsible team leads. Still some people to rely to.
*Hufff* It is really tiring. When can I ever have my genuine rest and recreation...? Perhaps, soon, perhaps, later.
Friday, June 24, 2005
The Question Matrix
AQ = Asks Questions
DNAQ = Does Not Ask Questions
KA = Knows The Answers
NDKA = Does Not Know The Answer
=====
AQ + KA = Obviously a display of bravado!
DNAQ + KA = Yes, just listen to the discussion.
AQ + NDKA = Yes, you need to ask.
DNAQ + NDKA = At lost... poor guy.
=====
My TOE
Develop the application not only based on technology but also on:
1. Organization: what is the target user? Is standardization an important thing? Do they prefer closed source or open source approach? etc...
2. Environment: do you have good human resource (developers) with you? How fast do you need to get your solution up and running? Do you have the proper tools and hardware for the job? etc...
Thanks to John Doe for the insights...
Thursday, June 23, 2005
My One Cent Java Framework
I'll try to be as minimal as possible. The main influence in the design is a Unix Micro Kernel. In this, all components are essentially independent. Communication between the components, rather than through IPC, will be through common interfaces.
My guiding rules are the Unix development rules (otherwise known as Keep It Simple Stupid paradigm):
1. Develop small programs that work
2. Then, develop programs that binds the smaller programs
3. Last, develop the user interface
I'll probably start off with the configuration framework, then persistence, then the basic dispatcher... wish me luck.
Design Principle
-- Abraham Lincoln
If I had eight mandays to deliver a project, I'd spend 3 designing, 2 developing, 2 testing, the remaining day for rest.
-- Richard =)
Hip Hopping
Again, we'll see.
If only I am damn rich, I would start my own company, buy some state-of-art rigs, stuff them with Linux and Java goodies and code my day to my heart's delight. And that will come true in the future, I promise you that.
....and the journey begins....
Wednesday, June 22, 2005
Frustration Over Java Source
1. It is spaghetti code
2. It is unformatted
3. Variable names are crazy
4. Very disorganized, reminds me of the old BASIC days
5. Very inefficient
6. Not unit tested
7. Not object oriented
8. Not well designed
9. Not initially created by me.
10. Worst of all, I cannot do much on it as it is well entrenched into a similarly outdated pseudo-J2EE framework.
Arrrggghhhh!!!!!!
My Linux Box
Here's a screenshot of the doomed FC3...
Tuesday, June 21, 2005
Java User Group
One question lurks in my mind... is it right to open my ideas for OSS projects in this group? Or shall I keep in my trusty computer's HDD and eat up all the codes by myself... we'll soon see.