Tag Archives: linkedin

heads in the cloud (computing)

the past 2 days, I’ve been attending CloudAsia 2010 here in Singapore. There are many talks about what cloud is, is not, should be, etc… and I see a lot of people probably getting confused, and their best association of what cloud is, is Amazon Web Services.

hmm… so, here’s my point of view about what cloud is…

Cloud Computing is just another model for businesses to engage IT services, be it in house or from external partners/vendors. Technology wise, there’s nothing new, and the coolest thing in the technology stack is virtualisation and storage.

Still, what does that mean? Perhaps the easiest way that most people will appreciate it is by taking some known public cloud offerings. One of my favorite example is Google Apps. Take it for granted that Google Apps will host your emails, documents, calendars, and much more. Everything you use on a day to day basis with Google Apps are hosted on Google premises. If you are primarily dependent on Google Apps, you notice that you will barely have any in-house IT resources. Gone were the days where companies have to invest in their own IT department to run and maintain in house set of servers to host emails, websites, collaboration suites, etc. Now, it’s possible to get all of these services just off the web. There’s no more servers to maintain, hardware failure to worry about. Everything has been pushed on to the cloud provider.

So, Google Apps is an example of SaaS (Software-as-a-Service). You merely subscribe to the service to use of the end product from Google. Another popular example of a SaaS provider is salesforce.com.

There are many layers in the IT stack that Cloud providers can sell you, e.g. PaaS (Platform-as-a-Service), SaaS (Storage-as-a-Service), these are some of the offerings available from Amazon Web Services (AWS). From the presentation today, we learn that PaaS is simply a service where you can purchase and run a VM from AWS which you have complete admin access to. With that, you use it just like any x86 server you have on premise. The difference is that you pay what you use, which one relate to like how electricity is charged. You flick the switch on, the appliance consumes electricity, you pay the $/kWhr. Similarly, AWS will bill you based on the usage of the virtual machine.

Utility based computing is a concept that I’ve heard of since I graduated 10 years ago. However, it did not take off very well until today, when someone coined the term Cloud Computing. Ha! not true, it’s not just because of a brand new phrase that people start to adopt the idea. The very fundamental enabler for Cloud Computing today is the development of some very key technologies.

  1. the proliferation of broadband access for the individuals; without internet broadband to deliver the richness of the web, it will be very difficult to use any service in the Internet cloud.
  2. the development of virtualisation technology; it is because of the current level of maturity of the virtualisation technology that enables a new paradigm of how IT infrastructure can be managed. The shift allows better uptime, ease of management, more efficient use of existing resources and lower total cost of ownership.

Cloud seems to be always associated with better resouce utilisation, balanced workload among the servers, dynamic load sharing, etc… but these only interests the IT folks who manage the infrastructure, not end users. To the end users, it’s becoming more of what sort of web application is available, which they can just “turn on” and use. End users usually do not need to appreciate the underlying technology the enable all these.

For the IT folks who work in organisations that want to go Cloud, it means very different things. For all businesses that want to embrace Cloud, the very fundamental that they need to start is to virtualise their environment. To make use of their existing investment to squeeze every drop out of the resource they have. It’s almost impossible to find any organisation that have IT resources which are 100% utilised all the time, and it’s a good chance that they are idle at least 50% of the time. This is potentially a very good chance to add more load to the servers by means of virtual machines. Once the environment is virtualised, the next step is to become Cloud enabled.

Most organisations will eventually have their own private cloud, which allows business to quickly deploy new services as required. Taking 12 weeks to stand up a new server ready for development and testing, will become a thing of the past. Development teams will be able to self service in deploying virtual machines almost instantaneously. The enables business to become more agile and react even quicker to market demands for the business. This is an example of a large enough enterprise on having their internal private PaaS cloud.

It will become a common sight that many companies will have very much a hybrid cloud model. Some services are provided by internal IT managed private clouds, and some are provided from external public clouds.

To embrace cloud is not simply just dropping everything we have now and sign up to services like Google Apps. That will be too much of a shock to the end users. Some thought and planning have to be done so that the business strategy of IT can be appropriately evaluated and the appropriate choice made. More often than not, the first step is to start by virtualising the existing infrastructure.

Over the next few years, Cloud computing model will be more readily adopted. It will probably be easier for new businesses to go Cloud from the start, but existing business will take time to change. It will be an exciting couple of years watching how new ideas and services will show up on the Internet.

the beauty of virtualization – part 1 – introduction

