What's in your Utility Toolkit? [closed] - debugging

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Some of the most efficient engineers, developers and IT professionals I know usually carry around a common "toolkit" of useful programs, add-ins or utilities which help them for day-to-day debugging, developing or designing.
The question is:
What is in your utility toolkit.. What tools couldn't you live without?

Unix Utilities for Windows

Ack
Its like grep, but better, faster, and does more what you want to generally do with large source collections. Written in Perl, and does complete PCRE because of this. Recursive traversal is default, and it intelligently skips files that are unlikely to match using file-type identification to short cut.
( This means it automatically avoids traversing .svn/.hg/.git directories and thus gives massive speedups )
ack "function\s+foo\s*\(" --php
# find the definition of "foo" in all php files
# decendant of the current directory

Total Commander (GREP, FTP, ZIP, it's all here...I'm not even starting on this one)
Notepad++
WinMerge

Python. Seriously. I use it for a lot of small stuff. I also like to use the command line module for creating easy little project specific "shells" that I drop in frequently used queries etc. (show all tables in the projects db, search for stored procedures etc. - yeah, doing a lot of t-sql lately...)
I tend to accompany big c#/t-sql projects with a little python script that extends the cmd.Cmd class to give me a small collection of helpful queries etc. that I can use to poke around in the database.
Also, I often use python to modify input data (often csv files, but any junk will do) into insert statements etc. Or do plausibility tests on that data.

Currently on my thumbdrive (not ALL software):
Notepad++
.NET Reflector
develop (incase I need a quick IDE setup on a different computer)
C# Default Keybindings pdf
Math tables pdf
Boo Primer pdf
MSDN C# & VB Example projects

My Utility toolkit would have:
1.) Hex Editor - XVI32, or any other
2.) Beyond Compare - Comparison of files
3.) Cygwin shell installable complete with perl, gcc,gprof,gcov,gdb and related tools,bash,vim, development/debugging tools
4.) A model makefile for *nix platform
5.) Winzip utility
6.) Source insight or any other good code browsing tool
7.) Ghostscript and GSView
8.) PDF reader
9.) Good quick antivirus tool/exe
-AD

Currently in Thumbdrive\Tools.
"Edit Plus 3" - lightweight editor that I've been using for ages.
"F# - 1.9.6.2" - great for when I need to throw something togheter since it's usable without an IDE, also a great language for many tasks.
"ildasm"
"Sysinternal Procmon" - great for debugging and getting a feel for what the machine is really doing.

I have the following tools on my USB thumd drive:
SysInternals Suite All their great troubleshooting tools in one download, in case I might need a tool that I didn't download before
WireShark setup
VNC binaries (so I can run the viewer directly from USB) and setup
A couple of Portable Apps:
Notepad++ Portable
Putty Portable
FileZilla Portable
7-zip Portable
Sumatra PDF Portable
WinMerge Portable

I use/carry with me:
.Net Reflector
The SysInternals
Suite (particularly Process Explorer, Debug View etc)
Exescope
Orca (Windows Installer)
Depends
Spy++ OleView
Resourcer
Ethereal
IE Dev toolbar
Depends .Net
DocView
LDP (For LDAP)
Just to name a few

I do a full install of cygwin. It gives me 95% of the stuff I need and hard drive space is cheep. It's a lot easier to install everything then get emacs, gcc, gdb, perl, utilitys such as grep and awk, not to mention the servers it comes with like Apache and MySQL if you want to try something out quick.

grep gives you the biggest bang for the buck. You can use it to search on any type code and many forms of data. It is fast, and very powerful. In code it can locate what you're looking for in variables and function names, but also in comments. You can also pipe results into it, and can thus enhance the utility of many tools available on site.
With some clever hints you can easily make grep search for a specific type of an identifier. For instance, "^function_name" will often find in C code a function's definition, because these start with the name of the function at the beginning of the line. If a search pattern gives you too many false matches, you can filter those out, by piping the result through grep -v.
Many years ago I was stranded debugging COBOL programs on a 1970s-era Perkin Elmer machine running OS/32. The machine lacked programming tools, but had an ancient C compiler (so old, it would accept =+ as the original form of the += operator). I ended up writing a rudimentary grep program, which immensely improved my productivity.

