Sunday, December 31, 2006
Thursday, December 28, 2006
Wednesday, December 27, 2006
I often use the define: and the site: operators, but I had never used the date: operator, perhaps I should try it as it could be really handy and useful in many cases.
Tuesday, December 26, 2006
Hearing about how convinient RadRails is, I thought of downloading the Ruby on Rails stack one by one by myself and installing it, first Ruby, then rails and finally downloading and installing MySQL then configuring them all and running them. But that sounded like a headache, after all InstantRails was doing all this for me in a single step.
I then, by accident, came across this clear and simple description of how to configure RadRails to work with InstantRails! Mission accomplished.
- Start InstantRails.
- Open a Ruby console window.
- cd your_app_name.
- ruby script/plugin discover.
- Reply by no to all questions, except the two questions for http://svn.rails-engines.org/ and https://activerbac.turingstudio.com/.
- ruby script/plugin install engines.
- ruby script/plugin install active_rbac.
Congrats, you're done!
Monday, December 25, 2006
Sunday, December 24, 2006
I personally believe that both Google and Yahoo will be fighting back ferosiously. Google's Co-op, Google Base and Google Apps for Your Domain programs offered by Google will be a strong force by Google in the direction of using the massive user community to help refine search results by classifying and creating content.
Another agile software development methodology also gaining in popularity is Test Driven Development. There are many other new methodologies rising in popularity, but they all share the same concepts of Agile Methodologies. The Wikipedia has a good article about Agile Software Development.
Saturday, December 23, 2006
The interesting thing about Second Life, and similar 'games', is that you can build stuff inside the game. You can build a house, you can talk to other players, you can move around and you can buy things. The mind boggling feature of Second Life is that you can buy things with real money! This concept is the hardest to understand at first when you are new to Second Life. Yet there are people making a lot of money buy building houses for example in Second Life and selling such houses to other players in Second Life! You might think that this is kind of crazy, but think of it as someone painting a picture and selling it. The people who are building or making things inside Second Life and selling them with real money to other players are like those painting a picture then selling this picture or design to others. In Second Life, you buy and sell using artificial money inside the game, but you can later go ahead and exchange such artificial game money with real US dollars. That's the really amazing thing about Second Life and the most difficult concept to grasp at first. You can try Second Life for yourself to be able to better understand the whole concept behind it.
Friday, December 22, 2006
Thursday, December 21, 2006
- Use the rails command to generate a skeleton for your web application.
- Create a database and its tables using MySQL. Make sure to follow Rails conventions in naming tables and table columns.
- Use the scaffold generator to automatically create each model and its controller and views.
- Manually code relationships between tables into model files.
You can now go ahead and view your web application in the browser after starting the web server.
You can start shaping up your web application from here. Go back to the controllers and views, make needed modifications then go back and view your application in the browser. Keep modifying the application files till your web application is complete and is shaped like what you have in mind.
The above sequence is merely a proposed sequence. It is specially suitable for new comers to Ruby on Rails. Sure there are alternative paths. For instance, one can start by creating an empty database, and use Ruby on Rails migrations to create the tables. One can also go about writing controllers and views by hand without first using the scaffolding features of Rails.
If you would like to use migrations rather than creating the database tables directly with MySQL, then you can follow this alternative approach:
- Command line prompt, rails_apps folder: rails appname
- MySQL command line console: create database appname_development;
- Generate a migration after going to the appname folder: ruby script/generate migration add_tables
- Edit 001_add_tables.rb file to define database tables.
- rake migrate
- For each model (~table): ruby script/generate ModelName
- Define relationships between database tables inside model files (appname/app/models/ModelName)
- ruby script/server
- Open your browser at: http://127.0.0.1:3000/ModelName+'s'
Wednesday, December 20, 2006
The typical computer mosue only moves on a 2D surface controlling a pointer on a 2D screen. Wii Remote opens the door for wireless 3D controllers that can give users a totally deeper experience. Operating systems in the future might offer a 3D interface with much richer functionality and ease of use than the 2D interfaces offered by the current popular operating systems.
With the introduction of migrations in Ruby on Rails, now all you have to do is create an empty database without even creating any tables in it. Then you go into Rails and write migrations. Those migrations take care of creating the database tables for you. The really interesting and useful thing about migrations is that you can expand your database by adding more tables or more columns to existing tables in an incremental way. The application would still run smoothly. Most importantly, you can role back to previous states of the database also using migrations. For instance let's say that after you had a database containing a table with 4 columns you made a migration to add a 5th column to that table. You can easily role back to the previous state of the database when it had only 4 columns by using migrations in Ruby on Rails. With complex database structures that have many tables and many columns built in an incremental way, the migration feature of Rails makes it very convenient to go back and forth between different stages of the database without worrying about spoiling it.
Tuesday, December 19, 2006
Monday, December 18, 2006
Do the following in Windows XP: Click on Start; click on Run... then type cmd to get to the command line prompt (DOS-like). Now type the first few letters of any folder and press the tab key. If that folder exists at the current place, Windows will automatically complete the name of the folder for you! I know this might be considered as a trivial thing, yet it is so handy, specially given the presence of long folder names at some times.
The more interesting thing about this issue and what really made me write about it is the fact that no matter how long you've been using tools and programs, there could be small things hidden from you that you never discover but by chance and can take really long for you to know.
Sunday, December 17, 2006
Friday, December 15, 2006
Now Google is offering free hosting space and tools for everyone! All you have to do is just purchase a domain name from one of their partners for $10 per year and you get the storage for free from Google! Amazing.
I wonder what is Google up to next. In any case, I believe this will have a massive impact on the web hosting business scene in the months to come, specially if Google follows this up with additional surprises.
Thursday, December 14, 2006
Wednesday, December 13, 2006
I'll also, God willing, be touching upon CSS so that new comers to web development/web design would make neat web sites from the start without suffering from using the deprecated font tag or struggling with the table tag to define page layout.
This mini-course at Resala is totally free of charge is is being delivered in the small 8-computers lab at the Masr El Gedida branch of Resala.
I really enjoyed delivering the first session a lot. I'm thinking of volunteering to deliver a brief introductory course about Ruby on Rails at Resala also after I finish the current one God willing. A prerequisite for attending such a course would have to be at least some knowledge of web development in either PHP or ASP in addition to awareness of object oriented programming concepts.
You may call Ahmed Momtaz or Islam who are responsible for the computer lab at Resala Masr El Gedida via one of the following phone numbers: 6207801 / 6207802 / 6207803 / 6207804 /6207805 / 6207806. Then ask to be connected to the "Computer Training Center". You can ask Ahmed or Islam about the time the course is starting or about the availability of other free courses delivered by other volunteers.
If you are expert in some IT field and you have a talent in training, perhaps you may like to volunteer and deliver some course at Resala. You may call 19450 using a regular phone line to be routed to the Resala branch nearest to you.
Tuesday, December 12, 2006
Saturday, December 09, 2006
Extreme programming has many other interesting features and concepts. Get to know more about it by having a look at those XP rules.
Friday, December 08, 2006
I just came across their web site a while ago and I noticed it had a sleeker cleaner look. This made it look much more appealing to me. After all this could reflect a more tidied and user friendly approach in their step-by step instructions. I remember last time a sow their site a couple of years back it looked so geek-like. Now it's neat.
You can think of LFS (Linux From Scratch) as a book which gives you instructions on how to compile different bits of source code, taken from the open source community of course, to finally arrive at a Linux operating system. This OS will be unique because you are the one who built it. You may decide to take it further and pass it around. Who knows, it might turn out to be a popular Linux distro. Perhaps you can name it after your own name too!
It came to my mind that perhaps one of the tests one could make to an job applicant is to provide him/her with the LFS web site and ask him/her to build a Linux distro. This will show how the applicant can read and understand English, solve problems and show perseverance. Perhaps it could be too long for a mini-project for job assessment. Maybe it would be a better idea to make applying LFS be a graduation project for Computer Engineering grads for instance. That would be interesting. They also would have the time to build a usable and useful distro. I hope some Computer Science or Computer Engineering students in Egypt pick up this idea and take it for their graduation projects. Would be a really good exercise in problem solving, and in learning new technologies and how things work. Perhaps the distro they come up with too could be of use and even wide distribution and adoption in our community later on.