Wednesday, 30 June 2010

My Google Nexus One Experience

I bought my Google Nexus One on the 17th of February 2010 and have been using it since. So I wanted to share some information about this phone.

I think this is an excellent phone and I don't have any regrets.

How did I get my hands on it?
I friend of mine bought it in America and shipped it to New Zealand and I bought it from him. The phone came with the latest update which meant that I had pinch to zoom out of the box.

You cant tell how good a phone is until you try it.

Features of the phone which I really like:
  • Unlike the iPhone you can have widgets on any of the 5 home pages. Some really cool widgets are:
    • The power control - There are 5 buttons on this widget which allow you to turn on and off the following.
      1. WI-FI
      2. Bluetooth
      3. GPS
      4. Auto-sync
      5. Screen brightness
  • The flashing trackball.
    • When you get any sort of notification you can choose what things should happen. One of them is making the trackball blink ever x seconds.
    • This is very handy. You can see if you have any notifications without having to turn the phone on.
  • The integration with all the Google applications are excellent. Obviously its a Google Phone.
    • The contact sync is excellent. Update your contacts in GMail or on your phone any everything is in sync.
  • The android market is great. Easy to browse and install apps. I have not seen the apple app store from an apple device so I can't make any comparison. The android market displays screenshots of the apps so this helps when you are trying to decide which application to install.
  • Multi-tasking is great. How does it work?
    • Lets say you are writing a SMS, but you need to look up something on the Internet.
    • Click on the home button. This will save the state of the SMS.
    • Go and find whatever you wanted on the Internet.
    • Hold the home button down and you will see the last 6 applications that you have used.
    • Select the SMS application and continue working.
  • The notification bar at the top of the phone is excellent. All your notifications can be seen it one place.


Some problems with the phone:
  • Every now and then I have to restart the phone. I don't know if you to do this on the iPhone also. 
  • Sometimes after playing a game or working with an app, the touch screen calibrations is not accurate. I would touch somewhere on the screen and it would actually think its somewhere a little below that.
    • Solution: Just lock and unlock your phone using the button at the top of the phone and everything is fine again.
  • Games are not as good as one the apple devices. (iPhone and iPod touch)
  • The animation and effects are good on the phone, but not as good as on the iPhone.
    • When you turn the phone from portrait to landscape, iPhone does the nice rotate. The Nexus One just changes screens normally.
    • On the iPhone when you send a message, the message flows beautifully from the compose section to the threaded view.

Currently I am waiting for the android 2.2 update. Its suppose to make the phone 4 to 5 times faster and has lots more improved features. I personally am looking forward to the following in android 2.2
  • Next to the all apps button at the bottom, there will also be a phone and Internet icon. This will be very handy because I make a lots of calls.
  • USB tethering and WI-FI hotpot.
  • Update all of your apps with a single click.
  • The phone is already this fast, how much faster can it get.
I hope that gives you an insight off the pros and cons of the Nexus One.

Monday, 18 January 2010

Unreliable Internet Connection

I recently experienced a very unreliable internet connection at home. My internet kept on disconnecting and at times would not even connect.

So I lodged a fault with my ISP and someone came around to investigate. This is what happened.

The first thing was to test the phone jack that the ASDL Modem was plugged into. The technical had a device which plugs into the phone jack and connects to the exchange and can generate some statistics like speed, noise etc.

Before coming to my house, the technical was at the exchange testing my connection. He said that connection speed at the exchange was 16mbps and at my house it was 11mbps. He said that I live approximately 3km from the exchange. He made the point that I am very lucky to get those sort of speeds. He said people down the road we only getting about 2 to 3mbps.

For some reason, his device was not connecting and eventually it did connect. The technician decided to try another phone jack because it shouldn't take that long to connect. But surprisingly it connected straight away at the other phone jack. That meant something was wrong with the first phone jack.

So he plugged in his device into the original phone jack and it connect ok. He called the ISP to check that the statistics he is viewing on his device has the same readings as the ISP and they were the same.
So the technician said that my ADSL router might be the problem.

I have a netgear router. And the technician said these routers work very well when they are new and as they get older they dont perform that well and can play up. I have personally noticed that the performace of my wireless has degraded over time.

I then asked the technician if there was something wrong with the phone jack itself. Some sort of lose wiring. So he opened it up and had a long look at the connection. He pointed out some mold/fungus in the connection and that could be causing the problem.

