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

<channel>
	<title>Daily Notes</title>
	<atom:link href="http://www.tulek.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tulek.org</link>
	<description>Small pieces of information and thoughts</description>
	<lastBuildDate>Sun, 15 May 2011 22:13:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dojo Memory and Observable Classes</title>
		<link>http://www.tulek.org/2011/04/14/dojo-memory-and-observable-classes/</link>
		<comments>http://www.tulek.org/2011/04/14/dojo-memory-and-observable-classes/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 09:06:22 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[sips]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=255</guid>
		<description><![CDATA[I&#8217;m new in Dojo. However, I&#8217;m very lucky that the new 1.6 version introduces Memory and Observable classes. Memory is part of the dojo.store namespace and it provides a data store that is implemented to store data in runtime. Together &#8230; <a href="http://www.tulek.org/2011/04/14/dojo-memory-and-observable-classes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m new in Dojo. However, I&#8217;m very lucky that the new 1.6 version introduces Memory and Observable classes.</p>
<p>Memory is part of the dojo.store namespace and it provides a data store that is implemented to store data in runtime. Together with Observable class (dojo.store.Observable) you can have a nice implementation of MVC.</p>
<pre class="javascript:nogutter">&lt;html&gt;
&lt;head&gt;
    &lt;script
       src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"
       type="text/javascript"&gt;&lt;/script&gt;
    &lt;script&gt;
        dojo.require("dojo.store.Memory");
        dojo.require("dojo.store.Observable");
        dojo.ready(function() {
            memory = new dojo.store.Memory();
            observer = new dojo.store.Observable(memory);
            // We define an attribute to sort the query results
            query = observer.query(null, {sort: [{attribute: "order"}]});
            query.observe(function(item, removedFrom, insertedInto) {
                console.log(arguments);
                if(removedFrom &gt; -1){ // existing object removed
                    // Unfortunately, there is a bug in 1.6
                    // that sets removedFrom to the wrong index
                    // So, we use the item.id to find the node to
                    // remove
                    var node = dojo.byId("item" + item.id);
                    dojo.destroy(node);
                }
                if(insertedInto &gt; -1){ // new or updated object inserted
                    dojo.place('&lt;div id="item' + item.id + '"&gt;' + item.text + "&lt;/div&gt;",
                               "container", insertedInto);
                }
            }, true);
            // Adding "true" to observe method is very important
            // to also observe object changes

            // Put items (The order will determine how they
            // are added to the DOM structure)
            memory.put({id: 1, order: 1, text: "Test 1"});
            memory.put({id: 2, order: 2, text: "Test 2"});
            memory.put({id: 3, order: 4, text: "Test 3"});
            memory.put({id: 4, order: 3, text: "Test 4"});
            memory.put({id: 5, order: 5, text: "Test 5"});
            // Removing item
            memory.remove(4);
            // Updating the order of an item
            var item = memory.get(3);
            item.order = 6;
            memory.put(item);
            // Changing the text of an item
            var item = memory.get(2);
            item.text = "Test 2 Changed";
            memory.put(item);
        });
    &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div id="container"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>The code block above shows an example usage of Memory and Observable to add new div elements to <em>#container</em> div when a new item is added to the <em>memory</em> store. Thanks to the listener function defined in query.observe call, any alteration to <em>memory</em> store is reflected in the <em>#container</em> div.</p>
<p>Beside making it much easier to deal with data changes, if you define query conditions (see &#8220;&#8230; observe.query(null,&#8230;&#8221; part) for the query call, when a new item is added to the memory store, if the query conditions are not met for this item, it won&#8217;t trigger the listener function call.</p>
<p>You can find more details at <a href="http://dojotoolkit.org/reference-guide/dojo/store/Memory.html">http://dojotoolkit.org/reference-guide/dojo/store/Memory.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2011/04/14/dojo-memory-and-observable-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Node on AWS Linux AMI</title>
		<link>http://www.tulek.org/2011/03/08/installing-node-on-aws-linux-ami/</link>
		<comments>http://www.tulek.org/2011/03/08/installing-node-on-aws-linux-ami/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 08:52:58 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sips]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[npm]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=242</guid>
		<description><![CDATA[Here are the steps to install node, npm and express on Amazon 32 bit Linux AMI: sudo yum install gcc-c++ make sudo yum install openssl-devel wget http://nodejs.org/dist/node-v0.4.7.tar.gz (Pick the latest stable version available) tar -zxvf node-v0.4.7.tar.gz cd node-v0.4.7 export JOBS=2 &#8230; <a href="http://www.tulek.org/2011/03/08/installing-node-on-aws-linux-ami/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are the steps to install node, npm and express on Amazon 32 bit Linux AMI:</p>
<ol>
<li>sudo yum install gcc-c++ make</li>
<li>sudo yum install openssl-devel</li>
<li>wget http://nodejs.org/dist/node-v0.4.7.tar.gz (Pick the latest stable version available)</li>
<li>tar -zxvf node-v0.4.7.tar.gz</li>
<li>cd node-v0.4.7</li>
<li>export JOBS=2</li>
<li>./configure</li>
<li>make</li>
<li>sudo make install</li>
<li>sudo su</li>
<li>vi /etc/sudoers (We add node to the path of the sudo)</li>
<li>Find and edit the line &#8220;Defaults secure_path &#8230;&#8221; and add &#8220;:/usr/local/bin&#8221; to the end of the path</li>
<li>curl http://npmjs.org/install.sh | sudo sh</li>
</ol>
<p><strong>References:</strong></p>
<p>http://www.embracingthecloud.com/2010/12/05/InstallingNodejsOnAmazonEC2.aspx</p>
<p>https://github.com/joyent/node/wiki/Installation</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2011/03/08/installing-node-on-aws-linux-ami/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Layout of my Node.js + Express Project</title>
		<link>http://www.tulek.org/2010/12/29/layout-of-my-node-js-express-project/</link>
		<comments>http://www.tulek.org/2010/12/29/layout-of-my-node-js-express-project/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 05:53:35 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sips]]></category>
		<category><![CDATA[express]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=224</guid>
		<description><![CDATA[One thing I like about Express is that it provides the most important features for web development with a very smooth learning curve. (Of course a lot of credit should also go to Connect middleware on top of which Express &#8230; <a href="http://www.tulek.org/2010/12/29/layout-of-my-node-js-express-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One thing I like about Express is that it provides the most important features for web development with a very smooth learning curve. (Of course a lot of credit should also go to Connect middleware on top of which Express runs) This is possible thanks to Express having very few conventions about how to layout your files in your project. Express leaves the decision to you.<br />
<span id="more-224"></span><br />
I&#8217;ve created the following directory structure for my toy project:</p>
<p><code> app.js<br />
/controllers<br />
/views<br />
/views/partials<br />
/logics<br />
/models<br />
/utils<br />
</code><br />
The app.js is the entry point for the web application. app.js does not do too much stuff itself. It sets the environment and registers the controllers I want to use:<br />
<code><br />
var app = express.createServer(..);<br />
...<br />
require('controllers/index')(app);<br />
require('controllers/signup')(app);<br />
...<br />
</code><br />
Controllers are saved under the /controllers directory. They all set their module.exports variable to a function with one argument expecting the argument to be an Express app instance. When they get the app object, they use its get, post, put and delete functions to register themselves to different url patterns. Here is a code snippet from controllers/index.js:<br />
<code><br />
module.exports = function(app) {<br />
app.get("/", index);<br />
    ...<br />
}</code></p>
<p><code> </code></p>
<p><code>function index(req, res) {<br />
    ...<br />
}<br />
</code></p>
<p>/views folder is the only convention from Express where I store the .jade template files. I like Jade although it has many places that need improvement. If I can find time I&#8217;d like to contribute to this project.</p>
<p>/logics stores the logic modules. I try to make them as sterile as possible, that is, I&#8217;m trying to develop them protocol agnostic. Controllers are responsible to deal with HTTP level and prepare the data and other parameters to be ready for logic modules. Logic modules usually provide functions that expect some parameters and a callback to return the results.</p>
<p>Another point about logics is that they are not globally accessible. That is, you should explicitly load them by calling require() function. Although you have to remember to include the necessary logic modules, it makes explicit and clear which modules a file uses. Next time, when you need to change some functionality about a logic it becomes easier to find the files using this logic module.</p>
<p>Finally, /models directory have my Mongoose Model modules.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/12/29/layout-of-my-node-js-express-project/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Doing partial updates with Mongoose</title>
		<link>http://www.tulek.org/2010/12/29/doing-partial-updates-with-mongoose/</link>
		<comments>http://www.tulek.org/2010/12/29/doing-partial-updates-with-mongoose/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 05:41:43 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[sips]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=220</guid>
		<description><![CDATA[I use Mongoose on top of mongodb native driver for Node.js. With Mongoose you can create ORM like objects in Javascript. However, Mongoose is in development stage, that is, not all functions documented are available, yet. One of these functions &#8230; <a href="http://www.tulek.org/2010/12/29/doing-partial-updates-with-mongoose/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I use Mongoose on top of mongodb native driver for Node.js. With Mongoose you can create ORM like objects in Javascript. However, Mongoose is in development stage, that is, not all functions documented are available, yet. One of these functions that does not seem to be ready is the Model::update() static function.</p>
<p>If you want to update part of a record in the database directly, without loading the whole document, the update function is very handy. Although update() function is not available as described in the documentation, with some workaround it works as follows:</p>
<pre class="javascript:nogutter">var ObjectID = require('mongodb').ObjectID;
...
var recordid = ObjectID.createFromHexString(str_recordid);
UserGoal._collection.update({_id: recordid},
      {'$set': {key: value}}, function(err, data) { ... });</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/12/29/doing-partial-updates-with-mongoose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Everywhere</title>
		<link>http://www.tulek.org/2010/12/27/javascript-everywhere/</link>
		<comments>http://www.tulek.org/2010/12/27/javascript-everywhere/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 03:39:11 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sips]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=211</guid>
		<description><![CDATA[Decided to use/learn nodejs + express and mongodb in my toy project, I enjoy using Javascript in every level of my code. I program with Javascript in frontend, webserver and database logics. All my data is either a JS object &#8230; <a href="http://www.tulek.org/2010/12/27/javascript-everywhere/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Decided to use/learn nodejs + express and mongodb in my toy project, I enjoy using Javascript in every level of my code. I program with Javascript in frontend, webserver and database logics. All my data is either a JS object or a JSON/BSON data. This way I don&#8217;t need to switch context and don&#8217;t need to rewrite the same functions for each language from scratch. I still copy functions for frontend and and backend, but may start playing with libraries that make it possible to reuse the same javascript code in frontend and backend. However, I&#8217;m not sure if it&#8217;s practical.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/12/27/javascript-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use nave to install/update node</title>
		<link>http://www.tulek.org/2010/11/29/use-nave-to-installupdate-node/</link>
		<comments>http://www.tulek.org/2010/11/29/use-nave-to-installupdate-node/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 06:35:56 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nave]]></category>
		<category><![CDATA[npm]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=205</guid>
		<description><![CDATA[Maybe I&#8217;m getting lazier or there is something good about projects that are easy to deploy. One of the things I like about nodejs is that it&#8217;s really easy to download and install. (Similar things could be said for MongoDB &#8230; <a href="http://www.tulek.org/2010/11/29/use-nave-to-installupdate-node/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Maybe I&#8217;m getting lazier or there is something good about projects that are easy to deploy. One of the things I like about <a href="http://nodejs.org">nodejs</a> is that it&#8217;s really easy to download and install. (Similar things could be said for <a href="http://mongodb.org">MongoDB</a> and <a href="http://www.basho.com/riaksearch.html">Riak Search</a>)</p>
<p>Thanks to <a href="https://github.com/isaacs/npm">npm</a>, it&#8217;s also very easy to install packages developed for node. Although it&#8217;s already very easy to update node, I was looking for a tool to make node updates/installs much easier so that I won&#8217;t mess the npm installation each time when I forget how it arranges the folders. (I know it&#8217;s very simple and intuitive but as I said I&#8217;m lazy)</p>
<p><a href="http://blog.izs.me/">Isaac</a>, the author of npm, also has a tool called <a href="https://github.com/isaacs/nave">nave</a>.  nave is not only making it easy to install node, it also makes it easy to have multiple versions of the node installed on your system. By the <em>use</em> command it provides, you can create a temporary environment where you run a certain version of node. I guess it is a very handy feature for package developers to test their projects under different versions. It will also help to test if upgrading your servers is going to be a problem or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/11/29/use-nave-to-installupdate-node/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Node.js + MongoDB = Mongoose</title>
		<link>http://www.tulek.org/2010/11/28/node-js-mongodb-mongoose/</link>
		<comments>http://www.tulek.org/2010/11/28/node-js-mongodb-mongoose/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 06:22:35 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[sips]]></category>
		<category><![CDATA[mongodb]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=191</guid>
		<description><![CDATA[Mongoose is a ORM like library that helps a lot when you want to access your collections defined on MongoDB from Node.js. You can use it without schemas but by defining ORM objects the code becomes much easier to read. &#8230; <a href="http://www.tulek.org/2010/11/28/node-js-mongodb-mongoose/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="https://github.com/LearnBoost/mongoose">Mongoose</a> is a ORM like library that helps a lot when you want to access your collections defined on <a href="http://www.mongodb.org/">MongoDB</a> from <a href="http://nodejs.org/">Node.js</a>. You can use it without schemas but by defining ORM objects the code becomes much easier to read.</p>
<p>After you install Mongoose by <em>npm install mongoose</em> you can do the following to start playing with:</p>
<pre class="javascript:nogutter">var mongoose = require('mongoose').Mongoose;
var db = mongoose.connect('mongodb://localhost/goaljuice');</pre>
<p><span id="more-191"></span><br />
To define a model:</p>
<pre class="javascript:nogutter">mongoose.model('User', {
  collection: 'user',
  properties: [
    'created',
    'username',
    'password',
    'email'
  ],
  indexes: [
    'created',
    [{username: 1},{unique: true}],
    [{email: 1},{unique: true}]
  ],
  static: {},
  methods: {},
  setters: {},
  getters: {}
  }
);</pre>
<p>To create the model on MongoDB and have a ORM &#8220;class&#8221;:</p>
<pre class="javascript:nogutter">var User = db.model('User');</pre>
<p>Now, you have a user collection under goaljuice database. After that you can create new User instances and do CRUD operations:</p>
<pre class="javascript:nogutter">var user = new User();
user.created = new Date();
user.username = "TEST";
user.password = "PASS";
user.email = "someemail";
user.save();</pre>
<p>One thing you may notice is that you can have a Date object as one of the fields. In addition to that, you can do comparison queries on Date objects. However, I don&#8217;t know (yet) if it&#8217;s better to have an integer of seconds for a created field instead of a Date object. At the moment, I enjoy having a full Date object while coding.</p>
<p>One annoying problem I&#8217;ve encountered at the moment is that since I&#8217;ve a <em>unique</em> restriction on username and email MongoDB gives error in case of duplicates (so it protects itself very well) but Mongoose library ignores this error. In that respect, you have to do your own checks if a record already exists or not.</p>
<p>Another problem is that if you don&#8217;t define your unique indexes at the beginning Mongoose ORM does not alter the index later when you add the uniqueness restriction. In such cases you need to drop the collection on MongoDB or add the unique restriction yourself.</p>
<p>At the end, Mongoose looks like the library I will use for my project to connect MongoDB and Nodejs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/11/28/node-js-mongodb-mongoose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vim, Textmate, Emacs and Butterflies</title>
		<link>http://www.tulek.org/2010/11/25/vim-textmate-emacs-and-butterflies/</link>
		<comments>http://www.tulek.org/2010/11/25/vim-textmate-emacs-and-butterflies/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 14:51:43 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[sips]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=192</guid>
		<description><![CDATA[Real Programmers: http://xkcd.com/378/ This comic becomes really true when you try to learn different editors. I have some experience on Emacs and was using TextMate for a while. However, after making an evaluation between them recently TextMate became my favorite. &#8230; <a href="http://www.tulek.org/2010/11/25/vim-textmate-emacs-and-butterflies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Real Programmers: http://xkcd.com/378/</p>
<p>This comic becomes really true when you try to learn different editors.</p>
<p>I have some experience on Emacs and was using TextMate for a while. However, after making an evaluation between them recently TextMate became my favorite. The nice part about TextMate is it&#8217;s very easy to learn how to extend it. The bad part is that it does not have split windows and note good to edit big files.</p>
<p>I always had Vim in my mind to give it a try. Although it looks far complex than say TextMate after the vimtutor and some practice you realize that Vim basically consists of a set of keys. In addition to that it has split windows. It works very well and somehow I liked it more than the split windows of Emacs.</p>
<p>One keybinding I was looking for was autocomplete like in TextMate. In TextMate you use ESC for this purpose which becomes very addictive after a while. I&#8217;ve found that Vim has CTRL+N or CTRL+P for this purpose and it looks much more powerful. I may only find a better key combination for my taste.</p>
<p>By the way, when you learn more about Vim you realize that TextMate get a lot of ideas from Vim in terms of writing your small extensions. Hm hm&#8230;</p>
<p>Finally, if we go back to &#8220;Real Programmer&#8221; comic, while looking for some tips about Vim, one guy in his blog says that he uses Vim for Perl programming and that &#8220;it&#8217;s sometimes faster than using sed to change words in lines&#8221;. Is this also my end?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/11/25/vim-textmate-emacs-and-butterflies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mockups&#8230;</title>
		<link>http://www.tulek.org/2010/11/23/mockups/</link>
		<comments>http://www.tulek.org/2010/11/23/mockups/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 16:01:49 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sips]]></category>

		<guid isPermaLink="false">http://www.tulek.org/?p=177</guid>
		<description><![CDATA[In my spare time, I&#8217;m working for the mockups of my toy project, goaljuice.com. I try to make it as if it&#8217;s functional. Mockups help you to understand the requirements you need on both the frontend and backend. In that &#8230; <a href="http://www.tulek.org/2010/11/23/mockups/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In my spare time, I&#8217;m working for the mockups of my toy project, <a href="http://goaljuice.com" target="_blank">goaljuice.com</a>. I try to make it as if it&#8217;s functional.</p>
<p>Mockups help you to understand the requirements you need on both the frontend and backend. In that respect, although they take a lot of time mockups are very informative.</p>
<p>Besides that I always like to play with HTML, CSS and JS. What I don&#8217;t like to work on is cross browser compatibility. I try to make the mockups and also the final HTMLs W3 complaint. I won&#8217;t spend too much time on bad behaving browsers. The mockups are not in their final stage; both the design and HTML/CSS are work-in-progress. However, I thought that it would be great to share to get your feedbacks.</p>
<p>By the way, here is the source code of the app.js file for node:</p>
<pre class="javascript:nogutter">require.paths.unshift(__dirname);

var express = require('express');

var app = express.createServer(
	express.logger(),
	express.staticProvider(__dirname + '/mockups')
	);

app.get("/",function(req, res) {
	res.redirect("/mockups");
})
app.listen(80);
process.setuid("node");
console.log("Ready to serve requests. Enjoy...");</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/11/23/mockups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools for my toy project</title>
		<link>http://www.tulek.org/2010/11/18/tools-for-my-toy-project/</link>
		<comments>http://www.tulek.org/2010/11/18/tools-for-my-toy-project/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 05:22:11 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sips]]></category>

		<guid isPermaLink="false">http://www.tulek.org/2010/11/18/tools-for-my-toy-project/</guid>
		<description><![CDATA[I have finalized my toolset to play with. I will use nodejs, express, redis, mongodb and riak for my toy project. My purpose is to see how these five technologies work together. This way, instead of barely talking about new &#8230; <a href="http://www.tulek.org/2010/11/18/tools-for-my-toy-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have finalized my toolset to play with. I will use nodejs, express, redis, mongodb and riak for my toy project. My purpose is to see how these five technologies work together. This way, instead of barely talking about new technologies -which I personally find very boring after a while- I can share my real experiences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tulek.org/2010/11/18/tools-for-my-toy-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

