JonLim.ca
RSS
  • Home
  • About
  • Photography
  • Andrea & Cuso

Technology

Dec 7, 2012

Issues with Push Notifications for iOS

Jon Lim Gmail for iOS, iPhone, Push Notifications Coding, Mobile, Technology

iPhone Push Issues

With the news that the Gmail app for iOS was updated two days ago, I decided to give it a go as a replacement to the native iOS Mail app. And for the first time in three years, Google apps are dominating the lower app bar on my phone. (Pictured above!)

However, and this isn’t a knock against the app because it’s wonderful, I have a rather weird quirk about iOS Push Notifications: the notification badge remains despite being corrected elsewhere.

For example, with the Gmail app, if I see a notification for a new email pop up and I am at my desk, I will go ahead and look at it on my web browser, because why look at it on a smaller screen with a larger one available right? Unlike the native Mail app, however, if I clear a notification off of the device, the push notification (especially badges) still remain.

This isn’t just for Gmail, but it happens with Facebook Messenger, Fitocracy, Twitter, and every other app that uses push notifications to alert you of messages, interactions, and whatever else.

I’ll have to dig around a bit, but is this just an oversight by the app developers, or is this a technical limitation for push notifications?

Dec 1, 2012

Octocat Attacks: Our entry for the GitHub Game Off

Jon Lim ActionScript, Flixel, game development, Game Off, GitHub Coding, Technology, Video Games

Near the end of October, a blog post from GitHub caught my eye, entitled: GitHub Game Off.

In short, GitHub was running a competition for game developers to build their games, host their code on GitHub, and have it loosely based on a git concept (forking, branching, etc). We were free to build it however we want as long as it could be open source. As a life long gamer, it’s always been a dream to build my own game, and that’s a dream that’s been also shared by awesome guy Wayne Sang.

We had been toying around with the idea of building out a game idea that Wayne had several months ago, and before Game Off, we had decided to build something smaller to get us acclimated with each other’s style and capabilities. GitHub Game Off presented itself as an opportunity to finally make this happen with real deadlines and actual work needing to be produced.

That game? Octocat Attacks.

Octocat Attacks Title Screen

You can view the source code here, and the playable version of the game here.

Most of the rest of this post is going to talk about the development side of things, as there were quite a few things I learned along the way.

Creating the Concept

When Wayne agreed to build a game for the competition, we sat down and hammered out a concept pretty quickly. I suggested that we use Flash, as it was probably the fastest way to get up and running with a game especially with established libraries already available, and that we make a puzzle game because “it’s far easier to build a silly puzzle game than a full blown action game!”

Just for the record, I was going to eat those words.

We sat down for several hours to hammer out the concept: it would be match-3 style puzzle, it would be about a giant alien attacking Earth, and various countries coming together to build separate parts of a robot to defend against the alien. The loose association with git was that each country was essentially working on its own “branch” of the master robot repo, and completing a level was that particular country “pushing” their part toward the final product. Each round was timed, and your score affects the quality of the piece that is created, with three different possible tiers in quality, which also affected your final battle with the alien.

I also did some research around the best Flash library to use to build games, and I landed upon what seemed like the most developed and easiest to get started with: Flixel.

There were a handful of other engines available, but Flixel was really far along in development and actually powered games I had heard of (like Canabalt!) and so I ran with it. Just as a side note, once you start using it, Flixel really feels like it was built more for twitch-based games rather than puzzle games, I was lucky to find the Flixel Power Tools set which extends the capabilities of Flixel even further, allowing me to take care of some of the issues I was having with sprites in Flixel.

Starting to Code

Once my environment was set up, I began to write a few test games just to get a feel of Flixel and Actionscript.

Have I mentioned that I haven’t really touched code in a serious way since 2009? Have I also mentioned that I haven’t touched ActionScript since 2005?

