Thursday, December 19, 2013

A Call For Educators, Story Tellers, Illustrators, Animators And Game Changers


Do you want to give back to the community you belong to, to the place where you were born and raised? Do you want to help spread knowledge to the younger generations in the Arab world ? Are you an educator, a story teller, an illustrator, an animator ? Are you a game changer?

If you answered yes to any of the questions above, we would sure appreciate your help!!

I'm starting a non-profit project to give back to the community, I'm a part of. To educate kids in their mother tongue. And I'm looking for people who would like to pitch in and help.

The project is a website called 3asafeer.com and the idea is to create an interactive educational website for Arab kids fully in Arabic. The website will be similar in approach to websites like http://sesamestreet.org and http://www.bbc.co.uk/cbeebies/ but will be completely in Arabic. 

Types of help we are looking for :
1-  Designers.
2- Illustrators.
3- Story Tellers.
4- Educators.
5- Testers.
6- Animators.
7- Fund Raising Expertise or Funding.

You can reach me using the feedback form of this blog, or the comments section below to tell us how you can help.


Monday, December 16, 2013

Why Setting Short Term Goals Is Bad


We all want to get ahead in life and perform to our maximum best, yet the majority of us fail miserably to achieve their goals. We read self improvement books & articles, trying to understand what are we doing wrong. Why are we failing to achieve our goals. We get really good  general wisdom and lessons from these books, but none is a practical guide on how to achieve our goals.

Goals!!! Maybe you're looking at it from the wrong angle
Yes, it's not setting goals that will help you succeed in life it's building systems. That revelation came to me just a couple of weeks earlier while I was reading this book "How to Fail At Almost Everything and Still Make It Big", one chapter of the book was talking about goals vs. systems, Which is something I didn't find in any of the articles or books I've read earlier, and is what I think was a critical factor in the major change I had in my life. And what follows in this article is based on personal experience & views, and I don't know if there is any science or research that can back this view.

Building systems is good, Why?
My take on building systems, is that it's the easiest way to get ahead in life on your own pace and still feel good about yourself. When building a system you are always tweaking and monitoring how all factors & variables in life contribute to the final result you have in mind. It trains you to always have the end result in mind, and not get lost in the details, yet be flexible enough to change your behavior in a glimpse of an eye if it's not working.

The good thing about building systems (in my opinion) is it's flexibility and realism. Maintaining a system (routine) creates a good secure feeling. Systems that you build for how you spend your days gain performance momentum with time and become easier to maintain.

Short term goals are bad, Why?
If you are a stubborn persistent person, who likes to get things done, setting short term goals would be the perfect masochist way to torture yourself and ruin your enjoyment of the present, the here and now. You are always looking ahead to get to your goal, and you see everything in your life as an obstacle keeping you from getting to your goal, you have already set the goal and it's too late now to change it. and from there it gets worse, you only have two options, option 1 is you achieve your goal and then feel empty, or maybe rejoice for a day or two before you set your next goal and start the cycle of torture all over again. Option 2 is no better, you fail and start feeling as a loser, the emotional impact of not achieving a goal can be devastating for many.

The bad thing about goals (in my opinion) is it's finality, it's rigidness and the worst part is that it is a foolish prediction of what you will be able to do in the future no matter what variables come in to play.

In Conclusion
Goals (in my opinion) can never be short term, "Ending world Hunger", "Eradicating Disease", or "Spreading Education" can all be great life long goals. Losing weight, increasing your income, improving your relationship with others at work or home can never ever be goals. To get ahead in life you don't need to set goals, you need to build systems.

Have comments, suggestions or disagreements, please do not hesitate to leave them in the comments box below. 

Sunday, December 15, 2013

My First Attempt Drafts Working on a Children's Story



I'm currently working on my first attempt to create a children's story, I know it needs a lot of work, but I really want to get as much feedback as possible on what flaws are most apparent...


[Click Image to Enlarge]

[Click Image to Enlarge]

[Click Image to Enlarge]

[Click Image to Enlarge]


Waiting for your critique and opinions in the comments below.

Wednesday, December 11, 2013

An Enhanced Machine Translation Tool For Multi-lingual e-Commerce Websites (Machine & Human Translation)


The e-Commerce industry is becoming more and more competitive in the MENA region, with e-Commerce websites trying to provide customers with lower prices everyday; which means thinner margins everyday. this makes cost efficiency a critical factor in the success of an e-Commerce business. One of the costly processes of maintaining an e-Commerce website is publishing sold products information online. This process becomes even more complicated and costly when you need to provide multi-lingual information for your products to reach customers speaking different languages.

So How Do You Solve That Issue?
Manually translating the content for each product can be the solution when you are dealing with a small number of products, expensive items or when selling with high margins. but when you are talking about 30K+ unique SKUs varying in price, with thin margins then the Manual translation will severely hurt your bottom line.

