Apologies for a very slow blog

While writing my post this morning, I realized how ridiculously slow my blog is. I apologize profusely for that. I hope you have been able to load the posts without wanting to flip the table over or throw your iPad on the ground and stomp on it in frustration.

(╯°□°)╯︵ ┻━┻

I know I have.

The Solution: The only thing I can promise is that I am currently desperately seeking a new web hosting company on which I can host this blog. I just don’t want to purchase a web host without doing some serious research first. After all, chances are I will be forced to use the web host for at least two years, so I don’t want to make that decision lightly. Do you have any ideas on a good hosting company? I want PHP support, and support for installing WordPress with one click (I’m too lazy to figure out how to do it myself). And my dream server would also be able to support other languages: Ruby on Rails would be great (I’ve been meaning to learn Ruby), and Python. I’m open for options. Since Java is my main programming language, I also wouldn’t mind having some support for Java apps. A Tomcat server or support for the Play Framework would not be out of place.

If you can give me any advice, please please please comment and let me know!

Duolingo App

I posted about six months ago about Duolingo, which is my favorite online resource for learning languages. I stopped using it shortly thereafter because I was concentrating on getting my bachelor thesis done. However, today I got a newsletter which informed me that Duolingo now has an app for iOS and Android. The app is beautifully designed (much like the website itself), and I enjoyed beginning my Spanish lessons again. The central concept behind Duolingo is gamification: You try to pass a level without losing all of your hearts. Every time you answer a question incorrectly, you lose one of your hearts. The app also keeps track of the words you have learned, and the strength with which you have learned them.

It’s fun! And it’s addicting! Almost as much as Candy Crush. But feel free to trade in that über-time-wasting app for this one. It is sure to be a much better use of your time.

The Demise of Windows One Step at a Time

Today I stumbled upon this article from Wired.com. I already shared a link to the article on my facebook account, but I am so psyched about it that I just couldn’t help blogging about it too. Essentially, the article concerns the release of a new operating system, SteamOS. It a Linux operating system with one difference: built in support for Steam, a game distribution platform created by Valve.

I’m not a gamer. But this is HUGE, and it will probably have a huge positive impact on my life. The problem is that Linux has, up to this point, been closed to a certain demographic of people: Gamers. The Linux community is large, and the software available for the operating system is fairly well developed. There are excellent browsers (Chrome and Firefox), syncing software (Dropbox), and decent, usable word-processing software (LibreOffice) available for the Linux platform. And, of course, the software development tools for Linux are infinitely superior to anything that Windows offers.

But the Linux platform has, up to this point, alienated one demographic of people who would, under normal circumstances, be the perfect users of Linux: Gamers. A lot of gamers invest tons of time and money to create the perfect computer for gaming. They build their own boxes from scratch to ensure optimal performance. When you offer them an operating system that is not only optimized to run their games with optimal division of computer resources but also includes native support for their favorite games, isn’t that attractive?

It is only the first step because not all games are created to run on the Steam platform. But it is an important step because it means a definite increase in Linux users. It also means that a large corporation, Valve, will become increasingly invested in providing a good user experience for the users of their operating system. I foresee an major influx of development work for the Linux platform. And I’m excited.

The new year is about to begin

One of my odd traits is that my internal calendar always begins in Fall. This is no doubt due to the fact that for the last 17 years of my life, September has always been the new beginning, the start of a new school year. You have just had three months of wonderful summer break, and now you get to buy school supplies (new pens!), meet your new teacher, etc. Of course, I have been in university for the past four years, but September/October is still the beginning. I moved to Germany almost exactly four years ago. Now I am (almost) ready to begin my next adventure. I am going to be starting my Master’s program in a month.

I just took a nice LONG vacation. This accounts for the fact that I have not posted in three months. I was in America, and Poland, and Germany. I visited my family, saw my hugely adorable niece. I discovered Yoga, and also discovered that the hip injury that has bothered me for the past four years was (I am convinced) at least in part psychosomatic. I ran 7.1 kilometers in 37 minutes yesterday. My hip didn’t hurt at all. Just about every other part of my body did.