He then installed a new phone jack and tested it again. The statistics where slightly better than before. I plugged my router into the phone jack and it also connected relatively quickly. I had to just monitor my connection over the next couple of days.

He suggested that if I experience these problems agains, to try another router because everything else seems to be fine.

Conclusion
The cause of my unreliable internet connection was some mold/fungus in the wiring in the phone jack. Who would have thought this would be the problem! After the phone jack was changed, my internet has been very reliable.

Note: Having an alarm system is also known to cause internet problems. If you have a monitored alarm, some special wiring needs to be done so the alarm is using the correct channels of the phone line and does not interfer with the internet connection. Its some sort of splitting so that you dont have to use line filters in the house.

Saturday, 22 August 2009

Free SMS via Twitter

Did you know it is possible to send SMS(Text Messages) to your friends for free using Twitter. Let me explain.

Receiving tweets via SMS
In some countries, you can receive twitter updates via SMS to your mobile phone and you can also send tweets via SMS. This is quite handy if you don't own a smart phone.

You first have to check with your mobile service provider whether they provide this service.

For example:
In New Zealand, Vodafone and Telecom will send tweets to your phone for free but tweeting via SMS will cost the normal charges.
The service it very fast. As soon as you tweet, within a couple of seconds the SMS will be received.

How do you set this up?
  • Log onto twitter
  • Go to the "Settings" link in the top right
  • Go to the "Devices" tab.
  • Provide the details required. They ask for your mobile number
  • They will display a code which you need to text to a number they show in order to verify the mobile user.
  • You are done.
You can choose from which users you want to receive updates
This is a very nice feature because you don't want to receive SMS tweets all day long.
If you go to the list of the people that you follow, you will notice that you can select from which people you would like to receive SMS updates. This just gives the user more control of what content they would like to receive via SMS.

Sleep Interval
You can also specific a period of time where you don't want to receive SMS updates on your mobile phone. This can be setup in the "Devices" tab.
For example, if you set the period from 9PM to 9AM, you will not get any tweets to your phone during that time interval which is handy if you don't want to be interrupted when you sleep.

Since you have everything setup and have some background information, I can now explain how the free texting/SMS to your friends can work.

Free SMS
This idea assumes that your friends are on twitter and have SMS alerts setup.

If you direct message the person, that person will get that message as a text message and no one else will know about it. Its just between you and the person it was sent to.

Example 1:
You are sitting at your computer and you want to message your mate. Just log onto twitter and send then a direct message.

Example 2:
If you have a smart phone which can access the Internet, you could also log onto twitter and and direct message them. If there is free Wi-Fi then there is no cost to you.

You can also take advantage of twitters broadcasting capabilities.
For example, if you want to message something to all of your friends, you could just send a normal tweet and then all your friends would get that message on their mobile phones. So you don't have to text each of your friends one by one.


Facebook Status Update
I have setup selective Facebook updates from my twitter account.
This means if I tweet and its end with "#fb", that tweet will also be posted as a status update on Facebook.
This is another handy way to update your Facebook from your phone.

Tuesday, 16 June 2009

Being Agile

One of the key goals of any software development company is to be agile regarding how quickly the company can respond to clients feedback. Its known that requirements are always changing and it can be difficult to react to these changes quickly.
When companies are not agile enough, clients can become disgruntled as there feedback is not been acted upon and companies could lose valuable clients.

I will discuss a couple of ways a software company can be more agile. The faster you meet your customers requirements, the happy your customers will be, which means a more successful company.

Agile Software Development Process

Firstly you must have an agile software development process in place. There is lots of detailed information on Wikipedia
The main idea is having quick short iterations of the software development life-cycle.

One of my favourite approaches is Scrum.
Below is an excellent video explaining how scrum works. I highly recommend that you watch it.


This video is from Hamid Shojaee who is the CEO of Axosoft. His company makes software change management systems which supports the scrum methodology very well.

I believe that scrum is one of the best processes. After watching the video you will think, how come I didn't come up with this process. One of my favourite aspects of this is the Burn down charts. It gives you great visibility of how the project is progressing.

Other Issues

Existing Code Base
Changing requirement means adding new functionality, improving and refactoring code etc.

If your existing code base in not well designed, architecture and tested, then maintaining this code base could prove very costly.

Let me explain is some detail
Ideally, if your code base is well designed and tested, adding new features and doing general maintenance is easy. The code is nice and modular and its easy to inject new pieces of logic. Its easy to reuse existing code. When there is a good bed of test suites, then you can confidential refactor the code and running the units tests can verify that everything is still working correctly.

