Invaluable Helpers

This post was written by admin on July 28, 2008
Posted Under: Programming

Programmers have help.

Thousands of tools have been created to make our lives easier when we are organizing, designing, coding, debugging, unit testing, regression testing, and maintaining.

I’m under no illusion that I’m using the best tools imaginable, but I sure as hell rely on a few supporting characters:

  • A good editor is invaluable. The Emacs editor (OS?) with org-mode has become invaluable to my programming.
  • In the land of C/C++ memory leaks, valgrind is a miracle worker.
  • Visual Studio’s debugger and GDB are invaluable in tracking down logical flaws.
  • Matlab and Mathematica are great for checking my numbers.
  • I’ve yet to find a better design tool than a sheet of paper and a pencil.
  • As recent as Friday, I’ve used this little Python echo server to debug send/receive functions in network applications:
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost',12345))
s.listen(5)
while 1:
    c, a = s.accept()
    data = s.recv(1024)
    if data:
        print data
        client.send(data)
    client.close()
  • I use Wireshark to see programs talk to each other over network interfaces.

What do you use?

Popularity: 7% [?]

Reader Comments

I find that [quickly erased] print statements can sometimes be as helpful as a full gdb session, but take far less time (especially when I’m working on someone else’s setup).

#1 
Written By Jake on July 28th, 2008 @ 3:04 am

PyChecker is necessary for getting any but the most trivial of Python programs correct.

#2 
Written By Erika on July 28th, 2008 @ 11:12 pm

Lua for little scripting tasks (for instance, I wrote a server really similar to your Python example for my last project.)

Beyond Compare 2 for diffs.

#3 
Written By Evan on August 1st, 2008 @ 10:20 am

Add a Comment

required, use real name
required, will not be published
optional, your blog address