Home » Archive

Articles in the Uncategorized Category

Uncategorized »

[25 May 2005 | Comments Off on Isolation is pessimistic, collaboration is Agile | ]

Working on several software development projects, both agile and non-agile, I’ve realized a few things:
– Non-agile teams favor isolated development practices– Isolated practices are generally pessimistic– Agile teams favor collaboration– Higher collaboration seems to (naturally) require more optimism
Non-agile teams favor isolation
Most of the non-agile teams that I’ve worked for (including those who thought they were agile, but really weren’t) have generally favored isolated development practices. For example, developers take on different tasks and develop them in isolation. Developers have ownership of segments of code and take it very personally if …

Uncategorized »

[24 May 2005 | One Comment | ]

My name literally means ever-lasting in Farsi.
It is officially pronounced: JAW-veed. The JAW is the strong sound and is pronouned just like the body part, and veed rhymes with weed.
Growing up, American friends / teachers always pronounced it: JAV-id, where JAV sounds like the first part of java and id sounds like the first part of idiom. Growing up, I never really bothered correcting people, and I eventually got used to this pronunciation. This is still how I introduce myself to American people.
There are also about 10 other …

Uncategorized »

[13 May 2005 | Comments Off on Transparent Video Content Retrieval | ]

I’ve been looking into home theater PC (HTPC) software lately and I’m very impressed with some of the packages available. HTPC software is essentially a digital video recorder (DVR) on steroids. You can use it not only to record live television, but also to provide access to all of your stored media content (mp3s, ‘ripped’ dvds, mpeg, game emulators, etc).
Some HTPC software packages provide RSS aggregators (feed readers). You can use this to read the news through your HTPC, but you can also use it with feeds that provide bittorrent …

Uncategorized »

[12 May 2005 | Comments Off on Free Culture | ]

I just finished reading a book called Free Culture by Lawrence Lessig. I would highly recommend this book to anyone who wants to gain a good understanding of the debate over copyright and understand how current copyright legislation it is affecting our culture and our ability to innovate. The book is mainly about copyright, but he demonstrates how copyright laws are inhibiting innovation in software. I like the style of the book because he teaches through telling stories about people and events that have been affected by copyright issues. Though …

Uncategorized »

[4 May 2005 | Comments Off on Syndicated Logging | ]

In enterprise applications, system failure notification is often mission critical. If an application or a computer system fails to respond, or an application produces an unrecoverable failure, human intervention may be required.
Notification can be accomplished in many ways. An error message can be captured in a log file, e-mailed to an individual or a mailing list, or even sent as a text message to an application support team. These technologies all have advantages and disadvantages. For example, anybody who needs to access a log …

Uncategorized »

[4 May 2005 | One Comment | ]

If you’ve ever done a toString on an object that doesn’t override toString(), you’ve probably noticed that it returns something like this.
com.mycode.MyClass@1312311
Now the big question: can two different object instances ever have the same value after the ‘at’ (@) sign?
The answer is yes. If you look at the source for Java’s Object class, the toString() method prints the name of the class, the @, and the value of the hashCode() method. If your class overrides hashCode(), and you create two objects that have the same exact hash code …

Uncategorized »

[23 Apr 2005 | Comments Off on On-The-Fly Encryption | ]

I’ve been looking around for a decent way to work out of an encrypted file system. I’ve come to learn that such systems are called On-The-Fly Encryption (OTFE) systems. The one that appealed to me the most was an open-source project called TrueCrypt.
TrueCrypt allows you to create encrypted “volumes” and map them to Windows drives. The tool will prompt you for your encryption password when you try to mount a volume. A volume can be a hard-disk partition, USB stick, floppy disk, or a file. …

Uncategorized »

[20 Apr 2005 | One Comment | ]

The next time you are responsible for naming something, be it a software product, an organization name, a brand of clothing, or whatever, please keep this in mind: people will probably want to search for the name of your “thing” on the Web.
It is really annoying when I Google for spring factory and I don’t get anything remotely close to what I am looking for in the first two results pages. The phrase spring framework factory definitely does better, but I hate having to type framework everytime I want …

Uncategorized »

[7 Apr 2005 | One Comment | ]

It is important to realize the differences between synchronous and asynchronous systems.
A synchronous system is one that you make a request to and wait for a response back from. Examples include a database, a Web server, a method call, a voice telephone call.
An asynchronous system is one to which you send a request and needn’t wait for a response. If a response is generated, you receive notification from the system once it is complete. Examples include the observer pattern, messaging queues, and voicemail systems.

Uncategorized »

[14 Dec 2004 | Comments Off on Unit Test More Efficiently with Mock Object Alternatives | ]

Here’s an excerpt of my newest articleUnit Test More Efficiently with Mock Object Alternatives, published on DevX.com:
The mock-object testing pattern has commonly been used to test an individual unit of code without testing its dependencies. While this pattern works well for interaction-based testing, it can be overkill for state-based testing. Learn how to streamline your unit-testing using stubs and the pseudo-objects testing pattern.
When you’re unit testing, you often want to test an individual unit of code without testing its dependencies. One common solution to this problem is to utilize the …