Tuesday, May 29, 2012

Bobble Jug mini review

I found the Bobble Jug at the grocery store and I just had to buy it. I love the Bobbles so I figured why not. It looks beautiful and its slender figure eats up less refrigerator real estate. It also promises that filling it up will be a breeze without having to fill up a reservoir like the Brita filters.

Actually, the Bobble Jug is kind of annoying. The first time I used it, the water would go right through and I didn't have to wait like I usually do with my Brita filter. After that first use, I have to use a measuring cup with a spout to fill it. It is annoying to stand there and watch it slowly fill up. I really hope that this is just a defect with my filter.

Design
The design is beautiful. It kind of looks like a cute dolphin. Puts my Brita filter to shame.

Taste
Water tastes good from it. My tap water has this weird metallic taste to it and the Bobble definitely filters it out.  Passes my girlfriend's taste test which is tough to do. As such, it is worth my efforts to use it as I'm sick of tired of water bottles around the apartment.

Should you buy it? 
I don't know actually. It definitely looks better than a Brita filter but at least a Brita filter has that massive reservoir for filling up. Time will tell whether I just got a bad filter this one time. If this is the norm, then no, it is way too annoying to take 5 min to fill it up instead of the <1min it should take. But be forewarned and save the receipt.

Samsung Galaxy Tab Review


I received a free 3G Galaxy Tab 10.1 from Rogers because I was a good little boy and ponied up my soul for their service. Important note, Rogers owns the monopoly in my neighbourhood so it wasn't like I had much of a choice for TV & high speed internet service. Plus they over charged me 700$ so yea...

The Screen
The resolution doesn't compare to an iPad 2 or the new iPad. But it is great nonetheless. Very bright and clear at all angles. Hey, its got Gorilla glass! So I have yet to damage it in anyway and I use it everyday. It plays video and its pretty good mobile HD machine.

The screen is a funny wide screen setup. I hate it. Sure it looks great for HD movies but I spend 90% of my time in portrait mode reading or surfing. Add that with a browser that sucks, then its really annoying to use.


Audio
The speakers are great. Not sure if I'm impressed by the stereo sound but the sound that does come out is great. I've played with too many electronics with speakers that sound better spitting out white noise than speech or music. My only problem is that the speakers are easy to cover with your hands and when in portrait mode, you lose a speaker. But at least you only one speaker and rarely both at the same time.


Performance
Pretty good. I haven't had any issues with it. Browser performance is not great but what can you expect with a mobile browser. I just wish it would produce Javascript heavy sites correctly but otherwise, it is a pleasant experience.

I only wish I could get Android 4.0 on it but frankly, I've given up hope on the carriers to update our devices. I think the tablet would shine with Android 4.0.

Battery Life
Damn thing just keeps going. I can almost get 2 days out of it with just casual surfing on WiFi. It is definitely an all day machine.

Build Quality 
Pretty good. Screen uses Gorilla glass and the back is a nice sturdy plastic. It also doesn't flex much and has a nice weight to it.

Conclusion
Can't wait to see how Samsung improves the Tab with the up coming releases. Should you buy this? Not really since its pretty much out dated now. But as a cheap tablet that you can throw around instead risking your laptop, this is a good buy. I bring it all over the place instead of my laptop now.

Google/Samsung Galaxy Nexus Review

I finally bit the bullet and got a Samsung Galaxy Nexus 2 months ago. So what is there to like? Not much really. I'm only going to talk about it as a consumer phone, not as a developer phone. The only saving grace the phone has is that it has an unlocked boot loader. Useful for 1% of the general population so I'm not even going to talk about it.

The Screen
Lets start off with the screen because its massive. Its 4.64 inches of pseudo 720p HD goodness. Its pretty clear and the brightness is great. The ambient light sensor is not reliable and will not smoothly gradient the light output. It takes a good minute in most cases for the light sensor to figure out I'm in day light. This is the case on my 4.0.1 phone since Telus has yet to push any updates out (what is the point of buying a Google flagship phone if I can't get the pushed updates?). My Galaxy Tab doesn't have this issue and runs Android 3.0.

