Google Student Ambassador Program

Are you thrilled by new technology? Do you love Google products? Do you want to bring new opportunities to your university and your peers? Do your friends say you’re a natural leader? If so, the Google Students Ambassador Program may be perfect for you!

Through the Students Ambassador Program, you become a liaison between Google and your university. Ambassadors plan and host several events during the school year, introduce students to new Google products and features and act as a campus contact for Google teams.

Google Student Ambassadors may

  • Work closely with local Google teams
  • Host and organize events to bring awareness about Google’s products and brand
  • Spread the word about competitions, training opportunities, scholarships and other events
  • Attend Google events as a Google representative
  • Help Google to better understand your campus’ culture
  • Build relationships on campus with faculty and student groups
  • Test products and features
  • Promote product use and new product launches to students
  • Be a source of knowledge for your university about Google products
  • Spread Google goodwill to your fellow students

What are the qualifications?

This opportunity is currently by invitation only and is open to students at university. Google MENA Student Ambassadors must be:

  • Currently enrolled in a college or university in the Middle East or North Africa
  • Pursuing a BA/BS or MS degree
  • Passionate about technology
  • Able to plan events and manage a budget
  • Actively involved in student life on campus

What is the time commitment?

  • One academic school year
  • Approx. five hours per month
  • Three to four events per year

Benefits

As a Google Student Ambassador, you will:

  • Receive regular updates about exciting new Google products / features, programs and announcements
  • Enhance your professional development, leadership, technical and communication skills
  • Be eligible to participate in special Google events, product trainings and be considered for local internships
  • Exchange best practices with Ambassadors from other schools and disciplines
  • Add the Google Student Ambassador Program experience to your resume
  • Get your own Google SWAG

Sounds great, how do I apply?

To apply, you should:

  1. Preferably be a second or third year student at your university.
  2. Write an Essay on one of these topics:
    • Computer Science and Engineering students should choose among:Mobile applications (SMS and Mobile Web), Local Content & Localization, Cloud Computing or Open Source, explaining “How these Technologies can become an integral part of our lives in the Arab World.”
    • Business and Economic students should choose among:Social Networks, Digital Agencies, Online Advertising or Online Banking Services, explaining “How these Services and Trends can contribute to a healthy online business eco-system in the Arab World.”
  3. Write a motivation letter on why you want to be an Ambassador, what you can change in your Country through learning new technical skills and how using Google tools could help your university.
  4. Provide a short statement from your Professor or Head of Department confirming your name, level and area of study.
  5. Add your Essay, Motivation letter and Professor/Head of Department statement to the registration form by Saturday, April 30. Accepted students will be informed by mid May 2011.

If you are a professor / lecturer / TA, please help spreading the word on campus and help your students identify the potential of becoming a Google student ambassador for the university – feel free to ask for posters and fliers to be placed on your campus from Google Student Ambassador Program Team.

Riding the Rails: Introduction to Ruby on Rails

I’m pretty sure that you by now are wondering What is Ruby on Rails? and how it can help me in creating my future web application? How easy is it to learn this language? Well, to answer all your questions let’s first start by understanding the meaning of Ruby on Rails. and to understand that term we first need to know what is Ruby in the first place…

  • Ruby is a programming language conceived on early 1993 by Yukihiro Matsumoto who wished to create a new language that balanced functional programming with imperative programming. So it’s been there from a long time, but why we didn’t hear about it until the past few years. That’s because Rails has adopted it for the web and make it excited language to create your web application with.
  • Ruby is similar to Perl, SmallTalk, Python, & LISP. If you are familiar with any of those programming languages you will find the syntax is more a like specially for Perl developers.
  • Ruby is not just for developing web applications, as Ruby is like any other programming language for example C++, C# all can be used for a variety of applications, desktop applications, mobile application, web application and much more.
  • Ruby is Object Oriented Programming Language. for you who are not familiar with the term, Object Oriented Programming is programming a collection of individual units which can each do their own processing and also interact with each other. Which means you can develop an individual code that process its own action in the same time that it can interact with other code.

Now you know what is Ruby… and it’s time to know what is Rails?

  • Rails is an Open Source Web Application Framework that is written in Ruby.
  • Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company). David Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005. In August 2006 the framework reached a milestone when Apple announced that it would ship Ruby on Rails with Mac OS X v10.5 “Leopard”, which was released in October 2007.
  • As an Open Source, Rails is free for community. everyone can download the source code, modify it and share it back, fix bugs, add features, & play around with it that is the whole idea of Open Sources.
  • You may now asking What is the meaning of Web Framework? Well, in brief it’s a set of software tools, pre-written code libraries, and data-organization structures created together to assist in writing a web application.

