Tuesday, November 22, 2005

email: the scourge of office productivity

And you tought that eMail was revolutionary. During the early heydays of internet, it is. At least it gives an almost-instant way of communicating second only to IRC channels. But now, you still have IRC (which might be banned in corporate network) and IMs. In sending an email, the latency between the sending and receiving actions tend to be longer than expected if the recipient does not expect to receive a message or the message gets queued in the server. Also, as per my experience, emails sent to me which were written on different timezones tend to position themselves on a different part on my inbox, at least, on Thunderbird. With this, I'd definitely miss some message, unless, except when what I'll do the whole day is to scan my inbox and determine the new arrivals in time-sorted manner. The bottomline is that email is not real time. People who uses email in their work tend to slack. Pardon me but that's what it is. When communicating in a software development world, I'd prefer logged IM messages. This is more real time.

And the thing that endears me to IMs compared to email:

.... you don't get spam.

cheers.

ok. let me now post this through email ;)

You can find the original post and post comments here.

the week that was

Last week was such a hellish week that the last two days was spent damage-controlling puny bugs that went into the headlines (internal, that is). The gravity of these were so strong that it cascades to all attached modules, and in fact, similar to a programatic DoS attack. Add to that, we would not had any saturday work (for the very first time) if not for these. Sheez. I was at home that time, but I was on a remote working mode. This really sucked! Still, with the first day of the week, the issue hounds me like an ever-haunting ghost. It's really shameless. I attribute this issues to a flawed design and product. With this, comes next, management, development process, modules, etc. that are built on top, and hence, will be flawed too. We are on an endless cycle of mediocrity. When will this end? :(

You can find the original post and post comments here.

Productivity and Pay

Not sure whether all might have experienced what I did. But I guess majority do so. In your corporate world, you work, work and work still. But when the pay check arrives you feel like doing what this feline fellow is enjoyingly doing. Arghh!

Bottomline: when you look at the payslip and thing for a moment, think on the gravity of your work, you feel like...


*SIGH*

You can find the original post and post comments here.

DIY Mobile Phones

This looks very interesting. Everyone builds their own rigs. But nobody has ever built their own phones! ;) Somebody did it. IMHO, with the backing of a developer/tech/OEM community, DIY phones can be a reality in future. Add Linux as its OS, and its done. Attention VCs! Hope this picks up. I want to try it myself.

Build-it-yourself cell phones

You can find the original post and post comments here.

Free Java Developer Tools

Talk about marketing strategies. Sun is offering its commercial Java developer tools for free (as in beer). Developers will not have the software and opportunity to test-drive such products in exchange of ads or nagging, but they can have the full version. No ifs, no buts. Sun is making the suite available for users of the NetBeans platform and Sun Develper Network (SDN) members FREE copies of the Java Studio Creator ($99 value) and Java Studio Enterprise ($1,895 value) development tools.

So what are you waiting for, go get yours now. If your not a member of SDN, sign up here. As member you can get the download instructions here.

You can find the original post and post comments here.

del.icio.us

Through the long years I have spent in my IT career, I have browsed thousands of content from the Internet. Like everyone of us all, I do bookmark. But when I get a new PC, work on a different workstation, transfer to a different office and even go home or be mobile, I have amassed a clutter of bookmarks which, until now, I am trying to organize as tagged del.icio-us bookmark. I have had my account long time back but doesn't seem to care nor realize its usefulness. Better late than never, one would say. So here goes my bookmarking days... I'll be building up my list before publicizing them. Cheers.


You can find the original post and post comments here.

Sunday, November 13, 2005

How AJAX works

In my recent post where I got a violent flak from one of my readers. I do believe that whatever I post, for that matter, everyone's posts in their own blogs composes freedom. Freedom to express. The anonymous coward commenter had his freedom too. Freedom to read my post, which apparently stepped over his beliefs and freedom to convey his thoughts. Let me now re-explain my side. John Doe, this is for you.
I am not sure whether the post I commented with meant [1] producing and consuming JSON data in java applications or [2] AJAXifing content by meer evaluating JSON through eval. Let me tell you that it is not as simple as you thought. You might be one of the Architects I've been talking about before, who mainly dwell in buzzwords. Yeah, speaking golden sweet-sounding buzzwords will definitely turn PHB heads and they will adore you like a god.

My friend, if you meant point 1, yes, it can be done. It can be done, not just by JSON but with other XML format as well, moreso with non-XML format. My personal preferrence, SOAP. With the inclusion of Rhino in Mustang, it will not mean that now, we can "finally" support AJAX. It doesn't necessarily be AJAX. Java clients and servers has been consuming and producing XML-based data before in the guise of Web Services, B2B, B2C connectivity and the likes. It has been there, even without Rhino.

