FPGA-Friday

Joking around with my roommate who works in an embedded computing software and hardware company, we started cracking jokes about the day Friday.

His form of the common expression TGIF, is FPGA-Friday at his workplace. FPGAs are so commonplace that everyone takes out their FPGAs and geeks out with each other at the end of the day.

FPGA-Friday just rolls off the tongue.


Photo from raggle.

Where’s the warm weather? I want to go biking!

Getting distracted from working on school things, I stumble upon GoBiking.ca and remember the promise I made to myself last summer to explore the Ottawa-Gatineau region on my bike.

Last summer I went on two long trips. One was from The Hogs Back area into Gatineau Park’s Lac Meech. The other trip was from Hogs Back to Britannia Park.

IMG_20140726_172225
Stone balancing along the Ottawa river

Over those two trips I had my beater Super-cycle generic mountain bike. Since that got stolen, I ended up getting a nice road bike. The weight difference and amount of speed you can get up to effortlessly has changed me for the better. Unfortunately I never went on a nice long trip with this new bike yet, only commuting the 7 kilometres to work every day, which was fine, but I’m regretting it now.

That regret is about to get flipped this year! When the nice warm spring weather comes, I’m immediately hopping on my bike and heading over to Timbuktu. Okay, maybe I’ll coast up the east side of Ottawa river and back, since I haven’t done that route yet.

I do plan on heading back into Gatineau park this year to do more sightseeing and to see if I can reach Lac Philippe. Me and my friends were considering camping up on Lac Philippe one of the weekends, but we never got around to planning it out. I recently head that the park shuts down the roads to cars on Sunday which is awesome! No fear of cars sneaking up on you.

IMG_20140608_181204
The Lac Pink lookout point provides a good view

Just out of curiosity I looked up the biking directions from Ottawa, to my cottage in Gravenhurst, Ontario. A good 440 kilometres. Practically a 2 or 3 day bike. One time my family and I drove that route. I remember it being immensely beautiful with the fog rolling in among the hills. I’d definitely take a sports car along that route, but this is a post about bicycling, not one about cars. This trip is definitely out of my skill range, but a boy can dream, can’t he?

IMG_20140604_195233
A female deer along the west end of the Ottawa bike paths

Some maintenance I definitely have to do to my bike this season is to get better tires and brakes. I managed to pop both the front and back tires multiple times last year hitting potholes and sewer drains. It might just be me not pumping up the tires enough. The brake pads can definitely be replaced. If I remember correctly, only one set of brakes works fully. The other just slows the bike to a stop.

I can’t wait for the warm weather to come. I’m setting a goal for myself to get out and ride around the Ottawa-Gatineau region more than last year!

Work Reference

So I asked my boss a little while ago If I could use him as a work reference. Here is his response after he got a call from my landlord:

I just got a call from [landlord name] (not sure how you spell that) for a reference.

I said that she should only rent out the place if you promised to quit school and come work full time, and that we were paying you way too much money so she should charge a lot of rent.

I also mentioned that she should under no circumstances ask you how to fix her router.

My boss is one of a kind.

Quick Eclipse Tip

Whenever programming Java, it’s always a good idea to log what the program is doing. Log this error, log that object’s value – it’s a constant occurrence. More often than not, I’m adding this simple line to the fields of every class I write:

private final Log log = LogFactory.getLog(ThisClass.class);

Not only is this repetitive and time-consuming, it is easily automated in the form of a Template from within Eclipse.

The Solution

Adding a text expansion in the form of an Eclipse Template, allows for typing log, press the content assist hotkey, followed by pressing Enter, to automatically insert the Log declaration statement and add the necessary imports. Wow, that was fast, was my initial response. No way am I ever going to type that out manually again.

How to do it

In Eclipse, navigate to Window -> Preferences. In the tree on the left-hand side, go under Java -> Editor -> Templates. Here is the screen for defining text expansions that will be available when using the editor. Click New, enter “log” or whatever of your choosing as the name to expand from. Select the context drop-down to “Java type members”. Finally copy and paste the following into the Pattern field:

private final Log log = LogFactory.getLog(${enclosing_type}.class);
${imp:import(org.apache.commons.logging.Log, org.apache.commons.logging.LogFactory)}

Save it, apply changes, and exit the Preferences window. You are all good to go now!

Note

This assumes that you’re using Apache Commons Logging library for all of your logging tasks. The above template can easily be converted to define your specific logger of choice.

You know there’s a problem when…

$ java -version
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fd0ee055ef8, pid=2336, tid=140535311697664
#
# JRE version: 6.0_45-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x7feef8] InterpreterGenerator::generate_normal_entry(bool)+0x518
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#

Fixed this issue by reinstalling the JVM. Virtual machines really don’t like random reboots. Corruption starts to appear everywhere.

The Future is Bright? (Maybe)

The Story

Its Saturday night and all I want to do is watch The Amazing Spiderman. Hey, this should be easy, right? Just put the movie on a USB hard drive and plug it into the Xbox or PS3, eh? Wrong. This is unfortunate, but I’ll figure out another way; my desire for Spiderman will not stop at this speedbump.

My next logical step is to setup a UPnP server on my laptop to stream the movie to the PS3 or, eventually, the Xbox.

MediaTomb can transcode your media and serve it to any UPnP client. It streams to any PS3 without an issue. A clause to the previously mentioned was some “audio playback issues”. Streaming to a Xbox 360 was unsupported. I was faithful that the Xbox would support the de facto standard of media streaming, UPnP 1.0, but alas, no dice. MediaTomb is out.

Next up was uShare. uShare is another UPnP server that offers minimal configuration and Xbox streaming support. After setting up uShare and pulling up the shared content list on the Xbox, the Xbox would not, for the life of it, show uShare and let me stream Spiderman.

At this point I was getting pretty pissed off at these proprietary, closed-source boxes of DRM.

It was time to give up the fancy streaming technologies and settle on using a USB stick to physically plug into the console and watch Spiderman. Five minutes later the movie is on the stick, plugged into the Xbox and the menus are flying by as I impatiently page my way towards the location of the movie.

Lo and behold! Here comes another issue. To watch the video which has AAC encoded audio the Xbox has to download a free codec pack to be able to read it. To get the free codec pack I had to be signed into a Xbox Live account. It was not my Xbox, so I had to remember some Xbox Live burner account I created many, many years ago. My Live account has multifactor authentication enabled (good job Microsoft), so it took me a second to understand that I had to create an application specific password for the Xbox, since the Xbox didn’t have the ability to login using multifactor authentication.

After logging in, the “free” purchase of the AAC-decoder-didn’t go through because I had to have a credit card attached to my account. God damn. The last thing I want to have happen is for someone to steal my credit card info from hacking into some corporations database. I tried a prepaid credit card with no money on it, but that failed, so I then put in my PayPal details and quickly got back to purchasing that FREE codec pack for watching Spiderman.

Then it finally worked.

Reflection

Where to start. Where to start. Home theatre media devices have only been around for a decade. Being pioneered by hackers trying to get their media onto their TVs, companies soon entered the market. With them they brought brand loyalty and limitations to how you can consume your content. The walls on the walled garden kept getting higher. It is enticing since its simple, but your freedom to purchase and consume content from wherever is limited by what the company thinks is best for maximizing profits.

This is why open-source is ravaging the proprietary, closed-source software and hardware market. The Android Open Source Project is a perfect example. Over its existence, its taken a huge chunk of the cellphone market away from the closed-source systems of Apple and Microsoft. Android has achieved this by (using Linux first of all) providing an ecosystem where electronics manufacturers and end users can completely customize the experience of their devices by being able to edit the source code, if needed. With Apple and Windows products you get a simple system that you’re expected to like and live with for the extent of its use. If you’re not able to change an aspect of how it works, sorry bud, you’re out of luck. Have fun reverse engineering that code. Android users can and are actively participating in creating and modifying their devices to their hearts content, while reintegrating their changes back into the ecosystem, making the Android platform all the more better for every user since they have the ability to choose.

