Sunday, March 8, 2009

Idea a day: Idea in secret dies

For those who keep hiding their ideas for themselves.

For those who think that ideas must be kept and locked in
basements.


For those who can't escape this feeling that someone will steal their idea.

For those who think that people who share their idea are stupid.

You are wrong.

Keep you idea to yourself and it will die, share it, let it breath, and it will prove itself.

Idea-a-day.com is a great site that shares ideas. Publish an idea and people reads it. I'm already subscribed (thanks Seth). It feels really good to read those brilliant ideas!

The era of keeping everything top secret is over. I used to be like this. Share your idea let people feel it, build a prototype and send it for free.


From the Holy Quran:

اهم يقسمون رحمة ربك نحن قسمنا بينهم معيشتهم في الحياة الدنيا ورفعنا بعضهم فوق بعض درجات ليتخذ بعضهم بعضا سخريا ورحمت ربك خير مما يجمعون

"Is it they who apportion thy Lord's mercy? We have apportioned among them their livelihood in the life of the world, and raised some of them above others in rank that some of them may take labour from others; and the mercy of thy Lord is better than (the wealth) that they amass."

Saturday, March 7, 2009

Programming: Closed/Open principle

Sounds confusing but its not.
Actually it is a great strategy when you apply it while coding.

It goes like this: when you write a class to do a particular job. Keep in mind that you do not want anybody to make changes to this class. Hence it is closed for any modifications.

However you should allow other programmers to add new features or change the flow of the behavior by extending the class. So you give away your class as black box to programmers with documentation. Then they extend your class and add actions to its method. Hence it is opened for extension.

Here is an example of a core class (pseudo code) written to switch off all the lights at your house. It is installed and wired with all your house lights.

Public Class TurnOffLights

Public Sub TurnOff()

// Some Code
End Sub

End Class

Now you want to add some behavior to this class to prompt you before switching off the light! You cannot modify the class but you can extend (inherit) it.

So we'll write another class.

Public Class TurnOffLightPrompt Extends TurnOffLights

Public Sub Overrides TurnOff()

//I Don't know what code is written up there in the base class but I can add my own

