The quick guide to register .bh domain

This article was originally written by Yazin on his blog. I’m re-uploading this article for reference and take no credit for this information nor do I confirm if this information is still up to date. That said, it’s an excellent post.

To register .bh domain can be a real hassle, especially when you’re not sure who to ask. In this post, I’ll walk you through the entire process, step-by-step.

Why register .bh domain?

There are a couple of reason why you’d want to get a .bh domain in the first place. For one, it’s ridiculously easy to find a great .bh domain name – which is a relief, since it’s so damn hard to find a good top-level domain that makes sense. It’s also a good credibility boost, and makes it immediately apparent that you’re targeting the Bahraini market.

What you’ll need

  1. A valid Commerical Registration (CR). Yes, your business has to be registered in Bahrain in order for you to request your .bh domain.

    IMPORTANT: It’s crucial that the domain name you register is in some way related to your Commercial Registration’s authorized activities. Registering, for example, for a printing company is easy to do. Registering under the same Commercial Registration would’ve been rejected.

  2. A Batelco phone line registered to your CR. Batelco is the national telecom provider in Bahrain, and they are responsible for issuing the .bh domain (though that’s likely to change to the TRA soon). As things stand, even if you don’t need a phone line, you still need to get one anyway.

Getting your .bh domain

  1. Find a domain that’s available. It’s very easy to find a really cool .bh domain (to give you an idea, i’ve registered for one of my businesses). Just head over to Marcaria’s website and do a search to see if your desired domain is up for grabs.
  2. Send an email to Don’t visit any of their retail branches because they won’t be able to help you (you’ll just get a dazed look from the clerk). Also make sure to attach the Commercial Registration to the email.
  3. Get the TRA approval (INTERNAL). This step is done internally (between Batelco and the Telecommunications Regulatory Authority). This is done by Batelco internally, but it’s worth mentioning. Remember the guideline mentioned earlier around the relevance of the CR to the domain? This is where they check; if all’s well, you should get the approval in a day. If not, you’ll need to brush up on your Influencing Skills and sort things out with the TRA (they’ll send you an email).
  4. Done! Setup your nameservers. Yes, once you’ve got the approval from the TRA, you’re good to go. They’ll setup your domain and ask you for your nameservers to redirect to. If you were expecting them to provide you access to a Control Panel where you can setup the nameserver redirection, then prepare to be disappointed. It’s all done manually, and it’s all painstakingly slow! It usually takes them 5 business days just to update the nameserver (which would otherwise take 2 minutes to do).

 So how much does all this cost?

Let’s talk about money. Here’s what the whole ordeal will cost, in Bahraini Dinars, or BHD (1 BHD = 1.65 USD).

Price (BHD)
Item One-time Monthly
Batelco phone line registration (installation+monthly) BHD 20.000 BHD 3.000
Domain Rent (monthly) BHD 3.000
TOTAL (YEAR 1) BHD 92.000 (245 USD)

So there you have it. It’ll cost you BHD92 (or 245 USD) to get your .bh domain for an entire year (which is a far-cry from the asking price on other .bh domain providers which charge 690 USD to get the job done.)


A Few SharePoint 2010 Quick Guides

It’s been a while since I posted here, but I haven’t really had much time. Here’s one some people might find somewhat useful. I’m setting up a new SharePoint site for the company I work for and did some Googling for stuff I needed to do and merged a few different things and whatnot. Here’s a few quick how-to’s:

Hide Recently Modified Pages

When creating a new page, there will be a box above the Quick Launch with recently modified pages. I don’t know why such a thing would be enabled by default, but it is. So here’s how to get rid of it on all pages:

On the server with your MOSS 2010 installation, open the file:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\DocumentTemplates\wkpstd.aspx
Find the SharePoint:RecentChangesMenu control and add visible=”false” inside the tag.

Quick Launch Flyouts

By default, the Quick Launch will show links under headings as sub points, but keep them all visible and cluttering your Quick Launch bar. If you’d like to de-clutter by having flyouts, here’s how to enable them:

Site Actions > Site Settings
Galleries > Master Pages
v4.master > Edit in SharePoint Designer 2010
Find: <SharePoint:AspMenu id=”V4QuickLaunchMenu”
Set the value of StaticDisplayLevels to 1. Doing this changes the number of levels to display directly on the Quick Launch, so it’ll now only display the highest level of links directly on the Quick Launch.
Set the value of MaximumDynamicDisplayLevels to 1. Doing this will allow you to have 1 flyout. If you’ve deeper levels of links and want to display flyouts coming out of other flyouts, set it to the number of levels you want to display.
To give these flyouts a background, so that they don’t just hover of the page as plain text add:

<style type=”text/css”>

just before the </head> tag.

For more options with the flyouts, check this link:

Remove ‘I Like It’ and ‘Tags & Notes’ Buttons

Open the Central Administration on your server.
System Settings > Manage Farm Features
Click the Deactivate button next to Social Tags and Note Board Ribbon Controls.

Jack of All Trades… Master of Nothing

Last week, I took a course on Application Development on SharePoint. We got into an off-topic conversation about ERP solutions, comparing SAP to Oracle’s and Microsoft ERPs. The instructor said something that really inspired me. He said that as much as he’d like to learn all of these, it’s just not feasible. He does not want to be a “jack of all trades, master of nothing.”

It really got me thinking about myself. I’ve always wanted to learn all kinds of things and I pursued all of these things. I’d like to think I’m mediocre at MANY things, but don’t particularly excel tremendously in any field. I’ve had too many fascinations that I followed. When it comes to computers, I’ve pursued video editing, programming, web developing, graphics, etc. When it comes to sports, I’ve taken lessons or been in teams for multiple martial arts, wakeboarding, squash, marathon, track & field, tennis, basket ball and soccer.

I’ve got nothing I specialize in. I’m only just starting to realize what I’d like to specialize in, but it’s still a long list! In short, I’d like to specialize in:

Mobile Apps Development:
Windows Phone 7: programming in C# and Silverlight
Android: still debating between Mono for Android (C#) and Java (need to try them both out thoroughly to decide)

Web Development:
Personal: PHP, HTML5, CSS3, JavaScript
Work: .NET (ASP.NET, VB.NET, C#)

Key word of the month is SPECIALIZE!
So remember: specialize, specialize, specialize!

True Multitasking

Story Side

My first smartphone was an Android phone, the HTC Desire to be more specific. I installed many apps on it that truly utilized multitasking in such a seamless way that I never paid any attention to it. I took the superior multitasking for granted.

A few months ago, when my Samsung Omnia 7 (Windows Phone 7) got the WP7.5 Mango update, I was excited to get multitasking on it! I installed WhatsApp and was shocked! Why did it have to load the new messages after I opened the app when I just received a notification of that message? It made no sense to me. I blamed it on the fact that the app was still in beta.

After going to a developer conference hosted by Microsoft, they explained how exactly WP7 dealt with multitasking. They explained about how the app is “tombstoned” when it is not the active app, which is basically freezing the state of the app rather than quitting it. Android, on the other hand, kept my apps running in the background unless they were specifically closed.

I didn’t dig too much into it though, since my Android was still my main phone. Then one day, my HTC Desire faced an unfortunate accident that killed it. I borrowed an old iPhone 3GS from a friend as a temporary smartphone to use until Q2 when HTC releases its next hero phone. And now this iPhone has become my main phone.

So I install WhatsApp, Facebook, Twitter and all the other social apps I use. I set them all up to give me live notifications of everything I care to know about. So I get a WhatsApp notification and I click it… WhatsApp is connecting… WhatsApp just connected… WhatsApp just received the new messages and can finally be read. How long did that take? Around 3 seconds between the app loading and then the data loading. How long would that take on my Desire? Instant, thanks to the power of true multitasking! I noticed that was the case with all my apps and it’s really been driving me crazy.

Technical Side

Now for the slightly more technical side of the article, here’s a brief conceptual explanation of how multitasking works on WP7 and iPhone VS Android:

On iPhone and WP7 (terms and fine details slightly defer, but concept is the same):
An app basically has 2 states: active and suspended. When it’s active, of course, the app is in the foreground and is what’s running. When it’s suspended, the app is enters a frozen state where nothing is happening, but can easily be thawed out of this frozen state to go back to exactly how it was. Of course, there are pausing and resuming events, where the app is told that it is about to be frozen or that it is about to be thawed for use again, so run whatever you need to to get ready.

So you’d wonder, “how can I send a notification to my app if it isn’t running?” Well, you don’t actually send it yourself! What you do is basically send the notification to Apple/Microsoft and tell them what phone to send the notification to. When the phone gets the notification, your app is not actually aware of the notification. Clicking this notification will only tell you phone that the user clicked a notification of type x (example: a private message notification, so launch the app at the inbox).

Big example: Instant messaging client:
Method 1: User directly connects to IM server:
In this case, the user has a direct connection to the IM server and gets his/her messages directly. When the user navigates away from this app, he/she is disconnected (perhaps you, the developer, would like to run some code to disconnect the user in a safer manner or save some information). While the app is suspended, the user will not receive any messages. Running the app again, the app should try and reconnect to the server and retrieve new messages.

Method 2: User connects to app server, which connects to IM server:
The user sends their login information to your server. Your server connects and acts as a sort of BNC; it connects as the user and relays all the messages to the user. In this method, the user will never get disconnected and will always get live notifications, whether the app is running or not. Of course, this makes it a lot more costly for you to have the server running at all times relaying the messages. The app becomes slightly simpler on pause and resume. On pause, app notifies the server of the disconnect, so it can start pushing the notifications as phone notifications. On resume, the app reconnects to the server and requests that the messages are sent in to the app now instead.

On Android:
The app can run in the background keeping an active connection to the IM server. In the background, the user can get the notification and the app will automatically be updated with the information.

In conclusion, life is much simpler on the Android side of things, huh? So it seems, but the can also slow down the OS, drain the battery and cause a lot more malware! Of course, when efficiently used, this is a very effective and powerful platform for multitasking!

The Magical Little Details

This morning on my way to work, there was a red GMC in front of me. Suddenly, it looked like a bubble came out of the muffler of the car. I was shocked! Next, I noticed there were 2 little girls fighting in the back seat of the car. Then, a world of bubble blows out the left window of the car! I felt I was caught in a dream. I looked into the car and it seemed the 2 girls were giggling uncontrollably and then a lot more bubbles from the right window.

It’s these little things in life that matter the most. It’s mainly in these little details do we truly find utmost beauty. If you can’t appreciate these little things, then what can you appreciate? Life is all about these little pointless details that just put the cream on top and somehow really do wonders.

These little things are among the most important things for me in everything, including my programming. When you fine tune your product to be so perfect with these little surprises, the customers will be much happier with what they are getting their hands on to. A wonderful example I came across with Windows Phone 7, any long list, like your list of apps or your contacts, there is a box with the letter the next few apps/contacts are going to start with. If you click that box, it gives you a list of all the letters to jump to another spot in your apps/contacts.

Apps List Letters List

I try my best to make sure everything I do has these wonderful little details. And these are the kind of details you can’t let the customer know about! These are the beautiful little things you need to see if it’s done intuitive enough that the user just naturally thinks of and they are welcomed by that warm feeling of understanding the developer’s thoughts.

Nokia’s latest ad campaign, “The Amazing Everyday,” has been a huge inspiration to me. I really like it and appreciate the message it’s delivering, even if it doesn’t seem to advertise Nokia so explicitly.

The Little Amazing Show ep 1
The Little Amazing Show ep 2
The Little Amazing Show ep 3
The Little Amazing Show ep 4
The Little Amazing Show ep 5
The Little Amazing Show ep 6

So remember, focus on the details. Deliver polished products. It’s as important for something to be beautiful and intuitive as it is for it to have features that work. Beauty may be in the eye of the beholder, but if you deliver a product that extraordinary, you’ll have a huge following! Most importantly: open your eyes and absorb all the beauty in life and everything you see because it’s everywhere and absolutely magical!

New Year’s Resolutions

I think new year’s resolutions are very helpful. Many people disagree and they probably aren’t helpful for these people. People are such simple creatures. Many people can be motivated by simple things that it’s sometimes shocking! How many times have you heard someone say “Alright, I’m starting my diet next week!” or “at the beginning of next month!”? People see the start of a new period of time (ex. day, week, month, year, etc.) as an excellent motivation. I personally only find the start of a new year to be particularly special, as a result that is the only time a resolution of sorts works.

Since it’s not that frequent the I get the chance to use a new time period as my motivation, I decided to give myself multiple resolutions this year. And this year, I’m serious about my resolutions. Some of the details are relatively private, however the general concept can be public. Here’s my list of resolutions to accomplish by the end of 2012. I’ll come back to this post and edit with my progress along with dates throughout the year.

  • Start facing problems head-on, instead of ignoring and hiding from them.
  • Start a tech-based blog and give it a serious shot, though no commitment is required. It’s more of an experiment really.
  • Work on a couple of WP7 apps to fill the void of what I find missing on the marketplace… More of a selfish task as I’m doing this for myself, but also publishing on the marketplace for all others to take advantage of as well.
  • START SAVING MONEY! I’ve been working for a year and I have nothing to show for it according to my bank account. I’ve been wasting huge amounts on such trivial things and think I could save a big chunk if I tried. I have a goal to save by the end of the year, but I’d like to see more remain.