Granted, I was very familiar with programming in the first place, so the learning curve wasn’t very steep for me, but it was one thing to be figuring out what I can and can’t do with Flixel, and it was a completely different beast trying to do it while learning ActionScript 3.

However, I got a prototype up and running relatively quickly. According to my records, we started brainstorming on October 27th, and I had a prototype with a 5×7 board full of temporary game pieces that could switch places on October 31st. I was rapidly iterating on the first prototype, creating 90% of the game mechanics by November 12th: puzzle piece generation, piece movement (swapping places), match checking and clearing, and empty space refilling. Nothing was 100% as it should be for a completed game, but it was a very quick start.

Around this time, Wayne chipped in with his awesome pixel art, and the game was finally starting to come together.

Refactoring Mania

Regardless of the level of stability, I was rather unhappy with how game pieces were being moved around and being checked as matches, so I spent a good week refactoring everything. And I mean everything.

Suddenly the game became less jittery and resource intensive, I had created a queue for the checking and clearing of pieces, but I was still being plagued by my code to animate the refilling of pieces on the board. It was a problem that I am still having trouble with to this day, and I feel like I’ve smashed my head against it enough times that I may need to refactor the entire thing to provide a different approach.

Oh well, that’s what branches are for, right?

The important lesson I have is that, and I didn’t know this because I am a complete newbie, Flash and ActionScript 3 runs code synchronously (I think.) This was a problem with the initial way I was refilling pieces, because I essentially had a for loop that would check every single spot on the board, and if there was no sprite within that spot, it would start the animation to move all pieces above the empty square downward to fill the empty spot and create the new piece. However, if you have two (or more) empty squares on top of each other, the new piece creation happens simultaneously and you have stacked pieces in the same square.

As you can tell, I am not very experienced with puzzle game animations!

Octocat Emerges

On November 19th, Wayne sent me an email where he sketched out the alien: he had taken the Octocat, of GitHub fame, and turned it into the alien monster attacking the Earth. It shot lasers from its eyes, it was adorable, and I think it gave me a bit of extra motivation to see this project go all the way.

Alien Octocat

Aw, aren’t you a horrible little creature?

Final Stretch

It feels like I’ve left out a lot of details, but that’s because the entire month felt like a blur. I was constantly trying to fix our animation problem while building out the HUD (score, timer, etc) and the functionality to power the HUD. Wayne was churning out all of the necessary art assets for the game, and it was starting to come together.

Eventually, we decided that we weren’t going to complete the game in time, and we were alright with that. We were both willing to continue working on the game at a more leisurely pace after the deadline had passed, and that’s one of the side projects I am really looking forward to.

At the end of the day, the v0.1 build of Octocat Attacks, as in the one we’re submitting to GitHub Game Off, is a very incomplete game. We have an incomplete puzzle engine, no audio, and our content is far from complete.

However, we got it out there. We took the effort to start our project and bring it this far, and we’re continuing to push on. I’m very happy with how the game looks right now thanks to the hard (and amazing) work that Wayne has put into his pixel art, and our game is functional, which is a lot more than I expected when we started!

It’s been a really fun and educational experience to build a game from scratch, and you better believe that Wayne and I are going to continue developing games.

Octocat Attacks Stage Select
Octocat Attacks Gameplay

Nov 28, 2012

“We do enforce this policy.”

Jon Lim Scribblenauts Unlimited, WB Games, YouTube Business, Marketing, Video Games

I run a very small, very casual video games channel on YouTube called The Blundercast – I just record, edit, and post silly little moments that happen while I play games. It’s very much a labour of love, but I do happen to monetize a few videos just for a bit of coffee money here and there.

Most recently, I posted a video where I played Scribblenauts Unlimited and had fun on a mission.

I did attempt to monetize this video but was abruptly stopped by YouTube.

YouTube:
We may consider your video(s) for further review provided you verify that you are authorized to commercially use all of the elements of your content. This includes all video, images, music, video game footage, and any other audio or visual elements.

Fair enough, I’ve run into this before. I explained:

Me:
This video is a video where I have fun with a small portion of the Scribblenauts Unlimited game. It was created solely for the purposes of entertainment and education and is all done in fair use.

Makes sense to me, you learn about the game and you can enjoy watching me make an ass of myself on the internet. However, it got rebuffed with a request for information regarding formal permission and/or terms that would allow me to post the video.

I reached out to WB Games, the publisher of Scribblenauts Unlimited, to get this permission, and got this response in a few hours:

WB Games Support:
WB does not provide formal permission to post videos on YouTube or similar sites. Generally we don’t mind fan videos so long as you’re using legal copies of the game, are not being posted to make a profit (through advertising or other means), and are in good taste.

Hmm… not being posted to make a profit? What about the hundreds of videos that do just that on YouTube? Do they all have a standing agreement with WB Games that allows them to post and profit off their videos? Or are they in danger of having WB enforce their policies on them?

So I asked to clarify, especially with regards to YouTube partners, and got this response:

WB Support:
WB does not give out any formal permission. We also do enforce this policy.

And now we’re back at square one.

I understand you want to protect your game, but we’re giving you free marketing at no cost. I’m not entirely sure why you would be against that?

It is a silly place.

Nov 16, 2012

Stop using social channels to push, start pulling.

Jon Lim engagement, GoPro, HERO3, social channels, social media Business, Social Media, Technology, Video

It feels incredibly weird that I still have to say this near the end of 2012, but stop using your social channels to solely push content.

Yes, you have a captive audience. Yes, they want to hear what you say. Yes, they will retweet and like and re-pin every trivial thing you push out there.

But why aren’t you listening to them?

If you follow me on twitter, and actually manage to catch me tweeting, you might know that I’ve been disappointed with GoPro and their lack of responsiveness.

Now, I’m a huge fan of GoPro. I have loved their products since the very start, and finally bought one with the announcement of the HERO3, simply because it could shoot 720p video at 120fps. Seriously, that’s all I wanted.

Well, I received my GoPro HERO3 Black Edition on Wednesday, November 14, 2012, and I spent the better part of that night playing with it. Learning the ins-and-outs, I quickly became accustomed to it and so I started to connect it to my accessories – no problems with the wi-fi remote that came with my HERO3, but any and all instructions on connecting to the GoPro iPhone app, which was pimped out on my packaging and all over their website, were for the HERO2 + Wi-Fi BacPac, and even a manual firmware update didn’t do a thing.

What?

So I tweeted GoPro, thinking I’d get a quick response (they were tweeting at least once an hour at that point) but it never came. I tweeted again the next morning, thinking business hours would catch them, but… nothing.

It turns out, GoPro doesn’t respond to anyone. At all. Not on Twitter, not on Facebook, nothing. Hell, right now, I’ve been intercepting messages to their Facebook page and answering the questions that pop up about the HERO3 Black Edition and connecting to the GoPro app.

NOTE: The solution, if you were wondering, is that there is none. The HERO3 Black Edition won’t be getting a firmware update until December 14, 2012. That bit was buried in their features page for the HERO3, so I can’t complain about not being told. However, it still sucks that the packaging lead me to believe otherwise, but I can’t be mad about it.

I sent them an email to plead with them to engage with their audience. They may ignore it, and that’s most likely going to happen.

However, if you run any sort of consumer-facing company and you still don’t get it: PLEASE engage with people on your social channels.

I’m not asking you to respond to trolls and haters (though it’s an opportunity to swing them into your favour with your great responses) but I am simply asking you to fully utilize these channels that people come to have their questions answered and even just tell you how awesome you are. Plenty of companies are doing this correctly, and even if you’re the market leader in the industry (looking at you, GoPro) you should do everything in your power to build walls against any eventual competitors that come your way.

Stop just pushing, start pulling.

Oct 29, 2012

FreshBooks + Stripe = Freelancer’s Best Friend