if (MsgBox("Are you sure?",vbYesNo") == vbNo) Then Exit Sub
MyBase.TurnOff () //Call the original turnoff


End Sub

End Class

You may want to read Head First Design Patterns, it just makes you fall in love with Object Oriented.

GeoShout: A GeoSocial Networking using Google Earth

I want to share an idea with you guys and get your valuable comments.

Recently I wanted to create a website that connects people in a simple way. Facebook, Digg and Twitter are doing a great job. They connect people and let them share ideas. They are excellent, I already use them. However, something inside, deep inside, is telling me that we need to add an another dimension to the social network.

I want to connect people in a more simpler way, I want them to reach each other easily. I want them to hear each other easily.

So I’ve decided to add geography as a new dimension to the social network creating what I called GeoShout.

GeoShout is based on a very simple concept. You shout. You shout a word or a link or an idea or an event or a video or a song. You just shout anything to the world and people far far away will hear it.

GeoShout is a Geo-SocialNetwork website that uses Google Earth to connect people. When you sign up you choose your location at Google Earth “Where are you now?”.
Then you start to add friends to your GeoNetwork.

When you shout, a white box appear in Google earth next to your location. Your friends will be notified. The shout will appear for 10 minutes on Google Earth. After that people will have to click on you to see your shouts. Shouts that you have already heard (clicked on) will be white, the unheard shouts will be dark yellow.


I tried to make the website as simple as possible for all users so those are the basic features

  • You can make friends, Add friends by clicking on them on Google earth
  • You can add location in your shout, "hey guys, this restaurant serves free salad!" when you click on restaurant Google earth will fly to it.
  • You can comment on your friends’ shouts.
  • You get notifications when friends comment on your shout.
  • Shouts are much easier to see with Google earth spatially instead of tabular format.
  • You can show all people having a certain interests such as, Show all marketers or programmers or architects, whatever field you select.
  • The most common feature that will glue the People together is: People who commented on this shout also commented on (1,2,3...)
  • The more you shout the more you appear at a higher scale in Google Earth, people with fewer shouts you have to zoom more to see them.
  • You can type the city and Google Earth will fly to that city.

Ideas in secret dies, that's why I am sharing it. I could add more features, but remember that I want to focus on connecting people.



EDIT:
The site is finished,
This is the alpha version
http://geshout.com

Thursday, March 5, 2009

The Swordsman technique:If you Just do it, you won't suck

You feel so confident before the day of your presentation or your senior seminar project or a job interview. When the moment starts your stamina and level of confidence starts to decrease (most of the time). And then you suck.

You know why? Our brain is a very complex element. It responds to what you think in less than a millisecond, and start triggering events in your body. Those events send neural signals to all over your body and call the hormones up!

Your tongue gets unexpected signals so you mumble the words. Your hand get those signals too so GOD knows how it will react but sure unexpectedly. Your legs, your eyes. You start to sweat. And then you suck!

When you are doing one thing. Do that thing only. Focus your whole brain on that idea or action. A Presentation? Just do the presentation, don't think of losing or winning, don't think if they like you or not. Because the moment you do you have lost.

That's called the Swordsman technique. When the swordsman start his attack he focuses on how to do his technique only. He doesn't think "if I win people will cheer me, and if I lose people will laugh at me". NO. He attacks. He just attacks. The moment his brain collapses between winning and losing he had already lost.

Before I wrote this I was playing ping-pong, I don't know Jack about that game but when I use the Swordsman technique, I really amazes myself.

Read PresentationZen its an engaging book.

Bon Weekend

Lousy Computer Science Professors

Back in the university. You may have created a great website for one of your projects, and you have worked hard, really hard, to add these exciting features which behind them lay huge lines of codes.
At the day of the presentation, your professor sets leaning at his chair, reading your report and say "Yes, go ahead." You talk, and talk and talk and he ignores all what you are saying. Those links and features and javascript and css and DHTML and XML and yes AJAX, he doesn't care Jack about your features.

So when you start the demo web page he says: "YES the Login screen!, my favorite, please type this in the email field "hus_aa2" and skip the @! OK next: What happen when I insert a date in the birthday field greater than today? OK now type a single quote in this field. Now what if my email already exists. (he start testing the validation till the end of the presentation)


So he keep searching for a bug on the facade of your site and ignores all your work and when he catches a validation error, "Yes -2, " he smiles.
You got really surprise at how naive the way he tests your website trying to break it by any means. You got really angry. I know I've been there body. No names please.

Now, if the professors are focusing on these trivial and lousy and stupid validation methods and avoid teaching the students the core of the websites goal, "How this could benefit the user", we are really in a big trouble.

Our universities (at least here in Bahrain) are pumping web-developers who are very good at validating their site (Left Side of the Brain), but extremely bad at delivering content (Right Side of the Brain).


KISS, keep it simple strategy, deliver your point directly. Avoid fancy codes and too much features. Give the user what he really wants, he doesn't want everything.

Wednesday, March 4, 2009

Do you enjoy lamp-post ads?

I think you don't. Neither do I, because its boring. Its something we don't care about and "yet" companies try to attract attention using it.

Believe me, we do see the lamp-posts ads. Walla we see them. Its just that we don't care. So placing 10 lamp-posts, duplicated, the same story, over and over again, in-line, really, won't help change our mind.

Yes it will attract few avarege people, who is looking for average stuff. So if you guys are hunting average people for your avarege product, then its fine.

This ad is for Batelco, a tele-communication company in Bahrain. Recently they filled the entire kingdom with lamp-posts like this.

I don't know how much they spent on that promotion but its not less than BD 500,000 I guess. Just to attract people grabbing them from the throat, and feeding them this ad. Hey anyone?


Do something great. Something cool, something we really want and need, and you will save the BD 500,000. In fact we, the customers, will do the marketing for you. We will spread your product, just give us what we want and need. And no spam please.

I recommend the Permission Marketing book by Seth Godin for Batelco and Zain Marcom teams.


Tuesday, March 3, 2009

Marketers are stand up comedians

Stand up comedy is difficult.
Its not easy at all.
You have to stand in front of large number of spectators, no trembling, no sweating, and yes, you have to make those people laugh.

Those people saved an hour or two to come to you and watch your show. So it better be good. You have to make something new all the time. New jokes, new actions, new moves, new stories. People hate to listen to the same joke twice.

If they like you. They will come to you every time, they will tell their friends. Their friends will come to see your show!

But If you started to say something they already hear (especially from you). That's it, Cul-de-sac you are not fun anymore. They'll start to leave you.

Marketers are the same. You tell people, hey I have some great product for you so they spare some time and see if your product is worth it (a purple cow)

You have to be calm and treat people with respect (not attack them with ads.), and yes don't duplicate things, if you gave them a product they already have or seen. you are abandoned.

People who came and spend time to listen to you, expects something good, really good. Not something mediocre and boring.

If you do great. They will like you, they will pick your side. They will tell their friends. Their friends will come. Simple.

Not only marketers, you, whether you are an entrepreneur or a programmer or an engineer or an
artist, you are actually a stand up comedian. So better make people like what you do.

Do something remarkable now.

Monday, March 2, 2009

ORACLE guys just love to torture us

The Boss sent me 6 ORACLE dump files. He asked me to import them into the database at our office. I know nothing about importing dump files. I never worked with them.


So I opened the import utility. Entered my Username and password. I expected something like this. Give me the file you need to import and ORACLE will import it.


This is what I get

Import file: EXPDAT.DMP >

So I typed in the first file. (It seems that the text after the colon : is the default value.) Then pressed enter. I got this

Enter insert buffer size (minimum is 4096): 10240 >


What the!? I didn't know what buffer to put, so I just pressed enter, then I got.

List contents of import file only (Y/N): N >

Well.. enter

Ignore create errors due to object existence (Y/N): N >

Ok ignore, please import.. I beg you. Enter.

Import grants (Y/N): Y >

For God sake, Enter.

Import table data (Y/N): Y >

For the love of God. Enter

Import entire export file (Y/N): Y >

What kind of question is that? of course I need the entire file I definitely don't want the half of it . Enter.

Username:

I just specified my Username up there, but OK I will type it again, Enter!

Enter table names. Null list means all tables for user Enter table name or . if done:

Well here is the thing I don't know what's inside that file how can I enter the table names
? Enter!

Yes! I am done! thanks God.


Why don't they make these questions as parameters and save us time.
Just because ORACLE is for DBAs doesn't mean that they have to slam us every possible option and make it that complicated.

People will say yes there are a lot of options in ORACLE its not that easy. But that also doesn't mean that they have to give us every single option. We will search for it when we need it. Hollywood remember? Don't call us, we'll call you? (That's also a very great OO strategy I'll post something about it later)


Edit:
For those guys who end up in this page from google looking for the import command here is a much simpler why to do it with one line.

imp system/pass@servicenet file=C:\dumps\thedump.dmp fromuser=owner touser=owner

But, (there is always a but) you have to drop all your tables that have the same name first (thanks Yaseen), I don't know if there is an option to do that. But what I know is this. A job which need 5 minutes, I took an hour to do it.


Perhaps you will notice that ORACLE is developed by left brained programmers as I mentioned here.

People are there, just create a tool to glue them

In his book Tribes, Seth talks about connecting people.

Sometimes you think you are alone. You're the only one who care about your idea. However when you discover that somewhere in this world, there exist someone who cares about what you think. You two will be glued.

This is the punch line: People who share the same interests are there somewhere. Create the tool (the glue) to connect those people together. The simpler the way to communicate the better.

Digg work on this concept: Digg if you like, don't Digg if you don't.
Facebook also added a new feature recently "like". Click Like if you liked it.

Sometimes you don't have time to write a comment but you really liked what I wrote. With a single click you and I get glued. It feels like you touched me and said excellent work, keep it up.
The more Likes and Diggs I get the more my topic or my idea or my concept spreads.


I will start working on a new site for my beloved Kingdom "Bahrain". I'll use the interaction between people to add value to my country. I am going to write a saparte post on this, but here is an executive summary for now:

The whole idea is based on "Shaiy". Shay in Bahraini means I loved it, it is a nice, it is great, It is special.

I am going to borrow some concepts:
  • To Shaiy -> To Digg
  • People who Shaiyed this also Shaiyed -> Amazon
  • Shaiys near Me -> YouTube
The rest of the features is "brand new".

If you didn't get a single word from what I wrote, here is a more formal way to express it.

For All X, Likes(X,Y): {X: Person} ,{Y:Idea} --> There exists Z
{Z: Person} ^ Likes(Z,Y) ^ (Z != X)


And now, go glue some people together, they will thank you for it. And don't forget to read Tribes. You have to.


Sunday, March 1, 2009

Do you feel down?

I feel down. I feel down most of the times. I don't know why, people say its related psychological reasons. You needed something but you didn't get it that's why you feel down. Other say its related to horoscopes and the way your star is positioned.

Whatever is the reason. Its ok to feel down we all are sometimes.


You must have had a goal to achieve or an idea to conquer or a training to finish or skill to develop.

No matter what is your goal, to become a CEO or an entrepreneur or a famous football player or a violist, feeling down is a dip covering that goal. It just
temporary hides it and you don't see it, that's why you feel down. Because you can't see your goal, you can't see what you dreamed of you can't see what you want to be, you forgot how it was the feeling to think about when you reach that goal.
I just started to play violin. Sometimes I feel down when I fail on holding the bow or I miss the right string or I mix up the sounds. But I just remind myself of the other end of the dip. To be able to play any classic music with my violin is one of my goals.

When you feel down remind yourself of the other end of the dip. You will feel much better.


The dip is one of my favorite books, I strongly recommend it.