So after outlining those definitions, what makes Ruby on Rails so powerful and efficient? there are two qualities that makes creating a web application using Ruby on Rails “I’ll call it from now on RoR” a very powerful development tool for creating applications:

  1. DRY: The Mantra of Rails, DRY stands for Don’t Repeat Yourself. Rails make it easier to maintain and keep you code clean and not repeated in so many place, so all you have to do is to make your code in one place so when you need to get back to it you wouldn’t go to far searching among all your project files and folders.
  2. Conventions & Sensible Defaults: Which save lots of time and energy during developing you applications, as everything is very well organized on its own place.

Another fact about rails is that RoR is based on MVC Architecture, if you are not a programmer then you probably don’t know what MVC Stands for:

  • M – Model: which are objects.
  • V – View: which are presentation layers.
  • C – Controllers: which process and responds to events.

The MVC is a way to organize your code in Rails. MVC is DRY and takes all advantages of conventions and sensible defaults. We will get to know more about the MVC Architecture later during this guide.

Get Listed

Now we have a general idea about what’s going on and what terms we will be using during this guide, In the next article I’ll show you how to prepare your testing environment for Ruby and how to install Rails on it and how to create your first application, so stay tuned and register to this special mailing list which will updates you once per week about articles you have missed about Ruby on Rails Only.

Cloud Computing: 7 Online Virtual Desktop

A web desktop or webtop is a desktop environment embedded in a web browser or similar client application. A webtop integrates web applications, web services, client–server applications, application servers, and applications on the local client into a desktop environment using the desktop metaphor. Web desktops provide an environment similar to that of Windows, Mac, or a graphical user interface on Unix and Linux systems. It is a virtual desktop running in a web browser. In a webtop the applications, data, files, configuration, settings, and access privileges reside remotely over the network. Much of the computing takes place remotely. The browser is primarily used for display and input purposes.

The terms “web desktop” and “webtop” are distinct from web operating system, a network operating system such as TinyOS or distributed operating system such as Inferno. In popular use, web desktops are sometimes referred to incorrectly as web operating systems or simply WebOS.

In the past few days, I’ve tested a bunch of virtual online operating systems and web desktop applications, I’ve gathered the best of them that I’ve personally tested and found interesting to be shared with you, enough talk and let’s get them listed:

1- eyeOS

Available at: eyeos.org
eyeOS is a disruptive desktop entirely usable from a web browser. It includes an office suite and some collaboration applications, as well as a full framework to develop new web apps as if they were desktop apps. It’s Free and Open Source –so you can host your own system, keeping all your data under your control.
eyeOS

2- iCloud

Available at: icloud.com
icloud consists of a desktop with applications and files that you run through your web browser. Because it’s running in the cloud (the internet) it can offer you impressive features such as easy sharing and rich collaboration. The icloud team is 100% committed to providing you with an exciting, reliable, and productive computing experience.
iCloud

3- iCube

Available at: oos.cc
Get your free Online Operating System account now and experience the next generation of the World Wide Web with your personal online desktop. Gain access to an entire operating system running in your browser.
iCube

4- myGoya

Available at: mygoya.de
At home on every computer, Online operating system, No installation required, Accessible anywhere in the world.
myGoya

5- Spiral Universe

Available at: www.spiraluniverse.com
Spiral is an integrated software suite used by schools to increase efficiency, reduce costs, and improve their management and administration. The platform is designed to be used by K-12 public, independent, and charter schools, as well as small colleges and universities.
Spiral Universe

6- Ulteo

Available at: www.ulteo.com
Ulteo Open Virtual Desktop is an installable Open Source virtual desktop and application delivery solution for corporations. It allows IT departments to deliver desktops and applications easily and at a lower cost than other solutions. It works in both a Windows and Linux environment.
Ulteo

7- ZimDesk

Available at: www.zimdesk.com
ZimdeskOS is your computer on the web – the entire functionality of a PC – online. There is nothing to install. A web browser and internet connection are all you need to access your desktop, files and favourite applications. You can access your data anytime from anywhere, from any PC.
ZimDesk

What’s Next?

