<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3879455784222966918</id><updated>2012-02-16T04:32:30.678-08:00</updated><category term='proxy'/><category term='OAuth'/><category term='AJAX'/><category term='Semantic Web'/><category term='Integration'/><category term='SOA'/><category term='gdd'/><category term='Programming'/><category term='gaia'/><category term='Web'/><category term='owl'/><category term='conference dConstruct'/><category term='rdf'/><category term='OCentric'/><category term='Community'/><category term='SaaS'/><category term='comfortid'/><category term='lifefeed'/><category term='Ajax IM social Jabber chat'/><category term='CCC'/><category term='aggregator'/><category term='Android'/><category term='PDT'/><category term='opens source'/><category term='facebook'/><category term='LAMP'/><category term='jQuery'/><category term='CSS'/><category term='java'/><category term='Culture'/><category term='101senses'/><category term='Magento'/><category term='Design'/><category term='jenabeans'/><category term='HTC Hero'/><category term='advertisments browser'/><category term='google learn'/><category term='ux'/><category term='googlewave'/><category term='Google'/><category term='Open Source'/><category term='OpenID'/><category term='PHP'/><category term='google earth'/><category term='Content Management'/><category term='In Lithuanian'/><category term='User Experience'/><category term='rpxnow'/><category term='HTML'/><category term='drupal'/><category term='world wind'/><category term='Technologies'/><category term='openid wordpress'/><category term='JavaScript'/><category term='WAMP'/><category term='Commerce'/><category term='open web'/><category term='Books'/><title type='text'>My Perspective</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.taroza.lt/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default?start-index=26&amp;max-results=25'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-2942861373178242456</id><published>2010-11-17T08:52:00.000-08:00</published><updated>2011-09-16T08:52:12.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Commerce'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><category scheme='http://www.blogger.com/atom/ns#' term='Content Management'/><title type='text'>Drupal Commerce</title><content type='html'>&lt;em&gt;I posted on Optaros website (&lt;a title="Drupal Commerce" href="http://www.optaros.com/blogs/drupal-commerce" target="_blank"&gt;EN&lt;/a&gt; | &lt;a title="Drupal Commerce" href="http://www.optaros.de/blogs-2/drupal-commerce-modul" target="_self"&gt;DE&lt;/a&gt;). Here is the copy of the post:&lt;/em&gt;&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;br/&gt;Drupal has always been good piece of  open source software for content management. We use it at Optaros as one  of the core components of OCentric. However, Drupal could never stand  its ground as a solid e-commerce platform. With the new Commerce module  Drupal is moving that direction.&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;It hasn’t been long since online businesses realized that there are a  couple of buzzwords to stick to: social media and SEO. Indeed, social  sites are very good place to be and engage with (potential) customers,  not mentioning that these sites enable word of mouth (aka viral  marketing). Search engine optimization helps to save money and still  allow showing up high in Web search results; normally it goes hand in  hand with quality content to please not only Web crawlers but  (potential) customers as well.&lt;br/&gt;&lt;br/&gt;Actually, what this implies is that e-shop owners have very special needs that go something like this:&lt;br/&gt;&lt;br/&gt;“I want to create a website where I want to display my products.  There I’ll have discount campaigns. The information about them should be  sent to customers, but not intrusively (otherwise it goes to spam)  rather in a friendly fashion, e.g. somebody tells to friends about it.  Then we can introduce some sort of reward system for those customers who  brought other customers. Also we want people to come to our website  often, therefore we’ll have a blog and a lot of information about  products and the field in general. People should have their profile page  and see what their friends are buying. We also expect that the shop is  something like Amazon.com where you have ratings, comments, and  recommendations.” And so on, and so on.&lt;br/&gt;&lt;br/&gt;I come across similar business requirements very often. What it comes  down to, as far as technology is concerned, is the following:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Shopping cart&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Content management system&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Social stuff (integration to social networks or local features)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;In Optaros parlance it rounds up to the triple of Community, Content, and Commerce (aka C3C). In fact that’s what gave birth to &lt;a href="http://www.optaros.com/blogs/www.optaros.co.uk/solution/ocentric"&gt;OCentric&lt;/a&gt;.&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Drupal 6.x and Ubercart&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Drupal is a content management system that allows creating community  oriented sites very easily. The last piece of the puzzle – commerce –  for quite some time was the &lt;a href="http://www.ubercart.org/"&gt;Ubercart &lt;/a&gt;module. I don’t understand why it got so popular. Even for the simplest shop there was something missing.&lt;br/&gt;&lt;br/&gt;Ubercart is almost a framework on its own: you need to learn it and  live with its limitations (or hacks). My overall impression about  Ubercart is that it has many features you normally expect from an  e-commerce platform, but as soon as you start working with it you  realize that it is a big work around.&lt;br/&gt;&lt;br/&gt;Ubercart’s approach is – sell nodes. A node (before Drupal 7.x) is a  basic content type. Ubercart is implemented in a way that products are  node types, but it’s very unnatural to treat a product as a content  type. This is probably the biggest flaw of Ubercart’s architecture (not  sure if this has been somehow addressed in Ubercart 3.x).&lt;br/&gt;&lt;br/&gt;While in many cases Ubercart does the thing – you can sell stuff on  your Drupal site – I stumbled on so many problems that I almost lost  hope to have a cool e-shop with Drupal. Just to list a few:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;It’s nearly impossible to customize the checkout page without hacking Ubercart’s core.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Internationalization doesn’t work, because in Drupal a new node is  created as a translation, which means a new product gets created as  well.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Presentation is not well decoupled from data model, therefore theming any part of frontend is very tedious.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;strong&gt;Drupal 7.x and Commerce&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Drupal 7.x introduced a lot of enhancements both for module and UX  developers. The most famous one is the Field API. Having realized the  benefits that Drupal 7.x brings Ryan Szrama, the creator of Ubercart,  has launched the Drupal Commerce project.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://drupal.org/project/commerce"&gt;Drupal Commerce&lt;/a&gt; is the reimplementation of Ubercart’s featureset on Drupal 7.x. It’s  not a port of Ubercart 2.x but literally a reimplementation. &lt;a href="http://vimeo.com/14406353"&gt;You can see the video&lt;/a&gt; of Ryan presenting his work on the module at DrupalCon 2010 in Copenhagen.&lt;br/&gt;&lt;br/&gt;The Commerce module heavily relies on native Drupal 7.x features,  therefore there’s barely any risk that it will become a framework on its  own. While Drupal 7.x remains a content management system, it allows  for more generic entities than just content. For example, products,  order, order line items can all be first class citizens in Drupal 7.x.  Therefore the Commerce module is architected in a way that e-shop owners  can sell products, without pretending that a node content type is a  product. Moreover, the data model is decoupled from presentation, and  multilingual shop is no longer an issue as it was in Ubercart.&lt;br/&gt;&lt;br/&gt;What makes the Commerce module even more powerful and flexible is  that it depends on several great modules (Address Field, Entity API,  Rules, Views). For example, Views – almost everything visible in Drupal  Commerce is a view. That means you can switch it on/off or customize  easily. This is invaluable for checkout and shopping cart pages.&lt;br/&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;In version 7.x Drupal has become quite a generic framework, sort of  entity management system, that has built-in content and community  features. The Commerce module plugs in very nicely into this framework  and solves a lot of issues of its predecessor Ubercart. Given that many  businesses need to have content, community and commerce in one, Drupal  7.x may become an option as it matures.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-2942861373178242456?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/2942861373178242456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/11/drupal-commerce.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2942861373178242456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2942861373178242456'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/11/drupal-commerce.html' title='Drupal Commerce'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-5382482818500004127</id><published>2010-08-31T00:55:00.000-07:00</published><updated>2011-09-16T08:52:11.952-07:00</updated><title type='text'>DrupalCon, Copenhagen 2010. Impressions</title><content type='html'>I won't hide, the most interesting and relevant session at &lt;a href="http://cph2010.drupal.org/" target="_blank"&gt;DrupalCon&lt;/a&gt; for me was on &lt;a title="Drupal Commerce" href="http://cph2010.drupal.org/sessions/drupal-commerce-setting-shop-drupal-7" target="_blank"&gt;Drupal Commerce&lt;/a&gt;. &lt;a title="Ryan Szrama" href="http://cph2010.drupal.org/user/1238" target="_blank"&gt;Ryan Szrama&lt;/a&gt; is doing amazing job with reingineering &lt;a title="Ubercart" href="http://drupal.org/project/ubercart" target="_blank"&gt;Ubercart&lt;/a&gt;, and I'm really happy to have been able to talk to him in person.&lt;br/&gt;&lt;br/&gt;The reason why I'm interested in the Drupal Commerce module is that I worked on Magento and Drupal integration for &lt;a title="OCentric" href="http://www.optaros.com/solution/ocentric" target="_blank"&gt;OCentric&lt;/a&gt; at my previous company (Optaros) and I've seen how difficult it is to have content, community and commerce mix in one solution. Therefore Drupal 7 + Drupal Commerce mix looks really promising. Just think about having a piece of content and adding a "product field" to it, formatted with "Add to cart" button; or the opposite - take a product page and add a piece of content to it as a field, which can have its own comments, ratings, etc. Really flexible and powerful!&lt;br/&gt;&lt;br/&gt;One sentence by Ryan got imprinted in my brain:&lt;br/&gt;&lt;blockquote&gt;&lt;em&gt;"Ubercart was the first PHP and MySQL project in my career, so you guys are pretty brave to use it in production"&lt;/em&gt;&lt;/blockquote&gt;&lt;br/&gt;Another session that stood out was the keynote by Rasmus Lerdorf, the creator of PHP. It really corrected the way I look at PHP. He also showed some tricks for debugging and tracing the performance problems for Drupal. It was pretty impressive how in 15 minutes he spotted that the bottleneck in Drupal is the rendering engine which he suggested to rewrite in C/C++.&lt;br/&gt;&lt;br/&gt;One sentence by Rasmus that imprinted in my brain (with some distortion):&lt;br/&gt;&lt;blockquote&gt;&lt;em&gt;"PHP has always been a templating language. All the heavy coding must be done in C"&lt;/em&gt;&lt;/blockquote&gt;&lt;br/&gt;The &lt;a title="Varnish" href="http://cph2010.drupal.org/sessions/varnish-http-cache-server-poul-henning-kamp" target="_blank"&gt;session on Varnish&lt;/a&gt; was probably the geekiest of the ones I attended, but &lt;a title="Paul-Henning Kamp" href="http://cph2010.drupal.org/user/29684" target="_blank"&gt;Paul-Henning Kamp&lt;/a&gt; (the creator) made his point - you have to use Varnish!&lt;br/&gt;&lt;br/&gt;And I was totally impressed with &lt;a title="Aegir" href="http://cph2010.drupal.org/sessions/aegir-one-drupal-rule-them-all" target="_blank"&gt;Aegir&lt;/a&gt;, how come I've never stumbled upon it? There is no doubt that this tool combined with drush_make will save the world from the Drupal deployment hell.&lt;br/&gt;&lt;br/&gt;All in all, there was quite some buzz about Drupal 7 during the conference, many serious modules are developed directly for 7.x. This is mostly due to the fact that 7.x has this concept of entity (a field) as opposed to nodes/comments, which solves a lot of problems. I'm really looking forward to Drupal 7 and all the goodies that'll come with it.&lt;br/&gt;&lt;br/&gt;This was my first DrupalCon, and I must say that the crowd was really amazing. A bunch of friendly and easygoing people.&lt;br/&gt;&lt;br/&gt;&lt;img class="alignnone" title="DrupalCon Copenhagen 2010 participants" src="http://farm5.static.flickr.com/4140/4923618478_d02285c1ea_z.jpg" alt="DrupalCon Copenhagen 2010 participants" width="640" height="298" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-5382482818500004127?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/5382482818500004127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/08/drupalcon-copenhagen-2010-impressions.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5382482818500004127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5382482818500004127'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/08/drupalcon-copenhagen-2010-impressions.html' title='DrupalCon, Copenhagen 2010. Impressions'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4140/4923618478_d02285c1ea_t.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-2158854100240504227</id><published>2010-02-22T23:42:00.000-08:00</published><updated>2011-09-16T08:52:11.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>Understanding the Service Oriented Architecture (SOA)</title><content type='html'>It's a pretty old term this SOA. A software engineer (or systems integrator) normally associates it to the interface based software design. Just take a bunch of components, define interfaces between them and implement those interfaces. Then each component suddenly can be called a "service".&lt;br/&gt;&lt;br/&gt;Intuitively a service is something that you have an interface to and something that you don't care about how it's implemented.&lt;br/&gt;&lt;br/&gt;There is a trend on the Web that websites expose their APIs to the outside world. E.g. YouTube, GCalendar, Twitter, etc. So suddenly those webapps become "services".&lt;br/&gt;&lt;br/&gt;Consequently the Internet is a platform for running a huge application called "Web" that is designed in SOA way, where each site is (should be) a service.&lt;br/&gt;&lt;br/&gt;Unfortunately we are still not building our webapps to support this. We're stuck with our software engineering mentality while we actually need to switch to Web engineering.&lt;br/&gt;&lt;br/&gt;I think every feature of any webapp should be a service. Why coding and implementing your own contact form, your own blog, your own newsletter subscription module, your own user profile pages, etc.? Even if you have those features in your software package out of the box...&lt;br/&gt;&lt;br/&gt;Looks like I'm trying to promote mashups, but that's only the tip of an iceberg. Imagine that you have a website that you properly Web-engineered. Say you built the contact form feature as a service and it's hosted on the cloud. And this feature is integrated into your CMS. There is a cool outcome at this point: you provide yourself with a SaaS solution. So you can actually start renting it to others as well. Ok maybe renting SaaS contact forms is not your core business... so what about doing it with the core business features? E.g. social graph, status updates, shopping cart, etc.?&lt;br/&gt;&lt;br/&gt;Probably not everyone will go this way but just look at the beauty of this all, we've got services like getsatisfaction.com for feedback collection, discuss.com for comments, gravatar for a personal picture, openID for login, etc. etc. etc. The more a service is specialized the more useful it is.&lt;br/&gt;&lt;br/&gt;For instance, a business model for Twitter could be renting their status updating feature to various social networks. Anyway every one of them are reimplementing it: LinkedIn, Facebook, MySpace, etc. Such a waste of time.&lt;br/&gt;&lt;br/&gt;--&lt;br/&gt;Posted from my Android&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-2158854100240504227?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/2158854100240504227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/02/understanding-service-oriented.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2158854100240504227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2158854100240504227'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/02/understanding-service-oriented.html' title='Understanding the Service Oriented Architecture (SOA)'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-1101251264037713890</id><published>2010-02-16T10:59:00.000-08:00</published><updated>2011-09-16T08:52:11.916-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='101senses'/><title type='text'>You Know, "running a business..."</title><content type='html'>As soon as I tell somebody that I'm starting a business with several friends - I get a question: "what kind of business". And here a difficult part starts… At this early stage of &lt;a title="101senses" href="http://101senses.ch"&gt;101senses&lt;/a&gt; it's pretty difficult to explain what we're trying to do, what we'll be in 1-3 years, what motivates us, etc. In fact, when I take a moment and think about it then things become quite straightforward and clear. So let me describe what &lt;a title="101senses" href="http://101senses.ch"&gt;101senses&lt;/a&gt; is all about.&lt;br/&gt;&lt;br/&gt;We are currently 5 guys in the team and we want to do fun stuff. The current job is a bit disappointing: you get on a project, you talk to clients, you start building a solution hoping that the client will have guts to go with something fancy and innovative. But then you end up in this quality vs. time vs. money triangle, and you just do what you have to do, not always what you want to. Well, that's IT consulting.&lt;br/&gt;&lt;br/&gt;From several e-commerce projects I learned one thing: e-commerce is a good business. It's much better than building e-commerce solutions for others. For instance, a &lt;a title="Private Sales" href="http://www.magentocommerce.com/extension/2746/private-sales"&gt;private sales module&lt;/a&gt; for Magento community edition costs 110$, and guess what's the revenue of a private sales e-shop...&lt;br/&gt;&lt;br/&gt;But doing commerce is tough, and it's totally different from what me (and most of the &lt;a title="101senses" href="http://101senses.ch"&gt;101senses&lt;/a&gt; team) is used to, because a big part of the business (at least in the beginning) is not virtual. One has to look for products that sell, people that buy, models that generate cash. All in all, totally new challenges from the ones in the IT world. So now we have the saying "IT part is easy". It's a lot of fun to observe how five guys are struggling with product sourcing and &lt;a title="Otaku" href="http://www.ted.com/talks/lang/eng/seth_godin_on_sliced_bread.html"&gt;otaku&lt;/a&gt; searching - the two things that people have been doing for ages.&lt;br/&gt;&lt;br/&gt;As a start we decided to sell stockings for girls. Besides the fact that for guys it's very exciting to deal with this kind of a product on a daily basis, there is real business rationale behind: stockings have a nice margin, take little space, and are easy to ship. So why not? Also if you look around the Web it's crammed ugly and difficult to use e-shops. In the times of the person-centric Internet this does not make sense and is an area for healthy competition. It's obvious that an e-shop that provides great user experience but the same products will win. We set an objective for &lt;a title="101senses" href="http://101senses.ch"&gt;101senses&lt;/a&gt; to strive for the best customer experience in our e-shops. &lt;a title="Prettify" href="http://prettify.ch"&gt;Prettify&lt;/a&gt; is going to be our first attempt.&lt;br/&gt;&lt;br/&gt;Nowadays it's quite easy to implement an e-commerce solution we decided to work on 2 shops in parallel. We call them ShopA and ShopB. &lt;a title="Prettify" href="http://prettify.ch"&gt;Prettify&lt;/a&gt; is currently our ShopA. The goal of it is to be able to test our process, i.e. get a product, sell it, and deliver it to the customer - no other requirements. ShopB is going to be based on a concept. It could happen that it will be an evolution of the ShopA but it's not excluded that it can become a totally different shop from Prettify. We're working on that by reading about &lt;a title="Exciting Commerce" href="http://excitingcommerce.de"&gt;exciting commerce&lt;/a&gt; and following various twitterers. We're also running from one conference to another, from one meet-up to another (check our calendar) and we're keeping an eye on fashion in general. It's getting more and more interesting everyday.&lt;br/&gt;&lt;br/&gt;Most importantly we've got culture of openness and sharing at &lt;a title="101senses" href="http://101senses.ch"&gt;101senses&lt;/a&gt;. There's no point in hiding what we do and how we do it. I believe it builds trust in the virtual reality - the Internet - the same way honesty does it in real life.&lt;br/&gt;&lt;br/&gt;To summarize:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;we're 101senses and we want to learn and do fun stuff&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;our first product is stockings on Prettify&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;at the core we've got the culture of openness and sharing&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;we like to engage into a public conversation online&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;we strive for technological innovation and great user experience on our e-shop&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-1101251264037713890?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/1101251264037713890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/02/you-know-business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1101251264037713890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1101251264037713890'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/02/you-know-business.html' title='You Know, &amp;quot;running a business...&amp;quot;'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-7110566999612393079</id><published>2010-01-28T23:52:00.000-08:00</published><updated>2011-09-16T08:52:11.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googlewave'/><category scheme='http://www.blogger.com/atom/ns#' term='101senses'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>Some Experience With Google Wave</title><content type='html'>For my personal projects I've got Trac setup (OForge to be more precise). Recently with several friends we started working on a new project - 101senses.ch - and for it we adopted Google Wave as a collaboration tool.&lt;br/&gt;&lt;br/&gt;Actually we started with the wiki on Trac. But after jumping on the wave wiki naturally became obsolete, old fashioned, inconvenient.&lt;br/&gt;&lt;br/&gt;Some observations about GWave:&lt;br/&gt;&lt;br/&gt;It reminds a wiki in some sense, just that collaboration happens real-time. You don't have to browse through versions and diffs just to see recent updates.&lt;br/&gt;&lt;br/&gt;The functionality of folders is ua bit cumbersome or sometimes even useless. At least I was not able to find any good use for them. The only thing I do is to apply a label "Meeting" with the saved search feature.&lt;br/&gt;&lt;br/&gt;I start to fear that as the number of waves increases it will be quite a mess. Even now with 20 waves we already have duplicates. And there is no way to unshare a wave or delete it for everyone.&lt;br/&gt;&lt;br/&gt;I really need workspaces. I'm working with different teams on different projects and mixing all the waves in the same pile just makes me loose an overview.&lt;br/&gt;&lt;br/&gt;Widgets are cool but where do I find them? Would be great to have some kind of an app market on the web.&lt;br/&gt;&lt;br/&gt;It's really great that GWave is open. Because I can extend it with my apps or change it with my own UI. I think it makes a lot of sense. If eventually GWave is adopted as a collaboration platform then we can expect many nice SaaS solutions showing up on the web. The competitive advantage will be determined by a set of features and the user experience, and we won't need to care about data portability.&lt;br/&gt;&lt;br/&gt;- posted from my Android&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-7110566999612393079?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/7110566999612393079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/01/some-experience-with-google-wave.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7110566999612393079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7110566999612393079'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/01/some-experience-with-google-wave.html' title='Some Experience With Google Wave'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-417822580440845952</id><published>2010-01-04T13:28:00.000-08:00</published><updated>2011-09-16T08:52:11.833-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Culture'/><category scheme='http://www.blogger.com/atom/ns#' term='In Lithuanian'/><title type='text'>“Liepsnojantis ledas” (“HotIce”) ir Šiaip Pamąstymai</title><content type='html'>Šiauliai, 2009-12-27, “Liepsnojantis ledas” - renginys, kurio džiaugiuosi nepraleidęs. Ir ne vien dėl to, kad ant jo neįtikėtinas figūras raitė įvairiausi čempionai, bet ir todėl, kad kažkuriuo momentu supratau, kaip visa tai yra gražu.&lt;br/&gt;&lt;br/&gt;Grožis yra sudėtingas dalykas ir man, savamoksliškai besigilinant į meną, jis ne visuomet apsireiškia. Pavyzdžiui, galiu klausytis Mocarto ausis pastatęs, bet kažkaip nepasiekia jis manęs, o va išgirdus Debussy, iš karto užlieja gerumo banga.&lt;br/&gt;&lt;br/&gt;O kas ten dėjosi! Moterys sukdamosi skraidė. Vyrai jas kilnojo ir mėtė į viršų. Broliai mindė viens kitą su pačiūžomis ir vartėsi kūlvirsčia. Vieni krito, po to kėlėsi, po to greitai, kaip vilkelis, sukosi. Kiti ne tik kojų, bet rankų ir net kaklo vikrumu vertė publiką aikčioti. Stuburo lankstumas, špagatai, salto... Jergutėliau, ir tai ant ledo, su pačiūžomis!&lt;br/&gt;&lt;br/&gt;Ačiū Povilui Vanagui ir Margaritai Drobiazko už jų Dailųjį Čiuožimą! Už tą romantišką plaukiantį šokį, kuris nuteikia taip pat gerai, kaip atlikus ar bent susiruošus atlikti kokį nors gerą darbą. Tai taurina, moko pajusti, gerbti ir didžiuotis vertybėmis.&lt;br/&gt;&lt;br/&gt;Turi žmogus, matyt, kažin kokį receptorių, apie kurį per biologijos pamokas nemokina, nes jį nelengva įsprausti į trijų eilučių apibrėžimą. Pas kiekvieną jis sudirginamas vis kitaip ir pasireiškia savaip. Pavyzdžiui, jeigu nugara nubėga šiurpuliukas, reiškia kažkas buvo pasakyta, sušokta, pamatyta, perskaityta, patirta... negi ne? F. Dostojevskis sakė, kad Grožis išgelbės pasaulį. Aš juo tikiu.&lt;br/&gt;&lt;br/&gt;Linkiu daug šiurpuliukų ir užliejančių bangų ateinančiais metais.&lt;br/&gt;&lt;div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;"&gt;&lt;!--[if gte mso 9]&amp;gt;  Normal 0      false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &amp;lt;![endif]--&gt;&lt;!--[if gte mso 9]&amp;gt;                                                                                                                                            &amp;lt;![endif]--&gt;&lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:"DejaVu Sans Condensed"; 	panose-1:2 11 6 6 3 8 4 2 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-419418369 1375794687 168042529 0 -2147483137 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0mm; 	margin-bottom:.0001pt; 	mso-pagination:none; 	mso-hyphenate:none; 	font-size:12.0pt; 	font-family:"DejaVu Sans Condensed","sans-serif"; 	mso-fareast-font-family:"DejaVu Sans Condensed"; 	mso-bidi-font-family:"Times New Roman"; 	mso-fareast-language:#00FF;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 72.0pt 72.0pt 72.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt;&lt;!--[if gte mso 10]&amp;gt; &amp;lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&amp;quot;Table Normal&amp;quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&amp;quot;&amp;quot;; 	mso-padding-alt:0mm 5.4pt 0mm 5.4pt; 	mso-para-margin:0mm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&amp;quot;Times New Roman&amp;quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&amp;quot;Times New Roman&amp;quot;; 	mso-bidi-theme-font:minor-bidi;} --&gt; &lt;!--[endif]--&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;Šiauliai, 2009-12-27, “Liepsnojantis ledas” - renginys, kurio džiaugiuosi nepraleidęs. Ir ne vien dėl to, kad ant jo neįtikėtinas figūras raitė įvairiausi čempionai, bet ir todėl, kad kažkuriuo momentu supratau, kaip visa tai yra gražu.&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;Grožis yra sudėtingas dalykas ir man, savamoksliškai besigilinant į meną, jis ne visuomet apsireiškia. Pavyzdžiui, galiu klausytis Mocarto ausis pastatęs, bet kažkaip nepasiekia jis manęs, o va išgirdus &lt;span style="color:#00ae00;"&gt;De Bussy&lt;/span&gt;, iš karto užlieja gerumo banga.&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;O kas ten dėjosi! Moterys sukdamosi skraidė. Vyrai jas kilnojo ir mėtė į viršų. Broliai mindė viens kitą su pačiūžomis ir vartėsi kūlvirsčia. Vieni krito, po to kėlėsi, po to greitai, kaip vilkelis, sukosi. Kiti ne tik kojų, bet rankų ir net kaklo vikrumu vertė publiką aikčioti. Stuburo lankstumas, špagatai, salto... Jergutėliau, ir tai ant ledo, su pačiūžomis!&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;Ačiū Povilui Vanagui ir Margaritai &lt;span style="color:#00ae00;"&gt;Drobiasko&lt;/span&gt; už jų Dailųjį Čiuožimą! Už tą romantišką plaukiantį šokį, kuris nuteikia taip pat gerai, kaip atlikus ar bent susiruošus atlikti kokį nors gerą darbą. Tai taurina, moko pajusti, gerbti ir didžiuotis vertybėmis.&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;Turi žmogus, matyt, kažin kokį receptorių, apie kurį per biologijos pamokas nemokina, nes jį nelengva įsprausti į trijų eilučių apibrėžimą. Pas kiekvieną jis sudirginamas vis kitaip ir pasireiškia savaip. Pavyzdžiui, jeigu nugara nubėga šiurpuliukas, reiškia kažkas buvo pasakyta, sušokta, pamatyta, perskaityta, patirta... negi ne? F. Dostojevskis sakė, kad Grožis išgelbės pasaulį. Aš juo tikiu.&lt;/p&gt;&lt;br/&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="font-size:12pt;font-family:&amp;amp;"&gt;Linkiu daug šiurpuliukų ir užliejančių bangų ateinančiais metais.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-417822580440845952?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/417822580440845952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2010/01/liepsnojantis-ledas-hotice-ir-siaip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/417822580440845952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/417822580440845952'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2010/01/liepsnojantis-ledas-hotice-ir-siaip.html' title='“Liepsnojantis ledas” (“HotIce”) ir Šiaip Pamąstymai'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-8009627819575148866</id><published>2009-12-21T11:18:00.000-08:00</published><updated>2011-09-16T08:52:11.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Arrange Fields in Trac Tickets</title><content type='html'>I was struggling one day to organize fields in the order I want when I create tickets in &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;.&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;Copy &lt;strong&gt;templates/ticket.html&lt;/strong&gt; into &lt;strong&gt;trac/myproject/templates/ticket.html&lt;/strong&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Insert the following code snippet to the beginning of the template:&lt;/li&gt;&lt;br/&gt;&lt;pre&gt;&amp;lt;?python&lt;br/&gt;  # define the order&lt;br/&gt;  field_types = ["type", "priority", "milestone",  "keywords", "cc",  "component"]&lt;br/&gt;&lt;br/&gt;  # Sorting function&lt;br/&gt;  def sort_nicely(field1, field2):&lt;br/&gt;    try:&lt;br/&gt;        idx1 = field_types.index(field1['name'])&lt;br/&gt;    except ValueError:&lt;br/&gt;        idx1 = 1000 # no match, push to the end&lt;br/&gt;&lt;br/&gt;    try:&lt;br/&gt;        idx2 = field_types.index(field2['name'])&lt;br/&gt;    except ValueError:&lt;br/&gt;        idx2 = 1000 # no match, push to the end&lt;br/&gt;&lt;br/&gt;    return cmp(idx1, idx2)&lt;br/&gt;&lt;br/&gt;  fields.sort(cmp=sort_nicely)&lt;br/&gt;?&amp;gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;That's it, if you have any custom fields and you want them ordered, put them into the &lt;strong&gt;field_types&lt;/strong&gt; list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-8009627819575148866?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/8009627819575148866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/12/arrange-fields-in-trac-tickets.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8009627819575148866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8009627819575148866'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/12/arrange-fields-in-trac-tickets.html' title='Arrange Fields in Trac Tickets'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-4811871862248590125</id><published>2009-11-11T09:30:00.000-08:00</published><updated>2011-09-16T08:52:11.441-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Magento'/><category scheme='http://www.blogger.com/atom/ns#' term='Integration'/><category scheme='http://www.blogger.com/atom/ns#' term='CCC'/><category scheme='http://www.blogger.com/atom/ns#' term='OCentric'/><title type='text'>Magento and Drupal Integration</title><content type='html'>There are numerous ways to integrate Magento with Drupal. Here I will share my experiences while working on that with very smart people at &lt;a href="http://www.optaros.com" target="_blank"&gt;Optaros&lt;/a&gt;. I don't take credit for all the points in this post, because they are the product of the whole team.&lt;br/&gt;&lt;br/&gt;The motivation for this kind of integration is the innovative look into where e-commerce is moving. To get a grasp of it look at &lt;a title="OCentric" href="http://www.optaros.com/solutions/ocentric" target="_blank"&gt;OCentric&lt;/a&gt;. To keep it short, content is free advertisement for products. It allows customers to get more input about products and provides the meat for search engines to index.&lt;br/&gt;&lt;br/&gt;Briefly, there are several main approaches to integrate Drupal and Magento:&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;let Magento be the main component, while leaving Drupal just as a subcomponent&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;let Drupal be the main component, and have Magento as an e-commerce  module&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;let  both Magento and Drupal be main components&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;These are general approaches and each of them have different pros and cons. They will be further detailed by usecases, complexity, technicalities, etc. in the following sections.&lt;br/&gt;&lt;br/&gt;Moreover, we will release much of the code as open source, so it's not only a theoretical discussion here:)&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Magento as the Main Component&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.magentocommerce.com"&gt;&lt;img class="alignleft" style="margin-right:20px;margin-bottom:20px;" title="Magento" src="http://www.magentocommerce.com/img/logo.gif" alt="" width="171" height="47" /&gt;&lt;/a&gt;This is probably the most acceptable approach in terms of implementation complexity. Moreover you can choose different level of complexity to implement.&lt;br/&gt;&lt;br/&gt;The straightforward solution is to integrate on the service layer. Meaning that whenever we are on the e-shop product page we have to call a Drupal service to bring related content, for instance blog posts. The same holds for category pages. How to do that:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Create a Drupal module that allows you assigning categories and products  to a content node in Drupal&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Implement XML-RPC client on Magento side and use it to talk to &lt;a title="Services module" href="http://drupal.org/project/services" target="_blank"&gt;services&lt;/a&gt; on Drupal in order to pull the content (e.g. using &lt;em&gt;view.get&lt;/em&gt; or &lt;em&gt;node.get&lt;/em&gt; funuctions)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Rewrite the category and product controllers on Magento to take the content from Drupal into account&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;There are some challenges in taking this way. They are mainly for those who want to implement features in a generic way. Specifically, whenever you add a CCK field or a feature like rating to a content type, you have some work to do on the Magento side. Namely, you need to modify layout and write templates to handle this additional data coming from Drupal. Hence it's pretty cumbersome to use Drupal community contributed modules as you need to do some coding on Magento side for every new Drupal feature. This is quite easy when the content from Drupal is read-only, but as soon as you want commenting, rating, flagging, etc. it becomes an issue, because you need to not only redo rendering on Magento but also map the functionality.&lt;br/&gt;&lt;br/&gt;A more complex path to take  is to integrate the whole Drupal rendering engine into Magento, however, this means a very tightly coupled architecture... Still, if you plan to use many many many of the Drupal features it may make sense. This will require writing a Drupal module for Magento that will adapt every Drupal core function to Magento. Could end up as a very complicated solution.&lt;br/&gt;&lt;br/&gt;We chose the XML-RPC because of the given time frame and specific requirements. Normally a product or a category will be associated with a very specific set of content types, and therefore the fully generic solution may not pay off.&lt;br/&gt;&lt;br/&gt;By the way there is already a CMS module for Magento as part of the core. And the question is why would one want to struggle integrating Drupal instead of using that CMS module? Moreover, with enterprise 1.6 version of Magento the module offers quite cool features. Some things from the top of my head to consider:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Drupal has a solid community, and it is more stable and feature-rich than the Magento CMS module will ever be (of course it's good as soon as you make the Drupal-Magento integration reasonably flexible)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;There is the &lt;a href="http://drupal.org/project/cck" target="_blank"&gt;CCK module&lt;/a&gt; that allows to very quickly add additional fields to a content type and make it available to the content producing team&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Content versioning, workflow, etc. is easy in Drupal&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;...more ?&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;strong&gt;Drupal as the Main Component&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://drupal.org"&gt;&lt;img class="alignright" style="margin-left:20px;margin-bottom:20px;" title="Drupal" src="http://drupal.org/sites/all/themes/bluebeach/logos/drupal.org.png" alt="" width="264" height="84" /&gt;&lt;/a&gt;This approach has been already taken by others and &lt;a title="Drupal+Magento" href="http://www.magentocommerce.com/blog/comments/magento-drupal-integration-project/" target="_blank"&gt;you can start digging for it here&lt;/a&gt;. We've tried out the available modules but didn't stick with them... Basically there the implementation is based on the notion of synchronizing Magento products, categories, orders, etc.  into Drupal using a cron job.&lt;br/&gt;&lt;br/&gt;In general, although Drupal-as-the-main-component approach in the end may give a lot of  flexibility, it may be too complex to implement. Imagine that the whole Magento frontend functionality needs to be rewritten for Drupal. Magento would then only be an e-commerce backend (the admin part) accessible via Web services. Of course you'd be able to use plenty of Drupal modules as well as flexible templating without any hassle, have better performance, and many other goodies but it just looks too expensive to implement.&lt;br/&gt;&lt;br/&gt;Still, bringing only a part of Magento into Drupal makes a lot of sense (as in that module that synchronizes products and orders into Drupal using cron job). In this case it's a decision to make whether the site is more about content or about commerce. When it's about content, then you don't really care about SEO for products, fancy business logic, etc.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Both Mangento and Drupal as the main Components&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;This is reasonable when the content will be displayed on the Drupal site and e-shop on the Magento site. Meaning that no proxying for content happens behind the scenes. So if a product has a blog post attached, then on the product page you'll have a link (maybe even the post itself loaded using Ajax call) and clicking it will open a Drupal page with that blog post.&lt;br/&gt;&lt;br/&gt;One of the challenges here is to maintain two different themes in order not to harm user experience. So that when the customer clicks on the blog link inside the product page the blog is displayed with the same look and feel as the shop. For that you can't avoid coding on two different frameworks. Apart from theming SEO will have to be also maintained on both components.&lt;br/&gt;&lt;br/&gt;Another challenge would be the ability to mix content with product information on the same page. Some kind of communication on the service layer will be necessary for that, which means that it's not really reasonable to use this dual approach with such a usecase present.&lt;br/&gt;&lt;br/&gt;It may make sense, however, to take this path when there are only some of the things to be shared between both components, e.g. users, and everything else is completely separate. For example, when a company has an e-commerce site, a customer community site, and a corporate site.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Additional Points for Integration&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;The end user display is only one part of the story. When you integrate this kind of monster systems to work seamlessly you get trapped with other things besides templating.&lt;br/&gt;&lt;br/&gt;One of them is &lt;em&gt;single sign on&lt;/em&gt;. A good thing to do here is to use &lt;a title="CAS" href="http://www.jasig.org/cas" target="_blank"&gt;CAS&lt;/a&gt;. Drupal already has the CAS module. Magento, however, needs one (we've been writing one). The good news that all the low level protocol implementation is available for PHP as open source.&lt;br/&gt;&lt;br/&gt;Another thing is &lt;em&gt;search&lt;/em&gt;. Independently of the integration approach chosen eventually you want to search for products and content in the same search box. This may become pretty challenging but it's not impossible. We've got a proof of concept for the store front in Magento, where we leverage &lt;a href="http://lucene.apache.org/solr/" target="_blank"&gt;Solr&lt;/a&gt; search. It performs really well for our suggest box functionality.&lt;br/&gt;&lt;div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;"&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.magentocommerce.com"&gt;&lt;img class="alignleft" style="margin-right:20px;margin-bottom:20px;" title="Magento" src="http://www.magentocommerce.com/img/logo.gif" alt="" width="171" height="47" /&gt;&lt;/a&gt;&lt;br/&gt;There are numerous ways to integrate Magento with Drupal. And here I will share my experiences while working on that with very smart people at &lt;a href="http://www.optaros.com" target="_blank"&gt;Optaros&lt;/a&gt;. asdfa sfd&lt;br/&gt;&lt;br/&gt;asdf adsfasdf asdfasdf&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-4811871862248590125?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/4811871862248590125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/11/magento-and-drupal-integration.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/4811871862248590125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/4811871862248590125'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/11/magento-and-drupal-integration.html' title='Magento and Drupal Integration'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-8859752256309860789</id><published>2009-11-08T11:50:00.000-08:00</published><updated>2011-09-16T08:52:11.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Experience'/><category scheme='http://www.blogger.com/atom/ns#' term='ux'/><title type='text'>Interactive Projection</title><content type='html'>I wonder if there is a technology that allows interaction with a projection. I was looking around the Web but all I could find was fancy and expensive (multi)touch screens.&lt;br/&gt;&lt;br/&gt;I think it should be somehow possible to track hand movements from the outside only by means of a little camera and software; similar to the way eye tracking software works.&lt;br/&gt;&lt;br/&gt;Imagine you put a little device that is watching how you are doing a presentation by projecting slides on a wall. As soon as you wipe the wall the next slide eases in; you zoom in/out with two hands the same way you achieve that with two fingers on iPhone; when you want to fast forward a movie you wipe with the faster movement; etc.&lt;br/&gt;&lt;br/&gt;Probably the challenge would be not to stand in the way of the tracking device and, of course, to clean the wall you've been touching after lounch:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-8859752256309860789?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/8859752256309860789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/11/interactive-projection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8859752256309860789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8859752256309860789'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/11/interactive-projection.html' title='Interactive Projection'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-6404666647005861341</id><published>2009-11-08T01:50:00.000-08:00</published><updated>2011-09-16T08:52:11.404-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTC Hero'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>Is HTC Hero for the left handed?</title><content type='html'>Recently I obtained an HTC Hero and I really like it. I've never had an iPhone but my friends say it's pretty much the same. I say that it's the same but better. I always prove that with the Google Sky app.&lt;br/&gt;&lt;br/&gt;One drawback though is that the "back" button (used very often) is on the bottom right of the device panel. So when you hold it in your right hand it's physically very uncomfortable to click that button.  I mean very.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-6404666647005861341?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/6404666647005861341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/11/is-htc-hero-for-left-handed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/6404666647005861341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/6404666647005861341'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/11/is-htc-hero-for-left-handed.html' title='Is HTC Hero for the left handed?'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-7643581977018905048</id><published>2009-10-26T06:08:00.000-07:00</published><updated>2011-09-16T08:52:11.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Content Management'/><title type='text'>Content Maganement with the Delegated Features as Services</title><content type='html'>&lt;img class="alignright" style="margin-left:20px;" title="Lego" src="http://upload.wikimedia.org/wikipedia/commons/e/e2/Legoblocks.jpg" alt="" width="358" height="313" /&gt;As a friend of mine pointed out:  there used to be a server and many terminals, currently we have a bit more sophisticated terminals - PCs - and our big server is the Internet, where the apps are "on the cloud". Nice analogy, and for me it makes a lot of sense. Are we really coming back to the terminal-server age but in a more advanced, i.e. distributed version?&lt;br/&gt;&lt;br/&gt;Anyway I think that every feature in a Web application should be a service. Not a service in a sense of a mashup or SOA, but in a bit different sense.&lt;br/&gt;&lt;br/&gt;Let's take a simple example - &lt;a title="Drupal" href="http://drupal.org" target="_blank"&gt;Drupal&lt;/a&gt;. It's a content management system. The power of it is that it's extensible with new modules that are normally contributed by the community. These modules implement different features, such as rate the content, comment, spam filter. One of the nice ones that I really like is made by the Drupal inventor &lt;a title="Dries" href="http://buytaert.net/" target="_blank"&gt;Dries Buytaert&lt;/a&gt;, called &lt;a href="http://drupal.org/project/mollom" target="_blank"&gt;Mollom&lt;/a&gt;. In fact it's a gluing module for the &lt;a href="http://mollom.com/" target="_blank"&gt;Mollom service&lt;/a&gt;, the service does spam filtering for your site. Specifically, when a person presses the "Save" button, the post first travels to the Mollom service, and then is checked if it's spam, in case it looks suspicious the user has to fill in a CAPTCHA in order to save the post.&lt;br/&gt;&lt;br/&gt;Now consider that all the modules in Drupal had the Mollom nature. That is the module would just be the glue for the service which lives somewhere on the cloud.&lt;br/&gt;&lt;br/&gt;A simple content driven site based on Drupal could be quite easily implemented with what's available out there. Consider a site for video sharing, kind of YouTube but maybe not so generic. At the core is &lt;strong&gt;Node&lt;/strong&gt; - the most primitive content type made of &lt;em&gt;title&lt;/em&gt; and &lt;em&gt;body&lt;/em&gt;. And now let's add features as services:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Comment the node - &lt;a title="Disquss" href="http://disqus.com/" target="_blank"&gt;Disquss&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Control the spam - &lt;a title="Mollom" href="http://mollom.com/" target="_blank"&gt;Mollom&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Let users send the feedback about your video sharing service - &lt;a title="Zendesk" href="http://www.zendesk.com/" target="_blank"&gt;Zendesk&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Rate the content - &lt;a title="Outbrain" href="http://www.outbrain.com/" target="_blank"&gt;Outbrain&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Share the content - &lt;a title="AddThis" href="http://addthis.com/" target="_blank"&gt;AddThis&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Video upload and related features - &lt;a title="Kaltura" href="http://corp.kaltura.com/" target="_blank"&gt;Kaltura&lt;/a&gt;.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;What else? Well there is one more piece that I think is very important:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Social graph management. There are many services available out there starting with &lt;a title="Facebook" href="http://www.facebook.com" target="_blank"&gt;Facebook &lt;/a&gt;and finishing with &lt;a title="QQ" href="http://www.qq.com/" target="_blank"&gt;QQ&lt;/a&gt;. These services expose APIs so there are also gluing modules for Drupal available. There is one caveat with social graph management. What features one wants to map, is it only friending or also status updates, picture sharing, etc. The purest approach would probably be to have a gluing module in Drupal that only uses authentication and friending features of the social service.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;All in all, I strongly believe that paying for a feature as a service is better than paying for (re)implementing and maintenance of that feature. So it's like SaaS but on a feature level, not the whole application (feature set).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-7643581977018905048?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/7643581977018905048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/10/content-maganement-with-delegated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7643581977018905048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7643581977018905048'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/10/content-maganement-with-delegated.html' title='Content Maganement with the Delegated Features as Services'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-4950645773945614690</id><published>2009-10-09T14:57:00.000-07:00</published><updated>2011-09-16T08:52:11.366-07:00</updated><title type='text'>Audiobooks Social Network</title><content type='html'>&lt;img class="alignright" style="margin-left:10px;" title="A pile of books monument" src="http://upload.wikimedia.org/wikipedia/commons/5/55/Printing4_Walk_of_Ideas_Berlin.JPG" alt="" width="259" height="346" /&gt;I like books.  Recently I got attracted by audiobooks. This looks like cheating a bit, because it's not pure reading, however, I must say it's far from cheating. Listening requires (at least for me) even more attention than reading.&lt;br/&gt;&lt;br/&gt;Anyway, I am now keen on audiobooks, and as it usually happens, my experience with the Web comes into play. So I started thinking whether it is a valid idea to build a social site fully dedicated to audiobooks - or more generally reading text aloud and listening to recordings.&lt;br/&gt;&lt;br/&gt;Let me analyze the idea of this social site in several axes.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Social object&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Clearly the social object would be &lt;em&gt;a piece of read aloud material&lt;/em&gt;. For simplicity we can think of a chapter of a book. When all the chapters are available the whole audiobook is there. Interestingly, an audiobook can be assembled into one even if each chapter is read by different people.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Social activities&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;We've got chapters of audiobooks as downloadable files on the site. There will be two kinds of people visiting the site: those who submit their readings to the site and those who will want to download audiobooks. Besides all the usual features like sharing, bookmarking, chatting, reviewing, flagging, rating etc. audiobookers will need some special tools and features, such as: audioconferencing for real time multicharacter recordings, a friendly avatar that impersonates the reader, rankings of the best (popular) readers, transcription of audio into text for search engine optimization, and so on.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Technicalities&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Software-wise everything looks solvable. It's just a Web site maybe with AIR desktop applications for reading aloud, saving, organizing, listening, etc. to books. The greatest challenge is how to ensure that the reader is reading the book the way it was written. And then, how to ensure that the readers will correctly name the pieces they read so that they (semi-)automatically could become one audiobook. Probably this is only achievable by croudsourcing and social filtering.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Business case&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;All the materials on the site should be available for free because it's community generated content. Still there are plenty of opportunities for paid services. For instance:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;assemble audiobooks out of separate chapters for those who don't have time to do that by themselves;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;sell professionally read audiobooks; allow the readers selling their recordings and take a percentage from each transaction;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;provide additional tools for readers to promote themselves and get statistics;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;organize paid events where book authors read aloud a chapter or two of their books;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;use the audiobooking infrastructure for voice recordings management system as a service;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;etc.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-4950645773945614690?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/4950645773945614690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/10/audiobooks-social-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/4950645773945614690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/4950645773945614690'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/10/audiobooks-social-network.html' title='Audiobooks Social Network'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-5881627975870945141</id><published>2009-08-17T02:14:00.000-07:00</published><updated>2011-09-16T08:52:11.350-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lifefeed'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Tidy Up My Friend Feed</title><content type='html'>There is one feature missing on Facebook (I believe in many other social networks as well) - digest view on friend's activity. Of course I can go to my friend's profile and see all the activity, but there should be something more user friendly.&lt;br/&gt;&lt;br/&gt;Consider the following scenario:&lt;br/&gt;&lt;blockquote&gt;I am on my Home page on Facebook. Here I see all the (non hidden) friend activity. E.g. somebody posted a picture, somebody shared a link, somebody liked a song. Apparently there are some people which are very active, so they do those activities very often during the day. Alternatively there are more passive friends doing those activities very rarely, e.g. once a week&lt;/blockquote&gt;&lt;br/&gt;In this scenario there are two things to notice:&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;Active friends will take up a lot of space on your Home page (or life feed in general).&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Passive friends will be quite invisible in all the sea of posts.&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;It's very likely that an activity done by a passive friend is more valuable than 10 posts from a very active (and maybe not the best) friend. So what we normally do? We &lt;strong&gt;hide&lt;/strong&gt; the posts of very active friends. Otherwise we put those active people to another list. All in all we want to clean up the main life feed on the Home page.&lt;br/&gt;&lt;br/&gt;What we actually do is spam filtering on our friend's posts. That's not good, because we know that they are friends and the stuff they do is not spam (even if sometimes it does not concern you).&lt;br/&gt;&lt;br/&gt;I think the solution to that could be a digest view on friend's activity. Mailing lists work this way. There I can specify, that I want to receive one e-mail per day with all the discussion topics listed. Following this approach would allow grouping all the posts of my active friends opposed to having them flat-listed by time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-5881627975870945141?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/5881627975870945141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/08/tidy-up-my-friend-feed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5881627975870945141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5881627975870945141'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/08/tidy-up-my-friend-feed.html' title='Tidy Up My Friend Feed'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-2093460989779536620</id><published>2009-07-30T06:28:00.000-07:00</published><updated>2011-09-16T08:52:11.315-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertisments browser'/><title type='text'>A Browser That Removes Ads</title><content type='html'>A couple of days ago my friend was very annoyed by an advertisement which produced some sounds when you mouseover it. And the ad was placed in such a way that he would go on it quite often.&lt;br/&gt;&lt;br/&gt;I wonder if there is a Firefox add-on which simply removes the ads from a page. It would solve not only the problem that my friend had, but also a more generic one. Imagine it would be possible to browse ad-free, that should be really awsome.&lt;br/&gt;&lt;br/&gt;The ad removal plug-in could be trained by users to detect ads, e.g. served by Google:). All the information about where the ads or banners are could be stored in some public database, and the plug-in could leverage the collective knowledge of all Web users. Considering that ads are normally served as:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;external javascript&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;iframe&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;inline images or text&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;it should be rather easy for a browser to simply remove some pieces of HTML from the DOM or put them somewhere at the bottom of the page so that they don't disturb the eye.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-2093460989779536620?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/2093460989779536620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/07/browser-that-removes-ads.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2093460989779536620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2093460989779536620'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/07/browser-that-removes-ads.html' title='A Browser That Removes Ads'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-6374696137037696948</id><published>2009-07-29T06:31:00.000-07:00</published><updated>2011-09-16T08:52:11.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAuth'/><category scheme='http://www.blogger.com/atom/ns#' term='aggregator'/><category scheme='http://www.blogger.com/atom/ns#' term='rpxnow'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Making Money with OAuth</title><content type='html'>I am really excited about the idea implemented by &lt;a title="RPX Now" href="http://rpxnow.com" target="_blank"&gt;RPXnow&lt;/a&gt;. It works as simple as:&lt;br/&gt;&lt;blockquote&gt;... a proxy between third party identity providers and       your website, RPXnow helps you effortlessly add single sign-on from       providers like AOL, Google, Yahoo! and even Facebook. The hosted       service runs in the cloud and is accessed via simple RESTful API       calls ...&lt;/blockquote&gt;&lt;br/&gt;A set of features looks impressive, let me list them here (&lt;a title="RPX Now features" href="https://rpxnow.com/features" target="_blank"&gt;or see them with descriptions&lt;/a&gt;):&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Supported identity providers: Google, Yahoo, Facebook, Twitter, MySpaceID, Windows LiveID, AOL, Blogger, Wordpress, VeriSign, Hyves, OpenID&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Sign in widget&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Profile data from the identity providers&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Account mapping&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Extended access to the providers' APIs&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Social publishing&lt;em&gt; (coming soon)&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Address book import&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;I want to note that RPXnow is positioning themselves as a "Single Sign-On for your website" although it provides with much more. And this much more, I think, could be a totally separate business.&lt;br/&gt;&lt;br/&gt;RPXnow is putting effort to become a service that aggregates people data accross many services (e.g. MySpace and Facebook). Think of it as &lt;a title="Plaxo" href="http://www.plaxo.com/" target="_blank"&gt;plaxo.com&lt;/a&gt;, but without the UI, just the REST API. Normally, if in your website you'd want to access user's MySpace, Facebook, or Google account data, you'd have to code everything yourself using the APIs provided by those services. RPXnow does it for you. So you only need to interact with one API - RPXnow API.&lt;br/&gt;&lt;br/&gt;Recently I was reading the article &lt;a title="Writing OAuth Gadgets" href="http://code.google.com/apis/gadgets/docs/oauth.html#oauth_proxy" target="_blank"&gt;Writing OAuth Gadgets&lt;/a&gt;, and then stumbled upon a concept of &lt;a title="OAuth Proxy" href="http://sites.google.com/site/oauthgoog/oauth-proxy" target="_blank"&gt;OAuth Proxy&lt;/a&gt;. As you can imagine it's a &lt;a title="Proxy design pattern" href="http://en.wikipedia.org/wiki/Proxy_pattern" target="_blank"&gt;proxy design pattern&lt;/a&gt; applied for OAuth services, i.e. you provide an OAuth service that delegates to another OAuth service. Actually, the upcoming "Social publishing" feature of RPXnow will do exactly that - proxy to other services.&lt;br/&gt;&lt;br/&gt;I think OAuth proxy could be a totally separate service in the cloud. There are many services online that allow for pretty much similar things: status updates, picture uploads, videos, profile information, etc. So the proxy could unify all this kind features into one interface and adapt to multiple services. As a customer of the proxy I would simply ask to upload a picture on behalf of a user, and I don't care where it goes - MySpace, Facebook or Flickr.&lt;br/&gt;&lt;br/&gt;The question then if OAuth proxy as a business is possible without the "Single Sign-On for your website" like RPXnow. Because if not, then OAuth proxy would have to compete with RPXnow. I think it's possible. Consider a couple of use cases:&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;A website that already has a lot of users. Instead of changing there authentication strategy it may be more feasible to implement the "Link external account" functionality and use OAuth proxy&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;OpenSocial containers could use the more generic OAuth proxy than proxying just as a workaround&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;Maybe there are more?&lt;br/&gt;&lt;br/&gt;Additionally, since OAuth proxy is actually software as service (SaaS) it implies recurrent revenue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-6374696137037696948?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/6374696137037696948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/07/making-money-with-oauth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/6374696137037696948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/6374696137037696948'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/07/making-money-with-oauth.html' title='Making Money with OAuth'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-1003993087391367835</id><published>2009-07-03T02:33:00.000-07:00</published><updated>2011-09-16T08:52:11.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Remove an Account</title><content type='html'>How I hate when I sign up for some service and then I can't remove myself from it. Of course for service providers it's fine, just several records in the DB, but for me... I loose control of my data.&lt;br/&gt;&lt;br/&gt;What made me write this post is &lt;a title="Audible" href="http://www.audible.com" target="_blank"&gt;Audible&lt;/a&gt;. I thought, I'd buy an audiobook, and this service seems to be well known around the world. So I added my book to the shopping cart, and was required to sign up in order to proceed. Which I did, but then I was notified that I can't place an order because I am not in the right geography (I live in Switzerland).&lt;br/&gt;&lt;br/&gt;Hell, I thought, and went to &lt;a title="Amazon" href="http://www.amazon.com" target="_blank"&gt;Amazon&lt;/a&gt;, but the audiobook store there actually brings you to Audible for downloads... And there I got the same message.&lt;br/&gt;&lt;br/&gt;Ok, then it doesn't make sense for me to be on Audible, if I live in the wrong place:) However, I can't find the way to remove my account. All the credit card details are there, and I can't delete at least those... This really sucks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-1003993087391367835?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/1003993087391367835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/07/remove-account.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1003993087391367835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1003993087391367835'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/07/remove-account.html' title='Remove an Account'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-8558516180055326004</id><published>2009-06-26T09:45:00.000-07:00</published><updated>2011-09-16T08:52:11.246-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>Why Do We Still Maintain Those User Accounts on Our Services?</title><content type='html'>Let's say you're building a website or an e-commerce site where you expect to have many visitors. By default you consider that people will need to log in to the site. When they log in, you'll collect some data about them. Sooner or later this data may be changed by the user on his/her profile page. This is a usual scenario, as old as web apps are.&lt;br/&gt;&lt;br/&gt;And in every single project of that sort - the same thing: user registration, account management, password reminder etc. etc. If you look at a decent e-commerce software (e.g. &lt;a title="Magento" href="http://www.magentocommerce.com/" target="_blank"&gt;Magento&lt;/a&gt;) or some content management system (e.g. &lt;a title="Drupal" href="http://drupal.org" target="_blank"&gt;Drupal&lt;/a&gt;) these features are built-in and looks like there is no issue with that. Surely, you can't have anonymous people doing things with your service.  And of course user profile data is a very valuable piece of information.&lt;br/&gt;&lt;br/&gt;But here is a paradox: by collecting this valuable user information we actually lose much other valuable (or even more valuable) information and when we realize that we need it (e.g. user social graph) we start building on top of what we have, in order to obtain it... Complicated life...&lt;br/&gt;&lt;br/&gt;If we look around every single web site has a database of users. And this database is filled by almost always the same process:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Register&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Confirm your e-mail&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Fill data in your profile&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;What about only one and a half step:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Register&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;(modify information about yourself)&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;I strongly believe that the second case can be achieved using &lt;a title="OpenID" href="http://openid.net/" target="_blank"&gt;OpenID&lt;/a&gt; and &lt;a title="OAuth" href="http://oauth.net/" target="_blank"&gt;OAuth&lt;/a&gt; and some code around them.&lt;br/&gt;&lt;br/&gt;A big part of the account management feature in web applications can (and probably should) be delegated to third party services such as different social networks. This is because the e-mail is not a personal identifier anymore (just look at &lt;a title="Google Wave" href="http://wave.google.com/" target="_blank"&gt;Google Wave&lt;/a&gt; - email is not there at all). If I play in a band I will most likely share my MySpace url; if I am a hardcore blogger, I'll give everyone the link to my blog; if I am networking on Facebook, I'll simply connect to people by their name. E-mail is good only to confirm one's identity, not to represent it.&lt;br/&gt;&lt;br/&gt;A shift in thinking of web apps is necessary to go &lt;strong&gt;from 3-step&lt;/strong&gt; account management to &lt;strong&gt;1.5-step&lt;/strong&gt;. How to do that?&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;Instead of registering user using their e-mail force them to sign up using their confirmed identity on another (trusted) service. For instance, if I'am creating a website or e-shop the default way for users to log in should be with Facebook or Google.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Prefil user profile with data from the external service as follows:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Pull user picture (allow to swap it with his/her &lt;a title="Gravatar" href="http://gravatar.com/" target="_blank"&gt;Gravatar&lt;/a&gt;) and other relevant info&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Let the user to connect other services to your application, e.g. Flickr, Facebook, or whatever makes sense.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Ask for additional data that is not provided by third parties (preferably only when it's necessary to perform an action on the site)&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Allow the userto create a persona and define privacy settings&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;That's it!&lt;br/&gt;&lt;br/&gt;Look at &lt;a title="Google Friend Connect" href="http://www.google.com/friendconnect/" target="_blank"&gt;Google Friend Connect&lt;/a&gt;. Ok, it's very general purpose, not even sure if it's a very successfull project. Still it depicts how websites should operate, i.e. people should navigate around the web and have their social life present everywhere. That's how we live in reality: we travel to different places but are always in touch with relatives and friends via phone, email, etc. So every site on the Internet should have kind of  "Friend Connect" feature instead of the stereotipical user management feature.&lt;br/&gt;&lt;br/&gt;Of course, we can run into issues and questions like:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;Identity mapping, when the user is allowed to sign in using different identities from different services&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;How expensive is it to build the user management infrastracture genuinly based on integration to other services as opposed to having standard (prebuilt) e-mail based implementations?&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;How much can one trust in the third party services? What if companies behind them go bankrupt?&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;But let me list the benefits from top of my head:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;User is not required to sign up to yet another service, giving away the e-mail, memorizing the password&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Since &lt;a title="Charlene Li" href="http://blogs.forrester.com/groundswell/2008/03/the-future-of-s.html" target="_blank"&gt;social networks will be like air&lt;/a&gt;, we're already integrating to other services through REST or JavaScript APIs. So why not doing it from the scratch?&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Thanks to OpenID and OAuth as soon as another service appears it's relatively easy to plug it into your site if you've pluged one already&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;You get much more data about users on your site(e.g. friends, activities etc.), so you can track and engage in many different ways than just e-mail&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The user experience of 1.5-step scenario is better than that one of 3 steps&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Using computing resources of third party services&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;You might be able to bring your service to outside just your website, e.g. an OpenSocial widget on MySpace. This may turn into a viral effect which could increase the popularity of your service.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;In short, let the people be free, don't close them in your little "walled garden", it just does not make sense, as you'll have to break the walls anyway :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-8558516180055326004?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/8558516180055326004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/06/why-do-we-still-maintain-those-user.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8558516180055326004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/8558516180055326004'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/06/why-do-we-still-maintain-those-user.html' title='Why Do We Still Maintain Those User Accounts on Our Services?'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-5130024166495992394</id><published>2009-06-24T04:48:00.000-07:00</published><updated>2011-09-16T08:52:11.233-07:00</updated><title type='text'>Relevant Search on the Web with a Personal Crawler</title><content type='html'>I thought (and I strongly believe that somebody already thought about the same before me :D) that it would be great to have a search that's relevant only to you. With Google you can kind of personalize your searching experience, but I mean another thing.&lt;br/&gt;&lt;br/&gt;Let's say:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;I've got hundreds of followers on Twitter and I follow a hundred people&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;I'm on Facebook where I've got many friends&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;I'm using Delicious for bookmarks&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;I use Google Reader for keeping myself up to date&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;I blog myself, and I receive comments on my posts&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;etc.&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;In all the listed services/activities there is a substantial set of &lt;strong&gt;links&lt;/strong&gt; present or produced either by me or by people in my network. These links form a slice of Internet that is relevant to me.&lt;br/&gt;&lt;br/&gt;Intuitively, the part of Internet that is relevant to me is growing:&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;as I'm expanding my social graph&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;as I'm sharing links with others&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;as I'm actively participating on the Web, e.g. commenting&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;however, a big part of my subInternet is actually hidden (not public), e.g. links shared by friends on Facebook.&lt;br/&gt;&lt;br/&gt;Now, imagine that you have your personal Web crawler (maybe plugged into Google). This way you could search in 3 modes:&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;The Web - as we are used today&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;The relevant part of the Web only - available via OAuth, Facebook Connect, etc.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Both&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;As an example consider the keyword &lt;strong&gt;"birthday"&lt;/strong&gt; in all the three cases. It's pretty clear that the results will be quite different.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-5130024166495992394?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/5130024166495992394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/06/relevant-search-on-web-with-personal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5130024166495992394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/5130024166495992394'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/06/relevant-search-on-web-with-personal.html' title='Relevant Search on the Web with a Personal Crawler'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-141762994009715776</id><published>2009-05-29T07:54:00.000-07:00</published><updated>2011-09-16T08:52:11.203-07:00</updated><title type='text'>Platform as a Service (PaaS) or Cloudware</title><content type='html'>&lt;a title="PaaS" href="http://en.wikipedia.org/wiki/Platform_as_a_service" target="_blank"&gt;PaaS&lt;/a&gt;, as Wikipedia puts it, is a bit clumsy to understand. You can get an expensive definition with examples from &lt;a title="PaaS by Forrester" href="http://www.forrester.com/Research/Document/Excerpt/0,7211,47335,00.html" target="_blank"&gt;Forrester&lt;/a&gt;, if you will :) There is also the &lt;a title="platform as a service" href="http://www.platformasaservice.com/" target="_blank"&gt;platformasaservice.com&lt;/a&gt; which seems to be (or to become) the central place for PaaS related resources. Also Google Search &lt;a href="http://www.google.com/search?q=platform+as+a+service&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_enCH309CH309" target="_blank"&gt;gives some useful links&lt;/a&gt; to read about PaaS, worth checking at least the first ten of them.&lt;br/&gt;&lt;br/&gt;Why am I writing about PaaS? Because I got excited by the term, which I never heard or thought about.&lt;br/&gt;&lt;br/&gt;Before not long ago I new SaaS, which currently is quite a comon business model - simply put up some software on your infrastructure and charge the users for using it. The best example in this area for me still is CRM provided by &lt;a title="SalesForce CRM" href="http://www.salesforce.com/crm/products.jsp" target="_blank"&gt;SalesForce.com&lt;/a&gt;. At &lt;a title="Optaros" href="http://optaros.com" target="_blank"&gt;Optaros&lt;/a&gt; we call this model &lt;strong&gt;Rent&lt;/strong&gt;. You can read about &lt;strong&gt;Assemble&lt;/strong&gt; vs. &lt;strong&gt;Build&lt;/strong&gt;, &lt;strong&gt;Buy&lt;/strong&gt;, &lt;strong&gt;Rent&lt;/strong&gt; in &lt;a title="Assemble vs. Build, Buy, Rent" href="http://www.optaros.com/blogs/assemble-vs-build-buy-rent" target="_blank"&gt;the company's blog&lt;/a&gt;, pretty simple and quite interesting.&lt;br/&gt;&lt;br/&gt;So SaaS is an genious idea. It allows for recurrent income, which is always good in hard and unpredictable times (provided that the customers are already there). &lt;a title="Optaros" href="http://optaros.com" target="_blank"&gt;Optaros&lt;/a&gt; realized that &lt;strong&gt;Assemble&lt;/strong&gt; goes very well with SaaS in the way that we call &lt;strong&gt;Hybrid offering&lt;/strong&gt;. To keep it simple the hybrid offering is: build the app and rent it (most likely to the same customer). Doesn't it sound more like a nice theory which is practically difficult to implement? Well, it is difficult but not impossible. Just check out what the &lt;a title="Assembled Web" href="http://www.optaros.com/solutions/assembled-web" target="_blank"&gt;Assembled Web&lt;/a&gt; is and then combine it with &lt;a title="OView" href="http://www.optaros.com/solutions/oview" target="_blank"&gt;OView&lt;/a&gt;. Shortly, customers get a bunch of assembled apps floating around the Web and delivering their branded presence outside their main Web site. Moreover the customers get full control and overview over theoe apps. So this hybrid offering is really a simplified PaaS.&lt;br/&gt;&lt;br/&gt;Having said that, looks like PaaS is actually a natural successor of SaaS. Intuitively it's something more than SaaS. What constitutes "more" is the delta between what is &lt;em&gt;Software&lt;/em&gt; and what is &lt;em&gt;Platform&lt;/em&gt;. Hence in PaaS business model it's a more complex software that's being rented. The complexity varies. It can be a virtual machine(s) that you rent, e.g. &lt;a title="EC2" href="http://aws.amazon.com/ec2/" target="_blank"&gt;Amazon Elastic Compute Cloud&lt;/a&gt;, &lt;a title="Google Apps Engine" href="http://code.google.com/appengine/docs/whatisgoogleappengine.html" target="_blank"&gt;Google Apps Engine&lt;/a&gt;, etc. or infrastructure to build apps there, e.g. &lt;a title="Bungee Connect" href="http://www.bungeeconnect.com/" target="_blank"&gt;Bungee Connect&lt;/a&gt;, &lt;a title="SalesForce" href="http://www.salesforce.com/" target="_blank"&gt;SalesForce.com&lt;/a&gt;, etc.&lt;br/&gt;&lt;br/&gt;Interesting what goes next in the line of &lt;strong&gt;SaaS &amp;gt; PaaS &amp;gt; ???.&lt;/strong&gt; Soon my laptop will contain no code, nor IDE... just a browser. And I will forget how JAVA looks like, what is PHP, what is scalability issues, etc. I will just program on REST APIs and buy resources from someone on the cloud. Sounds like fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-141762994009715776?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/141762994009715776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/05/platform-as-service-paas-or-cloudware.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/141762994009715776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/141762994009715776'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/05/platform-as-service-paas-or-cloudware.html' title='Platform as a Service (PaaS) or Cloudware'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-1915359275486103074</id><published>2009-04-30T06:48:00.000-07:00</published><updated>2011-09-16T08:52:11.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>OpenID + OAuth: Transcending Social Networks</title><content type='html'>So we're tired of remembering all the log in details for each service we use on the Web. For instance, I'd like to log in everywhere with my Google Account because I use a bunch of services on Google. Others may be spending more time on MySpace and would prefer to log in everywhere with their MySpace account. OpenID allows for that.&lt;br/&gt;&lt;br/&gt;Another thing, I want to log in to Facebook and see the pictures that my friends shared with me on MySpace. E.g. Plaxo is doing that in a very consistent way, by integrating many many services under one Plaxo's ambrella. That's maybe an exaggeration but with OAuth everyone can do this.&lt;br/&gt;&lt;br/&gt;And so I am also doing that on my free time: playing with OpenID libraries and trying to integrate with other sites using OAuth.&lt;br/&gt;&lt;br/&gt;The fact that &lt;a href="http://www.slideshare.net/charleneli/sxsw09-the-future-of-social-networks?type=powerpoint" target="_blank"&gt;social networks will be like air&lt;/a&gt; motivates me. And the fact that &lt;a href="http://www.techcrunch.com/2009/04/27/facebook-first-big-site-to-really-embrace-openid/" target="_blank"&gt;I will be able to login to Facebook with MySpace credentials&lt;/a&gt; hints that I am on the right track. Finally when I see services (with a business model behind it) based on OpenID (e.g. &lt;a href="https://rpxnow.com/" target="_blank"&gt;RPX&lt;/a&gt;), I am really feeling that the whole Web soon will change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-1915359275486103074?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/1915359275486103074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/04/openid-oauth-transcending-social.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1915359275486103074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1915359275486103074'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/04/openid-oauth-transcending-social.html' title='OpenID + OAuth: Transcending Social Networks'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-3557648295644490034</id><published>2009-01-31T02:27:00.000-08:00</published><updated>2011-09-16T08:52:11.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Backing up Drupal Quickly</title><content type='html'>I must admit, updating a Drupal instance, even if it's one module is a bit scary. And a rule of thumb is: backup, backup and backup the backup. So I do it.&lt;br/&gt;&lt;br/&gt;Below I post a script that I wrote for that purpose (my first script for Linux :D). The folder structure on my server is:&lt;br/&gt;&lt;pre&gt;~/&lt;br/&gt;~/files/&lt;br/&gt;~/public_html/drupal-6.x/&lt;/pre&gt;&lt;br/&gt;&lt;h2&gt;The Script&lt;/h2&gt;&lt;br/&gt;&lt;pre&gt;today=$(date +"%Y-%m-%d")&lt;br/&gt;drupal_v="6.6"&lt;br/&gt;backups="files"&lt;br/&gt;&lt;br/&gt;cd ~/&lt;br/&gt;mkdir $backups/$today&lt;br/&gt;&lt;br/&gt;clear&lt;br/&gt;&lt;br/&gt;echo -e "TODAY: $today\n"&lt;br/&gt;&lt;br/&gt;# 1.&lt;br/&gt;echo "---Backing up Drupal 6.x without uploaded files---"&lt;br/&gt;&lt;br/&gt;tar --create --gzip --file=$backups/$today/drupal-$drupal_v-no-files.tgz --exclude='sites/default/files' \&lt;br/&gt;--directory=public_html drupal-6.x&lt;br/&gt;&lt;br/&gt;echo -e "DONE\n"&lt;br/&gt;&lt;br/&gt;# 2.&lt;br/&gt;echo "---Backing up Drupal 6.x uploaded files---"&lt;br/&gt;&lt;br/&gt;tar --create --gzip --file=$backups/$today/files.tgz --directory=public_html/drupal-6.x/sites/default files&lt;br/&gt;&lt;br/&gt;echo -e "DONE\n"&lt;br/&gt;&lt;br/&gt;#3.&lt;br/&gt;echo "---Dumping the database---"&lt;br/&gt;&lt;br/&gt;/usr/local/mysql/bin/mysqldump -u YOU -p --default-character-set=utf8 --result-file=$backups/$today/dump.sql DB&lt;br/&gt;tar --create --gzip --file=$backups/$today/dump.sql.tgz --directory=$backups/$today dump.sql&lt;br/&gt;&lt;br/&gt;echo -e "DONE\n"&lt;br/&gt;&lt;br/&gt;#4.&lt;br/&gt;echo "---Copying the settings---"&lt;br/&gt;&lt;br/&gt;cp public_html/drupal-6.x/sites/default/settings.php public_html/drupal-6.x/.htaccess $backups/$today&lt;br/&gt;&lt;br/&gt;echo -e "DONE\n"&lt;br/&gt;&lt;br/&gt;#5.&lt;br/&gt;echo "FINISHED. Please move the backup files to a safe location"&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-3557648295644490034?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/3557648295644490034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2009/01/backing-up-drupal-quickly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/3557648295644490034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/3557648295644490034'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2009/01/backing-up-drupal-quickly.html' title='Backing up Drupal Quickly'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-3615886728767196897</id><published>2008-10-07T04:36:00.000-07:00</published><updated>2011-09-16T08:52:11.112-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google learn'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='gdd'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>On Google Developer Day in Munich</title><content type='html'>Yes, &lt;a href="http://code.google.com/intl/de/events/developerday/2008/home.html" target="_blank"&gt;it was half a month ago,&lt;/a&gt; and I haven't posted anything about it so far.  Shame on me.&lt;br/&gt;&lt;br/&gt;General impression about the event is good. Although you couldn't avoid the feeling that there was a bit too much advertising. But ok, what can you do in one day wit &lt;strong&gt;500&lt;/strong&gt; developers, besides talking to them?&lt;br/&gt;&lt;h2&gt;Look and Feel&lt;/h2&gt;&lt;br/&gt;Since Google has this image of being cool, childish and friendly, it really kept this image during the day. As you come into the exhibition hall you get into kind of a huge lounge with fancy music and colorful places to sit and stand. Then you can go and play something, for instance, table tennis, table football, Lego, etc. And in the end you could directly speak to a group of developers from Google, as they were taking up a specific corner and therefore were always available. The organization of the event was really brilliant. Everything on time, food for free, projectors always working, no waist of time.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://code.google.com/intl/de/events/developerday/2008/speakers.html" target="_blank"&gt;People&lt;/a&gt; from Google were friendly, helpful, and really proud working at Google. The main marketing messages they'd tried to convey were:&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;&lt;em&gt;You can do it!&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;&lt;em&gt;it's not there yet, but you can be the first one to develop (or create) it&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;&lt;em&gt;We want to help people to grow in the Internet because Google can grow only when everyone is growing&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;&lt;em&gt;We like open source, we encourage open source, everyone can be participate in projects where Google is also taking part&lt;/em&gt;&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;h2&gt;Not Only Brain Wash&lt;/h2&gt;&lt;br/&gt;&lt;a href="http://code.google.com/intl/de/events/developerday/2008/agenda.html" target="_blank"&gt;The agenda&lt;/a&gt; was pretty compressed. You could attend at most 4 sessions (&lt;a href="http://code.google.com/intl/de/events/developerday/2008/sessions.html" target="_blank"&gt;read descriptions&lt;/a&gt;)...&lt;br/&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br/&gt;I chose: The State of AJAX, Android, A Deeper Look at Google App Engine, Codelab: Building an OpenSocial Application in the Cloud. All of them were interesting. As I knew the topics only superficially I really enjoyed more and direct information. Building an OpenSocial application was fun and helped to really understand what it's all about and what are the benefits of it.&lt;br/&gt;&lt;h3&gt;What's out there relevant to GDD sessions:&lt;/h3&gt;&lt;br/&gt;&lt;strong&gt;The State of AJAX&lt;/strong&gt; (&lt;a href="http://www.slideshare.net/dion/google-developer-day-state-of-ajax-presentation" target="_blank"&gt;presentation&lt;/a&gt;)&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/jtenG6As9kw"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/jtenG6As9kw;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Android&lt;/strong&gt; (&lt;a href="http://www.slideshare.net/sullis/getting-started-with-google-android" target="_blank"&gt;presentation&lt;/a&gt;)&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/VS5s89H6BW4"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/VS5s89H6BW4;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Google Chrome&lt;/strong&gt;&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/lZnaaUoHPhs"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/lZnaaUoHPhs;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;OpenSocial: A Standard for the Social Web&lt;/strong&gt;&lt;br/&gt;[slideshare id=630660&amp;amp;doc=gddemea1munichopensocialupdate4-1222904875892477-8&amp;amp;w=425]&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;	&lt;li&gt;&lt;a href="http://incubator.apache.org/projects/shindig.html" target="_blank"&gt;Apache Shinding&lt;/a&gt; - open source OpenSocial engine&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;strong&gt;Gears&lt;/strong&gt;&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/HsODVUvgvdk"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/HsODVUvgvdk;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Google Web Toolkit: The Technical Case&lt;/strong&gt; (some older &lt;a href="http://www.voicesthatmatter.com/gwt2007/presentations/" target="_blank"&gt;presentations&lt;/a&gt;)&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/k56DbGDBsNk"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/k56DbGDBsNk;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;A Deeper Look at Google App Engine&lt;/strong&gt; (&lt;a href="http://www.slideshare.net/rajdeep/introduction-to-google-app-engine-presentation" target="_blank"&gt;presentation&lt;/a&gt;)&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/-JpRL0G-ZU4"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/-JpRL0G-ZU4;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Visualize your data: Google Visualization API&lt;/strong&gt;&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/918wJ4wSs7I"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/918wJ4wSs7I;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Geo&lt;/strong&gt;&lt;br/&gt;&lt;object height="350" width="425"&gt;&lt;br/&gt;      &lt;param name="movie" value="http://www.youtube.com/v/xoKr0hXDN94"&gt;&lt;br/&gt;      &lt;param name="wmode" value="transparent"&gt;&lt;br/&gt;      &lt;embed src="http://www.youtube.com/v/xoKr0hXDN94;rel=0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;br/&gt;      &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-3615886728767196897?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/3615886728767196897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2008/10/on-google-developer-day-in-munich.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/3615886728767196897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/3615886728767196897'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2008/10/on-google-developer-day-in-munich.html' title='On Google Developer Day in Munich'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-7613145031287050609</id><published>2008-08-18T01:36:00.000-07:00</published><updated>2011-09-16T08:52:11.078-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google learn'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Google Developer Day in Munich</title><content type='html'>If time allows I will participate in &lt;a href="http://code.google.com/intl/de/events/developerday/2008/home.html" target="_blank"&gt;Google Developer Day&lt;/a&gt; in Munich. I am excited to have received the invitation and I hope I will have fun there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-7613145031287050609?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/7613145031287050609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2008/08/google-developer-day-in-munich.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7613145031287050609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/7613145031287050609'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2008/08/google-developer-day-in-munich.html' title='Google Developer Day in Munich'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-2164021794712073270</id><published>2008-08-12T00:14:00.000-07:00</published><updated>2011-09-16T08:52:11.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='open web'/><title type='text'>Podcast on State of the Open Web</title><content type='html'>Ajaxian.com, Dojo and jQuery stars talking. &lt;a href="http://media.ajaxian.com/openwebpodcast/podcasts/openwebpodcast-20080807.mp3"&gt;Download it&lt;/a&gt; or &lt;a href="http://ajaxian.com/archives/open-web-podcast-episode-1-html-5-news-web-workers-w3c-selectors-and-dojo-happenings" target="_blank"&gt;read an overview&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-2164021794712073270?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/2164021794712073270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2008/08/podcast-on-state-of-open-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2164021794712073270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/2164021794712073270'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2008/08/podcast-on-state-of-open-web.html' title='Podcast on State of the Open Web'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3879455784222966918.post-1368908835814761131</id><published>2008-08-11T01:45:00.000-07:00</published><updated>2011-09-16T08:52:11.022-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenID'/><category scheme='http://www.blogger.com/atom/ns#' term='comfortid'/><category scheme='http://www.blogger.com/atom/ns#' term='Technologies'/><title type='text'>Comfortable OpenID Login Box for Drupal</title><content type='html'>I've started a project (&lt;a href="http://drupal.org/project/comfortid"&gt;http://drupal.org/project/comfortid&lt;/a&gt;) which is intended to be a cool open source OpenID login widget for Drupal.&lt;br/&gt;&lt;br/&gt;Looking forward to genious ideas on usability. I think it's the only way to make OpenID popular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3879455784222966918-1368908835814761131?l=blog.taroza.lt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.taroza.lt/feeds/1368908835814761131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.taroza.lt/2008/08/comfortable-openid-login-box-for-drupal.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1368908835814761131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3879455784222966918/posts/default/1368908835814761131'/><link rel='alternate' type='text/html' href='http://blog.taroza.lt/2008/08/comfortable-openid-login-box-for-drupal.html' title='Comfortable OpenID Login Box for Drupal'/><author><name>Evaldas Taroza</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
