






































<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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/"
	>

<channel>
	<title>David Givoni's Blog</title>
	<link>http://david.givoni.com/blog</link>
	<description>blips on my brain radar</description>
	<pubDate>Mon, 31 Jan 2011 16:48:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>We&#8217;ve launched Answerbase</title>
		<link>http://david.givoni.com/blog/?p=32</link>
		<comments>http://david.givoni.com/blog/?p=32#comments</comments>
		<pubDate>Mon, 31 Jan 2011 16:48:02 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>general</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=32</guid>
		<description><![CDATA[My company Lumin Creative has launched a new Question and Answers platform, Answerbase, that gives you the ability to create your own Q&#038;A site in a couple of minutes.
We&#8217;ve basically taken our proven Q&#038;A engine, that clients such as edmunds.com and business.com have been using for years and made it available in a more standardized [...]]]></description>
			<content:encoded><![CDATA[<p>My company Lumin Creative has launched a new <a title="Your own Q&#038;A site - Answerbase" target="_blank" href="http://answerbase.com">Question and Answers platform, Answerbase</a>, that gives you the ability to create your own Q&#038;A site in a couple of minutes.</p>
<p>We&#8217;ve basically taken our proven Q&#038;A engine, that clients such as <a target="_blank" href="http://answers.edmunds.com/">edmunds.com</a> and <a href="http://answers.business.com/">business.com</a> have been using for years and made it available in a more standardized way as a monthly subscription service. You get the powerful functionalities, options to customize look and feel and as we&#8217;re able to serve more clients this way, the costs are lower than the completely customized enterprise solutions.</p>
<p>So if you&#8217;d like to create an online community or you want to attract more traffic to your existing website, you should <a title="Answerbase - your own Q&#038;A site" href="http://answerbase.com/">get your own Q&#038;A solution</a>. You can try it on the free trial, without having to pay or give any payment details until you decide to continue.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=32</wfw:commentRSS>
		</item>
		<item>
		<title>Barcelona Fan Website - another side project</title>
		<link>http://david.givoni.com/blog/?p=31</link>
		<comments>http://david.givoni.com/blog/?p=31#comments</comments>
		<pubDate>Thu, 30 Oct 2008 21:09:56 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>Barcelona</category>
	<category>Projects</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=31</guid>
		<description><![CDATA[I can&#8217;t help but experiment a bit in my freetime, so with a friend of mine, Tim Hanlon, an english sports journalist, we have created a fans website for the football club, FC Barcelona. Basically Tim is creating the content and I take care of the tech stuff plus handles relationships with advertisers etc.
We felt [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t help but experiment a bit in my freetime, so with a friend of mine, Tim Hanlon, an english sports journalist, we have created a <a title="FC Barcelona Fans Site" href="http://www.barcelonafans.org">fans website for the football club, FC Barcelona</a>. Basically Tim is creating the content and I take care of the tech stuff plus handles relationships with advertisers etc.</p>
<p>We felt that there wasn&#8217;t any really good community website about BarÃ§a for English speaking people and wanted to venture into creating one. This has been going on for a year now and the results are decent, but as always there&#8217;s room for improvement.</p>
<p>Take a look at the website, <a title="FC Barcelona Fans Site" href="http://www.barcelonafans.org">BarcelonaFans.org</a>, and join the community if you&#8217;re also a fan <img src='http://david.givoni.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=31</wfw:commentRSS>
		</item>
		<item>
		<title>Launching a new experiment</title>
		<link>http://david.givoni.com/blog/?p=29</link>
		<comments>http://david.givoni.com/blog/?p=29#comments</comments>
		<pubDate>Fri, 05 Oct 2007 23:17:17 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>general</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=29</guid>
		<description><![CDATA[I&#8217;ve launched a new blog, monetizando.net, which is about how to make money on a blog, but written in Spanish.
It&#8217;s an experiment trying to see if I can replicate or even do better than many of the english blogs treating the same subject. It&#8217;s for fun, but obviously I hope it will succeed and I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve launched a new blog, <a href="http://monetizando.net">monetizando.net</a>, which is about how to make money on a blog, but written in Spanish.</p>
<p>It&#8217;s an experiment trying to see if I can replicate or even do better than many of the english blogs treating the same subject. It&#8217;s for fun, but obviously I hope it will succeed and I will definitely document the whole process.</p>
<p>Anyway, if you can read spanish, please let me know what you think.
</p>
</p>
<p><!-- ~ --><!-- ~ -->
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=29</wfw:commentRSS>
		</item>
		<item>
		<title>Corporate Questions and Answers Software</title>
		<link>http://david.givoni.com/blog/?p=28</link>
		<comments>http://david.givoni.com/blog/?p=28#comments</comments>
		<pubDate>Sat, 25 Aug 2007 22:12:39 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>question and answer software</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=28</guid>
		<description><![CDATA[As you probably know by now, I am leading the development of Quomon, a questions and answers system for IT and graphic design professionals.
Based on our experience with this my company, Lumin Creative, has begun selling the engine Quomon is based on as questions and answers software for internal use in corporations or to integrate [...]]]></description>
			<content:encoded><![CDATA[<p>As you probably know by now, I am leading the development of Quomon, a <a href="http://quomon.com">questions and answers system for IT and graphic design professionals</a>.</p>
<p>Based on our experience with this my company, Lumin Creative, has begun selling the engine Quomon is based on as <a title="Questions and Answers Software" href="http://www.lumincreative.com/english/question_answer_software.html">questions and answers software</a> for internal use in corporations or to integrate with public websites.</p>
<p>An example of the use for a public website is Debthelp, a company that sells services for people with debt problems. Debthelp needed a way to let users submit questions, to be answered primarily by Debthelps experts and in the process creating a dynamic knowledge database that would serve as reference for other users as well and draw traffic from search engines. The site has been launched a few weeks ago and is a very good example of the type of customization that we provide for our clients. The questions and answers section is completely integrated visually with the rest of the website and the point system and functionality has been adapted to Debthelps needs.</p>
<p>The intranet version of our questions and answers software is directed towards larger corporations, where people are located in several different geographical areas. The q&#038;a system then provides a way of solving problems without having to know who has the necessary knowledge to help, since the software provides the connections between personnel. By way of the point system it also serves as a tool to recognize peoples expertise and motivate knowledge sharing throughout the company.</p>
<p>If you&#8217;re interested in knowing more, you can contact us at: <a href="mailto:corporate.solutions@lumincreative.com">corporate.solutions@lumincreative.com</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=28</wfw:commentRSS>
		</item>
		<item>
		<title>Win the email war</title>
		<link>http://david.givoni.com/blog/?p=27</link>
		<comments>http://david.givoni.com/blog/?p=27#comments</comments>
		<pubDate>Sat, 28 Jul 2007 20:04:16 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>life management</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=27</guid>
		<description><![CDATA[After watching an excellent presentation on how to manage email and keep the inbox at zero at LifeHacker I&#8217;ve decided to try and follow the advice.
The idea is called action based action based email and Merlin Mann, the originator of the concept, suggests that one should never just check email. You have to act, never [...]]]></description>
			<content:encoded><![CDATA[<p>After watching an excellent presentation on <a href="http://lifehacker.com/software/email/merlin-mann-presents-inbox-zero-282544.php">how to manage email and keep the inbox at zero</a> at LifeHacker I&#8217;ve decided to try and follow the advice.</p>
<p>The idea is called action based action based email and Merlin Mann, the originator of the concept, suggests that one should never just check email. You have to act, never just check. He makes a very good comparison with a friend asking you to check upon his cat, while he&#8217;s on vacation. You check every day and suddenly the cat is sick and the idea is not that you check back the next day to see if it got better. You have to take action, to do something about the cats problem, which is why you&#8217;re checking in the first place.</p>
<p>The same thing with email. It floods your inbox, you live your life in the inbox, always feeling guilty if you don&#8217;t TAKE ACTION.<br />
So he defines 5 different actions to take with the email when you read it:<br />
- delete/archive<br />
- delegate (and remember to followup)<br />
- respond (short and precise)<br />
- defer (till later the same day)<br />
- do</p>
<p>Never let anything just lay there in the inbox. He suggests that you always process to zero, when checking email, and also that the email program should not be on all the times.</p>
<p>It might sound basic, but at least my own experience is that it&#8217;s hard to follow. But I&#8217;ve set it as my goal now, and at least these first three days are going good. I&#8217;ve been able to process the last two months of email, so now I&#8217;ve only got like 2900 emails left in my inbox <img src='http://david.givoni.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Actually I&#8217;ve been terrible to respond and keep contact with my friends, so I really want to keep this and be able to get back quicker and not feel like I&#8217;m a jerk with people I really care about.</p>
<p>Well, I&#8217;ll keep you updated on how it goes.</p>
<p>/David</p>
<p>Btw, if you want it in writing and with more details, the <a href="http://www.43folders.com/2006/03/13/inbox-zero/">Inbox Zero idea is described more in depth in a series of articles you can read here</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=27</wfw:commentRSS>
		</item>
		<item>
		<title>Widening the focus a bit&#8230;</title>
		<link>http://david.givoni.com/blog/?p=26</link>
		<comments>http://david.givoni.com/blog/?p=26#comments</comments>
		<pubDate>Sat, 28 Jul 2007 19:45:20 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>me</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=26</guid>
		<description><![CDATA[I haven&#8217;t been writing much on the blog for a while. This has mainly been because I&#8217;ve been too busy working, setting up my own company, Lumin Creative and I haven&#8217;t had the time to lean back and describe what I was nerding with when I was programming.
At the same time I&#8217;ve thought about a [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t been writing much on the blog for a while. This has mainly been because I&#8217;ve been too busy working, setting up my own company, <a href="http://www.lumincreative.com/english/">Lumin Creative</a> and I haven&#8217;t had the time to lean back and describe what I was nerding with when I was programming.</p>
<p>At the same time I&#8217;ve thought about a lot of other things, that I would have like to comment on, like when I was watching a good movie, visited a special place or just anything that I found important in my life.</p>
<p>So I thought, this blog from now on will not only focus on technology, but about my life in general. If you only want stuff on NHibernate or asp.net, you&#8217;ll have to filter by the categories on the side.</p>
<p>Welcome to my life <img src='http://david.givoni.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>David
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=26</wfw:commentRSS>
		</item>
		<item>
		<title>NHibernate and asp.net: handling the session</title>
		<link>http://david.givoni.com/blog/?p=25</link>
		<comments>http://david.givoni.com/blog/?p=25#comments</comments>
		<pubDate>Tue, 02 Jan 2007 04:29:11 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>Uncategorized</category>
	<category>.NET(C#)</category>
	<category>o/r mapping</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=25</guid>
		<description><![CDATA[In this post I&#8217;ll give an overall view of my preferred NHibnernate / asp.net architecture and focus on some examples of how to handle the NHibernate session in an asp.net web application.
When I first started using NHibernate as my preferred object-relational mapper it was very hard to find examples of how to architect an asp.net [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;ll give an overall view of my preferred NHibnernate / asp.net architecture and focus on some examples of how to handle the NHibernate session in an asp.net web application.</p>
<p>When I first started using NHibernate as my preferred object-relational mapper it was very hard to find examples of how to architect an asp.net application. There were many concrete examples of how to make queries and how to create the mapping files, but it was difficult to find info on how to integrate NHibernate overall in a web application created with asp.net.</p>
<p>This meant that I have been going through a lot of trial-and-error on the way and one particular element that I have handled several different ways have been the NHibernate session, primarily because of it contains the connection to the database.</p>
<table align="right" style="margin: 5px">
<tr>
<td><!--adsense--></td>
</tr>
</table>
<p>Overall I normally divide my applications into two layers:<br />
- web<br />
- business</p>
<p>The business layer will contain two main divisions: Data and Repository.<br />
Everything within the Data namespace contains business classes and their nhibernate xml-mappings (i.e. User.cs and User.hbm.xml).<br />
The Repository namespace is inspired by a pattern from Martin Fowler and normally contains a class per business class, and it handles the business methods relevant to that. For example I would have several ways of getting a concrete user (by id, by username and password) or groups of users by specific criteria (I would call it UserRepository.cs).</p>
<p>To handle NHibernate I have a NHibernateManager class. It looks like this:</p>
<blockquote><p>public class NHibernateManager<br />
{<br />
static Configuration configuration;</p>
<p>static ISessionFactory factory;</p>
<p>private ISession session;</p>
<p>public ISession Session<br />
{<br />
get<br />
{<br />
if (session == null || !session.IsOpen)<br />
{<br />
try<br />
{<br />
session = factory.OpenSession();<br />
}<br />
catch (Exception e)<br />
{<br />
throw new Exception(&#8221;The session or database connection could not be created&#8221;, e);<br />
}<br />
}<br />
return session;<br />
}<br />
}</p>
<p>static NHibernateManager()<br />
{<br />
try<br />
{<br />
configuration = new Configuration();<br />
configuration.AddAssembly(&#8221;xxxxxxx&#8221;);</p>
<p>factory = configuration.BuildSessionFactory();<br />
}<br />
catch (Exception ex)<br />
{<br />
throw new Exception(&#8221;Could not create the NHibernate configuration&#8221;, ex);<br />
}<br />
}<br />
}</p></blockquote>
<p>The web.config has the necessary database connection information and this class reads all the embedded xml-mappings and builds a sessionfactory that can be used to open and close connections to the database.</p>
<p>The tricky part for me was how to handle the session in the best way.</p>
<p>I started out by in each method in the repository class that needed to access the database, I would create a new session and close the session when the query was done. It would look something like this:</p>
<blockquote><p>public User GetUserByLogin(string username, string password)<br />
{<br />
NHibernateManager mgr =  new NHibernateManager();</p>
<p>User user = null;</p>
<p>try<br />
{</p>
<p>string queryStmt = String.Format(&#8221;from User where username = :username and password = :password&#8221;);<br />
IQuery query = mgr.Session.CreateQuery(queryStmt);<br />
query.SetParameter(&#8221;username&#8221;, username);<br />
query.SetParameter(&#8221;password&#8221;, password);<br />
user = (User) query.UniqueResult();</p>
<p>mgr.Session.Close();<br />
}<br />
catch (Exception ex)<br />
{<br />
throw new Exception(&#8221;The user could not be retrieved from the database&#8221;, ex);<br />
}</p>
<p>return user;<br />
}</p></blockquote>
<p>(Notice that I&#8217;m using IQuery and not ICriteria to get the list from the database, since <a href="http://david.givoni.com/blog/?p=9">the performance is much worse with ICriteria</a>)</p>
<p>Now this worked fine at the beginning, but when I began using lazy loaded collections I ran into a problem. Lazy loading basically means that a collection of related objects to a concrete object is only loaded the first time it is accessed. Like if the user has a Messages collection of all the Message objects he has, these would only be loaded from the database at the time that they were actually needed. This improves performance a lot, but it doesn&#8217;t work if there isn&#8217;t any connection to the database at the time that the collection is accessed. NHibernate requires that it has to be the same session that loads the lazy loaded objects, so I couldn&#8217;t just close the session every time I made a query.</p>
<p>At first my solution was not to close the session thinking that although I might have more sessions (i.e. database connections) opened at the same time because of that, eventually the garbage collection manager would dispose of the not used sessions. Well, that was a very bad choice, because I simply began running out of database connections. There were way to many sessions open at the same time and they would be kept open for much too long.</p>
<p>So I began keeping only one session per repository. The session would be created in the contructor and closed in the destructor of the repository class so it was only a matter of managing the use of the repositories. For some reason this would not work well with Visual Studio 2003. Closing the session objects in the destructor would make it impossible for me to use the debugger. I&#8217;d get strange errors and apart from that it was still too loose a way of handling the closing of the sessions.</p>
<p>So I created a method instead on each repository CloseSession(), that I would call when the use of the repository was over. It was a bit impractical and required discipline, but it seemed to work.</p>
<p>But I ran into a problem when two different repositories handled objects that were related. I have a Save-method in each repository, but if I tried to save an object using a different repository than the one that it was opened with I got problems (right now I can&#8217;t remember what it was). I also still did have more than one session open at the same time per user, which was really not necessary, so I decided to handle the session on an even more general level.</p>
<p>At first I tried to do it on the Page level. It made sense to open the session when the page request was made and close it when the rendering was done. This meant that all the repository-classes needed to receive the NHibernateManager in the constructor, which meant refactoring a lot of code, but since it was a better solution, I did that.</p>
<p>But I was not completely happy with it. I didn&#8217;t want to depend on the Page-object and page cycle, so I ended up having an external class called GlobalManager that stores the NHibernateManager in the asp.net session:</p>
<blockquote><p>public static NHibernateManager mgr<br />
{<br />
get<br />
{<br />
if (HttpContext.Current.Session[&#8221;NHibernateManager&#8221;] == null)<br />
{<br />
HttpContext.Current.Session[&#8221;NHibernateManager&#8221;] = new NHibernateManager();<br />
}<br />
return (NHibernateManager) HttpContext.Current.Session[&#8221;NHibernateManager&#8221;];<br />
}<br />
}</p></blockquote>
<p>So this is the solution I finally ended up with and that I&#8217;m using now and I&#8217;m pretty happy with it.</p>
<p>But I&#8217;d also love to hear other peoples approaches to this and possibe failures in my way of doing it, so post a comment if you want to add or correct anything.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=25</wfw:commentRSS>
		</item>
		<item>
		<title>Wikiasari - a threat to Google?</title>
		<link>http://david.givoni.com/blog/?p=24</link>
		<comments>http://david.givoni.com/blog/?p=24#comments</comments>
		<pubDate>Thu, 28 Dec 2006 21:11:53 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>web 2.0</category>
	<category>search engines</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=24</guid>
		<description><![CDATA[The news regarding Wikipedia-founder Jimmy Wales&#8217;s development of a search engine has got quite some coverage. Whether it&#8217;s because people really believe the Wikiasari project to be able to compete with Google or just because it&#8217;s to imagine it, I don&#8217;t know.
I&#8217;m very much in favor of the idea it&#8217;s based on: a user-influenced, personalized, [...]]]></description>
			<content:encoded><![CDATA[<p>The news regarding Wikipedia-founder Jimmy Wales&#8217;s development of a search engine has got quite some coverage. Whether it&#8217;s because people really believe the Wikiasari project to be able to compete with Google or just because it&#8217;s to imagine it, I don&#8217;t know.</p>
<p>I&#8217;m very much in favor of the idea it&#8217;s based on: a user-influenced, personalized, and generally web 2.0 inspired search that serves quality information! It sounds too good to be true. And I think it is.</p>
<p>As the <a href="http://www.linuxinsider.com/edpick/54894.html">article on LinuxInsider.com</a> writes: &#8220;<span id="intelliTxt">Human weeding alone cannot keep up with the spam&#8221;.</span></p>
<p>That&#8217;s simply the main point. Other similar user based ideas have problems:<br />
Open Directory is not a success (at least sites are waiting 3-12 months to be accepted), people are &#8220;gaming&#8221; digg.com, the blogosphere is influenced by the payperpost issue and I doubt that such a lucrative area as search will succeed in battling spam without some very heavy automatic tools to help with it. And even then it&#8217;s hard&#8230;</p>
<p>But I welcome the initiative and I&#8217;m looking forward to how they will do it in practice.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=24</wfw:commentRSS>
		</item>
		<item>
		<title>6 essential and free SEO tools</title>
		<link>http://david.givoni.com/blog/?p=23</link>
		<comments>http://david.givoni.com/blog/?p=23#comments</comments>
		<pubDate>Fri, 27 Oct 2006 13:35:11 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>Uncategorized</category>
	<category>search engines</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=23</guid>
		<description><![CDATA[Search Engine Optimization is a complicated task and neverending process, so I thought I&#8217;d share some of the free tools I&#8217;m using.
The basics first (semantic structure, file size, top keywords and more)
Get a general idea of how well your site is optimized.
- SEO Analyzer - requires registration which is free
Track your search engine listings
You can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Search Engine Optimization is a complicated task and neverending process, so I thought I&#8217;d share some of the free tools I&#8217;m using.</p>
<p><strong>The basics first (semantic structure, file size, top keywords and more)</strong><br />
Get a general idea of how well your site is optimized.<br />
- <a href="http://www.sitening.com/tools/seo-analyzer/my-analyzer/">SEO Analyzer</a> - requires registration which is free</p>
<p><strong>Track your search engine listings</strong><br />
You can&#8217;t optimize your site, if you don&#8217;t check that what you do is working.<br />
- <a href="http://www.sitening.com/tools/profiles/?ref=serp-tracker">SERP tracker</a> - requires google api key, which is free to get</p>
<table align="right" style="margin: 5px">
<tr>
<td><!--adsense--></td>
</tr>
</table>
<p><strong>Get links</strong><br />
No tool can actually get you those links, but they are essential for your rankings and you can use this tool to see how well you&#8217;re doing.<br />
- <a href="http://www.sitening.com/tools/profiles/?ref=backlink-analyzer">Backlink analyzer </a> - requires google api key, which is free to get</p>
<p><strong>More text - less code<br />
</strong>The more real text you have per page, the more relevant it&#8217;s considered to be by the search engines. So use css as much as possible and stuff it and javascript away in external files.<br />
- <a href="http://www.seochat.com/seo-tools/code-to-text-ratio/">Code to text ratio calculator</a></p>
<p><strong>Valid code</strong><br />
The browsers might be lenient on this, but the search engines aren&#8217;t.<br />
- <a href="http://validator.w3.org/">w3c validator</a></p>
<p><strong>Keywords and phrases</strong><br />
You need to optimize your pages for specific keywords and phrases (3 max).<br />
- <a href="http://www.seochat.com/seo-tools/keyword-density/">Keyword density checker</a></p>
<p>If you&#8217;ve got any other tool to add to the list, please go ahead and post them.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=23</wfw:commentRSS>
		</item>
		<item>
		<title>New location, same blog</title>
		<link>http://david.givoni.com/blog/?p=22</link>
		<comments>http://david.givoni.com/blog/?p=22#comments</comments>
		<pubDate>Wed, 11 Oct 2006 18:08:53 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
	<category>general</category>
	<category>me</category>
		<guid isPermaLink="false">http://david.givoni.com/blog/?p=22</guid>
		<description><![CDATA[I have moved my blog to my own domain name (david.givoni.com/blog), because of two reasons:
- I like the personal domain name better
- I wanted more control over the looks and contents of the blog. This includes adding a few link-advertisements and adapting the theme a bit.
I&#8217;m sure we&#8217;ll all get used to this new location [...]]]></description>
			<content:encoded><![CDATA[<p align="left">I have moved my blog to my own domain name (<a href="http://david.givoni.com/blog/">david.givoni.com/blog</a>), because of two reasons:</p>
<p align="left">- I like the personal domain name better<br />
- I wanted more control over the looks and contents of the blog. This includes adding a few link-advertisements and adapting the theme a bit.</p>
<p align="left">I&#8217;m sure we&#8217;ll all get used to this new location <img src='http://david.givoni.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRSS>http://david.givoni.com/blog/?feed=rss2&amp;p=22</wfw:commentRSS>
		</item>
	</channel>
</rss>

