<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.1" -->
<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>MoreWhite</title>
	<link>http://www.morewhite.com</link>
	<description>a web 2.0 blog</description>
	<pubDate>Sat, 02 Sep 2006 14:10:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.1</generator>
	<language>en</language>
			<item>
		<title>Kiko&#8217;s $258,100 Web 2.0 failure</title>
		<link>http://www.morewhite.com/archives/21</link>
		<comments>http://www.morewhite.com/archives/21#comments</comments>
		<pubDate>Sat, 02 Sep 2006 14:10:29 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>Uncategorized</category>
	<category>web 2.0</category>
		<guid isPermaLink="false">http://www.morewhite.com/archives/21</guid>
		<description><![CDATA[The online calendar startup Kiko has been sold on eBay for $258K.  The bidding story is here.  Following the successful sale of the meta-search engine Jux2 for $101K, eBay is really becoming a plausible way to cash out.
Kiko was seed-funded by Paul Graham&#8217;s YCombinator, for the price of one programmer&#8217;s 6 month salary. [...]]]></description>
			<content:encoded><![CDATA[<p>The online calendar startup <a href="http://kiko.com/">Kiko</a> has been sold on eBay for $258K.  The bidding story is <a href="http://texasvc.weblogswork.com/2006/08/27/kikos-web-20-failure-nets-258100-cash/">here</a>.  Following the successful sale of the meta-search engine <a href="http://www.jux2.com/">Jux2</a> for <a href="http://www.searchenginejournal.com/?p=2412">$101K</a>, <a href="http://www.ebay.com">eBay</a> is really becoming a plausible way to cash out.</p>
<p>Kiko was seed-funded by Paul Graham&#8217;s YCombinator, for the price of one programmer&#8217;s 6 month salary.  Paul <a href="http://paulgraham.infogami.com/blog/kiko">sums</a> up Kiko&#8217;s failure in two words: Google Calendar.  Supposedly it was the integration with Gmail that made Google Calendar more useful.  This is the same office-effect Microsoft has used in the past to combat rival office products: integrating products together.</p>
<p><a id="more-21"></a></p>
<p>Whilst Paul was blaming competitors for failure, the founders blogged their own thoughts on why they failed.  In summary:</p>
<p>- <b>Stay focused</b></p>
<blockquote><p>
&#8220;Most entrepreneurs have lots of ideas. Often times, many of them may be really good. I don’t know about you, but my favorite part about startups is talking about new products and new business ideas. If you’re a creative person, it’s very easy to get side-tracked on side ideas when you really should be working on your main one. This is bad. Bad, bad, bad. We did this a lot with Kiko, and it caused many delays in getting the product out the door.&#8221;
</p></blockquote>
<p>- <b>Don&#8217;t release too early</b></p>
<blockquote><p>
&#8220;You always hear &#8220;Release early, release often&#8221;, especially if you hang around Paul Graham crowd, but the footnote that doesn&#8217;t get enough airplay is that you shouldn&#8217;t release too early &#8230; You only get one shot to impress people; don&#8217;t blow it because they won&#8217;t coming back next week to see if you&#8217;ve improved.&#8221;
</p></blockquote>
<p>- <b>Build incrementally</b></p>
<blockquote><p>
&#8220;We tried to build the ultimate AJAX calendar all at once. It took a long time. We could have done it piece by piece. Nuff said.&#8221;
</p></blockquote>
<p>- <b>Do it right from the beginning</b></p>
<blockquote><p>
&#8220;Cute hacks can cost you time. Take the time to do things right from the beginning. Seriously.&#8221;
</p></blockquote>
<p>- <b>Hire Slow, Fire Fast.</b></p>
<p>- <b>Define your target market, don&#8217;t just target the early adopters</b></p>
<blockquote><p>
&#8220;&#8230; If you ever want to gain any real traction as an online calendar service you have to target the cubicle dwellers and their Outlook calendars that only exist outside the (Techno)sphere. Techie users are fickle, transient and demanding. You can spend all of your time implementing ATOM feeds and hCalendar export and never be the better for it.&#8221;</p>
<p>&#8220;Our contact management and calendar sharing implementation did not meet our users&#8217; needs because we never defined our target market. In addition, our designs for how these features should behave were negatively affected by our marriage to the existing, and broken, workflow in Kiko 1.0. Techies, families, social groups, and businesses all have different needs for sharing their calendar data with others and, by ignoring that fact, we created a solution that met no one&#8217;s needs.&#8221;
</p></blockquote>
<p>It seems that all of these points come down to one thing - focus.  If you focus your ideas and your business you will have less features to maintain, the ability to build incrementally, be careful about who you hire, and target the right market.  Its better to be the leader of a niche market, then a nobody in a large one.  Less is more.</p>
<p>The classical reason for failure - hubris - still applies.  I think the web 2.0 hype has given the founders unrealistic ideas about their market, product, and value.  Whilst the geeky early adopters are willing to try anything, it is not an indication of quality.  Imagine what the techcrunch crowd would actually think of MySpace if it just came out.  Realistically, Kiko&#8217;s user interface was far from perfect for anyone who doesn&#8217;t know the term AJAX.  Google does lots of things at a time, and yet their calendar looks neater.  If calendaring is all you do, you better make sure yours is not just better, its amazing.  That takes some real calendar passion, far beyond making a web version of outlook.</p>
<p>I wish the founders all the best, and hope they find that failures are just as valuable as hits.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/21/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>The Search Matrix</title>
		<link>http://www.morewhite.com/archives/20</link>
		<comments>http://www.morewhite.com/archives/20#comments</comments>
		<pubDate>Thu, 27 Apr 2006 22:23:16 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>search</category>
		<guid isPermaLink="false">http://www.morewhite.com/archives/20</guid>
		<description><![CDATA[Defining Search Engines
The primary purpose of a search engine is to direct users to data relevant to their query.  This is done by returning a set of pointers to data - &#8220;links&#8221; along with a preview (small subset) of the data.  A search engine can obtain such links in any way, including:
- crawling [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Defining Search Engines</strong></p>
<p>The primary purpose of a search engine is to direct users to data relevant to their query.  This is done by returning a set of pointers to data - &#8220;links&#8221; along with a preview (small subset) of the data.  A search engine can obtain such links in any way, including:</p>
<p>- crawling the web autonomously<br />
- structured XML feeds (eg sitemaps)<br />
- manual user submission</p>
<p>The distributed and hyperlinked nature of the web allows users to publish data at a single location, allowing it to be discovered by other users and search engines.  In contrast to pushing data to users by publishing it in various locations, this approach eliminates management and versioning problems if data needs to be updated.  In other words, allowing search engines to discover your data is better than publishing it in various centralized databases (web applications such as classified listings sites, Google Base, etc).  </p>
<p><a id="more-20"></a></p>
<p><strong>Vertical Search</strong></p>
<p>A vertical search engine only contains pointers to data of certain type / class.  Reducing the search space to data of a certain class greatly improves the relevancy of search results, as is evident by recent popularity of vertical search engines like <a href="http://www.indeed.com">indeed</a> (jobs), <a href="http://edgeio.com/">edgeio</a> (classifieds), <a href="http://www.sidestep.com">sidestep</a> (travel), <a href="http://www.kelkoo.com">kelkoo</a> (shopping) and <a href="http://www.extate.com">extate</a> (property).</p>
<p>Generic search engines like google consider all data to be of the same class - text.  The only attributes used for searching and refinement are keywords.  This may have been appropriate at a time when most of the information on the web was static text - articles, reviews, stories, etc.  Now, however, much information comes from databases.  Therefore, different classes of data have different attributes, just as in the object-oriented programming world: a book for sale has a price, a property has N bedrooms, a business has an address.  A vertical search engine allows searching and filtering data by these attributes, which is crucial.</p>
<p><strong>Horizontal Search</strong></p>
<p>Some may say that a vertical search engine is not generic enough - its a function that works only on certain inputs.  Horizontal search on the other hand is not limited to data type - its limited to a set of attributes.  In essence, it allows searching over a pre-defined set of attributes across different information types.  Google is an example of horizontal search where allowed attributes are keywords.  Possible other horizontal search engines may be:</p>
<p>- Local Search: find everything in a given location<br />
- Price Search: find everything in given price range</p>
<p>although these are currently limited to certain classes of data as well to improve search results.</p>
<p><strong>Search Matrix</strong></p>
<p>We can combine both vertical and horizontal search scenarios in a matrix, where the verticals represent different classes of data and horizontals - different attributes that apply.  Some of these attributes may be boolean - such as keywords, or quantitative - such as price.</p>
<p>Both vertical and horizontal search engines currently only support searching by a constant set of attributes.  The primary reason is ease of implementation: a constant set of attributes allows data to be stored in a single table with the applicable schema.  It also allows the user interface to map directly to SQL statements, and keeps the interface (such as filtering of results) more or less constant.</p>
<p>The ultimate goal however is obvious - a search engine that uses all possible attributes to search over all possible classes.  The aim is thus to cover as much of the matrix as possible.  In light of this, a query can be represented as a set of attributes:</p>
<p>Q = { m1a1, m2a2, m3a3 &#8230; }</p>
<p>where mN is a quantifier (the amount of attribute a), and aN is the attribute.  For example, a query for a flight may be:</p>
<p>Q = { &#8216;london to new york&#8217;:keywords, 0-9:hours, 0-300:dollars }</p>
<p>Even if this can be achieved, the user may often want to limit results to a certain class.  Yet the query does not always provide enough information to determine a unique class to return.  For example, a query for:</p>
<p>Q = { 0-300:dollars }</p>
<p>will return everything from flights to books.  Whilst allowing a user to filter results is possible, this is highly inefficient.  Alternatively, the user may specify the class of data to return:</p>
<p>Q = { &#8216;books&#8217;, 0-300:dollars }</p>
<p>In essence, we encode the class as an attribute, thus turning our search matrix into a more regular representation: document - attribute matrix, where attributes are not limited to boolean values (absence or presence of a keyword).  Given the above representation of the query, it may be possible to deduce a variation of the classic boolean model: a quantitative boolean model.</p>
<p><strong>Data Class Hierarchy</strong></p>
<p>Classes themselves form a hierarchy - books and gadgets is a subclass of items for sale, for example.  As in OOP, attributes are inherited from parent classes: all items for sale have a price, yet books also have an author.  Can such a directory of all things be constructed manually?  Tedious, yet possible.</p>
<p>An important question remains: how to determine the type of data.  Perhaps the set of extracted attributes will provide significant insight, or machine learning and classification techniques will do the trick.  Current vertical search engines solve it by manually specifying the data sources, however this is very inefficient.  Additionally, being able to identify the permanent URL of a single data object (not some list thereof) is another problem altogether.  Perhaps structured initiatives, such as providing RSS feeds of data objects, will prove to be effective solutions.</p>
<p>Indeed natural language processing techniques may allow us to determine nearly all quantitative attributes, and perhaps even classify data accurately.  However, will a single company be able to achieve this?  The distributed nature of the web is more likely to produce vertical search engines that focus on parts of the search matrix, solving a single problem really well, rather than a difficult problem poorly.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/20/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Defining Web OS</title>
		<link>http://www.morewhite.com/archives/19</link>
		<comments>http://www.morewhite.com/archives/19#comments</comments>
		<pubDate>Thu, 27 Apr 2006 19:08:16 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>rss</category>
	<category>web 2.0</category>
		<guid isPermaLink="false">http://www.morewhite.com/archives/19</guid>
		<description><![CDATA[After reading this article about Web Operating Systems I couldn&#8217;t help but making my view on the subject public: the only Web OS there will ever be already exists - its the browser.  

The concept of an operating system, stolen from the desktop world, does not belong on the Internet.  The major advantage [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://blogs.zdnet.com/web2explorer/?p=166">this article</a> about Web Operating Systems I couldn&#8217;t help but making my view on the subject public: the only Web OS there will ever be already exists - its the browser.  </p>
<p><a id="more-19"></a></p>
<p>The concept of an operating system, stolen from the desktop world, does not belong on the Internet.  The major advantage of the WWW is that it’s a distributed platform - each application chooses its own implementation, the libraries and web services it uses in the backend.  The Wikipedia <a href="http://en.wikipedia.org/wiki/WebOS">definition</a> of a Web OS is ridiculous – <i>a set of abstractions, such as a file-system, for networked applications</i>.  Except the only abstraction in a distributed system is the protocol.  Web services like Amazon’s S3 file-system already provide such functionality.  Why would we make web applications dependant on a standard set of libraries and APIs of a Web OS when the Internet provides us with the freedom of choice?  In fact, specifications like BPEL already allow us to define business processes that dynamically determine which web services to use during execution.</p>
<p>So if web applications don&#8217;t need the services provided by a Web OS, what does a Web OS actually do?  Perhaps it’s a convenient container that allows us to run multiple web applications side by side?  Indeed so, however isn’t that the purpose of the browser?  Why have another container, another layer of abstraction?  How efficient would such a container be?  Assuming its written in Javascript and HTML, not very.  Why not simply improve the browser – after all it already is the default runtime platform for any web application.</p>
<p>Of course a standard set of libraries, like GUI libraries, are great.  They standardize the user experience across applications.  And we already have them.  However the trick is, as in the real world, in mass adoption, not constraints of an OS.</p>
<p>We already have the basic components of a Web OS: the distributed web applications functioning like services and their runtime environment – the browser.  What may be lacking is a central view of our data across all these distributed applications.  I believe that this is what will come to be known as ‘the homepage’.  And it’s not far fetched: RSS can already make much of that happen.  What’s needed is browser support for such features and a few basic specs.  </p>
<p>To conclude, browsers are the operating systems of the Web.  They should provide sophisticated client-side APIs for ajax web applications to make use of: desktop notifications, desktop integration through drag-and-drop, client-side data cache, secure access to the file-system, and so on.  Why browsers remain dinosaurs is beyond me.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/19/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>White Web Filter</title>
		<link>http://www.morewhite.com/archives/18</link>
		<comments>http://www.morewhite.com/archives/18#comments</comments>
		<pubDate>Wed, 29 Mar 2006 11:01:08 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>web 2.0</category>
		<guid isPermaLink="false">http://www.morewhite.com/archives/18</guid>
		<description><![CDATA[Here is an overview of recent web 2.0 announcements.  I&#8217;ll try to make this a weekly post.
- Facebook turns dows $750M offer, hoping to fetch $2 billion [1]
- Zopa - a person-to-person lending company based in London raises $15M [1]
- Jobby Launches - job hunting web 2.0 style
- Riya Launches - photo search with [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an overview of recent web 2.0 announcements.  I&#8217;ll try to make this a weekly post.</p>
<p>- <a href="http://www.facebook.com">Facebook</a> turns dows $750M offer, hoping to fetch $2 billion [<a href="http://feeds.feedburner.com/Techcrunch?m=731">1</a>]<br />
- <a href="http://www.zopa.com">Zopa</a> - a person-to-person lending company based in London raises $15M [<a href="http://www.pheedo.com/click.phdo?i=9dc5060764b8cf451d165f3b3d6d4c50">1</a>]<br />
- <a href="http://www.gojobby.com">Jobby</a> Launches - job hunting web 2.0 style<br />
- <a href="http://www.riya.com">Riya</a> Launches - photo search with facial recognition, long rumored to be acquired by Google<br />
- PayPal Mobile Launches - not too late to beat <a href="http://www.textpayme.com/">TextPayMe</a> [<a href="http://mobilecrunch.com/2006/03/22/paypal-goes-mobile/">1</a>]<br />
- Beyond AJAX: HTTP Streaming [<a href="http://www.irishdev.com/NewsArticle.aspx?id=2166">1</a>]</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/18/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Web Applications Don&#8217;t Belong on the WWW</title>
		<link>http://www.morewhite.com/archives/17</link>
		<comments>http://www.morewhite.com/archives/17#comments</comments>
		<pubDate>Sun, 12 Mar 2006 14:52:47 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>ui</category>
		<guid isPermaLink="false">http://www.morewhite.com/archives/17</guid>
		<description><![CDATA[The World Wide Web was not designed for Web Applications, and is a dead end for application developers.  Let&#8217;s put things into perspective.
After TCP/IP has been standardized as the protocol of the Internet, Tim Berners-Lee invented its first great application - the World Wide Web: a simple collection of hyperlinked documents.  Each document [...]]]></description>
			<content:encoded><![CDATA[<p>The World Wide Web was not designed for Web Applications, and is a dead end for application developers.  Let&#8217;s put things into perspective.</p>
<p>After TCP/IP has been standardized as the protocol of the Internet, Tim Berners-Lee invented its first great application - the World Wide Web: a simple collection of hyperlinked documents.  Each document is identified by a fixed URL address, and written in a mark-up language called HTML.  The documents are meant to be viewed in a web browser, which in turn uses a protocol for publishing and receiving HTML documents known as HTTP which works over TCP/IP.<br />
<a id="more-17"></a></p>
<p>This web of information proved extremely popular for large text collections, such as newspapers, encyclopaedias, blogs, etc.  Similar to Adobe Reader and the PDF format, the web browser - a simple tool for reading and navigating HTML documents, proved extremely easy and safe to use for a long time.  Web directories such as Yahoo! were created in an attempt to classify all of these documents, and make them easy to find.</p>
<p>Everything was simple until developers figured out a way to generate HTML documents dynamically, for each client request.  Instead of static documents that are published by users and read by users, these documents are generated using an application and can thus be different for every user.  A way to pass parameters along with such requests in URLs also became popular, allowing HTML pages to act as functions, rather than documents.  Such functions quickly became building blocks of complete applications that visualized their results using the popular HTML format so that they could also be accessed through the browser.  This highly inefficient approach has many flaws, most notably:</p>
<p>- Whole document has to be generated and transferred to the client even if a small part of it changes with each request.<br />
- Applications typically have internal state that browsers don&#8217;t know anything about.  This state may be lost if the user navigates back or to a random document altogether.</p>
<p>More concrete approaches to delivering applications inside the browser, such as Sun Microsystems’ Java Applets and Web-Start have failed miserably.  Downloading and running code on-demand inside the browser almost seemed a failed cause.  That is, until JavaScript proved that HTML documents can be made more interactive and animated without giving up on security.  As browsers evolved, so did their support for JavaScript – a hack used to embed code within an HTML document.  Most importantly, recent support for the XmlHTTPRequest object allows JavaScript to request new documents in the background, and update parts of the current document without user’s intervention – a technique commonly knows as AJAX.</p>
<p>It is amazing how far we have stretched the WWW and humble HTML, without ever considering its intentions.  AJAX now allows us to interact with an application as if it’s a single HTML document.  We have successfully hacked existing technologies into a way to deliver something it wasn’t meant to, moving ourselves away from the hyperlinked web of information published by people.</p>
<p>Google would me ultimately perfect without such hacks, and information on the web would be much more readily accessible, not hidden behind applications and databases.</p>
<p>Content on the web should be static, with a unique address – URI to identify it and share it with others.  The purpose of applications is to create that content and publish it on the web, rendering it as HTML document, be it a database, a blog, a word document, etc.  But why should these applications be HTML documents themselves, when HTML is extremely poor in rendering common software components, and was never designed to do so?  Why can’t we stick to interactive desktop applications, like iPhoto, iWeb, and allow them to publish our content to the web?</p>
<p>Is it because web applications are easier to write?  I don’t think so.  The main reason is *accessibility*.  We want users to access our applications without having to download, install, and configure them.  We also want our data to reside on servers where we can access it from anywhere, but that’s not really an issue – desktop applications can easily save our data remotely, to iDisk, WebDAV, or an FTP drive.</p>
<p>What we want is for the application code to run on the server, yet have it draw the user interface as a typical desktop application on our screen.  Sounds impossible?  Not at all, such technology has existed on Linux for years: simply launch a remote application and tell it to draw on client’s X server.  However, this has never really taken off primarily because of speed issues.  The problem is that the application draws primitives – lines and shapes, instead of pre-defined components (as with HTML), requiring large network throughput.</p>
<p>An alternative approach, somewhat similar to HTML, would be to define a standard mark-up that can be used to render the UI of a desktop application.  Such mark-up would define common UI components (textbox, toolbar, menu, window, button, etc) as XML elements.  Similar idea will be used in Vista, knows as XAML.  UI events will cause new requests to be sent to the server, and only the required changes in the UI will be sent to the client.  Thus, an application can be launched by providing the ‘application browser’ with the URL of the document containing UI mark-up.  The browser can then render the mark-up using operating system’s native GUI library.</p>
<p>Such an approach would mean total security too – no custom code is ever run by the client.  Alternatively, support for JavaScript will make such applications more ‘offline’, and will require connectivity with the server only for data access – as with AJAX.  In either case, it will bring the same UI standard experience to Internet applications.</p>
<p>I plan to begin working on this in the near future.  One question still bugs me though: what if users actually prefer the look and feel of HTML-based applications?  Would you want Flickr to look like a desktop application?
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/17/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>UI Design in Web Applications</title>
		<link>http://www.morewhite.com/archives/15</link>
		<comments>http://www.morewhite.com/archives/15#comments</comments>
		<pubDate>Fri, 17 Feb 2006 14:27:15 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>design</category>
		<guid isPermaLink="false">http://www.identicli.com/archives/15</guid>
		<description><![CDATA[Flexibility is Overrated: Having a ton of features isn&#8217;t great, it&#8217;s information overload.  The geeks will always ask you for more - resist.  Reduce decision making to a minimum.  At any page of your application the user should only see the features relevant to the current context, not the application as a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Flexibility is Overrated:</strong> Having a ton of features isn&#8217;t great, it&#8217;s information overload.  The geeks will always ask you for more - resist.  Reduce decision making to a minimum.  At any page of your application the user should only see the features relevant to the current context, not the application as a whole.  Web applications are like story-boards: the user is meant to navigate them, being assisted as much as possible at every step.  <a id="more-15"></a></p>
<p><strong>Menus Hide Functionality:</strong>  Placing functions within menus makes them extremely difficult for users to find.  Don&#8217;t do it.  Don&#8217;t mimic desktop applications that have all of their functions always available to you from a single giant menu or toolbar, simply disabling menu items when they are not applicable.  Operations should always be visible next to the object they apply to.  A typical example is photo manipulation.  You can allow the user to manipulate thumbnails directly using some menu.  A better solution is to have the thumbnail link to a separate page that allows manipulations on that object.</p>
<p><strong>One View at a Time:</strong>  Whilst ajax allows us to have sophisticated desktop style interaction, showing and updating multiple views, this is generally not recommended.  The reason the web became so popular is due to simple story-board pages that reduce decision making to a minimum.  Avoid using DHTML for pop-outs and having multiple windows - they don&#8217;t give the user a clear choice since the main UI is still operational.  Instead, cover the current UI completely, like <a href="http://www.huddletogether.com/projects/lightbox/">lightbox</a>.</p>
<p><strong>One Object at a Time:</strong> Each page should contain at most one object, and may have a side-pane on the right listing possible operations (functions) on that object.  For example, a list of photos as thumbnails is an object, with a side-pane allowing us to to refine that list.  However, the sidepane should not allow operations on individual photos - these should be moved to a seperate page.</p>
<p><strong>Operations are Vertical:</strong> Toolbars are horizontal because they are static.  Lists of operations are context sensitive.  Always list operations applicable to the current viewed object vertically on the right side of the page.  This differentiates operations from navigation, and allows any number of operations to be accessable by scrolling.  Toolbars have limited space.</p>
<p><strong>Navigation is Horizontal:</strong>  Since operations are vertical, this is a natural choice.  This is obviously where the logo belongs too.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/15/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Database Abstraction Layer for PHP</title>
		<link>http://www.morewhite.com/archives/14</link>
		<comments>http://www.morewhite.com/archives/14#comments</comments>
		<pubDate>Thu, 09 Feb 2006 20:22:47 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>php</category>
		<guid isPermaLink="false">http://www.identicli.com/archives/14</guid>
		<description><![CDATA[Developing extate I&#8217;ve realized how disorganized database access is in PHP.  So I&#8217;ve developed SDBA - a simple database abstraction layer for PHP.  You&#8217;ve probably heard of ADOdb, PEAR DB, etc, and already concluded that they are not worth the time (to learn) or performance issues that come with them.  Simple Database [...]]]></description>
			<content:encoded><![CDATA[<p>Developing <a href="http://www.extate.com">extate</a> I&#8217;ve realized how disorganized database access is in PHP.  So I&#8217;ve developed SDBA - a simple database abstraction layer for PHP.  You&#8217;ve probably heard of ADOdb, PEAR DB, etc, and already concluded that they are not worth the time (to learn) or performance issues that come with them.  Simple Database Abstraction is different.  <a href="/sdba">Click here to learn more and download the first release</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/14/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Extate.com Launched</title>
		<link>http://www.morewhite.com/archives/12</link>
		<comments>http://www.morewhite.com/archives/12#comments</comments>
		<pubDate>Sun, 05 Feb 2006 21:17:51 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>search</category>
		<guid isPermaLink="false">http://www.identicli.com/archives/12</guid>
		<description><![CDATA[The real estate search engine I&#8217;ve been working on for the past few months is now ready for (beta) action.  Check it out, and let me know what you think. The engine uses a spider (written in C#, works under mono of course) to crawl some large agents (UK only for now) and extracts [...]]]></description>
			<content:encoded><![CDATA[<p>The real estate search engine I&#8217;ve been working on for the past few months is now ready for (beta) action.  <a href="http://www.extate.com">Check it out</a>, and let me know what you think. The engine uses a spider (written in C#, works under mono of course) to crawl some large agents (UK only for now) and extracts property information into a MySQL database. I&#8217;ve attempted to stick to LAMP environment as much as possible, except for the spider itself (although it would be interesting to implement it in PHP some day, as it is not performance focused). Everything is highly automated: crawling is done in many cases just by pointing the spider to the site, and I&#8217;m about to automate extraction completely.</p>
<p><a id="more-12"></a>The implementation is highly focused on tags. Locations are tags, so search is keyword driven, not map-driven. This should be more user-friendly, minimalistic, Google-like. I didn&#8217;t integrate it with google maps because that would require geocoding all addresses, and that costs $$$. The only other site that does something similar is <a target="_blank" href="http://www.ononemap.com">ononemap</a> which is completely map driven.  I hope my approach will appeal to some, especially those not familiar with maps.</p>
<p>Some interesting features are:</p>
<ul>
<li>Autocompletion of locations (a-la Google Suggest)</li>
<li>Related locations are shown to expand the search</li>
<li>Multiple tags can be selected (eg. waterside, lift, porter) and de-selected</li>
<li>Selecting tags and changing price filters updates properties in the background (ajax)</li>
</ul>
<p>Many more things are to come, including RSS feeds for results, email alerts, and a REST API to allow mashups with the service. I&#8217;d love to start making this international, although <a target="_blank" href="http://www.trulia.com">trulia</a> already has something similar for US.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/12/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Defining Syndication</title>
		<link>http://www.morewhite.com/archives/10</link>
		<comments>http://www.morewhite.com/archives/10#comments</comments>
		<pubDate>Tue, 01 Nov 2005 13:53:00 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>rss</category>
	<category>web 2.0</category>
		<guid isPermaLink="false">http://www.identicli.com/?p=10</guid>
		<description><![CDATA[I don&#8217;t see what the deal is with syndication. I think its a fancy term for a directory listing in XML. Just like online shops provide their products as XML feeds for various affiliates to advertise, RSS &#038; Atom feeds advertise content. As a directory listing, RSS should only contain a preview / thumbnail / [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t see what the deal is with syndication. I think its a fancy term for a directory listing in XML. Just like online shops provide their products as XML feeds for various affiliates to advertise, RSS &#038; Atom feeds advertise content. As a directory listing, RSS should only contain a preview / thumbnail / summary of content, thus allowing it to act as an advertisement similar to adSense and sponsored search results.</p>
<p><a id="more-10"></a>Yes, I know, you want access to the full content in your RSS reader, not just the summary. But that isn&#8217;t the purpose of RSS. As a listing, it simply points to objects. If you want your RSS reader to show you these objects directly (instead of viewing them in your browser) they have to be written that way: the content must provide an alternative rendering of itself (HTML, XML, plain text, video, etc) that your RSS reader would understand (note: your RSS reader may understand HTML already, so what you really want is to display only the text, removing any ads that the content provider may need to generate revenue and publish that content in the first place). But of course, content rendering is in the hands of the publisher.</p>
<p>Yet don&#8217;t underestimate the power of a universal format for a directory listing. What I find surprising is the fact that the web never had one from the very beginning, because after all its a distributed file system. Directory listings serve the purpose of a sitemap, allowing search engines and RSS readers to syndicate content (Google&#8217;s sitemaps can be in RSS) and easily determine what has been added/updated/modified. It is then somewhat surprising that RSS came from the blogosphere, as it is a general method of formating a directory listing that may soon become a building block of the WWW.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/10/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Google Base to replace the WWW</title>
		<link>http://www.morewhite.com/archives/9</link>
		<comments>http://www.morewhite.com/archives/9#comments</comments>
		<pubDate>Wed, 26 Oct 2005 14:06:00 +0000</pubDate>
		<dc:creator>Artemi Krymski</dc:creator>
		
	<category>web 2.0</category>
		<guid isPermaLink="false">http://www.identicli.com/?p=9</guid>
		<description><![CDATA[If anyone has missed the announcement, Google Base is an upcoming repository of everything, that supports schemas for objects, user created attributes, bulk uploads and future integration with search. Here are some screenshots [1, 2, 3].
Isn&#8217;t this a centralized, google-owned, semantic web anyone? Something that the RDF guys, including Tim Berners-Lee would sweat over and [...]]]></description>
			<content:encoded><![CDATA[<p>If anyone has missed the <a href="http://arstechnica.com/news.ars/post/20051025-5480.html">announcement</a>, Google Base is an upcoming repository of everything, that supports schemas for objects, user created attributes, bulk uploads and future integration with search. Here are some screenshots [<a href="http://www.seweso.com/blog/google%20base.png">1</a>, <a href="http://www.seweso.com/blog/google-base2.png">2</a>, <a href="http://www.seweso.com/blog/google-base-preview.png">3</a>].</p>
<p>Isn&#8217;t this a centralized, google-owned, <a href="http://www.w3.org/2001/sw/">semantic web</a> anyone? Something that the RDF guys, including Tim Berners-Lee would sweat over and throw shit at. If anybody, Google may have the potential to pull it off, although I&#8217;d hate to see that happen. The monopoly would be far beyond Microsoft, it would wipe out Craigslist, eBay, Amazon, everything.</p>
<p><a id="more-9"></a>However, that&#8217;s not Google&#8217;s kinda marketing. They would claim that you own the content, and they are just a bookstore. So just as you can sell something on eBay, you should be able to sell it on Google. Fair enough. But then everything would end up on Google, and that&#8217;s scary. Why have multiple bookstores when you can have one with everything in it, and its next door to everyone?</p>
<p>How is a distributed semantic web different? RDF standards describe the data structure in a common fashion, enabling search engines to aggregate this data. Anybody can publish something somewhere, and hope for it being found (or submit URL to google?).</p>
<p>In either case, service and application-centric web is being replaced by a data-centric one, where user&#8217;s own the data, so no application boundaries exist. The only functions needed are publish and search. What&#8217;s left for businesses to do apart from hosting? Show me the $$$.</p>
<p>The next step?  Fine grained permissions for web resources.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.morewhite.com/archives/9/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
