Feeds:
Posts
Comments

I have been working as software engineer in a nice company for about 3 years, in the beginning I never thought about freelancing before; things were quite stable: You don’t have to do anything with the client, you just do your job as employee, and you get your salary at the end of the month.

However one day, a hospital administration contacted me to develop an electronic medical system for them – they knew me as most of may family are physicians-, I was quite shocked by the request: I haven’t thought of freelancing before, can I really do this of stuff? I decided to give it a try.

It turned out to be a very useful experience, and a total different feeling from being just an employee in a company, you deal with clients yourself, you get recognition for your good job, as well as comments on stuff that needs improvements. Also you get to know the value of a good client, as in my case I learned that I won’t work with a client again unless I’m quite sure that he is professional and understands the software engineer business.

But how will you get connected to that good client? A client that understands the trade off between a fixed price contract and an hourly contract, understands when this fit and when not, a client that you won’t waste a lot of time arguing with him about what is pretty obvious to software engineers. Also from this set of “good” clients, how will you connect to them, how will they even connect to you/

Here is where toptal kicks in. Clients go to toptal to search for professional developers to help them with  their projects, and toptal in turn has its own filters in selecting clients to make sure they meet its standards, you don’t have to do anything to find a client! Now you can focus on sharpening your software engineering skills to have better chances and get hired! And if you are a web developer as me, then the right place for you would be Web Engineers Group. In web engineers group – as well as other groups- only top 3% of freelancers who apply are accepted, so if you passed their selection process, you can consider yourself among top 3% software engineering freelancers 🙂

I decided to learn PHP, and I thought one interesting way to learn it would be to build a mini MVC framework. I won’t go into details but here are the files 🙂

General lines:

index.php is the router file where all requests go to first, the controller,action -if any- and id-if any- are extracted and the proper action is taken, routing all requests to index.php is made via .htaccess file.

The model file is just a little abstraction, not a lot of functions.

Each model file must extend Model.php and each controller file must extend Controller.PHP, all models reside in the directory “models”, all controllers reside in the directory “controllers”

For each controller, there is a directory with the controller name under “views” directory, each view for each action is a php file in this directory.

There are some conventions I followed in this work: views files location, etc.. I won’t go into details as they can be inferred from the code. ( Tip: The controller and Model superclasses are in ‘lib’ directory)

I tried to build a mini site using this MVC framework, but so far I only built the login,logout and register- so you will find a lot of unused files- 🙂 anyway they are quite enough to illustrate the framework idea.

https://github.com/loaighoraba/workspace/tree/master/PHP/mysite

سافرت إلى ألمانيا أربع مرات، قضيت ثلاث أسابيع في كل من المرتين الأولتين، و 6 أشهر في المرة الثالثة وأنا اﻵن في  المرة الرابعة. بداية انبهرت هناك بنظام الحياة الدقيق و المنظم، و أن كل ذي حق يأخذ حقه و نحو هذا، ولكن شيئا فشيئا يدرك المرء الحقيقة: أن حرص هؤلاء القوم على الحقوق و العدل، ليس حبا خالصا لهذه القيم أو عملا من أجلها، بل حرصا على الدنيا و تقاتلا عليها، و إفناء للعمر في سبيلها، في حياة مادية لا تطاق، لا تستطيع أن تطمع منهم في رحمة. فقوم لا تسيطر عليهم حقيقة أنه يوجد إله مطلع سميع بصير، و أنه هناك بعد الموت يوم يحاسب فيه الناس، و أن الأعمال الصالحة تثقل ميزانك يومها، و أن الفوز الحقيقي هو الجنة، قوم كهؤلاء لا يستطيع المرء أن يعيش معهم. حياة مادية يعمل المرء فيها كطاحونة في جو من السعار للدنيا، لا تجد قيم العطاء و الكرم و مكارم الأخلاق.. لا يفهمون معنى أن تداين الناس و لا تكسب من وراء إقراضك لهم. فهو لن يعود عليه شيئا إن أقرضك ثم عاد له المبلغ الذي أقرضه كما هو بدون زيادة. لا تجد للعفو عندهم معنى، و لا أن تكظم غيظك و أنت قادر على إنفاذه، لا معنى للدفع بالتي هي أحسن، و لا أن تتجاوز عن السيئة. لا حياة روحية هناك، يكبر الأب و الأم و يذهب بهم أبناؤهم إلى دور رعاية المسنين بدلا أن يُسكِنوهما معهم. مجتمع “بلاستيك” بلا سعادة على الإطلاق، يحاولون الحصول عليها في ملذاتهم الدنيوية كالخمر و النساء. لا يعون قوله تعالى :”المال والبنون زينة الحياة الدنيا والباقيات الصالحات خير عند ربك ثوابا وخير أملا” ، ” ادفع بالتي هي أحسن”، ” فمن عفا و أصلح فأجره على الله”. أذكر أنني جلست ذات مرة أنا و اثنين من زملائي مع دكتور في الجامعة الألمانية على مائدة عشاء في مصر-فرض هو نفسه علينا- و أخذ الرجل يتكلم عن أنه سعيد بالحياة في مصر، وأنه عندما يعود لألمانيا مؤقتا يتحرق شوقا للعودة إلى مصر و أخذ يشكو الحياة في ألمانيا بماديتها المفرطة وانعدام الروح فيها. لم أكن قد سافرت إلى ألمانيا وقتها فلم أستطع أن أتفهم كلامه تماما، ولكن بعد أن سافرت هناك أدركت صدق الرجل.

