My thoughts as an enterprise Java developer.

Tuesday, November 27, 2012

LinkedIn CEO: Site will become 'economic graph' over next decade | Internet & Media - CNET News

LinkedIn CEO: Site will become 'economic graph' over next decade | Internet & Media - CNET News: "Weiner envisions companies using LinkedIn to evaluate a workforce in an area to see if it's equipped with the skills to get the jobs that will be emerging."

Tuesday, November 20, 2012

Source Control Message for Single File Add

What should be in a source control commit message for a single file add?

  1. Reason: The reason for the file should be in a comment in a file so it would be a duplicate to also include in the commit message.
  2. File add: Already part of the commit
  3. Issue identifier

Thursday, November 01, 2012

Laws are like computer programs

Laws are like computer programs. Like programs, laws try to apply rules to change their environment but the system for making laws isn't setup to make good laws. Programmers have generally accepted best practices to increase the chance of good code but there aren't such practices for laws (or they are minimal).

  1. Laws have to deal with much more varied input than computer programs.
  2. Laws have greater risks when the input isn't handle correctly (people can die)
  3. Laws are written by people who are selected for their ability to have general goals -- not people who are necessarily good at ensuring that all of the details are correct. Generally visionaries don't write code.
  4. Laws have virtually no testing that is done before implementation (sometimes there are studies but they are usually general). Code generally has multiple types of testing: compiler, unit, functional, QA, user, etc that verify that the code is good before it is released.
  5. Laws are written by large groups that are all responsible for large portions. Programmers are usually responsible for small portions that don't overlap much.
  6. Laws are applied to large groups before being tested on small groups (sometimes federal laws are based on state laws but that is rare and loose).
  7. All of the people who help produce programs generally focus on a narrow domain but laws are mainly written by generalists (exceptions being lobbyists and "experts")
  8. Laws reference parts of laws, which is like functions
  9. Simplicity isn't a goal for laws.
  10. Laws use the waterfall model
  11. Laws don't have official comments

What other programming best practices do laws not follow? Are there programming practices that laws follow well?

Monday, October 08, 2012

Thursday, April 12, 2012

Code can't be stolen under federal law, court rules | Security & Privacy - CNET News

Code can't be stolen under federal law, court rules | Security & Privacy - CNET News: "The enormous profits the system yielded for Goldman depended on no one else having it," Jacobs ruled. "Because [the high-frequency trading system] was not designed to enter or pass in commerce, or to make something that does, Aleynikov's theft of source code relating to that system was not an offense under the EEA."

Wednesday, April 04, 2012

Is it more secure to allow the browser to save a website password or prohibit it?

Is it more secure to allow the browser to save a website password or prohibit the browser from saving the password?

Benefits of allow the browser to save the password:
  1. Spoof websites are more easily detected because the username and password don't show up (this may be a mute point if the username is saved but not the password).
  2. Keyloggers won't pick up the password if you don't type it. (Thanks to Thrawn)
  3. People will be less likely to keep the password in an obvious place (i.e. sticky note)
Benefits of prohibiting the browser from saving the password:
  1. Stops someone with access to your computer from accessing the passwords (the level of access needed can vary based on how the passwords are stored).

Wednesday, February 22, 2012

The value of low-level logging

All of the info in logs can be obtained through a debugger, if you can reproduce the problem. Low-level logging allows a devloper to debug a problem without the work of reproducing the problem - Q.A. or another developer can just send the debug log for review. When it is difficult to reproduce a problem, debug logs can be invaluable. Debug logs also give a wealth of information without having to choose that info beforehand. While debugging a developer may find that more information is needed and it can require re-running the test to get that information.

Friday, January 06, 2012

How Trello is different - Joel on Software

How Trello is different - Joel on Software: 'A feature that you built and tested, but didn’t deliver yet because you’re waiting for the next major release, becomes inventory. Inventory is dead weight: money you spent that’s just wasting away without earning you anything.'