<?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>Podróże Marcina Góreckiego &#187; Development</title>
	<atom:link href="http://mgorecki.net/index.php/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://mgorecki.net</link>
	<description>czyli drapanie się tam gdzie nie swędzi</description>
	<lastBuildDate>Mon, 06 Feb 2012 00:37:33 +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>Plan for a future &#8211; node.js</title>
		<link>http://mgorecki.net/index.php/2012/01/09/plan-for-a-future-node-js/</link>
		<comments>http://mgorecki.net/index.php/2012/01/09/plan-for-a-future-node-js/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 06:47:18 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[I was wrong]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=1430</guid>
		<description><![CDATA[It&#8217;s easy to talk about clever ideas, but it takes genius to present them easily and powerfully &#8211; and those guys managed to do it both in this node.js basic concepts presentations. It changed my thinking about callbacks &#8211; the concept I loathed at the first sight. I&#8217;m going to give node.js a go, seems [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2012/01/09/plan-for-a-future-node-js/" size="medium" count="true"></g:plusone></div><p>It&#8217;s easy to talk about clever ideas, but it takes genius to present them easily and powerfully &#8211; and those guys managed to do it both in <a href="http://s3.amazonaws.com/four.livejournal/20091117/jsconf.pdf" target="_blank">this node.js basic concepts presentations</a>. It changed my thinking about callbacks &#8211; the concept I loathed at the first sight. I&#8217;m going to give node.js a go, seems worth it!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2012%2F01%2F09%2Fplan-for-a-future-node-js%2F&amp;title=Plan%20for%20a%20future%20%26%238211%3B%20node.js" id="wpa2a_2"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2012/01/09/plan-for-a-future-node-js/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Three smart UI prototyping techniques</title>
		<link>http://mgorecki.net/index.php/2011/07/22/three-smart-ui-prototyping-techniques/</link>
		<comments>http://mgorecki.net/index.php/2011/07/22/three-smart-ui-prototyping-techniques/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 03:46:04 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[smart tricks]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=880</guid>
		<description><![CDATA[When designing a solution usually we need to show some slick and simple pictures showing user interface we plan to implement. This seems to be the only language both developers and customers seem to understand. Or maybe let me rephrase it to be more specific &#8211; screenshot has the highest likelihood that its interpretation by [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/07/22/three-smart-ui-prototyping-techniques/" size="medium" count="true"></g:plusone></div><p>When designing a solution usually we need to show some slick and simple pictures showing user interface we plan to implement. This seems to be the only language both developers and customers seem to understand. Or maybe let me rephrase it to be more specific &#8211; screenshot has the highest likelihood that its interpretation by all parties will be similar. Preparing such images takes a long time &#8211; the most popular approaches I&#8217;ve seen so far are:<br />
<img src="http://mgorecki.net/wp-content/uploads/2011/07/UI.png" alt="" title="UI" width="250" height="304" class="alignright size-full wp-image-885" />
<ul>
<li>use your favorite graphic editor &#8211; e.q. Gimp, Paint.net, Photoshop, Illustrator, etc. The result usually looks good, but is a nightmare to maintain, especially when you need big chunk of text or new large field.</li>
<li>mock the UI in Word &#8211; get a ugly wire-frame of the window only to forget to group the boxes and see them flying around the document after any change</li>
<li>&#8230; or Excel &#8211; Excel is good for everything, isn&#8217;t it?</li>
<li>create a form in html &#8211; happy styling, call me next week when you&#8217;re done!</li>
</ul>
<p>The process was usually time consuming, but not any more! This week I&#8217;ve seen three smart prototyping approaches:</p>
<ul>
<li><a href="http://balsamiq.com/products/mockups">Balsamiq UI modeler</a> &#8211; application to create any UI layout using drag&#038;drop. The web-based demo (functional!) version is available</li>
<li><a href="http://www.microsoft.com/express">Microsoft Visual Studio Express</a> &#8211; free, fully drag&#038;drop RAD environment. It seems like an overkill to use it only for this reason, but consider the price tag!</li>
<li>Microsoft Visio &#8211; especially 2010 edition &#8211; nice, easy and integrated with Microsoft Office Suite</li>
</ul>
<p>All above applications let you create both static window images and interactive UI prototypes. Next time you talk with your customer show him a &#8220;working&#8221; demo next day after you got first requirements &#8211; he will love you! And hopefully he will understand what you are actually trying to achieve. </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F07%2F22%2Fthree-smart-ui-prototyping-techniques%2F&amp;title=Three%20smart%20UI%20prototyping%20techniques" id="wpa2a_4"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/07/22/three-smart-ui-prototyping-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aim high and then aim higher!</title>
		<link>http://mgorecki.net/index.php/2011/03/21/aim-high-and-then-aim-higher/</link>
		<comments>http://mgorecki.net/index.php/2011/03/21/aim-high-and-then-aim-higher/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 17:31:51 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[vision]]></category>
		<category><![CDATA[vision statement]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=408</guid>
		<description><![CDATA[Good, great and beyond Nearly a hundred years ago Konstantin Eduardovich Tsiolkovsky said his famous words &#8220;The Earth is the cradle of mankind, but one cannot stay in the cradle for ever&#8221;. It&#8217;s easy to get carried away by such statement to think about the final frontier for human race. Imagine all the worlds that [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/03/21/aim-high-and-then-aim-higher/" size="medium" count="true"></g:plusone></div><h4>Good, great and beyond</h4>
<p>Nearly a hundred years ago Konstantin Eduardovich Tsiolkovsky said his famous words <i>&#8220;The Earth is the cradle of mankind, but one cannot stay in the cradle for ever&#8221;</i>. </p>
<p>It&#8217;s easy to get carried away by such statement to think about the final frontier for human race. Imagine all the worlds that lay out there. But the sentence can also be used more metaphorically as a guideline for moving projects up to the next level &#8211; from good to great.</p>
<p>Good projects are those which work as planned, while great project evolve further and further. Good project can make you a decent living, but only the great projects can change the world.</p>
<h4>In the cradle of Vision</h4>
<p>Each project starts with a vision. The vision should be then kept in mind during whole project live, otherwise the project will become stale and fail in the result. Good vision is what drives the team in common direction, let people focus on what is important. The main goal of the project is to fulfil its vision.</p>
<p>Image you want to create an online book store, so you define your vision in a simple statement &#8220;Let&#8217;s create a book store&#8221;. You gather your team and assign tasks (even if your enterprise consist only of you, you will still form many functional teams!) &#8211; define logistics chain, define IT solutions, define marketing plan etc. You start working on details and implementation and sooner of later you end up with working solution. </p>
<p>You&#8217;re now selling books. You have a steady flow of orders, you have managed to build a <b>good project</b>. It works, it generates you income, it is predictable and utterly boring. Soon you will realize that your competitors start to run in front of you. </p>
<h4>Evolving Vision Statement</h4>
<p>What happened? You&#8217;ve achieved your main goal, but you failed to evolve your vision further. You sit comfortably in your cradle and capitalize on your hard work. You can grow up to the size of your market and compete hard, but unless you redefine your Vision, you are basically stuck. </p>
<p>Here&#8217;s where all the fun starts &#8211; you can move in many directions (be careful not to bite more that you can chew at once or you&#8217;ll choke), just give your teams more breathing space and you&#8217;re on the best way to creating a <b>great project</b>.</p>
<p>Can you imagine the world in which some of the greatest companies in evolving their vision would fail to do so and<br />
* Google is maintaining only a web engine<br />
* Microsoft is releasing only new versions of Basic and operating systems<br />
* Facebook is a signle university only portal<br />
* Walmart runs only one grocery shop<br />
* Amazon still sells only books<br />
?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F03%2F21%2Faim-high-and-then-aim-higher%2F&amp;title=Aim%20high%20and%20then%20aim%20higher%21" id="wpa2a_6"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/03/21/aim-high-and-then-aim-higher/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Becoming a Wedding Software Developer</title>
		<link>http://mgorecki.net/index.php/2011/02/17/becoming-a-wedding-software-developer/</link>
		<comments>http://mgorecki.net/index.php/2011/02/17/becoming-a-wedding-software-developer/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 01:47:06 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=366</guid>
		<description><![CDATA[I&#8217;m currently preparing to become &#8220;a lawful wedded husband&#8221;, which involves buying tons of stuff. I was comparing various offers and one pattern emerged: if a thing X is renamed to &#8220;Wedding X&#8221; it automatically becomes at least two times as expensive. See for yourself: wedding photography costs 295-1500 GBP while corporate event photography 75-180 [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/17/becoming-a-wedding-software-developer/" size="medium" count="true"></g:plusone></div><p>I&#8217;m currently preparing to become &#8220;a lawful wedded husband&#8221;, which involves buying tons of stuff. I was comparing various offers and one pattern emerged: if a thing X is renamed to &#8220;Wedding X&#8221; it automatically becomes at least two times as expensive. See for yourself: wedding photography costs 295-1500 GBP while corporate event photography 75-180 GBP for comparable time and effort. Wedding cakes are priced at 250-850 GBP vs event/birthday cake which can be bought for 10-80 GBP. So I decided: <b>from today on I&#8217;m charging wedding software engineer rates!</b></p>
<p>You may ask what is a Wedding Software. I&#8217;ve analysed the differences between normal and wedding items and I found some common elements, which I intend to apply to software.</p>
<ul>
<li><i>basic wedding offers are mediocre</i>, so they enforce customizations and add-ons. For cakes you get a plain sponge cake with a white icing. You want some taste, maybe chocolate? No problem &#8211; just add +30% to the price :) Do you want some decorations? No problem, 25 milk chocolate stars pressed into the icing &#8211; +20 GBP! Or maybe you&#8217;d like to write something on the cake? No problem, &#8230;</li>
<li><i>customizations of wedding items are charge more for</i>. The same text written on a birthday cake costs less than half of the price of the same text on wedding cake. Oh why?</li>
<li><i>you get a ribbon with everything</i>. It&#8217;s a customization, but everyone is willing to provide you with this one for free.</li>
<li><i>you are not allowed to buy non-wedding items for wedding</i>. They may fit, they may suit your needs, you may love it, but still your forced to buy something with a &#8220;wedding&#8221; tag</li>
<li><i>wedding items tell you that they are prepared for &#8220;your special day&#8221;, &#8220;most important day of your life&#8221; etc.</i> </li>
</ul>
<p>So, applying the same rules should improve our margins dramatically. What&#8217;s more we it should increase customers satisfaction level. So:</p>
<ul>
<li><i>wedding software should be usable, but ugly and limited as possible.</i> Create a blackAndWhite.css and doNotScaleForMobile.css and apply it to any page you release. Basic version of apps should run up to 800&#215;600 and play sound in mono only. But plan ahead for at least 2 customizations for each feature, including (mostly) irrelevant ones like ALHMMO &#8220;Advanced Left-Hand Mouse Movement Optimization&#8221;.</li>
<li><i>customizations are sometimes called &#8220;extras&#8221; for a reason,</i> they should be extra pricey. Just remember to tell the user that the extra stands for extraordinary usable and smart.</li>
<li><i>excel kills millions of lines of custom code a year</i>, wedding software should not allowed users to use multi purpose tools like that. All data should be exported in unportable formats and all 3rd party imports virtually impossible. Or at least customers should be educated that doing so it a very nasty behavior and they should never do it. Hint: avoid question &#8220;why?&#8221;.</li>
<li><i>software should no longer be commodity or necessity.</i> Wedding software should be luxurious and exclusive. Buying software should be advertised as a transition from the dark times to enlightenment. People live to buy software. It will take some time for them to understand that, the only way is constant repetition. </li>
</ul>
<p>It worked for wedding industry, it will work for software also!</p>
<p>ps. I still haven&#8217;t found what the software counterpart of a free ribbon may be&#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F17%2Fbecoming-a-wedding-software-developer%2F&amp;title=Becoming%20a%20Wedding%20Software%20Developer" id="wpa2a_8"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/17/becoming-a-wedding-software-developer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chrome Webstore &#8220;message.json&#8221; issue</title>
		<link>http://mgorecki.net/index.php/2011/02/11/chrome-webstore-message-json-issue/</link>
		<comments>http://mgorecki.net/index.php/2011/02/11/chrome-webstore-message-json-issue/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 17:40:54 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[chrome extension]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[extension gallery]]></category>
		<category><![CDATA[webstore]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=350</guid>
		<description><![CDATA[Today I have encountered an issue while I was uploading new version of my extension to chrome webstore: "An error occurred: Cannot parse message.json file from uploaded package." I wasn&#8217;t expecting that since the extension was working locally without a problem. Also the error message says about message.json which was not a part of my [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/11/chrome-webstore-message-json-issue/" size="medium" count="true"></g:plusone></div><p>Today I have encountered an issue while I was uploading new version of <a href="http://mgorecki.net/index.php/translateme/">my extension</a> to chrome webstore:</p>
<p><code><b>"An error occurred: Cannot parse message.json file from uploaded package."</b></code></p>
<p>I wasn&#8217;t expecting that since the extension was working locally without a problem. Also the error message says about message.json which was not a part of my package as the i18n files are called messages.json.</p>
<p>The error was trivial to fix (although not so easy to find) &#8211; I have put some comments into messages.json file, which seem not to be supported by extension gallery even though Chrome itself can handle them properly. But the thing that made me smile was that a Google guy created an error message with hard-coded (incorrect) filename. The gods have fallen ;)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F11%2Fchrome-webstore-message-json-issue%2F&amp;title=Chrome%20Webstore%20%26%238220%3Bmessage.json%26%238221%3B%20issue" id="wpa2a_10"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/11/chrome-webstore-message-json-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Missing markers when two Google maps divs are placed on same page</title>
		<link>http://mgorecki.net/index.php/2011/02/07/missing-markers-two-google-maps-on-the-same-page/</link>
		<comments>http://mgorecki.net/index.php/2011/02/07/missing-markers-two-google-maps-on-the-same-page/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 12:15:29 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[google maps api]]></category>
		<category><![CDATA[stable api]]></category>
		<category><![CDATA[unstable api]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=323</guid>
		<description><![CDATA[Google is making constant changes to their APIs and they seem to roll the alpha/beta versions for us to test. Which should be fine unless you expect your webpage to be stable and working all the time. One of the issues in current version of Google APIs is problem of missing markers when you try [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/07/missing-markers-two-google-maps-on-the-same-page/" size="medium" count="true"></g:plusone></div><p>Google is making constant changes to their APIs and they seem to roll the alpha/beta versions for us to test. Which should be fine unless you expect your webpage to be stable and working all the time.</p>
<p>One of the issues in current version of Google APIs is problem of missing markers when you try to place two or more Google maps objects on a page. All maps are displayed in their div tags as expected, but only one of them gets the markers actually displayed. No error message is displayed, individual maps work with markers when they are separated, but together they don&#8217;t.</p>
<p>The only solution I have found so far is to tell Google that we want to use Stable Google Map API instead of latest. Do to it add <strong>v=3.0</strong> version selector to URL of JavaScript librery, i.e. instead of</p>
<pre><code>&lt;script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"&gt;
&lt;/script&gt;</code></pre>
<p>use</p>
<pre>&lt;script type="text/javascript" src="http://maps.google.com/maps/api/js?<b><span style="color: #ff0000;">v=3.0&amp;</span></b>sensor=true"&gt;
&lt;/script&gt;</pre>
<p>So far I haven&#8217;t noticed any drawbacks of this solution. New unstable versions probably add new features and/or improve performance, but I&#8217;m willing to wait until the changes are tested and moved to stable API. I bet you do also.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F07%2Fmissing-markers-two-google-maps-on-the-same-page%2F&amp;title=Missing%20markers%20when%20two%20Google%20maps%20divs%20are%20placed%20on%20same%20page" id="wpa2a_12"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/07/missing-markers-two-google-maps-on-the-same-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New features &#8220;Translate and speak!&#8221;</title>
		<link>http://mgorecki.net/index.php/2011/02/06/new-features-translate-and-speak/</link>
		<comments>http://mgorecki.net/index.php/2011/02/06/new-features-translate-and-speak/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 22:01:40 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Translate and Speak!]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Extension]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=232</guid>
		<description><![CDATA[My chrome extension just got two new features: Show in Wikipedia Show in Wiktionary They do basically that they say on a tin. The language of both wiki sites is determined by Google&#8217;s translate language detection function. It&#8217;s not always accurate, but it&#8217;s best I can get at the moment. I encourage you to install [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/06/new-features-translate-and-speak/" size="medium" count="true"></g:plusone></div><p><a href="http://mgorecki.net/index.php/translateme/">My chrome extension</a> just got two new features:</p>
<ul>
<li>Show in Wikipedia</li>
<li>Show in Wiktionary</li>
</ul>
<p>They do basically that they say on a tin. The language of both wiki sites is determined by Google&#8217;s translate language detection function. It&#8217;s not always accurate, but it&#8217;s best I can get at the moment.</p>
<p><a href="http://mgorecki.net/wp-content/uploads/2011/02/ScreenShot032.png"><img src="http://mgorecki.net/wp-content/uploads/2011/02/ScreenShot032.png" alt="" title="Translate and speak! v1.5" width="649" height="272" class="alignleft size-full wp-image-236" style="border: 1px solid #999" /></a></p>
<p>I encourage you to <a href="https://chrome.google.com/webstore/detail/lbnbkjocmknnifdpllfjjphhdjfopofl">install Translate and Speak!</a> and play with it. Any feedback will be appreciated.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F06%2Fnew-features-translate-and-speak%2F&amp;title=New%20features%20%26%238220%3BTranslate%20and%20speak%21%26%238221%3B" id="wpa2a_14"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/06/new-features-translate-and-speak/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chrome can speak now!</title>
		<link>http://mgorecki.net/index.php/2011/02/04/chrome-can-speak-now/</link>
		<comments>http://mgorecki.net/index.php/2011/02/04/chrome-can-speak-now/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 15:01:13 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[Translate and Speak!]]></category>
		<category><![CDATA[chrome extension]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[TranslateMe]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=227</guid>
		<description><![CDATA[Yesterday new version of &#8220;Translate and Speak!&#8221; (previously TranslateMe) Chrome Extension has been released and it&#8217;s now ready to download on Chrome Webstore. New features in version 1.4 include: &#8220;Speak!&#8221; function, which uses amazing Google&#8217;s TTS to read text Translate (detect language) function, which tries to guess language of the phrase before translating it to [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/04/chrome-can-speak-now/" size="medium" count="true"></g:plusone></div><p>Yesterday new version of <a href="http://mgorecki.net/index.php/translateme/">&#8220;Translate and Speak!&#8221;</a> (previously TranslateMe) Chrome Extension has been released and it&#8217;s now ready to <a href="https://chrome.google.com/webstore/detail/lbnbkjocmknnifdpllfjjphhdjfopofl">download on Chrome Webstore</a>. </p>
<p>New features in version 1.4 include:</p>
<ul>
<li>&#8220;Speak!&#8221; function, which uses amazing Google&#8217;s TTS to read text</li>
<li>Translate (detect language) function, which tries to guess language of the phrase before translating it to your selected language</li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F04%2Fchrome-can-speak-now%2F&amp;title=Chrome%20can%20speak%20now%21" id="wpa2a_16"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/04/chrome-can-speak-now/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How British police made me set up my next project on the cloud</title>
		<link>http://mgorecki.net/index.php/2011/02/01/how-british-police-made-me-set-up-my-next-project-on-the-cloud/</link>
		<comments>http://mgorecki.net/index.php/2011/02/01/how-british-police-made-me-set-up-my-next-project-on-the-cloud/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 13:17:53 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[web application]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=213</guid>
		<description><![CDATA[Today British police made available their new service &#8211; a complete street level map of crimes in England and Wales. The webpage made to all possible headlines in daily papers, tv and radio. The effect is that the service is virtually down and won&#8217;t be usable until the novelty wears out. All web pages have [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/02/01/how-british-police-made-me-set-up-my-next-project-on-the-cloud/" size="medium" count="true"></g:plusone></div><p>Today British police made available their new service &#8211; <a href="http://www.police.uk">a complete street level map of crimes in England and Wales</a>. The webpage made to all possible headlines in daily papers, tv and radio. The effect is that the service is virtually down and won&#8217;t be usable until the novelty wears out.</p>
<p>All web pages have a peak from time to time. It can by due to various reasons &#8211; PR publication, Facebook craze, advertisement campaign, algorithm change at google or change of cosmic radiation. You can predict some peaks, some will come as a total surprise. In both cases the effect is the same &#8211; the system overloads and you&#8217;re starting losing users. That&#8217;s bad, really bad.</p>
<p>What could site owners do to prevent this? There are couple of options:</p>
<ul>
<li><b>Scale IT infrastructure to handle the traffic during peaks.</b> This sounds good until you start calculating cost. If you scale for a peak 10 times larger than normal traffic, you will spent 10 times more money. And how can you be sure the peak won&#8217;t be 11 times normal traffic? Or 101 times? Or 1001? And what would you do if when the peak is over? You can donate unused computing power to <a href="http://setiathome.ssl.berkeley.edu/">Seti@Home</a>, but I doubt your CFO will appreciate this.</li>
<li><b>Deploy to a cloud.</b> When your application is running in a cloud and you foreseen incoming peak, because you&#8217;ve bought nation wide TV ad campaign for exmaple, you allocate more resources for some time (for example start some new instances on <a href="http://aws.amazon.com/ec2/">Amazon EC2</a>). And when the peak is unexpected? You allocate more resources when it happens! Or if you set up the cloud to allocate additional resources automatically for you, you just sit and monitor if everything works smoothly. When the traffic calms down, you just switch off unwanted resources and stop paying for them.</li>
</ul>
<p><b>&#8220;What&#8217;s the catch?&#8221;</b>, you may ask. There is none. The whole process just requires some planning in advance. Designing application for scalability is slightly tougher, but it&#8217;s not a black magic. And it&#8217;s not even rocket science. There are many infrastructure scalability patterns detailed on web. You will have to make some technical decisions on load balancing, session sharing, fallback procedures. The testing is also bit more complicated, but only due to fact of additional features. The rest will be exactly the same as normal design and development job.</p>
<p>I have always known that police is a useful force ;)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F02%2F01%2Fhow-british-police-made-me-set-up-my-next-project-on-the-cloud%2F&amp;title=How%20British%20police%20made%20me%20set%20up%20my%20next%20project%20on%20the%20cloud" id="wpa2a_18"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/02/01/how-british-police-made-me-set-up-my-next-project-on-the-cloud/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Limitation of Chrome Extensions API</title>
		<link>http://mgorecki.net/index.php/2011/01/30/limitation-of-chrome-extensions-api/</link>
		<comments>http://mgorecki.net/index.php/2011/01/30/limitation-of-chrome-extensions-api/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 14:39:19 +0000</pubDate>
		<dc:creator>mgorecki</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Extension]]></category>

		<guid isPermaLink="false">http://mgorecki.net/?p=200</guid>
		<description><![CDATA[The Chrome Extension model is amazingly easy to use with just few basic concepts to understand. But there are rather severe limitations. The most important I found so far: There is no easy and consistent way to create option page. Developer needs to create option page as any normal HTML page, this is just overkill! [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><g:plusone href="http://mgorecki.net/index.php/2011/01/30/limitation-of-chrome-extensions-api/" size="medium" count="true"></g:plusone></div><p>The Chrome Extension model is amazingly easy to use with just few basic concepts to understand. But there are rather severe limitations. The most important I found so far:</p>
<ul>
<li>There is no easy and consistent way to create option page. Developer needs to create option page as any normal HTML page, this is just overkill! See <a href="http://code.google.com/chrome/extensions/trunk/options.html">Extension options page<a/>, <a href="http://code.google.com/p/chromium/issues/detail?id=25317">Chrome issue cr25317</a>.</li>
<li>Attaching action to context menu is limited in many ways:
<ul>
<li>You can&#8217;t add two items to context menu. Chrome automatically creates a group called after the extension and puts all your items into this submenu.</li>
<li>Callback method from event gets very limited amount of data about the click &#8211; e.g. you can&#8217;t easily read the contents of a link (A) tag right-clicked by user.</li>
</ul>
</li>
<li>There is no way you can modify the title of the link in context menu when it&#8217;s being displayed (no OnShow or similar event).</li>
</ul>
<p>Expect edits here.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fmgorecki.net%2Findex.php%2F2011%2F01%2F30%2Flimitation-of-chrome-extensions-api%2F&amp;title=Limitation%20of%20Chrome%20Extensions%20API" id="wpa2a_20"><img src="http://mgorecki.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://mgorecki.net/index.php/2011/01/30/limitation-of-chrome-extensions-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

