31 August 2005

Webwork 2.2 has now JSR-168 Portlet Support!

Yes! A JSR-168 Portlet support for Webwork 2.2. WWPortlet is Webwork, Velocity, Spring, Hibernate MVC Portal Framework. With this coming to life, rapid development of portlets will soon become a reality. But right now, I just want to nail my excitement so I can compare this versus InfoGlue which is another Webwork-based JSR-168 Portal Framework. These stuff put their expensive counterparts like the non-compliant BEA Portal Framework into shame. Webwork2's architecture makes it so natural to "slide" things like this into its framework.

Makes me wonder, there's just so much buzz with portlets these days.

23 August 2005

Sun Developer Days 2005

Today the Sun Developer Days here in Singapore has just been concluded. Quite an event, Treos has been raffled off, everyone got some Duke T-shirts. Of course not all seminars and conferences are perfect. There are some good and bad stuff that comes out from there.

To make a rundown of what came in that event let's start with the good stuff:


  • The opening salvo of the event talks about nothing but Open Source, it's Open Source here and there. Matt Thompson, Sun's Director of Technology Outreach and Open Source Programs Office, I remembered(hope my memory serves me right) quoted him on saying "...for the Singapore IT industry to 'continue' to move [forward]...", Why? Is the Singapore IT industry moving otherwise? His radar is quite powerful. I would partly agree, maybe around 70%. Of course, offshore and institutionalized companies like IBM, Sun, SAP etc. that has operations here doesn't fall on the reverse direction. Practically all the speakers uttered the word "Open Source" with different levels of boldness or shall I say wake up calls. Yes, most of the local IT players are moving on the wrong direction.


  • Again, it's about Open Source. It rules. Project Glassfish, Project Peabody, OpenSolaris are some of the highlights of this event. It's both open source Java SE(Mustang) and Java EE. And all the virtues of openness. Pretty frustrating when the speakers are attempting to get a consensus like "Who's using open source tools?", "Who's involved in open source?", "Who has a java.net user id?" etc. etc., from the look of their faces they seem to always get disappointing results. That's understandable, there will be some effort of pushing needed in this part of the world.


  • SAP the Platinum sponsor, has long been an Open source advocate. Well that's nothing new.


  • So it's open source and open source so forth. The Information Age is over, it's now the dawning of the Participation Age.


  • Going to Netbeans 4.1, Matt Thompson admits that Eclipse has a huge leadership in the open source IDE arena. For the reason that during circa Netbeans 3 and JDK 1.3 Swing with all its beauty and madness has been lagging in performance. I will admit that Netbeans 4.1 is now much faster than the previous versions which is a great improvement. The integration with Sun Java System Application Server 8.1 also rocks, the Java EE demos are not your typical nonsense "Hello world" demos, And if you insist that AppFuse is awesome, you're making a huge joke on yourself.


  • Going to NetBeans Mobility Pack, there's nothing like it elsewhere.


  • So far, I think IntelliJ has to really open up. Or it will really be left behind.


  • The speakers are great, they're all evangelists, of course, whatever that means


  • The DTrace discussion is also interesting, as of now Linux does not implement this kind of instrumentation. The stack traces, core dumps and panics are more understandable than the typical barrage of memory addresses etc. etc.




Going to the sleep-inducing stuff:

  • The JSF and Creator Studio, the yawnful JSF, It's good to have a nice "visual" way of doing things, personally, I still prefer to have full control of my codes, I still want to have the final decision on-the-fly where to put my validators, whether client-side or server-side, edit things with the IDE getting on the way, things like that. But all in all I will not give it a second look.


  • Java Generics, personally I don't feel like using this. It's like being forced to learn English the George Bush way. Gives me a lot of eye strains during the length of the discussion, is that the reason they put a Latina babe to present this so there will be minimal eye strain?


  • Java and .Net Interoperability, why bother? Being sensitive to the local needs? :)) I could say, Adapt or Die!


  • Netbeans' JUnit is crude, needs some improvement, I sat down with Chuk Munn Lee about this and showed him how JUnit works with Eclipse and compared it with Netbeans. It's understandable that this feature is also a work in progress.


  • Some clueless guests, BEA consultants which I knew by the face, may be they are now considering switching to Netbeans :)) , some asshat programmer from a state university who claims to know what he's talking about e.g. JSF rocks, Shale is going to change the world(Shale on him), Spring is just an MVC pattern(good thing I realized my shoes are made for walking), I wished he knew who he sits with. By the way, he gave me his business card.