One of the main reasons that I have not posted in the recent months is that I do not really know what to post. I spent the last three years getting my bachelor’s degree in computer science. I also managed to become increasingly geeky as every year went by. There are many things that I am passionate about. But I am no longer convinced that anyone cares that the Evernote Webclipper is awesome, that I wrote my first program in the Clojure programming language (and that I love it), that my favorite text editor Sublime Text is amazing, that I am planning on installing a web server on my Raspberry Pi, or that I am completely in love with my new Lenovo ThinkPad x230.

So sorry about that. I may or may not post again any time in the near future. I will probably be completely overwhelmed and stressed by my Master’s program (even though I get to learn Clojure), and I promise nothing. But if you would like me to post something, please leave me a comment.

After all, it’s a new year. And I am convinced that this one is going to be the best one yet…

 

Yes I do!

This post is a response to the title of yesterdays post. I do have enough USB sticks. For now anyway. Especially since I managed to create a persistent linux operating system on one of them! I tried just about everything, but I eventually fell back to using the usb-creator-gtk available from the Ubuntu repositories. I managed to install a persistent copy of the Linux Mint 14 MATE onto a 4 GB usb stick. Booting is really slow, but its a working solution for now. Of course, I’m kicking myself for not installing Linux Mint with xfce because I think it would be faster on a slow usb. Unfortunately, I tried using the same method to install the xfce version on another usb stick, and it didn’t work. Go figure.
In any case, I will be able to take my netbook to London with me when I go, and I will be able to work on my paper while I am there. Now I just need to customize the distribution so that I can use latex, and we’ll be good!

I guess I can also use this post to give a shout out to my current favorite operating system: Linux Mint!:

linuxMint

Do I have enough USB sticks?

USB

Yes. I would guess that I have enough USB sticks. I just had to get almost all of them out of their little tin boxes (I use altoid tins to organize my usb sticks and sd cards) and take a picture of them. Two of them are not pictured because I am currently in the process of reformatting them. I’ve used GParted so many times today that I am almost ready to scream. The problem is that my netbook officially has problems. It is either a problem with the hard drive or the motherboard, but in either case, the chances that it is actually worth the money to repair are not high. I constantly get boot problems (my operating system can’t find the root partition), so I think that some hardware glitch constantly rewrites my boot settings. Or something like that. My solution to the problem? Create a persistent USB stick. But although I have been trying for about an hour, I have not yet been successful.

Still, I need to somehow become successful within the next two hours or so, because I am going to London next week and will have to have a computer with me because I need to work on my bachelor thesis.

RIP Google Reader

Rest in peace.

Wait no. What I actually want to say is WWYT Google Reader. Whatever were you thinking? Seriously?

I suppose the company has the right to close their very own free web app. But I am shocked at the inconvenience of the whole ordeal. Now I have to do some research to find some decent RSS reader. Ideally one that replaces all of the functionality that I currently have with Google Reader. Which means that it has to have an Android app with an indicator widget for the main screen. And I have to somehow be able to favorite articles that I read. With my current setup, I can star articles in Google Reader, and with an IFTTT task, I can archive them in Pocket. Which I love. Because I can always easily scan through my favorite articles.

One word comes to mind when thinking of the eminent close of Google Reader: inconvenient.

I’m frustrated and irritated. I’m going to have to put a lot of effort into finding an RSS reader and customizing it the way that I want it. It is even going to mess up my current daily routine.

So to Google: I stick my tongue out at you.

I don’t really get it. Google is putting all of its money and effort into customizing Google+. It has its special features for sure, but come on! No one has any NEED for it. Because that need was already filled by Facebook and Twitter. Google has, up to this point, come to be so prominent because they have created web applications that fill a niche in the Internet that no company has filled before. And they do it well. The best search engine? Google. An open source operating system for mobile platforms? Android. A way for multiple people to edit documents online without having to send the same document over and over again? Google docs.

But Google+? Nope.

Sorry for this rant. I will get over myself soon. And at least the way is now paved for some startup company somewhere to come up with something really good. I just hope they communicate with IFTTT and get their own channel quickly.