The glass is not scratch proof as evidence with the scratches on the front after 2 weeks of use. So I went out and bought a Zagg InvisibleShield to protect it. Well that just made my phone uglier, reduced the light output, and instead of scratches, I have dents (from my finger nails and lab table chipping at it). Why did Google ship this without Gorilla glass is beyond me. I would recommend this phone to no one but those who are most protective of their phones because it doesn't have Gorilla glass. My LG Optimus 7 had Gorilla glass and survived 2 years of abuse. My girlfriend's brand new Nokia Lumia 800 is practically indestructible. I have yet to see scratches from her car keys. Same with her iPhone, it survived just fine without a screen protector in a purse. But my Nexus? Oh no, 2 months in my pocket with no keys, no credit cards, etc and it gets a scratch.

Performance
Its great. Its quite fast and a much improved user experience over Android 3.0 The bad? It crashes all the time. For widgets, I have my calendar, audio player, and weather app. For apps, mostly nerdy stuff like ftp, ssh, bunch of web browsers and yelp. Yet, just this week, my phone app crashed. What is the point of having a phone if the phone app crashes?! Unacceptable. Should be the one app that can't ever crash.

The built in GPS is wonderful. Super accurate and with the compass, it makes navigating simple. The only downside? Its a massive battery drain with the big screen and 3G data. I burnt threw 25% of my battery within 20 mins of Google Navigation. Ottawa has spotty cell reception so I bet that also has something to do with it. On a side note, getting burgers at Hintonburger for lunch is awesome.

Battery Life
I can get through an entire day with just 3G surfing and music. I have all push notification disabled except for chat messages and Skype. Email is a big drain on my phone for some reason so its set to manual updates. God help you if you want to use the GPS or video. The phone also will not charge in my car's 3rd party charger. Its been a pretty good charger as it can charge an iPhone, LG Optimus 7, Nokia Lumia 800 from zero charge to full charger. Not all my chargers will do that. But no, my Nexus is too good for it and refuses to charge from it. It can suckle some power from it until I turn on the GPS. Then all bets are off and it just drains the battery.So if you plan to use this as a GPS unit, waste your money on a Samsung car charger.