But of course, it pays to pack two loaded guns instead of one. So today, it will be Eclipse for work, Netbeans for entertainment. How's that?

21 August 2005

Making D-Link DWL-G650+ AirPlusG+ work on Slackware 10.1


It's not great as others claimed to be or maybe "great" is relative. I spend a whole Saturday trying to make this WiFi card work. Since I lost touch with my Linux hardware buying strategy, for SG$43 I was so compulsive that I picked this stupid thing at Sim Lim Square. The buying strategy that I have adapted when I first learned Linux is the "defective/success" ratio of the hardware. This means getting the pulse of the forums on how many got a device working and how many got persistent problems even if they managed to get one working. And this device falls into the "high defective" rate and it will be a torn in my pride not to get out of that statistic. So I have to wrestle with mid-level stuff of drivers and kernels. In short, I should have took the $55 Linksys or even the $38 Netgear(!!!) that has a higher "success" ratio.

Anyway, the real fault can really be attributed to the Open Source culture of "What documentation?". So let's start with a few things. One of the most helpful sites I went is the House of Craig. Much of what I have done was there. What I am going to add are few points that has not been emphasized specially on building the driver without an alternative internet connection. Here's the brief summary of the steps for building the driver:


  1. Get the latest acx1xx*.tar.bz2, what I have is the pf51 from acx100.sourceforge.net. Of course, since the target machine to be build on does not have an internet connection, do this from other workstation

  2. Get the latest firmware driver from D-Link website, yeah we know it's for Windows but that's what you're going to use

  3. Referring from the House of Craig, do everything as necessary



Now if everything looks fine and you didn't have errors that says something like "bailing..." in the end of the steps but no IP was assigned or there's no internet connection. Here are some few checks that you can do:


  1. Make sure to turn on LED options in the start_net script, then re-run start_net

  2. if no LED went on, check the /usr/share/acx directory if all firmwares including the Windows firmware are there

  3. Rename TIACX111.BIN to TIACX111.BIN.org

  4. Create a symbolic link from the Windows driver e.g. ln -s FwRad16.bin TIACX111.BIN, then run start_net, this time the LED will light up.

  5. do a tail -f /var/log/syslog to check if the card is actually associating to the Access Point

  6. If association is successful but you got an error that looks like: Error: wlan0 failed to associate, can't use DHCP for IP Address, try iwconfig.
  7. If everything looks normal, this is the last and dirty resort: dhcpcd wlan0, if you're Linux kernel is properly compiled and installed and you are actually associated to the Access Point, an IP address will be provided automatically.

  8. Start surfing wirelessly and enjoy!



For some reasons, the start_net script has to be tweaked for it to properly recognize that DHCP is being used and there's no WEP security enabled. But I am have no time to do it yet. For now, I have the ./start_net && dhcpcd wlan0 everyday. So far I am happy with how things are coming along and this blog was submitted thru D-Link DWL-G650+. Hope this helps.

18 August 2005

Now a "bonfide" publication

After waiting for a couple of days The National Library Board of Singapore has granted me my ISSN(International Standard Serial Number). Which means this blog is now a "bonafide" publication.

What's the big deal about ISSN? An ISSN is an internationally accepted code that provides a unique numerical identification for a serial publication. It takes the form of the acronym "ISSN" followed by two groups of four digits, separated by a hyphen, for example, ISSN 0217-4634 or ISSN 0218-401X. The first seven digits are unique to the title, while the last digit provides an automatic check on the accuracy of an ISSN. The last digit may be an X (for 10); otherwise the ISSN is fully numeric.

So what's the benefit of an ISSN? An ISSN uniquely identifies a serial publication. Publishers, suppliers and libraries worldwide use ISSN as a reference number for selection and acquisitions.

Serials with assigned ISSNs are easily identifiable and retrievable. In addition, ISSN acts as an access point to the ISSN Register published by the International Centre in Paris. The Register lists serial titles published all over the world, and is available in microfiche, magnetic tape and CD-ROM.

In addition to that, ISSN is important for this blog because not all the rants here are "rants". When stuff are reviewed on this space, it's not just a piece of software or hardware lent to me over the weekend and have my opinion on it then post and rate it. It's about actual usage, actual consumption that has been done over and over again.