Now it’s your turn to test and share, tell us what you find interested on those application or even share a new one to be added to the this list of best online virtual desktop operating systems.

6 free open-source high-performance HTTP servers

As a web developer, you probably know that you always need to use a testing environment to run your web application or to test a new feature to be added to your current application without messing out with your current on server running application.
Every Geek knows that there is no place like 127.0.0.1 which is your local computer, so get the power of your computer and start your testing environment weather you are a PHP, Java Or even Ruby developer you can use one of the following list of top 6 free localhost web servers I’ve been using in the past few years.

1- XAMPP

Download from: www.apachefriends.org
XAMPP
Many people know from their own experience that it’s not easy to install an Apache web server and it gets harder if you want to add MySQL, PHP and Perl.
XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use – just download, extract and start.

2- Nginx

Download from: www.nginx.org
nginx
Nginx is one of a handful of servers written to address the C10K problem. Unlike traditional servers, Nginx doesn’t rely on threads to handle requests. Instead it uses a much more scalable event-driven (asynchronous) architecture. This architecture uses small, but more importantly, predictable amounts of memory under load.
Even if you don’t expect to handle thousands of simultaneous requests, you can still benefit from Nginx’s high-performance and small memory footprint. Nginx scales in all directions: from the smallest VPS all the way up to clusters of servers.

3- Roxen

Download from: www.roxen.com
Roxen WebServer is a full-featured open-source web server distributed under the GPL license. It runs on a number of different operating systems including Windows, Linux, Solaris and Mac OS X.

4- Apache

Download from: www.apache.org
The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
Apache httpd has been the most popular web server on the Internet since April 1996, and celebrated its 15th birthday as a project this February. The Apache HTTP Server (“httpd”) is a project of The Apache Software Foundation.

5- Tornado

Download from: www.tornadoweb.org
Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application is written using a web framework that looks a bit like web.py or Google’s webapp, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure.

6- Lighttpd

Download from: www.lighttpd.net
Security, speed, compliance, and flexibility — all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. And best of all it’s Open Source licensed under the revised BSD license.

Conclusion

There are more than 100+ webservers applications that you can download and give them a try. but those 6 free open source high-performance http servers are based on my experience in using them. the oldest one i use is the XAMPP and i still use it till now. If you would like to recommend another software please name it on a comment below… Have a great day everybody…

4 free open source NMS

A Network Management System (NMS) is a combination of hardware and software used to monitor and administer a network. NMS systems make use of various protocols for the purpose they serve. For example, SNMP protocol allows them to simply gather the information from the various devices down the network hierarchy. NMS software is responsible for identification of the problem, the exact source of the problem and solving them. The NMS systems not only are responsible for the detection of faults but also for collecting the statistics of the devices over a period of time. They may include a library where the previous network statistical data over a period of time is stored along with the problems and the solutions that worked in the past. This library can come useful in case a fault is found. NMS software can consult the library and search for the best possible method to resolve the problem.

In this post I gathered top 4 Free Open Source Network Management Software that you can use as an IT Administrator in your network, Whether you run small or enterprise network, you will find those tools handy and effective in doing your monitoring work as simple as it could be.

1- SpiceWorks

Available at: www.spiceworks.com
Manage Everything IT…for Free! Spiceworks is the complete network management software, helpdesk, PC inventory tools & IT reporting solution designed to manage everything IT in small & medium businesses.
SpiceWorks

2- OpenNMS

Available at: www.opennms.org
OpenNMS is the world’s first enterprise grade network management application platform developed under the open source model.
OpenNMS

3- OpenQRM

Available at: http://www.openqrm.com
openQRM is the next generation, open-source Data-center management platform. Its fully pluggable architecture focuses on automatic, rapid- and appliance-based deployment, monitoring, high-availability, cloud computing and especially on supporting and conforming multiple virtualization technologies.
OpenQRM

4- Hyperic HQ

Available at: www.hyperic.com
Designed to provide all fundamental management and monitoring capabilities for web applications and IT infrastructures.
Hyperic HQ

Synergy+ Share a single mouse and keyboard between multiple computers

During my search for a software to make me share a single mouse and keyboard across my 4 work stations instead of buying a KVM, I came across with this wonderful open source software which is called “Synergy+ (synergy-plus)”. Synergy+ lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special hardware. All you need is a LAN connection. It’s intended for users with multiple computers, where each system uses its own display. It’s a little like having a 2nd or a 3rd desktop.
Synergy+ is free open source software. It’s not a KVM or VNC tool, but it does achieve similar results (but with added convenience). No need to press any buttons when you want to change desktops, and your keyboard input goes to the same screen that your mouse cursor is on.
Synergy Plus

