Tuesday, August 25, 2009

SFD: Obstacles in the way ...

This post is one of the series intended for the Software Freedom Day event in Alexandria University,Egypt ,organized by Software Freedom Day@Alexandria University team.

Saturday the 22nd, first day of Ramadan, i woke up early, packed my laptop bag, and went to college. It was the 2nd meeting in our organization for the Software Freedom Day@Alexandria University.
Actually it was my first one as i didn't attend the first one :D.

After reviewing our progress till now in the event, we got the bad news. We have some problems concerning our fund.
Things are getting tougher now. However, we will not quit. Somehow we managed to fix some stuff and still working on others.

About the event, It will be 2 weeks long starting from September the 1st till September the 15th.

The two weeks will contain many activities:
  • Presentations covering wide range of Linux related topic:
    • Linux (Day to Day usage, Administration and Development).
    • Open Source programming languages (C, Java, PHP, Ruby and Python).
    • Closed Source replacements.
    • Open Source Culture.
    • The future of computing and the role of open source in the future.
    • Computer Security.
  • Live Demos of installing, configuring and using FOSS.
  • Stands that provide on-site installation and information.
  • Study Groups that provide participants with guidelines to teach themselves more about FOSS.
  • Contests held on different levels to urge participants to read a lot and know more.
The most featured speakers invited are :

Mohamed Hussein Sayed
Technical at Yahoo! inc.
Consultant at SkyFire Labs
Sr. Systems Administrator at MobiTV
Sr. Software engineer at Symantec corp.
Industry veteran with more than 10 years of experience in Linux and UNIX networking and development as well as RDBMS and large scale systems.
============================================
Ahmed Desouki Ahmed El-Mekkawy
eSpace Technologies
Solutions Team Leader for a team of Gnu/Linux administrators to
setup/maintaining development environment and services on the local
network and remote Administration for various development / testing /
production environments for world-wide clients

Come on and register now , and you may be one of the first 50 registered users and win with us ;)
https://dct.sun.com/dct/forms/reg_ae_1908_245_0.jsp
or join us on the event page on facebook
http://www.facebook.com/event.php?eid=124455764728

update: The event Program is now available .. check it now http://bit.ly/194CpU

Sunday, August 23, 2009

SFD: Hello Python

This post is one of the series intended for the Software Freedom Day event in Alexandria University,Egypt ,organized by Software Freedom Day@Alexandria University team.

Have you heard before about Monty Python's Flying Circus ? Most probably you didn't. However, Guido van Russom did , and ironically named the new language he wrote after it : Python.

About the origin of Python, Van Rossum wrote in 1996:

Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office I would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus).

Python definition as wikipedia says:

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability.Python claims to "[combine] remarkable power with very clear syntax",and its standard library is large and comprehensive. Its use of indentation as block delimiters is unusual among popular programming languages.

Python supports multiple programming paradigms (primarily object oriented, imperative, and functional) and features a fully dynamic type system and automatic memory management, similar to Perl, Ruby, Scheme, and Tcl. Like other dynamic languages, Python is often used as a scripting language.

In my personal opinion, i think Python is maybe the easiest programming language i've ever seen - besides Ruby also -. You can check yourself for the features and advantages of python.
Python works on all platforms, and comes by default in Ubuntu.

The most encouraging thing about python that it's one of the main languages used in Google, Youtube, Nasa, ...

Now, as usual when i encounter a new language, let's try a Hello World program.
#!usr/bin/python
#first python program

print('Hello World !!!')
I told you :D . Yeah , Python is very easy.
I needed a more challenging and complex hello world.
So, here's a script that connects to Twitter and post a new tweet on my profile.I used the twitter api for python Tweepy

#!usr/bin/python
#Send a new Tweet

from getpass import getpass
import tweepy

username = raw_input('Twitter username: ')
password = getpass('Twitter password: ')
basic_auth = tweepy.BasicAuthHandler(username, password)
api = tweepy.API(basic_auth)
api.update_status("Hello Twitter !!! I'm a Pythoneer")
And here's the results http://twitter.com/marwan_osman
Now, i can say "I am a Pythonist" or " a Pythoneer" :)

Friday, August 14, 2009

SFD: Why should you be interested in Free Open Source Software ??? (Part II)

For The 1st post please refer here.
This post is one of the series intended for the Software Freedom Day event in Alexandria University,Egypt ,organized by Software Freedom Day@Alexandria University team.
11. Security :
Hacking attempts on servers are frequent, malware, trojans and viruses are commonplace and tools to help the hacker are readily available. No software is 100% immune from security vulnerabilities but the open source process itself delivers superior security performance.The Open Source development model and inherent security of Linux mean vastly improved protection from attack, and consequently less downtime and maintenance costs. Of the 1709 viruses reported in the latest "wildlist.org" report for March 2007, NONE of them would infect a Linux based computer. When a vulnerability is identified, it is often fixed in a matter of hours; proprietary software vendors sometimes take months to even announce the existence of a problem to its customers.

