Tuesday, December 27, 2011

Ubuntu on MacBook

Since my 21-credit-hour semester ended, I've had a little more time to tinker. In preparation for my trip to France, I wanted to install Windows and Ubuntu on my MacBook (model 4,1) so I could have all three major operating systems on my computer so I can develop for any platform (or use iTunes to rescue my iPod and Photoshop as there isn't anything on Ubuntu that really compares).

I followed this tutorial to set everything up (I got a free Windows 7 license from my school's CS department which pays for licenses for students--Microsoft's online support was incapable of allowing me to move my license from my old hardware to new hardware, even after me being on the phone with them for 3+ hours). There were a few minor hiccups with rEFIt (a necessary piece of software used to allow non-OSX operating systems to run on a MacBook)--it had a tendency to not boot correctly but the problem evaporated for no apparent reason and it seemed the problem was pretty rare anyway.

Because I used rEFIt instead of BootCamp to install Windows 7, I'm having a driver problem preventing me from scrolling or right-clicking with the trackpad--making Windows 7 even more frustrating to use.

Lately I've been using Ubuntu 11.10 exclusively and I'm incredibly happy with it. Many of the usability bugs in Unity have been worked out in this iteration (many still remain, but it's much more tolerable) and it's actually a pleasure to use as things have become more customizable. Additionally, because everything is so customizable in Ubunu, the operating system is a pleasure to use compared to OSX which is fairly locked-down. I truly love that I can push a key combination (by default Alt+F1) and navigate the dock with arrow keys. Furthermore, Unity + the Software Center make the new Ubuntu a great operating system for beginners (the Software Center was my biggest criticism for Ubuntu in appealing to new users, but, as I predicted, the Mac App Store drove many improvements in Ubuntu's Software Center).

That said, I plan to install this OS on the computers of a couple of my friends and family before I leave for France. Give it a try. Documentation abounds on how to install the operating system and it's probably the easiest operating system to install.

Genie

Genie is the newest programming language I've been playing around with lately. To date, my experience has been almost exclusively in interpreted languages, so Genie (a close relative of Vala) is my foray into a true compiled language. Like Vala, Genie code compiles to C code which of course then compiles into a binary executable. In fact, according to Genie's Wikipedia entry, the differences between Genie and Vala are only syntactical--Vala looks like C/C++ and Genie looks Python-esque. The valac compiler is used to compile both languages.

Unfortunately, Genie has only been in active development since 2008 and documentation is sparse and almost useless and my few attempts at using the language have been foiled by absurd errors. Most recently, I tried to declare a list (a basic Genie data structure) exactly how the Genie tutorial showed and it threw an error. You can view the specifics in the StackOverflow question I asked here.

When it matures, I really look forward to using Genie as it seems to offer the simplicity and sanity of Python with all the advantages of being a compiled language. The silly Vala overhead is gone
I'm really looking forward to:

  • Stability
  • Proper documentation (and a stronger community, which of course comes with time and adoption)
  • Better debugging
  • Vim syntax highlighting support
In the meanwhile, as long as I stick with using the language, I plan to file bugs and produce tutorials here. Then again, I'm a pretty flaky blogger so we'll see how that goes.

Thursday, February 10, 2011

My Projects

School has kept me really busy lately, but I'm enjoying it quite a bit. My Python class is a breeze as I've been working with it since the beginning of last semester, but I'm still learning quite a bit about coding efficiently, which is kind of why I'm pursuing a Computer Science major to begin with. My electrical engineering classes are considerably more challenging this semester, but I'm enjoying almost understanding the science behind wireless communication systems. I'm even enjoying my senior design project which is at any given time the biggest obstacle between myself and my EET degree. I don't even mind too much the rate at which school is reducing my social life to the ghost of its former self.

Thursday, February 3, 2011

Evolution makes me look less like an idiot

Evolution, Ubuntu's default mail client, makes me look less like an idiot with its useful reminder. The image pretty much sums it up. Thanks Evolution!

Friday, January 28, 2011

Beginning Work On The New Blog Engine

Today I'm starting to work on the new blog engine. A friend of mine has some server hosting he's letting me use in exchange for helping him develop a website for his recording studio. I'm planning on developing the same general blog engine for both his site and mine and then tailoring each to our specific needs. Today has been the first day I've had time to start working on it.

Unfortunately, his hosting provider doesn't support Python as a web programming language, which is really too bad because its syntax is incredibly easy to use and its quite a fast, powerful language and is great for developing things quickly. So it looks like I'm going to have to jump back into PHP, in which I really haven't dabbled for some four or five years. LOTS has changed on the web since then. Anyway, I'm older and wiser now with lots more experience in writing "good code". PHP was my first language and I had no concept of proper code-writing and I just wrote what I could to make things work any way possible. This meant ugly code (hard to understand, difficult to modify, etc), LOTS of repetition, and slow execution. We'll see how I fare this time around.

Anyway, so far I've started my first script for reading-in existing posts from an RSS feed. Yesterday I installed an Apache server on my netbook and got everything running well by all appearances. I hope to get a little development time in every weekend, but with this being my last semester in my Electrical Engineering Technology major, I'm quite busy.

Time will tell.

PS: Ubuntu 11.04 is shaping up niiiiiiiicely. Can't wait for April. :]

Thursday, January 20, 2011

How should I title this blog post about how I spent the last 3 weeks of my life?

"My 'forget everything I've learned in class because the class is over' policy has officially come back to bite me in the ass."

or

"Senior Design can DIAF"

?

Wednesday, January 12, 2011

Activity Journal


Activity Journal is a fun application available for free from the Ubuntu Software Center. It's a graphical user interface that presents data collected from Zeitgeist and allows the user to look at his or her work history. There are several different views for presenting the data including a useful timeline mode. There's a bar graph on the bottom for a quick presentation of your most productive days. It's great for evaluating productivity or providing one with an alibi. It's also just plain fun.

Friday, January 7, 2011

Software Center and App Store

The Internets are buzzing with news of Apple's revolutionary new PC App Store, which delivers applications to its Mac line of PCs. Except, erm, it's not that revolutionary. Ubuntu has long had its own Software Center.



Ubuntu's Software Center (henceforth USC) is a great concept--a single place from which to download all of your apps with a graphical user interface (GUI), rather than the "sudo apt-get" terminal code that I can never seem to get to work correctly (despite copying and pasting instructions from the website). Moreover, the USC theoretically keeps track of software on your computer  so you can easily uninstall software you don't want or don't use. You can even add third party software sources and browse their apps through the center.

Thursday, January 6, 2011

It's Elementary



So my desktop PC's fan went out... It served me well for four years now. I'm buying a replacement off a friend for a few bucks tomorrow so that should be back in action soon. In the meanwhile, I've spent a lot of time researching a lot of great Ubuntu customizations. Here's a list of my favorite apps: