Maybe you forgot to unset the ROUND_UP_TO_NEXT_TENTH_OF_SECOND flag?
Tonton1964
@Tonton1964
Best posts made by Tonton1964
Latest posts made by Tonton1964
-
RE: Oracle and fractions of seconds...
-
RE: Formatting rant, plus more
We feel your pain.@CaptainCaveman said:
CVs are out, interviews happening, hopefully I wont have to put up with this much longer.
Good luck. -
RE: Efficiency is for losers
Just another battle in the ongoing "Hunt the dead code" war?
-
RE: Living in the land of WTF
Scavenging for parts in other rooms was not the first solution. We have filed 3 demands for servers, 10 for different software. We also have a ongoing discussion in the higher levels of incompetence on "opening a channel" for a ssh with our counterparts... there's also plenty of solutions where we don't have to change move the guy, like taking the code home, ftp to any friendly place, and opposite operation on the other side.
@dhromed said:
Not, I suppose.
I think you got me there. I'm out of here as soon as I can.
-
Living in the land of WTF
<FONT face=Helv size=2>
WTF heaven!
Dont get me wrong, I suffer from reading most of the codeSODs written in TDWTF's columns, but as a senior developper and a contractor, I move from place to place looking for that kind of mind boggling, disturbed, stupid, buggy code, that is in fact my revenue source. If the code that went into production was simply maintainable by interchangeable interns that you can dump as soon as they start asking for a normal pay, there wouldn't be a chance for me to make a living. This is why I thought I'd found heaven when I got a contract in that fat corporate bank that we'll call FCB. I was called in to help on a "migration to Web2.0" proof of concept, with a beautiful architectural design in which there were more layers than actual features. It reminded me of Will Coyote's next plan for catching the road runner. Oh what joy I had, imagining how much fun I would derive from dealing with the comitee of people that had to be responsible for that monstruousity.
Or is it really?
Of course, the FCB being so great, is certified CMMI 3rd level, so I was rather surprised to find that I was not at all bothered by the usual endless meetings and sterile reports. No apparently, our team existed in an undocumented no-mans-land where code gets actually produced before it goes into the ever crushing machinery of the process. But we still inherited code from other teams which had a complete process with full documentation (of the process of documenting the procedures etc). This looked like heaven. I had a few laughs reviewing some of the bits of code from the original product, like this new concept of variable enumation:
<FONT face=Helv size=3>
public enum PseAuthentMode { PASSWORD("PASSWORD", 0), EMVCAP("EMVCAP", 1), PKI("PKI", 2);
private String type = null; private int code = 0; //snip public void setCode(int code) { this.code = code; }</PRE></FONT></BLOCKQUOTE>
the setter wasn't used, but the programmer had tried to use it somewhere and left a comment in French saying that "for some reason", it hadn't worked. He must have found some other convoluted way to solve a simple problem with a complicated WTF....
In another way, some of the code looked like it had been automatically generated:
<FONT face=Helv size=3>
public static final int _E_E_NH_G_CRITERE0 = 0; public static final E_Nh_G_Critere1 E_E_NH_G_CRITERE0 = new E_Nh_G_Critere1(_E_E_NH_G_CRITERE0); public static final int _E_E_NH_G_CRITERE1 = 1; public static final E_Nh_G_Critere1 E_E_NH_G_CRITERE1 = new E_Nh_G_Critere1(_E_E_NH_G_CRITERE1); public static final int _E_E_NH_G_CRITERE2 = 2; public static final E_Nh_G_Critere1 E_E_NH_G_CRITERE2 = new E_Nh_G_Critere1(_E_E_NH_G_CRITERE2); public static final int _E_E_NH_G_CRITERE3 = 3; public static final E_Nh_G_Critere1 E_E_NH_G_CRITERE3 = new E_Nh_G_Critere1(_E_E_NH_G_CRITERE3);
</FONT>etc for nearly 200 values, don't laugh, used for example in this way:
<FONT face=Helv size=3>
public final int marshallSize() throws GoalSystemException { switch (getDisc().getValue()) { case E_Nh_G_Ident1._E_E_NH_G_IDENT1: return 52; case E_Nh_G_Ident1._E_E_NH_G_IDENT2: return 52; case E_Nh_G_Ident1._E_E_NH_G_IDENT26://not 3 return 25; case E_Nh_G_Ident1._E_E_NH_G_IDENT4: return 18; case E_Nh_G_Ident1._E_E_NH_G_IDENT5: return 19; default: throw new GoalSystemException(CodeError.NDRERR_CASE_NOT_FOUND); }// fin switch
</FONT>Don't ask me why 26 and not 3, I could only wonder, but I will try and give you "some" insight. It just works so I closed my eyes and the file...
I said generated, but it is hand maintained with a big excel sheet giving explanations in a very poor English for each of the codes. 3 is the "list of operations on this account" and 26 is "Relevé d'op", french for the same list of operations. In fact, they were reproducing in Java some development method born in Cobol that had somehow survived in C (not the "getDisc" which is the discriminant of a union type) and made it's way out of the black box to plague the front end designer. There were more than 3 current companies contributing to the current code and there had been many more in the original product. For "security reasons", there was no direct way for us to get the code from our contributors in Belgium, so one of the developpers had to take a train and come to Paris with a usb drive and dump his files into our machines, ready to deploy into the test environment.
I started having some serious doubt about the whole process when my demand for ANY source control went ignored for three whole weeks. Not that our contributors weren't using some (CVS and Subversion were both used by our other coders), but the integration team didn't really exist, so we hardly got machines.
No, this looks more and more like hell on earth
In fact, the developpement tools are imposed, as is the environment. RSA, WebSphere. but our computers can't run the software because they don't have enough RAM. The rights of access limit us to internal webpages, authorized documents and authorized applications which do not include most of the tools of our trade...
We are receiving new lists of requirements everyday on a part of the project that has already been delivered. The documentation on the layers that we are supposed to use is written in English, but probably with google translate from the original french. I cant get the original version.
Now that I have seen enough different final versions of our target architecture (all of which have been presented as the only real version), I realize that some parts are being programmed by two different teams at the same time, and some parts are non existent and non provided for. It seems that these forgotten parts are now my responsibility I guess.
I'm seriously polishing my resumé and starting to wake all my usual contract finding friends.
Fighting back...
Last night my boss went raoming through other offices, to steal some RAM, for an impromptu upgrade of one of our machines. We used the "liberated memory card" and now have one computer for an embryonic test environment. We have plans to scavange a couple of computers from a couple of contractors that are leaving in a couple of days... if noone betrays us.
I hope to get a proof of concept working, long enough to get my pay check, and then, I ll let someone younger than me, more courageous, more powerful, do what has to be done:
"You want to have a web2.0 application for home banking? Easy, should take a couple of guys 3 to 6 months, if you just chuck all of that junk away."
</FONT>