Jon Lim freelance, FreshBooks, invoicing, payment processing, Stripe Business, Technology

As an occasional freelancer, one of the more painful aspects in my day-to-day operations is the invoicing and payment collection.

Now, I’ve used FreshBooks for a good long time for the freelancing side of the business, and it has always served me well – keeping track of billable hours and expenses – but I’ve always found payments to be a tad annoying. The previous payment gateway I used was Paypal, simply because there weren’t any other useful alternatives.

And then, Stripe came to Canada.

Oh happy days! Stripe makes online payments with credit cards much, much easier, and when coupled with FreshBooks, it makes the collection of payments for invoices that much easier as well. Payments can now be made directly inside of the FreshBooks interface, and the payments will go directly to your bank account rather than sitting inside of Paypal.

To get started, you’re going to need an account for both FreshBooks and Stripe. Here are the sign-up links for those interested:

FreshBooks (Affiliate link!)
Stripe

Once you’ve signed up for both services, go to Stripe and click on the “Your Account” button in the top right and head to “Account Settings” and navigate to the “API Keys” section of the settings popup.

API Keys from Stripe

You’re going to need the “Live Secret Key” in a minute, so keep it handy.

Next, click on “Settings” in the top right part of your FreshBooks account, navigate over to the “Online Payment” page, and click the box next to “Stripe”. A new section should appear asking for your “Live Secret Key”. Paste it in here, click “Save”, and you’re good to go!

Now, when clients want to pay off their invoices online using a credit card, they’ll see this button at the top of their invoice:

Stripe Invoice Payment

And clicking on it will bring up this payment form:

The real advantage, in my opinion, is that I can now control the entire branding experience, rather than having clients taken away to Paypal and then being directed back. The flow of payments is far easier, and you can still leave Paypal as an additional option if your clients really need that.

Happy freelancing!

Oct 28, 2012

Scaling Back on Social Media

Jon Lim Life, Social Media

ContextBot

From: ContextBot – xkcd

For the past few months, I’ve been scaling back on the amount I share on various social networks. My tweets have been coming with less frequency, I no longer use Path or Instagram, and I’m not sure I am even using Pinterest correctly.

I’m not knocking anyone who uses these platforms on a regular basis. They’re definitely where the digital world is heading, and people are definitely integrating them into their day to day communications.

But it’s just not for me.

This, coming from the guy who would post food photos at every opportunity, or would use twitter as a complaints board. It really just isn’t for me.

Why was I posting food photos anyway? What value was I contributing by doing so?

I couldn’t answer that question to myself in a satisfactory manner, so I stopped. Instead, I wanted to take the time I devoted to dilly dallying on social media outlets and divert it into being… a person. I wanted to have good conversations and not look at my phone. I wanted to write and create rather than consume the social channel feed.

And that’s where I’m going: back to creating.

Sep 6, 2012

Kindle Paperwhite vs Kobo Glo

Jon Lim Books, Kindle, Technology

Both Amazon and Kobo made some announcements today, revealing new versions of the Kindle and Kobo e-readers.

Introducing the Kindle Paperwhite and the Kobo Glo. (Note: Affiliate links!)

As an avid reader and user of my Kindle Keyboard, I wanted to take a look at these two side-by-side to make my purchasing decision easier and I figure I would share.

Kindle Paperwhite Kobo Glo
Display 6″ Paperwhite display with patented built-in light, 212 ppi, 16-level gray scale 6” E Ink XGA Pearl screen; 1024×768 resolution; 16-level grey scale
Size 6.7″ x 4.6″ x 0.36″ (169mm x 117mm x 9.1mm) 6.2″ x 4.5″ x 0.39″ (157mm x 114mm x 10mm)
Weight 7.5 ounces (213 grams) 6.5 ounces (185 grams)
Storage 2GB (approximately 1.25GB available for user content) 2GB (approximately 1GB available for user content)
Battery Life 28 hours of continuous use with light on 55 hours of continuous use with light on
Connectivity Wi Fi 802.11 b/g/n Wi Fi 802.11 b/g/n
Warranty 1 year limited warranty 1 year limited warranty
Return Policy Within 30 days of delivery Within 30 days of delivery

