Category Archives: My Work

How to reduce your virtualbox linux virtual machine size

After using a linux virtual machine that has been configured with dynamically expanding drive, the size gets larger even if you remove files from it.

Here is the steps to shrink your linux virtual machine size :

1- Remove any unnecessary files you don’t need from the virtual machine.

2- Fill the unused spaces on it with zeros.

  • Open the virtual machine.
  • Install zero free
sudo apt-get install zerofree
  • Reboot the machine in repair mode, and login to root shell
  • Kill any processes using the hard disk.
service rsyslog stop
service network-manager stop
killall dhclient
  • list your virtual machine harddisks
df
  • Unmount and Fill all the unused spaces for each physical drive on the machine with zeros.
mount -n -o remount,ro -t ext3 /dev/sda1 /
zerofree /dev/sda1
  • Shutdown the machine.

3- Clone the old HD file into a new shrinked one

VBoxManage clonehd oldHd.vdi newHd.vdi

4- Now add the new cloned HD file as the new HD for the machine and test it.

5- Remove your old HD file.

 

Second life and Virtual Worlds on the web

I had had the chance to do some investigations on how to create a second life similar application that run on the web, and allows people to communicate, chat, and interact in different ways.

The applications of such tools can be virtual meeting rooms, small virtual world for people to share or discuss some cause or idea. there is also the fun part where people can interact as in a game, purchase items, go to virtual malls, etc.

Here is some links to the wikis of tools that can create virtual worlds:

http://en.wikipedia.org/wiki/RedDwarf_Server

http://en.wikipedia.org/wiki/Project_Darkstar

http://en.wikipedia.org/wiki/Croquet_project

http://en.wikipedia.org/wiki/Open_Wonderland

http://en.wikipedia.org/wiki/GForge

http://en.wikipedia.org/wiki/OpenSimulator

I hope those would be useful for any one interested in virtual world applications, Have any urls to add to those, please let me know .

Recruitment System – One of my projects

I wanted to post this since a while.

The recruitment system is one of the applications I built for cha-international while working there beside developing the Middle East & North Africa travel awards system, mail marketing system, and converting all their servers from windows to Linux.

In brief the system has the following features :

  • Backend :
  1. Managing countries, Nationalities, Languages, World Areas, System Announcements.
  2. Managing Education Levels, Industries, Titles, Departments, System Reply Messages, Candidate Status, Candidates Classifications, and Quotes.
  3. Testimonials section where the company can post its clients testimonials to be displayed in the frontend.
  4. Managing 2 types of resumes : Uploaded Attachments, and Detailed filled forms Resumes.
  5. Easy form for the data entry team to add the resumes from the backend.
  6. Searching for candidates, using simple forms like name, email or advanced one which contains name, different nationalities, different languages, age, sex, industry, title, keyword in resume, etc.
  7. Consultants area where they can post / close job posting, searchย  for candidates, export word version of resumes, add to their favorite list, recommend them to another consultant.
  8. Consultants also can comment on the resumes, change their availability status to be seen by other consultants, and communicate with the candidate through the reply messages and keep track of those sent messages.
  9. The system has a approval workflow engine, the admins have to check the resume to approve it first.
  10. The system has a privileges section where the administrator can create a new role, assign access to certain areas in the backend to certain role, and assign the roles to system users.
  11. Feedback system where the backend users can communicate with the administrator for support tickets, etc.
  12. Auditrail system where every action in the system is logged.
  • Frontend:
  1. Simple upload form where users can just upload their resume and simple details.
  2. Advanced profile form where users can fill in all the details, and add many attachments to their profiles.
  3. Listing, Simple search, advanced search for jobs, and applying to them.
  4. Clients area where they can request certain services.
  5. Featured profiles, where a certain profiles selected by the admins showed in frontend.

The project was completely built from scratch using Zend Framework, and right now it has more than 70,000 applicant in its database, and the system is as fast as you see in the videos, these demos were taken with 50,000 record in the database.

Please don’t give me any feedback on the design ;), I am just a developer.

Here is some videos describing the different features of the system, I will try to post a better quality ones later.

 

Change your Signature