Audio
The headphones it came with are acceptable. Much better than the ones that came with the Nokia Lumia and the iPhone 4 (haven't tried the 4S). Plus with the ability to set an EQ in the audio software, you can tweak it a bit to balance out the sound. For some reason, someone at Google thought the 3D audio feature was fun and included it. Maybe if it was THX or Dolby certified and can power a 5 channel headphone, we'll talk. Otherwise, its a negative for even considering it a feature. The headphones comes with a single button to control the audio. One press is for play/stop, 2 for next song. Note, it looks like its running on a low interrupt level because it would often miss my 2 taps to change songs and treat it as a stop. You have to time it just right, not too fast.

As for the music player, I have no idea why but some songs will chop up as if the phone's CPU all of a sudden hit a heavy load. Pretty annoying.

Build Quality 
Mediocre really. Bland style and it a weird plastic back. Good engineering went into the back as its super thin yet manages to keep the phone's battery and SIM card tucked away. The chassis is solid and it has survived a couple falls perfectly fine. Plastic is great that way. Can't complain but its no looker.

Conclusion
Don't buy this phone. Samsung is coming out with the REAL Galaxy phones soon so I would suggest checking those out over this phone. It is quite unfortunate the Nokia Lumia didn't have a firm release date because I would have bought that over this phone any day of the week. It is also a shame that the carriers and manufacturer don't think updating their old phones is important cause I would have loved to get an HTC instead but the ones on the market were all old phones. God knows when they will get Android 4.0.

Sunday, February 26, 2012

What does an iPhone look like after being stepped on by a horse


This is my girlfriend's iPhone after being trampled on by a horse. I will be opening it up to see if I can repair it. The front side is perfectly fine but I won't know till I get the LCD powered on.

Coincidentally, I also have a water damaged iPhone 3GS that I got from a colleague. I'm going to be opening that one up too and seeing if I can repair it.

Thursday, February 16, 2012

Just a little frustration

Picard - Facepalm (Ready Room)
I'm doing code integration and verification and found something that upsets me just a bit more than it should.

I basically came across a function from a header file and it asked for a pointer to an array and another pointer where it would return the size of the array. It would then fill said array with data and return an error control back to the caller according to the comments.

Example function prototype:
int badFunction( int *outputPointer2Array, int *OutputSizeOfArray);

I got really suspicious of the function as it didn't ask for the size of the array to be passed. I was wondering, well what happens if someone came and provided an array that has a size that is different than the expected? Maybe it will just malloc it for me and return an array with its size... Nope. The sizeOfArray pointer had given me hope that I would be able to tell it how much memory I had allocated for the function but no, it is strictly used as an output.

So I dug deeper and found out a few serious concerns with the function.

#1. The function would fail if it received a NULL pointer. Not really a bad thing but it ties into the rest.
#2. The size of the array is never constant and can change depending on the hardware.
#3. It does not malloc memory for me and requires that I manage the memory for it.
#4. No error checking at all to make sure the function doesn't over flow the array.

Together, all of those problems leads to a potential situation where the memory will become corrupted if someone didn't realize the array size could be dynamic. Unfortunately, you cannot know ahead of time what the size of the array is without actually knowing the hardware. If a poor soul had no idea and put in an array that was too small... the function would have over flowed and corrupted the memory.

So I wasted some time sanitizing my inputs to the function so I malloc enough memory for our particular hardware every time we call it. As well, I also added a few checks to make sure the function did not overflow out of the array. If it did, then the driver would at least be able to report it back to the kernel that the memory is no longer valid.

A good, dead simple design for the function would have prevented this issue. From the looks of it, I'm assuming it was written by someone new to C and didn't understand how arrays and pointers worked.

Next time, we'll discuss why " if ( sizeof( *pointer2array) > 10)" is also not valid and makes me face palm.


Friday, December 23, 2011

Possible Downtime

For reasons I won't talk about right now, jaimeyu.com may go down for a few days. This is merely a warning as I'm hoping nothing goes wrong over the holidays. I am switching domain name providers and there is a small chance you may not be able to get to the site but I think this scenario won't happen. So Happy New Year!

Update: Had things go awry with my domain proxy so it looks like I'm locked for 60 days before I can move my domain again. Very annoying. I'm still planning the move nonetheless but it will be sometime in spring.

Last day at Tyco

Wow. Today was my last day at Tyco. It's A bitter sweet feeling leaving the company. Luckily, I've gotten good projects and pretty much had a good time. Leaving a lot of good co workers behind is probably the hardest part. I also feel bad beside I left my colleagues with a significant amount of work that i was responsible of. I was partitioning my time today for helping them out so they can have a head start. Especially one where the code size ib gave was much too big in comparison to another prototype I had built. I have no idea why the prototype I gave doesn't work. Most likely something broke as I scrambled to get it packed up for someone else to work on. Sadly, I was one of the last people to leave the office today. I wasn't counting on it being a half day so I actually spent the morning running a test and helping a colleague. Oups. Maybe it's a message I'm working too much. But now it's time to move on to a new job and a new city. I will be working at Thales and it sounds like I will get a chance to continue working with embedded software and other fields. I'm looking forward to working with them and expand my experience and skill sets. In other news, i now have a bunch of free time. I'm wounding what I'm going to do Monday morning with no work. I will definitely be packing my stuff in preparation of the move. But that shouldn't be to bad. I don't have a lot of stuff to begin with. Maybe I will get on that serial sniffer application I've been meaning to write. Would have been nice to have. More extensible version than the one I wrote at work. Plus it would be open source so I don't have to hide it like my other stuff because it was created at work. So I wish you all a happy holiday and a new year!