Category Archives: Technology

List of code development tools

Being a professional developer for 24 years you pick up a few tools on the way, tools that help the development process, I got used to some of the tools, that I’m not planning to replace them, even if the competition is better.

I’m a C++ developer, and lately, I’ve been doing some PHP, so this list is geared mostly at C++, it’s possible that if I were a Java or Python programmer, the list would have been different.

I’m using Visual Studio for Windows, and GCC for Linux. I don’t think those tools need any introduction or review, so I’ll dive into the other tools I use.

Programming add-ons

Programming add-ons are plugins for Visual Studio that helps you write code, make your writing more efficient.

Visual Assist

Visual Assist Console

I work with Visual Assist for 16 years, and this is my number one tool. I use it mostly for navigating between functions define and implementation, the dropdown options when selecting variables and switching between .cpp file and .h file, and finding references to who calls a function.

It’s possible that Visual Studio already does it all, doesn’t matter to me, I work with them.

Pros:

  • Works on all Visual Studio versions
  • Fair pricing

Cons:

  • If working on unsupported language (for example PHP), then copy-paste log is not available

Build tools

Build tools are tools that help the build process, I used to build 50-100 versions at a time, each version with different Visual Studio, different features and I needed a software to help me manage it.

Visual Build

Visual Build Screenshot

Visual build is a software that is used to build scripts; in my case, it was build scripts. It’s drag and drop and supports most development tools. It also allows to download files, do file manipulation. It contains VB script support and some limited programming.

For me, I couldn’t manage the build process without it.

Pros:

  • Flexible
  • Easy to use

Cons:

  • May forced to buy an upgrade for new VS version

File editing tool

Sometimes you need to inspect files, may it be your input or output, and sometimes Notepad++ or Notepad just don’t cut it.

Ultraedit

UltraEdit Screenshot

Ultraedit offers an editor that can open big files, and since I have to inspect big files over 1G, I need special software to do it. Ultraedit has more features, and I don’t use any of them.

Pros:

  • Can open big files

Cons:

  • Crashes a lot
  • Slow

HDD Hex Editor Neo

HDD Hex Editor Screenshot

HDD Hex Editor Neo is a software to inspect and edit hex files, it has a free and paid version, and it’s easy to use. I don’t use it often, but when I need it, I need it.

Pros:

  • Has a free version
  • Easy to use

Cons:

  • Sometimes search selection is messed up and needs to restart the app

Source control

Source control is a must for any programmer, or programming team, on top of being a backup it allows to diff files to see what changed, this is especially helpful to track new bugs that weren’t around in the previous version.

Vault

SourceGear Vault Screenshot

The first source control I used was Visual Source Safe, which at the time was unreliable. Here comes Vault to the rescue; it has the same interface, but is very reliable. I know Microsoft has fixed their source control with Team Foundation, but I already have a solution.

Also, I was never a fan of Git, so I’m pleased with this.

Pros:

  • Reliable
  • Has a free version

Cons:

  • Backend/Frontend are Windows-based
  • SQLServer backend

Virtual machine

When I developed apps, I had to test them on various Windows flavours. Also, I had to revert the machine after each install to make sure I start fresh.

VMWare Workstation

VMWare Workstation Screenshot

VMWare Workstation is a desktop virtualization tools that enabled to install most operating systems that will work in parallel with the current OS. Each OS is isolated from the main OS, which adds to security.

I tried to use some free similar apps, but it’s just not the same.

Pros:

  • Reliable
  • Easy to use

Cons:

  • Needs to buy an upgrade license every two years
  • Dropped support for old CPU

Writing tools

As a developer, you need to write documents, and it can be an email, a spec, or a blog post just like this. Today basic spelling test just doesn’t cut it.

Grammarly

Grammarly is an add-on to Word, Chrome and Outlook that allows you to refine your writing, after setting the goal it recommends how to improve/fix your writing. The add-on inspects each word in the context of the paragraphs, and that’s the way it beats traditional spell checker.

Pros:

  • Easy to use
  • Has many add-ons

Cons:

  • Has mistakes from time to time
  • Check privacy policy

Proxies and VPNs

When developing a network app, you may want to test it from different locations and with different network quality to make sure that the app that works on the corporate LAN will work just as well with unreliable mobile connection.

The most significant difference between a proxy service and a VPN that with the proxy you get an IP and a port to connect to, with VPN it installs a client that automatically intercepts all your connections.

NordVPN

NordVPN is one of the leading VPN vendors, and it supports many locations and OS. Use the most remote location to test how your app handles latency and slower speeds.

Pros:

  • Supports many locations
  • Supports many OS

Cons:

  • Cheaper options available

Storm Proxies

Storm proxies offer residential and data centre proxies since it uses a back connect method, which means you connect to a single server. It connects to the actual proxy, it can make the connection less stable, and it’s the perfect settings for your app.

Pros:

  • Affordable

Cons:

  • Old UI

How to intercept data on Internet

How to intercept data on Internet? This can be done using number of technologies:

  • Winsock LSP – Is good when you want to operate at user level and inspect streams and not packets.
  • TDI – Soon to be phased out, it’s a driver like technology that can be used either in packet or stream level.
  • NDIS – Kernel driver that inspects packets and has total control over the network.
  • WFP – Microsoft new filterting platform, but until Windows XP is phased out, I forsee it will not gain momentum.

Barak

HTTP Filtering SDK

HTTP Filtering SDK is needed when you want to filter/modify HTTP traffic. The challenge when trying to modify HTTP is that you first need to remove all the HTTP encodings like GZIP, Inflate, SDCH, Chunked transfer and more.

Once you removed the encodings you also need to adjust the headers so the browser will know how to interpert the new encodings.

Barak

Intercepting network traffic

Intercepting network traffic is a method which is used to transparently redirect the network traffic in order to accomplish various common tasks like:

  • Parental control.
  • Anonymizers.
  • Spam filtering.

There are number of ways and technology to achieve it, I think one of the easiest way which is the cheapest in the long run is to use our Network interception SDK.

Barak

Hooking Winsock

Hooking Winsock is one way to allow the programmer to intercept Winsock2 calls, this way has advantages and disadvantages. Advantages:

  • No need to install anything.
  • Easy to learn.

Disadvantages:

  • For commercial products requires a commercial hooking library.
  • For 64bit there’s only Microsoft Detours which costs a small fortune.
  • On Vista and above you have to deal with injection security enforcement.

Barak

Internet Explorer sniffer

Download our free Internet Explorer sniffer which is a useful tool for various tasks ranging from debugging your application to debugging web sites. Other Internet explorer sniffers can come with or without SSL/HTTPS decryption support, it can be Open source, or propietary.

Which to use? this is not an easy question to answer because the sniffer choice is really a combination or needs, budget and deployment environment. For example: you can’t use a GPL sniffer like Wireshark for a commercial application, but buying a SDK just to sniff a normal website for a one time debug isn’t making sense as well.

Barak