<?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>Barandi Solutions</title>
	<atom:link href="http://www.barandisolutions.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.barandisolutions.com/blog</link>
	<description>Shaping Your Ideas</description>
	<lastBuildDate>Thu, 26 Apr 2012 10:44:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Growing the SaaS</title>
		<link>http://www.barandisolutions.com/blog/2012/03/21/growing-the-saas/</link>
		<comments>http://www.barandisolutions.com/blog/2012/03/21/growing-the-saas/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 15:29:24 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=244</guid>
		<description><![CDATA[<p>An arts service organization in the United States that provides information technology systems has designed a fully customizable, robust, and flexible SaaS for online application and forms management. Their most recent offering allows agencies to optimize their entire grant making processes.</p> Challenge <p>Due to the rapid growth of the new product offering, increase in market [...]]]></description>
			<content:encoded><![CDATA[<p>An arts service organization in the United States that provides information technology systems has designed a fully customizable, robust, and flexible SaaS for online application and forms management. Their most recent offering allows agencies to optimize their entire grant making processes.</p>
<h2>Challenge</h2>
<p>Due to the rapid growth of the new product offering, increase in market demands, and the robust features offered, the SaaS reached a critical threshold. The organization identified areas where the query of the dynamic database could be improved and wanted a scalable process to manage development of feature enhancements as well as to continue with quality assurance for the system when new requirements were customized in their application.</p>
<h2>Results</h2>
<p>With this in mind, our sole focus was on two directions:</p>
<ol>
<li>Optimization of everything from code to database–ranging from architecture to the queries being executed–and thus improved the execution time by 100%.</li>
<li>Building a robust web testing framework based on Selenium that would work to ensure quality assurance by recursive testing of each functionality on a daily basis over all major platforms, including Windows, Linux and Macintosh.</li>
</ol>
<blockquote><p>&#8220;Barandi Solutions has been a tremendous help to our organization in the development and fine tuning of our web-based SaaS.  Barandi Solutions has quickly assessed our needs and provided cost-effective resolutions to often highly complex challenges.  Our entire staff finds the company easy to communicate with, easy to work with, and highly professional.&#8221;  - <strong> <strong>Associate Director, Arts Service Organization.</strong></strong></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2012/03/21/growing-the-saas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are you THE Javascript or PHP Outlaw?</title>
		<link>http://www.barandisolutions.com/blog/2012/02/08/are-you-the-javascript-or-php-outlaw/</link>
		<comments>http://www.barandisolutions.com/blog/2012/02/08/are-you-the-javascript-or-php-outlaw/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 10:08:37 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=227</guid>
		<description><![CDATA[<p><a href="http://wanted.barandisolutions.ro?utm_source=http://barandisolutions.com"></a></p> We know CVs suck, and building one is a waste of YOUR TALENT and TIME. Instead, show us your most prized Javascript or PHP project! <p></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wanted.barandisolutions.ro?utm_source=http://barandisolutions.com"><img class="alignleft size-full wp-image-230" title="Are you THE Javascript or PHP Outlaw?" src="http://www.barandisolutions.com/blog/wp-content/uploads/2012/02/outlaw-click-it-520x800.jpg" alt="" width="520" height="800" /></a></p>
<div style="display: none;">We know CVs suck, and building one is a waste of YOUR TALENT and TIME. Instead, show us your most prized Javascript or PHP project!</div>
<p><span id="more-227"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2012/02/08/are-you-the-javascript-or-php-outlaw/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What do you do when you&#8217;ve raised $2.6 million in funding? You SCALE! &#8211; with Emi Gal</title>
		<link>http://www.barandisolutions.com/blog/2012/01/31/what-do-you-do-when-you-have-raised-2-6-million-in-funding-you-scale-with-emi-gal/</link>
		<comments>http://www.barandisolutions.com/blog/2012/01/31/what-do-you-do-when-you-have-raised-2-6-million-in-funding-you-scale-with-emi-gal/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 13:22:37 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=211</guid>
		<description><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/emi-gal1.jpg"></a>Although he has just been featured on the cover of <a title="Forbes 30 under 30" href="http://emigal.com/wp-content/uploads/2012/01/emi-gal-forbes.jpg" target="_blank">Forbes Romania</a>, <a href="http://emigal.com/" target="_blank">Emi Gal</a>, the CEO and co-founder of <a href="http://www.brainient.com/" target="_blank">Brainient</a> found the time to answer some of our more &#8220;technical&#8221; questions.</p> <p>Emi&#8217;s startup, Brainient, has already won several awards, including</p> <a href="http://eu.techcrunch.com/2009/09/25/seedcamp-announces-its-six-winners-for-2009/" target="_blank">SeedCamp</a> <a href="http://eu.techcrunch.com/2010/11/20/the-europas-european-startup-awards-2010-the-winners-and-finalists/" target="_blank">TechCrunch&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/emi-gal1.jpg"><img class="alignleft size-full wp-image-217" title="Emi Gal" src="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/emi-gal1.jpg" alt="" width="140" height="140" /></a>Although he has just been featured on the cover of <a title="Forbes 30 under 30" href="http://emigal.com/wp-content/uploads/2012/01/emi-gal-forbes.jpg" target="_blank">Forbes Romania</a>, <a href="http://emigal.com/" target="_blank">Emi Gal</a>, the CEO and co-founder of <a href="http://www.brainient.com/" target="_blank">Brainient</a> found the time to answer some of our more &#8220;technical&#8221; questions.<span id="more-211"></span></p>
<p>Emi&#8217;s startup, Brainient, has already won several awards, including</p>
<ul>
<li><a href="http://eu.techcrunch.com/2009/09/25/seedcamp-announces-its-six-winners-for-2009/" target="_blank">SeedCamp</a></li>
<li><a href="http://eu.techcrunch.com/2010/11/20/the-europas-european-startup-awards-2010-the-winners-and-finalists/" target="_blank">TechCrunch&#8217;s The Europas</a></li>
<li><a href="http://thenextweb.com/apps/2010/04/29/brainient/" target="_blank">TheNextWeb&#8217;s Honorary Mention</a></li>
<li><a href="http://www.svc2c.com/" target="_blank">Company of the Year in Silicon Valey Comes to Cambridge</a></li>
</ul>
<p>Emi talks about his background, the fact that he started his first business at 19, and that now, at 25, his third company raised $2.6 million so far. You will learn what Braininent, BrainAds and BrainRolls do, as well as what were the biggest challenges he faced when developing these platforms.</p>
<p>You can find out how to make your SaaS competitive from Braininent&#8217;s example. Learn how they send out ad details in 200 milliseconds, while the entire infrastructure receives over 2000 &#8211; 3000 requests / second.</p>
<p>And in the end, Emi shares with you One Lesson you can use when building your own product.</p>
<h2>Watch the FULL interview</h2>
<p><iframe src="http://www.youtube.com/embed/BaVqXOdSLGM?rel=0" frameborder="0" width="560" height="315"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2012/01/31/what-do-you-do-when-you-have-raised-2-6-million-in-funding-you-scale-with-emi-gal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vladimir Oane &#8211; What it took to build the real time analytics engine uberVU is today</title>
		<link>http://www.barandisolutions.com/blog/2012/01/23/vladimir-oane-what-it-took-to-build-the-real-time-analytics-engine-ubervu-is-today/</link>
		<comments>http://www.barandisolutions.com/blog/2012/01/23/vladimir-oane-what-it-took-to-build-the-real-time-analytics-engine-ubervu-is-today/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 08:12:37 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=196</guid>
		<description><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/1db026d.jpg"></a><a href="https://twitter.com/#!/vladimiroane">Vladimir Oane</a>, Co-Founder and Product Manager of the innovative real time analytics engine <a href="http://www.ubervu.com" target="_blank">uberVU.com</a> talks about how the project started as a Seedcamp winner in 2008 and grew into a 100 servers business, with huge amounts of terabytes.</p> Watch the FULL interview <p></p> Andrei Barabas: Hi everyone. This is Andrei from [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/1db026d.jpg"><img class="alignleft size-full wp-image-197" title="Vladimir Oane" src="http://www.barandisolutions.com/blog/wp-content/uploads/2012/01/1db026d.jpg" alt="" width="160" height="160" /></a><a href="https://twitter.com/#!/vladimiroane">Vladimir Oane</a>, Co-Founder and Product Manager of the innovative real time analytics engine <a href="http://www.ubervu.com" target="_blank">uberVU.com</a> talks about how the project started as a Seedcamp winner in 2008 and grew into a 100 servers business, with huge amounts of terabytes.<span id="more-196"></span></p>
<h2>Watch the FULL interview</h2>
<p><iframe src="http://www.youtube.com/embed/jDsLMlBDsaE?rel=0" frameborder="0" width="560" height="315"></iframe></p>
<div class="transcript">Andrei Barabas: Hi everyone. This is Andrei from Barandi Solutions. Today we are going to discuss about what it takes to build a real-time analytics engine. For that I&#8217;m here with Vladimir Oane, cofounder and product manager of uberVU.</p>
<p>Hi Vladimir. Thank you for joining.</p>
<p>Vladimir Oane: Hey. How are you?</p>
<p>Andrei Barabas: Hi. Vladimir, can you tell our viewers what is your background? Where do you come from?</p>
<p>Vladimir Oane: Well, I come from a small town in Romania called Boca. But when I went to college I moved to Bucharest and I studied computer science at The Polytechnic University of Bucharest. So I&#8217;m kind o a geek. Yeah, that&#8217;s my background, so to speak.</p>
<p>In 2000 and something, when I was in my second year of college I started an agency called Metromind and we developed many, many projects for a bunch of clients and did our own projects. Our most successful. One was with CMS called Bluo. It was involving many other startups as well.</p>
<p>But three and a half, four years ago we decided consulting is not the way to move forward. We wanted a more international project, something that would appeal to many thousands of people all over the world. So we decided to start a software distributive service company.</p>
<p>And our idea, which was to become what is now uberVU, we pitched it to CitCamp in 2008. For those who don&#8217;t know what CitCamp is, it&#8217;s like a combinator of Europe. It&#8217;s probably the most successful incubator, R&#038;D investment engine for Europe.</p>
<p>And because we won that we created our company in London and we started working on a pretty cool company.</p>
<p>[silence]</p>
<p>Vladimir Oane: It depends. It terms of iterations, a lot. Our current iteration right now is number 16. [laughs] Of course, out of those 16, more than half have never been launched or probably just some wire frame somewhere.</p>
<p>The first one was the wire frame that we applied to CitCamp with, which was an HTML powered by some PHP on a server and we describe that ration right after we won CitCamp. So that was version one and now we&#8217;re at version 16. But probably there were three public versions out of those 16 versions on paper.</p>
<p>Andrei Barabas: OK. One thing that I forgot to ask you, what does uberVU do? You told me about the Seacam. It had 16 revisions by now, major ones. But what does it do? What is its essence so that people can relate to it?</p>
<p>Vladimir Oane: So, uberVU is a social intelligence program. That&#8217;s how we describe it right now. We&#8217;re kind of an end-to-end social media platform for medium and big companies. We&#8217;re helping our clients to monitor everything that&#8217;s being said about them, their products, their competitors, everything that&#8217;s happening in the social space on 25 plus platforms. Then we&#8217;re analyzing everything, and we allow them to report on the key metrics in social media.</p>
<p>The third one is engagement. Once they identify their key customers, influencers, and so on, they can engage straight from within uberVU. We like to think of uberVU as being the uber solution to social media problems. We are being used by some amazing clients all over the world.</p>
<p>Andrei Barabas: OK, basically you bring the user engagement to another whole new level.</p>
<p>Vladimir Oane: Yeah, that&#8217;s our goal.</p>
<p>Andrei Barabas: OK. Since you are working with 20 or so social media platforms, I suppose that you are having a lot of data?</p>
<p>Vladimir Oane: Yeah, we are. We&#8217;re gathering terabytes and terabytes of data every week. From a technical point of view, we&#8217;re a big data company. So, our challenge is one that every big data company has storing a lot of data, analyzing a lot of data. Our challenge is even greater, I think, because all of the data that we are analyzing and showing to clients need to be in real time, where the social web is becoming more and more real time, and our clients expect everything that we do to be real time as well.</p>
<p>Andrei Barabas: OK, that&#8217;s a huge challenge. During those 16 revisions, you perhaps at the beginning had a different approach to real time data than you have right now. Can you walk us through from the beginning until now to see how you evolved, basically?</p>
<p>Vladimir Oane: Yeah. Initially we started with an on demand polling platform. Your audience is fairly technical, so I&#8217;ll speak in technical terms. Our initial version was about culling social media reactions to certain URLs and providing a unified way to gather reactions and provide analytics for your stories or stories that you pinpoint where you&#8217;re at. So, you had to give us some urls, either manually or to a feed that we can call and index and stuff like that.</p>
<p>And, yes, we used some basic crawlers and you can imagine the data that we gathered wasn&#8217;t so massive. Unfortunately, the users didn&#8217;t want to use the system this way. Our users wanted for overview to have everything when they logged in.</p>
<p>They didn&#8217;t want to tell us what to look for. They wanted overview to be smart enough to define stuff for them. I mean in a Google world, you can&#8217;t expect clients to give you, I don&#8217;t know, individual url. So, our first big challenge was, OK, let&#8217;s crawl everything and whenever people pinpoint to some url or something, we&#8217;ll have in there. And, yes, we switched to a search engine like&#8230;</p>
<p>Andrei Barabas: Before we go there, if I may, if I may interrupt you, to clarify this part. So, here is what I understood from these crawl and demand, perhaps, you can correct me if I&#8217;m wrong. So, initially, what you did was, if I created, I&#8217;m your client of yours. I created an account and then what I had to do, I had to go and put in some urls that I thought you should parse or urls like Facebook, like Twitter or some kind of blogs?</p>
<p>Vladimir Oane: Yes, I mean imagine that in 2008, 2009 when we started, the Web wasn&#8217;t so divided between Facebook, Twitter. There were a bunch of platforms and Web 2.0 services. And the king of all was the blog. And everyone was doing a blog when they were thinking of social media. So, we were looking at the blog as being the major app of social media.</p>
<p>So, we started with this concept of a url. Of course, the world changed since then, and now we&#8217;re beyond urls. People are posting status messages, are doing bogus, crazy interaction all over the Web, so we had to adapt. But in 2008, 2009, the blog was the kind of social media. Facebook was the new kid on the block. Twitter was something that very few people were using.</p>
<p>So, we thought a company would structure their social media activities and metrics around their blog. And, but yes, the world changed, so we had to change the blog.</p>
<p>Andrei Barabas: You adapted. OK. Fair enough. So you basically went from a blog-oriented company to more of a Facebook, social media, Twitter, which is more real-time, things happen much more quickly, like you mentioned, you have statuses which can be either positive or negative or neutral to a particular brand.</p>
<p>So, how did that go?</p>
<p>Vladimir Oane: We started with a typical light search engine. I think we looked at all the major open source search engines out there and my colleagues decided to go ahead with the SAPIEN, I think mainly because we are Python shop and SAPIEN is built in Python. That worked pretty well until we decided we need to call everything and store everything and not just blog URL-related data.</p>
<p>Once we did that we had to re-architecture all the system and work with a scale that we were not used to work with. That&#8217;s kind of how we ended up doing what we&#8217;re doing from a technical point of view.</p>
<p>It was a pretty painful process. We moved from one server to a few servers and now we&#8217;re running 100 plus servers and it&#8217;s growing more and more every month.</p>
<p>Andrei Barabas: That&#8217;s good. So from the viewer&#8217;s point of view, before you had users to enter URLs. Now you do that for them. They do not need to do anything like that before they see the data. But how do you assure that whenever I create an account, I immediately see the data that is relevant to me.</p>
<p>Because I can imagine that there are millions of Twitter, of Facebook accounts that you could search. What do you do? Do you search them all or&#8230;?</p>
<p>Vladimir Oane: No. When you set up an uberVU account, you specify the things that you&#8217;re interested in like your company, your products, your competitors and things like that. Of course, you can edit that profile, you can add in things and delete things on the fly.</p>
<p>But we use those things as ways to collect data. So you tell us what your company name, your product, if you have Facebook fan page, if you have a Twitter handle. So all these things add up and create a universe of things that we use for [inaudible 12:54] problems, stuff like that.</p>
<p>Andrei Barabas: OK. Is there any &#8211; the benefit of these architecture that you obtain much more information much more faster. But is there any downside to it?</p>
<p>Vladimir Oane: Of course, [laughs] it&#8217;s much more expensive and we need a lot of people to manage it and we need very experienced developers to build it. It&#8217;s the difference between building a very small website and building a 3D complex Web application. The differences are huge.</p>
<p>Andrei Barabas: I understand, I understand. OK. So, we are now in 2012 where you have terabytes of data. You have 100 plus servers. How do you manage them? Do you have them in your home or in your office, you have 100 computers or what do you do?</p>
<p>Vladimir Oane: No, no. We&#8217;re using the cloud. We&#8217;re using Amazon&#8217;s Web services. We started with Amazon because they were one of the, I think the C-cam sponsors answers. But, yes, we&#8217;re on Amazon. I think we&#8217;re using a lot of the available offers in instances.</p>
<p>So, yes, we&#8217;re deployed into the cloud. And, we manage to survive without any professional office settings for almost two years. And now we have two new talented seats openings who will join our team because it was unmanageable. So, you still need C cell and it was very good C cell even if you are running into the cloud.</p>
<p>Andrei Barabas: OK. So, you mentioned&#8230;</p>
<p>Vladimir Oane: It solves circumstances.</p>
<p>Andrei Barabas: I understand. Since you mention C cell means. To a person that doesn&#8217;t know exactly what the cloud is, many people think OK, it&#8217;s something, it&#8217;s a server perhaps. I don&#8217;t have access to it or something like that. It&#8217;s really mystical, the cloud. But, can you give us a more easier description? What&#8217;s the difference between the cloud and, perhaps, a virtual server or a cluster of virtual servers? For example, I have one virtual server. What&#8217;s the difference?</p>
<p>Vladimir Oane: I think the most important aspect is it&#8217;s self managed. You don&#8217;t have to worry about it. You don&#8217;t have to worry about if it&#8217;s saving to your hard drive or stuff like that. It&#8217;s just, your RAM&#8217;s machines, and you don&#8217;t care where those machines are or if some of them have problems because your systems on scales.</p>
<p>For example, without you worrying about the health of your computers which is very, very important because otherwise you maybe during the year find out your hard drive breaks one day and all your data is lost or something like that.</p>
<p>Of course, you need your architecture, your system, even in the clouds, to be aware of bad things that may happen. But still not having to worry about infrastructure, let&#8217;s say in the first years, I don&#8217;t think we would have been able to start without a cloud service.</p>
<p>[bang]</p>
<p>[silence]</p>
<p>Vladimir Oane: Yeah, everything is running virtualized on some servers. We don&#8217;t need to get into what virtual servers means and stuff like that. But yeah, everything is virtual inside there. As you said, abstraction I think is the best one.</p>
<p>Andrei Barabas: OK. OK. One more question. What would you recommend fellow tech entrepreneurs not to do? Can you give us, perhaps, one or two mistakes that you know that if you have the chance to undo them then you would do that?</p>
<p>Vladimir Oane: From a technical point of view you mean?</p>
<p>Andrei Barabas: Yes, from a technical point of view. Yes.</p>
<p>Vladimir Oane: There are many.</p>
<p>Andrei Barabas: One from the top of your head.</p>
<p>Vladimir Oane: Probably, I&#8217;m talking more from a product perspective more than a technical perspective, be really careful about the stuff that you want to build. When I started I had this idea that everything is easy to build and, &#8220;Let&#8217;s build it. Let&#8217;s build it. Well, how hard can it be?&#8221;</p>
<p>You shouldn&#8217;t be so enthusiastic about building things initially. You should take some time and really think about what you want to build and make sure that there are people who really need that stuff. And once you decide to build it, make sure that you build it the right way. Because if, and it&#8217;s a small chance that your stuff will be successful, but if it gets successful, make sure that you have a strong foundation to build on.</p>
<p>Andrei Barabas: OK. Good point. Good point. Is there anything else that you would like to tell to our viewers?</p>
<p>Vladimir Oane: No. I think just start doing stuff. We had no idea about the technical challenges when we started. I&#8217;m sure that if I had any idea on how hard it would be to get to the point where we are right now I would have quit. [laughs]</p>
<p>Andrei Barabas: [laughs] It&#8217;s a good thing you didn&#8217;t know.</p>
<p>Vladimir Oane: Yeah. So not knowing is actually a good thing. And it&#8217;s good to be quite ignorant initially and just start working on something and you&#8217;ll figure stuff out. And the beauty of technology is people who are building things are pretty open and they share their experience.</p>
<p>The way you reached me to ask me a few questions, the same way you can reach some other talented developers to answer your questions and to help you along the way. So I think starting is the best advice.</p>
<p>Andrei Barabas: OK. Thank you so much. Everyone go check out ubervu.com. There you can see, in real time, what people are saying about you on Facebook, Twitter, and 18 other social platforms. Thank you, Vladimir, for joining us. This is Andrei. Have a great day.</p>
<p>Vladimir Oane: Bye.
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2012/01/23/vladimir-oane-what-it-took-to-build-the-real-time-analytics-engine-ubervu-is-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why is data normalization evil OR Throw away what you&#8217;ve learned in school</title>
		<link>http://www.barandisolutions.com/blog/2011/12/19/why-is-data-normalization-evil-or-throw-away-what-youve-learned-in-school/</link>
		<comments>http://www.barandisolutions.com/blog/2011/12/19/why-is-data-normalization-evil-or-throw-away-what-youve-learned-in-school/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 12:40:22 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=167</guid>
		<description><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/12/prof_geek_reasonably_small.jpg"></a><a href="https://twitter.com/philgo20" target="_blank">Philippe Gauvin</a>, Co-Founder of the innovative recruting software as a service <a href="http://www.matchfwd.com/" target="_blank">matchFWD.com</a> presents the challenges they faced when working with the database, as well as the solution they addopted to increase the speed of their application.</p> Watch the FULL interview <p></p> Links where you can read more, by Philippe Gauvin <a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/12/prof_geek_reasonably_small.jpg"><img class="alignleft size-full wp-image-180" title="Philippe Gauvin" src="http://www.barandisolutions.com/blog/wp-content/uploads/2011/12/prof_geek_reasonably_small.jpg" alt="Philippe Gauvin" width="128" height="128" /></a><a href="https://twitter.com/philgo20" target="_blank">Philippe Gauvin</a>, Co-Founder of the innovative recruting software as a service <a href="http://www.matchfwd.com/" target="_blank">matchFWD.com</a> presents the challenges they faced when working with the database, as well as the solution they addopted to increase the speed of their application.<span id="more-167"></span></p>
<h2>Watch the FULL interview</h2>
<p><iframe src="http://www.youtube.com/embed/W1PsMLHJZJ4?rel=0" frameborder="0" width="560" height="315"></iframe></p>
<h2>Links where you can read more, by Philippe Gauvin</h2>
<ul>
<li><a href="http://stackoverflow.com/questions/47711/how-do-you-determine-how-far-to-normalize-a-database " target="_blank">http://stackoverflow.com/questions/47711/how-do-you-determine-how-far-to-normalize-a-database</a></li>
<li><a href="http://www.agiledata.org/essays/dataNormalization.html" target="_blank">http://www.agiledata.org/essays/dataNormalization.html</a></li>
<li><a href="http://en.wikipedia.org/wiki/Dimensional_database#Normalized_versus_dimensional_approach_for_storage_of_data" target="_blank">http://en.wikipedia.org/wiki/Dimensional_database#Normalized_versus_dimensional_approach_for_storage_of_data</a></li>
</ul>
<h2>Raw Transcript</h2>
<div class="transcript">Andrei: Hi, everyone. This is Andrei from Barandi Solutions. Today we are going to talk about why data normalization is evil, or in other words, why we should throw away what we learned in school.</p>
<p>For this I have Phil from matchFWD.com. He is the founder and CEO. Phil, thank you for joining us.</p>
<p>Phil: Thank you. Thank you for being here.</p>
<p>Andrei: Phil, can you give our watchers more information about your background, about what your company does, when did you founded it?</p>
<p>Phil: All right. So I&#8217;ve been in technology for about 12 years in different roles, mostly developing as a software engineer. I&#8217;ve worked in image analysis field, mobile gaming, digital signage and the web, obviously.</p>
<p>We started Match FWD just about a year ago, a little less than a year ago, with a cofounder who has been in the recruitment industry for over 10 years, to build a new way for people to connect, for hiring managers to connect with talents and talents with hiring managers.</p>
<p>We think the best hire comes from referrals, from personal referrals. So we wanted to build a tool around that. So for the hiring manager, it takes the form of a social recruiting campaign manager. So you post a job and we give you all the tools to identify candidates and identify people that could put you in touch with good candidates that would match your company and your skills requirement.</p>
<p>We do the same thing for the candidate, too. So if you already have a job and you&#8217;re looking for a new opportunity, you want a new type of career, you can say that privately to a certain group of people and we help them see what&#8217;s available in their networks. So we can refer you good jobs or good people to work with.</p>
<p>Andrei: OK, OK. You mentioned that you&#8217;re using referrals. Are you taking your data from any part of&#8230;? How do you get&#8230;?</p>
<p>Phil: Yeah. So the whole platform is built on top of the LinkedIn API. Right now we&#8217;re integrating Facebook, too. So we don&#8217;t want people to start reentering all their profile information. The signup process is very easy. We basically import all the information we can find around your profile.</p>
<p>Obviously if you&#8217;ve never entered any work-related information in Facebook, you can do it on the side. But yeah, it&#8217;s a pretty easy signup.</p>
<p>Andrei: I understand, I understand. So if you&#8217;re using LinkedIn and soon Facebook, that means you are&#8230; I can imagine you are working with a lot of data. LinkedIn has a million if not millions of information on personnel, jobs, companies, et cetera. So how do you tackle with that?</p>
<p>Phil: Yeah. Well, obviously right now we don&#8217;t have access to all LinkedIn API. The API terms are pretty strict to what amount of data you&#8217;re allowed to tap in. But yes, nevertheless, even just in beta, the amount of data we had to work with is pretty impressive.</p>
<p>As you mentioned earlier as the topic or the title of this interview, we learned that what you learn in school around data normalization is not always the best solution when you&#8217;re dealing with a lot of data.</p>
<p>Andrei: OK. Can you give our watchers a better understanding of the number of data that you are talking about? I know that it depends on the actual information but perhaps you can give us a rough number of rows for example, or individuals, how do you have them?</p>
<p>Phil: Yeah. Well, I can tell you that not very long ago, just in test, we&#8217;re playing with around 200 to 250 different profiles. But that&#8217;s not really the impressive number.</p>
<p>The difficult part is trying to base on the job title and the job description that people entered in LinkedIn, figure out what&#8217;s their actual occupation. So to do that, we&#8217;ve built a pretty large library of job title aliases, all the different variation, misspelling, and version of a job title that someone can understand.</p>
<p>That occupation table right now is probably topping one million rows. When you have obviously to run it&#8230; So if you do one profile, one person, he already had five jobs and each of those five jobs you tried to match it properly with one of the alias that we have in the one million table row, and in your network you have, I don&#8217;t know, 800 or 900 people that it takes&#8230;</p>
<p>Andrei: It takes time.</p>
<p>Phil: It takes some time.</p>
<p>Andrei: OK. So basically you built a dictionary of possible outcomes and then you search for each job title that one person had. You search into that dictionary. So if I have, for example, three past jobs, then for each one you&#8217;re searching the 1.5 million rows. Correct?</p>
<p>Phil: Well, that&#8217;s a little bit like that. It&#8217;s a bit more complicated because we do different things on the string. We tokenize the string. We stem the string to make sure that misspellings are taken into account. Or that if you&#8217;re a developer or development, we can&#8230;</p>
<p>Stemming basically is taking just the core of a word. So &#8220;developer&#8221; and &#8220;development&#8221; is &#8220;develop,&#8221; &#8220;programmer&#8221; or &#8220;programming,&#8221; &#8220;program.&#8221; So it&#8217;s easier to match string that are not exactly similar but have very similar meaning.</p>
<p>So we do a lot of that. That takes a lot of time. Yeah.</p>
<p>Andrei: OK, I understand. And what was the first solution that you implemented to query these 1.5 million rows of dictionary regarding possible job titles? What did you use?</p>
<p>Phil: For the queries?</p>
<p>Andrei: How did you store, actually even better, this information? You were talking about initially you started with data normalization.</p>
<p>Phil: Yeah. Well, those rows are fairly normalized. But one place that we found out that normalization was not used is mostly in the rest of the profile, the company information, the domain of each company.</p>
<p>At first every little part of the LinkedIn profile was absolutely normalized. When you start a product and you&#8217;re not absolutely sure are you going to use the information and what level of granularity you want to be able to query on, because that&#8217;s what you&#8217;ve been told to do so many times, you just normalize all the data.</p>
<p>The more we work with you realize that there&#8217;s tons of stuff that you&#8217;re not so much interested on. There&#8217;s tons of query you don&#8217;t really need to do. That&#8217;s when you start denormalizing your database, because it then gets much, much easier to store.</p>
<p>So when we import your 600 or 700 friends, if we don&#8217;t have to store a separate company for each, that&#8217;s already a big plus. So that&#8217;s all we&#8217;re doing.</p>
<p>But a lot of trial and error, obviously. It would be fun to say, &#8220;We had the perfect data architecture when you start it,&#8221; but that&#8217;s absolutely not true.</p>
<p>Andrei: Those are big durations for.</p>
<p>Phil: Yeah.</p>
<p>Andrei: OK. Before we go into what is the normalization and giving them example, can you give a number&#8230; For example, for these 1.5 million rows of job titles, how much time did it take to work with them?</p>
<p>Phil: Well, the first time we try importing &#8211; the first person who worked on it was a bit surprised when we were importing LinkedIn contacts, it was taking&#8230; To someone with a fairly big network of 700 or 800 people, it was taking about two minutes. He was like, &#8220;Wow. That&#8217;s incredible. It&#8217;s way too slow.&#8221;</p>
<p>Then we showed him a notable site, a big site like Jive and indeed where there&#8217;s a LinkedIn API connection and you see, it takes them a lot of time too. We&#8217;re not the only one having problems dealing with all the data. But denormalizing it, it turns off a little optimization everywhere.</p>
<p>We took it down to about 12 seconds. So it&#8217;s probably one of the fastest LinkedIn connection import I&#8217;ve seen in any consumer application I think it&#8217;s pretty good.</p>
<p>Andrei: That&#8217;s over 90% decreasing the speed.</p>
<p>Phil: Yeah, absolutely. Yeah.</p>
<p>Andrei: And two minutes to 12 seconds, that is huge.</p>
<p>Phil: Yeah. The idea is that you don&#8217;t simply do it to be proud of yourself, but the goal is that as soon as somebody registers, we&#8217;re able to show him the full product. We don&#8217;t have to show him, &#8220;Oh, well, we&#8217;re still importing your connection, you cannot use all the site, blah, blah, blah.&#8221;</p>
<p>When somebody registers you have that little moment where you want the magic to happen. If it doesn&#8217;t it gets more difficult to resell your product after that. &#8220;Oh, no, come back. We&#8217;ve finished importing your connection.&#8221; You don&#8217;t know, maybe the guy is handling email or he&#8217;s back to work and you&#8217;ve lost the opportunity to impress him and make him a loyal user.</p>
<p>Andrei: I understand. Can you give an example, how does the normalization work? We know that it took from two minutes to 12 seconds. What does this mean from a technical perspective? How did you do it? For example, you could present A) when it was normalized, the account was like this and when we finish denormalizing it, the information was stored mostly like that. Is it OK with you?</p>
<p>Phil: Yeah. Sure. Absolutely as an example, for each profile you have a list of position or jobs that the person occupies. For each of those positions you have a job title, a company, and a summary. So in the beginning the job title was referring to another table, the big table of job title, because that&#8217;s one of our big tables, obviously. And the company was referring to another table, was company.</p>
<p>So you can usually imagine, for one LinkedIn profile, let&#8217;s say the person had eight different jobs. First, each job itself is in a different table. So it&#8217;s already a row. And for each one of those there&#8217;s also two foreign key, one to another job title and one to company.</p>
<p>It seems fantastic because it allows you to do some very deep queries on all the data, but after that you realize that it&#8217;s impossible to do it like that if you want to import connection very, very fast.</p>
<p>So we brought back the company in the position itself. So instead of being a foreign key, it&#8217;s just a string there. We&#8217;ve also imported the job title itself instead of storing it as a key foreign in another job and in another title. It&#8217;s a string there. Already that was a big, big, big improvement.</p>
<p>On the other end, we had to deal with LinkedIn has this very interesting thing where a company name is associated to a company ID, obviously. But multiple profile for the same company can have slightly different strings for the company.</p>
<p>So the company ID is the same, but the company name &#8211; one might be Barabas Inc., the other is Barbara Incorporated and the Barabas Company Incorporated So we had to deal with that and make sure that we understand that it&#8217;s all the same company too.</p>
<p>Andrei: OK. For example, some of the employees might put &#8220;Limited&#8221; in the name, some others don&#8217;t. I understand your point.</p>
<p>OK. So basically instead of having multiple tables and each information spread throughout those tables and when you need them, query them and join them, basically what you did, you pre-prepared everything so that when you need them you simply query them in one table which can be optimized with indexes, et cetera, and you can obtain faster results.</p>
<p>Did I understand correctly?</p>
<p>Phil: Yeah, absolutely.</p>
<p>Andrei: OK. Great. Do you think this approach of putting aside what you learn in school and thinking out of the box, do you think that works only for your particular case or it&#8217;s a thing that online entrepreneurs consider it, if not implement it, at least consider it? What is your opinion?</p>
<p>Phil: No, I think it&#8217;s applied already in multiple fields. I think that&#8217;s the main reason why all the Reddit and MongoDB and NoSQL database are so useful is that a lot of time you realize that all you need is a key and a value. And you don&#8217;t need all the complicated join to other tables. And you realize that it&#8217;s much faster this way. So no. But yeah, as I say, trial and error.</p>
<p>I think somehow you&#8217;ve been told a lot about normalization. Normalization is fantastic if you want to do reporting. For reporting it&#8217;s very generous. I&#8217;m guessing that some guys who wrote a lot of those books were doing a lot of reporting jobs back then.</p>
<p>Andrei: I understand. Yeah, well you can denormalize for your online usage and for reporting you can start at another database where the marketer or whoever needs those information could work with them in the normalized way.</p>
<p>Phil: Yep.</p>
<p>Andrei: OK. I agree. Can you suggest, or at least can you send me one or two links where you think our watchers could learn a little bit more about this approach of denormalization, sorry.</p>
<p>Phil: Sure.</p>
<p>Andrei: I [audio breaks up] to put it on the transcript.</p>
<p>Phil: Yeah, I don&#8217;t have one at hand but I can find quite a few very rapidly and that will be my pleasure to send it over.</p>
<p>Andrei: Sure. Also, if you would give one particular advice to fellow online entrepreneurs, what would that be?</p>
<p>Phil: [laughs] One advice.</p>
<p>Andrei: Well, you said a lot of trial and error.</p>
<p>Phil: Yeah. I think really think &#8211; it&#8217;s very difficult. I would say think about how you&#8217;re going to use the data. I think if you&#8217;re building something that it&#8217;s very clear how it&#8217;s going to be built and how it&#8217;s going to be used, it&#8217;s pretty easy and you should just sit down and think about it very well before you start your data model.</p>
<p>But when it gets difficult is that when you&#8217;re trying different product ideas and different features. At that point you&#8217;re not absolutely sure how you&#8217;re going to use the data. So the advice of really thinking how you&#8217;re going to use the data works only if you know exactly what you&#8217;re going to build.</p>
<p>If I had &#8211; I don&#8217;t know, it&#8217;s a pretty common one, but make it work and then make it fast. Don&#8217;t try to do both at the same time. It&#8217;s very depressing the first time because it&#8217;s awfully slow. But profiler &#8211; yeah, OK, so my advice would probably be learn to use the profiler.</p>
<p>If you&#8217;ve never used a profiler there&#8217;s something wrong. It should be the first thing you&#8217;re able to start and you should be able to use it very rapidly and proficiently.</p>
<p>Andrei: OK. Just a quick question, for those that don&#8217;t know exactly what the profiler is, can you explain in a short sentence what does it do?</p>
<p>Phil: Sure. Well, a profiler is very, very simple. It basically shows you all the methods that are called during the execution of a routine or a program and shows, well, for each method, how many times they&#8217;re called, how many total time is spend in the method and how many times, in average, it spent in the method.</p>
<p>So it allows you to decide where, probably, you should plan your time. If there&#8217;s one method that is called pretty often and that is fairly slow&#8230; Especially things like string transformation. Everything that&#8217;s related to string or conversion of type is often an easy place to start to improve things.</p>
<p>Sometimes you take a string, you switch it to an end and then you switch it to another type to realize that at the end you come back to a string, because it wasn&#8217;t coded in that order. So sometimes that&#8217;s an easy place to&#8230; But basically a profiler shows you all the methods that are called, the time you spent in each, and then it&#8217;s easy for you to spot which method you should try to prioritize in your optimization.</p>
<p>Andrei: OK. So this works also at programming level and database level, I guess.</p>
<p>Phil: Yeah, both. They&#8217;re different types of profiler, but yeah.</p>
<p>Andrei: OK. So, use the profiler.</p>
<p>Phil: Yeah, basically, use the profiler.</p>
<p>Andrei: OK. Do you want to say anything else about MatchFWD, about &#8211; not necessarily your plans &#8211; your value proposition&#8230;?</p>
<p>Phil: Sure. We&#8217;re coming up with a full product launch around mid-February. I think we&#8217;ve built something very interesting to putting back the people at the center of the employment game. So I think we&#8217;re really turning the job board idea upside down and trying to put people in touch with people, which is very, very interesting.</p>
<p>We&#8217;ve had great, great, great feedback from our data testers and early users. I just can&#8217;t wait to see it in full effect in a couple months.</p>
<p>Andrei: We too. We are looking forward to seeing. Everyone visit matchfwd.com. You will find the link below. Phil, thank you very much for doing this interview. Thank you, everyone, for watching. This is Andrei, have a great day.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2011/12/19/why-is-data-normalization-evil-or-throw-away-what-youve-learned-in-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testimonials Platform &#8211; Graphical Accelerations in your Browser</title>
		<link>http://www.barandisolutions.com/blog/2011/11/28/testimonials-platform-graphical-accelerations-in-your-browser/</link>
		<comments>http://www.barandisolutions.com/blog/2011/11/28/testimonials-platform-graphical-accelerations-in-your-browser/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 11:48:57 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=138</guid>
		<description><![CDATA[<p><a href="http://www.outshineinteractive.com/" target="_blank">Outshine Interactive</a> was commissioned to bring <a href="http://www.stedwards.edu/experience/" target="_blank">St. Edward&#8217;s University&#8217;s</a> testimonials platform to the 21st century.</p> <a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/1173805.png"></a>Challenge <p>The original testimonial platform was a Flash applet, which has minimal support ( or none at all ) on mobile devices.</p> <p>Thus, the main challenge was to to <a href="http://www.stedwards.edu/experience/" target="_blank">develop the platform</a> in such a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.outshineinteractive.com/" target="_blank">Outshine Interactive</a> was commissioned to bring <a href="http://www.stedwards.edu/experience/" target="_blank">St. Edward&#8217;s University&#8217;s</a> testimonials platform to the 21st century.</p>
<h2><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/1173805.png"><img class="alignleft size-medium wp-image-140" title="1173805" src="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/1173805-300x218.png" alt="" width="300" height="218" /></a>Challenge</h2>
<p>The original testimonial platform was a Flash applet, which has minimal support ( or none at all ) on mobile devices.</p>
<p>Thus, the main challenge was to to <a href="http://www.stedwards.edu/experience/" target="_blank">develop the platform</a> in such a way that it would run on a large variety of devices, ranging from <strong>iPhones</strong> to older smartphones, <strong>Android tablets</strong>, desktop PCs or <strong>smart TVs</strong>, each with very <strong>different</strong> screen sizes and <strong>capabilities</strong>.</p>
<p>On all these devices, the animations and advanced effects (such as glows and reflections) had to keep they&#8217;re original aspect and animated as smoothly as possible, <strong>even on those devices with lower capabilities.</strong></p>
<p>Another challenge was to make the multimedia content available to all devices, even if they were loaded from a local source, or from external services such as Flickr or Vimeo.</p>
<h2>Results</h2>
<p><a href="http://www.stedwards.edu/experience/" target="_blank">The result</a> was a standards-based approach, using the new HTML5 tags for semantics and multimedia, CSS3 for the advanced visual effects, and JavaScript for behavior handling and generating content, from either local or external sources.</p>
<p>We started with accessibility in mind, so the platform would be completely usable by keyboard, or other similar devices, and would work great with screen readers.</p>
<p>Even though the platform uses intensive JavaScript calls, we wanted to allow users to be able to bookmark any page of it, so we implemented <strong>shareable URLs</strong> to both individual sections in the app as well as individual items such as photos or videos.</p>
<p>To accommodate for the various devices and screen sizes we adopted a progressive enhancement and responsive approach, using CSS3 and JavaScript to detect device capabilities and adapt to them.</p>
<p>To make sure the animations are as smooth as possible, on devices with WebKit-based web browsers, such as iOS, BlackBerry, or Android based devices, we use CSS3 3D transforms, that are hardware accelerated on these platforms.</p>
<p>For touch screen devices, like tablets or smartphones, we improved the user&#8217;s experience with various touch effects, such as swipe.</p>
<p>To make it easy to manage the content of the tutorials platform, we added API integration with Flickr and Vimeo. This allows the full content of the app to be generated based on the data available on the accounts at these services.</p>
<blockquote><p>&#8220;Barandi Solutions goes above and beyond. Highly recommended!&#8221; - <strong>Luke Heath, CEO Outshine Interactive.</strong> <a href="http://outshineinteractive.com/contact/" target="_blank">Verify this referral</a></p></blockquote>
<h3></h3>
<h3><a title="HTML5 &amp; CSS3 Preview" href="http://www.barandisolutions.com/blog/2011/11/28/html5-css3-preview/">Click here to see what HTML5 &amp; CSS3 can also do &gt;</a></h3>
<h3></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2011/11/28/testimonials-platform-graphical-accelerations-in-your-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Play This Guy! &#8211; 2 million rows queried under 1 second</title>
		<link>http://www.barandisolutions.com/blog/2011/11/28/play-this-guy-2-million-rows-queried-under-1-second/</link>
		<comments>http://www.barandisolutions.com/blog/2011/11/28/play-this-guy-2-million-rows-queried-under-1-second/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 10:34:06 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=127</guid>
		<description><![CDATA[<p><a href="http://www.playthisguy.com" target="_blank">Play This Guy!</a> is the first fantasy betting consultancy platform to offer aggregated rankings, wire pickups, start &#38; sit and wire advice.</p> <p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/playthisguy.jpg"></a></p> <p>Since the information is taken from all these sources, users will obtain the most accurate information, together with a classification of the sources based on how accurate their information is.</p> [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.playthisguy.com" target="_blank">Play This Guy!</a> is the first fantasy betting consultancy platform to offer aggregated rankings, wire pickups, start &amp; sit and wire advice.</p>
<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/playthisguy.jpg"><img class="alignleft" title="playthisguy" src="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/playthisguy-280x300.jpg" alt="" width="280" height="300" /></a></p>
<p>Since the information is taken from all these sources, users will obtain the most accurate information, together with a classification of the sources based on how accurate their information is.</p>
<h2>Challenge</h2>
<p>This unique approach to the fantasy football world required serious attention from our part. The biggest challenge we faced is the fact that NFL fantasy football sources generate about 1 MILLION rows per season, and since it&#8217;s launch in 2010, it gathered 2 MILLION rows.</p>
<h2>Results</h2>
<p>Querying this huge amount of data to be displayed in the auto search feature on Play This Guy! was our main goal from day 1, when we created the database architecture.</p>
<p>In the end, after finishing it&#8217;s architecture and database query optimization, the search on any NFL player information through the 2 MILLION records returned in 0.02 SECONDS!!!</p>
<p>Here are some of the technologies used:</p>
<ol>
<li>PostgreSQL &#8211; for the database layer</li>
<li>Ruby on Rails &#8211; for the business layer</li>
<li>JQuery &#8211; for the frontend layer</li>
</ol>
<blockquote>
<div>&#8220;We have have had a terrific experience with the entire team at Barandi Solutions. They are intelligent, very good at project planning, detail-oriented and results driven. Communication was exceptionally good from beginning to end which provided a tremendous amount of peace of mind. Based on the application they delivered, we feel 100% confident that the infrastructure is properly established so we can continuing building on it for years to come. We couldn&#8217;t have chosen a better company for our needs and will continue to work with them in the future&#8221;<em> - </em><strong>Ron Ross, CEO Play This Guy!</strong> <a href="http://www.playthisguy.com/pages/testimonial-barandi-solutions" target="_blank">Verify this referral</a></div>
</blockquote>
<h3><a href="http://www.barandisolutions.com/#contact" target="_blank">Contact us to obtain more details &gt;</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2011/11/28/play-this-guy-2-million-rows-queried-under-1-second/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 &amp; CSS3 Preview</title>
		<link>http://www.barandisolutions.com/blog/2011/11/28/html5-css3-preview/</link>
		<comments>http://www.barandisolutions.com/blog/2011/11/28/html5-css3-preview/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 10:28:43 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=121</guid>
		<description><![CDATA[<p>A lot of our clients, whenever confronted with the tools we use to make their SaaS project come to life, the first thing they asked, was &#8230;.. &#8220;WTF is HTML5&#8243;????</p> <p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/html5css3demo.png"></a>Thus, instead of trying to explain them in theory, we decided to show them.</p> <p>We gathered a bunch of small open source show cases [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of our clients, whenever confronted with the tools we use to make their SaaS project come to life, the first thing they asked, was &#8230;.. &#8220;WTF is HTML5&#8243;????</p>
<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/html5css3demo.png"><img class="alignleft" title="html5css3demo" src="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/html5css3demo-300x164.png" alt="" width="300" height="164" /></a>Thus, instead of trying to explain them in theory, we decided to show them.</p>
<p>We gathered a bunch of small open source show cases and made them all work under one framework, and posted it here<a href="http://www.html5css3demo.com/" target="_blank">www.html5css3demo.com</a> so that everybody can have a better understanding of how HTML5 and CSS3, combined with Javascript, can improve your user&#8217;s experience with the web project.</p>
<h3><a title="Finfore – How does a financial SaaS go mobile ( iPhone / iPad / Android )?" href="http://www.barandisolutions.com/blog/2011/11/28/finfore-how-does-a-financial-saas-go-mobile-iphone-ipad-android/">Click here to see how to use HTML5 to reach your mobile target &gt;</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2011/11/28/html5-css3-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FastND &#8211; How does a financial SaaS go mobile ( iPhone / iPad / Android )?</title>
		<link>http://www.barandisolutions.com/blog/2011/11/28/finfore-how-does-a-financial-saas-go-mobile-iphone-ipad-android/</link>
		<comments>http://www.barandisolutions.com/blog/2011/11/28/finfore-how-does-a-financial-saas-go-mobile-iphone-ipad-android/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 10:27:05 +0000</pubDate>
		<dc:creator>Andrei Barabas</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.barandisolutions.com/blog/?p=115</guid>
		<description><![CDATA[<p><a href="http://www.finfore.info/" target="_blank">Finfore Limited</a>, a UK based financial Saas ( Software as a Service ), decided in 2010 that it&#8217;s time for them to increase their market share by targeting mobile users as well.</p> <p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/Finfore.net_.png"></a></p> <p>The app focuses on providing real-time breaking news, that can be personalized to their user&#8217;s career profile. It reduces the quantity of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finfore.info/" target="_blank">Finfore Limited</a>, a UK based financial Saas ( Software as a Service ), decided in 2010 that it&#8217;s time for them to increase their market share by targeting mobile users as well.</p>
<p><a href="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/Finfore.net_.png"><img class="alignleft" title="Finfore.net" src="http://www.barandisolutions.com/blog/wp-content/uploads/2011/11/Finfore.net_-300x231.png" alt="" width="300" height="231" /></a></p>
<p>The app focuses on providing real-time breaking news, that can be <strong>personalized</strong> to their user&#8217;s career profile. It reduces the quantity of received information while<strong> increasing it&#8217;s quality</strong> in the same time.</p>
<h2>Challenge</h2>
<p>One of the unique parts of this ambitious project was the fact that the version they had was more of a desktop app than a SaaS, since it was written in Adobe Air.</p>
<p>As you might know, this has some major inconveniences:</p>
<ol>
<li>Adobe Flash, on which Adobe Air is built upon is not supported on iPhones or iPads, and <a href="http://mashable.com/2011/11/11/flash-mobile-dead-adobe/" target="_blank">recently it was dropped on Android devices</a> as well</li>
<li>you need to download it on every computer you want to access your account with</li>
</ol>
<p>The other challenge we faced was related to the real-time news they work with. They take the information from many sources, like Twitter, Google Finances, RSS or LinkedIn, personalize it and push it to the user, which for mobile devices would be done over a 3G connection.</p>
<h2>Results</h2>
<p>Knowing the available resources on the targeted mobile device are smaller than those of desktop or laptop computers, and they lacked Flash support, we decided to go for building a truly SaaS version directly in HTML5, CSS3 and JQuery Mobile.</p>
<p>In the end, the application works directly from <a href="http://fastnd.com/" target="_blank">their website</a>, without requiring any kind of installation. It adapts to the screen size of the users device, whether it is a desktop/laptop or an iPhone / iPad / Android one, AND it works<strong>beautifully with swipe gestures</strong>.</p>
<blockquote><p>&#8220;Barandi Solutions provides professional and high quality services. Equally important, they are a pleasure to work with and we&#8217;ve worked with them on several projects over the last 2 years. Many thanks to the entire team, who we rate highly&#8221; - <strong>Shane Leonard, CFA, Managing Director, Finfore Limited</strong>.<a href="http://www.finfore.info/referral.html" target="_blank">Verify this referral</a></p></blockquote>
<h3><a title="HTML5 &amp; CSS3 Preview" href="http://www.barandisolutions.com/blog/2011/11/28/html5-css3-preview/">Click here to see what HTML5 &amp; CSS3 can also do &gt;</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.barandisolutions.com/blog/2011/11/28/finfore-how-does-a-financial-saas-go-mobile-iphone-ipad-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

