If you are a happy iPhone owner and you are an ssh geek, then the first thing you will install on your iPhone is OpenSSH.
You will be happy with the installation, but you will find no GUI on your device, so it is supposedly accepting your ssh connections. Great! Now find your iPhone IP and go ssh it with root login. Of course it is not passwordless; after googling this, you will find it is 'dottie' prior to firmware 1.1.1 and 'alpine' later on. In the same site (OpenSSH), you are advised to change your root password -so intuitive-: "You should change your password, after you install OpenSSH. Everyone knows the default password".
Now login, fire passwd command and change it. Congratulations, you have put your iPhone in a wreck!
While integrating simple_captcha into the guestbook extension of Radiant, I had to add a special route for the simple_captcha to work properly.
Unfortunately, the routes file of a radiant project does nothing but to load the routes file from radiant gem itself:
load File.join(RADIANT_ROOT, "config", "routes.rb")
Calling ActionController::Routing::Routes.draw again will clear all the routes that have been defined in the gem routes file, so you have to either modify the code of the gem, or copy the code from routes.rb of the gem radiant to the projects route file.
Coming from a MySQL background, and trying PostgreSQL for the first time, I am experiencing some key differences in query syntax. Some queries that used to work fine under MySQL now produce errors under PostgreSQL. Generally, PostgreSQL's query syntax is tighter, stricter than ANSI SQL. For anyone moving from MySQL to PostgreSQL, it would be useful to know these differences, so I'll post them in groups as I go deeper in PostgreSQL with time.
There is no denying that knowledge about open source is not very widespread among the general public in Egypt, but now newbies can get the chance to learn more about open source and its advantages at EGLUG' s first Alex InstallFest taking place on the 9th of March.
Most Javascript developers know Scriptaculous library and its great effects classes. Using Scriptaculous Effects helps you add nice effects to your web page elements with a few Javascript lines.
While working on a RoR project in eSpace, I faced a problem while applying some effects to some elements in my web page.
What I was doing in the web page was to hide some div element and then show another div; I was using the "Slide down/up" effects for both div-1 and div-2. What I needed was for div-1 to slide up, then div-2 would start to slide down after that, but what I got was both div-1 and div-2 starting their sliding at the same time.
The time and place for eSpace's previously announced session, titled An Introduction to iGoogle Gadgets Development, have finally been set! Haitham Mohammad's session will be commencing at 4:00 pm on the 28th of February, at Hall 27 on the second floor of the administration building, Faculty of Engineering. The lecture is open to all Computer Science department students as well as interested students in their preparatory year.
"We want to see more Arabic (local) gadgets developed by Arabic users"
- Wael Ghonim, Google's Product & Marketing Manager, Middle East & North Africa
You don't have to work at Google to develop an iGoogle gadget; with the right information and tools you go after it yourself! Google and eSpace combine forces as eSpace's Haitham Mohammad conducts a session on how to develop an iGoogle gadget as part of Google's lecture series, Google Tech Talks, at the Faculty of Engineering, Alexandria University.
Building on my previous post about caching where the method_cache plugin was introduced, today I'd like to introduce another Rails plugin that also deals with the caching problem. This time, it's about caching views. It uses a technique called version caching. Version caching frees you from having to worry about writing code that expires your cache. For more info about version caching check Yasser Wahba's blog post explaining version caching and how we used it. I've used version caching in my last 2 projects and found it quite useful and easy. The problem is that we used to repeat a lot of code violating DRY; it was so clear we had to do something about it. I've taken that code, refactored it and made it available as a Rails (v2.1.0) plugin at GitHub; check it here.
For an application that requires interactive communication between the users, chatting is one of the most suitable tools to help you achieve this aspect . A lot of chatting programs are available, alot of chatting sites are available, but if you want to make a browser based chatting through your application, this might seem to be a little bit complicated.
The main problem is that our traditional browsers pull the page from the server using requests and the server replies with a response; this model is not applicable for usage in a browser based chatting application. What is supposed to happen when client X sends the data to client Y ? Client X sends the data to the server then the server pushs this data to client Y. In our traditional model, the server can't send the data to the browser without a request from the client - this gives us limited choices for implementation, as periodically asking the server for new data is not efficent and has a high cost.
So what is the solution? PUSH SERVERS TECHNOLOGY
Ever since I can remember, we've been relying on MySQL as the database backend for our open source solutions developed at eSpace. MySQL's popularity is unquestionnable, being one of the most widely used DBMSs in the open source community. However, now with my eyes wide open, I can say that I prefer PostgreSQL over MySQL. And, to your surprise, what shapes up my opinion is not some performance benchmark or some detailed 'versus' report. I'd choose PostgreSQL for one single hell of a feature: Full Text Search.
Have you ever been stuck at "Bulk updating Gem source index for http://gems.rubyforge.org/" while installing a gem?! Due to a drop in the Internet connectivity in the Middle East and my own country, Egypt, installing gems started to be like hell - I had to wait for hours before having my library installed so I decided to have a closer look. Surprisingly, the problem was due to a bug in Rubygems 1.0.1.
You can easily overcome this by updating to the latest gem 1.3.1 through gem update --system
I was going through an implementation case when I wanted to add a has_many :through relation from a 'User' model to itself, through a 'Friendship' model. According to the documentation of has_many:
:through Specifies a Join Model through which to perform the query. Options for :class_name and :foreign_key are ignored, as the association uses the source reflection.
The relation should infer the class name and the foreign key from the source option. i.e. if the source is :post, then the class is Post and the foreign key is post_id.
The Relation And The Related
While working on meOwns.com, we introduced several features that are concerned with how objects are related to each other. In the user profile page, you get a list of other users that are similar to yourself and you are faced with the chemistry meter which tells you how much you are similar to that user (if you are logged in of course). If you happen to be viweing your own profile page, you will get a list of recommended items that you may be interested in. Last, but not least, when you view an item, you get a list of similar items.
In this article I will be talking about the features from an implementor's point of view. Naturally, the first hurdle was to define the problem. What we needed was to find a way to match items and users, so first we needed to represent them in a way that can be matched. We started from the items first and looked at how to match two items together.
TDD is an important practice for applying Agile process; some Agile professionals even restrict the practices of it into 2 main practices: Applying the TDD and getting the customer involved in almost all the project's life cycle.
TDD can't be applied without applying automated testing in the project cycle. Here, I'll present 2 automated testing tools for testing:
Selenium is one of the famous tools for automated testing; the tester can use any of its operating modes, of which there are actually 3:
- Selenium IDE: is a Firefox addon that records clicks, typing, and other actions to make a test which you can play back in the browser. If you use Selenium IDE, you won't have to install anything on the server.
- Selenium Remote Control(RC): runs your tests in multiple browsers and platforms. Tweak your tests in your preferred language.
- Selenium Grid: extends Selenium RC to distribute your tests across multiple servers, saving your time by running tests in parallel.
Java has been dominating the web applications market for a long time; Multinationals depended on it, its efficiency and its developers.
Times, however, are changing.
eSpace has been advocating Ruby since Rails has given it the potential to be the next big thing; Ruby on Rails is efficient, quick in development and dependable in action. And finally people are taking notice. eSpace is currently developing a Ruby on Rails web portal for Vodafone, the world's largest mobile telecommunication network company. Our vision of being technology enablers is finally developing as the elite start to realize the potential of what Ruby on Rails has to offer. The web portal is expected to be launched and announced during the first quarter of 2009.
As previously announced, eSpace is currently developing a generic social network. Read the announcement here.
eSpace's Hatem Mahmoud blogs to tell us why eSpace chose CommunityEngine as a foundation.
While developing your RESTful Rails application, you use ActionController::Resources, which magically generates a bunch of named routes to use in controllers and views. For example, adding the following line to your config/routes.rb (I'm using Rails 2.1),
map.resources :products
,gives you these paths: products_path, product_path(id), new_product_path and edit_product_path(id).
Archive
Latest Comments
- zxdvcs Commented on Reading Arabic in a PuTTY Connection
- zxdvcs Commented on Reading Arabic in a PuTTY Connection
- Ed Hardy Commented on Check Out Our iGoogle Gadgets
- Ed Hardy Commented on Thin, the thin server that can!