Notepad ++
FF + Firebug
Jquery + bunch of plugins
DBManager
Cygwin for error tracking
Google for help
Docs in CHM & Cheatsheets

I always seem to have a bootable Linux Distro on me in SOME form or other. Whether it be the bootable Pen Drive I keep attached to my Keys, or the multitude of LiveCDs I have for various "diagnostics" - I find that if I am in a situation, generally, where I'd need some sort of tools... a reboot into a Live environment provides me with near enough everything I need, and more

PE Explorer
FAR Manager (great file manager especially when working with lots of ftp sites)
FlexHex
Ida
OllyDbg

Emacs. It's my "does list of things" tool, helpful with quick calculations, with mangling configuration files (I work as a network engineer, there is an awful lot of configuration to be done, lots of it bordering on trivial to generate with either small snippets of code or careful use of keyboard macros).

Here's the tools I use to make Sharepoint solutions:
Visual Studio Team Suite 2008
VSTS Database Edition GDR
Sandcastle
DocProject for Sandcastle
.net Reflector
GhostDoc
CSS Vista
Sharepoint Inspector
Sharepoint Explorer
EditPadPro
CodeSmith 2.6 Freeware (with my own .net 3.5 SP1 gui)
Indigo Rose MSI Factory
Wix
Nmap
Wireshark
Fiddler
Adobe Photoshop CS3
Expresso (Regex tool)
VMRCPlus
Powershell 2 CTP
Quest PowerGui for Powershell
IIS Resource Kit
HyperV

Tools I use because you do not have to install, just drop on system and use:
Agent Ransack
7-zip
PSPad
Robocopy : Need to extract from Windows 2003 resource kit (just grab the .exe)

Fast image viewer that has been around for a long time and proven to work.
IrfanView

