Thursday, November 3, 2011

Huawei U8180 Android phone goes for only N19,000 on Etisalat network.


You've heard so much hype about iPhone or Android but have never really gotten to use any of these devices, Etisalat Nigeria gives you a good offer to get a pretty decent Android phone for just N18,999 and it's exclusive to their network only. That is not all, you also enjoy special offers including:

  • Free monthly 50MB for 4 months (Free 200MB in total)
  • Cheapest call rates of 20kobo/sec with no access fee for first 4 months and for subsequent months on purchase of consistent data plans.
Here are some of it's features:
  • Android 2.2 Smartphone
  • 2.8 inch full capacity touch screen
  • Accelerometer function
  • HSDPA of up to 7.2 Mbps
  • Etisalat customized device(Hardware & Software)
  • Wi-Fi 802.11 b/g/n, Wi-Fi hotspot
  • Bluetooth function, FM radio and GPS functionality
  • 3.2 MP camera.
  • Document viewer; word, excel, PDF, Adobe Flash.
Shelling out less than N20,000 for a decent Android phone as this, isn't a bad deal when you think of how much it costs to get the amazing ones like Samsung Galaxy S II which was offered to me for N105,000 at Slot recently, though MTN seems to offer the same S II for N90,000 I think.

But one thing of note is that the Etisalat Gaga Android phone is locked to their network :), which is pretty sad, but they all do this, so I wouldn't really say much about that.

Free browsing on Glo Network all day long

Recently acquired my 7th or 8th line, which is an MTN line by way and was quite undecided as to which of their packages to sign up for. I had to get a third MTN line as the second had an issue I couldn't contend with. Friends and family suggested I sign up for the MTN Friends and Family package but in the process of my deciding on the package to put on the new SIM, I discovered MTN had a package called Funlink reloaded that had free 4MB of data for use everyday between the hours of 12:30am - 4:30am and I was disappointed in MTN usual, because they've been known to rarely give out things for FREE as such. Anytime they say they're giving out something for free, you had better be watchful and read between the lines. Why would any reasonable person stay up late at night all because of 4MB free browsing? MTN should for once surprise us with their offerings. I'm not really an MTN basher, but I believe they should occasionally try to do things right for their customers. I do use their modem to browse as it's the best I've used so far in this country and I've been on the network for almost a year now and renew almost thrice a month, so I'm not really an hater as such.

Anyway, to go straight to the point of my post, some months ago, I got a notification from Glo when I did a 1000 naira recharge that I was given 200MB free internet to use at any time of the day and I was like wow, that's a good one coming from Glo, but what struck me was that I've been browsing for free since then up till now and I wondered if it was still on the 200MB data plan. I wasn't so sure because I browse more on my Macbook with my MTN modem than I do on my phones, so I thought I was still within the limit of 200MB, only to read a post on Mobility blog a few days ago and discovered that Glo actually doled out GBs of data for people to use on their phones. MTN can you beat that?

I occasionally get charged if I use the wrong access point to browse on my E51, but I know better now which access point to use when I'd rather not be charged for my browsing. The way it works is really simple, load N500 or N1000 recharge cards and you receive free bonus data to browse with either you are aware of it or not. The trick is to ensure that you use Glo’s Glodirect configuration settings while browsing. If you have all sorts of access points on your phone, delete them, remove your SIM and reinsert it to have new configuration sent to you. But if you'd rather not delete them and just add new access points, you can use this setting:


Configuration name: Glodirect
APN:                         glosecure
Username:                 gprs
Password:                  gprs

So you don't have to wait till 12:30am to use 4MB of free internet on MTN, go get a Glo line if you don't have one. And for you Glo, thanks for this wonderful offer. Anyway, so much for the free publicity for Glo, I hope you do more as regards the quality of calls on your network as it can be frustrating at-times and it's seriously pissing me off after 4+ years on being on your network and I'm already thinking of making MTN my primary line, if solely for quality calls.

