<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>I wonder why ... ?</title>
    <description>The ultimate trash can of Bahadir Cambel</description>
    <link>http://www.bahadircambel.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.0.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.bahadircambel.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Bahadir Cambel</dc:creator>
    <dc:title>I wonder why ... ?</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bahadircambel/UgKj" /><feedburner:info uri="bahadircambel/ugkj" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>bahadircambel/UgKj</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <title>Delivering the Speech of Your Life</title>
      <description>Delivering a good speech is hard, because it requires a lot of experience and when you are young, how many times are you going to deliver a speech ? Not much.
&lt;p&gt;
At Startup Weekend Eindhoven 2011, I have had a hard time to make the speech. The problem I had was, my idea was already busted with the second presentation thus I needed to come up with an another existing idea of mine. I made myself clear that no condition will stop me to go out there and make the pitch. Great that I did it.
&lt;/p&gt;
&lt;p&gt;
My lizard brain was working hard to stop me, not to do the thing, but I did easily shut it off, even though the physical effects was high. 
&lt;/p&gt;
&lt;p&gt;
It is important to note that, doing you homework well before the pitch/presentation/speech is very important. Write you speech, record your own sound and listen very carefully to your tone and keep on doing. You will get better, and don't forget to do it in the real world, not in your safety zone, not to your friends/mom/girlfriend. Deliver it to an audience of 100. You are going to see the difference.
&lt;/p&gt;


&lt;p&gt; Anyway, here is another great article at HBR about speech &lt;a href="http://blogs.hbr.org/pallotta/2011/03/delivering-the-speech-of-your.html"&gt;http://blogs.hbr.org/pallotta/2011/03/delivering-the-speech-of-your.html&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;&lt;strong&gt;Know your goal. &lt;/strong&gt;When the speech is over, what do you want the audience saying about it and you? What difference do you want to make? Most speakers never ask this of themselves.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Memorize your speech. &lt;/strong&gt;That's right. Memorize every word of it. Deliver it in front of a mirror five times, six times, ten times. Then deliver it while your kid is screaming in the background, to develop the confidence that you can recite it no matter what distraction pops up. Why memorize it? Because nothing will put an audience to sleep faster than someone reading from a prepared text. Because when you memorize it, it stops being about getting the words right and starts being about getting the feeling right. Imagine if Andrea Bocelli didn't memorize the words to the songs in his repertoire. How much room do you think there would be for him to feel them? &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;If you don't want to knock it out of the park&lt;/strong&gt;, don't follow rule 2.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Practice the transitions. &lt;/strong&gt;What will get you from one point to the next? Is it "if," or "when," or "then I." Know and memorize the precise construction of each transitional sentence. It's in uncertainty about transitions from one point to the next that people lose their grace in public and start saying "aaahhhh."&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Don't fear silence. &lt;/strong&gt;You want to silence a room? Don't talk. Be silent and look at the audience. Five seconds. Seven seconds. Just taking them in. Connecting with them. But never do it for effect. Do it to get intimate with your audience. It silences a room like you wouldn't believe. Why? Because it's not normal. Audiences are used to speakers filling every nanosecond with the sound of their own voice, leaving zero time for reflection. Audiences are used to being avoided, not appreciated. When they come upon someone who can command their own silence, they understand, "This person is serious." &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Never, ever, ever use PowerPoint as your speech notes.&lt;/strong&gt; The slides are for your audience, not for you. The moment they see you rattling through a list of bullets that you should have had the courtesy to memorize, they put you in a category with every other boring presenter they've ever seen and you've lost them.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Give something of yourself. &lt;/strong&gt;Don't be afraid to feel something in front of an audience. Don't be afraid to say something that will make you feel something, and that will make the audience feel something.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Be yourself. &lt;/strong&gt;Don't feel you need to mimic the testosterone level of a motivational speaker. You will look and feel fake. Robert Kennedy never tried to copy Martin Luther King's rhetorical skills. RFK was soft-spoken. He owned that. And as a result, was every bit as affecting as King. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Don't speak in abstractions. &lt;/strong&gt;Say what it is that you mean. Plainly. Avoid the lexicon of your own trade. People are sick of it. It doesn't mean anything to them anymore. Speak in human. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Feel what's happening in the room&lt;/strong&gt; and use it to connect your speech to this moment. In this way, if your mike goes out, you can make a joke out of it, rather than it making a nervous wreck, and a joke, out of you. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Make eye contact until it scares you.&lt;/strong&gt; Distribute your eye contact around the room. Not for effect, but because you genuinely want to connect with the people in front of you.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Don't miss your own talk. &lt;/strong&gt;It is a privilege and an honor to be asked to speak. Take the opportunity to commune with other human beings. It's like getting to watch a falling star. &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Come from a place of love for your audience. &lt;/strong&gt;That's mastery. When you allow yourself to feel the humanity of your audience, you have succeeded in taking the focus off yourself. There is a universe of difference between this place and a PowerPoint presentation. This is the place from which change is made. From here you can move mountains.&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=fn3w2vn4ERM:8sx3GXYyMKc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/fn3w2vn4ERM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/fn3w2vn4ERM/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Delivering-the-Speech-of-Your-Life.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=20ef63c4-8b40-4a0d-bf1d-8b16cf1b52bd</guid>
      <pubDate>Wed, 16 Mar 2011 12:03:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=20ef63c4-8b40-4a0d-bf1d-8b16cf1b52bd</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=20ef63c4-8b40-4a0d-bf1d-8b16cf1b52bd</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Delivering-the-Speech-of-Your-Life.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=20ef63c4-8b40-4a0d-bf1d-8b16cf1b52bd</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=20ef63c4-8b40-4a0d-bf1d-8b16cf1b52bd</feedburner:origLink></item>
    <item>
      <title>What we need more and less</title>
      <description>A Great list published at Harvard Business Review ; 

&lt;table border="0" cellpadding="3" cellspacing="3"&gt;
	&lt;tbody&gt;&lt;tr&gt;
		&lt;td&gt;&lt;strong&gt;WE NEED LESS:&lt;/strong&gt;&lt;/td&gt;
		&lt;td&gt;&lt;strong&gt;WE NEED MORE:&lt;/strong&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Information&lt;/td&gt;
		&lt;td&gt;Wisdom&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Shallow billionaires&lt;/td&gt;
		&lt;td&gt;Passionate teachers&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Self-promotion&lt;/td&gt;
		&lt;td&gt;Self-awareness&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Multitasking&lt;/td&gt;
		&lt;td&gt;Control of our attention &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Inequality&lt;/td&gt;
		&lt;td&gt;Fairness&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sugar&lt;/td&gt;
		&lt;td&gt;Lean protein&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Action&lt;/td&gt;
		&lt;td&gt;Reflection&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Super sizes&lt;/td&gt;
		&lt;td&gt;Smaller portions&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Private jets&lt;/td&gt;
		&lt;td&gt;High-speed trains&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Calculation&lt;/td&gt;
		&lt;td&gt;Passion&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Experts&lt;/td&gt;
		&lt;td&gt;Learners&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Blaming&lt;/td&gt;
		&lt;td&gt;Taking responsibility&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Judgment&lt;/td&gt;
		&lt;td&gt;Discernment&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Texting&lt;/td&gt;
		&lt;td&gt;Reading&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Anger&lt;/td&gt;
		&lt;td&gt;Empathy&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Output&lt;/td&gt;
		&lt;td&gt;Depth&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Constructive criticism&lt;/td&gt;
		&lt;td&gt;Thank-you notes&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Possessions&lt;/td&gt;
		&lt;td&gt;Meaning&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Righteousness&lt;/td&gt;
		&lt;td&gt;Doing the right thing&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Answers&lt;/td&gt;
		&lt;td&gt;Curiosity&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Long hours&lt;/td&gt;
		&lt;td&gt;Longer sleep&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Complaining&lt;/td&gt;
		&lt;td&gt;Gratitude&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Sitting&lt;/td&gt;
		&lt;td&gt;Moving&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Selling&lt;/td&gt;
		&lt;td&gt;Authenticity&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Cynicism&lt;/td&gt;
		&lt;td&gt;Realistic optimism&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Self-indulgence&lt;/td&gt;
		&lt;td&gt;Self-control&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Speed&lt;/td&gt;
		&lt;td&gt;Renewal&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Emails&lt;/td&gt;
		&lt;td&gt;Conversations&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Winning&lt;/td&gt;
		&lt;td&gt;Win-win&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Immediate gratification&lt;/td&gt;
		&lt;td&gt;Sacrifice&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=Z0viWfV4zp4:GiQS1twaoU8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/Z0viWfV4zp4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/Z0viWfV4zp4/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/What-we-need-more-and-less.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=1716b9a3-b169-4454-aa9a-5f6a11f1bf56</guid>
      <pubDate>Wed, 16 Mar 2011 11:59:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=1716b9a3-b169-4454-aa9a-5f6a11f1bf56</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=1716b9a3-b169-4454-aa9a-5f6a11f1bf56</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/What-we-need-more-and-less.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=1716b9a3-b169-4454-aa9a-5f6a11f1bf56</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=1716b9a3-b169-4454-aa9a-5f6a11f1bf56</feedburner:origLink></item>
    <item>
      <title>Ruby on Rails Basics - Views</title>
      <description>&lt;h2&gt;View basic&lt;/h2&gt;

Lets start with generating a demo project called demo 3
	&lt;pre  class="brush: ruby"&gt;
rails new demo3	
	&lt;/pre&gt;
After generation completed, we could add post model with title and body fields
	&lt;pre class="brush: ruby"&gt;