قد يقول قائل: ولكن لا يوجد في مصر أيضا هذه اﻷخلاق، فما الفرق بيننا وبينهم، أقول لك: هناك طائفة من المصريين لديهم نسبة عالية من هذه اﻷخلاق واﻹنسانية، وهذه الطائفة هي التي تجعل المرء يتحمل المعيشة في مصر، .. بخلاف أن المجتمع الذي يقرأ فيه القرآن يوجد عنده شيء لا يوجد في المجتمع الخالي من القرآن.. وهو ما لا يمكن التعبير عنه باللسان ولكن بالتجربة.

 

و قد وجدت أن الشهيد -بإذن الله- سيد قطب قد عبر ما أردت قوله في بيان لغوي رائع كعادته، فنقتبس صفحات من كتابه “نحو مجتمع إسلامي” :

أدري كيف يعيش الناس في أمريكا . بلد الإنتاج الفخم والثراء الفاحش واللذائذ المباحة . . لقد شهدتهم هنالك والقلق العصبي يأكل حياتهم على الرغم من كل مظاهر الثراء والنعمة ووسائل الراحة . إن متاعهم هياج عصبي ومرح حيواني وإنه يخيل اليك أنهم هاربون دائماً من أشباح تطاردهم ، إنهم الآت تتحرك في جنون وسرعة وهياج لا يقر له قرار . وكثيراً ما كان يخيل إلي أن الناس هناك في طاحونة دائرة لا تني ليل نهار ، صباح مساء ، تطحن بهم ويطحنون ، لا يهدأون لحظة . ولا يطمئنون إلى أنفسهم ولا إلى الحياة من حولهم – إن كانوا يحسون ما حولهم – ليست هنالك لحظة للتأمل ، ولا حتى للشعور بالحياة ذاتها وهي تدور حتى أوقات راحتهم ورياضهم في المنتزهات والغابات وعلى شواطيء الأنهار والبحيرات . . . تراهم فيها فنحس أنهم في ” شغل ؛ ” كأي شغل خلال العمل ، وكل ما هنالك من فارق أنهم في مكان غير المكان ، وفي عمل غير العمل . ولكن لا راحة ولا هدوء ولا تأمل ، ولا اطمئنان .

إنهم ينتجون كثيراً . ما في ذلك شك . إنهم يكسبون كثيراً ما في هذا شك أيضاً ولكن لمن ينتجون ولمن يكسبون ؟ لذات الكسب ولذات الانتاج ؛ العنصر الإنساني لا وجود له ، تأمل ذلك الكسب وذلك الانتاج الاحساس بدوافعه ونتائجه في يقظة فكر وحساسية قلب ، تذوقه بحس الإنسان المتميز عن حس الآلة . . كل ذلك لا تلمحه في سيما وجه ولا في تعبير لسان !