many people in the IT industry should have heard about virtualization, and for the rest of the world… the closest thing they can think of is probably the movie – Avatar. uhm… not the same…

I’m talking about computer virtualization here. And so what the heck is it really about? To senior management, it’s a promise of lowering cost, faster ROI, better flexibility of the infrastructure, simpler management of IT infrastructure.

To the guys on the ground, it means, faster build and release to production, quick and easy back out plan for patch maintenance, fast cloning of production data for beta testing, no more hair ripping experience due to hardware refresh, and much much more.

Right, so these are some of the benefits that I just touched on. So, still what really is virtualization?

To virtualize a computer/server is simply just an extraction of the running system from a physical box, into just a bunch of files and processes. In a traditional approach of having 1 OS instance per physical box, we move into the realm of having multiple OS instances per physical box. No, this is not multiboot, this is having more than 1 OS instance running simultaneously in each physical box. Imagine, one box, be it a regular desktop or a high end server, running multiple OS at the same time. Each OS instance runs unaware of the other in the same box. They are independent of each other, they can work together, they can do anything just like how they will be as in the traditional model.

For example, you can have a Redhat Linux instance, Windows 2008,  Windows 2000 Server, all running as virtual machines (VM) in the same physical box. You can ssh into the Linux VM and do anything as you may as a regular Linux machine. You can RDP into the Windows VMs, check on running services, eventlogs ,etc… just like any other Windows servers.

To the un-initiated who logs into a VM, they will not know that it is a VM. I behaves just like any regular server.

So, since the VM does the same things as the physical counterparts… what’s the point?

Now, think about this for a moment. In nearly all data centers today, going with the 80-20 rule, we can easily find 80% of the servers running with very low utilization most of the time. Some probably only spike up once a week or month even. So, the rest of the days, it’s just there doing nothing much, and just sucking up power.

So, let’s say we take 10 of such servers, virtualized them and consolidate them all into just 1 box. If done correctly, you can expect the performance of these 10 servers to remain the same. And there you have it, 90% reduction!! Instead of buying 10 servers, you just need 1. Just 1 physical server to run, maintain and suck less power and utility. Lower up front cost, certainly less ongoing utility bills, and real estate cost. In real life examples, we can see conservative consolidations of over 20 servers into just 1 box!!

This is only the tip of the ice berg we have touched on here. Let me go on a little more before this introduction becomes too much.

One very powerful aspect of virtualization that some may take for granted, but makes all these wonderful concepts possible, is that virtualization creates a whole new hardware platform. I see it as a virtual hardware platform. The virtualization layer basically creates a whole new infrastructure, which only exists logically. What this means is that the hardware that the VM OS actually thinks it sees, are virtual. They do not exist, physically.The result is that we have essentially de-coupled VM from the real server it resides on. We can then take a copy of that VM, and allow it to run on any physical box that has the virtualization layer/engine/OS installed.

Such is not possible with OS running on physical machines. The closest thing we can probably do is pull out the harddisk from one server, transfer it to another server with the exact same hardware, CPU, RAM, NIC, HBA, etc… and then boot up. Even then, there are some differences, the NIC MAC and HBA addresses are different. If you transfer the harddisk to other boxes, but with different config. You’ll end up with some nightmare to reconfigure all the drivers, which most of the time is a very very risky maneuver.

If you are following my thoughts so far, you should now realize that virtualization transforms servers to be something portable. With the right setup, you can easily move VM from one physical box to another, even in different locations, and geography. Think server migration… you can even just copy a VM on to a 2.5″ portable harddisk, take it with you on the plane, fly half way round the planet, and load it up on to another box, and it’s up and running in minutes!!

Again, we are still only scratching the surface. The promise of what else can be done is tremendous, and I will write about them in my future posts.

For those who I’ve lost since “Avatar”, I’ll close off with a little tidbit to help you appreciate virtualization a little more. Some of you may have played old Nintento consoles, the Famicom, Super Famicom, Gameboy Advance, etc… There are emulators out there, which allows you to play these old school games on your computer, be it a Windows, Mac or even the iPhone. This in a way, is virtualization, the consoles have been virtualized so that you can play the games on other type of hardware. Though not exactly the same as server virtualization, I’m hoping it’s something more people can relate to.

DROPBOX – keep files in sync and have a backup copy in the cloud

I’ve been using this nifty little tool for many months now, and it works like a charm!! I first got introduced to it watching Tekzilla, and I’m now hooked!!