NOTE: I calculated the Kindle Paperwhite’s 28 hour battery life by taking 30 minutes per day with light on, multiplying it with 8 weeks and finding the number of hours from that. Not sure if entirely accurate, but I wanted a comparable number with Kobo Glo’s numbers.

It’s a pretty even race, from my point of view.

Personally, the most important factors are the size and weight. The Kindle Paperwhite is taller and wider than the Kobo Glo, but also a hair thinner.

I think I’m going to give both a purchase and figure out which one I like using the most. I’m a little more entrenched into the Amazon ecosystem (with plenty of books and a lot of store credit to use up) but I would be happy to switch if I received a significantly better reading experience from the Kobo Glo.

If you’re purchasing one of the new Kindle or Kobo models, please do share in the comments which one you will be buying and why. I’m very curious!

EDIT: I forgot to mention that the Kobo internal storage can be expanded by 32GB using a micro SD card. Personally, not a factor for me, but people should know.

Sep 6, 2012

Week 1 of Coding: Ouch, right in the feels.

Jon Lim Python Coding

Ah, glorious Thursday. Not even close to the end of the week and I’m writing a wrap-up of my week so far. Want to know why?

My project is broken.

Yup, absolutely broken. Well, it works up to a certain point (and was really fun writing!) but there’s no logical way to finish it.

Recapping

This week, I was spending the majority of my days getting myself setup on Python and writing a script that accesses the Last.FM API to grab all of my scrobbles throughout the years, categorize them into genre, and present the data by year to visualize the change in my musical tastes over the years.

Everything went well until the “categorizing into genres” part, because… trying to pin a single genre to an artist is apparently very difficult. Last.FM doesn’t use “genres,” they have tags that are user applied and include a high level of variance. MusicBrainz, which Last.FM utilizes (I believe) also uses tags. Scraping Wikipedia and AllMusic resulted in gigantic piles of genre for each artist, so I’ve resorted to a more manual version: I tag them all as a specific genre by hand.

It hurts. Right in the wrists. (And the feels.)

However, this week has been a really fun experience and only makes me look forward to the next project. Before I talk about that, there are some important lessons I learned throughout the week.

1) Homebrew and pip are your best friends.

Writing basic scripts in Python? Yeah, that’s no sweat.
Want to write more complex scripts that might require external libraries? Yeah, have fun compiling and installing that stuff.

Well, okay, in actuality, it’s still relatively simple. But compared to typing ‘pip pymongo‘ into the terminal? It’s quite a bit more complex!

With homebrew and pip, I managed to get MongoDB onto my development machine, install the PyMongo driver, and install the unidecode library. In a matter of seconds.

Sa-weet!

2) Unicode can burn in hell.

I spent the better part of today and yesterday figuring out how to wrangle with unicode. A few of the artists from my scrobble list have Asian characters in their name on Last.FM, and Python (or MongoDB) automatically turns them into their unicode representations.

That’s all good and well, but turning them back (and using them in functions) is an absolute nightmare. Thank goodness for unidecode for (temporarily) solving that nightmare.

3) MongoDB is pretty awesome.

During the project, I was able to pull my scrobbles down from Last.FM but I wanted to insert them into a database.

I’m used to working with MySQL so I attempted to get that up and running. Well, after half an hour of yelling at my computer, I decided to take the lazy route and check out my alternatives that might be quicker. The suggested alternatives were SQLite or some sort of NoSQL solution. I figured it would also be a good opportunity to try out those fancy datastores I kept seeing on Hacker News and settled on MongoDB.

Got it up and running within minutes on default settings, and it’s been pretty smooth sailing so far. Inserting and retrieving data has been a breeze (my dataset is only 50,000 items) and I have enjoyed the experience.

