Posts Tagged ‘professional’

Cloud Niners is seeking the best in Mansoura

August 25th, 2010

C9 Quest for the Best

CLOUD NINERS® is a multinational cloud computing software development enterprise.

From the day of foundation by a group of Information Technology veterans; CLOUD NINERS® has been providing software products and solutions, enabling any business to become an E-Business with faster and more efficient operations, real-time information flow and greater responsiveness to customers. CLOUD NINERS delivers value to its customers by linking information technology to business parameters such as productivity, quality, cost and time.

At CLOUD NINERS® we have made it our mission to challenge the ordinary. Through our extraordinary precision and our exacting quality, we strive to continuously deliver enticing experiences and lasting impressions

Cloud Niners is seeking top notch engineers to join C9′s next-generation cloud computing application research and development team.
Engineers will get a chance to work on C9′s patent-pending cloud-based technology. As a C9′er you will specialize in building world-class products using cutting edge technologies over C9′s cloud-based patent-pending platform

No matter which Cloud Niners team you join, you’ll be building something big and new. You won’t simply be finding answers; you’ll be framing questions that no one has ever asked before – and identifying unprecedented opportunities. We welcome pioneers. In fact, we insist on them! » Read more: Cloud Niners is seeking the best in Mansoura

The good and bad about web2py

July 29th, 2010

a few months ago I was looking for a web development framework that is less painful and fun. Earlier I’ve been using web2py and I was partially satisfied of what it can do in a very short period of time. However, after I started to use web2py in production I was hit by the following facts that made me completely unhappy

Disadvantages of web2py

  • web2py doesn’t support unit testing, it supports doctests which is far from being optimal for a testing freak like me and is too limited in terms for the scope, you cannot really do the same level of tests you used to do in normal server side or desktop programs.
  • web2py does use Python which is my favorite scripting language so far and the one that I have been using for the last couple of years continuously. While Python is a great language it was used in a twisted way to design the framework, Python magic was all over the place, variables defined globally are allover, you cannot see real OO in the design, plus the code follows PEP-8 which I hate its do_blah_function style (lots of underscores). » Read more: The good and bad about web2py

What does VirtualBox need to be production/enterprise ready?

July 22nd, 2010

I’m a VirtualBox fan and I’ve been using it a few years now and my satisfaction varied from highly disappointed in some situations and at some points, to highly satisfied at others. I’ve also used the Python API for VirtualBox and it has been a not-so-good experience especially when it comes todocumentation, I would say that the API is poorly documented and there are several functions missing proper documentation or missing any documentation at all.

However, through my journey with VirtualBox, I fell in love with VirtualBox and while doing that and I wanted to take the love to the next level :) I wanted to use VirtualBox in a server environment as a virtualization server, where I failed miserably.

I failed not because I couldn’t do it, but because it wasn’t easy for the administrator to configure and monitor the system.

VBox Auto Control

First, I wanted to start some machines on boot and I couldn’t find any straight forward way to do that from the VirtualBox GUI or from the CLI and the only way was to write my own shell scripts that still did not give me all the features I was looking for. I expected to find some easy way to do that as in VMWare but I had to do that manually.

So, I decided to write a controlling service for vbox that uses a simple configuration file to spawn and save/shutdown machines on boot/poweroff which should make our life easier when we try to use vbox as virtualization host hypervisor.

Enterprise-class Management GUI

That’s one big issue with VirtualBox, people tend to look at the GUI as a meter to measure the features of the hypervisor in hands and VirtualBox fails miserably because of its very basic user interface that lacks 70% of the features provided by any decent hypervisor offerring like VMWare and that is really shocking for people who are looking forward to using this in production.

The following is a list of some of the things you cannot do from the GUI but you can do either from CLI or the API:

  • You cannot choose the type of the virtual disk (either vdi, vmdk, or raw)
  • You cannot monitor machines performance (IO, CPU, Network, etc)
  • You cannot configure the DHCP servers running for NAT network mode, you cannot also configure any of the NAT features (port forwarding, redirection, DNS proxy, etc)
  • You cannot clone disks, snapshots, etc.
  • You cannot see any of the tele-transportation features in the GUI.
  • You cannot change the BIOS logo.
  • You cannot control any of the configuration parameters for the guest clock and timers.
  • You cannot control the automated guest logons features in the guest addons.
  • You cannot set any limites to CPU, Network, Disk IO for the virtual machines.
  • You cannot bind virtual cores with physical CPU cores.
  • You cannot overcommit memory allocation.

And many more, VirtualBox is really fruity but everything is hidden behind this ugly GUI that doesn’t show except the basic stuff for the below average user.

Testing and Release Management

VirtualBox lacks the production-quality testing process and they have been seeing many regressions lately and releasing minor updates quite often, which is fine but doesn’t work well with the enterprise-class sector in the market. VirtualBox should be covered more by tests and the release management should be more careful for regressions and the too-frequent updates they are throwing to the end  user.

During my journey with VirtualBox, I’ve seen many many crashes in the hypervisor where it fails to start a machine or restore a snapshot and I’ve seen many cases where VirtualBox got stuck while changing the state of the virtual machine, most of the those cases happened in a tight memory environment where the host didn’t have plenty of free memory available for VirtualBox. Still, more testing is needed and some bug reporting tool is required to make things easier for users to submit or issue tickets for bugs.

Good News

June 24th, 2010

Assalamu A’alaykum,

Good news for my algorithms course registrants, a discount of 30% is applicable for the Python or Design patterns course attendees. This means that if you have attended one of my last two courses you will get 30% discount of the total cost of the Algorithms course. If you attended Both “Python and Design Patterns” you will get 40%. yaaaaay :D

Hurry up, the course will start on the second week of July isA.

