30 September 2007

The Java Sound API

No, I'm not going to write about how to code on Java Sound API. Well, at least for now. But I would just like to demonstrate how it's used and how it works. Since this post is about sound, I prefer not to use too much words. Thanks to orDrumBox, here's a demo.



29 August 2007

EclipseCon 2008

Yes, I want to go but I have to do my planning now. But until now no updates are happening in the EclipseCon 2008 RSS feed. I will need to prepare a few things before flying:

  1. Get all DynamicBeans plugins ready
  2. Get some small slide presentations ready (not for the speeches)
  3. Be ready to meet the people we might be working with after the conference

Educating developers in Eclipse RCP

Perhaps one of the challenges RCP vendors are facing today is the availability of talents when working with specific Java technology such as the Eclipse Rich Client Platform. Since most of the Java developers are in the mainstream JEE (or in Singapore, it's still refer to J2EE) camp. It has been difficult to look for developers with a firm grasp of the RCP concept.

One way of tackling this issue is by providing an educational path or a courseware for would-be RCP developers in a manner on how a conscript is trained and sent to war. But this burden can be carried on by RCP vendors themselves or outsource to a competent training provider. But why would a developer spend time on something where opportunities are limited?

28 July 2007

RP software group slams poaching by Singapore recruiters

"Poaching" is the word. I'm not going to refer a link because sooner or later this subject will going to take a heavy beating and will be removed or "archived" online. But let me share what the problem is according to the article.

"The Philippine Software Industry Association (PSIA) has expressed alarm over the rampant recruitment of Filipino software professionals by Singaporean companies.According to the PSIA, over the past two years, some of its member-companies have observed a growing number of agencies from Singapore that send representatives to Manila to recruit software engineers."

And PSIA's solution:

"To address the situation, the PSIA has requested the Singapore government to impose additional requirements on Filipinos securing work visas, including a copy of the applicant's resignation letter and clearance from his or her latest employer."



What is the situation this organization is referring to? First, the situation is, they are having a hard time keeping the best people in their companies for one very simple reason, the engineer is way too UNDERPAID! If by just flying three hours away from home to increase their value three times as much who cares about resignations and clearances? And I don't think Singapore government will really care for something that is against their local business interests. I hope Mr. Fermin Taruc, the President of PSIA, gets the drift.

On the bigger picture, Mr. Fermin Taruc. Foreign investors are pouring in to Singapore and they have a bigger problem to solve such as augmenting the much-needed resources than all your whinings out there. And I think PSIA should focus on how to attract multinational businesses in the Philippines so that the industry remains competitive

The organization is avoiding the real issue here. That is giving the software engineers the proper compensation they deserve that is good enough for them to stay home. Just raise the salary bar, I don't see any reason why it can not be done since Philippines is one of the progressive countries these days. Don't paint the country as the destination for low labor cost because it's starting to backfire now. Rather paint it as the destination to for multinational companies to setup shop and hire highly-trained, skilled professionals that they need to get the job done with proper compensation. Just raise the bar and compete. Don't whine.

On the final note.

"The world looks to Singapore as a role model in terms of law and order, discipline, and progressive government policies. This is why the PSIA believes that, in the spirit of fair trade, the Singapore government can make improvements in regulating the hiring and recruitment process in the Philippines,"


I think in one of your secret meetings you could have uttered the words that sounds like "no such thing as fair trade". Fair trade my foot!



27 July 2007

Where We Are Now?

After finishing the book Dreaming In Code by Scott Rosenberg, the first reference I found time to read from it is the 1968 NATO Software Engineering Conference at Garmisch, Germany. While reading the highlights, one item that caught my attention which until now is the torn to every geek's pride:

"the difficulties of meeting schedules and specifications on large software projects"


Thirty-nine years later, no one has found the easy way out. Regardless of the new tools, regardless of new methodologies and techniques to make development easier and faster. We still miss the dot, same mistakes are still committed over and over again. At this point in time, our systems should be in the stage where it can actually "heal" itself, I am not referring to uber artificial intelligence stuff [yet], just the plain software that we use for our daily life.

19 June 2007

The Myth of "Doing it Right the First Time"

In the programming world, it's a fact that nothing can be done right the first time, that includes the software embedded in the Patriot Missile Defense System. But I remembered way back '98 when one big IT company marketed it's crap using this slogan "doing right the first time" and some others followed suit selling the same snake oil with different labels. Unfortunately, in Singapore, some folks still believes in that fallacy. NOTHING CAN BE DONE RIGHT THE FIRST TIME!!!

Why? Because every software project is unique. We haven't gone far enough in the way we write software now from the day NATO assembled the best minds in Garmisch in a Software Crisis conference. Software is abstract. Many have tried XP and other Agile methodologies but still failed and many have attempted all sorts of mixtures. And yet nothing can be done right the first time. Whoever concocted that doing-right-the-first-time campaign nine years ago, if he/she lived during the Three Kingdoms War, he/she could have been buried alive with his/her ass pointing skywards.

If we can do things right the first time, then how come there are still witches in the industry that makes up a lot of things? New methodologies, new frameworks, new platform, new languages but never really dealt with the real world issues developers are facing today. As long as there are believers of these witches that has the power to call the shots in their respective enclaves, things will always be the same.

20 May 2007

Client/Server apps still going where no J2EE/.Net have gone

Last night while I was chatting with an old friend back in the Philippines to check how they were doing in terms of application development in the enterprise arena. It came to a point where it's my turn to tell a story of how am I doing here in this little island. I had to tell them sadly that nothing has been a breakthrough here since the "dotcom boom" and the "dotcom burst", these guys were just riding the hype of the J2EE "promises" from some five years ago and now it's taking toll. Up to now, J2EE (or even .Net) has put more burden on the developer's learning curve of acquiring new skills instead of delivering real business value to the users, there are more talks on frameworks, platforms and theoritical methodologies that doesn't really work in the real-life enterprise development. Business owners are increasingly frustrated, developers are also increasingly frustrated and now they don't know which tools to hang on to, AJAX? Huh! AJAX is a tool for web applications that are trying hard to be client/server application, so why not do the real stuff? Stop wasting time learning different AJAX toolkits. And web applications that requires AJAX are not enterprise-level ones, unless Google and Flickr can be categorized as web-based ERP systems but that is absurd.

So going back to my conversation with an old friend. He just told me that they have upgraded to PowerBuilder 10.5, for sure those with uninitiated mind will surely laugh at this. But way back in '98 PowerBuilder and Visual Basic are the hottest contenders in the client/server rapid application development space. But now, Visual Basic is virtually dead and PowerBuilder is still raging on and delivering what it didn't promise. Users are still happy, developers are happy and can go home at 5:30pm no need to pretend trying to look like a genius that cracks code until 1am. Everything in the enterprise should be really, really simple. don't waste time on unnecessary integrated or "out-of-the-box", "bundled-altogether" promises of some of tech vendor shouting at their minds "We Simply Fry" and will tell you they're going to do it in Spring and Hibernate with some domain modelling strategies for problems that has been solved long ago by tools such as PowerBuilder, Visual Foxpro. These tools are laughing stocks nowadays because they don't look very "technical" and they don't sound too "smart" if you're using them. But up to now, no single tool has ever beaten the power of the DataWindow. But hey, speaking of VFP, Codeplex and SEDNA. They don't make too much noise these days but still packs a lot of punch.

Frankly, J2EE guys who haven't touched a code of any client/server RAD tools from '98 til present, should really, really go back to the drawing board. That's why client/server apps will go back with the vengeance. J2EE/.Net's frustration-to-happiness ratio is just really unacceptable.

30 April 2007

SMS-TO-IM Messaging And Beyond

Finally, I have built the modules for our first SMS-TO-IM messaging. It's really simple, just a Jabber messaging server, Jabber Client API, Serial Communications API to be used for the GSM Modem. All loosely integrated. This is one of the motives for setting up our corporate instant messaging server.

SMS-TO-IM integration is a vital part of the corporate instant messaging. It get's you in touch with your clients, staff and partners in a casual and comfortable way. Casual relationship is equally important as the formal one. Having a more comfortable and easy-going communication (sometimes having "open" communication is not just enough) system in place can make interaction less hostile and less tense which is very common to any corporate environment especially those with highly-charged, politically motivated enviroments.

Demonstration for this module we'll be up on Labor Day. Next thing on the list is the IM client build with a corporate custom skin. Of course, you don't want to use your "Yahoo" ID talking to your boss, otherwise you'll be hiding the whole day from your friends.

Trying-To-Stop-The-Weekend Syndrome

I hate it and it's becoming an illness. I just want to go home. Unless, there are other interesting stuff to do, not really the bleeding-edge things but something where we can have more control on things that we are building, where we are ACTUALLY BUILDING not taking care of someone's dirty codes. Where we can really collaborate with the customers, where we can say "Next" when the customer says "No" , believe me, it's not ideal. It's real. Back home we can do that, that's why customers can really collaborate and play nice, no surprises. That's fair customer service.

What I really don't like is that it seems we're really very afraid of upsetting our customers, we're a very afraid of losing business. In effect we're very afraid to make mistakes but we make them every single day. The more you fear something, the closer it gets. But our customers have no choice either, where will they go? Sigh, I still have around thirty-six Mondays more left to really call it quits, unless things will change. But I doubt it, I just won't let these changes rule my direction.

I Miss jared@darkstar

It means I miss Slackware. Sheez, why do I have to explain everything in plain words these days? Well, jared@darkstar is what appears in my command prompt after successfully installing a Slackware distribution in to my system.

The reason I miss it is first I'm using Winbloze (for crying out loud) 2 straight years now. Vista's desktop is a desperate attempt to really become Linux, and it's still way behind. Second, if I'm maintaining an application that is always deployed to another flavor of Unix such as AIX or Solaris or even HP UX, why am I coding in Windows? I should have a Linux in my laptop! It makes sense right? Because that's the closest simulation you can ever get, very helpful in testing too. Since BEA, Websphere starts up with a shell script *.sh then my Java applications should have the same thing too, not *.bat or *.cmd!

26 April 2007

DynamicBeans Corporate Instant Messaging Is Now Up!

DynamicBeans Corporate Instant Messaging is now up! What's the big deal about this corporate instant messaging? It's an instant messaging that works well like Yahoo, Google Talk, MSN, ICQ etc. but corporate instant messaging is different in many ways from consumer instant messaging. Unlike consumer instant messaging which is seen as a counter-productive communications application by certain entities because users have more time to chat with external parties on non-business related matters. As an alternative, some corporations will setup their own corporate instant messaging so that employees can collaborate and communicate with each other, but the problem with their homegrown setup is that it is only confined within their own corporate users. Customers and partners are seldom part of this corporate instant messaging network.

The real value of corporate instant messaging is with the involvement of customers and partners within its network where the host can provide a wide spectrum of support levels for their customers and near real-time information from their business partners. But there are certain drawbacks of setting up a corporate instant messaging, like for example, a shipping company can not just setup a corporate instant messaging network because it is not their business to do so but they understand the value. That's where DynamicBeans Corporate Instant Messaging is going to play a critical role.

20 April 2007

Agile Manifesto And The Politics of Software Development

"Customer collaboration over contract negotiation
Responding to change over following a plan"


It's funny when other developer's invoke these words while they rant against customers. On a looming deadline they will call for more customer collaboration because "software is abstract", on a never-ending change requests they will use the "contract negotiation" to avoid work for what they are paid for.

Now this is for the project managers..."Responding to change when the plan goes haywire". We still need a plan and the plan is expected to be followed and responding to change is just a contingency...a very unnecessary contingency. But where is the plan to start with?

16 April 2007

RCP + wxWidgets And All Things Nice

I'm doing a research on two things tonight, how to create a non-rectangular frame or a "skin". I just found out that SWT can do it and wxWidgets can do it very well. wxWidgets is more powerful because I only had to specify the image file of the "skin" I want to paint, without going through a lot of painful codes.

How will these developments affect the DynamicBeans Way? First the stategy can be fine-tuned again to be more specific when RCP is the choice and when wxWidgets is a necessity. For things that ends with "...management systems" RCP is the outright choice. For novelty apps that requires the software to really look totally different and radical, wxWidgets is the primary weapon of choice.

Prior to pushing through all this, I'll be completing the content of the DynamicBeans Website by end of this week.

13 April 2007

wxWidgets regrets

I think I was really bitten again by the C/C++ bug. But I don't really have the time to allocate and to really get my hands dirty to code in wxWidgets. I really regret the time that I didn't take a serious look at this framework in the past. I could have churned more cute apps that no Swing or SWT can replicate.

These days the use for wxWidgets specially in the commercial apps development is becoming more evident. Because it's easier to build your custom widgets whether your developing another IM application or a new media player software with your own custom skins and buttons that will look the same whether the app is compiled for Linux or Windows. We'll use the help of wxWidgets to get back the desktop!

07 April 2007

Packing Up?

Alright, from my personal timeline, I still have another year in Singapore, we have passed the first quarter and it's three to go. I'm sure as of this writing it's going to be really quick, time flies. Some of my to-do list will include:

  1. Getting Rid of my DSLR - I'm out of digital photography. I have proven my point. The greatest chance you'll going to make it big is if you're The Queen's Royal Cousin. Anything lower than that, you're work will just be as doable as others. I'll be keeping my Olympus OM10 handy, it's humble but kick-ass.
  2. Getting a Refurbished Laptop - To install Slackware 10.x Linux, I miss it so much! I don't want to install Linux on a brand new laptop coz I don't want to complicate warranty matters.
  3. Getting a Toshiba Tecra M5 - I'll be handing down my current notebook to my wife, and this machine will be my primary dev rig.
  4. Build the DynamicBeans Custom Widgets - First requirement is no virtual machine, so wxWidgets is the choice for the base. Sorry, Java. Second requirement is performance so it's C/C++ on C/C++. Ruby, Python etc. will just be a consolation.
  5. Organize the First DynamicBeans Product Strategy Summit - We really, really need this :), Need to plan out the Agenda too.
  6. Throw away some "bad luck" clothes.
  7. Build projection of costs for DynamicBeans self-funded operations.
  8. Get the DynamicBeans.com site on full-content.
  9. Build the team which is more focus-driven. If necessary, build another team for another endeavor(I'm smelling POS!) .
  10. Identify "The DynamicBeans Way"
And that's about it. Enough with antiquated stuff and sissy ideas.

02 April 2007

VaporMind

Believe me, I am really learning nothing. That's why I keep investing on good books that I'm supposed to get 3 years ago. Before everything washes away.

01 April 2007

C/C++ Revisited

It's been 22 years for C++ and C is earlier. And most Java veterans I met started in this language before moving to Java. And up to this time the C/C++ developer's community is still vibrant. Still churning out new codes(programmers will really not reuse any code whenever they can) from building CORBA services to developing XBox and PS3 games and more. Although the area of development for C/C++ programmers is becoming niche due to popularity of "enterprise frameworks" in Java and .Net, C/C++ is still the popular choice for projects where the presence of a virtual machine is not required. As Java and .Net becomes more cumbersome and boring due to a lot of automated frameworks that makes job even more complicated. Developers for niche projects using C/C++ today still enjoys a relative simplicity in what they do. I never heard a C++ programmer complains about an application server issue(laughs).

10 years ago, my encounter with C/C++ was in the development of RS232 Communications API that we need to make a couple of PC talk to each other or another device to a PC talk to each other. And still using the same communications API that we built, we played with it on ATMEL microcontrollers. It's relatively simple, no relational database, no application servers, no transactions, no hassle. Strange enough, the job market for such programmers dwindled. But these days it's making a "comeback" (though it didn't really left) and companies with specific needs are looking for such skill to develop their products but I won't be a troop-on-the-ground programmer anymore, I'll be the vendor.

30 March 2007

The Human Misinterface Development

After many years in Java development and interviewing different candidates for development positions, much of their profiles still dwells in the server-side and no time was given, at least, to learn the actual aesthetics of the front end or the user interface. Many of these developers rants about "working a lot for so little" when it comes to user interface development and worse is its notion as a "weaker sex" job. On the other hand, an elegantly coded server-side module which the developer devoted so many sleepless nights at work will all go the down the drain because of poor user interface design that can render the whole application useless, so what happened to the "working a lot for so little" then?

Don't try to outsmart the users, they know what's useful or not. Seriously, if a Java developer's profile is still very much on the server-side stuff, it's really going to be serious problem in the future. Even if keywords as JSF, JSP or even (yikes) AJAX appears on each developer's CV it will still not count, it's the understanding of the aesthetics that matters. Once, these aesthetics has been understood, these developers will learn what technologies to forget.

22 March 2007

It's 2 Years Now...

I just realized that my blog is 3 years old. Time flies. All I can say is, somehow, this blog is solid. I did see some people change blog several times in less than a year, they change what they want to talk about, change the template, change the theme, in short, there's truly a lost of focus and the old enthusiasm has a vague motivation -money.

I just entered my second year living in a foreign land. From the little excitement I had in my first day, nothing much have changed. In fact, things are starting to breakdown. Traffic jam is getting worse, weather is becoming more interesting, buses are travelling slower than usual, and...the mobile TV! Oh yes, that one. It sometimes works, sometimes doesn't but most of the time doesn't. The bookstore that I used to hang out with still offers great books but it seems only journalists and other media people are reading them 'cause it looks like they are the only people that are really learning from it. In two years all I can say is this land has one really very strong asset: Governance. There isn't really much in here but that and the rest just depend on it.

Customer Service Standards are at best is pitifully a flatliner, I really don't know why, is it because of their accent that sometimes misunderstood as a bit confrontational? Ok, this is not a comparison of apple to oranges but actually a learning tip. When you do your groceries in one of the biggest supermarkets in the Philippines this is how the flow will go: 1.) You get in to store, grab a shopping cart(no $1 deposit required) 2.) Grab what you need to buy, ask questions to any store personnel and they will gladly assist you and if they don't know the answer, they will look for someone who knows instead of the typical "sorry lah, I only got 6 hours to work not a minute to waste" answer. 3.) And when you check out from the cashier with all your overflowing merchandise(because it's really dirt cheap you could almost buy everything inside a supermarket) a store clerk or assistant will gladly push your cart to the taxi stand or to the parking lot and help you load your stuff in to the trunk. That's three simple step to basic excellent service, why can't they do it here? That's just the basic, you have to be there to see the gold standard.

When my father used to work in the Middle East as an engineer(these are the real ones, not the software ones) during the 80's they are periodically introduced to different technologies that are happening in their respective fields. Really something breakthrough and really something new and when he finally came home, he set up his own engineering shop and applied what he has picked up from the Western oilers. But me, as a software "engineer" didn't learn anything new in my stint in a foreign land, I just used what I've learned before I came here and used for all it's worth, I never came in to any training to really learn something new and compelling (forget Fatwire, Hyperion, SAP, BEA and all this crap) I'm still using the stuff that I learned back home with nothing in return except a good currency but that is very vague. When I get back home, I will also setup my own "engineering" shop with nothing new to apply but only a lot of stupid things to unlearn.

It's 2 years now and it's really very short. The only consistent thing is change, I have changed my template so that my code samples will fit nicely. I still had my focus with no thanks to some few distractions. I am a programmer and that's the hat I wear most of the time and that is my favorite hat, I can not be a maintenance guy, I can not be a salesman. I don't sell stuff because my stuff sells by itself. Oh and that's another thing, I see a lot of software salespeople sells like a car or an insurance salesman, pushing themselves to the death march just to win an account. Back in the Philippines when I first worked on my own, I never did that. No hard selling, no bullshit. The pitch is simple, we'll just talk over coffee and I will tell them what I can do and what I will not do if they are fine with that then we're in business, if not, then have a nice day no need to chase time after time. Software is abstract but the business is simple specially if you really have something compelling, no need to do hard selling, no powerpoints, no long talks and a no bullshit time because you know people will need it. It's really difficult to ingrain these into some people's mind, a product that sells by itself, and they are missing a lot.

DON'T TREAT YOUR JOB AS IF IT IS YOUR VERY EXISTENCE! Our country is not a starving nation(because stroke is our number 1 killer now) and yet we have the luxury to relax, we have the luxury not to be afraid to our customers and give in to their stressful demands, we have the luxury to reject service to anyone. We don't really mind losing business to a difficult customer because they deserve a difficult provider.

It's 2 years, and nothing seemed to move significantly.

16 March 2007

Web [Application] Is Dead

Don't panic. You're favorite social networking site, search engines and other nice sites laundered by AJAX may still survive. But if you're one of the turds who have fancied the idea eons ago of stuffing the web browser with enterprise applications in the name of "low deployment costs". Then you have to think again.

If you're in a place with a perfect network structure as Singapore, then enterprise web apps are just fine or still acceptable. But if you're in a battle-hardened marketplace where online and offline processing is inevitable then you have to junk all your web applications together. Some will really try it harder with XForms for "offline" web applications, but that just won't work because you still need to build your update functions both for client and server, unless some turds still want to go through this death march it's up to them. Rich Client Platform is the answer, not hype.

14 March 2007

And Justice For All...

Today I felt vindicated upon reading this news, somehow the Universal Justice System will really going to extend its arms fully. Anyway let me share the story.

Almost a year ago, DynamicBeans got in touch with one of the promising startups that won a citation from StartUp@SG who also developed the same technology (note: this technology can never be patented, so you can throw away your IP ramblings to the window) that can lock a mobile phone if it's lost or stolen, plus the rest of the features similar to that one from the Bulacan kids. During the presentation of this concept and a few demo. I was convinced that this will be a big hit in the Philippines. In short, I told the founder if we can discuss further the possibility of marketing this phone security application back in the Philippines. So we lay out our "cards" and the plan on how are we going to do it, I also made a brief presentation of the Patriot on what is the role it's going to play.

After several exchanges of emails and phone calls which made things a little exciting. Then suddenly there's something that hits me like a surprise left. The founder told me that they are flying directly to our contacts who are the decision makers of the country's largest wireless telecommunications company. And they are going to present their concept and demonstrate it. WTF!!! So I kept my cool until some time and then I said "Good Luck!". This wireless telco company is very notorious for plagiarizing ideas that really works, they will not mind spending a fortune to do it by themselves so if you're there and you don't know how to safeguard you're "assets" you can kiss it goodbye for all they care. So the same curse happened to this Singapore-based startup, I'm expecting that they can not enter that "space" without us and I'm expecting this wireless telco company will not leave it hanging like that. The founder who flew directly made another attempt to crosscut me, by calling our colleagues in Makati to get in touch with another wireless telco which is the competitor, I know he's doomed that time. And justice was served.

These are just bunch of kids who founded a cool startup, they didn't learn all these things by themselves, they were mentored. These are the mentors that teaches them how to be "uncool" in the business community, sad to say, these mentors are the ones that should be burned at stakes. Now we have our own homebrewed stuff done by our great kids back there, watch out, here we come!

13 March 2007

Doomed

"Adding manpower to a late software project makes it later..." - Frederick Brooks

And managers who often would pretend it will never happen to them will always find themselves...DOOMED. So the best people on the job have learned their mistakes more than twenty years ago in any software projects but why they are still being notoriously repeated? Ignorance?

12 March 2007

What Kind of Programming Language I am?

I know, I haven't been doing AI for a long time...


11 March 2007

Another Book Buy

After acquiring a copy of Dreaming in Code, I still haven't started reading it. But finally, now I can after finishing a book that I borrowed from our nearby community library entitled Software Project Secrets (Why Software Projects Fail). I would highly recommend this book to those who are graduating with "I.S. Management" major and I will really say "Please read it". Because it's really scary when someone with little or no coding experience starts managing a software project at any stage. After 2005, every software project manager should be really reading this book.

After borrowing this book, I must have my own copy.

09 March 2007

Code Everyday, No Matter What...

I learned something from John Grisham (he's not a programmer dude) just now. His secret to writing is "Write everyday, no matter what...". A very consistent way of sharpening a skill. And I guess there's no other way, but my problem is if I overdo, I falter.

Code everyday. Don't over-emphasize much on the methodologies and patterns, just code everyday and you'll learn. Code everyday, and don't be afraid to make mistakes because most likely you're not wasting thousands of dollars like others do.

Coding is not a dirty work, if you think it is, then same thing goes to painting or playing music. Coding is harder than management, management is piecemeal. Just code everday, no matter what, you'll be surprised what you have done in a week's time.

06 March 2007

Bug Fixing

This is what I can call a 10-year irritation to people who can never learn. Users can easily conclude that there is a bug in the system when something went wrong during the operation, that's understandable. But this is the most irritating question of all; "how long do you think you can fix this?" and definitely the developer's answers could nothing be shorter than a guess or a balony.

Bugs may take a minute or weeks to fix. You can never tell until you find it and fix it. In years of Developer vs. Manager Wars it seems only the earlier has written enough books and articles to learn to fight the latter. And still, the blood spills.

05 March 2007

I Got My Book!

Ok, I finally got the Dreaming In Code by Scott Rosenberg, I feel like I'm holding a hardbound Harry Potter book. As an added bonus, I also stumble on Bob Walsh's Micro-ISV which was foreworded by Joel Spolsky. I'm not really an avid reader of Joel's articles, the first sentence of the book's back cover is "This book is for software developers who are fed up with working for someone else." I'm almost there, so I bought it.

03 March 2007

Fragile Code

What is a fragile code? It's a piece of code in a system that works, but is not extensible and resistant to change. Sounds familiar? So you think you have a code that works perfectly for the past five years and suddenly conks out when a new feature was added is called a robust code? No, it's a failure waiting to happen. Some folks judged a failed software project based on deadline and cost. But some things are rarely given attention when new changes are introduced. Other developers will blame the change and will make change the "enemy". When an enterprise application is designed to be resistant to change, it's a failed project before it even begins.

Does it all matters when you have rolled out the initial cut and collected the money? Yes it is, because a lot of "Mom-and-Pop" Professional Services and Solutions Provider today is in the brink of self-destruction because of self-denial that such fragile code exists in their projects and so-called products.

01 March 2007

My Next Book Buy

"Dreaming In Code" by Scott Rosenberg. After almost 10 years of programming experience, why do I still want to buy this book? Because I am a programmer. And programmers are programmers because they like to write code. I did not desire to learn programming so that I will get a nice paying job in Singapore. It's simple, I just like doing it. To me, the Singapore Job is just like tripping and stumbling at the end of the rainbow, it came to me.

Hopefully this book will open the eyes of senior managers and non-technical managers on why programmers behave as they are, why reusable code is only good on papers and articles. As a programmer it is easier and faster to write your own code than learn somebody else's code, rewrite somebody's code or even fix somebody's code.

28 February 2007

Building Commercial-Quality Plugins

This is not review about the book that I’m about to complete before the weekend. Rather, this is just about sharing a few thoughts on what the other group of the computing spectrum(non-web spectrum) is thinking and brewing about. Ever heard of a standalone web application that updates itself by downloading the latest *.jar files once the host PC has become online again? Sounds proposterous? A standalone web application on your desktop or laptop? When you really don’t need other things that comes with it.

This is what building commercial-quality plugin is all about. And the easiest choice is deploying it within a Rich Client Plaform (RCP) shell. And the easiest tool to do this is with Eclipse RCP. Why Eclipse? First, the value because it uses SWT. Like it or not SWT is the “closest thing to metal” when developing Java desktop application.

So what do you have out of the box when you decide to build Java desktop applications with Eclipse RCP? Three of the basic things are:

1. Views, Editors and Perspectives - That you don’t need to build painstakingly.
2. Eclipse Forms - Even better than what .Net can offer.
3. Built-in updating mechanism - That is also used in Rational products. This is also the technology that challenges the reason for developing web applications in the enterprise level.

Change is a hard pill to swallow.

27 February 2007

The Linux Terminal Server Project



I was asked privately by a certain individual about my raves on Java Desktop regarding what is my deployment strategy to make it more attractive to web savvy IT departments. I told him I don't have a strategy, I got strategies and one of my favorite is the LTSP strategy or the Linux Terminal Server Project.

LTSP has been going on around for many, many years. It has been proven to work and work well. What are the risks? Just like any web applications, if the server goes down, everything goes down no buts and ifs. What are the benefits? No more web server to maintain! That's one great blessing for an administrator.

LTSP is an implementation of a thin-client from a hardware perspective(neat strategy, right?). You got a server that runs all the services that several thin-client needs. Very straightforward and simple. This is an ideal Third World solution, others can waste more money as they please.

Note: Image courtesy of LTSP.org

The 2007 Philippine Elections

By this time, I'll be an absentee voter. How will I choose my candidates depends on what will benefit my interest. In other words it's called vested interest. In the Senate, candidates who will win my vote may need to introduce or continue work on the following bills:

1. An act to promulgate the use of Open Source Software in all state-controlled institutions, government agencies and other local government units.

2. Bigger tax breaks for technology startups to be able to compete effectively in the global market.

3. Lower taxes for importation of computer hardware and all other peripherals. A MacBook in the Philippines should be priced just the same as in Singapore.

4. Accreditation of vendor certifications in to the national educational system.

5. Deregulation of VoIP services.

6. Deregulation of Broadband access nationwide.

7. Longer amnesty period for pirated software users to switch to legitimate software.

8. Regulating or banning of commercial software (local or international) with license agreements that are deemed unconstitutional and unfavorable to the national interest.

9. Set up of special courts that will handle ICT-related cases such as Internet fraud, intellectual property rights etc.

10. Disallowing registration of software patents. Includes dishonouring software patents registered outside Philippines.

11. Blocking multinational sites that will not accept credit cards issued in the Philippines from our national network. A blacklist of URLs shall be posted to all ISPs for blocking nationwide.

I believe with all this in place we're geared up for a strong headstart.

Working In The Garage Is Fun!!!

Philippines, 6:30am - I was awakened by the hustle and bustle going around the house. As usual, my wife is preparing breakfast and my daughter is getting ready for school, the TV is up for early morning news (that's Unang Hirit!). This has been going around since I came home for a Chinese New Year leave. While recovering from a recent surgery, I have nothing to do but flip my laptop somewhere and do something.

Good thing I was able to setup quickly our WiFi router at home so I can work anywhere around the house. These gadgets are truly heaven-sent, my ideal workplace has finally come to life but not yet for good.

The Philippine Early Morning Breeze is not as polluted as it may seem to be. After finishing breakfast, I decided to grab my laptop and pull a monobloc chair in our garage. With the cool air, birds in chorus and swinging leaves from a nearby jackfruit tree what's not to like? This is an environment where great ideas pop up, prototyped and worked on. There's nothing like this anywhere else. This is the kind of place where you can stay focused and relaxed without falling into sleep just slip in a CD into the home entertainment system and work.

Other stuff that I need to continue the work I started: 1.) A publicly-hosted CVS server 2.) A Linux File Server 3.) More Linux laptops 4.) More Linux workstations and everything I need to build my home data center. After which, DynamicBeans can move to a real office somewhere in Ayala Alabang to keep the "Third World" tropical ambient.