12. Quality :
Apart from proprietary vendor funded research, any independent reports you care to read which look at Open Source finds the quality of open source projects to be significantly better than proprietary software. The development model itself relies on constant peer review of the code and produces a highly modular design which makes it easier to read and fix. Releases tend to occur when the software is considered ready for use; not on a date set by a marketing department.

13. Bug fixing :
Almost all software releases contain bugs. Hopefully, the people developing the software will have spotted and dealt with anything obvious, but any development team has only so much time in which to test a piece of software before it is released.
When a bug is spotted in proprietary software, the only people who can fix it are the original developers, as only they have access to the source code. Open source software is different. As a large number of users can access and change the code, bugs tend to be more visible and more rapidly corrected. One of the slogans of the open source movement is that ‘given enough eyeballs, all bugs are shallow’ [Eric Raymond, The Cathedral and the Bazaar].

14. Standards :
Open source software has largely defined the standards in use on the Internet today so it's no surprise to find that the same open standards are considered extremely important. Open standards allow products from different vendors to work together and also prevent business from getting "tied" to a single product from a single vendor. This is becoming increasingly important with regards to document storage and archival.

15. Support :
As well as paying for professional support from companies like ours, access to good support is usually available for free via mailing lists, forums and IRC, if you have the technical knowledge and skills to assimilate it. The help is often provided by the same people that wrote the original code.

16. Reliability :
Open source is peer reviewed software, which leads to more reliability. The infrastructure of the Internet is largely composed of open-source programs such as DNS, sendmail, Apache and languages such as HTML and Perl. They have proven to be both reliable and robust under the most strenuous conditions, namely the fast growth of the Internet.Low-cost: Open source software is often developed through community forums and collaboratives. Developers volunteer their time and expertise, and are coordinated by fewer paid programmers. The lower overhead costs translates into substantial savings, as does the fact that open source software typically does not have a per-seat licensing cost. According to Gartner, open source is even more attractive to businesses during tough economic times. In its 2009 enterprise software spending forecast, the industry analyst predicts that enterprises seeking to cut costs will be drawn to open source software, virtualization technologies and, because of tighter travel budges, unified messaging and collaboration technologies.

17. Translation :
With access to the source code it is easy to translate the language of the software interface. Large closed source commercial software vendors are usually unwilling to translate their products into less widely spoken languages, as the market for them would be too small to guarantee profit.
An example of this is the regional government of the South Tyrol, who developed a version of OpenOffice in the local Ladin language, which has around 30,000 speakers. This is too small a number to be worth commercial investment, but culturally important in terms of the survival of the language.

18. Learning from examples :
If you are interested in programming, open source code provides an excellent resource from which to learn, and open source projects provide a practical environment in which to test your skills. Just watching the development process can provide an education in itself. If you choose to submit code to an open source project, it will generally be checked and commented on by experienced programmers. Once you have convinced the project community that your code is of appropriate quality, you may be granted full committed rights yourself.
Ross Gardler of OSS Watch, and a member of The Apache Software Foundation, claims to ‘have learnt far more through open source than through any form of formal education or [software development] contract work.’

19. Fast deployment :
With open source software consumers needn't wait years to deploy a solution. Open source software can be “test driven” prior to procurement, and is particularly suitable for inter-agency collaboration, rapid prototyping and experimentation. Both known and unanticipated users can be rapidly provisioned.

20. Cost :
Many open source programs can be obtained at no cost or with a very low cost. This is often an important issue for individuals and in many cases this has been the main reason for an individual adopting a particular open source solution over a closed source alternative.
There are no license fees for an open source software, reducing annual license fees cost to zero. There is zero cost of scale, because open source doesn't require additional licenses as the installation grows.The only spends are towards the support for your software that ensure reliability and reduces running cost by at least 80%.
However, other costs may arise: training, consulting, maintenance, etc. As a result the total cost of ownership may not differ between a closed source solution and an open source alternative for institutions. However, in some particular markets the difference in price can be significant between a closed source solution and an open source solution.

Do I need to say more :D ??