So What About Machine Translation?
Machine translation can give you good results up to a certain extent, for example when it comes to brand names and product lines it fails miserably (ex. Hang Ten Ladies T-Shirts becomes "شنق عشرة نساء قمصان" or Nike Air Max Shoes becomes "أحذية نايك الجويه القصوى") which is totally not what you want your customers to see.  But when it comes to descriptive sentences machine translation does a great job.

The Solution
So the solution needs to use the best of human translation and machine translation for it to work, what if you were able to have a replacement list for brand names and product lines that you would build cumulatively before you send it for machine translation, then "Hang Ten Ladies T-Shirts" will become "هانغ تن بلايز ستّاتيه" which makes much more sense.

[Click The Image To Enlarge]

Machine Translation
There are many services available for machine translation from Google, Microsoft or even other specialized companies like translations.com, I found google to be best in terms of quality to cost. the cost is 20$ for each 1 million character, which is more than reasonable if you compare it to human translation. To Use Google translation API, you can use the link below:
https://cloud.google.com/console
for more information about pricing:
https://developers.google.com/translate/v2/pricing

Making Machine Translation More Cost Efficient (Translation Memory)
So even when you only pay 20$ for a 1 million character you might end up paying a lot when you want to translate 30K unique products information, so how to go around that difficulty. what if for each field you send for translation you keep the translated content in a local dictionary so next time this content is repeated you will get it from the local dictionary instead of sending it to google. This will save some money, and will allow you to refine translation to your liking for longer phrases. This is  concept called Translation Memory, more about it in the link below:
http://blog.globalizationpartners.com/what-is-a-translation-memory-%28tm%29.aspx

[Click The Image To Enlarge]

So Am I Supposed To Develop That Tool?
So after all of this ranting you might think, that this might sound good in theory, but it would need lots of time to build such a tool. Which cant be any further from the truth, I have developed a simple WPF application in a day that does just that, the source code is attached to this post you can use it and customize it the way you want, you can even ask me for help in using the application.

More Information About the Tool
This tool takes any excel sheet and translates columns you choose out of the excel sheet, and appends translated rows to the end of the excel sheet, it also saves (TranslationMemory) and (Replacement List) in a configurable location on your hard disk, you can access & edit that file using the same tool, all you have to do is configure your google API key and the location of the replacement file and translation Memory file.
[Click The Image To Enlarge]

Please shares your comments, ideas and questions in the comments section below.

DOWNLOAD THE APPLICATION SOURCE CODE HERE
Excel Translator WPF Application Source Code

DOWNLOAD THE APPLICATION INSTALLER HERE
Excel Translator Setup File

Monday, December 9, 2013

Why You Should Count Calories... At Least For A While!


So you have been trying different methods to lose weight or to maintain your weight below a certain number. Yet you either failed or just couldn't keep it up for as long as you should. Well, you are not alone in this many people try and fail if that's any consolation.

One of the ways to do that  is counting calories, I have never understood it, and I always made fun of people who did it, especially when I saw them order a fatty burger and a zero calories diet coke, and made an argument that they are counting calories. Well, I'm a changed man but don't get me wrong I'll still laugh at that argument but now after trying it I truly understand what's it about, and how useful it could be.

So we stuff our faces with different foods around the clock impulsively everyday, especially those chocolates and snacks that are not planned as a meal but they just happen. Counting calories is the best way to consciously counter that behavior.