Those who lived by the hype, die by the hype. Every true blue high-tech company today started in a garage(Apple, HP etc.) and these companies has serious products, not hype. And not "soapbox" products that works well in demo, but sucks in real implementations. I stayed long enough in Singapore to see a lot of this sh*t. Nobody understands Garage Culture outside the U.S. except the Philippines. So I invite you all to breathe our Morning Breeze.

26 February 2007

Java Desktop, taking back the power from the Web

This is not about Swing vs. SWT and this not about any L&F wars. In fact, I would love to have both UI toolkits work its best for whatever I'm going to use it for. I don't even care whether are more jobs for Java Swing developers than SWT either.

As we move forward, it's obvious that the advent of Rich Internet Application is not about Java anymore, in fact, in today's Web development the term "Pure Java" is dead and it is increasingly becomes boring as time goes by. From past experience, the only reason I saw Java being used as programming language for the web is that most Java programmers were too weak to code in Swing or SWT. But from where I learned my stuff, in this world, only Singapore is perfectly online to put so much love for anything Java and Web. In a bigger space, offline processes and asynchronous messaging is part of everyday business as what JMS and Middleware book authors has been emphasizing.

So why Java on the desktop? Ten years ago, the hardware can't catch up with the JVM and that was ten years ago. Today, why put everything in the server? And not exploit the power of the client? Deployment costs? Why not rethink your deployment strategies? The demand for offline processes is so huge that no one can ignore by now the efforts in developing Java desktop application in Swing or SWT, it already made perfect sense. Accept it or not, today the web belongs to Ruby.

