Friday, January 27, 2012

Downtime continued

It's frustrating to not be able to keep a production app live without restart/redeploy for very long.
And so the saga of the last 6 months or so continues...

First with slowdown and constant garbage collection, memory dumps revealing mostly JSF objects and session data containing it.
Restarts of app server did not help, shortly after going back into constant full GC.
Similar behavior was seen in the past with a JSF bug causing threads to hang on Hashmap.get with full GC but these threads were not observed this time.

Then intermittent page rendering issues were found across multiple apps (funcionality not working, pages showing sections multiple times, javascript and page syntax errors).
Also logs showed frequent new unexpected errors from page actions missing data.

Able to replicate rendering issues externally and not directly from the app server.
Investigation of page html source showed the same html content delivered multiple times partially and becoming jumbled at the end.
This may explain the unusually large session/JSF objects storing bad page state data.

Further investigation and testing found the problem to lie in the network, specifically recent security updates.

It was a long process to find the cause and solve.
I can only guess what the fallout will be from the downtime and possibly junk/incorrect data flowing to/from the servers.
But I'm just glad it wasn't another bug in the app code for once.

Thursday, January 26, 2012

I Hate JavaScript Frameworks

Or specifically I hate JavaScript framework debates.

To start, I wouldn't call myself a JavaScript developer.
I've used it for years, especially with great libraries like JQuery.
And I've learned what I needed to make some nice UI look/feel.

But when it comes to debates on MVC JavaScript frameworks, I'm not sure what to think.
I'm thinking non-JS, especially non-JQuery, devs are the ones pushing toward frameworks.
I've done fine with JQuery.
Yes, building JS heavy web leads to JS bloat and custom JS for each page/section/function.
And yes there are lots of options/libs/plugins (as with any lang) and it's nice to standardize.
But I need to see the use cases/dev time/readability/maintainability etc improvements to buy into a JS framework.
I can guess the benefits, but at the same time I can also picture the downsides.
The web is changing constantly, and will the JS framework you lock into still be in dev in a few years.

And then there is the push for everything-as-a-service.
I get this too, especially useful to avoid duplicate functions across teams.
Do I want to just split up the backend into web services with just html/css/js on the front end?
Do I want to walk away from webapps? Well I'm a Java dev after all.
Not to say that I couldn't, but would I enjoy it the same?
To be continued...

Monday, January 23, 2012

Reading

Started two new books from the library,
Outlander (which I haven't gotten far in but so far it made me guess the title could be Pride and Prejudice and Portals)
and an Asimov collection including Pebble in the Sky and short stories (from 1950)
After making my way through the robot series, I'm moving onto the empire series and this was the only one at the library, would need to request others

TV return

So good to have shows returning, epecially Fringe and the podcast
And what a comeback!
It returned with what should have been the season break finale s04e08,
and it was worth the wait.
A return to classic fringe (like a best-of mix)
With crossing universes, shapeshifters, the bad guy (david robert jones), the observer.
And we saw almost all the characters return in one episode, however different they are in this timeline.

Deploy Woes

Another all-day-deploy with a list of issues to learn from.
I was mostly in a consulting role for this dev work other than some cleanup, but I should have taken more thorough code reviews.

1. Not commit testing/debug changes, such as removing a needed config or adding a debug dialog
2. Re-releasing during deploy should not happen. This means the new code changes have not been through QA at this point.
3. Make sure all resources are ready to be deployed, to avoid spending hours during the deploy
all day deploy
4. Make sure you have test data needed for proper post-deploy testing (that is not defective/false-positive). For example, an account that fails internally but external users can access the service fine.

Most of this is about preparation, like having the QA dry run be as close to production as possible. And having someone to organize/push for this.

Friday, January 6, 2012

Zambie new year

I have a ton to catch up on, as usual, in the months I've been away
Mostly I've been in the coding cave, with my head down, working away

But I was gifted Dead Island over the holidays and I've been playing it a lot
Definitely fun, lots to do and enjoy
Picked up both Killing Floor and Trapped Dead recently, but haven't much on those yet

Besides some Dead Island on New Years, also watched the start of Season 2 of the Walking Dead
I'm sure I'll have plenty more to discuss on it as I get through the season (especially compared to the comic). I was actually surprised when Carl was shot, I completely forgot about that in the comic. Such a good show.

And to round out the zombie new year, I was surprised to see that there are still games available for Zombie Master (and it can still be played on this POS comp)