Java Religion 
A fellow technical lead made a comment during a discussion about the design of one our solutions. Being a .Net developer he simply just said "...there is way to many religions in the Java space". This particular though has been in the back of mind for several weeks now. His aim with this was to point out how there are lots of strong opinions about Java design and implementation out in the world and how technical staff bash heads trying to get their's chosen. I have without doubt participated in these discussion during my career, but lately all I am focused at this point is to deliver solutions that WORKS. I could not care less which standards and practices are follow, as long as it is simple and functions well.

It does pose the question, how should these type of 'heated' discussion be handled. People who are passionate about their work, easily takes offence if their design approached are shot down. They then quickly get despondent and disruptive in the project/company, being sometimes very difficult to work with. People who do things buy the book...well will keep throwing the book at you. In turn they will start throwing the book to your/their superiors and so on until they feel they have acquired the desired attention. These situation has a habit of turning in your classic political games within project/company structures.

Methodologies followings these days also seem to more like religion than ever before. Agile, Domain Driven, Test Driven, RUP and so on. What i do find ironic about this, is that most of these development methodologies started out by intelligent professionals that felt existing methodologies did not work for them, so they came up with their own that fit their way of software development. The next logical step...sell it of as the best thing since slice bread. Now where these guys took their intellect and did something that worked the best for them, so why don't everyone one do it. Instead every software developer will meet a person whom swears by his chosen methodology and refuses to change or adapt it. Why the strict following? Is it because to deem yourself an "expert", promoting yourself about your peers? Or is it the blind devotion in a manner of doing things, with the expectation that everything will work no matter what solution your implementing.

At the end of the day is usually comes to two outcomes, everything works and everyone is happy...or the solution does not work, and the finger pointing and book throwing starts. What no one seems to realise, is there is no silver bullet way of building software solutions in the Java space. The only thing that a sane Java professional can do is to select frameworks and components in their solutions that give the most benefit for the current requirements. More importantly realise that as requirements change, that certain frameworks and components might fall out of favor and is simple not the best option for the updated requirements. Personally for me a good architect must always design for change, expect the unexpected and design solutions that can adapt with changing requirements and environments. Not to code into a framework, but keep a level of abstraction so that frameworks can be replaced with the least amount of effort and time.



[ add comment ]   |  permalink  |   ( 3 / 329 )
Karmic Release 
Karmic is on its way, and people seem to be itching for it. I have loaded the BETA on a workstation at work so far is seems very smooth. Some people have nit-picked on the BETA state of the Gnome installation but myself not worried about this.

One thing that people have been against is the exclusion of Pidgin, which is replaced by Empathy. I for one do not mind chat clients that much as long it works, but Empathy has annoyed me already. There is no proxy support within Empathy, and this an issue for people especially working within corporate environments. Would not be surprise if they switch back to Pidgin in the 10.04 release.