There are instances where users can not be always online or even reliably online take for example, Third World rural banking where internet is still the future, business can not rely effectively on the web in this situation and definitely solutions providers who embraces Web already lost the opportunity to do business in this area.

Today and in the future anyone who wish to survive developing frontline applications in Java should start considering different desktop technologies that will help them switch and take back the desktop.

25 February 2007

These Are The Days

2 years ago, this is the desk where the more exciting Java codes have been written, it is a microbrewery in its own right. This is the place where some of the unconventional ideas came to life. This is where some of the near-impossible tasks were completed. Different codes for different reasons turned out from here too. Some codes were made just to simply prove a point or win an argument, some are made to debunk a hype, some were made with real-life purpose...to make a living, and make a life.

Now, I'm sitting in front of this desk once again to continue what has been paused some time, to pursue the ultimate goal while burning the midnight oil. Most importantly, to complete an unfinished business. After a couple of years overseas, loaded with so much distractions and failed expectations where I thought I could continue what I started. Regardless of material success, I am unhappier than before and I think that what is eating me.

Behind this desk, I'm in control. I make the decisions, both tactical and strategic. These are the things that I'm willing to buy back and earn from once again. And this God-forsaken Motherland(that's Philippines, of course), is where everything is happening right now, yes ladies and gentlemen, believe it or not people are flocking here to forge some serious deals and mind you we're not just about Professional Services, we're not just solutions provider pretending to have some product made out of crap like some five or more years ago. In terms of software development, we are much more relevant than our neighbors combined. Forget about the FUD that the international mainstream media is throwing at us such as terrorism, crime and political instability, at most these crises are more of an opportunity rather than a sickening problem and it's not exclusive to us(at least we could laugh at this because others can't).

Those were the glorious days. Today, this is the place to be when you're ready. We are the real deal.

04 January 2007

The Word is Focus

After going through hell in 2006. So pissed and I always feel like I want to kill someone. At last I got my holiday break, it's short but it's better than nothing. We're moving forward, with all the hype and FUDs in todays software development in general it's easy to get out of focus. Yes and that's the only "F" word that will save each and every hardened software developer these days. THERE IS NO SUCH THING AS MULTI-TASKING. In the past years, people that I saw multi-task get things done so little and blames a lot. They will pick on the easiest tasks and leave the hard part for the others and put the blame on them when things starts blowing out of proportions. Others will say it's working smart. But you can't seal fart forever.

It has been proven over and over again that FOCUS, yes, and the more precise, the better is the only verb any developer needs to have in order to accomplish so many in so little time. It's the only magic word, you lose it and the effect is automatic.