إنها الطاحونة الدائرة ليل نهار : تطحن ، وتبعثر ما تطحنه . وتجمعه مرة أخرى لتطحنه من جديد ! والناس والأشياء والزمان والمكان . . كلها تدور في تلك الطاحونة الدائرة التي لا تكل ولا تمل ، ولا تكف لحظة عن الدوران . .

إنه الدوار ! ! !

هدوء القلب . اطمئنان النفس . راحة الضمير . لذة الفرح اليقظ بثمرات الجهد والارتياح . المودات الحلوة بين الناس التجاوب الروحي بين الاصدقاء . الاهتمامات الناشئة عن الوشائج الوثيقة في الاسرة تلك المشاعر التي تشعر الفرد أنه ليس وحده . وتمنحه الثقة والطمأنينة والراحة بعد الجهد والكد والعناء العقيدة في قوة أكبر من قوة الأرض ، تلك العقيدة التي تشعر الفرد أنه ليس ذرة تائهة في هذا الكون العريض بلا أصل ولا قرار . . كل هذا لا وجود له في قاموس الحياة الأمريكية ، ولا في محيط النفس الأمريكية .

إنه الخواء ! ! !

الخواء على الرغم مما يبدو من زحمة في الحياة وامتلاء .

هنالك مرح كثير ، يخيل إلى من لا يعرف أنه سعادة . . . تلك الضحكات التي ترن في الهواء . تلك ” المهارشات ” التي تتحسس مساقط اللذة في الأجساد . تلك الكؤوس التي لا تفرغ من الخمر ، تلك الضجة التي لا تهدأ ولا تسكن . . ولكنه المرح الحيواني لا السعادة ، ولا الفرح ، إذ عربدة السكارى ليست سعادة ، كذلك المرح الحيواني ليس فرحاً ، إنه انطلاق الطاقة المكبوته تحت ضغط العمل المرهق . إنها قرقعة كقرقعة الآلات لتفريغ البخار . . .

ولكن أين الإنسان ؟ في كل هذا الركام ؟ أين الإنسان المتميز عن الآلة وعن الحيوان ؟ ولست اتصور من وراء الفلسفة المادية في روسيا إلا حياة أحط من تلك الحياة . فحتى ذلك المرح الحيواني الناشيء من الطلاقة والثراء في امريكا لا أتصوره هناك ؛ وفي هذا الدرك تستقر البشرية اليوم في الشرق وفي الغرب سواء .

إن البشرية كلها في حاجة الينا : في حاجة إلى عقيدة في الضمير ، يستروح في ظلها من هذا الهجير القائظ . ويطمئن في رحابها من ذلك القلق ، ويستقر في حضنها إلى قرار”.

و ختاما: اللهم اجعلنا هداة للإنسانية في بحثها عن حقيقة الحياة و الإنسان، و أن نخرجها من حيرتها و تخبطها إلى نور الإسلام و دفء الإيمان. اللهم آمين.

In some task today I had to use zigzag scanning on a grid rather than normal traversal , this is an illustration of this kind of scanning.

I thought of sharing the code I wrote so that anyone can use this ready-made one..I don’t claim it is the best nor the most elegant 🙂

C++ source code :


/**
 * traverses m*n grid in zigzag order
 */
void traverseZigZag(int m, int n) {

	int i = 0, j = 0, up=1;
	bool turned = false;
	int d[2][2] = { { 1, -1 }, { -1, 1 } };
	int corner[2][4] = { { 1, 0, 0, 1 }, { 0, 1, 1, 0 } };
	while (i < m && j < n) {
		//here you have your (i,j), do what you want with them.
        printf("%d %d\n",i,j);
		if (i == 0 || j == 0 || i == m - 1 || j == n - 1) {
			if (!turned) {
				int k = 2 * (up * (j / (n - 1)) | (1 - up) * (i / (m - 1)));
				i += corner[up][k];
				j += corner[up][k + 1];
				turned = true;
				up = 1 - up;
				continue;
			} else
				turned = false;
		}
		i += d[up][0];
		j += d[up][1];
	}
}