Pencils Down

This weblog is about my experiences in software development

I thought I would pass this along:

I have several stacks of large PDF printouts at hand. Several are complete books that are freely available over the internet, as long as you print just 1 for you. Using various size clips is ok, but not really conducive to following along online.

OfficeMax (and probably all the office supply places) will wirebound these documents for you at $4.95 each. It just takes a few minutes. Great deal!

You now have a programming manual that will lie flat on your desk.

I had tried going even further and have them print it as well, but anything with a copyright is verboten.


I know many of these are pretty good. I have taken several.

I have also seen, on average once a week, a craigslist ad like “Solve this Java problem for me $30″. Following the link provided the person usually doesn’t even bother taking down the heading for the course in the problem statement nor the code start.

So, this takes a little work to put the ad up and describe it in a reasonable way so someone would look at the ad.

Why not do the actual work on solve the problem?

Most of these I have seen are fairly small tasks that could be solved by RTFM or the teacher’s notes or paying attention or …

What possible advantage does someone get by paying to have a minor programming task done by someone else? Seems like just burying yourself deeper in a hole.

Most annoyed in that I take some pride in the classes I have taken online and that value is besmirched by some confused individuals.


Was getting this error trying to run a hibernate query in a thread during startup.

Need to add @Transactional to the class. This tells hibernate to add the session to the thread.


A new company, another set of random values for serialVersionUID.

Not sure why most programmers have the urge to put in some huge, ‘random’ number here. The objective is to match versions during serialization. Can’t imagine using a random number is a good idea.  Even better, the numbers entered are not random.

Sorry, this is just a pet peeve. There is much written up on using this correctly if you are truly serializing objects. I think I have seen this at every company I ever worked.


Would you work where the programmers had to pass a personality test?

  • Yes (50%, 2 Votes)
  • No (50%, 2 Votes)
  • Have to be a lot of money (0%, 0 Votes)
  • Could I see the people that passed? (0%, 0 Votes)

Total Voters: 4

Guess this is a little to close to the PC line for people to express their opinion.  Too bad.


I have grown to really hate eclipse. Seems like every keystroke now starts an “update maven dependencies” task.

Have tried several of the options that supposedly stop this to no avail.

Doing most actual builds from the command line using mvn commands.

Starting to use notepad+ for editing files lest I start another update process.

Even worse, in many cases when this is happening I am changing very few lines of code.

Last bit was doing a search, clicking on the search result to pull in the file into the editor started maven off and running.

Maybe switch to intellij. Someone here was using that, but they left. Kind of hard to push yet-another-tool upon the team or be an outlier using a non-standard.


Went to meetup given by Phillip Tellis from Soasta/log normal

Some notes I took:

  • Gzip static
  • Image optimize, reformat png with lesser bits
  • Cache control public max age
  • Turn off last mod header
  • Turn off etags
  • Serve root domain thu CDN
  • Css on same domain
  • Include js critical in head; load enhancements js async (use attribute on script tag)
  • Chrome audit css – excellent tool for evaluating css usage
  • Parallelize downloads
  • Flush early, often
  • Gzip chunking
  • Add Mod_pagespeed
  • Parallelize, predict, cache
  • Prefetch next page
  • Anon iframe fir css and js
  • Link rel dns-prefetch, sunresource, prerender

His slides are here


We have a case where people can submit multiple changes to their database records. Each change is handled separately with code like:
- from table where attribute=value
- object.setChangedValue(updatedValue)
- hibernate.flush()

However, if the user happened to submit two changes to the same record the initial query will return the initially obtained object – NOT the updated value.

We fixed this by performing a refresh() once we get the object back from the hql query.


Met someone that works at a cloud software company. The company promise is that your infrastructure xxxx problems are handled by us in the cloud. Nice premise.

Reality is they are hobbling together a bunch of non-scalable apps written in a variety of languages together as a solution. The various pieces are re-developed (daily) into Java so that some kind of architecture can be established.

Yes, the original silo solutions are still being developed in their native language.

Yes, the amalgamating team has a daily run around to see what happened and ‘fix’ it.

Yes, there is an architect overseeing the lot and trying to herd these various individual teams into the same direction. (What’s that old joke about trying to herd a bunch of somethings?)

And, did I mention they are scattered across Europe so not in the same time zone or language.

Sign me up!


Ran for a few months. 18 responses:

c3po 10 votes (56%)
dbcp 4 votes (22%)
oracle 3 votes (17%)
other 1 vote (6%)

I was curious. Current employer had been a big Oracle/Forms shop and naturally acclimated to using Oracle. Prior several employers had used c3po.