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

<channel>
	<title>The Lab</title>
	<atom:link href="https://demianlabs.com/lab/feed/" rel="self" type="application/rss+xml" />
	<link>https://demianlabs.com/lab</link>
	<description>Amazing web applications</description>
	<lastBuildDate>Mon, 07 Apr 2014 20:31:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>The human layer</title>
		<link>https://demianlabs.com/lab/post/the-human-layer/</link>
					<comments>https://demianlabs.com/lab/post/the-human-layer/#comments</comments>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Mon, 07 Apr 2014 20:31:07 +0000</pubDate>
				<category><![CDATA[Academy]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=660</guid>

					<description><![CDATA[Like thousands of other self-respecting professionals you may have been trying very hard to stay competitive by focusing on the little details. Details that others are missing. I&#8217;m sure you&#8217;ve read hundreds of blog posts on how you should tune notifications so they are less intrusive, or how you should design forms and dialogues in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Like thousands of other self-respecting professionals you may have been trying very hard to stay competitive by focusing on the little details. Details that others are missing. I&#8217;m sure you&#8217;ve read hundreds of blog posts on how you should tune notifications so they are less intrusive, or how you should design forms and dialogues in software to be more intuitive. You may even have gone so far as to attend UX conferences and passionately brought up related topics in many meetings in your company.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone  wp-image-661" alt="human layer" src="https://demianlabs.com/lab/wp-content/uploads/human-layer-1.jpg" width="700" height="469" srcset="https://demianlabs.com/lab/wp-content/uploads/human-layer-1.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/human-layer-1-300x200.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/human-layer-1-1024x685.jpg 1024w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p><strong>Huge demand, little improvements</strong></p>
<p>I&#8217;m sure that in your mind, you have a belief that you are trying hard to understand your customer&#8217;s needs and create great products. You know what ? You are trying hard! And I&#8217;m extremely happy that there are many people like you, trying to make great digital products.</p>
<p>But maybe, you, just like me, always had the feeling that you are still missing something. That despite all the hard work you do, there&#8217;s always a vague void. A feeling that despite all the stats, numbers and knowledge, there is still a missing link between you and your customers. It&#8217;s not an irrational fear. It&#8217;s true. There is a missing link between you and your customers. And the worse part, is that this gap is huge.</p>
<p>You have absolutely no idea what your customers want. Even more you got no idea what your customers need. You can study about UX, marketing and product design all you want. You will slightly improve some metrics, you may even be so lucky as to build a successful business (which is a huge feat by the way), but you won&#8217;t make huge leaps. You will sense that there is huge demand for approachable, sexy, interesting, easy to use digital products. Yet you&#8217;ll be unable to capitalise on that demand, and deliver the maximum.</p>
<p><strong>How real people think</strong></p>
<p>Let us leave these questions here, and let me tell you a few stories. I was recently on a trip to my home island. Meeting family and friends, getting away from work for a bit, trying to have a good time. I had a few, let&#8217;s say shocking experiences while seeing how ordinary people interact with products (digital or not).</p>
<p><img decoding="async" class="alignnone  wp-image-663" alt="human layer" src="https://demianlabs.com/lab/wp-content/uploads/human-layer-3.jpg" width="700" height="1057" srcset="https://demianlabs.com/lab/wp-content/uploads/human-layer-3.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/human-layer-3-198x300.jpg 198w, https://demianlabs.com/lab/wp-content/uploads/human-layer-3-678x1024.jpg 678w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>First, there was Katerina. She is one of the classmates that I still keep an eye on. Because you know, there is this thing called facebook that lets us monitor the life of someone who shared the same classroom with us twenty years ago. Katerina shared a video on facebook about a movie that was supposedly secret. And according to her comment, we should all rush and see that movie, because it&#8217;s so amazing, and also &#8220;they&#8217;ll take it down any moment now&#8221;.</p>
<p>This movie was a documentary about people who study the paranormal and all that crap. The funny part is that, there was a guy in that video, who claimed that he was able to get a parking spot every time, just because he thought about his desire to park his car. Funny considering that I have the same fantasy for years and still I have to wait for hours before I park my car.</p>
<p>I can understand this guys motive to claim extraterrestrial mind powers. Everybody wants to be famous, right? But why does this blog have 70,000 followers on facebook, and why is it considered be in risk of being taken down. As if it&#8217;s a very valuable secret that &#8220;they&#8221; are trying to hide. I honestly have no idea, and I absolutely cannot understand those people.</p>
<p>Then there is this pal of mine. He&#8217;s called Nick and he&#8217;s got some free time in his hands right now. He makes musical instruments from wood and metal. Specifically, he makes his own custom variations of Brazilian and African instruments. He showed them to me, and even did a small demonstration. It&#8217;s incredibly interesting! Using stuff most of us would throw in the trash, he makes stuff that sound absolutely amazing. Although I admire his dedication and his passion about it, I honestly cannot understand it. I don&#8217;t know what motivates a person to spend hours of research, hours of hard work, to create something that has value mostly only for him.</p>
<p>And the last story is about my sister. I recently bought a new laptop, and gave her my old macbook air as a gift. Having been part of endless debates on OSX vs Windows, I was very curious as what her reaction would be, interacting with a mac for the first time, after years of using windows computers. So after I let her use the macbook for about one day, I asked her what did she think about the new laptop.</p>
<p>Her: It&#8217;s great. I can now make up without going to the bathroom!<br />
Me: Great. Wait, WHAT ? !<br />
Her: See ? Here, it has a mirror.</p>
<p>It turns out the &#8220;mirror&#8221; was a conferencing app, which comes with every mac. This app&#8217;s icon is on the default icons on the OSX dock. She probably randomly clicked the app icon, saw her face on the screen, and thought: &#8220;hey, why go all the way to the bathroom&#8221;. Now to get you into context, she is a doctor. She&#8217;s got more than 10 years of education and quite high income. This means that she&#8217;s got the customer profile that we would expect to appreciate a well designed computer.</p>
<p>On the contrary she didn&#8217;t give a single fuck about the skeuomorphism vs flat design debate. She didn&#8217;t even care that her new operate system was built on the &#8220;industrial strength of UNIX&#8221;. Let alone the intuitive dialogues and the lack of viruses. Who gives a fuck about all that &#8220;chinese&#8221;, when you can make up in your computer. I honestly believe that even Jakob Nielsen would be unable to understand this customer segment.</p>
<p><strong>Time for answers</strong></p>
<p><img decoding="async" class="alignnone  wp-image-662" style="line-height: 1.5em;" alt="human layer" src="https://demianlabs.com/lab/wp-content/uploads/human-layer-2.jpg" width="700" height="466" srcset="https://demianlabs.com/lab/wp-content/uploads/human-layer-2.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/human-layer-2-300x199.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/human-layer-2-1024x680.jpg 1024w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Do you get it now ? People are absolutely irrational. Not in the sense that they like &#8220;sexy&#8221; designed icons instead of three more features. They simply do not give a fuck about all the things, that we think that they are so extremely important. And since I don&#8217;t want to go to sleep tonight, worrying, that I didn&#8217;t put enough emphasis on something so extremely important: THEY DON&#8217;T CARE. They don&#8217;t give a dime, period.</p>
<p>They don&#8217;t care if your icons are copied from another app. They don&#8217;t care if you are using bootstrap because you&#8217;re too lazy to write your own css. They don&#8217;t care if you can get to a screen in two steps instead of four. They don&#8217;t care if your backend is in PHP or rails. And they certainly don&#8217;t care if Samsung copies Apple or if it&#8217;s the other way around.</p>
<p>On the contrary, most people who make digital products, spend the majority of their time on exactly those things that no &#8220;real person&#8221; cares about. We spend hours debating and discussing about the little details in our products. It seems that we forgot the single most important topic. Who cares ?</p>
<p>So how can we put all the irrelevant questions aside, and focus on what&#8217;s important? It&#8217;s simple. We have to become irrational ourselves. And to do that we must not analyse our own products. Instead we must analyse the products we buy, but we don&#8217;t care about. Gladly we all have products that we don&#8217;t care about yet we still buy. Why did I buy tobacco X instead of Y ? Was it the packaging ? Was it the flavour ? Was I influenced by my friends&#8217; opinion ?</p>
<p><strong>The &#8220;human layer&#8221;</strong></p>
<p>The analysis, and execution of products, based on basic human emotions is what I call the &#8220;human layer&#8221;. I&#8217;ve seen many companies adding a bullet to a powerpoint on their product being &#8220;user friendly&#8221;. I&#8217;m sure in their heads they must think that they try to understand users. I really wish it was that easy.</p>
<p>The human layer is everything. It&#8217;s the top (if not the only) reason, people make decisions. Why they buy products. Why they buy something instead of something else that has similar traits or features.</p>
<p>Forget about features, forget about metrics, forget about trying to understand others using the metrics that are important to you. Your customers are, not designers or engineers. They are simple humans. And the missing link between you and them, is the human layer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://demianlabs.com/lab/post/the-human-layer/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Why web designers should kill the hover right now and how to replace it</title>
		<link>https://demianlabs.com/lab/post/why-web-designers-should-kill-the-hover-right-now-and-how-to-replace-it/</link>
					<comments>https://demianlabs.com/lab/post/why-web-designers-should-kill-the-hover-right-now-and-how-to-replace-it/#comments</comments>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Mon, 10 Feb 2014 22:55:11 +0000</pubDate>
				<category><![CDATA[Academy]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=648</guid>

					<description><![CDATA[Note: This is a post written on August 29, 2010 in my personal website, Bibakis.com. It has moved here, mostly for archival. The hover effect or &#8220;mouse over&#8221; back in the early days is quite common in websites these days. Unfortunately it&#8217;s one of those bad habits that harm the user experience. I guess in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><strong>Note</strong>: This is a post written on August 29, 2010 in my personal website, <a title="Vangelis Bibakis" href="http://bibakis.com/">Bibakis.com</a>.</em><br />
<em>It has moved here, mostly for archival.</em></p>
<p>The hover effect or &#8220;mouse over&#8221; back in the early days is quite common in websites these days. Unfortunately it&#8217;s one of those bad habits that harm the user experience. I guess in a few years we&#8217;ll be laughing at hovers, like we now laugh at frames and tables.</p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-649" alt="iceberg-effect" src="https://demianlabs.com/lab/wp-content/uploads/iceberg-effect.jpg" width="700" height="414" srcset="https://demianlabs.com/lab/wp-content/uploads/iceberg-effect.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/iceberg-effect-300x177.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/iceberg-effect-1024x605.jpg 1024w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p><strong>Touch is here to stay</strong><br />
As we speak about 200,000 touch screen devices are purchased in the US alone every day. This includes Android smartphones, iPhone and the iPad. You can easily imagine that in a couple of years touch screens will be the norm and mouse based interfaces will be considered &#8220;business tools&#8221;. Instead of creating multiple versions of your web application why not consider getting rid of mouse-only features ?</p>
<p>Even if people continue to use computers at the same rate as they do today in the future, and even if you don&#8217;t plan to deploy your application on mobile devices you still need to forget about the hover. The average user will soon forget that you can expect something to come out if you place your cursor in a link. The reason is that users won&#8217;t be running into hovers on the majority of devices (and the most part of their browsing time).</p>
<p><strong>Drop down menus</strong><br />
This is one of the major annoyances in the web for quite some years now. When evolutions in CSS popularized the use of drop down menus, a lot of designers tried to imitate the behavior of desktop applications. Unfortunately they forgot a very important aspect of desktop-like menus. Once you click, they stick! The sudden disappearance of sub-menus made surfing an adventure since users were expected to hunt menus around the page. Have a look at this great study on the topic: Users Decide First; Move Second</p>
<p><strong>If it&#8217;s not visible it doesn&#8217;t exist</strong><br />
From time to time I&#8217;ve happen to surf Facebook with a friend or two. The majority of people I know are not aware of the additional options when hovering over some areas of the page. This is not a surprise as hover destroys the principle of what you see is what you get.</p>
<p>Can you imagine a car or a cd-player with hidden options ? I guess not. Then why should we design web interfaces that way ? Can we realistically expect people to scan the whole screen with the mouse, just in case the designer had the idea to hide some elements ? Most people have a quick look at the page and if something doesn&#8217;t appear there they just assume it doesn&#8217;t exist. Of course they are right to think so. Nothing else requires you to imagine where parts of it&#8217;s functionality are hidden but the web of today.</p>
<p>&nbsp;</p>
<h2>How can you replace mouse over</h2>
<p>&nbsp;</p>
<p><strong>Organize information the smart way</strong></p>
<p>The best way to de-clutter an interface and therefore avoid the need for hiding things, is to organize information in a human friendly manner. If you build your information structure in a simple and efficient way, everything can be &#8220;hidden&#8221; in the next page. The best example I can think off is the apple homepage.</p>
<p>Apple is a multinational company selling a huge variety of products and services, from smartphones and mp3 players to business server operating systems. Yet, in the main menu of apple.com website there are only seven options plus the link to the home page. Let&#8217;s take the &#8220;Mac&#8221; section for example. Instead of having a drop down menu with sub-options like MacBook, MacBook Air, iMac and so on, you are given these options only once you are taken to the &#8220;Mac&#8221; section. Each page has as few options as possible, yet you never feel that something is missing.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-650" alt="hover_apple" src="https://demianlabs.com/lab/wp-content/uploads/hover_apple.png" width="940" height="53" srcset="https://demianlabs.com/lab/wp-content/uploads/hover_apple.png 940w, https://demianlabs.com/lab/wp-content/uploads/hover_apple-300x16.png 300w" sizes="auto, (max-width: 940px) 100vw, 940px" /><br />
<em>Apple.com&#8217;s main menu: Only seven options in a website with a vast amount of information</em></p>
<p>&nbsp;</p>
<p><strong>Use &#8220;click and drop&#8221; (pop-over)</strong><br />
This is a relatively new technique to the web. When you click on a button, you are presented with some options regarding your further actions. This is a great way to hide things like advanced search options. In the picture on the right you see an implementation in the main menu of startupdonut.co.uk.</p>
<p>In this case, a user with a touch screen device can navigate as good as the mouse users and all the extra options are well hidden until you click topics button. An excellent use of the &#8220;click and drop&#8221; technique is anywhere you need filtering. For example, search results, viewing a list of products or like in our example, viewing blog posts tags.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-651" alt="hover_donut" src="https://demianlabs.com/lab/wp-content/uploads/hover_donut.png" width="460" height="583" srcset="https://demianlabs.com/lab/wp-content/uploads/hover_donut.png 460w, https://demianlabs.com/lab/wp-content/uploads/hover_donut-236x300.png 236w" sizes="auto, (max-width: 460px) 100vw, 460px" /><br />
<em>Clicking &#8220;topics&#8221; on the main menu of startupdonut.co.uk opens up the list of tags</em></p>
<p>&nbsp;</p>
<p><strong>Don&#8217;t forget lightbox</strong><br />
Lightbox is a nice solution when you want to give some information to the user quickly without sending him to another page. By clicking on a button you display a box on top of the page which can be an image, some HTML, or an iframe. You can use lightboxes for things like displaying notifications, showing the terms of use in a registration page, giving the user a quick preview of a shopping cart or for zooming images in a gallery. In the example on the right you can see the way facebook implemented it for sending a quick message.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-652" alt="hover_facebook" src="https://demianlabs.com/lab/wp-content/uploads/hover_facebook.png" width="460" height="193" srcset="https://demianlabs.com/lab/wp-content/uploads/hover_facebook.png 460w, https://demianlabs.com/lab/wp-content/uploads/hover_facebook-300x125.png 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /><br />
<em>The most common implementation of lightbox: Sending a message on facebook</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://demianlabs.com/lab/post/why-web-designers-should-kill-the-hover-right-now-and-how-to-replace-it/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Top reasons not to use Google CDN</title>
		<link>https://demianlabs.com/lab/post/top-reasons-not-to-use-google-cdn/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Mon, 10 Feb 2014 22:02:23 +0000</pubDate>
				<category><![CDATA[Tech]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=644</guid>

					<description><![CDATA[Note: This is a post written on August 13, 2010 in my personal website, Bibakis.com. It has moved here, mostly for archival. Content Delivery Networks are one of the latest trends on the web. The idea is simple. Instead of having a single server in a central location, place lots of servers of smaller capacity [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><strong>Note</strong>: This is a post written on August 13, 2010 in my personal website, <a title="Vangelis Bibakis" href="http://bibakis.com/">Bibakis.com</a>.</em><br />
<em>It has moved here, mostly for archival.</em></p>
<p>Content Delivery Networks are one of the latest trends on the web. The idea is simple. Instead of having a single server in a central location, place lots of servers of smaller capacity in a variety of locations. This allows you to avoid bottleneck and reduce delivery times.</p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-645" alt="tortoise-and-rabbit" src="https://demianlabs.com/lab/wp-content/uploads/tortoise-and-rabbit.jpg" width="700" height="298" srcset="https://demianlabs.com/lab/wp-content/uploads/tortoise-and-rabbit.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/tortoise-and-rabbit-300x127.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/tortoise-and-rabbit-1024x435.jpg 1024w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Some major web companies (most notably Google and Microsoft) have started offering public CDN services to open source projects. A lot of developers advise to use public CDNs in your websites to serve javascript libraries like jQuery and Prototype. Before you make haste to take advantage of this new trend keep the following in mind.</p>
<p><strong>Your websites will be depending on the CDN</strong><br />
Although CDN providers have an advanced infrastructure and are generally considered very reliable, they cannot guarantee 100% availability. In fact even commercial CDNs cannot do that. Given the fact that we are talking about free services here there will be times when the CDN will be offline. If the CDN goes offline so do you.</p>
<p><strong>You are as slow as your slowest part</strong><br />
If a CDN is performing at high speeds then everything will be ok. However consider the following example. If a page from your application takes 4 seconds to load and a javascript library takes 6 seconds to load from the CDN then the loading time for the user is 6 seconds. So while a CDN is often used to offload a site and increase loading speed it may result in the opposite if it&#8217;s not in the peak of it&#8217;s performance.</p>
<p>The client will have to open a connection to a second domain instead of using the already existing connection to your one. Also the client will be forced to make a second DNS lookup to determine the CDNs IP.</p>
<p><strong>Unsuitable for intranet applications</strong><br />
If you are developing a web-based intranet application then using a CDN will reduce performance. Instead of loading the files from a central location within your Ethernet based network you will be loading them from a much slower internet connection. Also your application will become dependent on your internet connection, therefore disabling the biggest advantage an intranet applications.</p>
<p><strong>Offline development becomes painful</strong><br />
There may be times when you&#8217;ll have to develop your application offline for a variety of reasons. Whenever you go offline you must change you code to temporary use local files. This can be a real pain depending on the structure of your application.</p>
<p><strong>JavaScript is cached anyway</strong><br />
JavaScript files are cached by the client&#8217;s browser. The only real benefit of using a CDN is for first time users. Are you willing to take the CDN risk just for the chance of increased speed on the single first pageview? I guess that depends a lot on your bounce rate but you get the point.</p>
<p><strong>Conclusion</strong><br />
Before making the decision of using or not a public CDN take some time and make some performance tests of your own. Get YSlow and test loading speeds yourself. This is the only way to see if it makes sense to use a CDN.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A web design modeled after a literature magazine</title>
		<link>https://demianlabs.com/lab/post/a-web-design-modeled-after-a-literature-magazine/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Sun, 09 Feb 2014 04:34:06 +0000</pubDate>
				<category><![CDATA[Miscellaneous]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=632</guid>

					<description><![CDATA[Note: This is a post written on August 11, 2010 in my personal website, Bibakis.com. It has moved here, mostly for archival. My latest experiment. A redesign of my website using a literature magazine as a source of inspiration. The idea came to me while I was reading this magazine in a local cafe.I thought [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><strong>Note</strong>: This is a post written on August 11, 2010 in my personal website, <a title="Vangelis Bibakis home page" href="http://bibakis.com/">Bibakis.com</a>.</em><br />
<em>It has moved here, mostly for archival.</em></p>
<p>My latest experiment. A redesign of my website using a literature magazine as a source of inspiration. The idea came to me while I was reading this magazine in a local cafe.I thought that the newspaper and magazine industries have been existing for decades now. Thousands of talented people have evolved the science of text layout in printed media. The web is not very different from that. If you think about it, both the web and printed press give you a flat surface where text is displayed.</p>
<p>What I see all over the web is a lot of people trying to create a great layout for their website or blog. I don&#8217;t recall seeing anyone looking back in the past. This has been done over and over before. Why reinvent the wheel ?</p>
<p>I used a two column layout to achieve better readability. Mainframe CSS framework handled the layout through the 960 grid system. On the server side, I moved from Drupal to a custom made system based on CodeIgniter which will power all the websites I&#8217;ll build from now on.</p>
<p><a href="https://demianlabs.com/lab/wp-content/uploads/book1.jpeg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-633" style="margin: 5px;" alt="book1" src="https://demianlabs.com/lab/wp-content/uploads/book1.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/book1.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/book1-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /></a> <img loading="lazy" decoding="async" class="alignnone size-full wp-image-636" style="margin: 5px;" alt="site1" src="https://demianlabs.com/lab/wp-content/uploads/site1.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/site1.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/site1-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /><a style="font-size: 14px; line-height: 1.5em;" href="https://demianlabs.com/lab/wp-content/uploads/book2.jpeg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-634" style="margin: 5px;" alt="book2" src="https://demianlabs.com/lab/wp-content/uploads/book2.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/book2.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/book2-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /></a><img loading="lazy" decoding="async" class="alignnone size-full wp-image-637" style="font-size: 14px; line-height: 1.5em; margin: 5px;" alt="site2" src="https://demianlabs.com/lab/wp-content/uploads/site2.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/site2.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/site2-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /><a style="font-size: 14px; line-height: 1.5em;" href="https://demianlabs.com/lab/wp-content/uploads/book3.jpeg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-635" style="margin: 5px;" alt="book3" src="https://demianlabs.com/lab/wp-content/uploads/book3.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/book3.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/book3-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /></a><span style="font-size: 14px; line-height: 1.5em;"> </span><a style="font-size: 14px; line-height: 1.5em;" href="https://demianlabs.com/lab/wp-content/uploads/site3.jpeg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-638" style="margin: 5px;" alt="site3" src="https://demianlabs.com/lab/wp-content/uploads/site3.jpeg" width="460" height="345" srcset="https://demianlabs.com/lab/wp-content/uploads/site3.jpeg 460w, https://demianlabs.com/lab/wp-content/uploads/site3-300x225.jpeg 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Translating multilingual websites the easy way</title>
		<link>https://demianlabs.com/lab/post/translating-multilingual-websites-the-easy-way/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Tue, 14 Jan 2014 02:36:07 +0000</pubDate>
				<category><![CDATA[Miscellaneous]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=624</guid>

					<description><![CDATA[Note: This is a post written on August 9, 2009 in my personal website, Bibakis.com. It has moved here, mostly for archival. One of the biggest challenges in web development is making multilingual websites. The easy part is having common functionality across all available versions. The hard part is making sure you don&#8217;t have blank [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><strong>Note</strong>: This is a post written on August 9, 2009 in my personal website, <a title="Vangelis Bibakis home page" href="http://bibakis.com/">Bibakis.com</a>.</em><br />
<em> It has moved here, mostly for archival.</em></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-626" title="Pieter Bruegel the Elder - The Tower of Babel" alt="Pieter Bruegel the Elder - The Tower of Babel" src="https://demianlabs.com/lab/wp-content/uploads/tower-of-babel.jpg" width="700" height="512" srcset="https://demianlabs.com/lab/wp-content/uploads/tower-of-babel.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/tower-of-babel-300x219.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/tower-of-babel-1024x748.jpg 1024w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>One of the biggest challenges in web development is making multilingual websites. The easy part is having common functionality across all available versions. The hard part is making sure you don&#8217;t have blank spots. And that means that if you got an English-French website, you shouldn&#8217;t have French words appearing in the English version and vice versa.</p>
<p>The oldest solution I can remember used in PHP is the use of constants. For example instead of writing Home page in your HTML, you write <em>__HOME_PAGE__</em>. Then you got a file for every language with constants that you include in every &#8220;visible&#8221; PHP script. An if block takes care of including the proper constants file for the currently active language. The major problem of this technique is that if something is left untranslated you get ugly <em>__CONSTANTS__</em> all over the place. There are few things that can make a website look more amateur.</p>
<p>In CodeIgniter there is the language class that takes care of this issue. Instead of using constants you simply do <em>$this-&gt;lang-&gt;line(&#8216;Home page&#8217;)</em> to get the translation for the words Home page. Then you got files in the &#8220;application/language&#8221; folder with all the translatable items.The problem with this approach is that when something is left untranslated you don&#8217;t know how to find it easily.</p>
<p>I recently took over a multilingual e-shop platform project for an agency. A friend and colleague there came up with a solution for this which is to extend the language class and add the ability to the line method to add marks before and after a string in case there is no translation available. For example Home page becomes <em>!&#8211; Home page &#8211;!</em>.</p>
<p>Although this time we are more organized and flexible since we can for example enable/disable/customize the !&#8211; &#8211;! marks you will notice that practically we are still in the footprints of the ugly constants trick. We still get <em>!&#8211; Ugly &#8211;!</em> stuff in our website in case a translation is forgotten. The worst part is that we still have to scan the entire site by hand and hunt down every little <em>!&#8211; untranslated word &#8211;!</em>.</p>
<p>To overcome all of the above problems there are two simple things we can do. The first one is to add semantics to all strings we want to translate. This way Home page is different from home page and we can ease the guy/girl translating our content who won&#8217;t have to figure out when a word starts a sentence or not.</p>
<p>The best part is that we can have all the items we want to translate gathered automatically without the need for spot marks (!&#8211; &#8211;!). To achieve this you need to follow these steps</p>
<ol>
<li>Create a simple two column table in the database called translations (id INT, item VARCHAR 1024)</li>
<li>When the line method of the language class finds an item that doesn&#8217;t have a translation available make a check to see if this item is stored in the translations table.</li>
<li>If it is not stored then create a line with the exact text you use in your language files. In our case this is $lang[&#8216;Home page&#8217;] = &#8221;;<br />
Insert this line in the translations table.</li>
<li>Create two pages. One called something like &#8216;translations&#8217; and another called &#8216;translations_clear&#8217;. The translations page should run a simple select query to get all the items and just display them in the browser. The translations_clear page should just empty the translations table.</li>
<li>Run a spider against your page to make sure all links are visited. Any decent offline browser should do the trick. Windows users can use Httrack and linux users wget.</li>
<li>Visit the translations page after the spider is done. You will get a page with all the items inside an array ready to be translated. Simply copy the entire page to your language file and start translating.</li>
</ol>
<p>This way you can have web pages that are translated in one step, right before you fire your FTP client for the final upload. Also when something is added later but is not translated you won&#8217;t get <em>__UGLY__</em> stuff in your page. You don&#8217;t have to use CodeIgniter to use this technique. All it takes is that you use a function to fetch the translated items.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Taking care of the www issue in CodeIgniter</title>
		<link>https://demianlabs.com/lab/post/taking-care-of-the-www-issue-in-codeigniter/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Thu, 10 Oct 2013 23:59:49 +0000</pubDate>
				<category><![CDATA[Academy]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=609</guid>

					<description><![CDATA[Note: This is a post written on July 24, 2009 in my personal website, Bibakis.com. It has moved here, mostly for archival. One of the problems that came up with the rising dependency on Google and SEO in general is the use of www. On the one hand there is no reason to use www anymore. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em><strong>Note</strong>: This is a post written on July 24, 2009 in my personal website, <a title="Bibakis.com" href="http://bibakis.com">Bibakis.com</a>. </em><br />
<em>It has moved here, mostly for archival.</em></p>
<p>One of the problems that came up with the rising dependency on Google and SEO in general is the use of www. On the one hand there is no reason to use www anymore. 100% of modern browsers use the HTTP protocol by default so you don&#8217;t need to specify that you need to access the web part of a domain. It makes your site&#8217;s address larger and harder to remember, more ugly, less likely to fit alongside a logo. Also many suspect that it has an effect on your keyword density, therefore harming your search engine rank just a little bit.</p>
<p>On the other hand most of the users still keep the old habit of typing www.site.com in the address bar. I try to redirect to the &#8220;clean&#8221; version of the domain on all my sites. Even if the user uses the www he&#8217;s not harmed at all.</p>
<p>In fact most of the times nobody even notices. One way or another there is a solution to this. Whether you want to get rid of that 90s annoyance or you want to keep your domain a classic www there is an easy way to do this in codeigniter.</p>
<p>First create a hook in <strong>/application/config/hooks.php</strong></p>
<pre>$hook['post_controller_constructor'][] = array(
 'class'    =&gt; 'Utils_hook',
 'function' =&gt; 'redirect_to_base',
 'filename' =&gt; 'utils_hook.php',
 'filepath' =&gt; 'hooks'
);</pre>
<p>This tells CodeIgniter to execute the &#8220;redirect_to_base&#8221; method before the controller starts executing it&#8217;s own methods. Then you need to create the file <strong>/application/hooks/utils_hook.php</strong> and place the following code inside</p>
<pre>Class Utils_hook {
 function redirect_to_base(){
  $ci = &amp; get_instance();
  $uri = $ci-&gt;uri-&gt;uri_string();
  // recreates the URL
  $location = substr(base_url(),0,strlen(base_url())-1).$uri;

  $active_base_url = 'http://'.$_SERVER['SERVER_NAME'].'/';

  if (($active_base_url != base_url()) &amp;&amp; ($_SERVER['SERVER_ADDR'] != '127.0.0.1')){
   Header( "HTTP/1.1 301 Moved Permanently" );
   Header( "Location: $location" );
  }
 }
}</pre>
<p>This way the visitor is always redirected to the URL version you want even if he entered through an old bookmark such as http://www.sitename.com/action/example/</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Top or bottom of the page ? Where should you load your JavaScript ?</title>
		<link>https://demianlabs.com/lab/post/top-or-bottom-of-the-page-where-should-you-load-your-javascript/</link>
					<comments>https://demianlabs.com/lab/post/top-or-bottom-of-the-page-where-should-you-load-your-javascript/#comments</comments>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Sat, 24 Aug 2013 17:41:39 +0000</pubDate>
				<category><![CDATA[Academy]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=555</guid>

					<description><![CDATA[The JavaScript placement debate A few years ago, Yahoo released a free benchmarking tool for web pages. Aka Yslow. This tool is measuring what and when loads, during a pageview. It then gives a report about what is slowing down your page and then makes some recommendations on how you can improve the performance of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>The JavaScript placement debate</strong></p>
<p>A few years ago, Yahoo released a free benchmarking tool for web pages. Aka <a title="Yslow" href="http://developer.yahoo.com/yslow/">Yslow</a>. This tool is measuring what and when loads, during a pageview. It then gives a report about what is slowing down your page and then makes some recommendations on how you can improve the performance of your site.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone " alt="snail" src="https://demianlabs.com/lab/wp-content/uploads/snail.jpg" width="700" height="467" /></p>
<p>One of these recommendations is that you should load your JavaScript in the bottom of the page, right before the closing &lt;/body&gt; tag. The Yahoo people even went so far as to call this a &#8220;best practice&#8221;. Ever since, there is an ongoing debate among developers about the right place to load JavaScript files. Most people are indeed consider placing JavaScript in the bottom of the page a best practice. Is it so ?</p>
<p>When you put your JavaScript at the top of the page, the browser will start loading your JS files before the markup, images and text. And since browsers load JavaScript synchronously, nothing else will load while the JavaScript is loading. So there will be a timeframe of a few seconds where the user will see a blank page, while the JavaScript is loading.</p>
<p>On the other hand, if you place your JavaScript at the bottom of the page, the user will see the page loading first, and after that the JavaScript will load in the background. So if for example your CSS &amp; HTML takes 5 seconds to load, and your JavaScript takes another 5 seconds, putting our JavaScript on the top of the page will give the user a &#8220;perceived&#8221; loading time of 10 seconds, and putting it on the bottom will give a &#8220;perceived&#8221; loading time of 5 seconds.</p>
<p>I&#8217;m using the word perceived, because in both cases the page will be completely loaded in the same amount of time. In whatever order you place your assets, they still take the same time to load. All we can achieve by placing JavaScript at the bottom is how fast the user thinks the page has loaded. But still it sounds amazing, right ? By putting JavaScript at the bottom of the page, our pages will appear to be loading twice as fast.</p>
<p><strong>The perception of &#8220;the web&#8221;</strong></p>
<p>Well this used to be the big picture in the past. Back then, when the web was something very different from what it is today. Overgeneralizing, for the sake of simplicity, this is how the web was perceived by almost everyone (including web professionals) until recently.</p>
<p><img loading="lazy" decoding="async" class="alignnone " alt="the old perception" src="https://demianlabs.com/lab/wp-content/uploads/the-old-perception.jpg" width="700" height="400" /></p>
<p>Since then much have changed. First and most important, we don&#8217;t talk about &#8220;web pages&#8221; these days. We now talk about &#8220;web apps&#8221;, &#8220;software in the cloud&#8221; and &#8220;software as a service&#8221;. The web used to be more like digital paper. A way to let people know about your company, a platform for your blogging, at best a place to read your email remotely. But now in 2013 the web is quickly replacing the remnants of desktop software and is battling toe to toe with Java and Objective-C, for domination on mobile devices.</p>
<p>All these concepts were a utopia, no more than five years ago. But today <strong>the content is no longer the king</strong>. <strong>The web is now a democracy</strong>. People don&#8217;t come to us for content anymore, they create it themselves. Our role as web developers is to empower them, by giving them the tools and functionality to create and interact with their content.</p>
<p>Forget about supporting IE6 and browsers without JavaScript. This is just a 5% of people who fear change, like some people never bothered to buy a computer at all. In a world where we are competing with native mobile developers over performance and features, we can&#8217;t afford to think of the web as anything other than pure software. In a way, functionality is the new content and JavaScript is the new king.</p>
<p><strong>JavaScript placement in web applications</strong></p>
<p>Back to our topic. Let&#8217;s get back to our example, where we load our JavaScript at the bottom of the page. The user is left for a few seconds with a perfectly looking HTML template where nothing is functional. If the users tries to perform an action and finds out that it&#8217;s not working, he will perceive our application as &#8220;broken&#8221;. What&#8217;s even worse, is that we have no way of letting the user know when the app will be fully functional.</p>
<p>On the contrary if we place our JavaScript on top, the user will get a blank page for a few seconds, but once the markup is loaded, everything will be fully functional from the first second. Therefore by purposefully giving the user a blank page, we are giving him information that the app is still loading. The user knows that the app will be functional when he sees boxes and buttons.</p>
<p>The user may think that our app is slow, or that his connection is having hick-ups or even that his device is slow. Not only we don&#8217;t take the full blame for the slow loading of our app, but we eliminate the possibility of the user interacting with a broken version of our application.</p>
<p>A few seconds to load the app is one of the most common things in digital devices in general. People wait for computers to boot up, for youtube videos to load, for Microsoft Word to open, for almost everything. Nobody will go crazy for a couple more seconds of waiting. But there is nothing worse than a user tapping a button which does not work. This is a breach of trust from the user end. If the app didn&#8217;t function correctly now, will it lose my data tomorrow ? Should I pick another app instead ?</p>
<p>Even the slow loading experience can be eased, using a simple loader like Gmail did.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-560" alt="gmail loading" src="https://demianlabs.com/lab/wp-content/uploads/gmail-loading.jpg" width="406" height="93" srcset="https://demianlabs.com/lab/wp-content/uploads/gmail-loading.jpg 406w, https://demianlabs.com/lab/wp-content/uploads/gmail-loading-300x68.jpg 300w" sizes="auto, (max-width: 406px) 100vw, 406px" /></p>
<p>Summarising, it really depends on what you&#8217;re making. If you&#8217;re still stuck in the &#8220;content&#8221; world then it&#8217;s maybe best to place your JavaScript at the bottom of the page. But if you are making web software you&#8217;re much better, placing JavaScript at the top, because functionality is the new king.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://demianlabs.com/lab/post/top-or-bottom-of-the-page-where-should-you-load-your-javascript/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Our presentations to Joomla Day Greece 2013</title>
		<link>https://demianlabs.com/lab/post/our-presentations-to-joomla-day-greece-2013/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Thu, 01 Aug 2013 17:58:29 +0000</pubDate>
				<category><![CDATA[Academy]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=550</guid>

					<description><![CDATA[Vangelis Bibakis recently gave two presentations to Joomla Day Greece. In the first presentation he talks about MainframePHP, the framework we use to create web applications. The first parts of the presentation are a basic introduction with case studies and performance data. He goes into detail on how Mainframe compares to external libraries which provide [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vangelis Bibakis recently gave two presentations to Joomla Day Greece.</p>
<p>In the first presentation he talks about <em>MainframePHP</em>, the framework we use to create web applications. The first parts of the presentation are a basic introduction with case studies and performance data. He goes into detail on how Mainframe compares to external libraries which provide similar functionality. This is also a great intro to people who are getting started with Mainframe and want to see how it implements concepts like theming and modularity.</p>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/23100929" height="356" width="427" allowfullscreen="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Mainframe, the fast PHP framework" href="http://www.slideshare.net/bibakis/mainframe-the-fast-php-framework" target="_blank">Mainframe, the fast PHP framework</a> </strong> from <strong><a href="http://www.slideshare.net/bibakis" target="_blank">bibakis</a></strong></div>
<p>In the <em>How to get the tech job of your dreams presentation</em> he explains why you should not have a CV and how to write a great cover letter.</p>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" src="http://www.slideshare.net/slideshow/embed_code/23101044" height="356" width="427" allowfullscreen="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="How to get the tech job of your dreams" href="http://www.slideshare.net/bibakis/how-to-get-the-tech-job-of-your-dreams" target="_blank">How to get the tech job of your dreams</a> </strong> from <strong><a href="http://www.slideshare.net/bibakis" target="_blank">bibakis</a></strong></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The secret to pricing your SaaS product right</title>
		<link>https://demianlabs.com/lab/post/the-secret-to-pricing-your-saas-product-right/</link>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Fri, 26 Jul 2013 19:59:11 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=537</guid>

					<description><![CDATA[It&#8217;s far more simple than you may have thought. Also it&#8217;s more common sense than secret. Anyway it goes like this. The million euros question You (obviously) know your product, and you know the competition. So since the main competitor in your field prices their equivalent product at $X/m, how much would you pay for [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s far more simple than you may have thought. Also it&#8217;s more common sense than secret. Anyway it goes like this.</p>
<p><strong>The million euros question</strong></p>
<p>You (obviously) know your product, and you know the competition.</p>
<p>So since the main competitor in your field prices their equivalent product at $X/m, how much would you pay for <strong>your</strong> product. Oh, you have 5 seconds to answer&#8230;</p>
<p>If you can&#8217;t answer this question in 5 seconds, this means one or more of the following:</p>
<ul>
<li>You don&#8217;t have a clear idea of what your product really is.<br />
You&#8217;ve built some features together, but you have no sense of the end result.</li>
<li>You have not studied the competition enough.<br />
You may have a good product, but you don&#8217;t know if it&#8217;s good enough.</li>
<li>You can&#8217;t put your self in the customer&#8217;s shoes.<br />
This is by far the worse case scenario. If you don&#8217;t know how people perceive and evaluate similar products, it&#8217;s very hard to know what features to build, how to advertise your product right and obviously how to price it.</li>
</ul>
<p style="text-align: center; margin-top: 40px;"><img loading="lazy" decoding="async" class="aligncenter  wp-image-539" alt="Dollars stack" src="https://demianlabs.com/lab/wp-content/uploads/money.jpg" width="700" height="469" srcset="https://demianlabs.com/lab/wp-content/uploads/money.jpg 1400w, https://demianlabs.com/lab/wp-content/uploads/money-300x200.jpg 300w, https://demianlabs.com/lab/wp-content/uploads/money-1024x685.jpg 1024w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p><strong>The tablet example</strong></p>
<p>First of all let&#8217;s define tablets.</p>
<p>Tablets are the device that people use to get away from all the things that suck about computers. These include, Adobe flash, keyboards, cables, Microsoft office, loosing your work because of a virus, running out of battery after an hour, troubleshooting driver problems and many many others.</p>
<p>People use tablets to easily watch videos, surf the web, enjoy music, and talk with friends. They like them because they are simple, light and the battery lasts for long.</p>
<p>Microsoft released Surface tablet for $500, the same price as iPad. Surface had most of the problems in group A, where iPad had all of the qualities in group B. Surface&#8217;s only competitive advantage was running Microsoft Office natively. As we all know, MS Office is a boring piece of software most of us already use all day at our computers at work. Mostly because we have to.</p>
<p>So if the top competitor in the market prices it&#8217;s product at $500, and your product is heavy and boring, with a worse screen and poor battery life how much would you pay for it? I&#8217;d say $200 would be a fair price, although I&#8217;d still go for the iPad.</p>
<p>Microsoft failed to answer all of the above questions and ended up dropping the price by $150 a couple of weeks ago.</p>
<p><strong>Who got the price right ?</strong></p>
<p>Google was more respectful of the competition and priced Nexus 7 at an introductory price of $200. At the time android was not as polished as iOS, it didn&#8217;t have an equally large app selection, it was heavier and with a bit worse battery life. Still at $200 it was a very honest and competitive offer compared to iPad mini being 65% more expensive at $330.</p>
<p><strong>The pricing path</strong></p>
<p>Every day during the development of your product, it&#8217;s important to be respectful of the efforts of other talented people. The market is full of well established products that you simply cannot compete with without either an amazing product or a very competitive price.</p>
<p>The more you evaluate your competition the harder it looks. This not defeatism. This is realism. There is a good reason 80% of new companies fail during the first five years. This thought path will eventually lead you to the conclusion that in most markets it&#8217;s impossible to compete. For example I can&#8217;t imagine any startup competing with Gmail.</p>
<p>That&#8217;s perfectly fine, you don&#8217;t have to compete with giants. Through constant and honest re-evaluation of your pricing strategy you will understand in which market segment you can achieve a competitive pricing for your product.</p>
<p>The rule of thumb is that if you end up pricing your product very low, your are trying at a very saturated market. If you end up pricing your product very high, you are trying at a market where there is not sufficient demand. The pricing path leads to the ideal positioning of your product in the market, in a segment where you can realistically have a good chance of competing.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Irony is a loser&#8217;s trait</title>
		<link>https://demianlabs.com/lab/post/irony-is-a-loosers-trait/</link>
					<comments>https://demianlabs.com/lab/post/irony-is-a-loosers-trait/#comments</comments>
		
		<dc:creator><![CDATA[VangelisB]]></dc:creator>
		<pubDate>Fri, 31 May 2013 05:40:30 +0000</pubDate>
				<category><![CDATA[Business]]></category>
		<guid isPermaLink="false">http://demianlabs.com/lab/?p=517</guid>

					<description><![CDATA[It&#8217;s fun to see Siri making fun of Android and Samsung at WWDC 2012. It&#8217;s also fun to see Microsoft making fun of Siri in it&#8217;s latest commercial. But it&#8217;s infinitely more fun reading IDC&#8217;s report on mobile OS market share for the first quarter of 2013. Android: 75 % iOS: 17,3 % Windows Phone: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s fun to see Siri making fun of Android and Samsung at WWDC 2012.</p>
<div class="video_container"><iframe loading="lazy" src="http://www.youtube.com/embed/zusEsDjuqvE?rel=0" height="240" width="320" allowfullscreen="" frameborder="0"></iframe></div>
<p>It&#8217;s also fun to see Microsoft making fun of Siri in it&#8217;s latest commercial.</p>
<div class="video_container">
<iframe loading="lazy" src="http://www.youtube.com/embed/86JMcy5OqZA?rel=0" height="240" width="320" allowfullscreen="" frameborder="0"></iframe>
</div>
<p>But it&#8217;s infinitely more fun reading <a title="Smartphone Operating System Shipments" href="http://www.idc.com/getdoc.jsp?containerId=prUS24108913">IDC&#8217;s report</a> on mobile OS market share for the first quarter of 2013.</p>
<p>Android: 75 %<br />
iOS: 17,3 %<br />
Windows Phone: 3,2 %</p>
<p>Losers always try to find cheap ways to degrade other&#8217;s work.<br />
Winners are busy developing their next version.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://demianlabs.com/lab/post/irony-is-a-loosers-trait/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
