Fog Creek Software
Discussion Board




Tools we love, tools we want

What obscure little software tools make your life as a developer easier?

Conversely, which tools do you _wish_ someone would write for you to use?

Mike Gunderloy
Sunday, March 10, 2002

I'd like a 'round-trip engineering' tool for C++, please, that's cheap enough that I'd be happy to pay for it out my own pocket, instead of my needing to extract the money from my company's bean-hoarders. Thanks.

Christopher Wells
Sunday, March 10, 2002

papajohns online delivery:
http://www.papajohns.com

chunks
Sunday, March 10, 2002

If you use Delphi, and don't have CodeRush, you're not working effectively. This product allows you to have diagrams in your source code, has amazing code completion and autocorrect-style coding assistance, can draw structure diagrams (matching tokens), and tons more.

One of the upcoming features is a refactoring plugin that will allow you to view your code as a tree. Pretty damn slick.

http://www.eagle-software.com

Tim Sullivan
Sunday, March 10, 2002

PC Magazine's RoboType
Type in a phrase and it will replace that phrase with any amount of text you specify. Great for commonly used phrases, routines, etc. I use it as a mini dictionary

MacroMaker
One of the best macro program's I've ever seen. One keystroke and I launch Dreamweaver, IE, Fireworks, CityDesk, etc. Another and it types a URL for me & hits enter so I go there immediately. One of my co-workers programs it to log in to all of his e-mail accounts at once. Of course, there are hundreds of other possibilities that I haven't even begun to explore.

(both available on download.com)

Working Time Tracker & Task Tracker from this thread:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=4311&ixReplies=9