My apologies for the aggregators where I am listed if all my old posts are being reposted. I am just making a backup of my entire blog to the CD as a Legal Deposit in exchange for the ISSN.

16 August 2005

Java Card Communications Access Layer

Also known as JACCAL or sounds like "j@k07" is a smart card API for Java. I am not really into Smart Cards, but basically anything that passes thru I/O should have one thing in common -bytes, it's just a matter of learning the communications protocol like how the streams are parsed and read, how the data are build and transmitted. JACCAL uses the PCSC or Personal Computer Smart Card protocol. Anyone who's interested in writing an application in Smart Cards especially in Java should be familiar with the Java Communications API.

I remember that I have to promote my SerialFTP from Planning stage to Beta, but I have to find my backup code back home. SerialFTP also uses Java Communications API, it implements a simplified ZMODEM protocol, jokingly named as JMODEM and has stuck since then. Even funnier is, this protocol has been used as a non-standard firewall too. Who? Well, that information is not open source :) Eventually I will write a hyperterminal-style functionality there when I get the time.

Audacity addiction

It's really like magic, I don't want to bother about the underlying reasons why ALSA produces better sound than any other Windows-based audio architecture. But there's really a distinctive difference. Even our resurrected now-Slackware-souled Dell Latitude CPx sounds better than its siblings that are still running Winblows.

Anyway, in relation to chiseling sounds. I used to do audio editing with SoundForge years ago and its a nice tool and now it has improved a lot, I hope they can release something for Linux soon. But since I don't have the budget allocated for it yet, I will settle for a cheapo(just kidding) Audacity, I've been watching the progress of this tool and it has improved a lot although not as intituitive as SoundForge, still, I can get the quality of sound I want with just a little perseverance and patience. A few months more hopefully.

And finally, this is my first post written on a Linux machine since I landed in Singapore! Purifying experience.

15 August 2005

Stuff that keeps my biological clock broken

And the stuff they don't give medals for. Of course, the next best thing to orgasm is having an environment that you put up yourself. For example, installing Linux from scratch, from building the right drivers, compiling the kernel to setting up of your favorite Window Manager. The fun part is doing that to an old machine(a laptop for this matter) where all the devices are almost obsolete. It's like giving an initial drift to an old Shelby. After several months of no Linux-as-a-development-operating-system, my long Linux itch has been finally scratched. But that doesn't stop there. More fun is about to come.

The rig that I resurrected into a drifting machine is a Dell Latitude Cpx, with Pentium III 650Mhz CPU, 256 RAM, 10GB HD. From what I heard around, this is one of the most Linux-hostile machine. But it has been very cooperative so far, boots in an average of 15 secs, faster than when it was running WinBlows(of course) before. Taking advantage of the Linux 2.6's HyperThreading features, Java apps like Eclipse are snappy as well. But of course given the skimpy hardware configuration, it has limits too. And feels good squeezing every drop of juice from it.

Another thing that will keep me up at night is this. The Linux Guitar apps, I believe there are many more but I'll be taking those stuff one by one. I remember back in my college days listening to NU107, the Philippine's only rock radio station(hey Singapore should have a dedicated rock radio too), There's an intermission message that say's something like this:

"If I were to choose between losing sight and losing hearing, I will choose sight. For if I lose my hearing, that will be the end of me".

These are the stuff of the revived nocturnal creature. Linux, Java, jazz, rock and...did I forgot salsa?


Darkstar, Signing on.

14 August 2005

Another one on Intellectual Property Rights

Snipped from a hard copy of The Strait Times' Review Section, August 13, 2005, entitled "Intellectual Property rights: Why they are so wrong". Written by Joseph E. Stiglitz, a Nobel laureate in economics. It's about his takes on why intellectual property rights are so wrong. Some interesting points I would like to share if you failed to grab a copy from the newsstands. Sorry URL link requires registration and I am too lazy to do that ;)

"...Without intellectual property protection, incentives to engage in certain types of creative endeavours will be weakened. But there are high costs associated with intellectual property..."

Correct. Continuing on...

"...and if intellectual property slows down the ability to use others' ideas, scientific and technological progress will suffer..."

"...the mathematics that underlies modern computer -are not protected by intellectual property..."

This is undisputable. Now let's hit the G-spot.