What Dropbox does is that you identify a particular folder in your computer that you want to be kept in sync between computers. For me, this is my desktop, notebook & netbook. Everytime your computer is on the internet, it will keep all the files sync’d in this folder. So, no matter which machine you are on, you have access to all the files in that folder. Update the file any where, and the rest will get the updates too. To make it even more awesome, you can access these files on your iPhone or Android device.

Dropbox installs a small client on to your computer, and gives you 2GB of free space at the start. With some successful referrals, your free space goes up to 10GB!!

I use it to keep my frequently used files in sync between my computers. I’ve read other usage as to keep iTunes libraries in sync between computers, some others use it to keep emails sync’d between computers, and much more. The possibilities are endless.

So, wait no more!! give it a try and use my referral link here =)

softlinks (symbolic links) and hardlinks in Windows

for the die hard unix and linux fans out there who appreciate the use of symbolic links and hard links, there’s actually a Windows equivalent out there. (then again, if you a die hard fan… you may not use windows much… but for those who do… keep reading…)

All these years, I thought the closest thing to symbolic links in Windows will be the shortcuts. However, In Vista and Windows 7 there is actually a good support for symbolic links and hard links. The command line utility to create/manage these links are not there by default however. One will need to download a package from Microsoft.

Now, I’ve discovered that someone has actually developed a Windows explorer shell extension to create/manage symbolic/hard links. You can download the freeware here.

I’ve downloaded and installed the utility called Link Shell Extension (LSE in short), and it works nicely for me. Mind you, I strongly encourage you to read through the online manual to understand how to use it effectively. It also has a good coverage on the pitfalls in the earlier version of Windows.

For the benefits of you who do not know what are symbolic/hard links, these are references to files and directories in your computers. There are many usage for these links, and the most common scenario is this….

Imagine you have a file located in c:usershellodocumentsdownloadsectionblahetcherethisfile.jpg

That is a very long reference to the file. To make things simple, you want the file to be available in c:directorythisfile.jpg but you need to keep a copy in the original location, and at the same time have c:directorythisfile.jpg as an exact copy. The traditional way is probably just to create a copy of the file, and anytime the original file is updated, we’ll just copy it again.

Now, imagine that we can create c:directorythisfile.jpg as a symbolic link to the original file. Access this symbolic link gives the exact same result as accessing the file directly. You can open, save, change the symbolic link just as if it’s a real file. And anytime the original file changes, you’ll get the update immediately. No need to copy the file over. In way, you save disk space as well, since there’s only one real copy of the file.

There’s a lot more to symbolic links and hard links, and you can easily find more information about them on the web.

Hope you’ll find this useful =)

XBMC on XBOX not playing MP4 files – solved!!

I’ve been using XMBC on the XBOX for several months now… (yes it’s kinda late) but hey, it still rocks!!

Then recently, I moved the XBOX to the living room and for some reason the MP4 files would not play anymore. Everything else worked fine… but not MP4. I spent over a month troubleshooting it, re-installing XMBC, etc.. nothing worked. All I knew was that these files would play, when the XBOX was in my study & in the bedroom.

Finally, I was shown the light, by someone a lot less techy than me… my wife. I lamented to her about the unexplainable problem I was having with the XBOX. Then she asked… “is it because of the TV?” That literally lit up the bulb in my head and it lit up the path to the solution.

So, how does the TV have anything to do with the XBOX? What ever the XBOX should not be dependent on the TV. So, up front, that theory should have gone out the window… but not exactly. It was due to the TV, or rather… the xbox is connected to the TV using component cables. Everywhere else was using regular RCA. So… what’s the difference?

The difference was 1080i. Because the XBOX was using component cables, I had it configured to go up to 1080i. So, I turned of all hi-def resolutions (480p, 720p & 1080i) and tried. The movie played flawlessly. It was just that simple!! Further testing confirmed that MP4 would play in 480p and 720p… but not 1080i. That’s good enough… since my MP4 were all standard def anyway.

So, the month long troubleshooting, network testing, performance tuning, all went no where. It was simply just the XBOX settings for the TV.

Definitely learnt a new lesson about checking on the basics… even if it’s seemingly unrelated.

All thanks to my dear wife, Winny =)

HDMI to VGA/RCA cables? *beware* I don’t think they work

was just on ebay looking for some cheap alternatives to buy HDMI cables… found some, quality was questionable… then I stumbled upon some people selling “HDMI to VGA/RCA” cables.

I was surprised for a moment. How’s that possible??

I should state that, it sure is possible to fabricate such a cable. It’s easy to just take any wire and put any sort of connectors at both ends. But watch out!! They are likely not to work.