This has nothing to do with developing (directly), but I use Power Marks [ http://www.kaylon.com ], a shareware program. Which lets you search through your bookmarks. I find myself adding useful notes to my bookmarks now:

http://www.joelonsoftware.com/articles/fog0000000356.html

"Joel on Software - The Iceberg Secret, Revealed project management requirements gathering client design" so when I add it to powermarks, "requirements gathering" turns up it and a half dozen other links I added those keywords to. It also grabs keywords based the folder it's in.

A similar program is HindSite [ http://www.isysdev.com ] which lets you index and search through your browser cache for that article you read 3 months ago but can't find now. I put it in my StartUp so that it indexes every time I turn on my computer. A search for "Painless" turns up 2 articles on Joel on Software, 3 threads in this message board, two Google Groups searches and 1 amazon.com book.

These two tools really help the 'Knowledge outside of your brain' that Donald Norman talks about.

Mark W
Sunday, March 10, 2002

A refactoring browser that knows enough about the code surrounding your refactoring to make intelligent guesses as to what you really want it to do. The one in the "Idea" Java IDE is a pretty good start (I've never coded in Smalltalk, so I can't compare it with the "classic" refactoring browsers).

Charles Miller
Sunday, March 10, 2002

I find grep indispensable, even in the Windows environment.

Andrew Simmons
Sunday, March 10, 2002

Here here! Regular Expression is an essential tool. I use Homesite a lot (okay, so I just do HTML) but it's also very useful for other kinds of programming, and the search & replace is excellent.

Mark W
Monday, March 11, 2002

I still haven't found a Windows text editor that I like as much as BBEdit Lite. They all seem to include too much garbage and don't feel refined. Any suggestions?

pb
Monday, March 11, 2002

Re: a good windows text editor. I recently discovered Metapad (http://liquidninja.com/metapad/) and it immediately replaced C:\windows\notepad.exe. For a basic text editor, this is great!

David Fischer
Monday, March 11, 2002

I found WndTabs by Oz Solomonovich (http://www.wndtabs.com) a very helpful addition to VC6, it organizes your open files on tabs so you can easily change between them without using the windows menu. It has some other helpful features as well, for example it makes your life with CVS a little more comfortable since it shows if a file is write protected (I think this feature comes only with the registered version, but registering costs only 10 $ if I remember rightly).

I am still looking for a better debugger that will integrate with the Visual Studio and is a little more stabile when debugging multithreaded apps than the normal MS debugger. I get bluescreens a lot when debugging multithreading apps, and of course they are somehow due to my own mistakes, but finding these mistakes is what a debugger is for, isn't it?

Have fun,

Jutta Jordans
Monday, March 11, 2002

Automated or semi-automated refactoring tool for Object Pascal, C++ and C#.

Roman Eremin
Monday, March 11, 2002

Tools I use:
* I like Python's interactive interpreter a lot.  But I wish it were better.  Like those Scheme interpreters.  Maybe I should switch.
* Apache's Ant is the best replacement for make, when using Java.
* Notepad is becoming quite the nice but absurd tool, ever since I learned the whole .LOG trick (if you put .LOG as the first line, notepad will timestamp the bottom).  But hmm, Metapad does this too.

Tools I want:
* Better groupware, and none of this madness that takes 256 MB on each client.  Ideally, it mainly uses a web interface.  I am looking at Scoop (which runs Kuro5hin), SourceForge/Savannah, and perhaps Userland's products.  I don't think the efficiency of tech has been close to realized for large projects.
* I wish there were simple memory-leak commandline tools for Java.  I hate needing to reinstall a copy of JProbe just to find someone's brain-dead memory leak.  I'm thinking of writing a free replacement.  Ideally, software is like Google -- it just works, none of this license garbage.

Sanborn
Monday, March 11, 2002

visual assist: http://www.wholetomato.com/

I'm lost without it... highly recommended. Send these people your money!

I second the WndTabs recommendation. That's great too.

Tom Seddon
Monday, March 11, 2002

Tools I use...there are so many it's hard to know where to start. For editing, I use CodeWright (version 7 just shipped), http://www.starbase.com/ (though one thing I would love would be an external editor that integrated better with VB6 - that won't matter to me much longer). For XML stuff in general, it would be tough to live without XML Spy, http://www.xmlspy.com . For storing random bits of information I've beeb pleased with Vault, http://www.personalmicrocosms.com/ .

I'd love a diagnostic tool that could look at a Windows event log and say "you dummy, you need to do x, y, and z" to fix your Active Directory installation. An FTP client with an Explorer interface that was more stable than FTP Voyager would be nice. Also a newsgroup client that runs under Windows and didn't suck rocks (yeah, I know, there are good ones I could run on the Linux box).

Mike Gunderloy
Monday, March 11, 2002

GViM and grep, even on Windows.

Chad Hulbert
Monday, March 11, 2002

I use Action Outline and Treepad for knowlege storing. Action Outline will even export numbered outlines, and /*comment headers*/ (though I've found that it won't save or export when I entered a C++ program into it). Both are shareware, but there's an excellent compact version of Treepad that I keep on floppy with all my notes. ( http://gpsoft.hypermart.net/ao.html ) ( http://www.treepad.com )

I'll second that endorsement for XML Spy. I just wish it didn't associate itself with EVERYTHING right down to .txt files.

I've been using Xnews for newsgroups and so far (these past couple of days) I'm happy with it. ( http://xnews.3dnews.net/ )

I tried Metapad too, and it takes a full second or two longer (on my 233mhz win95 machine) to load than notepad, so I never did that replacement thing.

I also keep handy a boot disk with expand.exe (which will extract those file.ex_ files that microsoft loves), pkunzip.exe, and spinrite5.exe from Steve Gibson ( http://www.grc.com ). http://www.bootdisk.com has some good boot disks.

http://www.collakesoftware.com/ has programs that will compact .exe files and embed .dll files into them. Extremely useful in the right circumstance.

ExamDiffPro is a good (but I'd love to find a better one) source/diff program for windows.

SpaceMonger is great for tracking down and freeing up space on your hard drive, or any networked drive.

Calipers is an essential tool as a designer - works like real calipers, measuring the pixel widths and distances with ease.

I don't have links for those last three, a Google search should turn them up.

Mark W
Monday, March 11, 2002

There are two tools that I really love:
Clipmate http://www.thornsoft.com/ and
Snippets http://www.softcircuits.com/snippets/.

Clipmate remembers everything that goes into clipboard. I just wish the user interface was a little better and keystroke shortcuts were a bit more thought through.

Snippets is a very simple program that allows you to store snippets of ASCII text in a File manager-like tree and search through them.  Every time I come up with at new piece of reusable code I put it into Snippets. You don't need to install the application, it just needs to be zipped up and copied to give it to somebody.  It would be great is somebody wrote a collaborative version of Snippets.

I have registered copies of these programs already, but I would definitely pay for improved versions.

Michael K
Monday, March 11, 2002

We seem to like tree based editors. There's a good overview of them here: http://john.redmood.com/organizers.html

This is what I use RoboType for.
http://www.zdnet.com/downloads/stories/info/0,10615,77481,00.html

The difference is when I want to paste that code, all I have to do is type the command I set:

"?subroutine "

will be replaced by whatever I set RoboType to replace. (the "?" can be any number of symbols, I chose ? because it's easy to type and won't be accidentally triggered)

Mark W
Monday, March 11, 2002

I don't think of them as obscure, but I'd be lost without find and grep.  awk can be handy.  And I make plenty of use of emacs (and XEmacs) not just editing but ediff, shell, vm (mail), and regex in substitutions.

Sometimes I wish for a better RPN calculator.

mackinac
Monday, March 11, 2002

This reminds me. I'd pay for a visual tool that would assist in creating and interpreting various flavors of regex expressions. Does anyone know if stuff like that exists?

Michael K
Monday, March 11, 2002

I didn't see anyone post this, so here goes:  TextPad.
This has to be one of the best text editors out there, I use it for everything.  Its cheap too ($20 I believe), and has syntax hightlighting for about every langauge out there.  I've converted all the developers in my Compay.

Vincent Marquez
Monday, March 11, 2002

The O'Reilly book on RegEx is great, though I wish it were more of a reference and less of a teaching manual.

Agent Ransack has a regex builder built in, and it will let you test for a pattern. I remember the builder being so-so, but the test pretty good. Then again, I don't recall ever seeing another Regular Expression builder so...

http://www.agentransack.com/

100% positive reviews on download.com

Mark W
Monday, March 11, 2002

I'm fairly vendor neutral when it comes to the technical tools. However, when it comes to doing my todo lists and doing task discovery, I tend to use theBrain http://www.thebrain.com/ . The interface is a bit on the fancy side (it really is just an animated graph editor :-P ), but the way it lets you arbitrarily associate information visually is quite nice.

James Wann
Monday, March 11, 2002

re: RegEx testing tool.  Mine only works under .NET but the idea is simple enough to implement you could write it your self for a different engine in a few minutes.  Now if your willing to pay me...

http://www.organicbit.com/regex/

Gerry Shaw
Tuesday, March 12, 2002

One of my favorite tools that I always install once I get to work on a new machine is a small registry hack from Microsoft called "Command Prompt Here", included in the Microsoft Power Toys for Windows 95 (although it also works on NT and Win2K).

It adds allows you to open a DOS prompt in any folder from within Windows Explorer. Very useful indeed.

Gabriel Lima
Tuesday, March 12, 2002

http://web.singnet.com.sg/~axon2000/index.htm

Is pretty cool to support thinking in all kinds of situations (capturing knowledge from users is quite effective with it).

Philippe Back
Tuesday, March 12, 2002

My number one tip: Email effects from www.sigsoftware.com! It's for Windows and Mac OS 9 and X. Shareware.

It's a simple little drawing program (think Illustrator) that you draw ASCII art with for your email signatures!

We use it to make small drawings directly in our source code. Simple UML diagrams, view hiearchies, tables etc.

Example: if you write a function that does something to a linked list you can actual make a little drawing directly in the header file with little boxes for the nodes and arrows for the pointers!

If you need to draw some boxes on a piece of paper to figure something out or to explain something - take a few minutes to put the drawing directly into your source code where it belongs!

Yes - you can copy drawings back into Email effects to edit them!

/Marcus

Marcus Zetterquist
Tuesday, March 12, 2002

Re: Windows editors.  I've been using EditPlus (http://www.editplus.com) for years now, and couldn't do without it.  I'm probably the only guy I know who hacks UNIX kernel code using a Windows editor, but I also use it for all of my Python, HTML, etc.  Tabbed multi-file interface, configurable syntax highlighting (I wrote the first Python syntax file for it in about ten minutes), easy external-tool integration, etc.  It's also one of the most stable programs I've ever used on any platform; after using it all day every day for years, I can still say that I've never seen it crash, weird out, or even display text incorrectly.

Re: tools.  The tools I'm always personally looking for are (1) better parsing tools and (2) better bug-finding tools.  The first category is pretty self-explanatory.  I've gotten pretty good at using yacc/lex over the years, because quite honestly I've never found anything that really seemed to be all that much of an improvement.  Part of me still believes that there should be a tool that does all the grunt-work of turning a complex config file into an easily-manipulated parse tree requiring no more than a single concise description encompassing both lexical and syntactic elements, but I have yet to find such a thing.  Don't tell me XML is the solution, either.  XML is great, but I want to be able to parse files whose format was designed without XML in mind, and I wouldn't want to use an XML-based programming language either.  To some extent I believe XML exists as a concession to the belief that more general forms of parsing are too hard, and I'm not ready to surrender yet.

In the second category, of bug-finding tools, I'm thinking of things that go beyond strict type-checkers and memory leak detectors.  Dawson Engler's MC (http://hands.stanford.edu/osdi2000/) seems to me like a huge step in the right direction.  It lets you augment or annotate *real code* with concise and readable descriptions of rules the code must follow, e.g. checking pointers before dereferencing them, matching locks with unlocks, etc.  In a way, it does for the control part of the code what strict type checking for the data part.  We need lots more work like this, creating ways to guarantee code safety and correctness without sacrificing performance or putting programmers in straitjackets (take that, functional-programming weenies).

Jeff Darcy
Tuesday, March 12, 2002

grep, Perl (Win32 & Unix)
find (Unix)
UltraEdit (Win32)

PeterM
Tuesday, March 12, 2002

Can't say enough about Araxis Merge:

http://www.araxis.com/

$124 for a diff utility?  Damn right!  Plug this puppy into WinCVS and you'll find yourself using it hourly.  It's very well designed ... an example of software done right.

Timothy Falconer
Wednesday, March 13, 2002

I develop C/S applications with Delphi on the front and Oracle on the back.  I couldn't function without the following three:


DOA (Direct Oracle Access) http://www.allroundautomations.com/doa.html is a translation of Oracle OCI from C to Delphi.  Database access speed is un-freakin-believable, even multi-threaded queries.  Moreover, it makes app distribution a snap - as long as the client has the Oracle client installed all you need is the Delphi-compiled .EXE.  To hell with ODBC/DAO/RDO/ADO or whatever the hell they're calling it this week.  Did I mention the blazing speed?


TOAD (Tool for Oracle Application Developers) http://www.toadsoft.com is the ultimate tool for any Oracle developer.  Interestingly enough it is written with Delphi using DOA!

Finally (and this will be the one that proves I'm certifiable), I wouldn't be near as productive as I am without Ozzy, Megadeth, or Judas Priest screaming in my ear.  San Francisco's 107.7 The Bone http://www.1077thebone.com is the finest I've found.  Thank goodness for streaming audio!

Sonny
Wednesday, March 13, 2002

I'll double that TOAD endorsement.

Mark W
Wednesday, March 13, 2002

PL/SQL Developer for Oracle development (much less expensive than TOAD) (www.allroundautomations.com)
TreePad for organizing miscellaneous bits of text, code, etc.
(www.treepad.com)
UltraEdit for text editing (www.ultraedit.com)
PowerDesk for file management (www.ontrack.com)
Enterprise Architect for UML modeling (www.sparxsystems.com.au)
ER/Studio for data modeling (www.embarcadero.com)
MKS Toolkit for UNIX utilities on Windows (www.mks.com)
CS-RCS for version control (www.componentsoftware.com)

Colin Davies
Wednesday, March 13, 2002

I completely agree with EditPlus.
I also regularly use DJGPP's Bash for Windows.  Tab completion is just too handy to ever use DOS.
And TortoiseCVS.  It's a CVS extension for Windows Explorer that modifies the icons to indicate the status of a file reletive to the CVS tree and lets you do all your CVS stuff with context menus.

Michael Chansky
Thursday, March 14, 2002

RE: Regular Expression Building Tools

In (X)Emacs, there is a tool called re-builder.el.  It "provides immediate visual feedback about how well the regexp behaves to your expectations on the intended data."

Here's one link:

http://groups.google.com/groups?selm=87puv66dxt.fsf%40magrathea.outer.space.org

and here's another:

http://www.emacswiki.org/cgi-bin/wiki.pl?search=ReBuilder

Doug Alcorn
Thursday, March 14, 2002

Rather than using MKS Toolkit or DJGPP's bash, I've had lots of luck with Cygwin.  Very nice.  The X Server also works, which saves a lot of money vs. Exceed.

Mike G.
Thursday, March 14, 2002

You can actually get some command-completion in the Windows NT/2K command processor. See http://support.microsoft.com/default.aspx?scid=kb;en-us;Q244407&SD=MSKB& . Still a far cry from bash, of course.

Mike Gunderloy
Thursday, March 14, 2002

I downloaded and tried TreePad Plus after seeing it mentioned in this thread.  What a fantastic tool, thanks for the recommendations!

Sonny
Friday, March 15, 2002

Four Windows tools I can't live without:
1. TopDesk from Snadboy.  Freeware. It allows access to desktop icons underneath all the open windows.  Currently a little hard to download.  http://www.snadboy.com lists an email address to ask for a copy.
2. VIM.  Vi editor improved.  http://www.vim.org
3. Cygwin utlities. (Mentioned by others). grep, tail, other Unix commands. http://www.cygwin.com
4. Flashdesktops from http://www.flashdesktops.com
Flashdesktops  ($25) is a virtual desktop manager that allows quick switching between screens.  I setup all the business screens (Word, email, etc.) on one screen, compilers on another, applications on another, etc.

Glade Warner
Friday, March 15, 2002

<a href="http://www.intellij.com">IntelliJ</a> is a great Java IDE. It has some wonderful refactorings built in. Great auto-completion, class-browsing, and live templates (macros for doing common things like iterating over an array). It also has a local mini source-repository built in (in the beta version) There's support for ANT and a couple different source repositories.

Roman Zabicki
Saturday, March 16, 2002

My own favorite programs include:
- Windows Commander (http://www.ghisler.com/)
- Namo WebEditor (http://www.namo.com/; fantastic WYSIWYG editor)
- Opera as my web browser (http://www.opera.com/)
- FreeAgent as my news reader (http://www.forteinc.com/)
- UltraEdit (http://www.ultraedit.com/)
- WebCopier offline browser (http://www.maximumsoft.com/)
- CRT and SecureCRT for telnet/ssh access (http://www.vandyke.com/)
- CD Labeller (http://www.ziplabel.com/)
- SmartDrawer (http://www.smartdraw.com/)
- LotusOrganizer as my PIM (http://www.lotus.com/organizer)
- FileCompare (http://www.oneysoft.com/)
- WorldTimeClock (great if you work with teams in different parts of the world; http://www.programming.de/)
- ActionOutline (http://gpsoft.hypermart.net/)

My ¥.2
Fred.

Frederic Faure
Sunday, March 17, 2002

Just wanted to second the mention
of UltraEdit. A great text editor.
Bonus: handles hex.

Stan Krute
Monday, March 18, 2002

I wonder if someone will still read this (looks a pretty old topic), but I've seen nobody mention some of my favorite programs, so here I am:
- text editor: I tried TextPad, I tried UltraEdit, I tried GVim. They all sucked. Either too much useless cruft, or too much to configure. I was about to give up. Then, I discovered SciTE (Scintilla Test Editor). Words alone can't describe its beauty. Unlike most editors, and unlike *any* cross-platform app (SciTE runs on Linux too), it *just works*. You'll feel like you've always used it. Ctrl+del deletes the word at the right of the cursor, Alt+drag selects text in multi-line rectangles, even the ancient Ctrl+Ins / Shift+Ins / Shift+Del / Alt+Backspace work just like you would expect. Best learning curve I've ever experienced. Download and test it by yourself: http://www.scintilla.org/SciTE.html (did I mention that it does syntax highlighting, code folding, paren matching, and has builtin ctags and grep?)
- the Unix tools for NT: http://www2.informatik.tu-muenchen.de/pub/sw/UnxUtils.html . grep, gzip, bzip2, find, diff, less, sed, and many, many more. Win32 apps, no stinkin' emulation layers. It even includes a (barely functional, alas) shell, a quite good one too (zsh)
- 4NT, an advanced command interpreter fully compatible with DOS command and NT cmd. I can't imagine doing anything without it. Worth its $70: http://www.jpsoft.com/
- all the free utilities by Mark Russinovich, without exception, at http://www.sysinternals.com/
- phpMyAdmin: web based administration interface for MySQL databases. Requires PHP 4 and a web server (don't waste time with IIS, get Apache for this). URL: http://phpmyadmin.sourceforge.net/ (actually, I'm using it only waiting for MyCC - http://www.mysql.com/ - to reach at least beta stage)
- TortoiseCVS. Yeah, right, command line is powerful, flexible, blah blah blah. Or maybe all the GUI programs you've used just plain suck. TortoiseCVS is a shell extension that nicely integrates CVS into Explorer, so that you can use the familiar icon / context menu / property sheet concepts to control CVS source trees. Sounds clumsy? odd? wait until you use it! http://www.tortoisecvs.org/
- Steve P. Miller's Dependency Walker: http://www.dependencywalker.com/ . One word: invaluable

KJK::Hyperion
Monday, March 18, 2002

There are some interesting studies showing that the tools programmers do use are not always the tools they should use.

Grep for example is very frequently used for code comprehension (which is a task programmers spend a considerable amount of time on daily), but unfortunately grep is not the right tool for this job.

A very interesting paper:
http://www.site.uottawa.ca/~tcl/papers/Cascon/Cascon97MergedPages.html

More pointers (and info about a different kind of tool for code comprehension, produced by my company) is here:

http://infotectonica.com/juliet/tour/

Carlo Walentiny
Tuesday, March 19, 2002

to create help files and/or documentation use Help&Manual http://www.helpandmanual.com/ . Write once, create pdf, dok, hlp, html.

volkmar
Friday, October 03, 2003

Visual Assist X is great for visual studio developers 6.0 or .NET 2003
Ultraedit for text editting.

A great one for tail is baretail

bob
Monday, June 21, 2004

*  Recent Topics

*  Fog Creek Home