I’m not skilled enough (yet) to really grasp the differences between the different types of datastores, and I make no attempt at doing so. I was just enamoured by the incredibly short amount of time it took for me to get up and running on Mongo.

4) I took breaks by learning Spanish.

I’ve been experimenting with the Pomodoro technique (25 minute sprints, 5 minute breaks) and it’s been a really good way of creating hard deadlines and stop-points for work.

However, I generally surf during breaks and get carried away for more than 5 minutes, so I wanted to do something that allowed for shorter bursts.

Enter Duolingo.

It turns out, doing one or two lessons on Duolingo were perfect – I would sit here shouting Spanish phrases and words at my computer and laughing all the while, and my alarm would go off and I would get right back into the work.

As a result, I’ve familiarized myself with basic Spanish words and phrases, and I am working my way through as much of the Spanish portion of Duolingo as I can. It’s a win-win situation, as far as I can tell!

Want to follow my Spanish-learning progress? Check out my profile on Duolingo.

Here comes week 2!

I haven’t decided exactly what project I’ll be working on next week, but I would really like to focus on starting to incorporate tests into my code. I’ve been ignoring them for now because I figured it would be beneficial to familiarize myself with syntax over anything else.

However, if I want to get any better at this, I’ll have to learn to write code that isn’t complete crap and I think tests would be a good place to start.

In the mean time, I’m going to try to categorize my music and complete my musical visualization. Thanks for reading my weekly brain dump!

Aug 30, 2012

Gallery Separation with WordPress Lightbox Gallery Plugin

Jon Lim Coding, Technology, Wordpress

While working on a friend’s blog, I ran into a bit of a problem with having multiple Lightbox galleries on a page in WordPress: all images on a page will be in the same gallery despite being from different posts. It would basically mean that clicking on an image from one post’s gallery will allow a reader to navigate to all images on a page.

There was a simple fix, but it was rather manual. It involved taking the gallery shortcode for WordPress:

1
[gallery]

And adding a class to separate the galleries:

1
[gallery class="gallery2"]

However, this was a manual process and I was sure that there was a way to make it more automated so that I wouldn’t have to add a class for each gallery, perhaps using the post ID as the class name to separate them?

After some digging around, I found this in /wp-content/plugins/lightbox-gallery/lightbox-gallery.php:

507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
extract(shortcode_atts(array(
	'order'      => 'ASC',
	'orderby'    => 'menu_order ID',
	'id'         => $post->ID,
	'itemtag'    => 'dl',
	'icontag'    => 'dt',
	'captiontag' => 'dd',
	'columns'    => $columns,
	'size'       => $size,
	'include'    => '',
	'exclude'    => '',
	'lightboxsize' => $lightboxsize,
	'meta'       => 'false',
	'class'      => 'gallery1',
	'nofollow'   => false,
	'from'       => '',
	'num'        => '',
	'page'       => $page,
	'before' => '<div class="gallery_pagenavi">' . __('Pages:'), 'after' => '</div>',
	'link_before' => '', 'link_after' => '',
	'next_or_number' => 'number', 'nextpagelink' => __('Next page'),
	'previouspagelink' => __('Previous page'), 'pagelink' => '%', 'pagenavi' => 1
), $attr));

A simple change with the ‘class’ part of the the array do exactly what I need:

520
	'class'      => "'" . $post->ID . "'",

Ta-da! Multiple Lightbox galleries on a single page are now automatically separated by post ID without any extra manual fuss. Photos in each post will now remain sandboxed inside of each post, regardless of how many are listed on a page.

Enjoy!

Aug 27, 2012

A Cautionary Tale for PC Builders & A Sad Rant

Jon Lim custom PC, customer support, gaming, NCIX Life, Technology

Almost two months ago, near the tail end of June, I had made the decision to purchase all of the parts I would need to build a computer rig that would be strong enough to play the latest and greatest computer games that were coming out. That’s all I wanted out of it.