"...The growth of the "open source" movement on the Internet shows that not just the most basic ideas, but even products of enormous immediate commercial value, can be produced without intellectual property protection..."

"...By contrast, an intellectual property regime rewards innovators by creating a temporary monopoly power allowing them to charge far higher prices than they could if there were competition...In the process, ideas are dessiminated and used less than they would be otherwise...Modern research has shown that the great economist Joseph Schumpeter was wrong that competition in innovation leads to a succession of firms..."

Stiglitz also added how Microsoft demonstrated its abuse of market power to discourage innovation.

Take note, these words are not from a zealot's mouth like RMS or ESR. This is a third-party opinion concerning intellectual property and how it hampers innovation. Even for sustaining a developed economy, open source will still play an essential, semi-obvious roles.

13 August 2005

Sun Acquired SeeBeyond

Nodding sideways with a chuckle was my reaction when I read this news. Sun Microsystems, lacking a decent product to compete in the SOA arena, bought somewhat a decripit company call SeeBeyond. I remembered seeing the life and death(yes, being witness to the slaughter) of ICAN when I was working for one of the top Philippine's telecoms companies. While we were developing our Webwork+Velocity+Spring+ActiveMQ+SJSAS+JNI+CORBA combo of systems along side ICAN. I can't help but pity that ICAN thing because it can't take up the load of the Philippine's SMS-savvy networks so every now and then it conks out. We even flew in consultants from Australia and Singapore and the only words they can spew out was "That's strange", the phrase I found very famous here actually.

Yes, ICAN might have helped in launching space shuttles, but it failed to handle the world's biggest SMS chunk or junk for that matter. That SOA thing failed miserably in the 20,000,000 messages/day business(and I am referring only to one telco handling that, we have 3). And eventually, I saw that thing decommissioned and spent the good value of money rewriting things on our own. I just hoped the money paid for that shit was used to jack-up my salary.

Hopefully, Sun can improve some things about it like performance and memory optimization. But honestly still, I am not willing to pay a premium for that.

11 August 2005

Building The Empire: The Singapore Takedown!

The storm troopers of Business Software Alliance are stealthily creeping the city. And I am surprised in a developed country who as I heard on the streets and teh tarik breaks boasts of not maximizing the power of open source because it is a cheapo, yet still has symptoms of a third-world software piracy. At least in the Philippines, after an infamous raid on a very reputable world-renowned Japanese company around 5 years ago, businesses started to clean up since then, that's why technologies that really make sense(those that will help uptick your stocks, upgrade your salary, strengthen your skills) are flourishing up there.

As a support to the storm troopers actions and part of the empire building, I have cleansed two offending workstations(a desktop and a notebook) of its unnecessary evils. These two are both from Dell and has surrendered themselves to Slackware 10.1 with recompiled Linux kernel 2.6.12, all the old Xircoms(PCMCIA) heeded to the recompilation smoothly. One local Linux user asked me, "why recompile"? I had an empty stare at him and asked back, "why not"? This is what Linux is all about, freedom, the chance to play with the "engines". What's the point of owning a hotrod if you can't open the hood?

Another local who is outside of the paying-members-only Singapore Linux Users' Group got the chance to compile a MySQL 4.1 source in our Slackware notebook and got it working under my watch. My wild guess is, he's the first local to do it in a such noob-hostile environment here. :)) So I told him to put it in his resume and if he enters a Poly or Uni, asks his major class professors if they had done such things, before they teach the "undervalue" of open source.

Building The Empire: Mule vs. OpenAdaptor

I am revisiting these two EAI implementations(whatever you may call it e.g. SOA, ESB etc. whatever). I have once played with OpenAdaptor before, it was really nice but it doesn't fit what we were trying to do two years ago. OpenAdaptor has been around before these marketing buzzwords such as SOA, ESB etc. etc. were coined. Mule on the other hand, tries to achieve the same thing, this time it is a bus, a looong bus, a double-decker bus, a triple-decker bus. Whatever. Since there's just so much fuzz about a lot of crappy technologies these days both coming from commercial and open source(e.g. AppFuse, Weblogic, etc. etc.), the commercial ones are even too hard to swallow, so much eye candy, so much 'surface value'. It's time to revisit technologies that really make sense!