[youtube=http://www.youtube.com/watch?v=KXMg4q43Vf0]

 


Search Resumes

[youtube=http://www.youtube.com/watch?v=UUCuQ3XZmHg]

 


Apply as New Candidate

[youtube=http://www.youtube.com/watch?v=UNMVIahQAeU]

 


Send Feedback to support

[youtube=http://www.youtube.com/watch?v=-QiwYphCi2k]

 


Consultant Functionality walk through

[youtube=http://www.youtube.com/watch?v=wU6MDYO-xsw]

 


Check who applied for your job

[youtube=http://www.youtube.com/watch?v=X7_ZNVjksKg]

 


Apply for Posted Job

[youtube=http://www.youtube.com/watch?v=B06xlZr8A-w]

 

Zend Certified Engineer

Hi mates,

finally i have got certified as Zend Certified Engineer on 10th of this month.

i have been decided to take the exam since a year, but was too busy to hold myself at home and revise the manual and prepare for the exam, but this month i said this is it.

The exam is very tricky with lots of confusing questions, it tests your ability of thinking and your real experience with php, web development, security and many other topics that some people will not expect to exist in PHP exam, it isย  real benchmarking to your abilities.

I must say that preaparing for the exam has opened various topics for me to dig deep in, and it was a great experience.

And being one of the only 2 certified in Egypt is cool ๐Ÿ˜‰

New Home Page Layout

I dunno if anybody has noticed this cause most of the visitors come to the blog directly, i have deployed a homepage for the site http://www.php-architect.com , it contains no graphic, just some ajax / css tricks with some theme.
i was obsessed by the idea that i couldn’t wait until i finish the content of the pages, and i deployed it.
waiting for suggestions to improve it and i will upload the content soon.

Installing Python & PyGTK on Mac OsX

Recently i have been asked to develop an application that will work on Linux, and Mac os, so i started developing it on my Ubuntu, i chosed Python as the programming language and PyGTK as the GUI for it.

The application worked fine on my Ubuntu, but when i moved it to Mac OSx (Leopard), i had a problem importing the PyGTK module and the program GUI didn’t run. so i tried to install PyGTK from sources with all its dependencies, but after spending a day doing so i ended up with many errors in compiling the dependencies and finding them.

after some search i found out that i can do this using MacPorts.

so here is the steps i followed :

– Install X11 http://guide.macports.org/#installing.x11

– Install Xcode tools http://guide.macports.org/#installing.xcode

– Install MacPorts http://guide.macports.org/#installing.macports

– Make sure the paths are configured in your shell profile http://guide.macports.org/#installing.shell

– Restart your shell, and follow the next commands :

1- Install Python

sudo port -v install python25

2- Install Python select

sudo port -v install python_select

3- Activate our installed python version

sudo python_select python25

4- Install pygtk

sudo port -v install py25-gtk

5- Install some gnome themes and engines

sudo port -v install gnome-themes
sudo port -v install gtk-nodoka-engine
sudo port -v install gtk-smooth-engine
sudo port -v install gtk2-aurora
sudo port -v install gtk2-clearlooks
sudo port -v install gtk2-extra
sudo port -v install gtk2-industrial
sudo port -v install gtk2-murrine

6- Install theme switch

sudo port -v install gtk-theme-switch

7- Select which theme to be used by your applications by running the theme switch

switch2

Now you can have the applications you develop using python and pygtk running smoothly on mac os leopard.

Aroma Systems – Be Guided By Your Senses

It has been 3 months since i joined the team at Aroma, and i have to say i enjoyed every single day.

Since i have been always a chaser to my dreams, i found the environment there suitable for me, it gives you the time and the conditions that will make you learn, develop, apply and innovate.

During these 3 months i have finished many projects, i learned a lot, and applied a lot of what i have been learning before during my career.

The team there is amazing, i enjoy working with them, we brainstorm on crazy ideas that looks impossible and we do it :),

We always focus on the new and top technologies that helps us build secure and fast application with very attractive user interface, and since the team is experienced in them and certified from large companies like Adobe, IBM, and Beta Testers for the technology makers like Zend “The php company” we know how to use the tools well to get the best output ever.

We made a new page to demonstrate our work, u will find a video there and some shots behind the scenes, i am sure u will like it. the video is quiet large but it is worth it, be patient ๐Ÿ˜‰

The link to the page is http://systems.graphicaroma.com

Aroma Systems is a department of Aroma Design & Solutions

we are working now on some projects that will rock the market soon ๐Ÿ˜‰

wish me good luck ๐Ÿ™‚

Completion of IBM Java Programming Diploma

I have got my certification of completion of Java Programming Diploma last week.

The most usefull thing i got from this course is the stong concept of OOP in java which helped me a lot in PHP especially after working with PHP5 which is diversed to the OOP conecpt. and also using Zend Framework.

i would like to thank the one who encouraged me to take it. ; i am satisfied with it and it was something i must have taken.

i have written some Java tutorials here, i will right more when i am done with the couple of projects i am taking care of now.

Ubuntu Course : Mission Accomplished

well, this week has been a busy one for me,
but the highlight of the week is that i gave a full ubuntu course to 15 person, from the introduction, passing through the installation, till the desktop and interface, and alternative applications to those on windows.
the course didnt take much time, only 6 hours as the applicants has previous experience with unix.
it was really a good experience, and i can’t wait to do it again.

Zend Framework

Recently i started looking around Zend framework, i have been suspicious for a long time about sticking to a framework in developing my applications, i used to use my own classes, but after reading about Zend framework, i decided to give it a try especially when i discovered that it work smoothly with Zend studio for eclipse, and soon inshallah i will release a new project built on this framework.

and here is some info about Why to use Zend Framework :

Extending the art & spirit of PHP, Zend Framework is based on simplicity, object-oriented best practices, corporate friendly licensing, and a rigorously tested agile codebase. Zend Framework is focused on building more secure, reliable, and modern Web 2.0 applications & web services, and consuming widely available APIs from leading vendors like Google, Amazon, Yahoo!, Flickr, as well as API providers and cataloguers like StrikeIron and ProgrammableWeb.

Expanding on these core themes, we have implemented Zend Framework to embody extreme simplicity & productivity, the latest Web 2.0 features, simple corporate-friendly licensing, and an agile well-tested code base that your enterprise can depend upon.

Extreme Simplicity & Productivity

We designed Zend Framework with simplicity in mind. To provide a lightweight, loosely-coupled component library simplified to provide 4/5s of the functionality everyone needs and that lets you customize the other 20% to meet your specific business needs. By focusing on the most commonly needed functionality, we retain the simplified spirit of PHP programming, dramatically lower the learning curve, and your training costs