Source code hosting options

I had a small research about source code hosting facilities, & it seems the answer is not straight forward; following is my finding based on the situation:

Single Personal use:
My suggestion will to use any local server installation on your PC / Laptop, and then have regular backup to any external drive or drive cloud service. My recommendation will be the free edition of Visual SVN Server.

Academic groups:
If you don't have an issue that your source code will be shared worldwide, pick from below listing:
If you want to have closed source between your group members check below case for start-ups.

Start-ups / entrepreneurs:
With limited budget, unlimited number of users, project management features, collaboration, issue tracking, redundant backups, pick from below listing:
Commercial companies:
If you have reasonable budget, looking for complete SDLC (Software Development Life Cycle Management) / ADLM (Application Development Life Cycle Management), complete collaboration between distributed teams, trusted company by major customer references with lots of plugins / marketplace you may expand at anytime based on your needs. Atlassian will be the best for you; this can range from small to large enterprise.You will need the following products as start:
  • Confluence: For team collaboration.
  • Bitbucket: Git & hosting.
  • JIRA: Planning, assignment tracking, issue tracking.
You can find Gartner report shared here. Customer references shared here (List includes: Nasa, Twitter, Facebook, BMW, Audi, Cisco, Adobe, ...).

Hope this helps someone there.


Samsung TV and media with Arabic subtitle

If you are having Samsung TV that supports playing media, and you have movie with Arabic subtitle you can't see correctly; follow the following steps:

First change the TV language to Arabic so wordings can start appearing from right to left, using the following steps:
  1. On the  remote, click "Menu" button.
  2. Click down till you reach "Setup" menu, click "Enter" (Button with box and input arrow in the remote) to enter this menu item.
  3. Select "Language", and click "Arabic" or "العربية", you will recognize the setup menu is showing now from right not left.