The streets are so much buzzed with knowledge management, content management systems, portal management that really contributes so little to the value of a business. Some thought it's useful because a sweet-talking salesman has told them so. Businesses are more concerned to the value of what they are doing; getting results done in the most effective way, because this is how businesses can maximize profits.

The lack of appeal of these products are due to the absence of a tantalizing, hypnotic UI. I realized that UI is one of the best tools to fool a customer. But with OpenAdaptor or Mule, it's really the actions, especially the unattended ones, that matters.

08 August 2005

Blog DeathMatch: Hani vs. Paul

Choose sides or run for your unmentionables :)) This is going to be fun! We have a wet dreamer and a wanker, what more could you ask for? "Hiring is Obselete?", maybe in an ideal world, and I don't think Microsoft is one of the three big powers of the Internet, that thing is a sleeper. It's MS that tries to debunk the potential power of Internet in the mid-90s and claimed CD-ROMs are the way to go. In fact, they were hit titsup by the dotcom wave eating up their own shorts. Paul Graham might be a PR man on the M$ payroll.

And Hani on the other hand, is a real wanker. Who desperately plays Twister(TM) alone, naked and trying not to get aroused in the process. I don't mind if he's a sucker for IntelliJ maybe that's his source of inspiration(and wisdom) for all his writings. His open source hypocrisy is also one of his ticklers.

Both came from a programming career. The one become an investor and the one become the invested or fornicated. It seems there are two trends a programming career will be heading, either become a funder or become funded. Interesting. Hey, bring more mud in the ring!

07 August 2005

What you don't know about XP will hurt you

Just like what you don't know about sniping without an observer can kill you. Maybe that is the most appropriate analogy, Sniper/Observer pairing, in XP, it can be coder/observer pairing. Like an observer in a sniper duty, he/she is not only focused on the target at sight, he/she has to observe the surroundings ask questions like "is our position compromised?", "did the enemy spotted us?". He/she also has to provide cover for the sniper when things goes awfully wrong.

In XP's pair programming, almost an equivalent scenario applies. Observers does not only watch the coder type away. The observer has to consider how that particular piece of code currently being written will affect the whole application, is the code style correct? Are the use of patterns correct? Are the singletons should be where they are? Will it become a bottleneck if we integrate with X Team's API? In a looming deadline, the observer can also sit down side by side with the coder, he/she can build some urgent test cases, prototype user interfaces while the coder continue writing the business modules and data objects needed(this is like providing cover fire).

Just like in combat, snipers/observers are not the only elements/operators you need to win the war. They only make fighting easier, "safer" and faster for the regular infantry. And their utilization is "as-per-needed" basis only. No general will order a full regiment of snipers/observers to the front, that's ridiculous. Only missions that requires speed and clean extraction such resource will be employed, and will come out as if nothing happened.

That's what corporate developers find difficult to swallow, the "as if nothing happened" part. Most of them always needs recognition for every efforts, individual recognitions. And XP efforts are one of the most difficult to appraise especially in a traditional brick-and-mortar company.But pair programming isn't the silver bullet in every SDLC, just like snipers/observers they're used in special situations anywhere in the SDLC phase.

06 August 2005

Fast Infosets, How are they coming along?

The last time I read and played little about Fast Infosets was a year and half ago when I am still developing "highly-intelligent crawling" stuffs for the telecommunications and broadcasting industry. As the name implies...

Fast Infoset specifies a binary encoding for the XML Information Set. An XML infoset (such as a DOM tree, StAX events or SAX events in programmatic representations) may be serialized to an XML 1.x document or, as specified by Fast Infoset, may be serialized to a fast infoset document. Fast infoset documents are generally smaller in size and faster to parse and serialize than equivalent XML documents.

Sun Microsystem has one project going on. This is really cool stuff since plain XML, which is really one of the necessary evils when it comes to performance bottlenecks. Most developers, just to say they have used XML in their resumes, will really do stupid things at the expense of performance, to any type of 'XMLing' in their apps. In effect, we have a lot of heavily XML dependent frameworks. On the other hand, a lot of things won't be possible without XML. Adaptation will be one of the challenges Fast Infoset will have to tackle. Imagine if we want Spring to be more bouncy then there's a lot of work to be done in making context bean factories work with Fast Infosets. Web Services especially, the WSDL has to be modified if we to have a faster SOAP XML interoperability. Apache will also have a lot of refactoring to do make Fast Infosets really work for them.