In shorter points:

  • Strategic Benefits
    • Shorter time to market for new business capabilities
    • Better application integration based on open standards
    • Ability to influence or create new features in future releases
    • Safety from vendor lock-in or abandonment
    • Open source methods and tools aid partner co-development
    • Reduced security, liability, regulatory and downtime risk
    • Usually lower acquisition costs than for proprietary software
  • Financial Benefits
    • Free or "fair" software acquisition cost
    • Buy or Source once and copy to every machine that needs it
    • Freedom from Vendor Lock-in upgrade fees
    • Free or low cost community support for non-mission critical services
    • FLOSS typically runs fine on older hardware reducing or delaying hardware upgrade costs
    • Rapid development of new features or bug fixes
    • Reduced Security Costs
  • Performance Benefits
    • More uptime, less downtime
    • Rapid testing and deployment due to instant availability
    • Scaling (The Internet is built mainly on FLOSS)
    • Platform Independence
    • Rapid turnaround for bugs and/or security flaws.

The Paragraph that summarize it all
"The Open Source community attracts very bright, very motivated developers, who although frequently unpaid, are often very disciplined. In addition, these developers are not part of corporate cultures where the best route to large salaries is to move into management, hence some Open Source developers are amongst the most experienced in the industry. In addition all users of Open Source products have access to the source code and debugging tools, and hence often suggest both bug fixes and enhancements as actual changes to the source code. Consequently the quality of software produced by the Open Source community sometimes exceeds that produced by purely commercial organisations." (QINETIQ2001)

SFD: Why should you be interested in Free Open Source Software ??? (Part I)

This post is one of the series intended for the Software Freedom Day event in Alexandria University,Egypt ,organized by Software Freedom Day@Alexandria University team.

Note: Before i began preparing this post i never thought it would be that long :). I hope you have enough patience to finish it all. I tried to collect the most common info so you'll be totally convinced about Free Open Source Software.
I will break the post into 2 posts so each one won't be too long when you're scrolling your mouse :D.


The most common question people ask me whenever i tell them about Linux and Open Source concepts is "Why should i be interested in that ?" or " Is that better than Windows?". Let's search for a convenient answer to this question and dig into the benefits of Open Source. After a good googling i found the following benefits.

1. Being part of a community :
By adopting open source software you become part of a community of users and developers who have an interest in working together to support each other and improve the software. The extent to which you engage with this community is up to you, but you may obtain the intangible benefits of goodwill if you do.Programmers in particular can benefit from belonging to an open source community. It can help establish reputation and respect, as well as gaining valuable experience.

2. Public Collaboration :
One of the major benefits of open source software is the public collaboration behind each project. Most open source projects are created by tens of thousands of programmers all collaborating to create, and improve upon, a flawless website framework.
Many software development companies use a proprietary, or home built, system as the framework for the websites they create. Open source software, such as WordPress and Drupal, were developed by thousands of talented developers. What would you rather own, a software package created by a handful of developers, or a software package created by thousands of developers? Open source software promotes software reliability and quality by supporting independent peer review and rapid evolution of source code. A proprietary solution can not compare to that of open source.

3. Choice :
By its very nature, the source code of open source software is available to all, meaning that no one company owns the software. Any company can build upon open source software. It may be operated and maintained by multiple vendors, reducing both barriers to entry and exit. A customer can easily choose another vendor because they are not locked in to one vendor's offering.

4. Not bound to a single development company :
With thousands of developers already 100% knowledgeable with your software framework, any open source friendly company can work on your website. Don’t be bound to a single development company because you are stuck using their proprietary software.

5. Avoiding lock-in:
Organizations are said to be ‘locked-in’ to software products when the costs of switching to alternatives are prohibitively high.
Proprietary software vendors can ‘lock’ users in to their products by ensuring that they are not readily compatible with potential rivals. Vendors may then increase the price of product upgrades or support without too great a risk of losing existing customers.
As there is no incentive to use non-standard formats to inhibit compatibility, open source software tends to use open standard formats and there is little danger of being ‘locked-in’ by a vendor. Even when non-standard formats are used in open-source code, it is always possible to document them from the source code. On the contrary, closed formats used by proprietary software need to be reverse-enginered, a burdensome and expensive process that may need to be repeated when the format is subsequently changed.

It should be admitted, of course, that open source software does not come without switching costs of its own. Some administrative and re-training costs must be borne by any organisation that opts to switch between different software. And proprietary software may use open standards too, as is the case with Adobe's Acrobat Reader, a closed-source programme to read PDF files (PDF format is an open standard). Indeed the use of open standards is especially important in ensuring future access to data as it will be possible to find or create alternative programs that conform to the standard.

6. Flexibility :
Open source software is transparent. If there's something you want it to do you can either modify the product yourself or pay someone to do it for you. If you wish to, you are free to contribute your modifications back to the community so that the software continues to improve. Most Open Source licenses only require you to do this if you re-distribute your modified product to others.

