code quality

warning: Creating default object from empty value in /hermes/walnaweb12a/b57/moo.greydragoncom/nodsw/modules/taxonomy/ on line 33.
Leeland's picture

Natural Order is the future of concurrent processing

David Ungar gave a Talks on Computing Systems (TOCS) at Carnegie Mellon University called "Everything You Know (About Parallel Programming) Is Wrong!: A Wild Screed About the Future." ( It’s just over an hour long and I am so excited to have the natural model being looked at. The imposition of artificial constraints to force computations to occur in a specific ordering has always rubbed me the wrong way.

Leeland's picture

Cyberwar is Becoming Real Warfare

Security is often left to be the last item if not done at all. Yet, the digital universe is expanding at a rate that is amazing to be part of. Yesterday the US Pentagon confirmed thousands of the US's most closely guarded secrets were stolen by crackers. Even more interesting is that because of an inaccessible classified network being breached for months undetected the US Pentagon has established a Cyber War Room and created a Cyber Defense Force unit to protect the US computers and networks.

Leeland's picture

Re-evaluating Project Requirements

In developing project criteria/use cases/stories a certain point is reached where it is concluded that "enough" has been done and the results are "good" to begin work. Which is to say that the requirements are "good enough."

It is not unusual to wonder, after work begins, if the information really was good enough. It is worth re-evaluating the requirements once a little effort has been done. This helps to flush out missing details. A reasonable set of questions to ask are:

  • Were any important variables missed in collecting the data used to produce the requirements?
Leeland's picture

Try Looking at Your Own Legacy Code

Just had a reason to open up my code archives. Not a big deal, just checkout the older stuff from the Subversion archives and add some new Eclipse projects.

Lions, tigers and bears oh my. What the heck are all those warnings!?

Leeland's picture

Where should exceptions go?

Lets talk about exceptions for a moment. At the office a discussion came up that essentially was about if we should group our exception objects together into a single module/subsystem wide package or have them called out in the packages next to the code they were used by.

Personally I think packages specific to exceptions are bad ideas because it detaches them from the business objects they are supposed to be supporting. An exception should represent the possible result of a direct action on a domain object. I think they should be subsystem/object specific.

Leeland's picture

Java SecureString Class

Secure string implementation is very hard. A secure string is a means to keep and use confidential data. Essentially the text cannot be stored as plain text and definitely cannot be stored in a Java String object since that is immutable and there is no definable point when it will be removed from the system.

Secure String Implementations should:

  • text is encrypted for privacy when being used
  • deleted from computer memory when no longer needed
  • not be allowed to be paged to swap memory
  • cannot be seen via memory inspection
Leeland's picture

How to Write 3v1L, Untestable Code

I always love a good laugh and this one is great. The developers and testers at Google have put up a great "How to Write 3v1L, Untestable Code" article with tongue in cheek and enough sarcasm to really tickle your thought processes. In reality is a list of things not to do as a developer. I love the reverse style delivery. You can find the complete post here: Google Testing Blog (

Leeland's picture

Not a lot done seem to be stuck

Well it has been a cruddy day. I have been trying to figure out a problem with the fcgi implementation. Seem to have been running circles around myself here.

There is a bug in the Django source specifically in django/core/servers/ that was ignores the output settings unless the process is being daemonized. So I added the else clause below has fixed it so I am now getting stdout and stderr messages.

    if daemonize:
        from django.utils.daemonize import become_daemon
        become_daemon(our_home_dir=options["workdir"], **daemon_kwargs)

Thread Slivers eBook at Amazon

Syndicate content