Quickstart to testing your website with Behat, Mink, and Selenium
YouTube Preview Image
best way to add payment to your website

s1s2s4 s3https://stripe.com/us/pricing

<form action="/charge" method="POST">
    data-name="Demo Site"
    data-description="2 widgets ($20.00)"

ُExample no need to pay

Vagrant Beginner
YouTube Preview Image

This is the best way you could build your server with.


Benchmarks: Node.js vs Go vs PHP

With talk lately about Go, the Google sponsored programming language), and what performance benefits it holds, I thought I’d go and do a quick benchmark of Go, Node.js, and PHP.

Update: Node.js vs. Go 1.1

Disclaimer: Make the smartest decision possible when choosing a language. Benchmarks give you a rough idea of language speed, but do not provide insights into real world usability, productivity, or what is best for you or your company. In short, take these numbers wisely.

The test

Here’s the first test. A rusty old Bubble sort. I use this because it gives a good idea of how long computations and comparison operations take for the specific language to perform. Here’s the code I used:


$starttime = microtime(true);

$array = array(3,4,1,3,5,1,92,2,4124,424,52,12);

for ($c=0;$c<100000;$c++) {

for ($i=0;$i<count($array);$i++) {
    for ($y=0;$y<count($array)-1;$y++) {
        if ($array[$y+1] < $array[$y]) {
            $t = $array[$y];
            $array[$y] = $array[$y+1];
            $array[$y+1] = $t;

echo microtime(true) - $starttime;


var starttime = new Date().getTime();

var array = [3,4,1,3,5,1,92,2,4124,424,52,12];

for (var c = 0; c < 100000; c++) {
    for (var i = 0; i < array.length; i++) {
        for (var y = 0; y < array.length - 1; y++) {
            if (array[y+1] < array[y]) {
                var t = array[y];
                array[y] = array[y + 1];
                array[y + 1] = t;
console.log(new Date().getTime() - starttime);


package main

import "fmt"
import "time"

func main() {

timestart := time.Now();

array := [...]int16{3,4,1,3,5,1,92,2,4124,424,52,12}

for c := 0; c < 100000; c++ {

for i := 0; i < len(array); i++ {
    for y := 0; y < len(array) - 1; y++ {
        if array[y+1] < array[y] {
            t := array[y]
            array[y] = array[y+1]
            array[y+1] = t



timeend := time.Now();



Without further ado, here are the results:

Holy slow is slow, PHP. That’s a full three seconds, verses the less than 100ms boasted by Node.js and Go. Let’s remove the outlier:

PHP completed the operations in 3.835 seconds. Node.js completed them in 71 milliseconds, whereas Go completed them in 38ms. Not bad, those latter two.


As a language, Go does seem faster than Node.js by a significant margin. This being said, the two are both eons ahead of PHP in speed, which we all already knew. The performance gains from both of them, compared to PHP, shows they are both relatively fast when compared to a very popular language for web development.

Test 2: HTTP

Now, since we’re talking in the context of the web, I thought I’d compare Node.js and Go’s HTTP capabilities.


package main

import (

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "You requested %s", r.URL.Path)

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)


var http = require("http");

http.createServer(function(request,response) {

    response.write("You requested " + request.url);


Without further ado, the ApacheBench results:

Again, lower is better. In this case, Node barely outperformed Go in handling static HTTP requests, but not by much of a margin (~1ms).

Now, if we throw the bubble sort code into the request handler function, we get obviously this:

Here, the computation efficiency of Go wins over Node.js. But computing 100,000 bubble sort operations is probably not on the scale of data processing is required per request to your users, so we’ll drop the loop and do one bubble sort per request:

Now that’s interesting. Here, it appears that the HTTP transport of Node.js is more efficient than Go’s, despite the lower computation speed. If we increase the concurrency, the gap between the two grows:


My only strong conclusion from this is, if your goal is to optimize past the speeds of PHP or other similar languages, Go and Node.js are good alternatives. Which should you use? This information can’t tell you that. It would appear, and make sense, that Go handles data processing more efficiently than Node. But at the same time, it does appear that Node may scale more efficiently, at least in the almost pure HTTP side of things. In a real world scenario, the type of operations your application does will be critical in determining this. One thing I didn’t benchmark, and I wish I had time to, is database driver speeds, but that’s another topic for another time. In the end, though, I’d say language choice is truly up to preference and suitability for your project. Go may be somewhat faster in a few cases, and Node in others, but both Node.js and Go are eons faster than PHP. It truly depends on your team’s experience and what type of operations are at hand.

Any questions, suggestions, or better points are welcomed (and encouraged)

Update: Node.js vs. Go 1.1


من يدير جوجل؟

من يدير جوجل؟

مقال رائع جدا للاخ محمد حجاج

Genetics, Nanotechnology and Robotics


روشتة لنمط حياة صحي لكبار السن في مصر لتجنب العديد من الأمراض

قدم الدكتور سامح علي ، رئيس مركز دراسات أمراض الشيخوخة بمعهد حلمي للدراسات الطبية ب #مدينة_زويل لموقع ” #الوطن #علوم و #صحة ” روشتة لنمط حياة صحي لكبار السن في مصر لتجنب العديد من الأمراض.

قال الدكتور سامح أن أمراض الشيخوخة تكبد دول العالم الكثير من الأموال لرعاية الأفراد صحياً في حال إصابتهم بالأمراض بخاصة بعد التقاعد يقدر في معظمها بمليارات الجنيهات. في ظل إرتفاع معدل عمر المصريين منذ الأربعينات من 50 إلي 70 عام.

“تأخر متوسط العمر الصحي لكبار السن في مصر بعشرة سنوات مقارنة بباقي دول العالم” ، أضاف سامح في إشارة لمعاناة المسنين في مصر من تدهور الحالة الصحية والإصابة بأمراض متوطنة مثل السكر و القلب ؛ ما يزيد من معاناة موازنة الدولة في تقديم الرعاية الصحية.

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

نوعية الغذاء الصحي لكبار السن

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

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

شددت روشتة رئيس مركز أمراض الشيخوخة علي تناول المياه بما لا يقل عن 2 لتر يومياً ،وهي الكمية التي يحتاجها جسم الإنسان بخاصة كبار السن.

ممارسة الرياضة و التنشيط الذهني

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

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

إضطراب النوم والأمراض النفسية

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

و يتسبب الخلل بالساعة البيولوجية ،كما أضاف سامح في فقدان التركيز و قدرات التعلم و الإصابة بعدد من الأمراض النفسية علي رأسها الإكتئاب والإصابة بأمراض البدانة لتأخر معدل تكسير الطعام خلال فترات الليل.” lموقع الوطن – مقال “رئيس مركز أمراض الشيخوخة يقدم روشتة لنمط حياة صحي لكبار السن

Embedded Systems Projects Ideas for Engineering Students

List of Embedded Systems Projects Ideas:

Project Title
Auto Power Supply Control from 4 Different Sources: Solar, Mains, Generator & Inverter to Ensure No Break Power
Automated Car Dash Board
Automated Town Water Management System Using PIC
Automatic Door Bell with Object Detection
Automatic bidirectional visitor counter using 8051 microcontroller (AT89C51)
Automatic plant Irrigation (AT89C2051)
Automatic College Bell (AT89S8252 & DS1307)
Automatic Dialing to Any Telephone Using I2C Protocol on Detecting Burglary
Automatic Door Opening System with Movement Sense
Automatic irrigation System on Sensing Soil Moisture Content
Automatic Room light Controller with Visitor Counter (AT89S52)
Automatic Surveillance Camera Panning System from PC
Cell Phone Based DTMF Controlled Garage Door Opening System
Cell Phone Controlled Robotic Vehicle
Celsius and Fahrenheit scale digital thermometer using 8051 microcontroller (AT89C51)
Celsius scale digital thermometer using 8051 microcontroller (AT89C51)
Clap counter using 8051 microcontroller (AT89C51)
Remote Jamming Device
3 LED Bike Light using PIC10F200
3-Switch Mini IR Remote Control Continue Reading →
PHP Template Engine Comparison

Summary (assign)

Test tot. time tot. memory package size
php 5.4.4-14+deb7u5 2001 μs 12.16 KB 4 KB
raintpl 2.7.0 5113 μs 321.86 KB 37 KB
twig 1.5.1 17671 μs 844.86 KB 647 KB
smarty 3.1.11 20411 μs 1.52 MB 1100 KB


Seven step process to increase knowledge

1) Learn to be more observant
2) Learn to find everything interesting
3) Learn to question everything 

And then

4) Travel
5) Talk to people
6) Read
7) Create projects

5 features to know about Composer PHP

1. Update only one vendor

You want to update only one specific library, without updating all your dependencies? That’s easy, just add the vendor name as argument to the update command:

$ composer update foo/bar

This will only install or update the library (plus its dependencies) and overwrite thecomposer.lock.

Nevertheless, this is also very usefull to fix a warning message I’m sure you know very well:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

« Damn it composer, what’s wrong with my vendors? ». Don’t panic! This is what you should expect if you just have edited the composer.json file. For instance, if you add or update a detail like the library description, authors, extra parameters, or even put a trailing whitespace, this will change the md5sum of the file. Then Composer will warn you if this hash differs from the one stored in the composer.lock.

Ok, so how to proceed? The update command is the one which update the lock file. But if I just add a description, I may not want to update any library. In that case, just update nothing:

$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files

Thus, Composer won’t update your vendors, but it will bring your composer.lock file up to date. nothing in not a key word in the update command. Since it has no correspondence, it’s like you typed foobar. Note that since recently, there is a new warning message that tells you nothing is not a valid package, but that doesn’t matter.

Continue Reading →

Next Page