My Favorite Byte

0111110 is not my favorite byte because it is symmetrical. It is not my favorite byte because it is the opening and ending byte of the networking Point-to-Point Protocol. It is not even my favorite byte because its decimal representation (126) possesses the attribute of having every digit being exactly twice the sum of the digits to its right. No, my dear readers and friends. 01111110 is my favorite byte because when looking at its binary representation, one has the distinct impression that one is about to be run over by a car.

Top 10 Desktop Applications

I am going to preface this post by stating once again that I am a computer science student with the intention to some day to become a software developer. As such, it is no surprise that most of the desktop applications that I can’t live without have something to do with programming. It might also be necessary to mention that my use of “desktop application” might not be what the traditional user would consider a Desktop application. Not all of them are launched by double clicking on an icon. But all of them are, in my opinion, amazingly developed pieces of software that make my life as a fledgling software developer much easier. I am labelling them “desktop applications” because they are software applications that I run on my desktop computers. As opposed to “apps” that I use on my tablet and smartphone.

1. Surprise surprise! To start out on the list of applications that are absolutely and completely awesome programs that most computer users never use: the terminal! I have run Ubuntu on my laptop since I turned 18, but it just in the last year or so that I have really come to appreciate the power that the terminal gives to a user. I use the standard GNOME terminal that comes packaged with all Ubuntu installations, and I find it absolutely fascinating. There are so many cool programs that can only be run in the terminal (three of which also made this list and will be listed later). The commands grep, wget, and cat are just some of the commands that I run on a regular basis. In addition, I’ve also learned how to write a few basic bash scripts which makes the terminal more powerful. It is so much fun to write scripts! I wrote a script for a friend which automatically converts her audio files from her cellphone into .wav files so that she can burn them onto a cd. I also wrote a script which downloaded all of the XKCD comic, and today I wrote a script just for fun that turns the display on my netbook to full power. And, if you add a bunch of aliases to the .bashrc file in your home folder, you can make the command line much more fun to use.

2. I’ve already written a ton of posts on how awesome Dropbox is, so I don’t think I’ll go into great detail here. Check out my post on how I use my Dropbox, if you are interested. Pretty much everything that I am currently working is saved into my Dropbox so that I can have access to it on my three computers, tablet, and cellphone. And Dropbox plays nice with a lot of other software which makes your life so much easier.

3. One of the applications that I am currently psyched about is Sublime Text 2. It is one of the coolest text editors that I have ever seen. I love the gorgeous user interface. There are a ton of cool features, most of which I haven’t learned yet, but I am looking forward to the learning curve. I’m going to have to try the software for longer before I will know if it is sufficient for larger projects, but for now I use it to write small scripts, small programs, or miscellaneous notes of any kind. Sublime Text 2 recently replaced gedit (the native text editor for GNOME) as my number one choice for a simple text editor. It is free to test, but to get a licensed version, it costs $59. Still, the software is obviously well designed and some programmers obviously spent a good amount of time working on it, so if I had the money, I’d totally go for it. Without the license, a window pops up every so often to remind you to buy the software, but you aren’t actually forced to do so. Still…it is maintained by an active community, and available for Windows, Mac, and Linux.

4. Git is what I have used at work for about the past year. It is an awesome version control software which makes programming so much easier, especially since I usually am working the same project as two other people at my work. If you are interested, you can find my github profile here, although I haven’t actually started my own repositories or anything like that. Git pretty much means one thing: you can concentrate on the fun stuff, like programming, without having to worry about the organization stuff. If you accidentally delete something, you can always restore the files. If someone works on the same file as you and therefore there is a merge conflict, you can fix the conflict with one commit. You can create new branches in your repository if you want to do some major refactoring without adding compiler errors to some file that you colleague is currently trying to use to solve another problem. In short, it is awesome. I personally have also become a fan of using the git software to create my own personal repositories which I sync using Dropbox. Here is the code I use to create a new repository:

~/project $ git init
~/project $ git add .
~/project $ git commit -m "first commit"
~/project $ cd ~/Dropbox/apps/git