7. Customization :
Closed source applications can only be customized or adapted within the scope provided by the original vendor but never outside its boundaries. Open source applications may be customized by anyone with the requisite skill. Thus, open source software can be readily adapted to meet specific user needs. Even if you cannot program yourself, if you would like something added or customized you can generally pay an appropriately skilled software developer to do it for you.
For businesses or educational institutions, the ability to customize source code may enable improvements to the ‘best practice’ provided by default installations, therefore improving efficiency and possibly providing a competitive advantage.

The Open University made a decision in 2005 to invest a substantial sum of money in developing the Moodle virtual learning environment to best suit their requirements. As the Moodle source code is open, they can do this for themselves rather than having to persuade a commercial vendor to do so on their behalf.

8. Take control of your software :
Open source software gives you the power to control your software's code. You have the right to modify the code to suit your requirements and control the budgets that you want to spend towards it. Unlike proprietary software, where the vendor controls your code, upgrades and budgets -- with open source software, you control the upgrade process and can choose to decide which bugs to fix and when.

9. Continuity :
It is possible that a proprietary software company shuts shop or decides to discontinue services for a software. With it goes the support and the future of the software. Open source software is not dependent on a single entity and gives users the advantage of the community. Any developer can choose to take up the software and continue from where it stopped.

10. Auditability :
Closed-source software forces its users to trust the vendor when claims are made for qualities such as security, freedom from vulnerabilities, adherence to standards and flexibility in the face of future changes. If the source code is not publicly available those claims remain simply claims. By publishing the source code, authors make it possible for users of the software to have confidence that there is a basis for those claims.

To Be Continued ...

Monday, August 10, 2009

Software Freedom Day: Prologue


If you're familiar with open source communities you may have heard about "Software Freedom Day".
Anyway let's start from the beginning.

About a week ago, i got a mail inviting me to the Software Freedom day at our university. After some reading about it, i realized i should be there.
So within the next days i applied with my local team to join them as a volunteer, the Alexandira University team SFD@Alexandria University.

Unfortunately, i missed the first meeting with them due to my summer internship with ITWorx.(but that's another story)

Software Freedom Day definition as it comes on its website:
Software Freedom Day is a global celebration and education of why transparent and sustainable technologies are now more important than ever. With over 200 teams in 60 countries participating, it is a fantastic event to get your schools and communities involved in. Go along to your local event or start your own event and meet a wide range of people, all working together to help ensure our freedoms are maintained by the technologies of tomorrow.

Another interesting point is Richard's Stallman definition of "Freedom" of software. He said:
"Free software" is a matter of liberty, not price. To understand the concept, you should think of "free" as in "free speech," not as in "free beer."

Hope you come and join us in our team SFD@Alexandria University , or join your local team wherever you are.

Here's all the links that may help you to know more about this event. And of course don't hesitate to contact me directly :).

http://softwarefreedomday.org/sfi
http://softwarefreedomday.org/teams/egypt/alexandria_university
http://osum.sun.com/events/software-freedom-day-6
http://www.facebook.com/home.php#/event.php?eid=124455764728&ref=mf

P.S: I don't know why i remember The Matrix when i hear the term "Free Software", visualizing Agent Smith trying to get "free" from the matrix :D

update: i forgot to say this :D . During the next month i will be posting regularly in form of series about open source technologies and the Software Freedom day event. So keep tuning for more ...

Friday, August 7, 2009

Third Music Renaissance

I had no previous intentions to write this post. I was preparing one big post about the music i listen to and why i like it . My own theory about music that i like to call "The Rock theory" :).

Anyway, these days i am living my 3rd music renaissance. What is it ? Every once a while when i add new artists and bands to music library specially if they play a different genre than i am used to, i call this period a music renaissance.

The 3rd music renaissance started this year upon my discovery of last.fm.
Its artists are (in alphabetical order) :
Ambeon, Amorphis, Anthelion, Audioslave, Avenged Sevenfold, Ayreon, Bon Jovi, Camel, Chickenfoot, Coldplay, Epica, Estatic Fear, Eyes Set to kill, Iron Maiden, Kamelot, Kings of Leon, Megadeath, Muse, Nickelback, Nightwish, Nirvana, Novembre, Pink Floyd, Pipo & Elo, Placebo, Queen, Radiohead, Rascall Flats, Redeemers, Savatage, Scorpions, Slash's Sankepit, Stereophonics, The Foreshadowing, Type O Negative, U2

Not to mention the Classic music and Movies Sound tracks too , and yet the download list containing another 40 artists.

I think that's the biggest music renaissance i ever had.
Until i explain my Rock Theory in another post , you can check my music profile at last.fm , have fun :D
http://www.last.fm/user/lordm2005