Getting back on track, Digital Rights Management, or DRM, in most cases makes it harder for the consumer to enjoy their content. I had this exact problem when trying to stream Spiderman to the PS3. Nonstandard specifications, and forcing a walled garden onto the device offputs the consumer since their content may be stuck inside without any way of getting it out. The general population doesn’t care about this though.

Android is already making its way to the TV via set-top boxes, and recently the Chromecast, but other open-source projects are making their way as well; Ubuntu TV being one of those. Hopefully the market can flourish and spawn a large community of hackers who contribute and make these open-source projects better.

I just want to be able to watch Spiderman without jumping through hoops.

Of Recent Events

I was going to write a post about looking forward to tonight’s Ottawa WordPress meet-up, but as of today’s events I find that there is a more important topic to blog about.

Today’s attack on Parliament and the shooting of Nathan Cirillo at the National War Memorial reminded me of 9/11. When 9/11 happened, the event seemed so surreal. Broadcasted over the TV or on the internet, it was hard to understand the scene for someone who has never walked the streets of New York or understood what this meant in a geo-political sense. I was only a month shy of being 8 years old.

Back to October 22nd: Never having lived so close to an attack like this, I originally thought this was just a random shooting. As I followed CBC’s live blog though, I started to put things into perspective. This wasn’t just a shooting, this was an attack on the Government of Canada.

Living in Ottawa and knowing the downtown core area very well has made this event more personal than it would have been if it had occurred in another city. Having walked those streets and visited those landmarks on many occasions, it’s hard to believe something so bad could occur at the same place where I associate safety and good times with.

Standing at my desk, trying to get work done as I constantly check for the latest twitter updates, I eventually break for lunch quite late in the day: sometime past 2 pm. Hitting up my favourite shawarma place, the day seems even eerier when the restaurant is dead empty. Here I begin to write this post while chowing down on a healthy serving of garlic potatoes.


Interesting Articles

Twenty

Goodbye teenage years, hello twenties!

Gone are the years of figuring out what this whole life thing is about, time to finally take that knowledge and have the time of my life shaping my future into whatever I please.

Looking back over the year, I’ve accomplished a lot. I’ve landed an awesome co-op job working at a small company solving issues in the hospitality industry, a much busier freelance web design job on the side, and started cooking healthier meals. Not to mention, its been at least a year having moved out of my parents house into my current Ottawa residence with all of my roommates 🙂

Here’s a few other miscellaneous achievements:

  • Made and barbecued the perfect homemade burger
  • Read more fiction, non-fiction and computer science books and articles
  • Found my love for Cherry MX blue keyboards
  • Commute to work every day via bike
  • Expanded my music tastes

Some things that I’m looking forward to this year are going back to school after my co-op term to take some advanced third year courses, work on some personal programming projects, and cook more delicious food. But who knows? Much more notable events will definitely occur in the next year. Those unknown events are the ones I’m most looking forward to!


Just like what Matt Mullenweg, the creator of WordPress has been doing, I like the idea of writing a post on your birthday for reflecting on the past and future year. Here is it’s first form on my blog.

A Path To Justice

apathtojustice-clipI would like to announce the completion of one of my latest website jobs: A Path To Justice.

A Path To Justice is an upcoming documentary based on Humberview Secondary School’s law class that brought forth new evidence to the wrongfully convicted Steven Truscott case. The new-found evidence warranted a retrial, ultimately leading to an official pardon by the Canadian government.

Over time this website should grow to serve the purpose of complementing the progress of the documentary: from planning, to production, then finally distribution.

The website may be visited at apathtojustice.ca.