views:

5003

answers:

66

What tools do you use that may be considered rare in that aspect that you have only seen a few people use it? It may be any tool that may be valuable for programmers.

I myself use UPX on occasions.

+37  A: 

Common Lisp.

An elegant weapon. For a more ... civilized age.

Also see:

Mikael Jansson
Just so that nobody missed the reference: http://xkcd.com/297/
ojrac
+3  A: 

I often need to implement communication protocols. DockLight is a great tool for testing and debugging communication. It targets serial communication (RS232,RS485), but it's also nice when doing TCP/UDP stuff.

http://www.docklight.de/

mliesen
thanks, will check this out!
pmlarocque
A: 

XML Explorer. Lightweight XML file viewer (.NET/Windows only). Includes copying of formatted XML data, evaluation of XPath expressions, and XSD schema validation.

David Basarab
+1  A: 

Once upon a time I had to use Avenue, finding later her son, AVPython.

Vinko Vrsalovic
+10  A: 

Internet Explorer 6.0

(Ok, it isn't rare, but it should be)

Andre Bossard
You still use it?
Kevin
The company I work for still considers it the standard browser. :(
Kyralessa
I also use Lynx, though is not a programming tool per se. Best way to browse the tubes at the office
Ubersoldat
I find that w3m is pretty good too, as an alternative to Lynx.
jparanich
Let me guess, did you loose a few billions when your IE6 crashed ?
Arkapravo
"a few billions" of what? I already lost billions of microseconds, that I could spent with sitting outside in the sun, or having a good time with my wife instead of mingling with IE 6.
Andre Bossard
+5  A: 

I am using PL/Scheme to write procedures stored in PostgreSQL in Scheme. Most of my project is in Common Lisp, and Scheme allows me to minimize the cost of context switching. Of course, I would prefer to have Common Lisp as the PL, but nothing like that exists (yet, I hope). Curiously, it feels like Guile is a bit faster than PL/Python (though I don't have any real proofs for that).

Ryszard Szopa
+9  A: 

PowerBuilder IDE

Igor Drincic
A tool that shouldn't have become so rare.
David G
Indeed, DataWindow is just remarkable :)
Igor Drincic
Me, too. It's still a great tool for prototyping, working with databases, and doing quick reports. It has saved my butt more than once when the boss needed something done in a hurry.
Mike
Isn't the Datawindow in fact just what Linq is now trying to emulate, 15 years late?
Vincent Buck
I still wake up screaming from nightmares of trying to maintain PowerBuilder code.
Chip Uni
@Chip Uni - I wish I could upvote you more :<
glasnt
+1  A: 

We have a part of our build script that is written using AWK / SED to generate some static content pages for our application. There is talk of migrating this to Ruby/ERB but it just hasn't happened.

MikeJ
+14  A: 

I use Paint for graphics.

MusiGenesis
Yuck! Use Paint.NET instead.
Kevin
Paint.NET is not rare. Using Paint makes me feel sort of Amish.
MusiGenesis
i've used it for scientific publications hahahaha
Casey
Paint.net come on man!
Dead account
@Ian: I've always wanted to write my own graphics editing program, but if I ever tried I would probably get about as far as Paint, so it seems more efficient to just use Paint.
MusiGenesis
Paint is good for trying to get screenshots into usable formats, and for basic image manipulation. Plus, it's one of the only image manipulation formats that is guaranteed to be on a work machine.
glasnt
+33  A: 
VonC
+1  A: 

Objconv

I use it to translate object file compiled with GCC to the VS.NET C++ world. Also works great help when porting GCC inline-assembler to VS.NET (It does the ATT style to Intel style).

Nils Pipenbrinck
this? http://www.agner.org/optimize/#objconv ...seems to be a great site too
epatel
+3  A: 

SETL.

Great for topological sorting and similar algorithms if you want to invoke them from shell scripts.

Example (similar to unix tsort)

tokens := [t in split(getfile(stdin), '[ \t\r\n]+') | t /= ''];
edges := {[tokens(i-1), tokens(i)]: i in {2, 4 .. #tokens}};
nodes := domain edges + range edges;
(while exists x in nodes | x notin range edges)
  print(x);
  nodes less:= x;
  edges lessf:= x;
end;
finnw
A: 

One rare tool I have used is Ebase Designer and Ebase Application server which is used for building electronic form applications. I have only ever seen it used in UK local government though I know some private sector companies use it.

It's a great tool for chucking together an online form quickly, though you never see any job listings that want this as a skill.

+15  A: 

I like to use UnxUtils for some good old Unix command-line tools on Windows. (Some people prefer cygwin, but that never did it for me.)

Alan Hensel
+1. These are native Win32 ports based on MSVCRT.DLL. On Windows these play nicely with native paths and therefore native windows tools. If I wan (for example) sed in a back-end win32 process, the UnixUtils one tends to be better than cygwin.
ConcernedOfTunbridgeWells
+7  A: 

Code generation with a twist -- I've got my own set of macros (Common Lisp) that generate all of my data access layer (stored procedures, DTOs,) output entirely in C# / VB.NET.

Phil Bennett
+4  A: 

Agent Ransack - for a grep-like tool with a nice UI on Windows - http://www.mythicsoft.com/agentransack/

and

CS-Diff - for a free Diff tool with a nice diff display - http://www.componentsoftware.com/products/CSDiff/index.htm

torial
CS-Diff? WinMerge is so much better -- seriously!
Kevin
Must be taste, at least when I was picking diff tools, WinMerge seemed clunky -- but that was years ago. I've used BeyondCompare for one project (it was the Customer's) and find it very good. Just haven't seen a need ot jump the WinMerge bandwagon, sorry.
torial
I recommend http://tortoisesvn.tigris.org/TortoiseMerge.html over both CS-Diff and WinMerge but it's, as usual, a matter of taste.
Jonas Elfström
I ended up settling on KDiff3 right now, for power sake. Comparing 3 folders or files is very nice. Although I miss the UI of CS-Diff, so I will probably install it for more niche cases.
torial
+1 for AgentRansack. So much faster to search for files than the windows search.
Mads Hansen
+23  A: 

I use Richard Feynman.

Seriously. He used to advise that until you can explain something to a child, you don't really understand it. Exaggerated, but the principle is true.

If you cannot explain the "why" of your code to another person, you will be kicking yourself 6 months from now when you must maintain it. Or when the maintenance programmer breaks into your home with a knife clenched between his teeth.

pookleblinky
Richard Feynman: tales of heroic nerddom
Rick Minerich
"Explain to a child" is a great idea. I was discussing this just the other day with, as it happens, my child. I pointed out to him that any experts he encounters will be able to boil down the essence of their field into a handful of fundamentals, understandable by almost anyone.
iii
+23  A: 

AWK - for lots of data processing tasks it is just the right level of abstraction - more powerful than sed, less work (and learning curve) than Perl.

Leigh Caldwell
I wonder sometimes if I am the only soul alive still using AWK or knowing what it is. I still have my o'reilly book on awk/sed on my shelf and the kids on my team come in and stare at its age from time to time.
MikeJ
I still use awk on occasion.
ConcernedOfTunbridgeWells
awk isn't really rare, it's pretty wide spread where I work.
André
Perfect tool to use with find.
Ubersoldat
I love me some awk.
JUST MY correct OPINION
+5  A: 

I use Joe's own editor for quick and simple edits. I haven't met anyone else who uses it, although it seems to have a large user base.

neu242
A couple of my co-workers use that for all their work.
mabwi
Do too, great editor, love the ancient Wordstar keystrokes. I install it on every linux machine I come in contact to.
squelart
+1 joeI know how to use vi, but I learnt joe in University about 10 years ago and I always use it on the terminal if I can install it. Administrators know I'll be happy if it's installed.
alex
Lately I have dropped joe in favour of vi. It was really just a practical desicion: Vi is available everywhere, and it's fantastically useful as long as I use it regularily. I previously only used it once in awhile, which was too seldom to remember all the useful keystrokes.
neu242
+1  A: 

I am currently writing an interpreter for a DSL we are using, the parser is written using QLALR a parser generator

Harald Scheirich
+20  A: 

graphviz as an aid for visually understanding complex dependencies among modules, classes, packages etc.

Ricardo Cabral
Graphviz saved me in many situations!
Kknd
Graphviz nearly counts as mainstream, judging by the number of people who recognise it - I gave a presentation on Agile Documentation including it and had about 15% of the audience already using or familiar with it.
Andy Dent
+5  A: 

Of course, something I think is rare can actually be used by lot of programmers! Stuff I use and don't see my co-workers using:

  • SQuirreL SQL Client is still my tool of choice to access various databases, even after trying some others.

  • AutoHotkey isn't a very nice language (although it came from a long way) but it is very convenient to do a quick tool with GUI. I made an uninstall tool with it, a little form to fill a database table (using Oracle's command line tools), etc. Plus its management of hotkeys is just excellent.

  • Lot of other tools, like the Sysinternals' ones, Wireshark (not so rare, actually), etc.

PhiLho
Love SQuirreL. My life changed the day I found it.
Ubersoldat
+3  A: 

Libero for generating Finite State Machines. And it never occurred to me, that AWK or Graphviz are supposed to be exotic...

pklausner
+4  A: 

Screen Ruler is great for any kind of visual development where you want to count how many pixels high or wide something is.

Bare Tail is a 'tail' replacement for Windows that is great for monitoring log files. It's GUI-based and lets you assign filters to colorize log output (E.g. red text for Exceptions, light grey on white for debug output you want to ignore).

KC Baltz
+5  A: 

Spin

Great for finding concurrency issues in multithreaded or multitasked applications.

mkClark
+15  A: 
bmdhacks
That's looked cool!
m3rLinEz
I would love one of those and pay good money if i found one for sale.
Tim Matthews
They're a lot bigger that that picture looks at first glance - it isn't just a fat version of the normal PS2
frou
Are these supposed to be rediculously hard to code for? That's what i've always heard anyway. Would love to own one to have a play around with.
Dan Harris
+6  A: 

I don't feel entirely comfortable calling them 'rare', but I've installed packages from the gnuwin32 toolset as I need them, and as a result have pretty much the whole lot installed now. It seems to be unusual among my coworkers to use command-line tools but they are utterly brilliant for some problems - for example AWK for mass manipulation of text data (which tends to come up frequently in this job).

Peter
+12  A: 

Brains. They shouldn't be rare, but judging from much of the code I've seen, they are. :-(

Sherm Pendley
+5  A: 

I use WinHex and IDA Pro occasionally.

  • WinHex to inspect disk images and (currently) to dissect Smart Card APDUs collected with an USB Sniffer.
  • IDA Pro to disassemble BIOSes and other low-level code such as boot loaders and other pre-boot software.
Jonas Gulle
IDA pro is a very nice tool
Tom Leys
+10  A: 

I use SciTE as a lightweight cross-platform text editor. It has one feature that I love very much - changing font size from the keyboard. It's very handy for me to set a small font for huge log files and a big font just by pressing Ctrl+"+", Ctrl+"-".

Sergey
FYI on Mac OSX this is standard for nearly every application. I routinely blow up a terminal window to show a co-worker, or blow up a notepad to relieve eye-strain.
Karl
@Karl, interesting.
Sergey
Scite is wonderful ! .... and I still do not know why people go ga-ga for Eclipse ? !
Arkapravo
+8  A: 

I use OllyDbg quite a bit for debugging, reverse-engineering, analyzing and tweaking assembly language code.

Gerald
+6  A: 

I use:

Common Lisp/CLOS for programming - I was exposed to Lisp in the 1980's, been through ObjectPascal (MacApp), C/C++, Java, Perl, Python, etc. but I always return to Common Lisp because it's so much more productive.

Allegro Allegroserve/Webactions web server running under screen. I can connect to the running process and compile in new Common Lisp functions at any time.

LaTeX for documentation - I live in Emacs, I write code, mail, browse the web, and write documentation in Emacs.

PostScript for drawings. I used to "draw" pretty hairy illustrations in PostScript. Now I use more PGF/Tikz.

SystemVerilog/VHDL for living...

A: 

For printing out arbitrary text files in multicolumn compressed text, I find that PrintFile is useful and flexible. It does PostScript files nicely too.

le dorfier
+2  A: 

I use an incremental copy program of my own invention on a daily basis and can't figure out why I'm the only one thinks its essential. (That's why I wrote my own: Nobody else seems to have one that works exactly like I need.)

It's like directory diff program, comparing a source and destination directory and showing me which files are newer /older and of different size. It helps me to incrementally copy files, ignoring unchanged files, and preventing me from unintentionally overwriting newer files with older ones.

Kluge
Maybe that's because people use some existing version control systems?
Subversion + TortoiseSVN is one option for doing this from a right-click in Windows. For example, commands like Update will only retrieve the differences to bring the directories up to date, and Switch also uses minimal operations to change between entire versions.
J c
You might like the Unison file synchronizer---it does everything you mention and more. http://www.cis.upenn.edu/~bcpierce/unison/
Norman Ramsey
What's wrong with rsync?
Aaron Digulla
Or robocopy on Windows?
benPearce
It might be a more belt-and-braces approach (hell, he even *made* the belt and braces) and might not be as well put-together as the commercials/established options; but hell, he's learned something interesting from his OS and for his coding. Surely that's worth it in itself. =) +1
David Thomas
Learning something is all well and good but in my experience, the majority of the time the person paying you will not want some custom built tool when something more than adequate already exists.
benPearce
I found something very similar to my incremental copy program: Filesync (fileware.com), except they took it to the next level by adding file diffs and some other neat features. Thanks for all the comments.
Kluge
A: 

Pixie - an 8kb color picker.

J c
+2  A: 

I use xfig for diagram drawing, though mostly not for development but for articles preparation.

Anton Nazarov
A: 

ZTreeWin file/directory manager for Windows. Very useful and very easy to use, there is a menu which shows the keys for various commands. I don't understand why more people don't know about it or use it, it's not free but it is inexpensive.

Rob Kam
+1  A: 

I use Microfocus Cobol 3.

Cesar Romero
A: 

ZtreeWin file manager too - never could warm up to Norton Commander, even in the old DOS days :)

Plus Araxis Merge - a powerful two- or three-way file (contents) AND directory differ and merger - one of the few I know that can diff an ANSI and a UTF-8/UTF-16 file and even make changes to both - excellent stuff, highly recommended.

Cheers! Marc

marc_s
+1  A: 

Script#

erikkallen
+3  A: 

http://www.tu-dresden.de/zih/vampirtrace for tracking down performance problems (sequential,threading,MPI)

Ronny
+16  A: 

I use that rarest and most precious of tools - time.

Sadly, one all too often sees developers jumping right in to coding milliseconds after getting an assignment.h

I would guess 70%+ of the time I spend on a program is up front just ruminating, cogitating, and percolating, with an occasional snippet of code to fiddle with something I'm unsure of.

Makes managers real nervous.

It's not until I know EXACTLY how things are going to be laid out, and KNOW it is the way to go, do I start coding in earnest.

cookre
You're "one of those nerdy organized types who refuses to write code until he's got a spec" (to quote Joel Spolsky, at: http://www.joelonsoftware.com/articles/fog0000000036.html )? Good for you! The next time my program works the way it's meant, or I expect it, to, I'll buy you a beer... =)
David Thomas
Something like that, only the spec is in my head :)
RCIX
A: 

010 Editor whenever I'm doing protocol design or working with binary file formats

Kevin Loney
+2  A: 

XSLT. Most people don't realise it's Turing complete. You can do some clever things transforming Ant build files and generating XML configuration files, and that sort of thing. Nicest thing I did was generating GraphML from an XML version control log.

Draemon
I found XSLT was the perfect tool to create text / XML output from XML files (just as I expected).
Tom Leys
http://code.google.com/p/rb2doxy/ is an XSLT converter for REALbasic source in XML that generates Java class definitions and comments so I can run them through Doxygen. I got a bit obsessed one weekend.
Andy Dent
No XSLT is not turing complete because it does not offer integer numbers. A langauge only working with real numbers is not turing complete. (well in practice it doesn't matter - but in theory it is not).
Lothar
@Lothar: Wrong. Turing machines process an infinite tape of symbols from a finite alphabet. Here is a UTM in XSLT: http://www.unidex.com/turing/utm.htm
Draemon
A: 

gcov for code coverage of c/c++ code

Some time ago I used the KDE Source Code Checker (http://www.englishbreakfastnetwork.org/krazy/) to validate my own Qt-Code.

Ronny
+2  A: 

Com0Com for creating connected virtual serial ports. I can fire up two VMs and use com0com on the host to connect the VM's serial ports together. Great way to test/debug serial port applications all on my workstation without having to break out any hardware.

A: 

I use REALbasic for a lot of stuff. Most developers I talked to have never heard of it, so I guess that qualifies it as rare.

Paul Lefebvre
Nahh, I mention it to people all the time and they recognise it, although I admit most of those who do are Mac people.
Andy Dent
A: 

AppMaker (the original Mac programming tool for drawing interfaces and generating code).

I'm pretty sure I"m one of the few people left on the planet still using it, either for porting code I import from Mac resources or working on legacy AppMaker-based GUIs. I'm in the middle of a classic Mac to WPF rewrite at present, using AppMaker on an old Mac to get the UI regenerated into clean XML.

Andy Dent
Is there a reason you're still using a -presumably, though I don't know the dev-community for Mac OSes- obsolete tool? Does it do something well that others don't? I'm not intending to appear *contentious*, I'm just curious...
David Thomas
Nothing else allows me to easily import old resources and run them through (Ruby) scripts to generate new code/resources.1) As I said, I'm working on a conversion project to WPF where the original GUI was done in AppMaker and I added a XAML generator to port it.2) If I need to port old Mac GUI's based on DLOG or PowerPlant PPob resources I can import them and regenerate them in other formats.3) I'm working on a new version of the tool to generate Cocoa :-)
Andy Dent
+1  A: 

I do code from time to time some snippets in Ada. It's a very nice language.

hyperboreean
A: 

I use Far Manager (a text mode file manager for Windows) a lot. Perfect for creating prototypes in Ruby and any other language that doesn't need a compiler.

vava
How does a file manager help in creating prototypes in Ruby?
Peter Mortensen
Because it is fast, you can easily navigate through directory structure, call rake scripts and it's editor is really good, it has syntax highlighting and simple form of completion. If you need to do something small fast, it just the best tool ever.
vava
+5  A: 

Smalltalk ! (Squeak, GNU Smalltalk, the free edition of Cincom VisualWorks, but mostly Pharo in practice).

Not as old a language as Lisp, but quite fun too :)

Damien Pollet
+7  A: 

Sadly, common sense.

chris
+2  A: 

Cygwin, Dia, joe - not shocking.

Out of the ordinary: Free Pascal using the (Turbo Pascal-like) textmode IDE for "scripting" (quick throwaway programming).

Marco van de Voort
+1  A: 

I use R for statistics.

Silfverstrom
+2  A: 

Unfortunately, my company uses Lotus Notes, and I find myself using Lotus Domino Designer quite a bit.

nmuntz
my condolences, sir
Jeff Atwood
This its not rare, its ugly
Rodrigo
+2  A: 

I used to use "cdecl", a command line tool capable of turning very complex C type declarations into English language descriptions (unsigned char** foo == "A pointer to another pointer which points at unsigned characters"). It could also go the other way, tho I never used that part.

dicroce
+1  A: 

[HumorMode=On] Brains?

A: 

JScript Debug, for tracing JavaScript execution in Internet Explorer.

Vineet Reynolds
A: 

classdump is a very useful tool, for inspecting closed source objective-c frameworks. You can figure out much of the same information using the builtin otool utility, but classdump provides a more convenient interface.

hfsdebug a similarly useful tool for exploring HFS+ filesystems.

cms
+1  A: 

I use a program transformation engine call the DMS Software Reengineering Toolkit capable of specifying programming langauges, and custom program analysis, and mass program changes. I use DMS daily to define/extend the syntax and semantics of various programming langauges, and to build and test tools based on DMS.

Such tools include test coverage, profiling, code obfuscation, duplicated/dead code detection, lanaguage translation, static analysis, ...

DMS is designed so others can do this too.

[Full disclosure: I'm the architect].

Ira Baxter
+1  A: 

I use Dr.Python IDE I personally find it very useful. However fellow Python coders prefer to use text-editors than IDEs , I guess it is 'different blokes, different strokes' !

Arkapravo
A: 

I used khexedit when developing a parser/generator for an unusually complex binary format. it was very pleasant to use. khexedit

Omry
A: 

Total Commander for everything file system related (and more)

SztupY
A: 

Thought. I've found judicious application of this tool saves me hundreds of hours of work. I wish more of my co-workers had used this tool in the past.

JUST MY correct OPINION
A: 

We work quite a lot with VBA, where development interface is really a pity (I guess this is THE reason why most developers stay away from this language). MZ-TOOLS for VBA (there are other version for VBs) saved us hundreds of hours or work, and hundreds of headackes and depressions. It automatically numbers lines, generate error procs, documentation, gives complete search results, etc.

Another most usefull tool, though it is not really a programming tool, is "File Compare Tool", with its command line mode. This allowed us to integrate it in our own source control tool for VBA.

Philippe Grondier