Take out the trash! Unlike Windows, Linux (at least my distro, Mint) doesn’t have a recycling bin/trashcan icon on the desktop to remind you to empty your trash directory once in a while. That really adds up if you forgot to empty your trash for, uh, a while. Technically you can just hunt down your trash directory and delete everything inside it, but do you really want to have to remember the path? And remember how to find it if you delete a file on a USB drive?
trash-cli to the rescue! The terminal command to install it is sudo apt-get install trash-cli (at least on systems with apt-get), and to run it you just type trash-empty. Thanks as usual to stack overflow for that answer.
When I finally ran that on my laptop, I got 3.6gb back. Not bad for under a minute of work :) If you’re new to Linux like me, don’t forget to take out the trash.
If you want to see when you ran a particular command on a linux, you just need to run
HISTTIMEFORMAT="%d/%m/%y %T "
at the command prompt, then the next time you run
you'll have handy timestamps! Thanks as usual to stackoverflow for that answer.
So that's cool and all, but why should you care? Because being systematic is extremely important when you're trying to solve a problem. If you don't know exactly when you changed something, you'll have a rough time figuring out which results were caused by which change. If you don't know which change caused which results, you're effectively stumbling around in a dark room at random, hoping you run into a light switch. Not only is that frustrating, but it's a huge waste of time. Systematically changing one thing, checking on the results, then changing one more thing and checking the results again can seem slow, but in the long run it's much faster than stumbling around and hoping.
Using myself as an example, knowing exactly when I ran a particular command let me compare what I had done with what was showing up in the logs and showed me that it was most likely a combination of two commands I had run rather than a weird delay after the first command that gave me the results I wanted. If I hadn't been able to figure out exactly when I ran each command I would still have no idea which one of them helped.
If you happen to run the Cinnamon desktop on Linux Mint I highly recommend the System Tray Collapsible applet. If you don’t run that exact distro and desktop, this post is going to be really boring for you :)
System Tray Collapsible lets you hide icons in the system tray. It’s probably meant to reduce the space your system tray takes up, but what I use it for is hiding notifications from myself. Slack, for example, adds a little blue dot to it’s tray icon when you have an unread message no matter what your notification settings are. If you’re totally incapable of ignoring a notification like I am, that can get pretty distracting. System Tray Collapsible to the rescue! If you can’t see the icon at all, there’s no blue dot to distract you.
One caveat: it can be tough to get your pointer in just the right place to see the context menu for the applet (which is the only way to tell it which icons to hide) instead of the tray icons inside the applet. Keep trying, it is possible!
Not so long ago, I wrote a post about my first impressions of Linux as a Windows user. A while after that, I booted back into Windows to get some files and oh god Windows is a terrible shock after you’ve gotten used to Linux.
To be fair, my Windows installation at home has fallen prey to the 100% disk usage bug, which means that every reboot I have to patiently wait until task manager deigns to load and I can kill processes until my computer starts working again, so Windows made a perhaps unfairly terrible first impression.
I will, however, blame Windows for their terrible update process. On Linux, I just tell the update manager to go ahead and install whatever updates it found and I go back to work while it takes care of things for me. It’s only been a few weeks, but I forgot how terrible the Windows update process is. Not only does my computer grind to a near halt while it’s installing updates, but it has to restart to finish installing the updates and it’s completely unusable while does that. And after installing the first batch of updates, it’s not unusual to find another batch that depended on the first one and have to go through the whole miserable process all over again. Ugh.
A good 20 minutes of updating later, the problem I was trying to solve (yay 100% disk usage, that’s not inconvenient at all) was still happening and I was sick of screwing around with Windows.
I guess the moral of the story is don’t go back to Windows once you’re used to Linux, it’ll just make you sad.
For Eclipse users new to Linux like me, it can be pretty frustrating when you try to install some updates and Eclipse just tells you “Insufficient access privileges to apply this update.” I don’t know about you, but I run Eclipse as admin on Windows, which should give you some idea what the problem is :) Yep, on Linux you just need to run “sudo eclipse” from the terminal. Thank you stackoverflow. Don’t forget to close Eclipse and restart normally once you’re done updating, running as root will make your sysadmin sad.
Like I mentioned in my last post, I’ve been experimenting with Linux. Somehow I broke my development environment at work and stopped being able to run our whole unit test suite. Well, technically I could run it, but it took a minimum of 40 minutes and a good quarter of the tests failed, so effectively I couldn’t run the test suite at work. Even at home, where I hadn’t broken my environment, it took a good 18-20 minutes to run the whole thing. The other upside of running it at home was that I could tell the tests were finished running when my laptop stopped running its fans like it was trying to lift off. As an aside, if any of my readers just happen to be experts in running the Play Framework on Windows, particularly the test server used for unit tests, I would really love to hear from you. The test suite runs great on Linux, but it really bothers me not to understand why I couldn’t fix it on Windows.
So far, the switch to Linux has been eerily easy. Because I haven’t done much of anything with Linux since I graduated from Camosun in 2006, I was really worried that getting all three of my monitors at work to actually work would be a terrible experience. What actually happened was that my boss offered to give me the script he uses to get all three of his monitors configured, but by the time he got a cup of coffee and came back I had installed the proprietary drivers for my video card and restarted my window manager and everything just worked.
If you normally run Linux that proprietary drivers bit probably gave you pause. I’m running Linux Mint, which I’m told is a good distro for beginners, particularly if you’re used to Windows. It’s also convenient (as are a number of other low-maintenance distros) if you’ve been running Linux for years but you’re just not interested in screwing around getting things working again every time there’s an update.
Mint does not have a policy against including nonfree software, it includes nonfree binary blobs in drivers packaged with the kernel, and it includes nonfree programs in its repositories. It even includes proprietary codecs.
Totally open source and free software is a nice ideal, but I need my shit to work. My job is to build features, not to screw around trying to get stuff working. As much as Mint may offend free as in freedom software purists, it gives me the “one-click and it works” functionality I’m used to. Think of it as a gateway drug if you need to :)
Once I got all of my monitors working, Mint has been extremely easy to work with. My development environment includes java, eclipse, mongo, redis, and the play framework, all of which were incredibly easy to install and get running. Even as a newbie to Linux, I found mongo’s instructions for installing old versions easy to follow. I did hit a little bit of a snag when I discovered that the environment variables in my .profile need to be exported, but that wasn’t difficult to figure out and it was still less of a hassle than setting up environment variables on Windows.
With everything set up, our entire unit test suite runs in in less than half the time it takes on Windows and Eclipse starts much faster too. So far the minor inconvenience of installing Linux has been far outweighed by being able to run the stuff I need to.
And the inconveniences have been incredibly minor. I needed to install a driver to get all of my monitors working, and I found and installed Gnome Do because I can’t deal without a SlickRun alternative, and I’m still looking for an email/calendar client I really like (right now I’m trying Geary, which is okay but I’m not in love with it), but overall switching to Linux from Windows has largely been a non-issue.
Installing Mint on my laptop (an Alienware 17″ with a GeForce GTX 860M that came with Win 8.1) did kinda suck, to be fair. I had to mess around with my harddrive partitions a bit and it didn’t want to install from the USB drive I set up with UNetbootin so I had to resort to burning a Linux Mint iso on a dvd and using that, but at work I was able to install from the USB key to my desktop no problem. I had my environment mostly set up before our morning meeting, although it did take until after lunch to get all the fiddly little details sorted out. Things are still a little bit weird on my laptop – sometimes my window manager freaks out when I open the lid but it’s Linux on an SSD so it’s not as if a restart takes long.
All in all, I thought switching to Linux was going to be a lot harder and I’m still kind of waiting for the other shoe to drop. Isn’t this supposed to be more of a pain in the ass? But seriously, if you’re running Windows I really do recommend trying Linux.
I’ve been experimenting with switching to Linux (well mostly, I still need Windows for games), and so far it’s been weirdly easy. The only real problem I’ve run into so far, and it’s not much of a problem, is that I really love SlickRun and there’s no Linux version. Fortunately there is something SlickRun-like, Gnome Do. It works great for me on Linux Mint and it was really easy to change the settings so I can use the same keyboard shortcut I did to bring up SlickRun. I haven’t used it for anything besides launching programs yet, but it looks like it can do some really cool stuff.