On the other hand, if the code base is poorly designed and tested, then adding and maintaining code can be very time consuming and costly.

Once badly designed code in already in the code base, its quite difficult to remove.
  • A lot of people don't know what is good and bad code, thus cant identify what is good and bad.
  • Once bad code is in the code base, it is usually very hard to refactor and remove.
  • Other developers might see this bad code and assume that it is acceptable and the problem gets worse. Two wrongs never make a right, but things can get incredibility messy.
That is why it is important to tackle these problems as early as possible before things get out of control.
An analogy to this is when you get sick. The sooner you identify the symptoms and what is wrong with you, the early you can fight the sickness. Less pain and troubles. The exact same thing applies for coding.

Once you start working in the industry, this will become more apparent.

As long as you learn from your mistakes and improve your work, everything will be fine. Always try and find better ways to do things, this is the way to strive and become really good at what you do.

How to tackles these issues:
  • Its very important to spread the knowledge. If you find out something interesting and helpful, tell people about it. It will make the IT industry a better place. Blogs and twitter and good ways to spread the knowledge.
  • Do something about it. Don't just do nothing. If everyone thinks that someone else will do it, then nothing will happen and the problem is never solved.
  • Keep yourself up to date with the latest news and information in the industry. Use tools like RSS readers, twitter etc to learn and find out more.

Monday, 27 April 2009

Tracking your Blog

Once you have a blog setup, the next thing you should do is track the traffic to your website. This allows you to understand how many people are viewing your content and how much traffic its getting.

There are many services on the internet that allow you to track the traffic to a website. I will just name a few:
Since I am using Blogspot/Blogger which is a Google product, I decided to use Google Analytics.

Setup

Google Analytics is really easy to setup. I found this blog which explains how to setup Google Analytics for a Blogspot Account.
Setup is really very simple.
These are the steps at a very high level:
  1. Sign up for a Google Analytics account.
  2. Copy the code snippet from Google Analytics into your blog. This allows it to be tracked by Google.
  3. Go to Google Analytics and check that the snippet has been deployed correctly. I read somewhere that you have to allow 24 hours for Google to initialise things before you will be able to view some results.

Results
I was very impressed with the results that Google Analytics provides.
  • Simple and easy to understand graphs and data.
  • But also allows you to drill down into more detail.
  • There are lots of different KPI (Key Performance Indicators) which you can use.
  • Shows from which part of the World the viewer came from.
  • And lots more other interesting details

Tuesday, 21 April 2009

Linux Shell Script - Changing Directory

I found out that changing directory in the shell script file does not affect the shell in which it was called.
When you run a shell script, the script in run in another shell session.

I will explain with an example.

This is the contents of my script, which is called "mymkdir":
#!/bin/bash
mkdir $1
cd $1


So the goal of this script was to create a new directory and the name of this will be passed in as parameter. And afterwards we would like to change into that directory.
But if you try and run this script nothing will happen. It will create the new directory, but it wont change into that directory. You will remain in the same location.
This is how I ran the script:
> mymkdir newFolder

Solution
To use the keyword "source" before running the script.
> source mymkdir newFolder

Now it should work as expected. A new directory called "newFolder" has been created and the shells present working directory is now inside the new folder.

Tuesday, 31 March 2009

Twitter

I wanted to share a few thoughts about Twitter. Twitter is actually a very good service. It provides a means of sharing information. I have learnt a lot by using twitter. My general IT knowledge is getting better day by day and you learn lots of new things. Its very addictive once you start using it.

Twitter is quite different from a blog. Since twitter restricts the tweet to only 140 characters, it encourages you to tweet often about things that you would like to share.
On the other hand blogs allow you to write as much as you want and include different types of media (pictures, videos). Therefore writing blogs requires more thought. So you might notice that people tweet much more than updating there blog.

So for more up to date news, twitter is good.
Examples of some news company's that use twitter:
Twitter is also used as a means to exchange URLs with the help of URL shorting services like tr.im, is.gd just to name a few.

But if you want detailed information, then you will get that from a blog. So blogs and twitter kind of serve different purpose.

Another nice feature of Twitter is that it keeps track of all the people that you are following your tweets and all the people that you follow.

Twitter is one of the biggest things happening on the web. If you read feeds about technology, twitter is mentioned lots, much more than facebook. Its cropping up in magazines, radio, you name it.

Those are just some ideas I had about Twitter and blogs.

My twitter details and updates are on the side of my blog.