ide: visual studio / netbeans (zip file!, almost portable)
editor: notepad++ (portable) with monaco font
file comparison: winmerge (portable)
source control: subversion, tortoise
ticket control: redmine
file manager: free commander (portable)
explorer: IE, FF (portable), chrome (portable), iron (chrom without google crap, also portable), qtweb, arora,
FF plugins: firebug, web developer, xmarks
imclient: pidgin
mail client: gmail
download manager: free download manager (portable)
sites: STACKOVERFLOW!!!, gotapi... and google, all the time...
miscelaneous: launchy (can't live without it!)
virtualization: virtual box (I have a machine image for every environment)
office: openoffice (portable)
lamp stack: xammp (portable!)
disk usage: windirstat (portable), scanner (portable)
pdf viewer: foxit (portable), sumatrapdf (portable)
uncompressor: 7-zip portable
M$ sql comparison tool: sql delta
M$ sql management: visual studio sql manager
mysql
mysql management: phpmyadmin, manager provided with mysql
uninstaller utility: revo unistaller (portable)
registry cleaner: ccleaner (portable)
ftp: filezilla (portable)
as you may have noticed, I have a special predilection for portable applications...

gVim
VS2010 Express
Firefox + Firebug

System Rescue CD
A collection of very useful utilities on a Live CD

There are two tools I simply can't work without
PowerShell
GVim (or really any vim style program)
These tools are so heavily ingrained into my daily routine and greatly increase my productivity.

Since I'm often working on different workstations, I've got into the habit of tagging the stuff that I install on delicious:
http://delicious.com/DavidSchmitt/stdsw

wc.exe (from http://unxutils.sourceforge.net/) so handy.

WinRAR and puTTY. That is all I need (i'm assuming internet doesn't count).

.Net Reflector
Powershell
Stackoverflow.Com

I like to program in Python so I have created a portable Python programming environment on a thumbdrive.
Portable Python 1.0
SPE Python editor
wxPython in Action ebook
Python How to Program ebook
Several Python ebooks from O'Reilly
Various tutorials for Python tools I don't use often

Development Tools
Subversion
Tortoise SVN
Useful tools/utils
Virtual Cd Control Tool
Linq Pad
Reflector
Subversion Commit Monitor
BGInfo
SourceGear Diff Merge
Unlocker
MWSnap
Paint.NET
WinRar
FireFox Add Ons
Firebug
ColorZilla
Visual Studio Add Ins
GhostDoc

The utility toolkit or the Tools List that every developer should have described in the following link from Scott Hanselman:
Scott Hanselman's Ultimate Developer and Power Users Tool List for Windows

I use Espresso (I got it with the MacHeist bundle!), and Firebug for coding. I use Photoshop if I need any images.
I manage my projects with The Hit List.

Related

What useful developer tools does Windows XP come with?

I work in a pseudo-IT team that does development outside of a formal IT development environment - using Windows XP (and IE6). I can't install any software myself, so can only use what the central IT department makes available - which isn't much.
I have lots of UNIX development experience, so it's painful working without some of the tools I have previously taken for granted.
Notepad is my favorite thing about Windows. What else is there hiding in C:\Windows that I should know about?
Not a great deal, if you're used to the plethora that comes with UNIX. The cmd.exe language has come a long way since the brain-dead version with MS-DOS. It's still no match for bash but it's not bad. Check out Rob Van der Woude's site ("Batch Files" link on the left side) for some fantastic little snippets.
I do know that findstr now does regular expressions so it's at least coming close to grep.
See also this question (which has a couple of answers from me and absolute bucketloads from everyone else) re Windows batch files.
A JavaScript interpreter: cscript / wscript (can also interpret VBScript plus any other language for which a Windows ScriptingHost compliant interpreter is installed)
WordPad: practically useless except for one thing: it can read Unix line endings, unlike NotePad
if you're lucky: PowerShell
Note that plenty of applications are also packaged as so-called portable applications which need no installation: Firefox, NotePad++, even a complete Ubuntu distribution.
ntsd (the Windows NT debugger for user-mode programs - command line stuff, a bit like gdb) was available by default on Windows installations in the system32 directory, although I think that this policy has changed since I can't find it in my Windows 7 64 bit installation.
mmm... not much indeed, besides I think everything that comes out of the box have already been mentioned...
not really answering your question, but I would recommend to use portable software, there's a huge collection of them available, like notepad++, winmerge, grepwin...

Latex plugin for visual studio 2010

I am looking for a latex plugin for Visual Studio 2010 (preferably free) .
Features it must have:
Code folding
Syntax highlighting
AUTOCOMPLETION
Error Handling
I do not think there is anything available for VS.
As an alternative, I use eclipse with the texlipse plugin. It has all of the features on your list. I do not use windows but ubuntu with eclipse, R, MySQL and Sweave is sufficient to cater for all my data connection, management, manipulation, analytical and reporting needs. All the tools listed are available on Windows with sufficient connectivity to SQLserver with RODBC.
I do not think that there's anything that comes close to what you want to do. But as far as I know, you can - in principle - use Visual Studio with any programming language. If you have enough time to configure it properly.
You can create your own LaTeX-specific language service. Moreover, you would have to create own build rules.
But since I think that is too much work, I recommend TeXnicCenter, a freeware program that has syntax highlight, autocompletion and error handling. I'm not sure about code folding, but I think it does not have this.
Another freeware is LEd (LaTeX Editor), that should have all the features you like, but as far as I remember, I was not that happy with code completion.
A good choice for a LaTeX Editor is TeXWorks. You should try it, since there is no LaTeX support for Visual Studio.
Actually I think MS VS has been developed as a programmers 'editor'. Of course it's much more than just an editor, but editing (la)tex files doesn't fit into this model. So it's better not to waste the time and to try other solutions. I suggest open-source Lyx which is available on Linux and Windows (and AFAIK on Mac OS) platforms and easy to use. Just try it while waiting for other (possibly better) answers.
Visual Studio Code with LaTeX extension is available. It is free of charge as well.

Development Environment in Windows [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
What are your recommendations for setting up a development environment in Windows, especially when not using an IDE. I am attempting to familiarize myself with Windows, and I feel a bit lost. What do developers commonly work on, especially when developing in multiple languages (e.g. Java, Python, C) in the same time.
So far, I have been a hardline using Mac+Linux environments where I love my command line a lot. I pretty much run all my compilations, testing, code repository commands in the terminal and have multiple terminals all the time. Terminal features (e.g. integrated bash completion, easy copy&paste, easy to setup environment variables) and package management tools (e.g. apt-get, port, fink) are quite handy. I dislike hunting down different websites to install their latest binary build.
Coming back to my question. My question is two fold:
What's commonly used? Do developers on Windows commonly use command line, or just be satisfied with an IDE?
For comers from Linux/Mac world: what do you recommend to get up to speed?
NOTE: I realize that a lot of Windows developers haven't used Linux, so they may not know what I'm talking about when it comes to Linux environment.
It's almost unheard of to not use an IDE for Windows development.
I started programming in the early 80's so grew up on the command line, but nothing beats a modern IDE for productivity.
By far the most common choice is Visual Studio, though I have also used #develop (open source) and find it a fine platform to get up to speed with.
I have used Eclipse extensively (on Linux and Windows) and find Visual Studio to be easier to use. I especially miss options for debugging under windows such as moving the instruction pointer around during debug and change-and-continue (change the code, within limits, while debugging, move the instruction pointer back if necessary, and keep debugging).
If you have used Eclipse, Visual Studio or #develop will not be that hard to get used to.
I tend to install cygwin, which is a unix emulation layer and includes many of the standard unix utilities (grep, awk, sed, etc). You can use bash or any other unix shell with cygwin to basically give yourself a unix environment on windows.
There are some downsides, paths are a good example. Windows programs expect windows paths while the unix tools expect unix paths. You can convert between the two using the cygpath program, but sometimes its tricky to know when to use it.
Another thing I do fairly often is create a bunch of batch files that load different programs onto my path. This allows me to have different version of say java installed and I can pick the version I want to use for any given shell session. I link a bunch of these together so that I have a full environment for the program I'm working on. For example, if I require java 1.5, maven, subversion then I would have a batch file to load each into the environment, then have a master file that loads all of them for a standard environment.
This approach gives a lot of flexibility and is really easy to maintain and work with different environment simultaneously.
Most windows developers that develop on the microsoft stack of products probably use Visual Studio. For windows development without Visual Studio, SharpDevelop is the current most popular alternative.
However if you are looking for a user experience more similar to linux you can always use windows command prompt and all of the command prompt compilers still exist. Just like with linux you'll have to modify your environmental variables to make everything work you you'd like it to.
If that still isn't close enough to the feel on linux, you can try out Cygwin.
Many of your common utilities from linux like gdb do have windows builds as well.
And of course there is the Eclipse IDE that is used for many languages, by many people, on multiple platforms. It is very extendable.
Some other tools you may be missing:
GCC - Available Via Cygwin
MS Build can give you similar functionality to what you had with make (I'm not sure if nmake is still used/supported)
Vi/Vim
Grep
SysInternals will have lots of various file/process monitoring utilities to hopefully adequately replace what you miss being able to simply get from /proc
Wireshark(or ethereal) to replace well... wireshark/ethereal/
Tail is available in the Windows Resource Kit
Emacs
Hopefully that covers most of your basic tasks.
Microsoft now has a real shell for Windows: Windows PowerShell.
In addition to Cygwin, there are ports for a lot of the GNU utilities and toolchain to Windows. GnuWin32 seems to be a more up-to-date version than UnixUtils. MSYS is essentially a port of BASH to Windows, but it's fairly useless without the MinGW userland.
C++ / .NET Development: Visual Studio 2008
Java / PHP Development: Eclipse IDE, which also supports C/C++.
For a non-IDE solution, Notepad++ is a very good code highlighter that supports many languages.
Simply install cygwin. The quality has improved dramatically in recent years. I'm currently running cygwin x64 on Vista, and it's great.
One thing to especially take note of in cygwin is your path. Most troubleshooting with scripts and installed software should begin there.
The other tip I'd give is to use the rxvt terminal over the standard issue cygwin terminal. It might be installed by default nowadays, but check to make sure.
Visual Studio for .net/C++ (even the express editions are useful)
The sysinternals tools rock, especially Procmon and process explorer.
If you do native/C++ work knowing windbg can be helpful
Notepad++ and gvim are my preferred editors
For doing command line/shell stuff I often use python to write short scripts (for anything but the simplest batch file)
If you are familiar with .net then learning powershell isn't much of a stretch and there is a ton of functionality available

searching VB6 code

I've inherited a ASP/VB6 code base (not my forte... yet) and I'm trying tease it apart to figure out the cause on an error message I'm receiving when running the app.
I've traced it back through an event that is being raised in on of my classes. Is there away in windows I can search the bulk of the code base for where it is being consumed?
Ctrl-F (and selecting Current Project) has not sufficed.
The linux geek in me is saying dump it to a insert distro box and just grep for the sucker. But there's got to be some way in the IDE to do it... right?
But there's got to be some way in the IDE to do it... right?
No. There are some plugins for the IDE, such as the MZ Tools that might help. Otherwise, just use the find tool from the Windows command line. Not nearly as comfortable as using grep, of course.
If you have any new version of VS (2003,5,8) installed, just use the "Find in Files" feature and point it at the VB6 folders.
Other than that, most "notepad" replacements (textpad, notepad+) offer a "Find in Files" as well.
Check out http://www.mztools.com/index.aspx
MZ-Tools 3.0 is a freeware add-in for Visual Basic 6.0, Visual Basic 5.0 and the Visual Basic For Applications editor.
It is essential for anyone still working with VB 6.0
It has an enhanced find feature as well as a calling Procedure similar to .net Find usage.
I have a large legacy code-base in VB6 which needs maintenance from time to time and I have used Microsoft Desktop Search on my local copy to help find variable and method names across the code files.
Also Grep is available for Windows.

Subversion Client-Side application [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Which standalone Windows GUI application do you recommend for use for accessing a Subversion repository?
Edit: A lot of people are mentioning Tortoise, however I am looking for an application not a shell extension. Also people are questioning my reasoning behind not wanting to use a shell extension. In our environment we rather interact with the repository (when not using an IDE plugin) through a management application and not navigate the files through Windows Explorer.
Standalone Clients
For total stand alone Synchro SVN is a powerful and cross platform solution. It looks like the most native application on each of the platforms.
The Subversion website includes a listing of other standalone SVN Clients (most are cross platform). [Copied list below from http://subversion.tigris.org/links.html#clients]
eSvn - cross-platform QT-based GUI frontend to Subversion
http://sourceforge.net/projects/esvn
FSVS - fast subversion command-line client centered around software deployment
http://fsvs.tigris.org/
KDESvn - A Subversion client for KDE
http://www.alwins-world.de/wiki/programs/kdesvn
QSvn - A cross-platform GUI Subversion client
http://ar.oszine.de/projects/qsvn/
RapidSVN - A cross-platform GUI front-end for Subversion
http://rapidsvn.tigris.org/
RSVN - Python script which allows multiple repository-side operations in a single, atomic transaction.
https://opensvn.csie.org/traccgi/rsvn/trac.cgi/wiki
SmartSVN - A cross-platform GUI client for Subversion
(Not open source. Available in a free and a commercial version.)
https://www.smartsvn.com/
Subcommander - A cross-platform Subversion GUI client including a visual text merge tool.
http://subcommander.tigris.org/
SvnX - A Mac OS X Panther GUI client.
http://www.lachoseinteractive.net/en/community/subversion/svnx/
Syncro SVN Client - Cross-platform graphical Subversion client.
(Not open source. Free trial versions available for Mac OS X, Windows and Linux.)
http://www.syncrosvnclient.com
WorkBench - Cross platform software development GUI built on Subversion written in Python
http://pysvn.tigris.org/
Versions - A GUI Subversion client for Mac OS X.
(Not open source; requires commercial license.)
http://www.versionsapp.com/
ZigVersion - a Subversion Interface for Mac OS X. Aims to design an interface around the typical workflows of programmers.
(Note that this is not open source.)
http://zigversion.com/
Integrated Clients
TortoiseSVN is the best general use system [An integrated system is not standalone - Thanks Martin Kenny]. It integrates itself into Windows Explorer (You can use it in explorer or any shell dialog) so it works extremely well and gives you the full power of SVN.
Ankhsvn is a good solution that integrates into Visual Studios (Except Express Editions).
SVN Notifier monitors your repositories and will notify you when anything changes. It integrates with TortoiseSVN to show you diffs and commit logs. Very handy when working in a team environment.
TortoiseSVN
From their website:
A Subversion client, implemented as a windows shell extension.
TortoiseSVN is a really easy to use Revision control / version control
/ source control software for Windows. Since it's not an integration
for a specific IDE you can use it with whatever development tools you
like. TortoiseSVN is free to use. You don't need to get a loan or pay
a full years salary to use it.
You can try to use SmartSVN - https://www.smartsvn.com/
Can you explain why TortoiseSVN doesn't work for you? That would help us figure out what you really need in an application.
Combine TortoiseSVN with Windows Explorer and you've got a great tool, and then pickup VisualSVN if you want something to integrate with Visual Studio.
As a shell extension, I guess it's not technically a stand-alone application, but +1 for TortoiseSVN, nevertheless.
I'd recommend TortoiseSVN to get started with (basically, it adds SVN related contextual menus to explorer), but it can be shockingly memory hungry.
I generally use it when I need to, but also make use of the very clean and usable command line tools subversion comes with and Subclipse as part of Eclipse.
The one and only tortoiseSVN!
It is integrated in Windows Explorer, you invoke it with a right click. All commands are under the TortoiseSVN menu, except for frequently used commands such as update, commit or diff (it's configurable).
For some reason, the SVN proterties are located in a tab in the Properties menu, not in the TortoiseSVN menu. It makes sense, sort of, but it took some time getting used to it.
TortoiseSVN is excellent, but I only realised it was awesome when I moved to a Mac (where Tortoise is not available) and tried to find a decent tool. Nothing comes close.
If you don't like shell extensions TortoiseSVN can be used as an application through its handy automation interface - one executable several command arguements.
See TortoiseSVN Manual
Each command raises a modal dialog for a specific task.
For total stand alone Synchro SVN (60$) is one of the nicest looking and full featured ones. It is cross-platform (Win, Linux, OSX).
I use PHPStorm from JetBrains
It can be used in MAC or WIN PC environment. It has internal subversion/git/mercurial tool.
though you do have to pay for it ($50) they have 30 day fully functional trial.
SmartSVN is nice if you want a client that doesn't integrate with Explorer and is instead a standalone app. (Although I think later version offer an Explorer integration as well.)
Memory and disk IO can be a problem with TSVNCache, which manages Tortoise's icon overlays. You can fix it by putting your checkouts in one or two directories and making the cache process only look at those directories, rather than your entire drive.
See this link for instructions.

Resources