Saturday, December 10, 2011

Backlog 3: DB, JS, Bad Code

I'm not a DB admin or DB anything, I'm just a dev
So it's no shock I have tons to learn about databases, especially Oracle
And so I was surprised to hear when Oracle would ignore indexes
Based on stats/sampling of data to determine if the index would be useful. But the sample picked might not be representative, leading to a bad plan and a SLOW query.

Recent converting of Richfaces to JQuery, attempting to use a newer JQuery than the version packaged with Richfaces. Found it needed to be loaded before Prototype but couldn't change the JS load ordering with older Richfaces version. So solution was to just remove Richfaces components which removed dependency on Prototype (so it wasn't loaded anymore).
Then multiple JQuery versions could be loaded properly using no conflict.
And the Richfaces components, like a modal, could be replaced by JQuery plugins.
In the end it worked out, but after many attempts to fix the script load order.

Another pain point that has persisted is rounded corners and being restricted to CSS2 (using flying saucer and meeting older browsers). Also annoying are browser optional display of background images on printing (seen in IE/Firefox and needed to be configured in page setup).
A nice feature I was able to use with Flying saucer for PDF rendering was image caching by url. Instead of fetching images remotely, load them from a cache by url. Especially useful for generated images (not stored to file - my use case).

I've mentioned it before, but the lone developer is dangerous,
especially without unit tests or code reviews or good sample data for testing.
How bad can it be? How about killing a production server with an endless loop?
Not just a slowdown, I mean dead and out of use.
How about causing an all day investigation taking up tons of resources?
And what is the cause? A simple condition not checked for.
It just took the right set of data to break the algorithm.
But I guess the lesson is to expect the edge cases/bad input since people are messy and defensive coding is important. And unit tests!

Backlog 2: PAX, TV

Finally catching up on some PATV and DnD.
Watched the PATV s03e01 on PAX.
Also watched the DnD videos on youtube from PAX prime 2011 with the always great Chris Perkins from Wizards of the coast. It was entertaining, but overall not as great as previous. Lots of talking with less action and the music was distracting.

Also finally signed up for PAX East in Boston and booked a hotel room.

Enjoying Fringe and the Fringe podcast.
With only 1 episode left before the 2 month break.

Also watched Supernatural (on Hulu!)
and what? no more Castiel?!
The Leviathan and black ooze reminded me of Venom or XFiles (both alien references).
Also the body duplicates / dopplegangers reminded me of earlier episodes (covered in this wiki)

Backlog 1: Computer Bug

Another bug on the computer referenced in this older blog post

To review,
It caused ping.exe traffic on port 18504, repeating sometimes every 20 seconds, and requests random IPs with the browser sometimes opening random pages as well.

Anti-virus was dead for many tried. Existing was AVG but also failed for Symantec. Sophos and MSE found nothing. Malware bytes found some leftover/trace malware (defender.exe/svchost.exe). Super anti-spyware found a rogue dll.
None of these helped, the problem persisted, with the ping exe running whenever the network was connected.

I researched and found some references that sounded familiar related to Java.blacole. And although there was an older Java JDK/JRE on the system, the browser plugins were up to date.

In the end, I just formatted and reinstalled. It was long overdue anyway from the last rebuild.
And now it is back, cleaner, up to date, and working (using MSE now).