But if we want to break the barrier of XML-burdened performance, then Fast Infosets needs to be adapted as soon as possible.

05 August 2005

Webwork+Velocity+Acegi config

Honestly, it's really a no-brainer. As what other Acegi's advocates are talking about, that Acegi should work with any frameworks. That's correct and adding to that, there's isn't much to code. I experienced getting some surprisingly erratic redirection behaviours after login. But I know there's nothing wrong with controller(action) classes so I was firm about my suspicion that what was happening was just a misconfiguration on my context files. The assumption was right. After following tightly the Contacts example, there's something that needs to be modified in the redirection if anyone intends to use Webwork+Velocity with Acegi Security framework.

Listing 1: applicationContext-acegi-security.xml



<!-- ===================== HTTP REQUEST SECURITY ==================== -->

<bean id="securityEnforcementFilter"
class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter">
<property name="filterSecurityInterceptor"><ref
local="filterInvocationInterceptor"/>
</property>
<property name="authenticationEntryPoint"><ref
local="authenticationProcessingFilterEntryPoint"/></property>
</bean>

<bean id="authenticationProcessingFilter"
class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager">
<ref bean="authenticationManager"/>
</property>
<property name="authenticationFailureUrl">
<value>/showlogin.action?loginerror=true</value></property>
<property name="defaultTargetUrl"><value>/readuser.action</value></property>
<property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property>
<property name="rememberMeServices"><ref local="rememberMeServices"/></property>
</bean>

<bean id="authenticationProcessingFilterEntryPoint"
class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<!--<property name="loginFormUrl"><value>/acegilogin.jsp</value></property>-->
<property name="loginFormUrl"><value>/login.vm</value></property>
<property name="forceHttps"><value>false</value></property>
</bean>

<bean id="httpRequestAccessDecisionManager"
class="net.sf.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters">
<list>
<ref bean="roleVoter"/>
</list>
</property>
</bean>

<!-- Note the order that entries are placed against the objectDefinitionSource is critical.
The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
<bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property>
<property name="accessDecisionManager"><ref local="httpRequestAccessDecisionManager"/></property>
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/index.vm=ROLE_ANONYMOUS,ROLE_USER
/login.vm*=ROLE_ANONYMOUS,ROLE_USER
/readuser.action*=ROLE_USER
</value>

</property>
</bean>




From the "filterInvocationInterceptor" id, I removed the "/**=ROLE_USER" and replace it with my actual pattern based that is also the default redirection URL if authentication is successful. This reduces the "candidates" within the filter invocation interception to be matched.

Acegi Security is a very comprehensive security framework that is usable to almost any applications including non-web apps(Swing, SWT etc.) and is straightforward to customize. I don't see any reason why would anyone build an authentication and ACL framework from scratch again.

04 August 2005

A little fix for the fart-addicts

As not to spoil so much of your fun. I know that most Hibernate+WhateverWebFramework+WhateverPattern+AlwaysInTomcat junkies out there sure will make things work fine. You have a shiny, bubbly web application bouncing like a squash ball. This addicts will claim they have over a thousand users on that application, no shit man this is what you call hallucination, it's truly a fucking lie, I don't buy that, I can bend over with pants down on this people and for sure they can't tell the difference between kissing Britney Spears and my ass.

Ok here it is, if you happen to be a developer who belonged to the companies with deep pockets, most likely you're playing with IBM Websphere, SJSAS that has really have a fine security policy. Also, this will prevent that pitiful Weblogic from shutting down. And with some dickhead even upgraded your Hibernate to Version 3 then your hibernate.cfg.xml should have something like this:


<property name="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</property>


Otherwise you don't need that since you're awfully poor and you can't afford a decent application server.

Oh yeah, it's good to be back

So some people do remember me as The Darkstar Blogger, hehehehe. Darkstar is really the name of my PC back in the Philippines where I hastily installed Slackware 9.1. So the name stuck.

So let's see what has happened in the Java Blogging Community during the moments of lull. First, how's J2ME? Yeah, it's now Java ME, a couple of years back there's too much buzz about it, some predictions says new Java jobs will be created from this and that was made a couple of years ago. But so far, only games are making noise on this side of Java. The everyday Java ME apps are from usable. I still use my phone for talking, SMS, trying out some 3Gs but the latter won't stick like talking and texting. The lack of standards is really killing this platform. There isn't much any catchy hype like Spring and Groovy. It's more like rants and raves from wannabes and wannados.