Getting yourself trained to think before you eat, is the most important aspect of calories counting. It's not about you having to get to a certain number of calories to lose weight. It's about you successfully thinking every time before you eat and then visualizing what the portion of (this piece of food you're going to stuff in your mouth) is to your planned daily intake.

None of what I say here is science, but it's out of personal experience. And I found this a really good technique to consciously control what I eat.

So bottom line, just count calories for a while to train yourself to think and visualize before you eat. and then you don't have to put any effort into it later once you form an idea of how many calories certain foods have. and most importantly eat lots of veggies and fruits for those foods have the best value for calories, and one last thing EXERCISE.

Have any ideas, or comments on staying healthy please share with us in the comments below.  

Thursday, December 5, 2013

How to Use a Snazzy Arabic Font For Your Website


If you are still using one of the basic default boring fonts for your website (because you think they are the only fonts that are supported by majority of browsers); you need to read on this post. And if you think there is not much Arabic fonts out there to use on your website that is supported by nearly all browsers then you definitely need to read on.

So how to go about using non-standard Arabic/English fonts on your website, and still have them supported by majority of browsers?

The secret lies in a CSS tag called @font-face that was introduced since CSS2 but that was not supported properly by all browsers till around late 2008. this will also allow you to use any non-standard English font on your website too. You add this CSS tag to your website's stylesheet which links a font name you choose to the font-file you want to display on your site.

A step by step Example:
1- Get a ttf (TrueType Font) or otf (Open Type) font file: For windows users you can go to "Control Panel > Fonts" copy a font from there and paste it to your desktop.

2- Go to http://www.fontsquirrel.com/tools/webfont-generator which is a service that allows you to create a web-font kit (from any font you have) to ensure that it will render on all browsers. this service will generate the following file extensions that will be used by different browsers: .eot, .svg, .otf, .woff, .ttf, and upload your font file that you copied to your desktop.

3- For Arabic I recommend you disable Subsetting, which is a process that eliminates extra symbols from the font file, and the following options are likely to work with all fonts, although they might not give you the most optimal results, it's worth experimenting with the options, but below is my recommendation.

[click the image to enlarge]

4- Now copy the files to the same folder of the CSS stylesheet you're using and add the following to your CSS:
@font-face{
    font-family:'GE_SS';/* this is the font name you want to use when applying this font to any element using font-family*/
    src: url('ge_ss_two_medium.eot');
    src: url('ge_ss_two_medium.eot?#iefix') format('embedded-opentype'), 
    url('ge_ss_two_medium.woff') format('woff'), 
    url('ge_ss_two_medium.ttf') format('truetype'), 
    url('ge_ss_two_medium.svg#ge_ss') format('svg');
    font-weight: normal;
    font-style:normal;
}

h1{
font-family:GE_SS,Tahoma,Arial;
}


IIS Users:
If you are using IIS7 you need to make sure that the fonts mime-types are defined properly, some fonts may not be even there in the mime-types, make sure you're using the following mime-types for your extensions:

extension: .eot      mime-type: application/vnd.ms-fontobject
extension: .otf       mime-type: application/x-font-otf
extension: .svg      mime-type: image/svg+xml
extension: .woff    mime-type: application/x-font-woff
extension: .ttf        mime-type: application/x-font-ttf

One Last Note:
Are you serving the fonts from a different domain, (ex. your website is "www.mywebsite.com" and the fonts are from "fonts.adobe.com", make sure that you add the CORS ("Access-Control-Allow-Origin:*") header to your response headers.

Have any questions, or need help implementing the font; just leave a comment below.

Wednesday, December 4, 2013

I'm In A Fowl Mood..Pun Intended


So I managed to buy a one year subscription to the adobe creative cloud, it's a bit expensive, but makes much more sense than buying the full thing. As Adobe started selling through re-sellers to this region (MENA) a couple of months back. I bought the full creative cloud access for 1 year for 2100 AED. So I thought I would try my rusty skills and do something with it. Lots of new features in CS6 made lots of earlier challenges much easier. And the results is this owl thing above. 

Tuesday, December 3, 2013

5 Pitfalls of online startups


I have been working for the past 10 years in the IT field, I have led technical teams building web products, And I have consulted a fair amount of start-ups, yet I'm no expert on the matter, but I thought sharing the most common and clear mistakes I've come across might spare some heartaches:


  1. Spending large amounts of money and time on the first version of the service/product. Products online need to go through the feedback loop of customers, otherwise any features you create are mere guesses; at best educated ones. Which leads to the next problem.
  2. Not creating multiple feedback mechanisms to understand & react to end users needs & wants. A lousy feedback form somewhere on the site is surely not enough. Proper analytics tools and visitor's session recording are among the must have basics to understand your customers.
  3. Over optimistic forecasts of early revenue, revenue in online businesses is tightly related to traffic you get, and since getting organic traffic takes time you usually need sometime to build up revenue, and some more time to tune your online service to suit customer needs & wants. Those over optimistic forecasts usually lead to severe cash flow problems.
  4. Relying heavily on outside vendors to develop and maintain your online business, no one party will be able to manage and understand your business more than you, so whenever you think about reaching out to 3rd party vendors always ensure that you have full control of the situation and even when they do the work for you, you have to fully understand the details of why and how they are doing it.
  5. Over-specing hosting infrastructure or team as if you were sure your company is the next Facebook, always make sure that your business is scalable, but what is more important is that you make sure that your infrastructure and support team size is the minimum needed to support your business, they will grow over time as your business grows; being a start-up it's crucial to be cost efficient in everything you do. Having high overhead for your online business is one of the most vicious killers of start-ups. Having a successful online business is more like a marathon so you need to have proper control over your spending so you can compete for the longer run.

There are many more pitfalls that encounter online start-ups, I've tried to mention the ones I saw as clear pitfalls that many start-ups fall for. All sighted from my humble experience in the MENA region.

Have any feedback, or disagree with any of the points mentioned, leave a comment below and share your ideas with us.