The Curly Braces Applications for Linux

My tools on Linux

Update 2016-01-16

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.

Name Type Link
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
Meld Mergetool Link
Remmina GTK RDP Client Link
Tomboy Note Taking App Link
GMTP MTP Client Link
GIMP Image manipulation Link

Integrated Development Environment

Eclipse

Update 2015-10-23 - I'm now using VSCode to develop Node.JS applications.

Linkhttps://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.

Netbeans

Linkhttps://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.

Database

Dbeaver

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.

MySQL WorkBench

Linkhttp://www.mysql.com/products/workbench/
Cross platform.

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

Dia

Link - http://dia-installer.de/
Cross platform.

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.

Testing

SoapUI

Link - http://www.soapui.org/
Cross platform.

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.

Miscelleanous

Tilda

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.

Meld

Linkhttp://meldmerge.org/
Type - Merge-tool
Cross platform

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.

It has a help guide and this video should get you started.

Remmina

Linkhttp://remmina.sourceforge.net/
Type - Remote Desktop Client
Cross Platform

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.

Tomboy

Linkhttps://wiki.gnome.org/Apps/Tomboy
Type - Note taking application.
Cross Platform

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.

  1. Save certain notebooks in a different location so I can avoid syncing all my notes to my office PC.
  2. Markdown support.

GMTP

Linkhttp://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.

GIMP

Linkhttp://www.gimp.org/
Type - Image manipulation
Cross Platform

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.

My Crunchbang setup

Update 2016-01-16

Development of Crunchbang has now stopped. There are a few community spin-offs available, Bunsen Labs and Crunchbang++. Although most of what's been written here should be applicable to these distributions, it hasn't been tested. 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.


For the past year and a half, I've been working primarily on Microsoft's stack – C#.NET, ASP.NET Web Forms, HTML, CSS, JavaScript (jQuery primarily). My company recently started taking up projects on open source software such as PHP, WordPress and Android. This gave me an opportunity to shift to Linux again. I've always been fond of Linux. The ability to customize and fine tune your system to just the way you like it gives me a sense of freedom and power.

Last Friday, I installed Crunchbang. It is a Linux distribution derived from Debian. The purpose of this post is to outline the various steps I followed to get Crunchbang ready for use. I can then refer to this post whenever I'm setting up my system again, or helping someone else set up theirs.

Hardware Configuration

I'll start of with my computer specifications first. This might help people with similar hardware configuration to find a solution to their problems.

Name Configuration
Processor Intel i5-4570 CPU @ 3.20GHz
Motherboard Gigabyte H87M-D3H
RAM 6.00 GB RAM
Video Card MSI HD 7850 Hawk
Monitor(s) Philips 190VW (1440 X 900) Dell S2240L (1920 x 1080)

System Update

Once Crunchbang is installed and you boot up for the first time a handy script starts up that allows you to update your system and installed software. This script can be invoked later on as well by running cb-welcome command on the terminal.

Installing LAMP and Java

Follow the script and install Java and the LAMP stack. It is also possible to install – Git, SVN and drivers for printer.

Installing AMD Proprietary Driver

After the script has finished, it's time to install the graphics driver.

I followed the manual method outlined in this post on the Crunchbang forums. I tried using smxi to do it for me, but I think it was having trouble disabling the default Radeon drivers. Follow the exact steps, and reboot whenever advised.

Setup dual monitors in AMD CCC

Okay, so driver installation is over. It's time to set up dual monitors. By default, after you've installed Crunchbang on a system that has dual monitors and an AMD graphics card, the monitors will duplicate each other. Once you've installed the driver you can change that setting. Fire up the AMD Catalyst Control Center by running amdcccle command on the terminal.

Change the mode to extend the display to two monitors rather than duplicate the display -

Multiple Monitors in AMD CCC

Placing monitors in the correct order (left or right of each other) is as simple as dragging them into place. You can also change the resolution from this screen.

Another problem that people with DELL S2240L and AMD cards will have that the display on the monitor won't re-size to fit the entire screen. The fix for that is  available through CCC -

Dell S2240L Overscan Correction

Note that the CCC makes changes to the xorg.conf file in /etc/X11. If you don't want to make these changes everytime you reinstall Crunchbang, just backup that file.

Installing Logitech Wireless Driver

I have a wireless Logitech keyboard. With the new motherboard the keyboard is not auto detected by Crunchbang. Installing the driver found here and then restarting resolves the issue.

Boot Error : platform-microcode : intel-ucode ... (not found?)

If you are running new Intel hardware, the following error -

platform microcode: firmware: agent aborted loading intel-ucode/06-1a-05 (not found?)

seems to pop up during boot. It's basically harmless, but can be fixed by installing intel-microcode using APT.

Un-install Software

gFTP
Transmission
Gnumeric
VLC Media Player
Abiword

Install Software

Following is a list of software I install after installing #!

Deluge

Torrent client

sudo apt-get install deluge  

Clementine

Music player

sudo apt-get install clementine  

Dropbox

Use existing #! script, under the Openbox menu, Networking tab.

MPlayer

Video player

sudo apt-get install mplayer  

Then change add the following to the ~/.mplayer/config -

#Volume softvol=1 softvol-max=400

This raises the max volume to 400%.

Artha

Dictionary

sudo apt-get install artha  

Google Chrome

Use existing #! script, under the Openbox menu, Networking tab.

Flux

Monitor screen color manager

I know the above line, doesn't make it sound very exciting, but you really should give flux a go.

  • Grab the binary from here. That's the xflux daemon (command line, but for X-Windows).
  • Add the following line to Openbox autostart file to start xflux daemon on system startup.
# l – latitude, g - longitude
xflux -l 17.4 -g 78.5  

Netbeans

Development IDE for PHP

Grab the installer from here

Code::Blocks

C / C++ Editor

Grab the .deb from here

OpenOffice

Grab the .deb installation files from here
Run the following commands one after the other -

sudo dpkg -i *.deb  
cd desktop-integration  
sudo dpkg -i *.deb``  

Customize Startup and Openbox Menu

autostart.sh determines the applications to be run at start-up and menu.xml defines the layout of the Openbox menu.

Here is my current autostart.sh file and here is my menu.xml.

Customize Conky and Tint2

Conky is basically a system monitor software for the X Window System. It can be extend via plugins and can be customized to show things such as weather.

Tint2 is a task-bar designed to be simple and lightweight. Here's my tint2 config file.

My Conky configuration can be found here. The result -

Conky Screenshot

That's it. That's all I do once Crunchbang has been installed. It took me about four hours hours, but with this post as a reference, next time I should be able to reduce that time to about an hour.

Crunchbang is wonderful distribution that is minimalist, fast, stable and extremely customizable. It runs very well on old and new hardware. They have a helpful and friendly community. So, if you are looking for a new Linux distribution to try out, do give Crunchbang a test drive.

  1. List of software that can be installed using APT on !#.