rails g scaffold post title:string body:text
	&lt;/pre&gt;


	&lt;pre class="brush: ruby"&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;Demo3&amp;lt;/title&amp;gt;
  &amp;lt;%= stylesheet_link_tag :all %&amp;gt;
  &amp;lt;%= javascript_include_tag :defaults %&amp;gt;
  &amp;lt;%= csrf_meta_tag %&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;%= yield %&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
	
	&lt;/pre&gt;

go to views/layouts

yield basically appends all the rendering text from the views

go to the views/posts/index.html.erb file

	&lt;pre class="brush: ruby"&gt;
&amp;lt;h1&amp;gt;Listing posts&amp;lt;/h1&amp;gt;

&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Body&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;

&amp;lt;% @posts.each do |post| %&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;%= post.title %&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;%= post.body %&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;%= link_to 'Show', post %&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;%= link_to 'Edit', edit_post_path(post) %&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;&amp;lt;%= link_to 'Destroy', post, :confirm =&amp;gt; 'Are you sure?', :method =&amp;gt; :delete %&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;% end %&amp;gt;
&amp;lt;/table&amp;gt;

&amp;lt;br /&amp;gt;

&amp;lt;%= link_to 'New Post', new_post_path %&amp;gt;
	&lt;/pre&gt;



Filters
before
after
around is executed both before and after an action is executed

	&lt;pre class="brush: ruby"&gt;
private 
	def get_and_respond_with
		@post =  params[:id].present? ? Post.find( param )
		yield
		respond_with(@post)
	end
	&lt;/pre&gt;

Place private keyword to the end of your rails controller otherwise all the methods underneath it will become private members. Private members are there for 
to not to serve a actions to the controllers
we can have a rendering login in before or after action, which needs to be 

You can use 

	&lt;pre class="brush: ruby"&gt;
layout "my_layout"
	&lt;/pre&gt;

to define a layout used all over the post controller which will search in the application folder
or simply create a new view under the application called “posts.html.erb” which will be automatically picked up by convention

or you can also define which template to use in an action

	&lt;pre class="brush: ruby"&gt;
def index
    @posts = Post.all
    render :layout =&amp;gt; 'juicy'
end
	&lt;/pre&gt;


&lt;h2&gt;Partials&lt;/h2&gt;

Add the following line under index.html.erb

	&lt;pre class="brush: ruby"&gt;
&amp;lt;%= render 'category_list' %&amp;gt;
	&lt;/pre&gt;

place a new layout view under posts called _category_list.html.erb
and place some html

Now navigate to /posts, you will see your extra html is rendered onto the page.
underscore ( “_” ) sign to the trick to indicate that it is a partial view.

Lets change the _category_list.html.erb file and add the following code

	&lt;pre class="brush: ruby"&gt;
&amp;lt;h1&amp;gt; Category &amp;lt;/h1&amp;gt;
&amp;lt;% categories.each do |c| %&amp;gt;
  &amp;lt;li&amp;gt;	&amp;lt;a href="#"&amp;gt; &amp;lt;%=c %&amp;gt; &amp;lt;/a&amp;gt; &amp;lt;/li&amp;gt;
&amp;lt;%end%&amp;gt;	
	&lt;/pre&gt;