Second while playing the movie, you need to select "Arabic" encoding, using the following steps:
  1. After clicking "Media.P" button, select "Movie" or "الفيديو".
  2. Navigate to select a movie you would like to play (I'm assuming you have already srt file with the same movie name but with .srt extension).
  3. Play the movie, and click "Tools" button on remote.
  4. Navigate down till you reach "Subtitle setting" or "اعداد الترجمة", and click "Enter" (Button with box and input arrow in the remote).
  5. Navigate down to "Encoding" or "ترميز" , and click "Enter" (Button with box and input arrow in the remote).
  6. Select "Arabic"  or "العربية".

Now you will be able to view Arabic sub-title on your Samsung TV.


Founders Lessons Learned - Part 8: Marketing

  1. Post go live phase, you might need to give your product/project for free or with minimal cost, just make sure in the agreement this can turn to your benefit when your idea proves it is worth the money.
  2. Techniques for spreading your idea:
    1. Hire a small Press Release company.
    2. Word of mouth.
    3. Talking to journalists (They are always looking for something new).
    4. Press tour.
    5. Through the product you are actually selling, by having some link to main site, or encouragement for sign-up, …

Founders Lessons Learned - Part 7: Operations

  1. Your work is not finished when you go live, it actually started.
  2. It is common to feel worried / sleepless thinking of what will happen tomorrow when you are in charge of successful product.
  3. Statistics should be collected from going life day ONE.
  4. Proactively monitoring production is a MUST; it can:
    1. Reveal issues.
    2. Show user behavior using your idea, leading to improvements.
  5. Operational work requires lots of automation to save time, but in the same time you can never lose the human analysis.
  6. Pay attention to small (issues / bugs / fraud) as they can grow bigger day after day causing lots of headache.
  7. Stay focused all the time, don’t try to solve everything one shot, always prioritize based on the following (In order):
    1. Financial impact.
    2. Risk impact.
    3. Operational impact.
  8. Don’t waste time in politics, & people trying to distract you.
  9. Pay attention to what you say / reveal during production issues, it should be to trusted people ONLY otherwise, it might fire-back to you.

Founders Lessons Learned - Part 6: Project / Product development

  1. Work hard: You have to be very diligent. Normally you will find that you need to spend weekends, and evening working on your ideas, you will reach a point where you need to dedicate your time for your idea.
  2. Changes will happen all the time; avoid doing multiple massive changes in the same time.
  3. Users centered design is what is facing your customers, do take care and hire good people in this area. Your product/project should look GREAT.
  4. Don’t try to change user behavior once, but make it slowly.

Founders Lessons Learned - Part 5: Architecture

  1. Think of scalability from day one, how your system can grow in very short time, as if it is not taken into consideration in early design, you will face troubles maybe site down in production losing customer satisfaction. You can never imagine the number of customers you can get for a good idea.
  2. Reporting / Statistics requirements should be taken into consideration, this will be the real indicator for your success or problems after going live.
  3. Reliability & backups is major thing to be covered once you got the whole functional requirements in mind.

Founders Lessons Learned - Part 4: Venture Capitalists

  1. If you are presenting the business plan to VC you don’t know and you can’t trust he won’t get the idea and build it somewhere else; it is better to present a plan for something related to the idea not the whole picture to judge what is the reaction of VC and get to know him.
  2. Don’t get frustrated from VC when you present ideas, and they mention low experience, this is considered an advantage more than a disadvantage. For start-ups, VC looks into team spirit & idea more than experience.
  3. Expect the following questions from VC:
    1. What is your background?
    2. Too young, how many years of experience?
    3. Do you have management experience?
    4. How are you going to make money if you are going to give it away for free?
    5. What's the revenue mechanism?
  4. VCs always have deals and back-doors technical people don’t like, sometimes you might want not to share all ideas with your VC.

Founders Lessons Learned - Part 3: Business plan

  1. A business plan is nothing more than your own communication to a person not sitting in front of you—an imaginary person who will read it. Try to answer every possible question that that person could raise.
  2. Writing a business plan is a MUST, it will crystallize your thoughts to communicate your ideas with somebody else.
  3. Business plan is all about showing your momentum.
  4. Having a business plan for big scope, having complete vision distributed on several phases shows your strong vision for the idea and its growth.
  5. Business plan should tell:
    1. What the company is going to do?
    2. What problem it is going to solve?
    3. How big the market is?
    4. What the sources of revenue for the company are?
    5. What your exit strategy is for your investors?
    6. What amount of money is required?
    7. How you are going to market it?
    8. What kind of people you need?
    9. What the technology risks, marketing risks, execution risks?
  6. Funding in business plan, it is always better to prepare the figures before you present your idea, and you should be having multiple numbers in mind, i.e.:

    1. Required x, for completing the whole idea.
    2. Required y, for handling … number of customers.
    3. Required z, for making a POC to show your idea can actually work to VC.
    4. Required w, for covering specific region.

Founders Lessons Learned - Part 2: Team

  1. Succeeding alone is very hard, it is all about team work.
  2. Having a good team is half the way to success.
  3. Harmony between team members is a MUST for success.
  4. When you are searching for founders to share the idea with you; look for people that have skills you don’t have; don’t look for people who are the same like you.
  5. Own your team by:
    1. Treat them good.
    2. Treat them like family.
    3. Care / look after them.
    4. Always listen, maybe an idea from youngest team member be the company next hot product / feature.
  6. Acquisitions: It is a painful experience as merges cause lots of people to be laid off, this is the case all the time, and this is the whole idea of merges. If your company pass by this situation try to make it as short as possible to continue doing business.

Founders Lessons Learned - Part 1: Idea

  1. Uncertainty at the beginning is quite common; just try your best to make your vision clearer by time.
  2. Necessity is the mother of the invention: If you needed something & searched quite sometime to find it, and ended to build it up, why don’t you think someone somewhere is looking for the same thing.
  3. Idea; always search for added value of your solution (Why someone will buy / invest in your idea):
    1. Unique: Idea that is not implemented before.
    2. Idea that solves known issue in unusual way.
    3. Optimize something.
  4. When you feel sleepless; don’t waste this time trying to sleep, instead spend this time in ideas that you'd normally just throw out in creative thinking.
  5. You should feel that this idea is very important to you.
  6. You not only need to think how to attract customers, but how to keep them as well (Own your customer).
  7. Secrecy: You will need to share your ideas with some people, think more about this before you do it, take care that someone may steal your idea. At early startup, you only have the idea; nothing more, what will you do if you lose it?
  8. Failure several times is the common, no-one succeed without suffering multiple failures, just write down what you have learned from your failures.
  9. Adaptation:
    1. Modifying the idea / target or part of it might happen, just make sure to revisit your plans to comply with the modification.
    2. Switching from technology to another might happen, just learn to do the right thing with the right tools.
  10. Having multiple skills is a MUST: It is not always you do what you like to do, but you should do what must be done.
  11. Think of partnership, it will save you time, & money with lower risk.

Founders Lessons Learned - Intro

Learning from others is the best in order not to re-invent the wheel and fall in the same mistakes others already did. For founders, it is a MUST as lots can't afford bad start.

I have collected some lessons learned from my readings, & experience. I summarized them in bullet points in the following blog posts:

The following are the references for such tips:
  1. Book: Founders at Work: Stories of Startups' Early Days. ISBN-10: 1590597141 | ISBN-13: 978-1590597149
  2. Magazine article: Arrajol Magazine interview with Greg Booth, Zippo President and CEO.

I will keep this post and related posts updated whenever I read more books or learn new experience hopping this will help some founders / start-ups. Also, I'm open for input from readers as comments and I will update the posts as well.


Moving favorites from Google Maps to OsmAnd

I used to have Google maps on my android phone for a long time, but I faced two simple problems:
1- No offline maps, so whenever I'm traveling I need to get data roaming package.
2- Renaming a favorite is very tedious (Open http://www.google.com/bookmarks and edit the name), and can't believe Google is not supporting something like this but I have searched so many times and this is the case till the time writing this blog.

I decided to do some search before I go for a trip and use another free or low price software, I ended up with two software OsmAnd and Copilot GPS.

OsmAnd: It is free and offer 10 files download (9 maps, & 1 voice), have free turn-by-turn navigation, point of interest are great and use global trusted free data from Open Street Map. You can purchase the full version OsmAnd+ for only 7.98$ (Thanks to the developer) and open the limitation of 10 files.

Copilot GPS: All maps are downloadable free, navigation is working without voice which is really important as I can't look at the mobile all the time during driving to make sure I'm on right track. The paid version that offers the voice turn-by-turn 3D navigation is available through in-app purchase for around 29.99$.

I started with OsmAnd, and following are the steps to migrate favorites:
1- Export Google favorites (Starred my places) maps as KML:
Unfortunately, Although Google has made data liberation making sure you have access to export your Google data, but till the time of this blog it is not having option for exporting starred Google maps location. You have either one of these options:
    a- Manual migrate of starred location to a Google map, detailed here.
    b- Use a python script for converting Google bookmarks to KML file, detailed here.
This is the longest step both above methods require some tweaks to work, for me manual migration only worked :(

2- Convert KML to GPX (GPS Exchange Format):
There are two ways:
    a- Online (Without installing software): Directly uploading KML to http://kml2gpx.com .
    b- For offline programs you can use free GPSBabel to convert KML to GPX. After downloading the application just use command line:
gpsbabel -i kml -f in.kml -o gpx -F out.gpx

3- Import GPX to OsmAnd:
    a- Rename the gpx file to favourites.gpx
    b- Upload it to OsmAnd on your android device folder (It will look something like /storage/extSdCard/osmand).
    c- Start the application.
    d- Go to favorites, click on import button (Looks like sync button actually).

I hope this help someone, I will update this article with my opinion in the software after trying it for a while.

-- This section added on 2013-Aug-20 on review of OsmAnd free v1.5.2 beta on Android --

1- Really can't believe this is a free application, it has lots of customization options including right and left area navigation area. It is very hard to tell what option is missing. 1- Navigation route calculation is not good, I always choose fastest, in many cases I find it computing wrong best route to destination & skipping something like high way I'm already taking and suggest another short cut in tiny streets that will take longer time.
1- Maps data are great, level of details like traffic lights, high pressure electricity line, details of public open areas are great, border crossing, fees collection gates and supported warning for such special cases, I think this is great advantage. 2- POI data is moderate, I was testing gas stations as really important during travelling by car, inside city it was ok, but on high ways between towns was missing too much data. Maybe this as I'm testing in Middle East and it is already reported with 2 stars in coverage.
3- Very stable application, I have went for trip for around 500 km without a restart, my previous Nokia maps used to restart twice for same trip. 3-Favorites data that can be stored is very limited, name & categorization only, I like Nokia maps and Google maps that you can add more data or description, like phone, URL, ...
4- Contribute to Open Street Map from within the application, and you can edit later from the site, I think you need to contribute your area at least to enhance maps and POI better. 4- When I choose location on map and use it (For map or reporting) I find the recorded pin is deviated around 50 - 100 meter from what I actually selected, and I really don't know why?!?!
1- Reported driving speed is always reading 3 - 5 km/hr less than the actual speed, this is happening with my two cars but this is the same case in Google maps & Nokia maps so I can't put this in disadvantage but of course affects speed warning.


Setting Mobily Internet Postpaid on Samsung Galaxy Note 2 & S4

Following is the setting for Internet service for Mobily postpaid on Samsung Galaxy mobiles

Setting screen 1 Setting screen 2

Hope this helps someone.


Configure K-9 mail to connect to outlook.com

In-case you don't want to mix between your business email, and personal email on your android, you might consider "K-9 mail" as a good light weight generic e-mail client supporting multiple accounts. It is quite easy and full featured.

The following are the manual step-up configuration to outlook.com using POP3 as setup wizard may fail:

Incoming server:
Username: <Provide complete ...@outlook.com email>
Password: <Password>
POP3 server: pop3.live.com
Security: SSL (always)
Authentication: PLAIN
Port: 995

Outgoing server:
SMTP server: smtp.live.com
Security: TLS (always)
Port: 587
Check "Require sign-in"
Username: <Provide complete ...@outlook.com email>
Password: <Password>

The following are the manual step-up configuration to outlook.com using IMAP as setup wizard may fail:

Incoming server:
Username: <Provide complete ...@outlook.com email>
Password: <Password>
IMAP server: imap-mail.outlook.com
Security: SSL/TLS (always)
Authentication: PLAIN
Port: 993
Outgoing server:
SMTP server: smtp-mail.outlook.com
Security: STARTTLS (always)
Port: 587
Check "Require sign-in"
Authentication: PLAIN
Username: <Provide complete ...@outlook.com email>
Password: <Password>


TOGAF 9 certification preparation advices & exam tips

I have passed TOGAF 9 level 1 foundation, and level 2 certification on Mar-2013 and would like to share the experience with everyone. The following is the recommended steps from my prospective to prepare and pass the exam:

1- Watch tutorial video
You need to know what is Enterprise Architect? What is TOGAF? Overview of the framework so you can decide if you will benefit from this certification. A good introduction is offered here.

2- Get a quick look to TOGAF 9.1 specs
The specification is shared online here, please have a look at the content; no need to get into deep details in this stage. 

3- Attend TOGAF course
TOGAF doesn't necessitate that you get a course to attend the exam, but I think you will benefit from the course very much for the following reasons:
    a- Course takes 5 days, you will find the first two days, you just need to switch your mind to think the TOGAF way, even if you have previous architecture experience. Having someone answering your question will be of great help.
    b- Course offers TOGAF slides, exam material, template that you will really benefit from.
    c- You will benefit from instructor if he has past experience in implementing TOGAF.
    d- Most people attending such course have considerable long experience in IT in general, seeking excellence in their work, you will really enjoy the talk and you will benefit from expanding your professional network as well.
TOGAF has accredited course calendar listed here. I prefer if you select 5 days course for level 1 & 2 as course is already long and 4 days won't be sufficient.

4- Stick to a study schedule
I have prepared a study schedule using Microsoft Project 2010 shared here (For Microsoft Project 2007 shared here). It has specific study calendar “TOGAF Study Calendar” of 4hrs/day, 5 days/week. I encourage using it and modifying the project calendar to suite your availability. This link provides a detailed explanation of how to change the calendar in Microsoft Project 2010. I think 2 weeks after the course will be enough to take level 1 exam.

5- Solving exam questions
You need to solve exam questions before showing for the exam. If you attended a course, usually you will get exam material for your preparation. Others are available as below:
•    The Open Arch.
•    Technology trend analysis practice test.
•    TOGAF free quiz.
•    TOGAF 9 class.
The above are just samples, you can search and find lots more.

6- Exam level 1 foundation advices

a- ESL: You can have extended time for the exam by selecting English as Second Language (ESL).

b- After tutorial and before starting the exam: Draw ADM, as you will get questions asking you with phase letter.

c- Method of elimination is best used for exam, for tough questions, pick any answer from what you think are probably correct before marking the question for review; i.e. never leave a question without an answer.

d- Level 1 is not covering all topics, it is highlighted in study schedule with yellow color, and also indicated as (Level 1).

7- Exam level 2 certified advices (Specs open book)

a- ESL: You can have extended time for the exam by selecting English as Second Language (ESL).

b- A MUST topics for exam (ADM processes & guidelines & techniques - Transition planning techniques - Architecture Capability Framework - Iteration to ADM - Example set of architecture principals specs section 23.6 - Architectural artifacts ch 35).

c- I recommend reading the scenario twice to determine (State of EA office, Management direction, stakeholders concerns, current phase you are dealing with).

d- When you know the phase you are in, you can check the process guidelines, approach, or steps to guide your answer.

e- In answering questions that you should address concerns, or select best architecture artifacts for stakeholders, I recommend using below table as follows:
    i- While reading the statement of the question, write the concerns from multiple stakeholders in the columns.
    ii- Write multiple options in rows.
    iii- For each option, check if it satisfies the concern raised or not and add a mark X or √.
    iv- Select choice that best suites the question & have √ on all columns.

Concern / stakeholder 1 Concern / stakeholder 2 Concern / stakeholder 3 Concern / stakeholder 4
Option A X X
Option B
Option C X
Option D X X X X

I hope this will help someone there.


PMP Preparation advices & exam tips

I have passed PMP 4th exam on Dec-2012 and would like to share the experience with everyone. The following is the recommended steps from my prospective to prepare and pass the exam:

1- Download PMP handbook pdf
This is a free download from PMI, the link might change for the book; anyway you should find it in PMP certification main page. This book is a MUST read. Always check for newer version as this document changes frequently.

2- Attend PMP course
When you read PMP Handbook, it is a must to have “35 contact hours of formal education”, there are mainly two ways for this:
    a- Attend formal course for PMP in your area, but usually it costs you too much, unless it is included within your company training schedule.
    b- Distance learning by purchasing an online course, and at the end you get your certificate by passing an exam.

I have searched the Internet for quite some time and found the cheapest and really good deal The PM PrepCast. It is around 100 USD (Currently, 129.99 USD as of Dec-2012), and has great value; lots of people will recommend it to you, other courses I found online was above 250 USD. You can easily watch the video on your computer or other portable devices. I didn’t try the package with simulator, I have got the preparation including formulas study guide as a package it was really great deal.

3- Purchase good preparation PMP
Reading a preparation book is very important to clearly understand the idea of PMP and its related tasks, PMBOK is considered tenser and towards exam objectives, I find myself try to understand or seeking more declaration about a subject in preparation book if I can’t understand from PMBOK.

You will find most PMP holders refer to two books for certification:
1.    Head First PMP 2nd edition.
2.    PMP Exam Prep, 6th Edition: Rita's Course in a Book for Passing the PMP Exam.

You will find lots of comparison between two books, I prefer that your read those comparisons before purchasing, but most of them mention that Rita is more directed to exam and teaches you as classic text book, while Head first uses its great way for teaching, but it sometimes miss some minor information.
At the end I picked Head first, and I purchased e-book copy for 50% discount from Oreilly using a coupon, so, I suggest before purchasing from whatever website always try to get a coupon from Internet.

4- Becoming PMI.org member
When you read PMP Handbook, fees section, you will find fees differ if you are PMI member or not. All people will tell you better become a member as you will receive discounts on exams, re-examination and renewals plus some more extra stuff. Please create a new account in PMI before applying for individual membership that will cost you 129 USD.

5- Download PMBOK Guide 4th edition
As per your PMI subscription you are eligible to download free electronic water marked copy of PMBOK guide 4th edition (A guide to the project management body of knowledge), it is found in this link. There are other good documents in the same link, but not mandatory for PMP exam.

6- Stick to a study schedule
One of the biggest mistakes that you will do is that you get the certification in relax mode, this may take months or even years. My advice will be making a schedule for the preparation till the day of the exam including solving exams. I have prepared a study schedule using Microsoft Project 2010 shared here (For Microsoft Project 2007 shared here). It has specific study calendar “PMP Study Calendar” of 4hrs/day, 5 days/week. I encourage using it and modifying the project calendar to suite your availability. This link provides a detailed explanation of how to change the calendar in Microsoft Project 2010. You will find that most PMP holder mention that you can have the certification in 3-4 months which matches the project schedule mentioned before.

7- Solving exam questions
You need to solve lots of exam questions before showing for the exam. Following is list of available free:
•    PMP Exam Self-Assessment Test (75 questions).
•    About.com Tech certification (20 questions).
•    BestSampleQuestions.com PMP Sample (160 questions).
•    Test prep review (15 questions).
The above are just samples, you can search and find lots more.

8- Real Exam advices

a- Language aid: If English is not your mother tongue language, apply for free language aid in the exam, this sometimes help in some types of questions.

b- Exam time is limited, you need to be fast: You have 4 hours to answer 200 questions, i.e. you have only 72 secs per question (1st hr --> you should have reached 50 questions, 2nd hr --> 100 questions, 3rd hr --> 150 questions) you should check these milestone in the exam in-order to keep moving as fast as you can.

c- Exam duration is 15 mins tutorial, 4 hours exam, 15 mins survey. The first 15 mins you will have complete tutorial on how to mark and review exam, and use of calculator before you finish this tutorial (As exam will start after this) take the remaining time for writing down all equations you know in a clear paper the testing center have provided you. This is really helpful as you might get distracted from long time in exam and will consume time trying to remember them.

d- Method of elimination is best used for exam, for tough questions, pick any answer from what you think are probably correct before marking the question for review; i.e. never leave a question without an answer.

c- Sometimes for long questions, it is better to start reading the last part sentence to know what it require, before reading a whole paragraph as it is giving stoo much unneeded information.

d- When a question is asking what you will use for a process, it is asking you to pick up input, tool, technique that’s part of the process.

e- Take your time answering “Which is not” question. I think the best way to eliminate confusion is to remove the word “NOT” in the phrase and write down your answers then convert it x --> √ & vise versa. This worked for me very well.

I hope this will help someone there.

Enable DEBUG & VERBOSE for Huawei Android Logcat

I'm having Huawei Nova Plus I found that Huawei only prints to its Android log starting log level INFO . As per Huawei; this is done ...