In case you get stuck in the process of enjoying the free data Glo offers on their network right now, head off to this post and read the comments to see how others overcame their own issue. All the best in your quest.

Google Reader Redesign: A Disaster

A few days ago when I logged into my reader account and saw the new visual changes, I hated Google immediately for it. I spend more time within reader than I do on Facebook these days, and even of Twitter sometimes, but the new redesign of reader repels me more than the engagement it brings. I stand to believe that just as it was discovered than some Google execs don't use G+, the same also applies to whoever did the redesign because reading in reader these days is not soothing at all. It tires the person reading easily and makes me just scan through and close the window immediately. I'm not alone on this anyway; Brian Shih,  a former Project Manager on Google Reader also shares the same thought with me
In the name of visual consistency, Google has updated the visual style to match Gmail, Calendar and Docs. I have nothing against visual consistency (and in fact, this something that Google should be doing), but it's as if whoever made the update did so without ever actually using the product to, you know, read something.
Kevin Fox, a former lead designer for Google Reader also disagrees with the new redesign and is offering his services to Google to help enhance and restore the utility of Google Reader, while keeping it in line with Google’s new visual standards requirements. He's even willing to go an extra mile and put his current projects on hold to ensure that Google Reader keeps its place as the premier news reader.
And so I put my resources where my mouth is. As the former lead designer for Google Reader, I offer my services to Google, rejoining for a three month contract in order to restore and enhance the utility of Google Reader, while keeping it in line with Google’s new visual standards requirements. I will put my current projects on hold to ensure that Google Reader keeps its place as the premier news reader, and raises the bar of what a social newsreader can be.
 I know it's all about Google+ that these is happening; just as Google killed it's other plus, which was immensely useful for search, all because of Google+. I know the baseline matters, but keeping your users or customers happy also does.
Google+ is the fastest-growing social network in history, with 40 million users since its June launch. To help them focus, Google's quietly shuttered a number of products, removing iGoogle and Google Reader's social features and closing Google Labs, Buzz, Jaiku and Code Search in the last two weeks alone.
But in doing so, they also killed off one of its oldest and most useful tools, from its most popular product.
On Wednesday, Google retired a longer-standing "plus": the + operator, a standard bit of syntax used to force words and phrases to appear in search results. The operator was part of Google since its launch in 1997 and built into every search engine since.
I hope Google doesn't kill off everything besides Google+ with this act of killing everything in its path they've embarked upon.

So Google, some of us seriously dig the old reader, even though it could do with some improvements, but I believe you don't have to force G+ down our throats like you're doing with almost everything. There are better ways to engage us than the way you're doing it.

Wednesday, November 2, 2011

Thursday, October 27, 2011

So LWUIT does that too?

I was recently developing a mobile app with the LightWeight UI Toolkit (LWUIT) that required me to save state in a database of some sort on the mobile phone and I didn't want to go in the way of manually saving bytes with the Record Management Store (RMS), so I opted for Floggy - a free object persistence framework for J2ME/MIDP applications. The main goal of this framework is to abstract the data persistence details from the developer, reducing the development and maintenance effort. In the process of reading up on Floggy, I stumbled on an old post by Shai where I discovered that LWUIT IO already has most of the persistence functionalities I need. So if at any time you need to go a little above what RMS offers, you can try out LWUIT IO, but if you'd rather not use LWUIT at all, you can give Floggy a trial instead.

Subscribe to the NEW Java Magazine

Java Magazine (1st Issue)

Oracle has just released a digital and mobile format of Java Magazine. Java Magazine will be published on a bi-monthly basis in digital and mobile formats and is an essential source of knowledge about Java technology, the Java programming language, and Java-based applications for people who rely on them in their professional careers, or who aspire to. You can sign up today here to stay informed on all things Java!

Thursday, October 20, 2011

Interesting JavaOne 2011 Content Slides and Catalog, Part 2

Here's the continuation of some interesting JavaOne 2011 tracks:

Java ME, Mobile, Embedded and Devices

Java SE, Client Side Technologies and Rich User Experiences

There are still quite a lot more interesting ones too numerous to list. You can peruse the whole catalog here. Sun in those days used to make available all the content catalog and slides as a single archive, but it seems Oracle would rather have you download them one by one in different windows.

Interesting JavaOne 2011 Content Slides & Content Catalog

The Content Catalog for JavaOne 2011 is available here. You can use the fields provided to narrow down your interest, or if you'd rather peruse the available tracks, just select the track you are interested in from the drop-down and then click the search button. When the list of sessions are displayed, click the PDF icon at the right-hand-side to download the associated slides for the session.

Here are the links to the slides (PDF) of the ones that caught my fancy:

Core Java Platform


(to be continued)

Ooops, but I didn't check this item.

It is always very important to read the changelog of libraries which you occasionally put to use. I would have spent the whole day trying to figure out why my checkbox selections weren't working well but luckily enough, I read through the changelog of jQuery 1.6 a few days ago, so immediately I discovered my checkboxes selections weren't being detected properly in the code, I knew who the culprit could be.

I recently modified some sections of a client website to use jQuery 1.6 because of the .data() method introduced in jQuery 1.5, which allows you to automatically import any data- attributes that were set on the element and convert them to JavaScript values using JSON semantics. This makes it easy to store the data you'd be using later on the node itself rather than parsing the DOM later to extract it. This feature also received a major change in the way it works in jQuery 1.6. In jQuery 1.6, this feature has been updated to match the W3C HTML5 spec with regards to camel-casing data attributes that have embedded dashes. So for example in jQuery 1.5.2, an attribute of data-max-value="15" would create a data object of { max-value: 15 } but as of jQuery 1.6 it sets { maxValue: 15 }.

Before jQuery 1.6, you can check if a particular checkbox is checked with $('#myCheckboxID').attr('checked') but that no longer works as expected in jQuery 1.6+. Previously, .attr("checked") returned the Boolean property value (true) but as of jQuery 1.6 it returns the actual value of the attribute (an empty string), which doesn’t change when the user clicks the checkbox to change its state.

In code that uses jQuery 1.6 or newer, the new method $(this).prop("checked") retrieves the same value as this.checked and is relatively fast. Finally, the expression $(this).is(":checked") works for all versions of jQuery.

So all I had to do was to change my previous code from $('#myCheckboxID').attr('checked') to $('#myCheckboxID').prop('checked'). If not that I had read the changelog earlier, I probably would have spent the whole day chasing around an unknown bug in my code.

Sunday, October 16, 2011

Hey ma'am, where are my cookies?


I recently made some big changes to a content management system I built for one of my clients about 5 years ago. I worked on the site's SEO, enabled clean URLs via .htaccess files because the CMS wasn't built with MVC where there would probably have being a main controller that routes requests to others.

The problem started after I had added all the necessary pages but spent the next few days worrying about a bug in one of my scripts, as the cookies added on some pages of the site do not propagate to other pages. Looking through Chrome Developer Tools and Firefox's Firebug, I could see all the cookies, but when I fetch the cookies via document.cookie, I only get to see some of the cookies and not all. I wondered why a script that was perfectly working before changes to it's routing stopped working. I spent several days modifying my script that manages cookies only to discover after almost a week of battling with it that you should think twice before leaving the path property of a cookie blank when creating it.

When you leave the path property of a cookie blank, it means that only websites in that domain (including the path) that set the cookie can retrieve it. For example, if you create a cookie on the page www.mywebsite.com/books and left the path property blank, it wouldn't be accessible from www.mywebsite.com/novels because the path for the created cookies are /books but you are trying to access it from /novels. So, to avoid unnecessary headache while managing cookies in your application or on your website, ensure that you set the path to the root .i.e. '/', instead of leaving it blank if you want it to be accessible from all paths within that domain.