Interesting features:

  • Move your mouse easily between computers.
  • Requires nothing other than existing Ethernet.
  • Copy and paste between your computers
  • No need to press any buttons (unlike KVM)
  • You can still use multiple monitors on the same computer
  • Lock the mouse to one screen temporarily (useful for games)

Synergy plus is currently available for Windows, Linux, & Mac operating systems at: Synergy+ Project Page hosting on Google Code.

5 Virtualization Application for development testing

As a developer, and tester at the same time, I need to have multiple operating systems to test my applications or even my design to get a better look of what the user will see. Of course I can not have multiple OS that dual boot on my system cause that would be painful especially when rebooting the main system to log into another one. Therefore I use a virtualization applications to operate multiple operating systems into one screen.

Here at my work we have a license to use VMware Workstation to test our applications, but when um at home, I can not afford the money to buy one, so I searched for open source and freeware that do virtualize different operating systems medium and here is a list of top 5 application you may want to use:

VMware Player

VMware Player 3.1.0Get your copy at: www.vmware.com
A virtual machine is a computer defined in software. It’s like running a PC on your PC. This free desktop virtualization software application makes it easy to operate any virtual machine created by VMware Workstation, VMware Fusion, VMware Server or VMware ESX, as well as Microsoft Virtual Server virtual machines or Microsoft Virtual PC virtual machines. VMware Player is the easiest way to run multiple operating systems at the same time on your PC. With its user-friendly interface, VMware Player makes it effortless for anyone to try out Windows 7, Chrome OS or the latest Linux releases, or create isolated virtual machines to safely test new software and surf the Web. VMware Player can also be used to run a virtual copy of an old PC so that you can recycle the old machines you have under your desk or stored in the closet.

VMware Server

VMware ServerGet your copy at: www.vmware.com
VMware Server is a free virtualization product for Windows and Linux servers with enterprise-class support. It enables companies to partition a physical server into multiple virtual machines and to start experiencing the benefits of virtualization. VMware Server is a robust yet easy to use product for users new to server virtualization technology and is based on VMware’s proven technology. Begin enjoying the benefits of server virtualization for free. VMware Server is a hosted virtualization platform that installs like an application on any existing server hardware and partitions a physical server into multiple virtual machines.

Windows Virtual PC

Windows Virtual PCGet your copy at: www.microsoft.com
Virtual PC provides IT Professionals with a cost-effective safety net for certain employees to run critical legacy applications on an interim basis while IT Pros continue their current migration plan to a new OS. Microsoft operating systems and applications running on VPC virtual machines are fully supported in compliance to the MS product lifecycle guidelines. So Windows XP Pro deployments can continue on schedule, even if faced with unanticipated application compatibility issues, allowing Microsoft customers to take advantage of the ROI and productivity gains of more current operating systems. With Microsoft Virtual PC 2007, you can create and run one or more virtual machines, each with its own operating system, on a single computer. This provides you with the flexibility to use different operating systems on one physical computer.

VirtualBox

VirtualBoxGet your copy at: www.virtualbox.org
VirtualBox is a general-purpose full virtualizer for x86 hardware. Targeted at server, desktop and embedded use, it is now the only professional-quality virtualization solution that is also Open Source Software. VirtualBox has an extremely modular design with well-defined internal programming interfaces and a client/server design. This makes it easy to control it from several interfaces at once: for example, you can start a virtual machine in a typical virtual machine GUI and then control that machine from the command line, or possibly remotely. VirtualBox also comes with a full Software Development Kit: even though it is Open Source Software, you don’t have to hack the source to write a new interface for VirtualBox.

Sandboxie

SandBoxieGet your copy at: www.sandboxie.com
Sandboxie runs your programs in an isolated space which prevents them from making permanent changes to other programs and data in your computer. Running your Web browser under the protection of Sandboxie means that all malicious software downloaded by the browser is trapped in the sandbox and can be discarded trivially. Browsing history, cookies, and cached temporary files collected while Web browsing stay in the sandbox and don’t leak into Windows. Viruses and other malicious software that might be hiding in your email can’t break out of the sandbox and can’t infect your real system.