If you meant point 2, I tell you, this won't be possible, AFAIK. Rhino and other scripting language made available and embedded within Java are not meant to manipulate UI, just like your JavaScript when you tried your DHTMLs. Rhino, Beanshell, etc. are there to extend business logic. These scripting capabilities was made to create extensibility of business logic by mear definition of the script and not statically defined programatically.

But what is AJAX, really. please refer to the link on the image. You can also buy books or refer to AJAX-related sites and wikis. As you can see, AJAX is composed of the following components, but not necessarily these only. Asynchrony may be achieved with something else, e.g. applets. Data format may also be proprietary. But with this, it ain't AJAX anymore.
  • DHTML: XHTML (or HTML) and CSS for presenting information

  • The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented

  • The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any format will work, including preformatted HTML, plain text, JSON and even EBML)

The core presentation engine (AJAX Engine) does not have any defined process as well. All I know is that it acts as controller and mediator between the GUI elements (CSS+JavaScript) and the request/response (XML). You really want to learn more, here's what I can suggest you can dwell into: Java, XML, JavaScript, XML, HTML, CSS/P, Servlets/JSPs. Correct me if I am wrong, but in a nice way. Hope you won't be so violent and vindictive next time. Peace!

You can find the original post and post comments here.

Saturday, November 12, 2005

My Ubuntu shipment has arrived!

And after a month since the release of Breezy (5.10), my order for the CDs has arrived. The CDs were all snapped up in a jiffy like pancakes. All in all, I ordered for x86, PowerPC and x86-64 flavors of the distro. Reserved the three for my home PC, office PC, office PC 2 (64), and my home iMac. Reserved one mac for my friend. Reserved one 64 and one 32bit versions for our IT department. And the rest were given to interested colleagues. I am not sure whether one made the crack as a joke or was he really serious. This is what he said: "will it run in windows?". I said, in a serious but hillarious way, "no". "Instead, get Cygwin". OK, yesterday was an install fest, at least for my own machine. I have reinstalled my OS (64) while I sadly toil away on "hard labor" at the office. Today's is another install fest for me... at home.


You can find the original post and post comments here.

Wednesday, November 09, 2005

AJAX on Mustang, but why?

I can't help the itch to respond to A. Sundararajan's post @ blogs.sun.com. He states that with the upcoming Mustang release, it will contain support for JavaScript. Yes, Mustang will have a new package called javax.script. The implementation to the scripting API is JavaScript-based and will be leveraging on the Rhino JS Engine. For history purposes, Rhino is an open-source implementation of a JavaScript engine written entirely in Java.

OK, the key elements to AJAX are:
  • XML, usually in form of JSON (JavaScript Object Notation)

  • Asynchronous mechanisms

  • JavaScript.


As A. Sundararajan says, AJAX is now enabled in Java, specifically on the consuming if the JSON messages and processing them through JavaScript.

"This implies you can transfer and read data from web/app server in JSON format and read the same in client (web browser or JavaWebStart) side easily -- all you have to do is to make reader from your (URL) input stream and eval it!"


But then again, when a Java program (GUI/Swing) communicates using XML as the data, it is still that Java program who will consume it. What do you need the JavaScript for? Java can parallel-task using threads, can operate on XML using JAX* and can definitely render more functional and interactive GUI through Swing. One thing that has not been considered when JavaScript was thought of to enable AJAX in Java is that AJAXified content uses CSS/P (a.k.a. Layers) to render the XML content back into user-understanble format. Java has Swing and I think "AJAX" through javax.script wil not do the trick.


You can find the original post and post comments here.

Tuesday, November 08, 2005

That thing called SOA

Yes, I believe (Service Oriented Architecture) SOA is a buzzword. Marketing departments use this as a punchline. Architects use this as convincing word to hire them or to believe them.

But really what is SOA? I think compared to OOP and AOP, which are programming-oriented, SOA is different altogether. SOA is both a collection of technologies (like AJAX) and it is also a paradigm, moreso, an idiom. SOA is there to enable consumption and reconsumption of reusable components, a.k.a. services. From my own point of view, true SOA can be achieved through the following:

  • J2EE

  • JSR 168 a.k.a. portlet/portal interoperability

  • JSR 181 a.k.a. Web Services metadata annotation

  • XML

  • BPEL

  • SOAP, WSDL, UDDI

  • Matured tools for development, deployment and administtration

  • Concrete and reliable AOP/OOP designs

  • ...and perhaps, RSS

  • ...and perhaps, with something more


It will really take some time before an architecture is a true service oriented architecture. It is not as simple as you have a set of classes and making the libraries available for reuse. Come on, this is already in place since the legacy mainframe/Unix days. True SOA is about maturity, both in the development process in the software itself. Got SOA?