The engineer in me knows that HDMI and VGA/RCA connections carry completely different type of signals. HDMI is pure digital and VGA/RCA are pure analog. There’s no way you can just take a cable, hook up the components and they will work.

For a start, if your equipment doesn’t get fried, you should already be lucky!

In reality, what you really need is a coverter box. A dedicated piece of equipment that converts HDMI signals to RCA or VGA.

So, be warned, don’t get suckered by simple cables that appear to do the trick. No such thing!!

Facebook update to 3.1.1 for the iPhone – GOOD!

just checked out the update to the iPhone’s Facebook app… the current version is 3.1.1.

What’s new? my favorite part… Contacts Sync. It’s a step in the direction which was default feature my wife’s HTC Hero. Though the iPhone’s sync is not as comprehensive (yet) as what’s in the Hero, it’s a step in the right direction.

So what the contact will do is compare the contacts in iPhone’s contact list and your friends in Facebook. If it has found matches, it will then download their facebook photos to the iPhone contact (there’s an option to prevent overwriting an existing photo), and it will add a “home page” entry in that contact, which links to the facebook page. Touching that entry will launch the facebook app and bring up your friend’s page in-app.

This is pretty cool, except there were a few misses…. here’s what I’m certain of… when either one of the below matches

  • firstname & lastname
  • email address (if shared with you)
  • possible phone number as well (I don’t have enough information to validate)

I did have a mis-match… a  contact I had in my phone was matched up with someone in facebook with a completely different name, and I’m not even friends with the match. The only data in there was the phone number, and I can’t tell if that happened to have been the criteria of match. Anyhow, certainly a bug if you ask me.

So, how do you perform a sync? First a few things to do prior

  1. sync your contacts to your PC/Google
  2. create a backup copy of your contacts after the sync.. e.g. on Google, go to contacts and export everything
  3. backup is crucial, in case some how the facebook sync screws up your precious contacts
  4. go forth and make sure you have Facebook 3.1.1 installed

Having done the above, here it goes

  1. Launch “Facebook” app on your iPhone
  2. go to the app’s main menu by tapping the top left corner
  3. touch on the “Friends” icon
  4. touch “sync” on the top right of the page
  5. slide “Syncing” to “ON” (notice that “Replace Photos” is “OFF” by default)
  6. you’ll have to agree to proceed on, tap “I Agree” if you do
  7. sync begins… take note though, if you have a lot of contacts and they match… expect this to take more then just a few minutes. Try to keep the phone from going to sleep when doing this, or it will slow down
  8. however, if there’s any interruption, you just need to relaunch the app, and navigate to the sync page; and it should start syncing again from where it left off
    *note* some times I need to relaunch the app a few times before the sync will start on it’s own… haven’t figured out why yet.

I hope future updates can even identify changed contact information and the app can prompt for updates.

have fun!!

“Please revert.” – really??

my first rant of 2010… actually been holding off this post for a while… but alas! I must put it out there…

so what’s irritating me? the use of the word “revert” in many many emails (To/Cc) I receive.

Before reading furthur, I would like you to sit back and think… what do you think the meaning of the word “revert” is?

Do you think that “revert” has a meaning like… “get back to”… as in like “reply”, “respond”?

Have you seen, or even written sentences similar to… “Please revert to me once you have a decision.” ?

Now, please read up on the definitions of the word “revert” as found by Google, here.

Welcome back, did you find any of the definitions there that meant “respond”, or anything similar?

No?

Well, “revert” really means something like “undo”, “roll back”, “to restore back to a previous state”.

It DOES NOT MEAN, “reply” or any way near the vicinity of the word.

Now, if I’ve made you aware what “revert” means… think back on the sentences where the word has been misused… don’t they seem strange?

I work in the IT industry, and frequently we encounter problems and they’ll need to be fixed… so the person who’s tasked to make the necessary fixes sends you a mail to tell you that the problem will be worked on and it ends off… “I’ll revert once the problem has been resolved.”

Now, doesn’t it sound funny? If you read the sentence to the true meaning of “revert”… it probably could be read that this person is trying to be funny… yes, the problem will be worked on… but once it’s fixed, it will be “reverted”. LOL!!

Well, hope you’ve learnt something new today, good for the new year.

iPhone How-to : add other Google calendars to your iPhone Calendar

this is an extension of the iPhone Calendar how-tos… in this post, I’ll describe the steps you need to perform to add someone else’s Google calendar to your iPhone Calendar app.

If you just want to add your own calendar, you may skip this and go to this post instead.

