<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ahad Bokhari &#187; &#187; *MVC</title>
	<atom:link href="http://blogspot.fluidnewmedia.com/category/web-app-development/mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogspot.fluidnewmedia.com</link>
	<description>Addy&#039;s Personal Blog..</description>
	<lastBuildDate>Thu, 02 Sep 2010 19:23:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Displaying Google Maps in the Android Emulator</title>
		<link>http://blogspot.fluidnewmedia.com/2009/04/displaying-google-maps-in-the-android-emulator/</link>
		<comments>http://blogspot.fluidnewmedia.com/2009/04/displaying-google-maps-in-the-android-emulator/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 16:01:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[*MVC]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://blogspot.fluidnewmedia.com/?p=1313</guid>
		<description><![CDATA[
This is a quick and dirty way to display Google Maps in Android.  Its really not that hard and after learning how to do this you can easily start thinking about how you want to architect your Android App using the different bundles that come with google (Maps are only one of them!!). 
Fire [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img src="http://blogspot.fluidnewmedia.com/wp-content/uploads/2009/04/emulator.jpg" alt="Google Emulator - Embed Web maps." title="Google Emulator - Embed Web maps." width="200" height="360" class="alignleft size-full wp-image-1314" /><br />
This is a quick and dirty way to display Google Maps in Android.  Its really not that hard and after learning how to do this you can easily start thinking about how you want to architect your Android App using the different bundles that come with google (Maps are only one of them!!). </p>
<p><strong>Fire up Eclipse / Create your Project</strong></p>
<p>Easily set up your own project here => I am using GANEYMEDE eclipse, which is the international version of the popular Eclipse IDE.  If you don&#8217;t have the <a href="http://developer.android.com/sdk/1.1_r1/index.html">Android SDK you can download it from here</a> and you can <a href="http://www.eclipse.org/downloads/">download Eclipse from here.</a>Also make sure you have the latest version of Java => <a href="http://www.java.com/en/download/index.jsp">download it from here.</a></p>
<p><span id="more-1313"></span></p>
<p>Your first step is to create the project within Eclipse (I will not get into how to install Android onto your computer) so refer to the screenshot.<br />
<img src="http://blogspot.fluidnewmedia.com/wp-content/uploads/2009/04/maps.jpg" alt="Create your Android Project" title="Create your Android Project" width="500" height="499" class="aligncenter size-full wp-image-1320" /></p>
<h3>GET YOUR MAPS API KEY</h3>
<p>With the Android SDK release v1.0, you need to apply for a free Google Maps API key before you can integrate Google Maps into your Android application. Please follow the simple steps below on how to obtain your key.  You may also refer to Googles detailed documentation here. You can also refer to <a href="http://code.google.com/android/toolbox/apis/mapkey.html">Google&#8217;s detailed documentation on the process here.</a></p>
<p>Since you are testing the application on the emulator locate the SDK debug certificate located in the default folder of <code>"C:\Documents and Settings\<username>\Local Settings\Application Data\Android"</code>. The filename of the debug keystore is debug.keystore. For deploying to a real Android device, substitute the debug.keystore file with your own keystore file. </p>
<p>To make things simple just add (debug.keystore) to a folder in C:\ (for example, create a folder called <code>"C:\Android"</code>).</p>
<p>Using the debug keystore, you need to extract its MD5 fingerprint using the <code>Keytool.exe</code> application included with your JDK installation. This fingerprint is needed to apply for the free Google Maps key. You can usually find the Keytool.exe from the <code>"C:\Program Files\Java\<JDK_version_number>\bin" folder.</code></p>
<p>Issue the following command to extract the MD5 fingerprint.</p>
<p><code>keytool.exe -list -alias androiddebugkey -keystore "C:\android\debug.keystore" -storepass android -keypass android<br />
</code></p>
<p><img src="http://blogspot.fluidnewmedia.com/wp-content/uploads/2009/04/cmd.jpg" alt="cmd" title="cmd" width="550" height="124" class="aligncenter size-full wp-image-1327" /></p>
<h3>Modify your android manifest.xml file</h3>
<p>The manifest file describes the components of the application — the activities, services, broadcast receivers, and content providers that the application is composed of. It names the classes that implement each of the components and publishes their capabilities (for example, which Intent messages they can handle). These declarations let the Android system know what the components are and under what conditions they can be launched.</p>
<p><?xml version="1.0" encoding="utf-8"?></p>
<pre lang="JAVA">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.learn2develop.GoogleMaps"
      android:versionCode="1"
      android:versionName="1.0.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="com.google.android.maps" />  

        <activity android:name=".MapsActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.INTERNET" />

</manifest>
</xml>
</pre>
<h3>Displaying your map</h3>
<p>Next to display the Google Maps in your Android application, modify the main.xml file located in the <code>res/layout folder</code>. You shall use the <code><com.google.android.maps.MapView></code> element to display the Google Maps in your activity. In addition, let&#8217;s use the <RelativeLayout> element to position the map within the activity:</p>
<pre lang="JAVA">
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <com.google.android.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
       android:apiKey="0l4sCTTyRmXTNo7k8DREHvEaLar2UmHGwnhZVHQ"

        />

</RelativeLayout>
</pre>
<p><strong>Make sure that you have applied your android api key</strong></p>
<h3>Modify the MapActivity class</h3>
<p>Lastly all you need to do is modify the MapActivity class in your #src folder. (Maps.Activity.java)</p>
<pre lang="JAVA">
package com.ahadbokhari.GoogleMaps;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;

public class MapsActivity extends MapActivity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}
</pre>
<p>The above steps are all you need to actually display the maps in your emulatore. Press F11 in Eclipse to deploy the application onto an Android emulator.   If you are experiencing problems then look over these three troubleshooting steps below:</p>
<p>Make sure that you add the package in your AndroidManifest.xml file.<br />
<uses-library android:name="com.google.android.maps" /><br />
Make sure you have internet permission (if you see nothing but grids in the emulator.) in the AndroidManifest.xml File.<br />
<uses-permission android:name="android.permission.INTERNET" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blogspot.fluidnewmedia.com/2009/04/displaying-google-maps-in-the-android-emulator/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Active Record in Rails</title>
		<link>http://blogspot.fluidnewmedia.com/2008/12/active-record-in-rails/</link>
		<comments>http://blogspot.fluidnewmedia.com/2008/12/active-record-in-rails/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 14:43:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[*MVC]]></category>
		<category><![CDATA[*Ruby on Rails]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blogspot.fluidnewmedia.com/?p=788</guid>
		<description><![CDATA[Any web developer will know how important a database and its relationship can be to their web application. With that being said i would like to introduce you to Active Record.  Active Record is a Ruby library that allows your Ruby programs to transmit data and command to and from various data stores, which are [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Any web developer will know how important a database and its relationship can be to their web application. With that being said i would like to introduce you to Active Record.  Active Record is a Ruby library that allows your Ruby programs to transmit data and command to and from various data stores, which are usually relational databases.  You can also say that Active Record allows Ruby to work with databases.</p>
<h3>Brief History behind Active Record</h3>
<p>Active Record is a design pattern originally published by Martin Fowler in his book Patterns of Enterprise Application Architecture.  David Heinemeier Hansson (the creator of the Rails framework) took the concepts laid out by Mr. Fowler and implemented them as a Ruby library called Active Record.</p>
<p>Active record has been released with the Rails framework to the public and is also available as a part of the core bundle with its own Ruby Gem.</p>
<h3>Active Record and the ORM Pattern</h3>
<p>At the core of Active Record is object relational mapping or &#8220;ORM.&#8221;  These relational databases can be represented well by object based code; if we look at an example of a dummy accounts table in a typical database it would look like this:</p>
<p>Accounts table<br />
     ID field (integer; auto-incremented; primary key)<br />
     Username field (text type field)<br />
     Password field (text type field)</p>
<p>If we look at the Active Record Account class (or model) it would look something like this:</p>
<pre lang="rails">Class Account ActiveRecord::Base
#some code here
end</pre>
<p>If we look through our Rails code, we could possible create instances of different account objects like below:</p>
<pre lang="rails"># creates a new account object in memory and a new account record in our database
newacc = Account.new
newacc.Username = "Ahad"
newacc.Password = "pass*$#"
newacc.save
# creates an Account object in memory from data in Account table with ID of 1
# (equivalent to the ANSI SQL statement of "select * from accounts where ID = 1")
findacc = Account.find(1)
# deletes records from database that have username of "Ahad"
Account.delete("username = 'Ahad'")</pre>
<h3>Active Record Differs from other ORM Libraries</h3>
<p>Active record out of the box makes a number of configuration assumptions, without requiring any outside configuration files or mapping details.  The previous example takes advantage of Active Record Assumptions, so we are not required to to configure or set up any specific instructions.  This is unlike many ORM libraries such as Java&#8217;s Hibernate.</p>
<h3>MVC Concepts and Active Record</h3>
<p>Active Record is most famous as being an important part of the Ruby on Rails framework, and is being copied by many other frameworks such as Code Igniter.    What MVC does it that it breaks code into logical groupings and programs into logical functional groupings.  With Rails, the model section is generally your Active Record classes and other data-descriptive or datacommunication code. The view section remains primarily for the user interface, which tends to be a heavy dose of HTML in most Rails applications.</p>
<h3>CRUD Database Transactions and Active Record</h3>
<p>Ususally there are four tasks one can perform when working with databases, and as a group are referred ot as CRUD. </p>
<ol>
<li>(C): Creating </li>
<li>(R): Retrieving</li>
<li>(U): Updating</li>
<li>(D): Deleting</li>
</ol>
<pre lang="rails">newacc = Account.new(:username = "Ahad")
newacc.save # creates the new record in the account table
temp = Account.find(1)
# =&gt; selects the record associated with id of 1 from the account table
temp.username = 'Ahad' # =&gt; assigns a value to the username attribute of the object
temp.save # does the actual update statement applying the changes we just stated.
Account.destroy_all(1) # deletes the record in the account table with id of 1</pre>
<p>There are many more options to that we can consider here, but the above is the most generic or the most common.</p>
<h3>How the Active Record Library applies to Ruby code</h3>
<p>What you have to remember is when working with Active Record is that its all Ruby code.  Anything you do with Ruby objects (inheritance, overriding methods, etc etc) can also be done with Active Record objects. The whole idea is to represent database records and objects, but they really are two separate things; Ruby onjects and database records.</p>
<h3>Active Record:  The smart choice</h3>
<p>There are many reasons why Active Record is the smart choice.  One is its easy to install, simple to write and read, and also a full feature object based code.  If you look below at the benefits of Acitve Record, there is no doubt that this library is worth learning about.</p>
<ul>
<li><span style="color: #ff0000;">Simplified configuration and default assumptions (Convention over Configuration).</span></li>
<li>Associations among objects.</li>
<li>Automated mapping b/w tables and classes and b/w columns and attributes.</li>
<li>Data Validations.</li>
<li>Callbacks</li>
<li><span style="color: #ff0000;">Inheritance hierarchies.</span></li>
<li>Direct manipulation of data as well as schema objects.</li>
<li>Database abstraction through adapters.</li>
<li>Logging support.</li>
<li>Migration support.</li>
<li><span style="color: #ff0000;">Active Record integrated in other emerging frameworks like Merb.</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogspot.fluidnewmedia.com/2008/12/active-record-in-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is Ruby the fastest growing language on the web?</title>
		<link>http://blogspot.fluidnewmedia.com/2008/12/is-ruby-the-fastest-growing-language-on-the-web/</link>
		<comments>http://blogspot.fluidnewmedia.com/2008/12/is-ruby-the-fastest-growing-language-on-the-web/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 11:20:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[*MVC]]></category>
		<category><![CDATA[*Ruby on Rails]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blogspot.fluidnewmedia.com/?p=755</guid>
		<description><![CDATA[There is alot of hype sorrounding Ruby and Ruby on Rails.  As a fanboy of Ruby and gearing myself up to start developing Ruby on Rails apps I am always trying to inform myself of the future of this awesome programming language.
SAN FRANCISCO &#8212; With Java now a very mature language with millions of developers, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>There is alot of hype sorrounding <a href="http://ruby-project.org">Ruby</a> and <a href="http://rubyonrails.org">Ruby on Rails</a>.  As a fanboy of Ruby and gearing myself up to start developing Ruby on Rails apps I am always trying to inform myself of the future of this awesome programming language.</p>
<blockquote><p>SAN FRANCISCO &#8212; With Java now a very mature language with millions of developers, the Ruby language is among the fastest growing programming languages, and the number of Ruby developers is expected to quadruple over the next five years.In a panel discussion at the Sun&#8217;s CommunityOne day preview to JavaOne here on May 5, Mark Driver, an analyst at Gartner, said, &#8220;There are under one million professional Ruby developers now and we&#8217;re projecting there will be four million plus by 2013.&#8221; Driver later told eWEEK that Gartner&#8217;s research shows &#8220;strong interest&#8221; in Ruby and that the percentage of developers that will be creating commercial systems versus those that are hobbyists will be even greater for Ruby than for other languages. &#8220;Ruby will be more interesting to commercial developers,&#8221; he said.</p>
<p>The panel discussion featured a variety of participants, including some core contributors to the JRuby project and a trio of Ruby developers. In addition, while broaching the issue of Ruby&#8217;s growth, the session also at times compared Ruby to other languages such as PHP and Java itself. JRuby is an implementation of Ruby that runs on the JVM (Java Virtual Machine).</p>
<p>Charles Nutter, a Sun engineer who is a core committer to JRuby, said one reason developers are beginning to look at Ruby is that &#8220;Ruby is the flavor of the week, and there are a lot of ways to solve the problems of the Web.&#8221; </p></blockquote>
<p><span id="more-755"></span><br />
According to the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Programming Community Index</a>, it is one of the fastest growing languages, but has seen a decline between 2007-2008.</p>
<table id="Table2" class="TpciTable" border="1" align="center">
<tbody>
<tr style="background-color: #04c4fa;">
<th align="center"><span style="font-family: georgia, palatino;">Position<br />
Dec 2008</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Position<br />
Dec 2007</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Delta in Position</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Programming Language</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Ratings<br />
Dec 2008</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Delta <br />
Dec 2007</span></th>
<th align="center"><span style="font-family: georgia, palatino;">Status</span></th>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">1</span></td>
<td align="center"><span style="font-family: georgia, palatino;">1</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Java.html"><span style="font-family: georgia, palatino;">Java</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">19.367%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.68%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">2</span></td>
<td align="center"><span style="font-family: georgia, palatino;">2</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/C.html"><span style="font-family: georgia, palatino;">C</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">16.163%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+2.99%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">3</span></td>
<td align="center"><span style="font-family: georgia, palatino;">5</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/C__.html"><span style="font-family: georgia, palatino;">C++</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">10.893%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+3.02%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">4</span></td>
<td align="center"><span style="font-family: georgia, palatino;">4</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/PHP.html"><span style="font-family: georgia, palatino;">PHP</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">9.479%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+1.09%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">5</span></td>
<td align="center"><span style="font-family: georgia, palatino;">3</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/(Visual)_Basic.html"><span style="font-family: georgia, palatino;">(Visual) Basic</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">9.478%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.74%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">6</span></td>
<td align="center"><span style="font-family: georgia, palatino;">8</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/C_.html"><span style="font-family: georgia, palatino;">C#</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">4.643%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+0.65%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">7</span></td>
<td align="center"><span style="font-family: georgia, palatino;">6</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Python.html"><span style="font-family: georgia, palatino;">Python</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">4.567%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.13%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">8</span></td>
<td align="center"><span style="font-family: georgia, palatino;">7</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Perl.html"><span style="font-family: georgia, palatino;">Perl</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">3.603%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.78%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">9</span></td>
<td align="center"><span style="font-family: georgia, palatino;">10</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/JavaScript.html"><span style="font-family: georgia, palatino;">JavaScript</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">3.062%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+0.33%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">10</span></td>
<td align="center"><span style="font-family: georgia, palatino;">11</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Delphi.html"><span style="font-family: georgia, palatino;">Delphi</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">3.055%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">+0.38%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">11</span></td>
<td align="center"><span style="font-family: georgia, palatino;">9</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Ruby.html"><span style="font-family: georgia, palatino;">Ruby</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">2.308%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.78%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">12</span></td>
<td align="center"><span style="font-family: georgia, palatino;">12</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/D.html"><span style="font-family: georgia, palatino;">D</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">1.185%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.45%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">13</span></td>
<td align="center"><span style="font-family: georgia, palatino;">13</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/PL_SQL.html"><span style="font-family: georgia, palatino;">PL/SQL</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">1.140%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.25%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">14</span></td>
<td align="center"><span style="font-family: georgia, palatino;">14</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/SAS.html"><span style="font-family: georgia, palatino;">SAS</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.843%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.55%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  A</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">15</span></td>
<td align="center"><span style="font-family: georgia, palatino;">19</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Pascal.html"><span style="font-family: georgia, palatino;">Pascal</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.689%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.10%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">16</span></td>
<td align="center"><span style="font-family: georgia, palatino;">15</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/COBOL.html"><span style="font-family: georgia, palatino;">COBOL</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.631%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.26%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">17</span></td>
<td align="center"><span style="font-family: georgia, palatino;">16</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/ABAP.html"><span style="font-family: georgia, palatino;">ABAP</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.603%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.27%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">18</span></td>
<td align="center"><span style="font-family: georgia, palatino;">21</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Up.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Logo.html"><span style="font-family: georgia, palatino;">Logo</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.569%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.18%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">19</span></td>
<td align="center"><span style="font-family: georgia, palatino;">17</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Down.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Lisp_Scheme.html"><span style="font-family: georgia, palatino;">Lisp/Scheme</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.515%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.33%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
<tr height="25">
<td align="center"><span style="font-family: georgia, palatino;">20</span></td>
<td align="center"><span style="font-family: georgia, palatino;">20</span></td>
<td align="center"><span style="font-family: georgia, palatino;"><img src="http://www.tiobe.com/tiobe_index/images/Same.gif" border="0" alt="" /></span></td>
<td><a href="http://www.tiobe.com/content/paperinfo/tpci/Lua.html"><span style="font-family: georgia, palatino;">Lua</span></a></td>
<td align="center"><span style="font-family: georgia, palatino;">0.494%</span></td>
<td align="center"><span style="font-family: georgia, palatino;">-0.28%</span></td>
<td align="left"><span style="font-family: georgia, palatino;">  B</span></td>
</tr>
</tbody>
</table>
<p> </p>
<p>Lets look at some of the features that Ruby extends to us:</p>
<ul>
<li><strong>Interpreted</strong>:  Ruby is an interpreted language. Therefore, whenever you make a change to the source code, you need not compile the code and then run it to see the effect of the change. As a result of this feature, the code-compile-run cycle becomes the code-run cycle.<strong></strong></li>
<li><strong>Purely Object-Oriented</strong>: Ruby is purely object-oriented. That means that everything in Ruby is an object which includes primitive data-types and numbers. In addition, it supports all the features required by an Object-Oriented Language.</li>
<li><strong>Functional:</strong> Ruby supports functional programming using blocks.</li>
<li><strong>Duck Typing</strong>: It is also known as Dynamic Typing. Ruby decides about the type of variable while the program is running by looking at the value contained in the variable at that instant. In other words, if an object looks like a duck, sounds like a duck, then it is a duck!</li>
<li><strong>Automatic Memory Management:</strong> You would know it as Garbage Collection. As in any Very High-Level Language (VHLL), Ruby provides Garbage Collection out-of-the-box, thus you need not worry about physical memory leaks.</li>
<li><strong>Threading</strong>: The current stable version of Ruby provides &#8216;almost&#8217; platform independent threading using green threads (threads used at the user-space level are known as green threads.) I said &#8216;almost&#8217; because Ruby threads are simulated in the VM rather than running as native OS threads.</li>
<li><strong>Reflection:</strong> Ruby provides a program with the ability to &#8216;look at itself&#8217; while running. This ability is known by different terms, such as reflection, introspection, and so on. Using reflection, a program can modify certain aspects of itself during execution, or create a completely new object at runtime based on the requirements at that time.</li>
</ul>
<div>The fact that Ruby is a new player on the block and when its stands on its own can also challenge veteran players like J2EE/JEE says alot for this emerging programming language.  Tim Oreilly sums it up pretty well in his short article &#8220;Trends of :</div>
<div>
 </p>
<blockquote><p>I wrote yesterday about the rise of Ruby and Javascript, driven by the move towards Web 2.0 applications. Also worthy of note in these graphs is the long, slow decline of Java and C/C++, and the continuing rise in market share of C#. You can see how Ruby&#8217;s sharp ascent follows the introduction of Rails, and that PHP&#8217;s fortunes reversed before book sales showed that web developers in search of rapid development languages moved over to RoR (and <a href="http://radar.oreilly.com/archives/2006/03/aspnet_on_a_roll.html">Microsoft&#8217;s ASP.Net suite of technologies</a>.)</p></blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blogspot.fluidnewmedia.com/2008/12/is-ruby-the-fastest-growing-language-on-the-web/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The No-Framework PHP MVC Framework</title>
		<link>http://blogspot.fluidnewmedia.com/2008/11/the-no-framework-php-mvc-framework/</link>
		<comments>http://blogspot.fluidnewmedia.com/2008/11/the-no-framework-php-mvc-framework/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 12:24:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[*MVC]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogspot.fluidnewmedia.com/?p=653</guid>
		<description><![CDATA[A An insightful post by the King of php himself can be found here: THE NO FRAMEWORK PHP MVC FRAMEWORK. Confusing? hahah &#8211; well Andy Jeffries ( A PHP, RUBY ON RAILS AND MYSQL Developer) sums it up really well here:  DESIGN PATTERNS VS AGILE DEVELOPMENT
I posted this in a forum in the morning today, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A <span style="text-decoration: line-through;">An insightfu</span>l post by the King of php himself can be found here: <a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html">THE NO FRAMEWORK PHP MVC FRAMEWORK</a>. <span style="text-decoration: line-through;">Confusing? hahah</span> &#8211; well Andy Jeffries ( A PHP, RUBY ON RAILS AND MYSQL Developer) sums it up really well here:  <a href="http://andyjeffries.co.uk/articles/design-patterns-vs-agile-development">DESIGN PATTERNS VS AGILE DEVELOPMENT</a></p>
<p><a href="http://andyjeffries.co.uk/articles/design-patterns-vs-agile-development"></a>I posted this in a forum in the morning today, please read the reply i got:</p>
<blockquote><p>Keep an open mind &#8230;&#8230;.</p>
<p>A good framework:</p>
<p>1. better separates presentation from logic<br />
2. has a clear documented structure<br />
3. has features</p>
<p>He uses a view, controller, and model but he doesn’t use a “front controller”. URL’s are mapped directly to views. That’s not necessarily bad, (that’s the asp.net way) but:</p>
<p>- without a messy .htaccess file, you miss out on nice flexible hackable urls<br />
- you miss out on pre processing like showing a cached page without loading the entire view file and all it’s includes. </p></blockquote>
<p>I believe this person who commented on my post in the forums has a <strong>POINT WORTH NOTING&#8230;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blogspot.fluidnewmedia.com/2008/11/the-no-framework-php-mvc-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