You can find the original post and post comments here.

Saturday, November 05, 2005

Java EE Risks

It has been several years years now since J2EE has been the constant buzz in the software development industry. Now that it has changed name, for viability purposes, to Java Enterprise Edition, it is still around and going strong, albeit with strong opposition from Microsoft's .Net, open source community's LAMP and from the other mainstream java groups who champions mix of Java EE and IoC.

Several companies came and go. Some survived, succeeded and failed with Java EE. Yes, folks, some did fail. They failed because they didn't know what they were doing. They failed because they jumped into the bandwagon without even knowing what the heck Java EE is all about. Please do be careful in any technology that you may choose whether it be Java, .Net, LAMP, client-server, legacy integration, N-tier or client-server, open source or closed source. Bottomline is, software making business is not a child's play. It is not like a pet project too. Software engineering is a concern that requires thorough planning, understanding of the domain and design.

Going back to the Java EE risks, here are the common pitfalls why an enterprise software (disregarding other factors such as actual requirements, software development process, environment and deployment details, pool of staff and vendor selection) fails:
  • Architects and Developers does not understand how Java EE componens work. - without relevant knowledge of the underlying technology is definitely the biggest risk in the project. "Knowledgable" persons tend to ride on the buzzword and pretend to know what it is all about. It is like knowing 1+1=2 and declaring that they already know Algebra.

  • Architects' unfamiliarity with design patterns. - not knowing and applying the basic GoF patterns and the prevalent Java EE patterns such as session facade, VO and MVC is a definite recipe for a failed project.

  • Shallow Java SE foundation. - well, this one's pretty obvious. You don't know Java, then you don't have the bragging rights to "know" Java EE.

  • Poor, untestable design. - well, this criteria for mediocrity is a definite ingredient to failure.


To summarize: Java EE is not a cure-all approach. It is up to different factors on why Java EE is the best choice, or worst, why it will not be good choice. Go ahead and figure it out. It is binary, you know. It will either lead to success (1) or failure (0).

You can find the original post and post comments here.

Friday, November 04, 2005

Java solution to headaches

Just another unorthodox problem that is trivially solved by "Java".

Got my new specs lately. Though my level of techieness has not yet reached the level of understanding an optometrist's findings, but one thing's for sure, my eyes changed and so will my specs. But, still... the headaches persist. I know that this time, it's oiriginating from the neck. Luckily, I have Java. An old Java book, to be exact. How did the Java book solve my woes? Stack it over the CPU case so my monitor will be at head level. OK, there goes my headache. Onwards to ache-free programming days.


You can find the original post and post comments here.

Classpath's nearing completion

The road to full Java freedom is almost at hand. With GNU Classpath team's effort, a free and open source JVM is in near completion, at least on the compatibility with Sun's JDK 1.4 specs. I am on the impression that Apache's Project Harmony may fork Classpath or leverage on it. Well, whatever the outcome is, still, we have a free JVM.

Classpath is a project that aims to create free core class libraries for use with runtimes, compilers and tools for the Java programming language. Coupled with GNU's GCJ (GCC for Java) you'll have a nice tandem of F/OSS Java runtime and development libraries. Unless, of course, your software will be sold and you're not ready to take on a GPLed code.

Notable improvements to the latest release 0.19 are:
  • More efficient swing

  • Better inter-operation with CORBA, support for RMI over IIOP


Highlights from GNU Classpath
Much more efficient painting for large Free Swing GUIs. Improved accessibility support. HttpURLConnection rewrite. Official CORBA VMCID assigned. Start of RMI over IIOP support. Qt4 support for OS-X. Much improved Free Swing Metal theme. Free Swing Demo includes theme switcher example (Metal, Ocean, GNU). JBoss now starts up and Jonas testsuite passes for 95%. Support for the javax.sound.midi framework and experimental DSSI and ALSA service providers. Early version of the popular StAX API. Now has 96% coverage of 1.4 API.


You can find the original post and post comments here.

Free NetBeans

NetBeans 5 Beta is out. But here's a little goody that only NetBeans.org provide: Free CD, delivered directly to your doorsteps. It's a-la Ubuntu, you may say. We'll wait for some more time and it's NB 5.0's turn to be delivered. Nothing beats true F/OSS software being obtained also for free. Yes, there were free CDs from IBM/Rational, from Veritas, from Oracle, from anybody else, but none of them is F/OSS. That's why I am so appreciative of NB as well Ubuntu. Can't wait to get my copies. Go get yours quick. My friend got his, straight from Praha (Prague, Czech Republic) ;)

You can find the original post and post comments here.

Hello World!

Welcome to richard@work's mirror blog.