In between these times I also happened to watch Hani's interview at TSS, yes that guy at Fornicary (did I spell it right?) and Rod Johnson's "Why J2EE Projects Fail", hope some tough nuts here have learned something from him especially the "corporate developers". There are no new heroes lately like Rod Johnson or Josh Bloch. No new hyped patterns. I guess most of us has peaked the technical side of our Java careers and started looking at the leadership aspect of the whole thing which is totally a different skillset at all. I didn't use "management" as it may imply PHBs (Pointy-Haired Bosses). Most of us right now is in the stage of balancing zeal and profits(dual-licensing still rocks). Of course, not to forget, IBM and Sun is carrying their own brand of open source these days too.

Again, there were days that will never be complete without bashing Hibernate, EJB and now there's an additional toy to fool around with, BEA Weblogic. While the new versions are up, new bugs are there too and surprisingly even the old ones are still alive! But I think those are fundamental flaws or permanent damage in other words symptomatic to the brains of their creators :)), use-at-your-own-risk.

At least now JavaBlogs has been fixed and its intelligent enough to recognize atom.xml. Silly, of all blog aggregators this the last one that knows there's such thing as atom.xml.


And yeah, it feels good to strike back again.

JSR-220/243 The Dream Project

Get out of the way Hibernate, go to sleep. According to Eclipse.org, "... The goal of the project is to provide tooling integrated with the Eclipse platform that generates artifacts for runtime implementations of the JSR 220 persistence and JSR 243 specifications..." Which means the Eclipse team is getting serious about JDO. The politics of persistence has kept JDO from the limelight not because of technological merits, in fact it's really far more superior than anything else. It's just some people from Hibernate, the CMP-loving JBoss and other rotting persistence groups just really^9999999 love to fart from their mouths. Naturally, farts like that can truly get some attention.

But with this JSR-220/ORM coming along, at least some of us could breath easier. Hopefully, some of those fart-addicts could be rehabilitated. Persistence is the name of the game, instead of sending letter, why not let just let JDO prevail ok? That letter does not even have a clear direction on how to unify, it only talks about how to improve the technically inferior side. Anyway, with the increasingly popular Eclipse, things will change in the near future.

03 August 2005

1 shitty container + 1 shitty persistence framework = ???

Of course, a cakeful of shitty applications. This is a funny experience, well I consider this funny so let me consider this two shitty things as the two stooges chasing a gopher but eventually hitting each others head in the process. I tried to run a sample application using Hibernate 3 on Weblogic 8.1, Hibernate is using ANTLR for some reasons maybe to process it's HQL dynamically, whatever that means. There is some sort of a query factory class that H3 has started using and for some reasons it causes a CharScanner.panic() in the ANTLR which by default will shutdown the JVM. I don't have anything against ANTLR, that is a very good tool written by a very good programmer who deserves to be really in "front of the keyboard", not these goofy jerks from Hibernate and Weblogic.

So here it is, I encountered this panic() that is configured normally as per instructions, believe it or not it actually shutsdown the Weblogic Server! Weblogic, by default, allows itself to be shutdown!!! Of course some goofy there will tell me, "you should modify the policy file" yeah you're right as if they're really going to do that if this pest didn't bite them. And I tried replicating the same error on Sun Java System Application Server PE 8.1 and it disallowed the process without me having to tweak anything for the first time. Imagine of you have several 24/7 applications sitting on the server, that is nightmare!

14 Marines just died recently in Iraq, it may be more if these two shitty products are running some show over there.

Effectiveness vs. Efficiency

I asked one candidate before what's the difference between effictiveness and efficiency. Take note this candidate has all the "SC" prefix on his certifications, he technically knows almost everything. But that is a clincher question and after throwing that question many times already, it is not surprising that 2 out of 10 will give an answer that makes sense. These few individuals, from the less obvious ways, knows the difference between doing things right and doing things quickly. Seldom these two mix, seldom you meet people who knows the difference.

You'll notice, only software marketing bullshit promotes efficiency. While the true successful ones really emphasize more on the how to be highly effective, one even came up with a 7-habits for it :)) Even some digital cameras measure pixels in "Million Effective Pixels" rather than "Million Efficient Pixels".