~/Dropbox/apps/git $ git init --bare project.git
~/Dropbox/apps/git $ cd ~/project

~/project $ git remote add origin ~/Dropbox/apps/git/project.git
~/project $ git push -u origin master

5. I’ve just started learning Prolog this semester, and I can honestly say that I don’t think that I have had this much fun since I began to learn Java. I have the privilege of taking Introduction to Logical Programming this semester, and we are learning Prolog. It is based on predicate logic and resolution, and…it is just so cool! I would try to explain it further, but unfortunately I don’t understand everything well enough yet to explain it all. If you are interested, I highly recommend looking it up. One of the reasons that Prolog is so cool is because it is a completely different concept than almost every other classical programming language out there (think Java, C, Python, etc). It requires you to really think, and rethink, pretty much everything you’ve learned about programming.

6. I also added my current second favorite programming language to the list: Groovy. I’ve been lucky enough to be able to use Groovy a lot of the time at work (although the majority of the code is still in Java). We have integrated a groovy shell into our tool, and it is simply awesome. One of the coolest things about Groovy is that it is to some extent an overclass of Java. That means you can write syntactically correct Java code and it is also correct Groovy code. This makes learning Groovy extremely easy for somebody who already knows Java, because you can write your code in Java and slowly integrate “groovy-esque” features into the code. Like automatic type recognition, closures, and editing of existing Java classes. The groovy shell is also really cool, because you can test out short snippets of code quickly to see if they work the way that you intend them to.

7. When I learned Java, I used a normal text editor. But when I started working, I learned how to use Eclipse. It was honestly a pretty steep learning curve. Eclipse is a huge piece of software. In fact it is so large, that I tend to avoid using it on my laptop at home because I have less than a GB of ram. However, once you’ve programmed Java with an IDE (Integrated Development Environment), you won’t ever want to go back. It is actually only in the last couple of months that I have really gotten the hang of some of the keyboard shortcuts (Ctrl+1, Ctrl+Shift+o, Alt+Shift+l, …), but they made programming so much easier. In combination with the code completion of course. Why would you want to type System.out.println(); when you can type syso+space? I also like that the eclipse project separates the class files from the source files. This is especially nice when you are programming with Groovy, because Groovy somehow creates an extraordinarily large amount of class files (because it creates a separate class file for every closure that you write. Which could be a lot). Because of this, I’ve taken to using Eclipse for my school work in addition to at work.

8. I use WordPressto power my blog. And if you are currently reading this blog, you are also currently interacting with WordPress. Isn’t it cool? This is the first program on the list which doesn’t make me a complete nerd. After all, millions of other people use WordPress, and I am assuming a good many don’t have the technical knowledge to know what actually goes on underneath the hood. But that is actually what I find so awesome about WordPress. It is easy enough that anyone with a minimal amount of knowledge of how to use a graphical interface should be able to get the hang of it in a very short time. And I’ve actually taken the time to peek under the hood a bit, and I was very impressed with the software itself. It is pretty well organized, simple to understand, and easy to modify and adapt. It’s an amazingly intricate piece of software, and I give the WordPress community some major props.

9. Inkscape is one of my toys. It is a really cool piece of software that allows you to create pretty cool graphics and vector graphics. I’d like to get around to using it more during the next couple of years. I’ve taught myself the basic things: making layers, editing paths, grouping and ungrouping objects. But I think it is really fun. If I were ever to actually get around to making a web comic, I’d highly consider doing it in Inkscape. Mainly because it is relatively easy to make incredibly cute vector drawings.

10. Firefox is my browser of choice. Although if I must be completely honest, it might very well be because Firefox is the default browser in the Ubuntu distribution. But I’ve gotten used to it, and I like it. No complaints. I can google anything in the main search bar, and have another search bar in the upper right corner with which I can search Wikipedia. I’ve bookmarked all of the pages that I use most often, and I have no intention to switch browsers any time soon. One negative is that due to the large header section of the browser, there isn’t that much room for viewing on my netbook. But I’ve gotten used to always hitting F11, so it isn’t an issue.