<?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>epoint</title>
	<atom:link href="http://blog.epoint.ro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.epoint.ro</link>
	<description></description>
	<lastBuildDate>Wed, 09 May 2012 18:36:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Case Study: DB Schenker Loco Planning</title>
		<link>http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/</link>
		<comments>http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/#comments</comments>
		<pubDate>Wed, 09 May 2012 18:35:12 +0000</pubDate>
		<dc:creator>Andrei Dragomir</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[db schenker]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=307</guid>
		<description><![CDATA[Loco Planning is a web application that we built for DB Schenker as part of the DBS Trip project. Its main goal is to help DB Schenker employees to plan and view locomotive assignments and route informations (such as stations, distances, departure and arrival times) in a user friendly manner. Reasons Before the app, the&#8230;]]></description>
			<content:encoded><![CDATA[<p>Loco Planning is a web application that we built for DB Schenker as part of the DBS Trip project. Its main goal is to help DB Schenker employees to plan and view locomotive assignments and route informations (such as stations, distances, departure and arrival times) in a user friendly manner.</p>
<h2 dir="ltr">Reasons</h2>
<p>Before the app, the work was done mainly using Excel spreadsheets and a Windows desktop application. This kind of system lacked some great advantages that web apps could bring to the workflow.</p>
<ul>
<li><strong>Availability</strong> &#8211; data viewing and planning is not limited to a small number of machines anymore and is now available throughout the whole internal network or even the web. No particular operating system is required, nor any special software, only a web browser and a network connection.</li>
</ul>
<ul>
<li><strong>Data consistency</strong> &#8211; all data is stored in a database managed by a Drupal instance, with regular backups and codebase under version control, so loss of data is very unlikely.</li>
</ul>
<ul>
<li><strong>Access control</strong> &#8211; user roles provide restricted access, reducing clutter and helping employees focus only on their part of the work.</li>
</ul>
<ul>
<li><strong>Friendly interface</strong> &#8211; actions are now more intuitive (drag and drop) and UI elements like calendars and modal windows help simplify the workflow. Data viewing is also greatly improved by the new, customized structure and design.</li>
</ul>
<h2 dir="ltr">Interface</h2>
<p>The interface of Loco planning is based on a custom grid view. The main areas are the top toolbar, the products (routes) panel, the middle toolbar and the locomotives panel.</p>
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-interface-overview/" rel="attachment wp-att-321"><img class="alignnone size-medium wp-image-321" title="DBS interface overview" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-interface-overview-620x404.png" alt="" width="620" height="404" /></a></p>
<p>The top toolbar consists of the following elements:</p>
<ul>
<li>back button &#8211; link back to the main application</li>
<li>zoom controls &#8211; for zooming in/out on routes displayed on the grid
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-zoom-controls/" rel="attachment wp-att-324"><img class="size-full wp-image-324 aligncenter" title="DBS zoom controls" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-zoom-controls.png" alt="" width="273" height="93" /></a></li>
<li>period selector &#8211; selects the start and end of the time period to be displayed. A calendar UI element is displayed when focusing on the date inputs</li>
<li>all info checkbox &#8211; when checked displays additional information on routes (departure and arrival stations)
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-detail/" rel="attachment wp-att-319"><img class="aligncenter size-full wp-image-319" title="DBS detail" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-detail.png" alt="" width="371" height="199" /></a></li>
<li>sort &#8211; used to sort products chronologically, by product number, route origin, route destination or distance</li>
<li>filter &#8211; used to filter products containing specific route types (empty, loaded, single or shunting)</li>
</ul>
<p>The middle toolbar has a locomotive filter (electric or diesel) and a legend on the right side for the various route types and locomotive assignment types.</p>
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-legend/" rel="attachment wp-att-322"><img class="aligncenter size-medium wp-image-322" title="DBS legend" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-legend-620x164.png" alt="" width="620" height="164" /></a></p>
<h3 dir="ltr">Grid view types</h3>
<p>Each grid unit represents a time unit, based on the selected period length. The distance between two bold lines represents a day, which consists of 1, 2, 4 or 24 units. The size of a unit is consistent across all view types (42 pixels).</p>
<p>There are 4 view types, automatically rendered according to the current period length, or specifically selected using the zoom tools:</p>
<div dir="ltr">
<table>
<colgroup>
<col width="111" />
<col width="150" />
<col width="144" />
<col width="219" /></colgroup>
<tbody>
<tr>
<td><strong>View type</strong></td>
<td><strong>Period length</strong></td>
<td><strong>Time per unit</strong></td>
<td><strong>Units per day</strong></td>
</tr>
<tr>
<td>Day view</td>
<td>1 day</td>
<td>1 unit = 1 hour</td>
<td>1 day = 24 units X 1 hour</td>
</tr>
<tr>
<td>Week view</td>
<td>2 days &#8211; 7 days</td>
<td>1 unit = 6 hours</td>
<td>1 day = 4 units X 6 hours</td>
</tr>
<tr>
<td>Month view</td>
<td>8 days &#8211; 31 days</td>
<td>1 unit = 12 hours</td>
<td>1 day = 2 units X 12 hours</td>
</tr>
<tr>
<td>Year view</td>
<td>31 days or more</td>
<td>1 unit = 1 day</td>
<td>1 day = 1 unit X 24 hours</td>
</tr>
</tbody>
</table>
</div>
<h2 dir="ltr"></h2>
<h3 dir="ltr">Locomotive assignment and other interactions</h3>
<p>A locomotive is assigned to a route by dragging the desired locomotive on the desired route (visual feedback is provided by a blue line connecting the locomotive and the current position of the mouse cursor). A modal window then pops up, in which the user can provide additional required info.</p>
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-assignment-feedback/" rel="attachment wp-att-341"><img class="aligncenter size-medium wp-image-341" title="DBS-assignment-feedback" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-assignment-feedback-620x275.jpg" alt="" width="620" height="275" /></a></p>
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-loco-modal/" rel="attachment wp-att-323"><img class="aligncenter size-full wp-image-323" title="DBS loco modal" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-loco-modal.png" alt="" width="603" height="514" /></a></p>
<p>When clicking on a route or dragging a locomotive over it, the route is exposed (other products, and other routes on the same product are blurred), and additional info is displayed (assignments, times, stations, distances). If the route already has assignments, the first assigned locomotive is automatically scrolled in view (if not already visible), and dashed red lines connecting the route and its corresponding assigned locomotive times are displayed.</p>
<p><a href="http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/dbs-info-and-connection/" rel="attachment wp-att-320"><img class="aligncenter size-full wp-image-320" title="DBS info and connection" src="http://blog.epoint.ro/wp-content/uploads/2012/05/DBS-info-and-connection.png" alt="" width="535" height="340" /></a></p>
<h2 dir="ltr">Technology</h2>
<p>The Drupal instance exposes a REST API which returns JSON data. The application queries the API and renders the data using client side templates (EJS).</p>
<p>The architecture of the application is built around the <a href="http://www.javascriptmvc.com/">JavascriptMVC</a> framework.</p>
<h3 dir="ltr">API</h3>
<p>The following table describes the main part of the REST API:</p>
<div dir="ltr">
<table>
<colgroup>
<col width="264" />
<col width="77" />
<col width="127" />
<col width="*" /></colgroup>
<tbody>
<tr>
<td><strong>API URL</strong></td>
<td><strong>Type</strong></td>
<td><strong>Arguments</strong></td>
<td><strong>Description</strong></td>
</tr>
<tr>
<td>/api/loco-planning/products.json</td>
<td>GET</td>
<td>start_date=&lt;yyyy-mm-dd&gt;&amp;end_date=&lt;yyyy-mm-dd&gt;</td>
<td>Retrieves products and their routes for the queried period</td>
</tr>
<tr>
<td>/api/loco-planning/locomotives.json</td>
<td>GET</td>
<td>type=&lt;electric or diesel&gt;</td>
<td>Retrieves locomotives and their assignments based on the type filter (all if type is not provided)</td>
</tr>
<tr>
<td>/api/loco-planning/routes.json</td>
<td>POST</td>
<td></td>
<td>Creates new routes</td>
</tr>
<tr>
<td>/api/loco-planning/routes.json</td>
<td>PUT</td>
<td></td>
<td>Creates new routes / Updates existing ones</td>
</tr>
<tr>
<td>/api/loco-planning/routes.json</td>
<td>DELETE</td>
<td></td>
<td>Deletes routes</td>
</tr>
</tbody>
</table>
</div>
<h3 dir="ltr"></h3>
<h3 dir="ltr">Front-end</h3>
<p>Loco planning consists of a number of controllers or widgets, models and views.</p>
<h4 dir="ltr">Controllers</h4>
<p>Controllers in JavascripMVC are also named widgets because of the way they work. They are attached to DOM elements and listen to events (through event delegation) that happen inside the widget. We use controllers for products and locomotives, and an interface controller for other UI interactions.</p>
<h4 dir="ltr">Models</h4>
<p>Models are a great way to work with APIs. In JavascriptMVC you simply define API URLs for CRUD operations and the framework does the rest. No need to write your own ajax requests, but you can do that if you really need that level of customization.</p>
<p>Models allow you to define conversion and serialization functions (e.g. working with DATETIME format in PHP and JavaScript Date objects in the front-end app), custom callbacks and properties, relationships and more.</p>
<p>We use models for products, locomotives, routes, shuntings (loading and unloading periods) and locomotive maintenances. Routes, shuntings and maintenances all inherit from a <strong>segment</strong> model which provides common functionality for these entities.</p>
<h4 dir="ltr">Views</h4>
<p>Views in JavaScriptMVC are actually JavaScript templates. The framework has built-in support for common client-side templates (and you can define other if you prefer). We chose EJS since it’s the framework creators’ recommendation and they (the templates) all basically do the same thing.</p>
<h4 dir="ltr">Helpers</h4>
<p>We also built some helper classes for period handling, grid positioning and measurements, modal window control and more.</p>
<h2 dir="ltr">Conclusion</h2>
<p>By building this application we managed to greatly improve the workflow of the DBS employees. We reduced the set of used software tools to just one (the browser) and we provided a custom, much more pleasing working experience.</p>
<p>When it comes to automating and simplifying workflows, securing and centralizing data, and making a software product largely available, the old ways are just not enough anymore. Since the web is here and is one of the most reliable and fastest growing industries, it can overcome many of the drawbacks caused by specific environments and vendor software.</p>
<p>Combining creativity and technology, supported by this great, universal environment (the Web), is certainly one of the best ways to simplify our work and our lives, thus making them even more enjoyable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2012/05/case-study-db-schenker-loco-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We are going mobile</title>
		<link>http://blog.epoint.ro/2012/01/we-are-going-mobile/</link>
		<comments>http://blog.epoint.ro/2012/01/we-are-going-mobile/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 12:14:05 +0000</pubDate>
		<dc:creator>Cristiana Știucă</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=247</guid>
		<description><![CDATA[Long time no “see” We are eager to tell you what epoint did in the last months. We focused our attention on the “mobile zone” and we organized a small unit that will develop, with a lot of passion (of course) mobile applications. Part of our team are smartphones enthusiasts and love technological toys that`s&#8230;]]></description>
			<content:encoded><![CDATA[<div>
<p dir="ltr">Long time no “see” <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p dir="ltr">We are eager to tell you what epoint did in the last months. We focused our attention on the “mobile zone” and we organized a small unit that will develop, with a lot of passion (of course) mobile applications.</p>
<p dir="ltr">Part of our team are smartphones enthusiasts and love technological toys that`s why in our agency you can find: 2 iPads, 8 iPhones and 3 Samsung Galaxys, 2 hTC Desire, one hTC Flyer and one Kindle Fire. I think that is pointless to calculate the number of game-type applications that we have in total <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   So it was an easy decision to start our work on a game app.</p>
<div>
<h3 style="text-align: left;" dir="ltr">We proudly present our first mobile app for iOS users: CarQ!</h3>
</div>
<div>
<p dir="ltr">During the last month Adi, Octa and Andu had fun developing this Trivia App. The app has three levels of difficulty and your result can be shared with your friends through the „Share on Facebook” feature.</p>
<p dir="ltr"><a href="http://blog.epoint.ro/2012/01/we-are-going-mobile/innerarticle/" rel="attachment wp-att-269"><img class="aligncenter size-full wp-image-269" title="Work in Progress" src="http://blog.epoint.ro/wp-content/uploads/2012/01/innerArticle.jpg" alt="" width="620" height="200" /></a></p>
<p dir="ltr">The app challenges the users to test their knowledge of cars like Aston Martin, Ferrari, Ford, Jaguar, Lamborghini, Mercedes-Benz, Porsche, BMW etc. It is a quiz for different levels of car knowledge that can classify the user between „Pedestrian” and „ Guru”. The game features 20 cars with high quality exterior images and each level of difficulty has 20 questions. CarQ is integrated with Game Center so the users can keep track of their score and compare it with their friends.</p>
<p dir="ltr"><a href="http://itunes.apple.com/us/app/carq/id492627664?ls=1&amp;mt=8">Download the app</a> for free in App Store and test your knowledge. Even the girls from our team gave it a try and the results were not quite so bad <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</div>
</div>
<p style="text-align: center;"><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2012/01/we-are-going-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Performance testing tools</title>
		<link>http://blog.epoint.ro/2011/11/web-performance-testing-tools/</link>
		<comments>http://blog.epoint.ro/2011/11/web-performance-testing-tools/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 14:50:41 +0000</pubDate>
		<dc:creator>Daniel Ighișan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=219</guid>
		<description><![CDATA[It ‘just works’ is not enough — it must work well! So here is a list of some benchmarking tools and some useful info and links to help you trough the process. 1. ab – Apache Or how to performance Benchmark a Web server by using ab from Apache. You can use it to benchmark&#8230;]]></description>
			<content:encoded><![CDATA[<p>It ‘<strong>just works</strong>’ is <strong>not enough</strong> — it <strong>must work well</strong>! So here is a list of some benchmarking tools and some useful info and links to help you trough the process.</p>
<h2>1. ab – Apache</h2>
<p>Or how to performance Benchmark a Web server by using ab from Apache. You can use it to benchmark Apache, IIS and other web servers. It is designed to give you an impression of how your current Apache installation performs, meaning how many requests per second your Apache installation is capable of serving.</p>
<p>To benchmark a web server the time it will take to give a page is not important, what is <strong>important </strong>is the <strong>average time</strong> it will take when you have a <strong>maximum number of users</strong> on your site <strong>simultaneously</strong>.</p>
<p><strong>Procedures:</strong></p>
<ul>
<li>You need to use same hardware configuration and kernel (OS) for all tests</li>
<li>You need to use same network configuration. For example, use 100Mbps port for all tests</li>
<li>First record server load using top or uptime command</li>
<li>Take at least 3-5 readings and use the best result</li>
<li>After each test reboot the server and carry out test on next configuration (web server)</li>
<li>Again record server load using top or uptime command</li>
<li>Carry on test using static html/php files and dynamic pages</li>
<li>It also important to carry out test using the Non-KeepAlive and KeepAlive (the <a href="http://httpd.apache.org/docs/1.3/mod/core.html#keepalive">Keep-Alive extension</a> to provide long-lived HTTP sessions, which allow multiple requests to be sent over the same TCP connection) features</li>
</ul>
<p><strong>Example:</strong></p>
<p><code></code>Note down server load using uptime command<code></code></p>
<p><code>$ uptime</code><code></code></p>
<p>Create a static (small) html page (use your own webroot):</p>
<p>Login to Linux/bsd desktop computer and type following command: (use your own server IP)</p>
<p><code>$ ab -n 1000 -c 5 http://202.54.200.1/htmlpage.html</code><code></code></p>
<p>Where,</p>
<ul>
<li>-n 1000: ab will send 1000 number of requests to server 202.54.200.1 in order to perform for the benchmarking session</li>
<li>-c 5 : 5 is concurrency number i.e. ab will send 5 number of multiple requests to perform at a time to server 202.54.200.1</li>
</ul>
<p><code> </code></p>
<p>For example if you want to send 10 requests, type following command:</p>
<p><code>$ ab -n 10 -c 2 http://www.somewhere.com/</code><code></code></p>
<p>Repeat above command 3-5 times and save the best reading.</p>
<p>Please note that 1000 request is a small number you need to send bigger (i.e. the hits you want to test) requests, you should consider a larger number, like 50000.</p>
<h3>How do I save result as a Comma separated value?</h3>
<p>Use -e option that allows to write a comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests:<code></code></p>
<p><code>$ ab -k -n 50000 -c 2 -e apache2r1.csv http://202.54.200.1/htmlpage.html</code></p>
<h3>How do I import result into excel or gnuplot programs so that I can create graphs?</h3>
<p>Use above command or -g option as follows:<code></code></p>
<p><code>$ ab -k -n 50000 -c 2 -g apache2r3.txt http://202.54.200.1/htmlpage.html</code><code></code></p>
<p><code>You can <strong>find out more </strong>by accessing <a href="http://httpd.apache.org/docs/2.0/programs/ab.html">http://httpd.apache.org/docs/2.0/programs/ab.html</a></code></p>
<h2>2. Profile queries in MySql</h2>
<p>Your queries will probably follow the 90/10 rule. 90% of your work will be caused by 10% of the queries. You need to profile your queries so you know how they really perform.</p>
<p>MySQL provides two main tools for understanding query performance: <a href="http://dev.mysql.com/doc/refman/5.0/en/explain.html"><code>EXPLAIN</code></a> and <a href="http://dev.mysql.com/doc/refman/5.0/en/show-status.html"><code>SHOW STATUS</code></a>.</p>
<h3><code>EXPLAIN</code></h3>
<p>It shows the <em>estimated execution plan</em> of a <code>SELECT</code> query. It explains how indexes will be used, in what order a join is performed, estimated number of rows accessed, and so forth. Together with execution time, this is a good first approximation to a query’s performance.</p>
<p>Limitations:</p>
<ul>
<li>you can only use it with <code>SELECT</code> queries.</li>
<li>you’re only getting an estimate. This is based on MySQL’s index statistics and whatever else it can learn about the query and tables at query compile and optimization time.<strong></strong></li>
</ul>
<h3><code>SHOW STATUS</code></h3>
<p>Displays MySQL’s internal counters. MySQL increments these as it executes each query. For instance, every time the query handler advances from one entry to the next in an index, it increments a counter. One thing you can use these counters for is to get a sense of what types of operations your server does in aggregate (see the excellent <a href="http://hackmysql.com/mysqlreport/">mysqlreport</a> tool for help with this).</p>
<p>Another use is to figure out how much work an individual query did. If you run <code>SHOW STATUS</code>, execute a query, and run <code>SHOW STATUS</code> again you can see how much the counters have incremented, and thus how much work the query did.</p>
<p>You can also see how <strong>non-</strong><code><strong>SELECT</strong></code> <strong>queries perform</strong></p>
<h3>The technique</h3>
<p>You  do the following:</p>
<ol start="1">
<li>Run the query a few times to “warm up” the server.</li>
<li>Run <code>SHOW STATUS</code> and save the result.</li>
<li>Run the query.</li>
<li>Run <code>SHOW STATUS</code> again and get the differences from the first time I ran it.</li>
<li>Optionally, if you are on  a quiet server, subtract the work <code>SHOW STATUS</code> itself causes (don’t do this on a busy server). Run <code>SHOW STATUS</code> twice and subtract each variable to get a baseline, then subtract this amount from the results you got above.</li>
</ol>
<p>Let’s look at how to analyze the numbers.</p>
<h3>How to analyze the results</h3>
<p>I would break the results down into logical sections as follows:</p>
<ol start="1">
<li>Overall</li>
<li>Table, index, and sorting</li>
<li>Row-level operations</li>
<li>I/O operations</li>
<li>InnoDB operations, if applicable</li>
</ol>
<p>First, two important overall measurements are the query’s time and if available, <code>Last_query_cost</code>. These two numbers can give you a high-level view of a query performance.</p>
<p>Next, look at how the query affected tables, indexes, files and sorting. To start with, look at the <code>Select_</code> variables to see how many table and index scans you had, and how many range scans and joins with or without checks. The <code>Sort_</code> variables tell you more about sorting. You’re striving for as few table and index scans as possible, and it’s best to sort as few rows as possible. By the way, you should also examine <code>EXPLAIN</code> to see what kind of sorting is used (for example, index sorts may be better than filesorts).</p>
<p>Row operation statistics come from the <code>Handler_</code> variables. You can see not only reads, but writes as well. Sometimes you’ll see a lot of <code>Handler_write</code> events even in a plain <code>SELECT</code> query. This happens while the handler generates the result set — it doesn’t necessarily mean rows in your base tables got updated. <code>GROUP BY</code> queries that have to accumulate a result set are a typical scenario. Temporary tables are another, and sometimes results are materialized as intermediate temporary tables. Subqueries in the <code>FROM</code> clause are an example.</p>
<p>The fewer writes, the better — unless those writes enable many fewer reads. For example, materializing an intermediate temporary table and writing to it can save a lot of reads in grouped queries. If you rewrite a correlated, grouped subquery as a grouped subquery in the <code>FROM</code> clause, you only have to do the <code>GROUP BY</code> against the base table once, as opposed to the correlated subquery, which will probe into the base table once for every row in the outer table. In that case, the writes to the temporary table are a good trade-off. But don’t take my word for it, profile some queries and see!</p>
<p>I/O operations include the <code>Key_</code> and <code>Created_</code> variables, which tell you how much index, temp table, and temp file I/O happened. This is where you’ll see the temporary tables I just mentioned. Temp files may be the result of filesort operations. <code>Key_read_requests</code> and <code>Key_write_requests</code> tell you how many times the server asked to read or write a key block from or to the key cache. <code>Key_reads</code> and <code>Key_writes</code> tell you how often the operation had to go to disk (i.e. fetching more data from and index, or flushing an index write to disk). If you are using indexes well, it is normal to see high request values here. If your server is configured well, it is normal for virtually 100% of key read requests to be satisfied from the cache, and not have to go to disk. Even if the server isn’t configured well, each key read request should bring a block of the index into memory, which can be used to satisfy some subsequent number of read requests, so if you are seeing much less than 100% key cache hit, something is very wrong.<code></code></p>
<h2>3. Speed Tracer (by Google<strong>)<br />
</strong></h2>
<p><a href="https://chrome.google.com/webstore/detail/ognampngfcbddbfemdapefohjiobgbdl">Speed Tracer</a> is a tool to help you identify and fix performance problems in your web applications. It visualizes metrics that are taken from low level instrumentation points inside of the browser and analyzes them as your application runs.</p>
<h2>4. Zend_Db_Profiler</h2>
<p>Zend_Db_Profiler can be enabled to allow profiling of queries.</p>
<p>It includes:</p>
<ul>
<li>queries processed by the adapter</li>
<li>elapsed time to run the queries</li>
</ul>
<p>If you want to learn more follow this link:</p>
<p><a href="http://framework.zend.com/manual/en/zend.db.profiler.html">http://framework.zend.com/manual/en/zend.db.profiler.html</a></p>
<h2>5. xdebug</h2>
<p>A PHP extension designed to profile your website and also debug it, the swiss army knife tool for PHP developers.</p>
<p>Xdebug&#8217;s basic functions include the display of stack traces on error conditions, maximum nesting level protection and time tracking.</p>
<h3>Installing</h3>
<p><strong>On UNIX</strong></p>
<p><code>pecl install xdebug</code><code></code></p>
<p><code></code>If the PECL installation does not work for you, you need to compile xdebug from source.</p>
<pre><code>wget http://xdebug.org/link.php?url=xdebug201</code>
<code>tar -xzf xdebug-2.0.1.tgz</code>
<code>cd xdebug-2.0.1</code>
<code>phpize</code>
<code>./configure --enable-xdebug --with-php-config=/usr/bin/php-config</code>
<code>make</code>
<code>cp modules/xdebug.so /usr/lib/apache2/modules/xdebug.so</code></pre>
<p><strong>On Windows</strong></p>
<p>If you are a Windows user, you can download a compiled DLL from <a href="http://www.xdebug.org/">xdebug.org</a>.<br />
Select the PHP version you are using and click the appropriate link in the <strong>Windows modules</strong> section in the right column of the page.</p>
<p>Then put the downloaded DLL into PHP’s extension directory <em>ext</em>, which should be a subdirectory of your PHP directory. You can put the DLL to any directory, provided that you state the full path to the DLL in <em>php.ini</em>.</p>
<p>Here is a link with a tutorial on how to proper test with xdebug.</p>
<p><a href="http://devzone.zend.com/1120/introducing-xdebug/">http://devzone.zend.com/1120/introducing-xdebug/</a></p>
<p><a href="http://xdebug.org/">http://xdebug.org/</a></p>
<h2>6. PHP_Debug</h2>
<p>The basic purpose of PHP_Debug is to provide assistance in debugging PHP code:</p>
<ul>
<li>program trace</li>
<li>variables display</li>
<li>process time</li>
<li>included files</li>
<li>queries executed</li>
<li>watch variables</li>
</ul>
<p>These informations are gathered through the script execution and therefore are displayed at the end of the script (in a nice floating div or a html table) so that it can be read and used at any moment.</p>
<p>You can find more informations here:</p>
<p><a href="http://phpdebug.sourceforge.net/www/index.html">http://phpdebug.sourceforge.net/www/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/11/web-performance-testing-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Little CSS Tips &amp; Tricks (from a beginner to beginners)</title>
		<link>http://blog.epoint.ro/2011/11/little-css-tips-tricks-from-a-beginner-to-beginners/</link>
		<comments>http://blog.epoint.ro/2011/11/little-css-tips-tricks-from-a-beginner-to-beginners/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 13:41:11 +0000</pubDate>
		<dc:creator>Adelina Maxim</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[tips & tricks]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=199</guid>
		<description><![CDATA[As a newbie in front-end development I&#8217;ve crossed some particular issues for whose solution I needed to research more. Every time I had the opportunity to learn new tricks in CSS I wrote them down so in the future they would be on my disposal. Bellow you can find some of them along with a&#8230;]]></description>
			<content:encoded><![CDATA[<p>As a newbie in front-end development I&#8217;ve crossed some particular issues for whose solution I needed to research more. Every time I had the opportunity to learn new tricks in CSS I wrote them down so in the future they would be on my disposal.</p>
<p>Bellow you can find some of them along with a brief explanation.</p>
<h2>1. CSS text-transform property</h2>
<p>Avoid writing text with capitalized letters and use instead the text-transform property to do that. The default writing should be “Lorem ipsum” and the result would be: “LOREM IPSUM”.</p>
<pre class="brush: css; title: ; notranslate">text-transform: uppercase/lowercase/none/capitalize</pre>
<h2>2. Use block and inline elements correctly</h2>
<p>There is a big difference between inline and block elements.  The characteristics of block elements include:</p>
<ul>
<li>Always begin on a new line (they stack up underneath each other);</li>
<li>Height, line-height and top and bottom margins can be manipulated;</li>
<li>Width defaults to 100% of their containing element, unless a width is specified.</li>
</ul>
<p>Examples of block elements include &lt;div&gt;, &lt;p&gt;, &lt;h1&gt;, &lt;form&gt;, &lt;ul&gt; and &lt;li&gt;.</p>
<p>Inline elements on the other hand have the opposite characteristics:</p>
<ul>
<li>Begin on the same line (they stack up next to each other);</li>
<li>Height, line-height and top and bottom margins can&#8217;t be changed;</li>
<li>Width is as long as the text/image and can&#8217;t be manipulated.</li>
</ul>
<p>Examples of inline elements include &lt;span&gt;, &lt;a&gt;, &lt;label&gt;, &lt;input&gt;, &lt;img&gt;, &lt;strong&gt; and &lt;em&gt;.</p>
<p>To change an element&#8217;s status you can use display: inline or display: block. This is not good practice, unless it is absolutely necessary. This means it’s recommended for you as (front-end) developer to use the <a href="http://htmlhelp.com/reference/html40/block.html">block</a> elements like “div” when you need a block element and not use a “span” element for example with “display: block” style. This is available also for the <a href="http://htmlhelp.com/reference/html40/inline.html">inline</a> elements like “b” or “i”, they must be used as inline elements when possible.</p>
<h2>3. Font property in one declaration</h2>
<p>Instead having these four lines declaration block:</p>
<pre class="brush: css; title: ; notranslate">font-family: Arial;
font-size: 12px;
font-weight: bold;
line-height: 20px;</pre>
<p>you can use this single line declaration:</p>
<pre class="brush: css; title: ; notranslate">font: bold 12px/20px Arial;</pre>
<h2>4. Center horizontally</h2>
<p>If you need to center horizontally an inline element, you can use the property</p>
<pre class="brush: css; title: ; notranslate">text-align:center;</pre>
<p>To center horizontally a block element you must set the width for it and also auto for the left and right margins:</p>
<pre class="brush: css; title: ; notranslate">margin: 0 auto;</pre>
<p>Lets presume that you want to horizontally center your website. You can do that by setting the big container’s margins (left and right) to auto as shown above.</p>
<p>But, in IE7 this will not be enough. You still need to add to the &lt;body&gt; tag the property</p>
<pre class="brush: css; title: ; notranslate">text-align:center;</pre>
<h2>5. Negative margin &amp; text outside of an block element</h2>
<p dir="ltr">You may need to put some text or an image outside your div (for example). This is easily done by setting the margin to a negative value. But in IE the text/image will not be full displayed, the outside content will be cropped. To avoid this, you must use the property position: relative.</p>
<pre class="brush: css; title: ; notranslate">img {
  margin: -n px;
  position: relative;
}</pre>
<h2>6. Background does not extend under the border in IE7</h2>
<p>Background does not extend under the borders in IE7 and IE6. You may need this when you used a semi-transparent border or a dotted (etc) border.<br />
To extend the background, you must consider the following properties depending if the tag has the hasLayout property set to true or false (more info about hasLayout <a href="http://www.satzansatz.de/cssd/onhavinglayout.html">here</a>):</p>
<ul>
<li>Without hasLayout the background-position uses the border edge as reference, as with background-origin: border-box (so the background will extend)</li>
<li>With hasLayout the background is limited to the padding area, as with background-clip: padding-box (the background will not extend)</li>
</ul>
<p>If you want to find out more, go to this <a href="http://www.brunildo.org/test/BackgroundBorder2.html">website</a>.</p>
<h2>7. It’s not a good practice to put style on a &lt;tr&gt; tag</h2>
<p>When you want to add custom style on a table, even if you could do this by setting properties of an &lt;tr&gt;, this is not a good practice because it can cause different problems e.g. in IE6/7 the style is not visible. The best practice is to add style on the &lt;td&gt; elements of the table.</p>
<h2>8. Lists in IE7 are wrong displayed</h2>
<p>When you want to horizontally display a list (ul, ol with li), to avoid bugs in IE7 (the &lt;li&gt;s are displayed as a scale) you need to add the following property:</p>
<pre class="brush: css; title: ; notranslate">li {
  display:inline;
}</pre>
<h2>9. How to put an icon-image in front of a text</h2>
<p>In most of the cases when you are displaying e.g. a social-media link you may what to display in front of it the icon-image of the website. You could add an &lt;img&gt; tag with the source of the icon, but that’s not the best practice.<br />
One of the best practices is to add the icon as background and forcing its position to left:</p>
<pre class="brush: css; title: ; notranslate">#social-media-link {
  padding-left: n px; /* (n should the at least the width of the icon to avoid overlapping) */
  background: url(path) left center no-repeat;
}</pre>
<h2>10. Disappearing text or images in IE</h2>
<p>IE has a very strange bug where text or background images sometimes disappears from sight. These items are still actually there, and if you highlight everything on screen or hit refresh they&#8217;ll often re-appear, but not necessary.</p>
<p>To repair this all you have to do is to add the following property</p>
<pre class="brush: css; title: ; notranslate">position: relative;</pre>
<p>to the element that causes problems.</p>
<h2>11. Align text in a select box</h2>
<p>Most of the time you will want to align the text from the select box in a special way. To do that you need to remove the height of the select (if it has one defined) and add padding instead.</p>
<p>Unfortunately, this is not working in all browser. In Safari and IE7 we cannot add padding on a select-box.</p>
<h2>12. IE and width &amp; height issues</h2>
<p>IE has a rather strange way of doing things. It doesn&#8217;t understand the min-width and min-height properties, but instead interprets width and height as min-width and min-height.</p>
<p>If we only use the width and height properties on a box then non-IE browsers won&#8217;t allow the box to resize. If we only use the min-width and min-height properites though then we can&#8217;t control the width or height in IE.</p>
<p>This can be especially problematic when using background images. If you&#8217;re using a background image that&#8217;s 80px wide and 35px high, then you&#8217;ll want to make sure that the default size for a box using this image is exactly 80 x 35px. However, if users resize the text then the box size will need to expand gracefully.<br />
To resolve this problem, you can use the following code for a box:</p>
<pre class="brush: css; title: ; notranslate">.box {
  width: 80px;
  height: 35px;
}

html &gt; body .box{
  width: auto;
  height: auto;
  min-width: 80px;
  min-height: 35px;
}</pre>
<p>All browsers will read through the first CSS rule but IE will ignore the second rule because it makes use of the <a href="http://meyerweb.com/eric/articles/webrev/200006b.html">child selector command</a>. Non-IE browsers will read through the second one and will override the values from the first rule because this CSS rule is more specific, and CSS rules that are more specific always override those that are less specific.</p>
<h2>13. Box-shadow at hover in IE</h2>
<p>Creating a box-shadow on IE that appears only at hover it only works with JavaScript, not with PIE.</p>
<h2>14. Fieldset and legend</h2>
<p>The fieldset-legend tag is a legendary problem for web-designers. They don&#8217;t behave like normal block/inline elements so all the normal tricks to whip it into shape is useless. The &lt;legend&gt; tag has the ability to totally ignore whatever you want it to do. The biggest problem is that  &lt;legend&gt; simply wont accept a width value. It needs to get a little helper, there’s no way around it. The help comes from the &lt;span&gt; tag:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;fieldset&gt;
  &lt;legend&gt;&lt;span&gt;Legend link&lt;/span&gt;&lt;/legend&gt;
  &lt;label&gt;Label&lt;/label&gt;
  &lt;input type=&quot;text&quot; name=&quot;foo&quot; value=&quot;&quot; /&gt;
&lt;/fieldset&gt;
</pre>
<h2>15. Remove Dotted Link Borders</h2>
<p>Dotted borders around links are an accessibility feature most browsers have by default. It’s for users who must or choose to navigate by keyboard, there is a visual style applied to those links when “tabbed” to. These borders also show up when the link is clicked (in it’s “active” state), and can be an eyesore depending on the design (especially when using something like CSS image replacement, the borders span the length of the screen). You can remove them with this:</p>
<pre class="brush: css; title: ; notranslate">a:focus, a:active {
  outline: none;
}</pre>
<h2>16. Reset your CSS</h2>
<p>You need to reset CSS because as you’ve seen, browsers assign different styles to some elements and the best approach is to clear(reset) all styles from the beginning. In this way you’ll be sure you made a good start.</p>
<p>The best method I know is the <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/">Eric Mayer’s Css Reset method</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/11/little-css-tips-tricks-from-a-beginner-to-beginners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to change your Domain name without losing much from your rankings</title>
		<link>http://blog.epoint.ro/2011/11/how-to-change-your-domain-name-without-losing-much-from-your-rankings/</link>
		<comments>http://blog.epoint.ro/2011/11/how-to-change-your-domain-name-without-losing-much-from-your-rankings/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 14:49:12 +0000</pubDate>
		<dc:creator>Cristina Martin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[pagerank]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=164</guid>
		<description><![CDATA[Recently, for one of our project, we needed to transfer a website from one domain to another one. The problem appeared when we talked about google rank, page indexed, and SERP position. So, after a research on the web we came to the next conclusion: &#8220;No matter what, changing your domain name will affect your&#8230;]]></description>
			<content:encoded><![CDATA[<p>Recently, for one of our project, we needed to transfer a website from one domain to another one. The problem appeared when we talked about google rank, page indexed, and SERP position. So, after a research on the web we came to the next conclusion: &#8220;No matter what, changing your domain name will affect your search engine rankings because each domain name is linked with several metrics (trust, authority, etc), characteristics (domain age, GEO location signals, etc) and above all the hyperlinks&#8221;.</p>
<p>You can substantially limit the damage done by following the next steps (advices from <a href="http://google.com/webmasters">Google Webmaster Central</a>):</p>
<ol>
<li>Pay attention to the TLD (.at, .com, .fr, .gr, .de) when you register the new Domain because is often used as a GEO location signal. When you purchase an aged domain, do a bit of research on the history of the domain, check the previous WHOIS records, check if the domain has any indexed pages on the search engines so you can exclude to be banned by one of the major search engines.</li>
<li>By upload a &#8220;comming soon&#8221; page you will allow search engines to crawl and index the new website. This will help also the search engines to detect that your site isn&#8217;t a parked domain, but instead is a real website. Then register the new domain to the webmasters centers.</li>
<li>If is possible don&#8217;t transfer directly all of your pages to the new location, but instead try moving smaller segments of it. This step is highly recommended, but optional, to avoid serious SEO problems (many changes at once can make it difficult to handle problems when they occur).</li>
<li>The next step is to upload the pages/images/files of your website to the new website.</li>
<li>Redirect the Old pages to the New ones. This action should be done on the page level, meaning that each page of the old site should be redirected to the new URL of the page on the new domain. It is recommended to use 301 redirects because in this way you manage to pass to the new website most of the metrics, characteristics and statistics (PageRank values, links, anchor text data etc) and also make the URL Redirection with the Apache URL Redirect Directive (htaccess file or in httpd.conf file).</li>
<li>Use the Change of Address tool in Google Webmaster Console. After registering both the old and the new website to Google Webmaster tools you should specify that the old one has been transferred to the new address. The Change of Address tool works at the site level.</li>
<li>Update the important Backlinks that point to your old website and link directly to the new pages. In order to get a list of all the Backlinks of your website you can use the Backlink Analyzer tool or Google Webmaster Tools console and focus only on the most important ones (top 100) and contact as many of these webmasters as possible about changing their links, including all the directories (Yahoo!, Open Directory).</li>
<li>Make sure both the old site and the new site have been verified and have Sitemaps submitted at Google Webmaster Central, Bing Webmaster Tools and Yahoo! Site Explorer.</li>
<li>Announce media and online marketing because your goals are to get as many new inbound links pointing to the site to attract a high number of branded searches for the new located site.</li>
<li>Be patient and make sure you dedicate time to test everything before you transfer your whole website. Don’t forget to maintain the 301 redirects from the old domain to the new one and to renew the change of address every 180 days. Also, monitor your rankings for the content, comparing old to new over time. Monitor your Webmaster Central account for 404 errors and see how well Google is doing with your 301s.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/11/how-to-change-your-domain-name-without-losing-much-from-your-rankings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmers small talk</title>
		<link>http://blog.epoint.ro/2011/11/programmers-small-talk/</link>
		<comments>http://blog.epoint.ro/2011/11/programmers-small-talk/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 12:57:24 +0000</pubDate>
		<dc:creator>Adrian Șchiopu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.epoint.ro/?p=151</guid>
		<description><![CDATA[[07-Nov-11 9:20:11 AM] Florin : please update [07-Nov-11 11:13:03 AM] Florin : update pls [07-Nov-11 11:16:05 AM] Mathias : good morning [07-Nov-11 11:16:07 AM] Mathias : update is done [07-Nov-11 11:16:11 AM] Florin : hello [07-Nov-11 11:16:12 AM] Florin : thanks [07-Nov-11 11:33:44 AM] Florin : please update [07-Nov-11 11:34:43 AM] Mathias : done [07-Nov-11&#8230;]]></description>
			<content:encoded><![CDATA[<p>[07-Nov-11 9:20:11 AM] Florin : please update<br />
[07-Nov-11 11:13:03 AM] Florin : update pls<br />
[07-Nov-11 11:16:05 AM] Mathias : good morning<br />
[07-Nov-11 11:16:07 AM] Mathias : update is done<br />
[07-Nov-11 11:16:11 AM] Florin : hello<br />
[07-Nov-11 11:16:12 AM] Florin : thanks<br />
[07-Nov-11 11:33:44 AM] Florin : please update<br />
[07-Nov-11 11:34:43 AM] Mathias : done<br />
[07-Nov-11 11:47:45 AM] Florin : thank you<br />
[07-Nov-11 11:59:57 AM] Florin : update pls <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[07-Nov-11 12:22:02 PM] Mathias : done<br />
[07-Nov-11 1:28:39 PM] Florin : update pls<br />
[07-Nov-11 1:44:07 PM] Florin : update pls<br />
[07-Nov-11 2:15:52 PM] Mathias : done<br />
[07-Nov-11 2:25:01 PM] Florin : 10X<br />
[07-Nov-11 3:17:03 PM] Florin : please update<br />
[07-Nov-11 3:18:23 PM] Florin : lol<br />
[07-Nov-11 3:21:55 PM] Mathias : done again <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
[07-Nov-11 3:22:13 PM] Florin : 10X<br />
[07-Nov-11 4:20:00 PM] Florin : update pls<br />
[07-Nov-11 4:41:06 PM] Mathias : done<br />
[07-Nov-11 4:42:44 PM] Florin : 10X<br />
[07-Nov-11 4:44:58 PM] Florin : update please<br />
[07-Nov-11 6:07:58 PM] Florin : update pls<br />
[07-Nov-11 6:10:12 PM] Mathias : done<br />
[07-Nov-11 6:10:35 PM] Florin : 10X<br />
[07-Nov-11 6:11:56 PM] Florin : sorry, update again <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[07-Nov-11 6:12:52 PM] Mathias : done<br />
[07-Nov-11 6:13:09 PM] Florin : k<br />
[07-Nov-11 6:23:20 PM] Florin : please update<br />
[07-Nov-11 6:50:52 PM] Mathias : done<br />
[07-Nov-11 6:56:31 PM] Florin : 10X</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/11/programmers-small-talk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A 15 minutes lesson</title>
		<link>http://blog.epoint.ro/2011/10/a-15-minutes-lesson/</link>
		<comments>http://blog.epoint.ro/2011/10/a-15-minutes-lesson/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:49:55 +0000</pubDate>
		<dc:creator>Daniel Ovidiu Banica</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[pitch]]></category>
		<category><![CDATA[trender]]></category>
		<category><![CDATA[VC]]></category>

		<guid isPermaLink="false">http://blog.dev.onepoint.ro/?p=100</guid>
		<description><![CDATA[I had my first pitch ever a few days ago. Actually it was on my birthday on the 19th of October. I had 7 minutes for the presentation and another 8 minutes for Q&#38;A.  More details on VentureConnect Timisoara. For those of you that don&#8217;t know, trender is the first advertising agency in Romania focusing on Word&#8230;]]></description>
			<content:encoded><![CDATA[<p>I had my first pitch ever a few days ago. Actually it was on my birthday on the 19th of October. I had 7 minutes for the presentation and another 8 minutes for Q&amp;A.  More details on <a href="http://www.ventureconnect.ro " target="_blank">VentureConnect</a> Timisoara.</p>
<p>For those of you that don&#8217;t know, <a title="trender - word of mouth" href="http://www.trender.ro" target="_blank">trender</a> is the first advertising agency in Romania focusing on Word of Mouth Marketing campaigns.</p>
<p>Long story short, it did not went well. Here are some stuff I realized and hopefully learned during the 15 minutes pitch:</p>
<ol>
<li>Prepare, prepare, prepare.  Take your time and work on the presentation. Over and over again.</li>
<li>Understand your audience.  VCs are usually busy people, they&#8217;ve seen a lot, understand the industry, so your focus should be on things that matter to them and not especially to you.</li>
<li>Ask for opinions and input from your team.  The presentation was done with Giorgiana and Octa. Thanks for your input!</li>
<li>Aks for external feedback. People that are not too close to the subject will give you a feedback from a &#8220;different&#8221; angle. I had my presentation reviewed by my friend <a title="Peter Zwysig" href="http://pez.foryouandyourcustomers.com/en/" target="_blank">Peach</a>, who pointed out some of the point that would need improvement, but I had no time to integrate them. So, ask timely for advice and review from your peers.</li>
<li>Focus, focus, focus. Present things that are easy to understand by someone that 5 minutes ago had no idea what you do. I made the mistake to focus too much on the &#8220;strategic&#8221; part instead on presenting the actual situation and the next steps.</li>
<li>Because of point 5, all 3 Jury members focused on questions regarding the far future and not on the steps that have to be made &#8220;now&#8221;.  And this was the biggest mistake I made.  At this point I felt that I had &#8220;lost&#8221; them.</li>
<li>I would have been much better to do more research on the jury members to see their background and what they are &#8220;looking&#8221; for.</li>
</ol>
<p>You can download the presentation <a href="http://blog.dev.onepoint.ro/wp-content/uploads/2011/10/trender_WOMMMultichannel_2.pdf">trender WOMM evolution</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/10/a-15-minutes-lesson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Epoint goes to Transalpina</title>
		<link>http://blog.epoint.ro/2011/10/epoint-goes-to-transalpina/</link>
		<comments>http://blog.epoint.ro/2011/10/epoint-goes-to-transalpina/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 19:30:32 +0000</pubDate>
		<dc:creator>Daniel Ighișan</dc:creator>
				<category><![CDATA[Activities]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[bikes]]></category>
		<category><![CDATA[transalpina]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://blog.dev.onepoint.ro/?p=8</guid>
		<description><![CDATA[So this is a story not about the Alps as you may think, but about a group of Epoint “lab rats” who wanted to conquer a new restored road, one of the most spectacular roads of the  Carpathian Mountains. It is said that the road was built under King Carol I rule and it was&#8230;]]></description>
			<content:encoded><![CDATA[<p>So this is a story not about the Alps as you may think, but about a group of Epoint “lab rats” who wanted to conquer a new restored road, one of the most spectacular roads of the  Carpathian Mountains.</p>
<p>It is said that the road was built under King Carol I rule and it was now finally restored to it&#8217;s full glory. You may think that a couple of geeks like us, would have used cars to get there, at over 2000 meters high. But you couldn&#8217;t be more wrong. We like to be eco-friendly so we put up a plan to use the cars just to get to Oașa Monastery at the base of the road, and then&#8230;get ready for it&#8230;.to get on our bikes and head up high in the mountains. So we trained for about a week in Timișoara&#8217;s heavy traffic, fine tuned our bikes and at the end of the week after all task were done and tickets reported to Jira as completed <img src='http://blog.epoint.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , we were ready for action.</p>
<p>Our first challenge was to fit all the bikes in the cars, we compiled a clever PHP code, scratched our heads, and voila:</p>
<p>So we got on the road, nearly got lost, but made it trough the wilderness and arrived way past midnight at Oașa. The people there were kind to let us in at that late time of night, we got a good nights rest, attended mass like good Christians in the morning (or we would have been dumped out of the Monastery faster then an SQL database) and assembled the bikes. It was easy to decompile them, but the awesomeness was to put them back together. Like trough engineers we got past that with success like we do with our project here at Epoint:</p>
<p>Of we went, putting to a test what we saw in Tour de France. Things really look a lot easier on TV, don&#8217;t they?</p>
<p>We&#8217;ve encountered strange visitors from another place:</p>
<p>Enjoyed the beauty of a mountain road:</p>
<p>And got tired on the last part of the ascent, after running out of road.</p>
<p>We&#8217;ve made it on top, and then what comes up must come down as I always say. And down we went, with spectacular speeds of more then 60km/h (that&#8217;s a lot for a bike, if some may ask). The descent got a little bumpy for some of us, but we arrived in one piece. All I can say is that it was truly&#8230;lengendary. To feel the wind coming right to your face, to overpass cars, and to see the drivers faces in shock, priceless.</p>
<p><object width="500" height="375"><param name="movie" value="http://www.youtube.com/v/9TKQIAQg7JI?version=3&#038;feature=oembed"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9TKQIAQg7JI?version=3&#038;feature=oembed" type="application/x-shockwave-flash" width="500" height="375" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The weekend came to a halt by embracing a more traditional side, to feel how it was without having laptops, mobile phone, iStuffs and other gadgets.</p>
<p>We enjoyed it, but we are still geeks so we gladly returned at our Epoint office in Timișoara with our batteries recharged and ready for a new awesome week of exciting projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/10/epoint-goes-to-transalpina/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Visiting our clients at DB Schenker</title>
		<link>http://blog.epoint.ro/2011/10/visiting-our-clients-at-db-schenker/</link>
		<comments>http://blog.epoint.ro/2011/10/visiting-our-clients-at-db-schenker/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 10:08:56 +0000</pubDate>
		<dc:creator>Daniel Ovidiu Banica</dc:creator>
				<category><![CDATA[Activities]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[bucharest]]></category>
		<category><![CDATA[db schenker]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://blog.dev.onepoint.ro/?p=44</guid>
		<description><![CDATA[A couple of weeks ago our Project Manager, Adrian Schiopu, was in Bucharest, meeting our clients from DB Schenker. After 2 months of work with a team of 5 people from our side and a great collaboration with Timm Schorsch, the Project Manager from DB Schenker it was the time to “deliver” our great project&#8230;]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago our Project Manager, Adrian Schiopu, was in Bucharest, meeting our clients from DB Schenker.</p>
<p>After  2 months of work with a team of 5 people from our side and a great  collaboration with Timm Schorsch, the Project Manager from DB Schenker  it was the time to “deliver” our great project and to hold a short  training on its use.</p>
<p>DB Schenker contacted us in order to develop  an internal “TRIP” Application to ease the company`s internal work and  processes and that`s what we did.</p>
<p><span style="font-size: small;"><strong>Here are a couple of pictures with our clients and a short description of DB Schenker:</strong></span></p>
<p><img src="http://epoint.ro/sites/default/files/blog/photos/dbs_bucharest_1.jpg"></p>
<p><img src="http://epoint.ro/sites/default/files/blog/photos/dbs_bucharest_2.jpg"></p>
<p> <img src="http://epoint.ro/sites/default/files/blog/photos/dbs_bucharest_3.jpg"></p>
<p> <img src="http://epoint.ro/sites/default/files/blog/photos/dbs_bucharest_4.jpg"></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/10/visiting-our-clients-at-db-schenker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to update Typo3 in easy steps</title>
		<link>http://blog.epoint.ro/2011/09/how-to-update-typo3-in-easy-steps/</link>
		<comments>http://blog.epoint.ro/2011/09/how-to-update-typo3-in-easy-steps/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 10:07:12 +0000</pubDate>
		<dc:creator>Daniel Ighișan</dc:creator>
				<category><![CDATA[Activities]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://blog.dev.onepoint.ro/?p=40</guid>
		<description><![CDATA[In this post we will begin a series of articles dealing with upgrading a typo3 installation.This first article will follow the basic steps for upgrading to the latest Typo 4.5.2 1.) Make e full dump of the file system and the database so you backup your data prior to the update. MySQL Dump: &#8211; mysqldump&#8230;]]></description>
			<content:encoded><![CDATA[<p>In this post we will begin a series of articles dealing with upgrading a typo3 installation.This first article will follow the basic steps for upgrading to the latest Typo 4.5.2</p>
<p><strong>1.)</strong> Make e full dump of the file system and the database so you backup your data prior to the update.</p>
<p>MySQL Dump: &#8211; mysqldump -u <strong>username </strong>-p database_name &gt; database_dump.sql or, if you want a zipped sql dump mysqldump -u <strong>username</strong> -p database_name | gzip &gt; database_dump.sql.gz<br />
Next comes the file dump, we need to be sure to backup everything in case some goes wrong. Usualy it doesn&#8217;t, but just to be safe. File Dump: tar -czf /folder/ archive_name.tar.gz /var/www/directory_to_compress/</p>
<p><strong>2.) </strong>Change the source code</p>
<p class="MsoNormal">If you&#8217;re using the source-distribution in the .tgz file then you need to use symbolic links. Go in the root folder of your website and in the folder “site”. /typo3installation/site/</p>
<p class="MsoNormal">Delete the typo3_src folder:<br />
sudo rm -r typo3_src<br />
Then type in the following command (while still in the folder where typo3_src used to be) to create a symbolic link to the new source folder:<br />
ln -s /sources_folder/typo3_src-4.5.2/ typo3_src</p>
<p>If you&#8217;re using the .zip distribution, then replace these files and folders in the site root: media/, t3lib/, tslib/, typo3/, index.php and showpic.php</p>
<p class="MsoNormal">
<p class="MsoNormal"><strong>3.)</strong> Log into the install tool <a href="http://website.com/typo3/installtool">http://website.com/typo3/install/</a></p>
<p>You must enter a password to access the install-tool. The password is set in localconf.php:<br />
$TYPO3_CONF_VARS["BE"]["installToolPassword"] = &#8220;bacb98acf97e0b6112b1d1b650b84971&#8243;;</p>
<p>Use an md5 generator to obtain the password you want. <a href="http://www.miraclesalad.com/webtools/md5.php">http://www.miraclesalad.com/webtools/md5.php</a> Also for the install tool to work you need to create an ENABLE_INSTALL_TOOL file with no extension, in the typo3conf folder. In the install tool go the upgrade wizard and follow the steps there, and at the end don’t forget to compare the database and update it. click “COMPARE” at the “Update required tables” header:</p>
<p><strong>4.) </strong>Update the extensions, but be careful at templavoila because you may need to remap the templates after updating it.</p>
<p><strong>5.)</strong> Do some basic tests after you finish updating all the extensions:</p>
<ul>
<li>create a test page with a text/image element, preview it in the browser, and see if everything is ok</li>
<li>check the search engine of the site</li>
<li>check the contact form</li>
<li>check all the links</li>
</ul>
<p>That’s all there is to it. In the next post we will deal with the specific problems that may arise after an update.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.epoint.ro/2011/09/how-to-update-typo3-in-easy-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