That’s right, I was joining the ranks of PC builders everywhere.

I chose to purchase practically everything from NCIX because they have convenient locations for me, their prices were great, and I’ve purchased some gaming-related peripherals from them before without any issues. Sure, there was that initial snafu of “your motherboard isn’t ready yet, so… wait a week, thanks” which was fine by me, I was off to Los Angeles for a week, so I could afford to wait.

I came home and picked up all of computer parts on July 11th, a day after I got back, and promptly assembled my computer. It booted up, I installed everything onto it, and it ran like a dream.

An hour after I finished installing all the right drivers, I was off playing the Counter-Strike: Global Offensive beta. Perfect.

Problems? Let’s get some.

Fast forward three weeks: I had been playing co-op Borderlands, when I started noticing some weird artifacting on the screen. I didn’t think much of it, maybe chalking it up to a one time glitch or the graphics card, an MSI Radeon HD 7950, may have been running hot that one time, so I slept on it.

I woke up, they were still present, to the point that my Flash player was no longer working and any sort of process that involved the graphics card could (and would) crash my computer. Checked the temperatures and the graphics card would run at 35 degrees MAX, so it wasn’t overheating or anything.

Crap.

Sent an email to my local NCIX to ask what the hell is going on, and they suggested bringing it in. I brought in my entire tower into NCIX on August 7th, being told almost immediately that my graphics card was defective (was showing artifacts ALL over the screen during testing) and that I could exchange it.

Fun fact: did you know that you can’t do a straight exchange without a box?

I did not know that, being used to just dumping my Apple computers onto the desks of those Geniuses at Apple Stores and being given replacements, so imagine how awful I felt after learning this and having thrown away the boxes the week before. Yes, exactly one week before.

After learning that fun fact, they said an exchange was still possible. Oh good, good good. The real problem: they didn’t have any MSI Radeon HD 7950 Twin Frozr cards in the store. Or in Ontario. D’oh!

Good news: they could take my card (as my 30 day warranty wouldn’t last until the cards came) and hand me a new one as soon as they got them in the store. Their predicted date was August 13th, as they had already placed their orders.

Awesome, I could wait five days. Five gaming-less days. No problem.

Oh, today is August 27th. Where has the time gone?

In the span of the 21 days that I have had a useless gaming computer, I spent 11 of those days (weekdays since the 13th) calling my local NCIX to check if they have it in stock yet (nothing in Ontario still!) and I have tweeted and have been in contact with their Customer Care department.

Nothing has happened. At all.

This week marks an interesting intersection in lengths of time: I have been able to use my gaming computer for just as long as it has been non-operational. I take full responsibility for not having the box (which prevented me from getting a replacement card) but I could have flown to Vancouver, picked up a new graphics card from NCIX, and flown back here to make the exchange.

So a few lessons for those of you who want to build a computer:

  • Do not throw away boxes. I had no idea this was an actual issue, but I guess when you’re just the retail part of a supply chain, you don’t have much say in the matter.
  • A 30-day warranty is not enough. If this graphics card failed after the 30 days that NCIX gives each purchase, you can definitely bet that I would be completely out of luck considering I had no box.
  • Customer Care cannot do a damned thing. They are all great people manning the phones, emails, and Twitter at NCIX, but all they can ever do is investigate. I have had zero progress through any of these channels.
  • Compensation wouldn’t mean much for this. Maybe my situation is a bit on the super-rare side, but I’m not even sure how to feel anymore. An apology would be nice, but I don’t think I could even ask for anything to compensate. What are they going to offer, the crappy AR drones their phone system keeps advertising?

If you plan on building a computer anytime soon, I hope you can avoid the frustration that I have had to suffer through. This isn’t a cautionary tale against NCIX, just an example of some of the stupid things that can happen.

Best of luck.

1 2 3 4 5 6

Back to top

© JonLim.ca 2013
Powered by WordPress • Themify WordPress Themes