undefined local variable or method `categories' for #&amp;lt;#&amp;lt;Class:0xa98d474&amp;gt;:0xa98ba98&amp;gt;
because we did not defined our categories variable we get an error. Lets define the variable in our render call
replace the render ‘category_list’ with 

	&lt;pre class="brush: ruby"&gt;
&amp;lt;%= render :partial =&amp;gt; 'category_list' , :locals =&amp;gt; { :categories  =&amp;gt; [ "test" , "test2" ] }  %&amp;gt;	
	&lt;/pre&gt;
&lt;p&gt;
:locals is the data that we are passing into the partial view
and the only data is named “categories” with an array of values
we can also use layout to render the partial view
create a new file called _green_box.html.erb in posts folder and place the following html code
&lt;/p&gt;


	&lt;pre class="brush: ruby"&gt;
&amp;lt;div style="background-color:green"&amp;gt;
&amp;lt;%= yield %&amp;gt;
&amp;lt;/div&amp;gt;
	&lt;/pre&gt;

&lt;p&gt;
and modify the render line with 
&lt;/p&gt;

	&lt;pre class="brush: ruby"&gt;
&amp;lt;%= render :partial =&amp;gt; 'category_list' , :locals =&amp;gt; {:categories =&amp;gt; [ "test" , "test2" ] } ,  :layout =&amp;gt;  'green_box'  %&amp;gt;	
	&lt;/pre&gt;

and refresh your posts page!
&lt;h2&gt;Helpers&lt;/h2&gt;

	&lt;pre class="brush: bash"&gt;
bahadir@ubox:~/RubymineProjects/demo3$ rails g migration add_author 
      invoke  active_record
      create    db/migrate/20110206174947_add_author.rb
	  	&lt;/pre&gt;

&lt;p&gt;
Open up the add_author.rb
&lt;/p&gt;

	&lt;pre class="brush: ruby"&gt;
class AddAuthor &amp;lt; ActiveRecord::Migration
  def self.up
  	add_column  :posts , :author_first , :string
  	add_column  :posts , :author_last , :string
  end
  def self.down
	remove_column  :posts , :author_first , :string
	remove_column  :posts , :author_last , :string
  end
end
	&lt;/pre&gt;

This is a migration script that will help us to create the author_first and author_last column when we migrate up ( self.up ) and remove them ( self.down ) if we want to migrate down
rake db:migrate


	&lt;pre class="brush: bash"&gt;
bahadir@ubox:~/RubymineProjects/demo3$ rake db:migrate
(in /home/bahadir/RubymineProjects/demo3)
==  AddAuthor: migrating ======================================================
-- add_column(:posts, :author_first, :string)
   -&amp;gt; 0.0008s
-- add_column(:posts, :author_last, :string)
   -&amp;gt; 0.0005s
==  AddAuthor: migrated (0.0016s) =============================================
	&lt;/pre&gt;

&lt;p&gt;
Now go to _form.html.erb
&lt;/p&gt;

	&lt;pre class="brush: ruby"&gt;
  &amp;lt;div class="field"&amp;gt;
    &amp;lt;%= f.label :author_first %&amp;gt;&amp;lt;br /&amp;gt;
    &amp;lt;%= f.text_field :author_first %&amp;gt;
  &amp;lt;/div&amp;gt;
   &amp;lt;div class="field"&amp;gt;
    &amp;lt;%= f.label :author_last %&amp;gt;&amp;lt;br /&amp;gt;
    &amp;lt;%= f.text_field :author_last %&amp;gt;
  &amp;lt;/div&amp;gt;
  &lt;/pre&gt;

&lt;p&gt;and last thing to do is to add the fields to the show.html.erb file&lt;/p&gt;
  
	&lt;pre class="brush: ruby"&gt;
&amp;lt;p&amp;gt;
	&amp;lt;b&amp;gt;Author first:&amp;lt;/b&amp;gt;
	&amp;lt;%= @post.author_first %&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
	&amp;lt;b&amp;gt;Author last:&amp;lt;/b&amp;gt;
	&amp;lt;%= @post.author_last %&amp;gt;
&amp;lt;/p&amp;gt;
	&lt;/pre&gt;

Lets look at how we can use helpers
go to your index.html.erb and add the following line

	&lt;pre class="brush: ruby"&gt;
&amp;lt;td&amp;gt;&amp;lt;%= author_name(post) %&amp;gt;&amp;lt;/td&amp;gt;
	&lt;/pre&gt;

and open up the helpers/posts_helper.rb
and define the following method


	&lt;pre class="brush: ruby"&gt;
module PostsHelper
	def author_name(post)
		"#{post.author_first} #{post.author_last}"
	end
end
	&lt;/pre&gt;

Lets print out the date of the post as well. Open up helpers/application_helper.rb and add the pretty_date function


	&lt;pre class="brush: ruby"&gt;
module ApplicationHelper
	def pretty_date(date)
		date.strftime("%B %d %Y")
	end
end	
	&lt;/pre&gt;

now go back to index.html.erb file and change the author_name line by appending the date of the post

	&lt;pre class="brush: ruby"&gt;
&amp;lt;td&amp;gt;&amp;lt;%= author_name(post) %&amp;gt; - &amp;lt;%= pretty_date(post.created_at) %&amp;gt; &amp;lt;/td&amp;gt;
&lt;/pre&gt;

Other View Engines - HAML

add the haml gem to the GEMFILE file

	&lt;pre class="brush: ruby"&gt;
	gem 'haml'
	&lt;/pre&gt;

and 
run the script 

	&lt;pre class="brush: ruby"&gt;
	bundle install
	&lt;/pre&gt;

and restart your server
create a new file called index.html.haml and add the following lines

	&lt;pre class="brush: ror"&gt;
%h1 Welcome
- @posts.each do |post|
	- if (should_show?(post))
		%h2= post.title
		%i #{author_name(post)} - #{pretty_date(post.created_at)}
		%hr
		= link_to 'Show', post |
		= link_to 'Edit' , edit_post_path(post)
		= link_to 'Destroy', post, :confirm =&amp;gt; 'Are you sure?' , :method =&amp;gt; :delete
%br
= link_to 'New Post', new_post_path
	&lt;/pre&gt;
Holy cow!
&lt;a href="http://html2haml.heroku.com/" target="_blank"&gt;
http://html2haml.heroku.com/
&lt;/a&gt;
Holy cow #2

some more refactoring to the index.html.haml

	&lt;pre class="brush: ror"&gt;
%h1 Welcome
= render :partial =&amp;gt; "category_list", :locals =&amp;gt; { :categories =&amp;gt; ["thing","thing2"] }

// you might not use as if you name the partial view as "post" but if you need to 
// use the as parameter to pass in the collection item
= render :partial =&amp;gt; 'post' , :collection =&amp;gt; @posts , :as =&amp;gt; :post 
%br
= link_to "New Post", new_post_path	
	&lt;/pre&gt;


Create a new file called _post.html.haml and paste in

	&lt;pre class="brush: ror"&gt;
- if (should_show?(post))
	%h2= post.title
	%i #{author_name(post)} - #{pretty_date(post.created_at)}
	%hr
	= link_to "Show", post |
	= link_to "Edit" , edit_post_path(post)
	= link_to "Destroy", post, :confirm =&amp;gt; "Are you sure?" , :method =&amp;gt; :delete	
	&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=ajRPIGFK-Ow:o9WvbI8oqok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/ajRPIGFK-Ow" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/ajRPIGFK-Ow/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Ruby-on-Rails-Basics-Views.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=ef55ebfe-f43f-4138-8434-ae7cdfdf6b94</guid>
      <pubDate>Sun, 06 Feb 2011 22:18:00 +0100</pubDate>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=ef55ebfe-f43f-4138-8434-ae7cdfdf6b94</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=ef55ebfe-f43f-4138-8434-ae7cdfdf6b94</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Ruby-on-Rails-Basics-Views.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=ef55ebfe-f43f-4138-8434-ae7cdfdf6b94</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=ef55ebfe-f43f-4138-8434-ae7cdfdf6b94</feedburner:origLink></item>
    <item>
      <title>Ruby on Rails Basics - Controllers and walk through</title>
      <description>&lt;h2&gt;Choosing an IDE or Editor&lt;/h2&gt;
&lt;div style="float:left;margin-right:10px;margin-bottom:10px;"&gt;
&lt;a href="http://www.jetbrains.com/ruby/features?utm_source=RubyMineUser&amp;utm_medium=Banner&amp;utm_campaign=RubyMine" style="position: relative;display:block; background:#fff url(http://www.jetbrains.com/ruby/features/ruby_banners/ruby1/ruby120x60_white.gif) no-repeat 0 0; border:solid 1px #ab0022; margin:0;padding:0;text-decoration:none;text-indent:0;letter-spacing:-0.001em; width:120px; height:60px" alt="Developed with" title="Developed with"&gt;&lt;span style="margin: 30px 0 0 6px;padding: 0;float: left;font-size: 11px;cursor:pointer;  background-image:none;border:0;color: #ab0022; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;"&gt;Developed with&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p style="float:left;margin-left:10px;"&gt;
I have downloaded the &lt;a href="http://www.jetbrains.com/ruby/"&gt; RubyMine&lt;/a&gt; from Jetbrains who are the makers of famous ReSharper 		for .NET guys and IntelliJ for Java. I generally like the products of Jetbrains 		but I see &lt;a href="http://www.jetbrains.com/ruby/"&gt; RubyMine&lt;/a&gt; is still in its early stages and not free. You may still download 		the product and try it for 30 days.&lt;/p&gt;
&lt;p&gt;Frankly, I see RubyMine tries to do a lot, download bundles run rails, use any rails 		generators but since we are in the learning stages and understanding under the hood, 		it is better to go with a basic normal editor.&lt;/p&gt;

&lt;div style="float:left;margin-right:10px;margin-bottom:10px;"&gt;
&lt;img src="http://bluefish.openoffice.nl/images/announce-2.0.jpg" width="157px" height="96px" /&gt;
&lt;/div&gt;

&lt;p &gt; The editor I am going to use is &lt;a href="http://bluefish.openoffice.nl/"&gt;BlueFish&lt;/a&gt; which I mentioned before. &lt;a href="http://bluefish.openoffice.nl/"&gt;BlueFish&lt;/a&gt; is a 		very nice simple editor which makes it easy to browse folders, create files, and 		also nice syntax highlighting for different languages ( html , javascript , java 		, ruby , PHP, PERL , Python )&lt;/p&gt;

&lt;p&gt;Folder tree is refreshed automatically if you click one time to the folder ( wow! 		) It is very handy if you use rails through command line!&lt;/p&gt;
&lt;h2&gt;New Rails project&lt;/h2&gt;
&lt;p&gt;Lets start with writing code. First of all we need to create a new rails application. 		In order to do that open up a console and run the following command&lt;/p&gt;
&lt;div class="code"&gt;rails new demo1&lt;/div&gt;
&lt;p&gt;creates a new demo1 project. The project is empty which means there are no mappers, 		controllers or views are created for you. New command only generates a basic Rails 		project structure.&lt;/p&gt;
&lt;h2&gt;Mapper&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight: bold"&gt;config/routes.rb&lt;/span&gt; here you define a new route 		for the request handling&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;open up the &lt;span style="font-weight: bold"&gt;config/routes.rb&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Go to line 51&lt;/li&gt;
&lt;li&gt;
&lt;div class="code"&gt;root :to =&amp;gt; "home#index"&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;uncomment the root and change the string with home#index&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Basically with this piece of code we tell rack that we will have a home controller 		and in that home controller there will be method called index. Lets create that 		controller first&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;go to app/controllers &lt;/li&gt;
&lt;li&gt;add a new file called home_controller.rb&lt;/li&gt;
&lt;li&gt;in that file place the following line of code&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code"&gt;
&lt;pre class="ruby"&gt;class HomeController &amp;lt; ApplicationController
   def index
     @message = " Hello from the home controller"
   end
end
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;We don&amp;rsquo;t want to place any html inside the controller, so let&amp;rsquo;s create our view 		as well. The file extension of the html file will be .erb which stands for eRuby 		that is the ruby templating file like asp or jsp&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;go to app/views/&lt;/li&gt;
&lt;li&gt;create a folder called home&lt;/li&gt;
&lt;li&gt;create a file named index.html.erb &lt;/li&gt;
&lt;li&gt;and place the following code.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code"&gt;
&lt;pre&gt;&amp;lt;h1&amp;gt;
	&amp;lt;%=@message%&amp;gt;
&amp;lt;/h1&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;It is important to understand that all the files and code placed inside is a convention.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;home_controller.rb maps with root :to =&amp;gt; "home#index" &lt;/li&gt;
&lt;li&gt;and the class &lt;/li&gt;
&lt;li&gt;HomeController maps with root :to =&amp;gt; "home#index" &lt;/li&gt;
&lt;li&gt;def index maps with root :to =&amp;gt; "home#index" and &lt;span style="font-weight: bold"&gt; index.html.erb&lt;/span&gt; as well&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;To try how things will be broken, just rename one of the following into &amp;ldquo;homex&amp;rdquo; 		and see the errors.&lt;/blockquote&gt;
&lt;div&gt;If you place everything fire up rails in console using
&lt;div class="code"&gt;rails s&lt;/div&gt;
in your application directory.&lt;/div&gt;
&lt;h2&gt;Using Query Strings&lt;/h2&gt;
&lt;p&gt;Make a request to your home &lt;a href="http://localhost:3000/?m=testtest"&gt;http://localhost:3000/?m=testtest&lt;/a&gt; Rails contains an object called params and to get the value of the m query string&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;@user_messsage = params [ :m ] &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Open your index.html.erb to modify the html and print out the parameter that passed 	in ( which is a bad idea to directly output the value )&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt; &amp;lt;h1&amp;gt; &amp;lt;%=@message%&amp;gt; &amp;amp; &amp;lt;%=@user_message%&amp;gt;  &amp;lt;/h1&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and if you refresh you browser you will see&lt;/p&gt;
&lt;blockquote&gt;Hello from the home controller &amp;amp; testtest&lt;/blockquote&gt;
&lt;p&gt;but if you pass in an html tag with your query string , Rails 3 will automatically 		encode the output &lt;a href="http://localhost:3000/?m=testtest&amp;lt;h2&amp;gt;"&gt;http://localhost:3000/?m=testtest&amp;lt;h2&amp;gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Forms&lt;/h2&gt;
&lt;p&gt;Create a form and post the information to server and back Create a new file called 	new.index.erb under your views/home folder paste the following code ( normal way, 	not rails way! )&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;&amp;lt;form action="/home/create" action="post"&amp;gt;
  &amp;lt;input name="message" /&amp;gt;
  &amp;lt;input type="submit" value="submit" /&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and we need to map this action in our routes file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open up config/routes.rb&lt;/li&gt;
&lt;li&gt;Add the following line under root ( line 51 ) &lt;/li&gt;
&lt;li&gt;
&lt;div class="code"&gt;match "home/new" =&amp;gt; "home#new"&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;means that when you receive a request to home/new call the home controller&amp;rsquo;s new 			action.&lt;/li&gt;
&lt;li&gt;Lets define our action in home_controller.rb
&lt;div class="code"&gt;
&lt;pre&gt;def new
end
				&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;fire up the browser and navigate to http://localhost:3000/home/new &lt;/li&gt;
&lt;li&gt;you should see a simple textbox with a submit button and when you press the button, 				you will get an error says that&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="code"&gt;
&lt;pre&gt;Routing Error
No route matches "/home/create"
&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Routing&lt;/h2&gt;
&lt;p&gt;Rather than mapping all the actions one by one, we may remove ( comment ) the match 		line and active the line 57&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;match ':controller(/:action(/:id(.:format)))'&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;which will do the auto mapping for us. ( sounds familiar with ASP.NET MVC global.asax 		routing definitions ? :)&lt;/p&gt;
&lt;p&gt;We previously define basic html to post our data to the server, but in rails you 	don&amp;rsquo;t need to write that piece of code.&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;&amp;lt;% form_tag ( 'create' ) do %&amp;gt;
	&amp;lt;input name="message" /&amp;gt;
	&amp;lt;input type="submit" value="submit" /&amp;gt;
&amp;lt;% end %&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;navigate to http://localhost:3000/home/new&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;def create
  	@message = params[:message]
  	# new in Rails 3 build in, use notice
	redirect_to "/" , :notice =&amp;gt; @message
  end
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;and refactor index.html.erb into&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;&amp;lt;h1&amp;gt;
	&amp;lt;%=@message%&amp;gt;
&amp;lt;/h1&amp;gt;
&amp;lt;%=notice%&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;as you realized, we did not use the @user_message but use the notice session parameter 		which we set in the create method&lt;/p&gt;
&lt;h2&gt;CRUD&lt;/h2&gt;
&lt;p&gt;So far we went with the basics but the real power of rails starts with database 			operations and how easy to manage, generate and iterate. We start with the rails generator &lt;a href="http://www.viget.com/extend/rails-3-generators-scaffolding/" target="_blank"&gt;Scaffold&lt;/a&gt;&lt;/p&gt;
&lt;div class="code"&gt;rails g scaffold pint name:string price:decimal&lt;/div&gt;
&lt;p&gt;This will tell the rails that, hey rails&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I want have a new model called pint&lt;/li&gt;
&lt;li&gt;Pint will have two fields which are&lt;/li&gt;
&lt;li&gt;Name is a string&lt;/li&gt;
&lt;li&gt;Price is a decimal field&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rails does not like singular form of models ( like pint in this scenario ) Here 			is the output rails 3 generates&lt;/p&gt;
&lt;div class="code"&gt;
&lt;pre&gt;bahadir@ubox:~/RubymineProjects/demo1$ rails g scaffold pint  name:string price:decimal
      invoke  active_record
      create    db/migrate/20110206113538_create_pints.rb
      create    app/models/pint.rb
      invoke    test_unit
      create      test/unit/pint_test.rb
      create      test/fixtures/pints.yml
       route  resources :pints
      invoke  scaffold_controller
      create    app/controllers/pints_controller.rb
      invoke    erb
      create      app/views/pints
      create      app/views/pints/index.html.erb
      create      app/views/pints/edit.html.erb
      create      app/views/pints/show.html.erb
      create      app/views/pints/new.html.erb
      create      app/views/pints/_form.html.erb
      invoke    test_unit
      create      test/functional/pints_controller_test.rb
      invoke    helper
      create      app/helpers/pints_helper.rb
      invoke      test_unit
      create        test/unit/helpers/pints_helper_test.rb
      invoke  stylesheets
      create    public/stylesheets/scaffold.css
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;After that check out the folders in your folder structure. Let&amp;rsquo;s migrate the database 			so that our model is also reflected ( huh did we have already a database setup ? 			:) Well, Sqlite is already in place and rails already made the setup for us.&lt;/p&gt;
&lt;div class="code"&gt;rake db:migrate&lt;/div&gt;
&lt;div class="code"&gt;
&lt;pre&gt;bahadir@ubox:~/RubymineProjects/demo1$ rake db:migrate
(in /home/bahadir/RubymineProjects/demo1)
==  CreatePints: migrating ====================================================
-- create_table(:pints)
   -&amp;gt; 0.0018s
==  CreatePints: migrated (0.0019s) ===========================================
&lt;/pre&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;navigate to http://localhost:3000/pints &lt;/li&gt;
&lt;li&gt;add couple of records now let&amp;rsquo;s do some trick &lt;/li&gt;
&lt;li&gt;Open up pints_controller.rb&lt;/li&gt;
&lt;li&gt;and the following 2 lines
&lt;pre&gt;format.xml  { render :xml =&amp;gt; @pints } after this.
format.json { render :json=&amp;gt;@pints}
format.text { render :text=&amp;gt;@pints}
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;and navigate to &lt;/li&gt;
&lt;li&gt;http://localhost:3000/pints.json or http://localhost:3000/pints.text or http://localhost:3000/pints.xml &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am amazed how easy it is! Hold on a second, we did not setup any routing and application 			responds us. How could it be happen ? Open up routes.rb file Line 2 is added by 			the rails generator&lt;/p&gt;
&lt;div class="code"&gt;resources :pints&lt;/div&gt;
&lt;div&gt;which does the all the routing tricks for us.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=oFF_YIuY4H8:JUtmyM2yJrs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/oFF_YIuY4H8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/oFF_YIuY4H8/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Ruby-on-Rails-Basics-Controllers-and-walk-through.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=d866cb5f-7783-4ab2-960b-f25da78bfca6</guid>
      <pubDate>Sun, 06 Feb 2011 14:17:00 +0100</pubDate>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=d866cb5f-7783-4ab2-960b-f25da78bfca6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=d866cb5f-7783-4ab2-960b-f25da78bfca6</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Ruby-on-Rails-Basics-Controllers-and-walk-through.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=d866cb5f-7783-4ab2-960b-f25da78bfca6</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=d866cb5f-7783-4ab2-960b-f25da78bfca6</feedburner:origLink></item>
    <item>
      <title>Deploy your first Google App Engine Python project</title>
      <description>&lt;p&gt;Todays challenge is setup Python 2.5 in Ubuntu and deploy a sample application to Google App Engine. I chose Python over Java, since I don&amp;rsquo;t know much about Python and Django. Okay, it&amp;rsquo;s time to figure out&lt;/p&gt;
&lt;div&gt;In my setup, I am using Windows 7 and running &lt;a href="http://www.ubuntu.com/desktop/get-ubuntu/download"&gt;Ubuntu 10&lt;/a&gt; in &lt;a href="http://www.virtualbox.org/"&gt;Virtual Box&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Before installing python, lets first install Eclipse and eclipse won't run without Java jre's.&amp;nbsp;First you need to download jre, first we need to add a list of sources to the sources.list file so that we may download the java jre and jdks using sudo apt-get install command. In order to do that&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;go to /etc/apt/ folder&lt;/li&gt;
&lt;li&gt;double click the sources.list&lt;/li&gt;
&lt;li&gt;Go to Other Software tab&lt;/li&gt;
&lt;li&gt;Press Add button at the left bottom of the dialog&lt;/li&gt;
&lt;li&gt;add the following:&amp;nbsp;
&lt;div class="code"&gt;deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;img title="Eclipse Setup Edit Sources" src="http://www.bahadircambel.com/content/appengine/Edit-Sources-List-small.jpg" alt="" /&gt; &lt;img title="Eclipse Setup Edit Sources" src="http://www.bahadircambel.com/content/appengine/Add-DEB-small.jpg" alt="" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;install java in ubuntu&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;open up a terminal client&lt;/li&gt;
&lt;li&gt;run the command&amp;nbsp;
&lt;div class="code"&gt;sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Also a handy link to install Eclipse in Ubuntu&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/EclipseIDE"&gt;https://help.ubuntu.com/community/EclipseIDE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Install google app engine Eclipse extensions&lt;br /&gt;&lt;a href="http://code.google.com/eclipse/docs/install-eclipse-3.6.html"&gt;http://code.google.com/eclipse/docs/install-eclipse-3.6.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Install Pydev - Python development extension for Eclipse&amp;nbsp;&lt;br /&gt;&lt;a href="http://pydev.org/manual_101_install.html"&gt;http://pydev.org/manual_101_install.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Ubuntu 10 comes with python 2.6 but in order to run Google App Engine without any problems when deployed, you need to download and setup Python 2.5 because that is what the App Engine works right now. If you try to install python 2.5 with&amp;nbsp;&lt;br /&gt;
&lt;div class="code"&gt;sudo apt-get install phyton2.5&lt;/div&gt;
&amp;nbsp;you are going to fail my friend.&amp;nbsp;Let&amp;rsquo;s see how we can install python 2.5&lt;br /&gt;&lt;br /&gt;I have found the following web site &lt;a href="http://kovshenin.com/archives/installing-python-2-5-on-ubuntu-linux-10-10/"&gt;http://kovshenin.com/archives/installing-python-2-5-on-ubuntu-linux-10-10/&lt;/a&gt;&lt;br /&gt;which describes the steps to install 2.5&lt;br /&gt;&lt;br /&gt;
&lt;div class="code"&gt;sudo add-apt-repository ppa:fkrull/deadsnakes&lt;/div&gt;
&lt;br /&gt;
&lt;div class="code"&gt;sudo apt-get update&lt;/div&gt;
&lt;br /&gt;
&lt;div class="code"&gt;sudo apt-get install python2.5&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;and if you run the command&lt;br /&gt;
&lt;div class="code"&gt;python2.5&lt;/div&gt;
&lt;br /&gt;you will see an output like this; &lt;br /&gt;Python 2.5.5 (r255:77872, Sep 14 2010, 15:51:01)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Setting up interpreter in Eclipse&lt;br /&gt;&lt;a href="http://pydev.org/manual_101_interpreter.html"&gt;http://pydev.org/manual_101_interpreter.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download Google App Engine Pyhton SDK&lt;br /&gt;&lt;a href="http://code.google.com/appengine/downloads.html"&gt;http://code.google.com/appengine/downloads.html&lt;/a&gt; and extract it to a folder ; e.g /home/bahadir/AppEngine/&lt;br /&gt;&lt;br /&gt;Create a new Google App Engine Project  &lt;img src="http://www.bahadircambel.com/content/appengine/Pydev-Android-Project-small.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt; &lt;span&gt;Select the location of the Google App Engine Python SDK&lt;/span&gt; &lt;img src="http://www.bahadircambel.com/content/appengine/Google-App-Engine-Configuration-small.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;img title="PyDev Project Settings" src="http://www.bahadircambel.com/content/appengine/PyDev-Project-Settings-Small.jpg" alt="" /&gt;&lt;br /&gt;&lt;img title="Google App Engine Eclipse project template PyDev" src="http://www.bahadircambel.com/content/appengine/Select-Project-Template-Small.jpg" alt="" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt; After your first test project created, you can click the Google App Engine deploy button. I guess, I don&amp;rsquo;t have the deploy settings for python, I got an error, &amp;ldquo;this is not a google app engine project&amp;rdquo;.   &lt;img title=" Google App Engine Eclipse deploy fail" src="http://www.bahadircambel.com/content/appengine/GoogleAppEngineDeploy-small.jpg" alt="" /&gt; Thus, I go back to basics, fire up the terminal.&lt;br /&gt;&lt;br /&gt;To run your project locally, you may use the development server for app engine which is found in the Google App Engine SDK. The parameter is the location of your application which app.yaml is located.&lt;br /&gt;&lt;br /&gt;
&lt;div class="code"&gt;./dev_appserver.py /home/bahadir/workspace/guesswhat/src/&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt; In order to upload your application to google engine use the following command&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class="code"&gt;&lt;br /&gt;./appcfg.py --application=cambelb --email=me@bahadircambel.com update /home/bahadir/workspace/guesswhat/src/&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;-- application is the name of the application id you set in your google app engine&lt;/li&gt;
&lt;li&gt;-- email is your login email&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;At the initial run of the appcfg script, you may be prompt to enter your password information, if your email is not already authenticated.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;Here is the output&lt;/div&gt;
&lt;div&gt;
&lt;ul class="no-margin code"&gt;
&lt;li&gt;./appcfg.py:42: DeprecationWarning: the sha module is deprecated; use the hashlib module instead   os.path.join(DIR_PATH, 'lib', 'django'), /home/bahadir/AppEngine/google_appengine/google/appengine/tools/dev_appserver_login.py:33: DeprecationWarning: the md5 module is deprecated; use hashlib instead&lt;/li&gt;
&lt;li&gt; import md5&lt;/li&gt;
&lt;li&gt;Application: cambelb (was: wishiremember); version: 1.&lt;/li&gt;
&lt;li&gt;Server: appengine.google.com.&lt;/li&gt;
&lt;li&gt;Scanning files on local disk.&lt;/li&gt;
&lt;li&gt;Initiating update.&lt;/li&gt;
&lt;li&gt;Cloning 2 application files.&lt;/li&gt;
&lt;li&gt;Uploading 2 files and blobs.&lt;/li&gt;
&lt;li&gt;Uploaded 2 files and blobs&lt;/li&gt;
&lt;li&gt;Precompilation starting.&lt;/li&gt;
&lt;li&gt;Precompilation completed.&lt;/li&gt;
&lt;li&gt;Deploying new version.&lt;/li&gt;
&lt;li&gt;Checking if new version is ready to serve.&lt;/li&gt;
&lt;li&gt;Will check again in 1 seconds.&lt;/li&gt;
&lt;li&gt;Checking if new version is ready to serve.&lt;/li&gt;
&lt;li&gt;Will check again in 2 seconds.&lt;/li&gt;
&lt;li&gt;Checking if new version is ready to serve.&lt;/li&gt;
&lt;li&gt;Closing update: new version is ready to start serving.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;Now you can navigate to your application:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;a title="http://cambelb.appspot.com" href="http://cambelb.appspot.com" target="_blank"&gt;http://cambelb.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I use my gmail account, I had some trouble to upload my application to the Google App Engine. I decided to switch to my domain and use that account ( &lt;a href="http://bahadircambel.com/"&gt;bahadircambel.com&lt;/a&gt; ) and worked!&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sign up to Google App engine : &lt;a href="http://code.google.com/appengine/" target="_blank"&gt; code.google.com/appengine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;App Engine Uploading project: &lt;a href="http://code.google.com/appengine/docs/python/tools/uploadinganapp.html" target="_blank"&gt;http://code.google.com/appengine/docs/python/tools/uploadinganapp.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;App Engine SDK Downloads: &lt;a href="http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Python" target="_blank"&gt;http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=s6k0VqtVJHk:SmTrkydwbPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/s6k0VqtVJHk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/s6k0VqtVJHk/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Deploy-your-first-Google-App-Engine-Python-project.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=639fd4d5-6a3e-4f84-b704-0369d44a0ce3</guid>
      <pubDate>Sat, 05 Feb 2011 17:10:00 +0100</pubDate>
      <category>Google App Engine</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=639fd4d5-6a3e-4f84-b704-0369d44a0ce3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=639fd4d5-6a3e-4f84-b704-0369d44a0ce3</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Deploy-your-first-Google-App-Engine-Python-project.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=639fd4d5-6a3e-4f84-b704-0369d44a0ce3</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=639fd4d5-6a3e-4f84-b704-0369d44a0ce3</feedburner:origLink></item>
    <item>
      <title>Building your first Android App - Part I</title>
      <description>&lt;p&gt;This is a guide to install the Android SDK, create a new Emulator and run your first application using Eclipse and Android SDK.&lt;/p&gt;
&lt;p&gt;Go to&amp;nbsp;&lt;a href="http://developer.android.com/sdk/index.html"&gt;http://developer.android.com/sdk/index.html&lt;/a&gt;&amp;nbsp;and download the appropriate file&lt;/p&gt;
&lt;p&gt;The tutorial at the google site is great,&amp;nbsp;&lt;a href="http://developer.android.com/sdk/installing.html"&gt;http://developer.android.com/sdk/installing.html&lt;/a&gt;&amp;nbsp;and make sure not to forget the Eclipse ADT ( Android Development tools ) &amp;nbsp;plugins&lt;/p&gt;
&lt;p&gt;Once you install the Android SDK and the Eclipse Android platforms create a new virtual device&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press Add at the right hand side&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Android SDK Manager" src="http://www.bahadircambel.com/content/android/AndroidSDKManager.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Fill the new virtual device properties&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give a name to your device&lt;/li&gt;
&lt;li&gt;Choose the build target ( Android 2.2 )&lt;/li&gt;
&lt;li&gt;Locale 200MB of SD storage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="New Android Virtual Device" src="http://www.bahadircambel.com/content/android/CreateNewDevice.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;First thing first, once you open up the Eclipse&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to Window\Preferences Make sure SDK location is filled in&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;img title="Eclipse Preferences" src="http://www.bahadircambel.com/content/android/Preferences.jpg" alt="" /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to File\New\Project&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;img title="New Android Project" src="http://www.bahadircambel.com/content/android/NewProject.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Select the Android Project from the Android Folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;img title="New Android Project Wizard" src="http://www.bahadircambel.com/content/android/NewProjectWizard.jpg" alt="" /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write down your project name&lt;/li&gt;
&lt;li&gt;Select the Build Target ( If you don't see any build targets, your Android SDK location has not been set correctly or you dind not installed the Android SDK. )&lt;/li&gt;
&lt;li&gt;Fill in the Application Name&lt;/li&gt;
&lt;li&gt;Fill in the Package Name ( in .NET Package names are namespaces, and in Java world the general convension is &amp;lt;com&amp;gt;.&amp;lt;companyName&amp;gt;.&amp;lt;project&amp;gt; like com.microsoft.mvc )&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Write a simple Activity Name ( which will be the entry point of the application and will create a java file under the src folder, and this is a must so that Java Android project will start)&lt;/li&gt;
&lt;li&gt;Min SDK version as 8 ( Does not matter at this point )&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;img title="New Android Project" src="http://www.bahadircambel.com/content/android/NewAndroidProject.jpg" alt="" /&gt;&lt;/div&gt;
&lt;p&gt;Once your project is created,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Double click res\layout\main.xml in your Package Explorer (This is where you are going to design your application )&lt;/li&gt;
&lt;li&gt;This will open up the design surface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;img title="Android Layout Main.xml Design Surface" src="http://www.bahadircambel.com/content/android/Main.xml.jpg" alt="" /&gt;&lt;/div&gt;
&lt;p&gt;If you want to change the text that will be displayed&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open res\values\strings.xml&lt;/li&gt;
&lt;li&gt;Modify the Value field ( Not the name ) &amp;nbsp;in&lt;span style="font-weight:bold"&gt;&amp;nbsp;Attributes for hello ( String ) area on the right hand side of the &lt;span style="font-weight:bold"&gt;Resources Elements&lt;/span&gt; area. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;img title="Android Strings xml file" src="http://www.bahadircambel.com/content/android/Strings.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Okay, lets run the Android project.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Open up the src/Main.java file&lt;/li&gt;
&lt;li&gt;Click Run&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;This is the mistake that I make in the first run. I have tried to run the project when the xml files are open which is a mistake. If the Eclipse Console gives the following error&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="color:Red"&gt;[2011-02-01 20:33:04 - GuessWhat_Hello] Error in an XML file: aborting build.&lt;/div&gt;
&lt;div style="color:Red"&gt;[2011-02-01 20:33:05 - GuessWhat_Hello] res\layout\main.xml:0: error: Resource entry main is already defined.&lt;/div&gt;
&lt;div style="color:Red"&gt;[2011-02-01 20:33:05 - GuessWhat_Hello] res\layout\main.out.xml:0: Originally defined here.&lt;/div&gt;
&lt;div style="color:Red"&gt;[2011-02-01 20:33:05 - GuessWhat_Hello] C:\java\work\GuessWhat_Hello\res\layout\main.out.xml:1: error: Error parsing XML: no element found&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Which means you are trying to run by the xml file which creates a copy of the xml files as you see in the third line which causes the compiler and Eclipse to stop.&lt;/div&gt;
&lt;div style="color:Red;font-size:16px;"&gt;Please Close all the Xml files or make sure you click the Run when the Main activity or Src\Main.java is open&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Once the Run failed&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Go to project menu&lt;/li&gt;
&lt;li&gt;Click Clean&lt;/li&gt;
&lt;li&gt;Delete the&amp;nbsp;main.out.xml file from the disc&lt;/li&gt;
&lt;li&gt;Then open up the src/Main.java ( Make sure the Tab is active )&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;img title="Run Android project" src="http://www.bahadircambel.com/content/android/Run.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;You may encounter the following screen on the first run&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Select the Android Application in the Run As dialog.&lt;/li&gt;
&lt;/ul&gt;
&lt;img title="Android Application Run As dialog" src="http://www.bahadircambel.com/content/android/RunAs.jpg" alt="" /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p&gt;and Eclipse Console will output black colored.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At the first time, Android Simulator takes couple of minutes to load. Here is a sample Console output ( Note that I have this tutorial in my Xeon Box with 6 Gig, it might take longer in your case )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] ------------------------------&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] Android Launch!&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] adb is running normally.&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] Performing com.guesswhat.first.Main activity launch&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] Automatic Target Mode: Preferred AVD 'Default' is not available. Launching new emulator.&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:57 - GuessWhat_Hello] Launching a new emulator with Virtual Device 'Default'&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:59 - GuessWhat_Hello] New emulator found: emulator-5554&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:38:59 - GuessWhat_Hello] Waiting for HOME ('android.process.acore') to be launched...&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:39:37 - GuessWhat_Hello] HOME is up on device 'emulator-5554'&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:39:37 - GuessWhat_Hello] Uploading GuessWhat_Hello.apk onto device 'emulator-5554'&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:39:37 - GuessWhat_Hello] Installing GuessWhat_Hello.apk...&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:40:01 - GuessWhat_Hello] Success!&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:40:01 - GuessWhat_Hello] Starting activity com.guesswhat.first.Main on device emulator-5554&lt;/p&gt;
&lt;p&gt;[2011-02-01 20:40:04 - GuessWhat_Hello] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.guesswhat.first/.Main }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=tZf9S3l7TN4:LNv7J66WoaE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/tZf9S3l7TN4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/tZf9S3l7TN4/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Building-your-first-Android-App.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=6b838ea8-2193-4bc3-86b4-661cf0d28b80</guid>
      <pubDate>Tue, 01 Feb 2011 22:00:00 +0100</pubDate>
      <category>Android</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=6b838ea8-2193-4bc3-86b4-661cf0d28b80</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=6b838ea8-2193-4bc3-86b4-661cf0d28b80</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Building-your-first-Android-App.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=6b838ea8-2193-4bc3-86b4-661cf0d28b80</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=6b838ea8-2193-4bc3-86b4-661cf0d28b80</feedburner:origLink></item>
    <item>
      <title>Personal development plan</title>
      <description>&lt;p&gt;I would like try more things in the development space and here is my resolution that what I am going to do this year..&lt;/p&gt;
&lt;p&gt;Here is my resolution;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learn phyton and deploy an application using &lt;strong&gt;Google App Engine&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Write basic &lt;strong&gt;Ruby &lt;/strong&gt;with &lt;strong&gt;Rails &lt;/strong&gt;or &lt;strong&gt;Sinatra &lt;/strong&gt;and deploy using &lt;strong&gt;Heroku&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Write an &lt;strong&gt;Android &lt;/strong&gt;app for my lovely &lt;strong&gt;Galaxy Tab&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Get more experience with MongoDB&lt;/li&gt;
&lt;li&gt;Use sharding in &lt;strong&gt;MongoDB &lt;/strong&gt;and deploy apps to &lt;strong&gt;Amazon EC2&lt;/strong&gt; ( I need to get 2 more servers )&lt;/li&gt;
&lt;li&gt;and buy a MACbook, get a new Vodafone contract with &lt;strong&gt;iPhone &lt;/strong&gt;and implement same &lt;strong&gt;Android &lt;/strong&gt;app in iPhone with &lt;strong&gt;Objective-C&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Write more code with &lt;strong&gt;MVC3 Razor&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Connect all these together with a Social media app.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;GIT &lt;/strong&gt;more&lt;/li&gt;
&lt;li&gt;Write a &lt;strong&gt;Facebook &lt;/strong&gt;app&lt;/li&gt;
&lt;li&gt;Learn &lt;strong&gt;Dutch&amp;nbsp;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Although the list seems to be long and requires quite extra effort for all different technologies platform, I think this is an essential learning requirement and it's fun! I believe the list is also a very good investment and it will have a nice ROI.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=FQibMdrEY0g:NIr3Fryr0tE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/FQibMdrEY0g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/FQibMdrEY0g/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Personal-development-plan.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=1bee0c8b-216d-414d-83e8-1d490a82b596</guid>
      <pubDate>Mon, 31 Jan 2011 22:17:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=1bee0c8b-216d-414d-83e8-1d490a82b596</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=1bee0c8b-216d-414d-83e8-1d490a82b596</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Personal-development-plan.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=1bee0c8b-216d-414d-83e8-1d490a82b596</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=1bee0c8b-216d-414d-83e8-1d490a82b596</feedburner:origLink></item>
    <item>
      <title>MongoDB - how to install as a windows service - how to backup-export-dump - how to store-import</title>
      <description>&lt;p style="color:red;background-color:#EEE;border:1px solid #999;margin:5px;padding:8px;font-size:16px;"&gt;The following instructions assumes that you are using windows and command prompt&lt;/p&gt;
&lt;p&gt;&lt;img style="background-color:black;padding:10px;margin:10px;float:left" title="mongodb" src="http://www.10gen.com/static/images/mongodb.png" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;How to install MongoDB as a service ?&amp;nbsp;&lt;/h2&gt;
&lt;div&gt;Navigate to MongoDB bin folder&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;If your mongodb placed under C:\mongodb,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;ol&gt;
&lt;li&gt;Create a logs folder&lt;/li&gt;
&lt;li&gt;Create a file name log.txt &lt;strong&gt;manually&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Fire up command prompt and navigate to C:\mongodb\bin where all the mongodb executables and tools are placed&lt;/li&gt;
&lt;li&gt;Place the following command which will create a data folder under mongodb folder
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;.\mongod.exe --dbpath C:\mongodb\data --logpath C:\mongodb\logs\log.txt --install&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt; Once you see the log message saying that MongoDb is successfully created, run the following command to start the windows service
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;net start "MongoDB"&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt; Go to Administrative Tools\Services and check the status of the MongoDB service saying "Started" &lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;How to backup MongoDB ?&lt;/h2&gt;
&lt;p&gt;The output of the backup/dump will be in BSON representation which is the MongoDB data format Binary JSON. MongoDB uses the tool mongodump to get the dump of the databases/collections. Once you run the following scripts, MongoDB will create dump folder and create separate folders for each database&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fire up command prompt&lt;/li&gt;
&lt;li&gt;Navigate to mongodb bin folder ( C:\mongodb\bin )&lt;/li&gt;
&lt;li&gt;To get a dump of all databases
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;.\mongodump&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;To get a dump of a single database including all the collections ( db name is ecommerce )
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;.\mongodump --db ecommerce&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;To get a dump of a single collection in a database ( db name is ecommerce , collection(table) name is orders )
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;.\mongodump --db ecommerce --collection orders&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;How to restore database or collection&lt;/h2&gt;
&lt;p&gt;To restore a database or collection, think the other way around. You need to do exactly in reverse order to restore the database. Place your exported/dumped files to the desired server and use the mongostore tool.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to mongodb bin folder&lt;/li&gt;
&lt;li&gt;Place the dump file to bin folder&lt;/li&gt;
&lt;li&gt;Run the command&amp;nbsp;
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;.\mongorestore --db ecommerce --dbpath ecommerce&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;To check if the restore is successful &lt;/li&gt;
&lt;li&gt;Go to your bin folder in command prompt&lt;/li&gt;
&lt;li&gt;
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;./mongo.exe ecommerce&lt;/div&gt;
&lt;/li&gt;
&lt;p&gt;Which will fire up the Mongo shell, connect to the ecommerce database. In order to see the possible commands&amp;nbsp;type help for list of operations ( optional )&amp;nbsp;&lt;/p&gt;
&lt;li&gt;
&lt;div style="font-size:14px;margin:5px;padding:5px;background-color:#EEE;border-left:2px solid #666"&gt;show collections&lt;/div&gt;
&lt;/li&gt;
&lt;p&gt;will list you all the collections in your ecommerce database&lt;/p&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And that is it ! After dealing with SQL Server and all different kind of database, I can clearly see how easy is MongoDB, administration, operations, everything is trivial. This is what I call success in simplicity ( or hiding all the complexity behind the scenes ). Thanks MongoDB and 10Gen&lt;/p&gt;
&lt;p&gt;For a more detailed description and reference look at the &lt;a href="http://www.mongodb.org/display/DOCS/Import+Export+Tools" target="_blank"&gt;mongodb documentation&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=tWKbqRf8NX8:QW5xrDtWzv8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/tWKbqRf8NX8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/tWKbqRf8NX8/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/MongoDB-how-to-install-as-a-windows-service-how-to-backup.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=fea9280f-61f6-4875-a9b2-a72d81a5dab6</guid>
      <pubDate>Sat, 29 Jan 2011 02:00:00 +0100</pubDate>
      <category>MongoDb</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=fea9280f-61f6-4875-a9b2-a72d81a5dab6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=fea9280f-61f6-4875-a9b2-a72d81a5dab6</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/MongoDB-how-to-install-as-a-windows-service-how-to-backup.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=fea9280f-61f6-4875-a9b2-a72d81a5dab6</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=fea9280f-61f6-4875-a9b2-a72d81a5dab6</feedburner:origLink></item>
    <item>
      <title>Part 1 - The social experience: Why companies should adopt to social media platforms?</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="width: 128px; height: 93px; float: left; margin-right: 10px;" src="http://www.bahadircambel.com/image.axd?picture=2011%2f1%2fsocialize_preview.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I don't watch the news, I don't watch any sport games, almost I don't watch anything on TV. My whole information source is internet, if I hear something really important I fire up my favorite browser and look at one of the famous global news site. I literally remove all the existing media from my life and I am quite happy with it, and you might be doing the same already.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Why ? TV is one way. You cannot select what you want to watch if only zapping through different channels, while on internet you can choose whatever you want to with lots of opinions as well. TV channels are dead ( Where Google TV will tune in )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Facebook has half a billion users, Twitter 100 millions, Google who knows how many people uses ( A billion ? )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here are some stats ;&amp;nbsp;&lt;/p&gt;
&lt;table border="0" align="center"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th colspan="7" align="center"&gt;
&lt;p&gt;&lt;span style="color: #000099; font-size: xx-small;"&gt;&lt;strong&gt;WORLD INTERNET USAGE AND POPULATION STATISTICS&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th width="165"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;World Regions&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/th&gt;
&lt;td width="100"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;Population&lt;br /&gt; ( 2010 Est.)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;Internet Users&lt;br /&gt; Dec. 31, 2000&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #ff0000;"&gt;&lt;strong&gt;Internet Users&lt;br /&gt; Latest Data&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;Penetration&lt;br /&gt; (% Population)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;Growth&lt;br /&gt; 2000-2010&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75"&gt;
&lt;p align="center"&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;Users %&lt;br /&gt; of Table&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#FFFFFF"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats1.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Africa&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;1,013,779,050&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;4,514,400&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;110,931,700&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;10.9 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;2,357.3 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;5.6 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#F1F1F1"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats3.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Asia&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;3,834,792,852&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;114,304,000&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;825,094,396&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;21.5 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;621.8 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;42.0 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#FFFFFF"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats4.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Europe&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;813,319,511&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;105,096,093&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;475,069,448&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;58.4 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;352.0 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;24.2 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#F1F1F1"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats5.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Middle East&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;212,336,924&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;3,284,800&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;63,240,946&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;29.8 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;1,825.3 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;3.2 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#FFFFFF"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats14.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;North America&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;344,124,450&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;108,096,800&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;266,224,500&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;77.4 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;146.3 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;13.5 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#F1F1F1"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats10.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Latin America/Caribbean&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;592,556,972&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;18,068,919&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;204,689,836&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;34.5 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;1,032.8 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;10.4 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#FFFFFF"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;a href="http://www.internetworldstats.com/stats6.htm" target="_blank"&gt;&lt;span style="font-family: Arial;"&gt;&lt;strong&gt;Oceania / Australia&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;34,700,201&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;7,620,480&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;21,263,990&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;61.3 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;179.0 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;1.1 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#CCCCCC"&gt;
&lt;td height="10"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #ff0000;"&gt;&lt;strong&gt;WORLD TOTAL&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;6,845,609,960&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;360,985,492&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;1,966,514,816&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="100" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;&lt;strong&gt;28.7 %&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;444.8 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="75" height="10" align="right"&gt;
&lt;p&gt;&lt;span style="font-family: Arial; color: #0000cc;"&gt;100.0 %&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor="#FFFFFF"&gt;
&lt;td colspan="7" align="center" valign="top"&gt;
&lt;p align="left"&gt;&lt;span style="font-family: Arial; color: #000099;"&gt;NOTES: (1) Internet Usage and World Population Statistics are for June 30, 2010. (2) CLICK on each world region name for detailed regional usage information. &lt;/span&gt;&lt;span style="font-family: Arial; color: #000099;"&gt;Copyright &amp;copy; 2000 - 2010, Miniwatts Marketing Group. All rights reserved worldwide.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Frankly, the growth rate of internet and the time it takes in our life is skyrocketing each year. 2 billion internet users, and within the next 10 years who is what will the numbers be. I can easily say that we are going to depend on internet and social media platforms to share our experience in this life.&lt;/p&gt;
&lt;p&gt;Lets look at the situation of todays enterprises.&lt;/p&gt;
&lt;p&gt;United Airlines has shaken by a single artist (&amp;nbsp;&lt;span style="font-family: Arial, Verdana, sans-serif; font-size: 11px; color: #444444; line-height: 16px; "&gt;Dave Carrol )&amp;nbsp;&lt;/span&gt;, whose guitar was damaged during the flight. He made a song about the airline ( United breaks guitar ) and the damage he did by himself is astonishing. 10 Millions views so far.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=5YGc4zOqozo"&gt;http://www.youtube.com/watch?v=5YGc4zOqozo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the whole story:&amp;nbsp;&lt;a href="http://travel.latimes.com/daily-deal-blog/index.php/smashed-guitar-youtu-4850/"&gt;http://travel.latimes.com/daily-deal-blog/index.php/smashed-guitar-youtu-4850/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the wikipedia page :&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/United_Breaks_Guitars"&gt;http://en.wikipedia.org/wiki/United_Breaks_Guitars&lt;/a&gt;&amp;nbsp;:)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:bold;font-size:16px;"&gt;Lesson 1: Don't piss off the customers in internet age or be ready to pay back with millions of dollars&lt;/span&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=pmM2xxJ-en4:xm-jeJ2UGJQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/pmM2xxJ-en4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/pmM2xxJ-en4/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/The-social-experience-Why-companies-should-adopt-to-social-media-platforms.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=ea652ee3-8fb0-47fb-8fc3-e91442393a21</guid>
      <pubDate>Thu, 27 Jan 2011 12:00:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=ea652ee3-8fb0-47fb-8fc3-e91442393a21</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=ea652ee3-8fb0-47fb-8fc3-e91442393a21</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/The-social-experience-Why-companies-should-adopt-to-social-media-platforms.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=ea652ee3-8fb0-47fb-8fc3-e91442393a21</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=ea652ee3-8fb0-47fb-8fc3-e91442393a21</feedburner:origLink></item>
    <item>
      <title>Why developers should broaden their knowledge through different platform/technologies</title>
      <description>&lt;p&gt;I started my career as a C# &amp;amp; ASP.NET developer. I was quite happy with what I can achieve till the moment I got hit in the head. During that time I was assigned to a Dutch company ( &lt;a href="http://www.novulo.com" target="_blank"&gt;Novulo &lt;/a&gt;) to do some PHP development. At the first, I was pretty much&amp;nbsp;reluctant to change the language, but I did not have that much a chance to switch and I knew the company was going to migrate their framework and tools into .NET.&lt;/p&gt;
&lt;p&gt;One day, I was writing some code for a company and I needed to do some basic front end code to post some data to the server. I put my form and input elements in place and write the code in server side, everything was in place and boom it did not work. I double check everything, form, input elements names was matching in the server side, and the damn thing was not working. After lots of frustration and spending around 2 hours of back and forth, I started googling to find out the problem.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It turns out that I needed to put ID and Name attributes in place to post it back to the server. I was cursing php really hard why the heck I needed that. Well, you can be laughing my ignorance, but that was me&amp;nbsp;staring at the&amp;nbsp;computer screen blankly. How stupid could I be that I did not know that. After some time, I remember the situation and realized one thing. ASP.NET did that to me. I have never really really needed to use the basic principles of HTTP Form posting mechanism. Thanks, ASP.NET , you really saved a lot of time by letting me not to acquire those basic skills that is necessary to get the job done.&lt;/p&gt;
&lt;p&gt;Of course this is not the ASP.NET's problem at all. The root cause of the problem was my attitude against the technology and the platform. I was single minded single threaded, to do some work. Work that requires lots of extra miles to learn stuff every day.&lt;/p&gt;
&lt;p&gt;During that time as well, my javascript was not sharp enough, and the job at that time was requiring some client side code, which I really enjoyed it, and let me extend my skills, and you know what, the more I write, the more I enjoyed it. It is simple, there was no editor, just plain old Notepad++ to write the code. Learning javascript made me understand more new C# basic functional programming stuff, delegates, anonymous functions, lambda expressions etc..&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Writing PHP felt like, building an apartment with bare hands, but it also made me realize how fragile the code was because there was no compiler, plus if you keep on making mistakes, it will cost more time to realize because of the testing cycle. Thus, READ the code was the most important thing! Lessons learnt!&lt;/p&gt;
&lt;p&gt;As of today, I am trying to broaden my knowledge through different platform and technologies. Right now, Android and Ruby on Rails are on my plate. I have been writing some small Java code as well which force me to learn Eclipse IDE.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The more I explore, the more I feel good, and learning new stuff is always fun ( or it is always fun because you think it is )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don't have desire to be an expert on any topic at all, but sailing on the different oceans let you realize more technologies, and you can better see the bigger picture and that is a very big advantage in today's technology's pace.&lt;/p&gt;
&lt;p&gt;Open up your mind and vision, it will pay you back nicely.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=HnkLj2ozHkI:8iWr2XS3Hn0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/HnkLj2ozHkI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/HnkLj2ozHkI/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Why-developers-should-broaden-their-knowledge-through-different-platform-technologies.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=1b7db72b-5d0f-4d2f-99b3-2d816b5b6618</guid>
      <pubDate>Wed, 12 Jan 2011 00:53:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=1b7db72b-5d0f-4d2f-99b3-2d816b5b6618</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=1b7db72b-5d0f-4d2f-99b3-2d816b5b6618</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Why-developers-should-broaden-their-knowledge-through-different-platform-technologies.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=1b7db72b-5d0f-4d2f-99b3-2d816b5b6618</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=1b7db72b-5d0f-4d2f-99b3-2d816b5b6618</feedburner:origLink></item>
    <item>
      <title>30 days free trial</title>
      <description>&lt;p&gt;Most SaaS companies offer 30 days of trial period. I am wondering why 30 days ?&lt;/p&gt;
&lt;p&gt;First of all, to make it clear, I don't want to give my credit card to try a product and I don't see the point why to ask for a credit card. The only thing that makes easy if you decide to buy the product at the end of the trial by simply pressing the buy button without any credit card info. It prevents lots of customers to use your product, try your product or tell their friends how great the product is. I could not use Amazon EC, because I did not have any credit card available at the time. But Amazon was in advantage than the rest, because they are big and famous. They might have a couple of logical reasons not to waste resources but if you are doing a project management application, that might be the worst idea to ask for credit card information.&lt;/p&gt;
&lt;p&gt;If your product takes 30 days of trial to explore, your product sucks. Normally, it takes around 10-20 minutes to figure out what the product is actually doing. You might navigate all the screens, and find out how the application workflow. Here are the crucial things that I will look for in a SaaS offering;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is it easy to use ? Do I need to hassle all the time, or does the company realized the importance of simplicity ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Does this product have the functionality that I am willing to use everyday in my work/life ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Does this product have acceptable response time ?&amp;nbsp;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;What are the missing functionalities that I must/could have ?&lt;/li&gt;
&lt;li&gt;Who else is using this product ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What is the company all about ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Are they nice people ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Are they writing what they think of in their blogs ?&lt;/li&gt;
&lt;li&gt;What is the product's roadmap ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Are they going to survive through competition ?&lt;/li&gt;
&lt;li&gt;What is offered in the product worth the price ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What value does this product offer ? ( Value - Price )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are my thoughts when I try to rationalize the buying decision. I don't think any of the above items related to 30 days of usage. For a team setup, all the team members might give it a try in a 30 day period.&lt;/p&gt;
&lt;p&gt;So here is my hypothesis;&lt;/p&gt;
&lt;p&gt;If a single user is going to use the product give him a 2 day offering and let him extend the period 30-60 days with a frequency of 2 days. Thus, every two days he needs to make the decision to extend the trial period or not. The more he says "yes", more it likely he will buy the product. Than multiple the frequency with the number of users.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Let the user say yes or no more frequently, the more he says "yes", more likely he will buy the product&lt;/li&gt;
&lt;li&gt;Focus on 2 days of sale per customer, engage with the customer, listen, get in touch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Cons&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You might irritate the customer&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Most companies use 30 days period, and saying 2 days of free trial sounds weird&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;It is really important to focus these 2 days. It is a big constraint for sales but I think it is worth it and the nice thing is you can easily extend the trial period. The usage of the application could be analyzed and evaluated.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;How can I focus on my sales operation so that my sales frequency gets shorter ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What improvements can I make on the system ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;How can I tell to the customer that my product is good and worth the price within 2 days ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What analytical information can I extract out of the usage ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;May I offer some discount on the price ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What is the thing that forces my customer to extend his trial period ? Price, usability, value, performance, popularity ?&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=ySFKxrqNZ5k:lvXbGKT5_ZI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/ySFKxrqNZ5k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/ySFKxrqNZ5k/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/30-days-free-trial.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=4e01bf8a-a28c-483f-9bc4-b28f1a88f427</guid>
      <pubDate>Sat, 08 Jan 2011 02:46:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=4e01bf8a-a28c-483f-9bc4-b28f1a88f427</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=4e01bf8a-a28c-483f-9bc4-b28f1a88f427</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/30-days-free-trial.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=4e01bf8a-a28c-483f-9bc4-b28f1a88f427</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=4e01bf8a-a28c-483f-9bc4-b28f1a88f427</feedburner:origLink></item>
    <item>
      <title>Khanacademy - How one man can make a huge step</title>
      <description>&lt;p&gt;See what you can learn. Great inspiration and vision. Go check it out, and tell your friends. Topics covered math, science, history, finance. One guy, 1600+ videos, amazing!&amp;nbsp;&lt;a href="http://www.khanacademy.org/"&gt;http://www.khanacademy.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before leaving his daily job as an hedge fund analyst, he started helping out his cousin which ended up as this project. His project covered in CNN and got lots of media coverage as well. Bill Gates was even giving him as example that how Internet is a great place to learn stuff.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It is a not-for-profit company and Salman only operates his business by donations.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=WgN4fHPgoJc:tmvghh-iSR8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/WgN4fHPgoJc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/WgN4fHPgoJc/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Khanacademy-How-one-man-can-make-a-huge-step.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=338a1a37-b60d-43ff-847f-2628aa490946</guid>
      <pubDate>Fri, 07 Jan 2011 23:48:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=338a1a37-b60d-43ff-847f-2628aa490946</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=338a1a37-b60d-43ff-847f-2628aa490946</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Khanacademy-How-one-man-can-make-a-huge-step.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=338a1a37-b60d-43ff-847f-2628aa490946</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=338a1a37-b60d-43ff-847f-2628aa490946</feedburner:origLink></item>
    <item>
      <title>Birthday wish in the stores</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have a pile of books that is waiting in the wish list of mine. I am wondering why for example&amp;nbsp;&lt;a title="bol.com" href="http://www.bol.com" target="_blank"&gt;http://www.bol.com&lt;/a&gt;&amp;nbsp;does not implement a functionality to let your friends buy the books that you wish for on your birthday.&lt;/p&gt;
&lt;p&gt;I will definitely refer the list to my friends ( on Facebook 600+ people ) which means lots of people will visit the website and browse through the pages and who knows some of them might order different books or electronics for themselves as well.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=uHHatYNGfys:I4Z_fhb377M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/uHHatYNGfys" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/uHHatYNGfys/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Birthday-wish-in-the-stores.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=bd851eef-c30c-4f02-8d4f-9fcea9f5559c</guid>
      <pubDate>Fri, 07 Jan 2011 14:00:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=bd851eef-c30c-4f02-8d4f-9fcea9f5559c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=bd851eef-c30c-4f02-8d4f-9fcea9f5559c</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Birthday-wish-in-the-stores.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=bd851eef-c30c-4f02-8d4f-9fcea9f5559c</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=bd851eef-c30c-4f02-8d4f-9fcea9f5559c</feedburner:origLink></item>
    <item>
      <title>Customer Development</title>
      <description>&lt;p&gt;You might be wondering if somebody is developing an application to simulate customers. Simply no!&lt;/p&gt;
&lt;p&gt;All these years, it is all about the product. When it comes to the product development some questions come to mind;&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;How should be develop the applications ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Should we use agile techniques or waterfall ?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Just code it&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;If you give a second to yourself and think about the end result, how is going to buy your product ? What is all the effort for ?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Oh, yes, the effort is for a customer or the customer, who is the actor playing the stakeholder role in software development ( aka Bruce Willis )&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;As a customer, I would like to write my email address and press ok button to login to website&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Great here is a functionality, we just spend $1000 for a virtual buyer.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;The point is do we really know who is "the customer". Did we ask him what he really wants ? How many "the customer" we have ? How frequently they use the application.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;In a startup scenario, you start with an idea or a problem. You define the problem, solution, stakeholders, etc.. Find your ultimate co-founder, talk about how great the architecture be, and discuss horizontal scaling vs vertical scaling. Learn how to make a great pitch with Guy Kawasaki's 10/20/30 rule. Put a deadline and codeeeeee. Day and night with that dark screens with fancy colors, write more till you feel asleep onto your keyboard and wake up write more and more and more. Okay, you got the idea.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;There is one tiny problem with this ultimate killer startup scenario which is ; do really somebody willing to pay to the problem you are just solving and spending tons of VC backed money ?&amp;nbsp;&lt;/div&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=lUMKF-DfDfA:fpRM1fZbxiw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/lUMKF-DfDfA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/lUMKF-DfDfA/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Customer-Development.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=6c08dce7-778b-4084-ad1d-7a433ec43239</guid>
      <pubDate>Thu, 06 Jan 2011 22:00:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=6c08dce7-778b-4084-ad1d-7a433ec43239</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=6c08dce7-778b-4084-ad1d-7a433ec43239</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Customer-Development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=6c08dce7-778b-4084-ad1d-7a433ec43239</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=6c08dce7-778b-4084-ad1d-7a433ec43239</feedburner:origLink></item>
    <item>
      <title>Back again</title>
      <description>&lt;p&gt;It has been a while since I did not write any blog posts. Couple of days ago, I dumped my old server and got a new fresh one, which I can control easily and host all of my other applications.&lt;/p&gt;
&lt;p&gt;Most importantly I am not only going to write about software but entrepreneurship, marketing, and all the theories that are going behind the scenes. We hear the Facebook valuation around 50 billion, and I cannot stop myself to say WTF!. Acquiring 500 million users is not an easy thing esp dealing with the performance, scalability both for the company and the site.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?a=Jv_-qg1EI8g:8ACPNBDAQrs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/bahadircambel/UgKj?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/bahadircambel/UgKj/~4/Jv_-qg1EI8g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/bahadircambel/UgKj/~3/Jv_-qg1EI8g/post.aspx</link>
      <author>Admin</author>
      <comments>http://www.bahadircambel.com/post/Back-again.aspx#comment</comments>
      <guid isPermaLink="false">http://www.bahadircambel.com/post.aspx?id=ecf6e477-f05c-4521-9c96-eb3dea1bf3c7</guid>
      <pubDate>Thu, 06 Jan 2011 04:11:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.bahadircambel.com/pingback.axd</pingback:server>
      <pingback:target>http://www.bahadircambel.com/post.aspx?id=ecf6e477-f05c-4521-9c96-eb3dea1bf3c7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.bahadircambel.com/trackback.axd?id=ecf6e477-f05c-4521-9c96-eb3dea1bf3c7</trackback:ping>
      <wfw:comment>http://www.bahadircambel.com/post/Back-again.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.bahadircambel.com/syndication.axd?post=ecf6e477-f05c-4521-9c96-eb3dea1bf3c7</wfw:commentRss>
    <feedburner:origLink>http://www.bahadircambel.com/post.aspx?id=ecf6e477-f05c-4521-9c96-eb3dea1bf3c7</feedburner:origLink></item>
  </channel>
</rss>