[ 1 comment ] ( 2 views )   |  permalink  |   ( 2.9 / 463 )
Linux with a Crunchbang! 
I recently reloaded my Acer Aspire One with CrunchBang (#!) Linux. Being a very light weight distro with OpenBox Window Manager, it seems like the perfect fit. With the Kuki Linux kernel it really does work well. I have played with several distros lately on my Aspire One, still looking for the perfect fit. Kuki Linux is a distro target for the Aspire One, I might that a go next.


Concerning Crunchbang, it as basic as it comes and i like it. One browser app, one media app, one terminal app...what more do you need. The nice thing about the default media player (VLC) is that they have already most of the media en DVD codecs pre-installed. All hardware seems to work out of the box, there are some write ups on the tuning the cpu fan controls but i have not noticed anything funny yet. With all this reinstalls of distros I am finally experiencing the pro's and cons of the SSD drive, and what effect the performance tuning settings makes to it.

[ add comment ]   |  permalink  |   ( 3 / 463 )
HTC Magic does the trick for me. 
Been using my HTC Magic Android phone for almost 3 months now, and I enjoying it very much. Before the choice was made to go with this phone I did a lot of reading on the Net, trying to figure out what phone would suite me best at this time. My previous phone was the HTC TyTN, although not bad in concept, the Windows Mobile frustrated me to much and the phone's buttons stop functioning (most likely because it was involved in some of my bike accidents ;-). First I have to say that Android succeeds in, is change the perception of the device. Most people experience a phone as key pad with number to dail, and secondly accessing features via a menu. With the Android phone your phone dialer is simply an application like all the rest on the firmware. I cannot help but get the sense that i am working on a mini-desktop rather than your a typical cellular phone.



I recently read a post about people complaining that they do not enjoy the touch screen keyboard and prefer the slide out keyboard of the G1. These post always have one thing in common, pointing out why the device is so great or horrible...for them. Personally I have found the HTC Magic phone a joy for any power user. I have already replaced the ROM with hacked version, tried out the new HTC Hero ROM and back to HTC Magic ROM again. Additionally being a Linux user, there is a lot of similiar concept between the platforms, adding apps from Android Market is as simple as adding apps from Linux software repositories. It helps to develop a consistent mental model about using a mobile device and using a pc.



I need get around to develop my first Android application...not sure what yet.

[ add comment ]   |  permalink  |   ( 2.6 / 277 )
The price for computing... 
I recently acquired a Acer AspireOne Netbook...at a 10th of the price of my big dual core 64-bit pc at home. I quickly grew very fond of the gadget. Loaded it with Ubuntu 9.04 Netbook Remix after purchase.



Initial bit of issues. Followed some guides I found of the net and now its flying. I enjoy working on it, it so small and versatile...and made me wonder why I should use any other machine when at home or somewhere else. The netbook easily browses the net, chat, play divx movies and all my music. This is essentially all I have been doing on my big pc. So it made me think about the relationship between amount of processing power versus the amount of usage. I can say honestly that I am of buying the latest and greatest kit, and only get what I need.

[ add comment ] ( 1 view )   |  permalink  |   ( 2.9 / 284 )
IBM strikes again... 
The whole Java community has been discussing the possible acquisition of Sun Microsystems by IBM. There seem to be a consensus going around that it might mean a slow death for both Glassfish and NetBeans. Taking my experiences with IBM software and as a company, I tend to agree.

On my current project all the J2EE apps have been running on Glassfish and has been running well in my opinion. Today I have been instructed to port all our J2EE apps from Glassfish to WebSphere. This is simply because the client had a bad experience with SUN App Server clustering a year ago, and for that reason we must port. I suggested that we rather port to WAS CE (Geronimo) and use it as a path to move to WAS 7.

The installation of WASCE as well as the Eclipse 3.4 Server Adapter was straight forward, but all came to a halt when tried to create a web application with WASCE set as its target runtime. Eclipse kept returning a NullPointerException. After checking the internal logs, it came down to a JAXB Exception. After few hours of trial and error, I realized the Server Adapter plugin is failing because my Eclipse has not been started on the IBM JDK. It seems that the SUN JAXB Provider keeps failing the code in the WASCE Server Adapter plugin but the IBM JDK Provider accepts it. This on its own gets me worrying already.

So after setting my Eclipse ini configuration to start using the IBM JDK things started to work. Problem is that all my project have been compiled on the SUN JDK 1.6, so I will have to recompile and re-test especially since some of my modules are complex multi-threaded concurrent applications.

With this experience, my opinion of IBM's acquisition of SUN is becoming more pessimistic. I can say out of experience that IBM has even written a Java applet for its internal staff that ONLY runs on Windows and ONLY runs on Internet Explorer. So much for the "write once, run anywhere" goal.

[ add comment ] ( 1 view )   |  permalink  |   ( 2.9 / 323 )
Developing SIP 
I am currently on a project, experiencing the joy (and some bites) of fully concurrent software development. Writing call queue management components for a new call center implementation. One thing i have been introduced to is SIP.

Had an interesting experience so far. Took a while to get my head around the design and how to go about implementing code on it. And since i am able to start using it... the cracks are starting to show.

A protocol so simple, yet it can get horribly abused by SIP based servers, loading messages with implementation specific data...making reuse damn near impossible. Unfortunately plans are in motion to drop the current SIP server, and now I have to basically reverse engineer the business components to be able to use it in a JSR289 container. But i am not too bothered about it, kinda like re-engineering software, always gives me chance to write better improved code.

[ add comment ] ( 1 view )   |  permalink  |   ( 3 / 224 )
One month MS Windows free and counting... 
In September I started on a project and decided to load Ubuntu 8.04 on my Dell laptop. And I must say I was very impress. Everything was working from install, especially all the hardware which always seems to took some effort with other flavors of Linux I have worked with in the past. Since I develop in the Java space a lot of the IDE/tools are ported to Linux, so there was no migration period for me to learn anything new. Over the weekend I upgraded to Intrepid Ibex (8.10) and already things seems to be working even more smoother, especially the latest Gnome environment. Got rid of the distro version of Open Office and loaded the latest 3.0, which also seems to be a huge improvement. Startup time for Open Office Write and Calc is sometimes sub-second.

Oddly I have not find any thing stopping me of doing ALL my computing needs, no "dammit I need Windows" situation. But saying that, I do have window apps running inside a VirtualBox instance. The main consensus for me personally is wondering why I have not switched earlier. It is fortunate that on my current project there actually quite a few Linux/Mac OS users. Cant wait to install latest Ubuntu 8.10 64-bit on my home pc.

[ add comment ] ( 1 view )   |  permalink  |   ( 2.9 / 147 )
Project Team Parallelism 
Yet again I have identified a subtle phenomenon on a project. It seems that there is this "given" that all developers on a project team should work in parallel (with the high school interpretation that parallel means faster). Yet all developers are not equal (or the political correct version according to South Africa's labor laws, not equal YET). Anyways, in the real world at any given point in time, each member on a development team has his/her's unique set of skills, knowledge and experience. So logic will suggest that if you place each team member next to each other like metaphorical pillars, the pillars would vary in height and width. I don't understand why this practice still continues, because the simple truth is that the resulting system will be inconstant from a design perspective, and more difficult to maintain from `n implementation perspective. Its not a case necessarily of having incapable team members whom are not skilled enough, but simply utilizing the skills in a area of a design where it provides the most value.

Let say there are two developers, both tasked to develop a web application on the J2EE stack. Developer A is skilled in database design and core J2EE API, and Developer B is skilled in JSP/CSS/Javascript. If you were to task these 2 developers in parallel, the end result would obviously be different, not wrong... just different. This difference of design/implementation of code could and probably will have lasting results in terms of scaling, spec changes, migration, refactoring and integration. The work effort for overall system changes could possibly become simply unpredictable, even more so if components developed in this way needs to inter-operate. This something that usually does not get picked up by management, since each team member are usually viewed as on par with his peer in terms of skill level (as in he knows databases, or he can code Java... and that's it).

I have found some success to turn this paradigm on its side, organizing developer skills in horizontal layers, each working as provider to the next following "Software as a Service" principles. The resulting stability and consistency is undeniable in my humble opinion. This approach for task-resource distribution I feel fits very well in your typical "Onion Architecture".

[ add comment ] ( 3 views )   |  permalink  |   ( 3 / 148 )
Ubuntu 8.10 

... should be very interesting...





[ add comment ] ( 1 view )   |  permalink  |   ( 3 / 130 )
Programming Quotes 
The first 90 percent of the code accounts for the first 90 percent of the development time…The remaining 10 percent of the code accounts for the other 90 percent of the development time.
Tom Cargill

Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
Larry Wall

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
Bill Gates

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Brian W. Kernighan

Once a new technology starts rolling, if you’re not part of the steamroller, you’re part of the road.
Stewart Brand

In theory, there is no difference between theory and practice. But, in practice, there is.
Jan L. A. van de Snepscheut

The hardest part of design … is keeping features out.
Donald Norman

Before software can be reusable it first has to be usable.
Ralph Johnson

If debugging is the process of removing bugs, then programming must be the process of putting them in.
Edsger Dijkstra

Software and cathedrals are much the same - first we build them, then we pray.
Sam T. Redwine

The goal of Computer Science is to build something that will last at least until we’ve finished building it.
Anonymous Consultant

The software isn’t finished until the last user is dead.
Anonymous Support Group Member

Better train people and risk they leave - than do nothing and risk they stay.
Anonymous Technical Trainer

Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science.
Anonymous Scientist

All programmers are playwrights and all computers are lousy actors.
Anonymous Hack Actor

Bad code isn’t bad, its just misunderstood.
Anonymous Code Behaviorist

It is easier to measure something than to understand what you have measured.
Anonymous Analyst

The sooner you get behind in your work, the more time you have to catch up.
Anonymous Scheduler

When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English.
Anonymous Linguist

Benchmarks don’t lie, but liars do benchmarks.
Anonymous Tester

Why do we never have time to do it right, but always have time to do it over?
Anonymous Code Monkey

[ 1 comment ] ( 6 views )   |  permalink  |   ( 2.9 / 101 )
Structured vs. Dynamic 
There has been many posts all over the web lately about why the world still working in the stone aged structured world and break free to the all new dynamic world. With languages like Ruby and Groovy being flaunted around, claiming to making things simpler and faster.

I am getting the feeling that structured programming languages are having a hard time in the popularity contest. I wonder why? Probably the because the new dynamic languages allows the developer to code whatever wherever and things will work. In this modern space-age I guess that it was destined to happened in technology... till the day where we code in plain English.... oh hell why not Turkish.

For me personally it comes down to one simple thing, I don't care what a developer is coding or in what language. As long as he fully understands what he is coding and the logic contained in it, I will be a happy camper. Question is, how do you motivate the practice to continuously analyze and improve your own work to become more consistent, stable and modular? Especially when everything is so dynamic. What is stopping a developer to unwillingly (or maybe not) fall into to the classical coding traps where an application's code start to spiral out? Yes there is plenty check points that get used during a development cycle to maintain the sanity, but all of these safety protocols are external restrictions. These external restrictions to a person's development can very easily be overseen or neglected (also unwillingly or maybe not).

One approach that can be followed is the clear abstraction between logic and data. Yet I have experienced that developers seems to easily adjust their logic according to change in data. Code changes are made simply anywhere in the logic in an ad hoc manner, instead of applying the proper logic in the appropriate module. For example, quickly putting in code to convert two integer values to a single floating data type because of data structure change... but doing it in a business facade class or transfer object instead in a class or module where all the mapping and/or conversions are done. When I query the developers on this, the most common response is “I don't see the difference”. Yes in execution it probably wont make a difference, but it just take several of these “quick fixes” all over the place to make code more harder to maintain. Hence my strong believe in structure to force code to be placed in the right place, but structure by no means have to be limiting. By finding the right balance I have experienced working with solid structured code yet it was flexible enough to conform to any business request.

Structure and consistency is the key to good modular manageable software, as simple as that. And this principle can be applied on any development platform and/or language. Its one thing to choose a framework or patterns to implement a design, but architects/developers are way to willing to compromise on their own design to conform to a implementation requirement. Particularity with the new and upcoming dynamic languages, promoting code what you want where you want. Personally I wont allow a developer on my team even touch any dynamic language without at least 5 -7 years solid structured and OO programming.

[ add comment ] ( 2 views )   |  permalink  |   ( 3 / 91 )
Aikido in Software Development. 
I have been training Aikido for about 3 years, and it has open my eyes and mind to many things. I am currently in preparation to take my 1st grade exam and then it 1st dan. Although I have not actually made any posts concerning Aikido, it is only because I realized that I have only tasted a drop of what is Aikido. Only till now do I feel I have a certain level of understanding about the concepts that make up Aikido.

One concept that Aikido has thought me, is a profound insight about what perception truly entails. For me personally it is the development of a subtle constant focus of everything around you, from people to your environment.

There has been books written about using the principles of Aikido in the business world. But what about software development? Software only being technology still gets designed and used by people. I like to think that I apply the principles I have learned in Aikido to my work environment. Yet it has come to an interesting situation. Taking into account my peers with their strengths and weaknesses I decided to guide them to keep their work simple. As such that the framework I designed was kept simple in standard Java technology. No new or external tools/frameworks/utilities. I knew that if I were to use to much of the latest and greatest that inherently the complexity would have been raised, making their learning curve so much steeper.

So there is no fancy utility, no automated build tools, no framework simply copied from the web. The work done has been designed from scratch with my fellow developers following all the way. I like to think that they have a better understanding what frameworks in general is all about and why we use them. Question is, by taking a bit more interest in my peers technical skills development, will I be considered as a good architect? Or should I have spend more attention on the solution? Have my heighten perception of those around me cause me to make incorrect decision concerning delivering a project. I read in an article the other day that return of investment in software development does not lie in the lines of code, but in the developers that can read that code and turn it into business sense.

FYI my team have met all their deliverables with probably the most stable code I have seen in the last few years.

[ add comment ] ( 2 views )   |  permalink  |   ( 2.8 / 108 )
Software development... the mental approach. 
Software design patterns have been around for quite some time, and probably has been set as the de facto design approach to development in many companies. My personal approach to it is much more simple, use what you need. I can hear the knives being sharpened. But it has been my experience working with with junior and mid-level skilled developers that they always seek (or even just plainly expect) all the answers be in the technology and/or patterns/frameworks or any other funky fancy why to code a certain way. Yet it is my believe that the true language of technology is simply..... logic.

Approaching software development can be approached in one of two ways, technical or logical. I recall a time where when trying to plan a development task I would always think in code. Pondering what code would I write, what command I would call and where. It was always about finding a simpler and faster way to write the code and be done with it and the world is a better place. Then funny how always it works when running on my pc and on my test data. But installing/deploying it anywhere else it just never seem to work properly, and you need to do code changes to make it work. Then the code keeps changing and changing as it goes on. Not difficult to imagine what you end up with. This might not seem apparent to the developer, simply because he still has the advantage of having the morphed conceptional model in his mind about the work. Yet when the next person comes around, he/she then pretty much end up clueless.

This is a simple concept, and any software development expert will probably accept it as a common and simple problem. Use development methodologies, perform regular code reviews and so on. Although the purpose of all these types of processes is to ensure that code is structured and consistent, but in reality still will not ensure that code will function correctly as required. Senior and experience personal understands the differences, but what about the rest? There seems to be some kind of divide of understanding. I believe this divide is simple, function vs logic. In my experience I have always have to struggle with the 2 concepts when instructing or mentoring my fellow developers.
Read More...

[ add comment ] ( 6 views )   |  permalink  |   ( 2.7 / 107 )
The democracy that keeps failing. 
I am currently witnessing a situation I am pretty sure happens all over the world in corporates. One of the corner stones for any corporation is to consist of the right people in the right hierarchical structure to ensure business operates at an optimum, or at least aim for this particular goal. Also this applies to most business sectors, from IT to accounting. Yet with all these human roles and structures, its pretty obvious that there will be some crossroads when two structures meet and must negotiate to achieve a common business goal.

Why is it still so difficult for two business units to work smoothly together...? The number of meetings I have wasted my natural life in, listening to arguments about "Who's responsibility is it? Who will perform the work? Who will manage it?". Yes these question are valid, but not coming from managers with zero understanding of the solution, or from business units themselves trying to avoid any additional work and responsibilities. Another issue is over analysis of a simple concept, like logging or PDF printing. Yesterday my project manager got very concern over how to implement logging, where I have already done everything and is ready for deployment. Even if my work is not done, it would have taken me less than a day to implement, why discuss it for almost a hour? Today I heard that some of the managers arrange this meeting on how a pdf should be made available to a client. The amount of time wasted on arguing about the most trivial of issues is astounding.

The point I am trying to make is simply this, in any corporate IT should be a dictatorship... not a democracy. My company is feeling the pains now for the mistake of allowing each business unit to have its own IT development team, each working totally independent without governance or correlation. The obvious response to this is thats why there is a chief information officer (CIO) in a company, but what if this particular is even less incline to step up and exercise his given authority. All I can hope for now that this situation will change in the near future.

[ add comment ] ( 1 view )   |  permalink  |   ( 2.9 / 99 )
C Code Poetry 

char*lie;

double time, me= !0XFACE,

not; int rested, get, out;

main(ly, die) char ly, **die ;{

signed char lotte,
Read More...

[ add comment ] ( 6 views )   |  permalink  |   ( 2.9 / 106 )
Facebook revisited 
Well I got some criticism and a few compliments on my post about Facebook. One thing I do expect is that some people might think I am too full of myself to be on Facebook (for those people, read my motto at the bottom of my profile). Anyways truth be told every now and then the idea of signing up has crossed my mind, but only because of trend I have noticed to develop in social environments. Facebook undoubtedly has had one of the hugest impact on modern cultures. Where I started to pay attention on its effects is when I am out in the open and notice that its now almost become the preferred way to communicate. More and more I hear people rather exchange Facebook details than cellphone numbers. Also when asked what is your cellphone or email, the response is "You can get me on Facebook..."

I can't remember even when last was I part of a conversation where a topic has no relation or started on Facebook. I find this social trend astonishing. It blows me away thinking that simplicity can have such a global effect on people. Up to a point when you are frown upon when you admit you have not signed up. Question is, should I now also blow out the same horn as everyone else to be heard?

[ add comment ] ( 1 view )   |  permalink  |   ( 3 / 70 )
What is actual Rapid Application Development? 
A question that's is usually on the mind of any IT department head. But its not that simple to measure it. You can't say application development will be guaranteed to be faster on Windows or Linux or .Net or Java. There is so many factors that needs to be calculated, and more than often the result is not exactly what is desired. Probably one of the major factors is the type of individual and what environment he is most skilled (and comfortable) in. The head of the department to which i am contracting to brought up the point of development speed using Java and using .Net. I have been coding Java for a solid 8 years now, where as the department head comes from a VB back ground.

One point that he used for an argument, was the development platform ability to provide access to a PC's serial ports (he is working on some home automation project for himself). He made the point that in .Net it was so simple to get a Serial port object and perform I/O operations on it. With Java you need to download the Java Communication API separately and apparently you have to write more lines of code to actually get to a point where you can perform I/O operations. I have not yet used the Java Communication API so i would not know, but the concept got me thinking.
Read More...

[ 1 comment ] ( 15 views )   |  permalink  |   ( 2.9 / 61 )
Thy mighty TyTN, small in my hand... 
So i recently got my TyTN back from my cellular service provider repair center. I only had the phone for like 20 hours before it got smashed with my recent motorcycle accident. So now i thought i might post some of my thoughts on my latest gadget. The HTC TyTN is the first PDA-like phone that i have owned, so firstly i am still feeling my around MickeySoft Mobile 5. So far so good actually, getting used to the functions, and the sliding qwerty took must quicker to get used to than i originally expected.


The one hand operation takes a bit getting used to, especially with the power of button on the top right hand side. Every time i try to press the button is accidentally slide the keyboard out a bit. Apart from that i am actually enjoying the phone, most of my issues has been setting Debian Etch up to access my phone via Bluetooth PAN service to surf the net. One thing which i found disappointing is that the phone is unable to share its internet only over Bluetooth and not Wifi as well. Pity, could just as well hooked my phone up to my Wifi router and then access the net on my pc via normal LAN.

I will probably upgrade to Windows Mobile 6 some time soon, but got no need for it at this time. One thing i will investigate in the near future is the Java capabilities.

[ add comment ]   |  permalink  |   ( 2.9 / 71 )
Cross Domain authentication on WebSphere 6 
A requirement came up for me to try and get cross-domain authentication going between WebSphere Portal 6 and other external websites running on WebSphere. Now WebSphere already implements a technology framework called LTPA(Lightweight Third Party Authentication), which caters for seamless access to any application running within the same domain on the WebSphere platform. Unfortunatly this framework does not cater for cross-domain, so something else needed to be thought of.

After some researching i tried to develop a custom JAAS login module, but did not have any success with it. After further reading i decide to give the Trust Association Interceptor (TAI) component a go, and within less than a hour i was surfing across domain like it was going out of fashion. The TAI component is way more simple to implement versus a JAAS Login Module, and very adaptable to requirements it would seem.

Now during my working experience with WebSphere Portal, there were a couple a times where cross domain authentication came up as an issue. I guess if the issue was made my responsibility much earlier, i would have probably solved this issue then...

[ add comment ]   |  permalink  |   ( 2.9 / 96 )
In how many books does a face need to be in? 
I have been receiving several invites to join (the so called phenomenon) Facebook. It seems there is no person in any first-world country that is not registered. Well for the few (and probably very unlikely) that reads this article and do not know what Facebook is about, it’s a simple social networking application that allows you to keep contact with all your friends. I am sure this description will suffice for any mere mortal trying to figure out what Facebook is all about. There are numerous social network services on the internet like Facebook though (MySpace, Bibo, Ringo), each with their own bells and whistles. Also there seem to be a new big thing out every 6 – 12 months. And with each iteration of the hottest “friends” website, I get invited by my friends whom just jump from one service to another.


One thing that also has bothered me for sometime now is the amount of technological resources wasted on the global internet. Being a social networking site or a brand new online dating (is there any difference?), what happens to all the old accounts on the previous service which suddenly seems not to be cool anymore? Huge amounts of storage spaces, all now going to waste. And the explanation is pretty simple actually. It seems people are more attracted to novelties than actual functionality when it comes to most online services. And it is those novel ideas that set any service apart from it peers, giving them the edge, creating higher clientele. And I guess it probably safe to say its Facebook’s chance to stand in the lime light, but for how long?
Read More...

[ 1 comment ] ( 26 views )   |  permalink  |   ( 2.9 / 53 )
Portal: Filename too long error! 
Man this one is really winding me up. I am currently spending my time to reorganize my development team's workstations. Everyone is currently running WebSphere Portal V6.0.0.1. Now this one machine keeps throwing the following error when i try to enable LDAP security, even after a full delete and reinstall :

[wsadmin] com.ibm.ws.scripting.ScriptingException: com.ibm.websphere.managemen
t.exception.ConfigServiceException: WKSP0008E RepositoryException while checking
the state of cells/*****/applications/wmmApp.ear/deployments/wmmApp/wmm.interna
l.ejb.jar/META-INF/ibm-ejb-jar-bnd.xmi in the master repository --com.ibm.ws.sm.
workspace.WorkSpaceException: WKSP0016E Error get digest for cells/****/applica
tions/wmmApp.ear/deployments/wmmApp/wmm.internal.ejb.jar/META-INF/ibm-ejb-jar-bn
d.xmi.workspace_save --java.io.IOException: The system cannot find the specified
file, either the filename is too long on Windows system or run out of file desc
riptor on UNIX platform. java.io.FileNotFoundException: C:\t\Script113f7566244\w
orkspace\cells\****\applications\wmmApp.ear\deployments\wmmApp\wmm.internal.ejb
.jar\META-INF\ibm-ejb-jar-bnd.xmi.workspace_save (The system cannot find the pat
h specified)


IBM does provide a support note to rectify this problem, which i did and still the problem occurs. You can see in the included error message that the path starts with "c:\t" which i configured, and still it complains of filename length. The rest of the path is generated, which is obviously out of my control.

Now i have a bigger issue than the one above. Fine Microsoft Windoze NTFS still works on 255 filename limit, but would you not expect that by NOW that companies will still recognize this fact and implement their software to properly support their target platform. Well until Microsoft get their WinFS woes sorted out.

Well i am planning to change to a linux development environment, which mind you i have been praying for the last 6 years! ;-)

[ add comment ]   |  permalink  |   ( 2.9 / 122 )
"Sorry captain... i just dont have the ... spec!" 
Well well another situation of (probably) politics and personal choice over logic. I had to developed a SMSC client as a freelancer. My code was based on the SMPP v3.4 spec. One of the requirements was to connect to 2 different service providers.

While the one was running like a charm, the second would just keep hanging (lets say its service provider A and B respectively). The network connection will be kept alive, but all SMPP packets just halted to come through. When someone tried to send a message from their cellphone it would display an error "message could not be delivered". Only when i manually stopped my client and started it again will the messages start coming through again. I admit it did puzzle me for a bit.

After having a discussion with one of service provider's A network administrators i realized that service provider B requires my client to initiate the ENQUIRE_LINK packet. The reason why network A has been working is because their server was doing it automatically and the SMPP Java implementation that i have been using responded accordingly. I was pretty annoyed with this, because of now i have to add more logic into my code to cater for different SMSC Server implementations. From what i can find in the spec is that it does not state if the responsibility lies with the server or client to send the ENQUIRE_LINK packet.

Well surely this can be debated over a cup of coffee, but there is still one thing that makes me want to pull out my hair. Network B SMSC server expects my client to send out ENQUIRE_LINK packets and hangs if nothing is received causing absolutely nothing to function. Right, so then why the HELL does it still keep the TCP network alive!?

[ add comment ]   |  permalink  |   ( 2.8 / 70 )
Sorry, your juice is not worth the squeeze… 
I got recently informed that my application for position in another company was unsuccessful. When I asked for the reason why I was not accepted, the lady responded “We feel your Java skills are not strong enough…” Right something is not kosher!

How’s this for a paradigm, who could now at this moment recall the exact wrench size to use when changing a tyre…? Does that make you a “not so strong” mechanic? So what happens when you pick up a wrong wrench? So it does not fit, so you use logical deduction and pick and larger or smaller one. Hey it fits; you change the tire, moving on. Does it mean when a person do not have the apparent knowledge of a specific subject, that he/she does not possess the intellect be able to learn, use or operate it? Read More...

[ add comment ] ( 2 views )   |  permalink  |   ( 2.8 / 67 )
Lusers, born or bred?  
Well yes I admit it, I have often engaged in behind the scene humour of how dumb computer users are. We who work in the IT trenches, fixing network problems and supporting systems take some pleasure exchanging war stories of the stupidity of mankind and how people can’t understand that you cannot plug your modem into your network port a.k.a. ID 10 T error…

Ok ok. Yes not everyone is as technical inclined like me, and that’s all fine. I do not expect a client to understand the pro’s and cons of putting javascript validation in a html page. But lately there is something else that has been bothering me. The purpose why software get developed, and what are they intended to do for the users. We can all go with the sales rep’s response “This software will allow you to do your work faster and more efficiently”. Question is what is truly faster and what is truly more efficient. Is faster actually when you reduce a user’s interaction with a software application from 4 button clicks to 1? Is it truly more efficient when a user does not need to worry about what gets entered into the system, because it will validate everything on its own? It’s like more and more software gets developed to literally think for people, and I am not referring to the recovery procedures when a nuclear power plant experiences a melt down. Read More...

[ add comment ]   |  permalink  |   ( 3 / 104 )
To replace or build? 
In my experience in the I.T. industry I have became aware of certain trend that seems to be developing in the corporate world. It’s a big bucks business designing more "efficient and effective" business processes with the latest and greatest in technology. But are businesses really that keen to actually move forward with it?

Usually when stepping into a new project, I go with the impression that I am going to work on something new. A system never be done before, overcoming all the short comings of the old system, making the world a much better place. Taking from your lessons learned from your last project, getting the latest methodology available, download the latest releases of development components and frameworks. These are things that I usually look forward when starting on a new project.

Then why does this never happen! Why does it always turn out to be a light overhaul of an existing system, worse even it must look and feel the same. More and more the client and managers are to concern how the end users will accept the new system and don’t want to make it more foreign to the end users. With this mentality the resulting solution usually ends up being almost an exact copy of the old system, just with new face and code…?! Professionals get gunned down from the skies by designers and managers, mostly about the most basic and logical of design issues. It also happens to people that is keen in taking a step forward, using the latest and greatest in the software development world. Someone who wants to implement something noteworthy, to be able to say I have developed with some sense of pride and achievement.

The biggest kick for me of software development is doing what has not been done before, go where no coder has gone before. Building solutions that you are actually eager to point out and say “I developed that”. But I find that now difficult to do. Most of my work done lately has been discarded on the basis of management deciding they don’t need it anymore / suddenly found a better product / change their minds on what they wanted. Even worse spending 2 year of your life on a project you know that is doomed to fail, a system that will hardly last the next 2 years. Even trying to raise all the flags and pointing out pit-falls, still it’s going down in a endless downwards spiral.

Is their any pride left in being a software developer, or is the world changing so that we come no more than brick layers.

[ add comment ]   |  permalink  |   ( 2.9 / 83 )

| 1 |