The culprit in my case was:
document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");

but I eventually overcame the problem by modifying the path of any created cookies to be '/' instead of leaving it blank as obtainable above.
document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");

This StackOverflow answer saved my ass . You can read more about cookies here.

Where have you been?

It's been quite awhile since I last put up a post on this blog. I planned turning a new leaf earlier in the year but somehow couldn't as my engagements and activities kept me busy all throughout the year. There were lots of times I had a developmental challenges and plan posting the solutions I used to overcome the problems, but I just kept procrastinating all along. It was just today I decided to do it no matter what.

To start with, how has been the year so far? Beautiful I hope. Well, it has been beautiful for me too, though it wasn't without the usual ups and downs, but we however thank God we're still standing. We almost lost one of houses completely, earlier in the year as one of the tenants raised down two out of four flats with fire and disappeared into thin air, but we thank God for his mercy and faithfulness.

Was contacted earlier in the year by Microsoft via LinkedIn to send in my CV and fill the skills self-assessment document they sent to me. I had to let the Staffing Lead for MEA Services Recruitment know that I was more of open-source than closed source and last worked actively with some of their technology stacks over 3 years ago while I was at Quanteq, but they however still wanted me to go ahead and send my details. Funnily enough, I'm not even well versed with Windows 7. Seems I rated myself a 2/10 or 3/10 as I had not used the OS for more than probably 3 hours since it came out. It's not like I can't do serious stuff with it, but I've not dissected apart the way I've done with Windows XP, which is still what I use on my desktop machine. Whatever I can do on it would be with the knowledge I have with Windows XP. My OS of choice since the last two years has been Apple's Mac OS X. Anyway, the long and short of it is that the recruitment never pulled through as they needed someone with stronger MS Technical skills :)

However, if you think you have what it takes to do great stuff with Microsoft stack of technologies and would like to work with them, do contact me and if convinced, I'd forward your CV to the Staffing Lead for MEA.

It was a pity we lost our dear Steve Jobs. I never had the opportunity to meet him and never really dreamt of meeting him, but I must confess that he's touched my life in so many ways even though our paths have never crossed and beyond me being an apple fan-boy, of which I'm not one, I just love the way their products ooze cool and deliver beyond your expectations, even though my last iPod-Touch didn't last more than 3 months before it gave up the ghost. He touched our lives in so many personal, delightful & emotional ways, kept everyone on their toes & totally disrupted the industry leaving behind a few casualties. Android wouldn't have gotten this far if it hadn't been for SJ and his team, and the best Android phone today - Samsung Galaxy S II, would have had no one to steal ideas from. I couldn't control the tears as it dropped when I read the news around 3.30am the day after his death. Steve, though we never met, you were one of my greatest inspirations. Thanks for thinking different. Adieu!

Wednesday, March 24, 2010

Hollywood Actors star in Nollywood movie


Compliments to all my readers out there. Sorry I've been away for so long, it's being due to my very tight schedule, lots of codes to write, meetings to attend to and all. It's been a beautiful year so far. Hope yours too has been beautiful. I have a long list of posts lined up for this year which I'd try to post as soon as possible.

I stumbled across some information today that makes me very excited. Fred Amata is currently working on a movie in Kenya that stars big Hollywood actors like Sarah Wayne Calliese also known as Dr. Sara Tancredi in Prison Break - remember her? Hakeem Kae-Kazim (Pirates of the Carribean & Hotel Rwanda), William George “Billy” Zane Jr. (Titanic). It's a good thing to see actors like Fred Amata doing us proud by working on producing quality flicks with beautiful actors. Fred Amata has distinguished himself from the likes of Saint Obi who justified the production of substandard Nollywood movies at TED sometimes ago by telling us that they spend a million naira or thereabout to produce movies for Nigerians who spend below a dollar per day, rather than for those who live in glass houses and can afford to watch films like RobotCop. I'm really looking forward to watching the movie. You can get to read more here