Now, the steps to add someone else’s calendar is very similar to add your own using the CalDAV method. The only thing that needs to be done prior to the config in the iPhone is that this person must first share the calendar with you.

I’m not going to re-invent the wheel here, so please follow Google’s Instructions on how to share your calendar. I discourage you from making your personal calendar public. To learn more, read another Google’s FAQ entry.

For the calendar to work, so that you can see something on the iPhone, you need to set the permission level to at least “See all event details”. If it’s set to “See only free/busy (hide details)”, you will be able to add the calendar via CalDAV, but nothing will show up in your calendar. If you are allowed to make changes even, then by all means go and set the permission to “Make changes to events”.  The ultimate you-have-it-all permission will be “Make changes AND manage sharing”, which I would think most people would not need.

If you are using Google Apps, and you can’t share beyond “only see free/busy information”, you’ll need to request your Administrator to increase the level of sharing allowed. This Google FAQ entry should help. *NOTE* after the administrator makes the changes, it will take a while before the system is updated and you can increase the level of detail to be shared on your calendar. This worked within 10mins during my testing.

Now, once the sharing is enabled, you can do a quick validation via your Gmail Calendar. See if the other person’s calendar is now showing up in your account as well. If yes, and you are not seeing “free/busy” information only, you are good.

The final step is to add the calendar to your iPhone’s setup. The steps are exactly the same as adding your own calendar via CalDAV (read this post), except in step 3, instead of using your own email address, you use the address of the person who had shared it with you. Follow through the rest of the steps, using your own Gmail login credentials, and you should be set!

At this point, your calendar should now show your own and the new calendar that was shared with you.

An additional tip for you… now that you have multiple entries from different calendars, it will be helpful to be able to visually identify easily which entries belongs to who. Fortunately, there’s a way to do this, but you’ll have to do this in Gmail Calendar’s web interface.

This is a very simple process, first just login to you Gmail Calendar. Next, on the left column of the page, find the calendar that you can see, and click on the little triangle next to it. A box will pop up and it will have several colors for your to choose from. Select the one you like and it’s done. In the iPhone Calendar, all entries belonging to that calendar will now have the color code you just picked.

iPhone How-to : calendar sync with Google Calendar via caldav

if you’ve read my earlier post, my choice to sync my personal Google calendar with my iPhone 3GS is to use caldav. The other option is activesync (MS Exchange), which I used prior to OS3.0 on my iPhone 3G. To understand why, do read my earlier post here.

This post will specifically guide you, step by step, to be able to get your Google based calendar on your iPhone (with OS3.0+). The calendar app on the iPhone will be the default app, nothing additional you’ll need from the app store.

I will create another post to show you how to add other calendars to your iPhone, e.g. your spouse’s or your kid’s calendars.

  1. first, you’ll need your email address… which would be something like “myemail@gmail.com”
    or “myemail@mysuperdomain.com” if you are on Google Apps
  2. next, you’ll need to compose your own “server string”… it looks something like this
    https://www.google.com:443/calendar/dav/myemail@gmail.com/user
  3. pretty much just simply replace the section “myemail@gmail.com” with your Google based email address, be it with “gmail.com” or “whatever.com”
  4. If you’ve got email setup on your iPhone already, you can just email the “Server string” to yourself, which you can copy and paste later… or just type it out carefully on the phone
  5. next, pick up your iPhone,  go into “Settings” -> “Mail, Contacts, Calendars” -> “Add Account…” -> “Other” -> “Add CalDAV Account”
  6. here’s what you put in
    Server : paste or slowly thumb in the “server string” from above (customized with your own email address of course). When you move to the next field, it’s normal for the “server” to only show “www.google.com”, so don’t worry about it.
    User Name : your full email address, e.g. “myemail@whateverdomain.com”
    Password : the password to the account you put in above
    Description : what ever you’d like to call it, doesn’t matter what you put, it’s for your own identification
  7. click “next” when done
  8. If all went well, you’ll be taken back to the “Mail, Contacts, Calendars” screen… if you had a typo in the “Server”, “User Name” or “Password” field.. then you’ll be stuck here. Just fix the typo and try again
  9. Validation…. Launch the “Calendar” app
  10. check and see if your calendar items are showing up, or if you have multiple calendars and it’s hard to validate you can select to see only one calendar
  11. in the “Calendar” app, on the top left, tap the “Calendars” button
  12. you’ll be presented with the list of Calendars you have configured, select the one you want to check
  13. You should now see only the entries belonging to that calendar

have fun =)