More on The Algorithms course registration is in this link

My Upcoming Courses

June 10th, 2010

So, summertime is coming and so my educational track, prepare yourself for this geeky summer with lots of super-interesting courses that will start by the following course:

Introduction to Algorithms and Data Structures Using Java

The course will start early in July isA (شهر سبعة) and it’ll end on the same month probably, the total cost of the course will be calculated after getting information about the lab reservation and the number of registrants but the course will normally cost around 800 EGP that include the lab reservation fees. The course duration is 36 Hours.

The course REQUIRE that you have a good background about java and programming in general, remember that this course is not an introduction to the java programming language.

To register for this course kindly fill the this registration form

Next Courses

I’m also announcing that I intent to launch those courses during the summer period, but registration is not open at the moment.

  1. Introduction to the C programming Language
  2. Introduction to Linux POSIX programming in C
  3. Introduction to the Scala Programming (Object Oriented and Functional Programming) Language (First time in the middle east)
  4. Introduction to the Python Programming Language
  5. Advanced Python Programming.

I need to know which courses you are interested in, so, please fill this voting form so I can decide on which course to begin with after the algorithms course isA.

If you are new to my training courses, you might want to take a look at my Training Academy page

Hurry up, it’s FCFS (First Come First Serve) :) Please share the word (retweet, re-facebook, re-ay 7aga) :D

NoSQL Introduction

May 26th, 2010

NoSQL introduction — The road to infinite scalability.
CAT Scope 11

Video:

Slides:

كيف يمكن للمشاكل الامنية في موقعك ان توثر على حياة الملايين

April 13th, 2010

اذا كنت من مبرمجين الويب سواء حديثاً او مخضرماً فيجب ان تتعلم كثيراً عن الحماية و الامان في برمجة الويب و هو الجانب الذي يهمله كثير من المبرمج خاصةً العرب بدون فهم لتداعيات اختراق المواقع او الاسباب التي تدفع المخترقين للاستيلاء علي معلومات قد تتخيل انها ليست مهمة ، فدعني اشرح لك اكثر لتتخيل الامر بصورة اوضح

كلمات السر

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

الكثير يتخيل ان بمجرد استخدام اسلوب تشفير بسيط او حتى غير بسيط فقد حقق الحمايه الكاملة لكلمات السر و قد يتخيل انه بمجرد استخدامه للتشفير الاحادي الاتجاه (one way encryption) فقط حقق اعلى درجات الامان و هذه كلها معلومات خاطئة ، فليس معنى انك لاتستطيع فك كلمات السر المشفرة في قواعد بياناتك بأن لا احد آخر يستطيع ، بالعكس هذا معناه ان هناك شخص اكثر علماً و مقدرهً يستطيع. ايضاً المشكلة هي تأمين كلمة السر ليس فقط في قواعد البيانات و لكن يجب ان تفكر في الحمايه من الطرف للطرف (end to end) بمعني هل كلمه السر مؤمنة من بدايه كتابتها و حتى وصولها لقواعد البيانات؟ فكر في كل النقاط التي تمر عليها كلمة السر في الجهاز و الشبكة و اسأل نفسك هذا السؤال دائماً

بياناتك الشخصية

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

فالحقيقة ان المبرمجين يتحملون مسؤلية كبيرة قلما رأيت من يدركها ، فلاحظ انك قد تهدد حياه او مصالح الآلاف من البشر او حتى الملايين بمجرد عدم اهتمامك لدراسه تلك المواضيع و التي يتخيل البعض بأنها ثانوية.

اذا نظرت اليوم الى الانترنت فستجد معلومات هائلة متاحة عن اغلب الناس فاذا اردت ان تعرف معلومات لكي تستطيع بها فك كلمة سر او الاتصال ببنك او اي غرض آخر فهناك احتمال كبير ان تجده بسهولة و ان لم تكن كافيه فاختراق المواقع التي يشترك فيها المستخدمين تكون هي المصدر المكمل للمعلومات.

مصدر الصورة

Introduction to Algorithms and Data Structures Using Java

April 5th, 2010

After my latest survey on my Training Courses post, I decided to announce a state-of-the art course in algorithms and data structures in java course in Mansoura (My Second love, after Alexandria).

The course is a life-changing experience and will allow you to advance from being a coder to a computer scientist programmer. The course is 36 Hours of hands-on experience on algorithmic challenges using the Java programming language.

The course is pure computer science and can be applied on any programming language either functional or object oriented but all examples will be applied on the Java programming language to meet the vast majority of the programmers-base as the java language is the most common open source programming language and almost known to every programmer. » Read more: Introduction to Algorithms and Data Structures Using Java

The JVM Crowd

March 1st, 2010

The JVM is an industry-proven environment for enterprise applications development and it has been receiving lots of updates especially after moving to be open source. The only problem was the Java programming language in my opinion. Java is an excellent language for its simplicity and consistency (people may argue) but it’s not a “modern” language and lacks most of the features that the current modern crowd is looking for.

For those who tie the JVM (Java Virtual Machine) with the (Java Programming Language), I’m sorry to say, but you are absolutely wrong. The Java programming language is the first language that supported the byte-code generated for the JVM and it’s the most famous one so far but the virtual machine is an environment (a very stable one actually) and many programming languages (literally; many) is now supported on top of the JVM, you can write Jython (Python implementation in Java) and your code will run seamlessly over the JVM with your old Java code/classes. » Read more: The JVM Crowd

Design Patterns Last Call

February 21st, 2010

The course will start next Friday, If you are interested in the course you must register before next Wednesday 24th Feb. No registrations will be accepted after that date.

If you are interested in the first professional software design course, send email to course+design@ahmedsoliman.com