Development of Crunchbang has now stopped. There are a few community spin-offs available, Bunsen Labs and Crunchbang++. I'm now using a netinst version of Debian at home with the i3 window manager, and Bunsen Labs on my office laptop. Both are working well. I'm still using the same set of software for my work, in addition to a few more, so this post is still valid.
I've been using Linux at home and work for over 5 months now. I'm using a Debian based distribution called Crunchbang. Over these past few months I've developed/programmed using multiple technologies and have gathered a collection of tools, that I use on a daily basis.
|Eclipse with NodeEclipse - Check Update||IDE for Node.js||Link|
|Netbeans||IDE for PHP||Link|
|Dbeaver||GUI client for Cassandra and others||Link|
|MySQL Workbench||MySQL/MariaDB GUI client||Link|
|Dia||Flowchart and Diagrams||Link|
|SoapUI||Testing - API and Web Services||Link|
|Tilda||Drop down terminal||Link|
|Remmina||GTK RDP Client||Link|
|Tomboy||Note Taking App||Link|
Integrated Development Environment
Update 2015-10-23 - I'm now using VSCode to develop Node.JS applications.
Link - https://eclipse.org/kepler/
Used for Node.JS. Cross Platform.
For Node.JS, Eclipse with Eclipse Web Tools Platform, EGit and the NodeEclipse plugin work quite well. It supports debugging although you don't have a Visual Studio esque Immediate Window. I'm using EJS as my templating language and with a little configuration I was able to set up Eclipse to highlight an EJS file as an HTML file.
I'm also using the AngularJS Eclipse plugin for my frontend development.
The UI organization in Eclipse is very good. If you are new to Eclipse, you can save yourself some headache by learning about Perspectives.
Link - https://netbeans.org/features/php/
Used for PHP, Cross platform.
For PHP, Netbeans takes the cake. It comes pre-installed with a PHP debugger which can be easily configured by modifying your php.ini file. In addition it has support for Git and SVN out of the box (requires plugins but they come preinstalled). I've added support for AngularJS via a plugin. There isn't much configuration to talk about when it comes to Netbeans, so I'll just leave a few images that should help you setup debugging. I would have liked to use Netbeans for NodeJS as well, but the NodeJS plugin doesn't seem to be actively maintained. I'll probably revisit it again in the future.
Link - http://dbeaver.jkiss.org/
For wide variety of databases. Cross platform.
For one of my recent projects, I've had to work with Cassandra and MariaDB. Dbeaver is a no - nonsense tool that allows me to work with both. The UI is similar to Eclipse (lacks Perspectives). In addition to MariaSQL/MySQL and Cassandra, dbeaver also supports a ton of other database systems.
Link - http://www.mysql.com/products/workbench/
For more advanced stuff related to MariaDB/MySQL I prefer to use MySQLWorkbench. I use it to manage users and permissions. Managing import/export, database configurations is also quite easy. I've also used it to generate beautiful schema diagrams.
Flowchart and Diagrams
Link - http://dia-installer.de/
Drawing flowcharts and other diagrams is easy with Dia. It isn't the prettiest looking software, but it gets the job done. It creates diagrams in the .dia format but these can then be exported into various formats such as transperent PNG and SVG.
Link - http://www.soapui.org/
SoapUI is an API testing tool. I use SoapUI to look at responses from a third party Web Services (both SOAP based or REST). In addition, I also use it to test and load test my REST based APIs and Web Services. You can setup test cases and run these after every deployment.
Here's a video that will help you get started.
Link - https://github.com/lanoxx/tilda
Type - Dropdown Terminal
Linux and Unix only
Tilda is an awesome GTK based dropdown terminal. I have it hooked to the F1 key on my keyboard. Whenever I want to run a quick command, I hit the F1 key and out pops the terminal. You can even open multiple tabs inside it. You can change it's height and width, transperency levels, animation, font, color schemes among other stuff.
Link - http://meldmerge.org/
Type - Merge-tool
Meld is a merge-tool that I use with Git and SVN. It supports three way merging but that requires a bit of tweaking. Meld can also be used to compare files that are not a part of a versioning system.
Link - http://remmina.sourceforge.net/
Type - Remote Desktop Client
I use Remmina to connect to my PC at work, and other Windows systems to test my web applications on a Windows platform and Internet Explorer. It's easy to setup and use. I would urge Windows user to check this software out since it adds some more features on top of the vanilla mstsc application.
Check it out here.
Link - https://wiki.gnome.org/Apps/Tomboy
Type - Note taking application.
Tomboy is a pretty amazing note taking app. I use it along with Dropbox to sync notes between work and home. You can link notes together and notes can be categorized into notebooks. It supports some amount of formatting as well (bold, italics, underline, font size and such). There is also an Android version of the app, but I had trouble getting it to sync with my PC notes via Dropbox.
There are a couple of things I'd like to have though.
- Save certain notebooks in a different location so I can avoid syncing all my notes to my office PC.
- Markdown support.
Link - http://gmtp.sourceforge.net/index.html
Type - MTP Client
Linux and Unix only
When you search on Google, you'll find a lot of people complaining about their Nexus 7's not being detected on Linux. It uses libmtp and allows transfer to and from media devices. It's not very stable, and you have to be "gentle" when you use it, but it gets the job done.
Link - http://www.gimp.org/
Type - Image manipulation
I'm mainly a programmer, so I don't do much image editing but for times when I do need an image editing application, GIMP works well. It's got a slight learning curve, but it comes with the benefit that I can do more "advanced" stuff with it, without having to move to another app. If you are looking for something simpler and more like Windows Paint, I'd recommend giving Pinta a try.
That's it for now. I hope to keep making more posts of this kind as time passes by and I gain more experience with Linux. I'm sure I'll have many more things to share/catalog in the future.