<?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>blog.i18n.ro</title>
	<atom:link href="http://blog.i18n.ro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.i18n.ro</link>
	<description>Sorin&#039;s personal blog and website</description>
	<lastBuildDate>Fri, 06 Jan 2012 18:05:02 +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>Who is going to buy JetBrains?</title>
		<link>http://blog.i18n.ro/who-is-going-to-buy-jetbrains/</link>
		<comments>http://blog.i18n.ro/who-is-going-to-buy-jetbrains/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 21:24:18 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[Prophecies]]></category>
		<category><![CDATA[aquisitions]]></category>
		<category><![CDATA[jetbrains]]></category>
		<category><![CDATA[prophecies]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/?p=676</guid>
		<description><![CDATA[There is at least one software company that really does know how to develop remarkable tools for software developers, thats JetBrains. They are not so mainstream because they are developing only tools for developers, but I have to confess most &#8230; <a href="http://blog.i18n.ro/who-is-going-to-buy-jetbrains/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There is at least one software company that really does know how to develop remarkable tools for software developers, thats <a href="http://www.jetbrains.com/">JetBrains</a>.<span id="more-676"></span></p>
<p>They are not so mainstream because they are developing only tools for developers, but I have to confess most of these are the best in they area.</p>
<p>If you are a Java developer you may already know about <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a> or if you are developing in Python, <a href="http://www.jetbrains.com/pycharm/">PyCharm</a>. They also have products for many other technologies but I&#8217;m not able to say how good are they.</p>
<p>Considering the average salaries for software developers it would be a big mistake to be cheap about the development tools you are using. When compared with free alternatives like <a href="http://www.eclipse.org/">Eclipse</a>, you should be able to have your ROI in less then a month, if not in a week.</p>
<p>No, I have no relation with JetBrains, other than having the opportunity to use few of their products in the last two years and trust me I&#8217;m an open-source enthusiast and I try to use open source tools whenever is possible,… ops better to say &#8220;whenever it makes sense&#8221;.</p>
<h2>Best issue tracker alive</h2>
<p>There is another product that got my interest, their issue tracker, <strong><a href="http://www.jetbrains.com/youtrack/">YouTrack</a></strong>, and I think this is probably the issue tracker with best user experience I ever encountered, and trust me I used over a dozen of trackers over time.</p>
<p>If you considered JIRA a good issue tracker, let me tell know it is not, personally I call it &#8220;<em>goJIRA</em>&#8220;, just another too big, slow and hard to use issue tracker, similar with <a href="http://www.bugzilla.org/">Bugzilla</a>, but commercial. I do know only two products made by Atlasssian, but both of them do provide a really bad user experience, JIRA and <a href="http://stackoverflow.com/questions/170352/confluence-experiences">Confluence</a>.</p>
<p>The only thing I&#8217;m not sure about YouTrack, is its scalability, does it scale for millions of bugs and thousands of products? BTW, if you want to taste the look and feel of this tracker check their <a href="http://youtrack.jetbrains.net/dashboard">own instance</a>, user for their products.</p>
<h2>What is the secret recipe used by JetBrains?</h2>
<p>I always asked myself what makes the difference between a company that makes the best products from one that makes average products? It&#8217;s clear that it&#8217;s not about money because SUN with NetBeans or IBM with Eclipse had considerably more to invest in their products. I think that the secret is the <strong>product management</strong> combined with the adaptability of a small company.</p>
<h2>Future acquisition of JetBrains?</h2>
<p>I think that during the next 12 months or so, JetBrains is going to be bought by a big player probably Oracle or Google. Let&#8217;s see if I&#8217;m right or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/who-is-going-to-buy-jetbrains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iOS and Romanian language</title>
		<link>http://blog.i18n.ro/ios-and-romanian-language/</link>
		<comments>http://blog.i18n.ro/ios-and-romanian-language/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 09:58:43 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[i18n]]></category>
		<category><![CDATA[Input]]></category>
		<category><![CDATA[Output]]></category>
		<category><![CDATA[Readiness]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[Romanian]]></category>
		<category><![CDATA[voice]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/?p=531</guid>
		<description><![CDATA[First I have to confess that I&#8217;m pleased about the amount of attention Apple gave to supporting Romanian language on iOS 4.3 (iPhone/iPad/iPod). I remember reporting few bugs to them regarding Romanian support and I was glad to discover that &#8230; <a href="http://blog.i18n.ro/ios-and-romanian-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First I have to confess that I&#8217;m pleased about the amount of attention Apple gave to supporting Romanian language on iOS 4.3 (iPhone/iPad/iPod). I remember reporting few bugs to them regarding Romanian support and I was glad to discover that they were addressed in the next releases. It looks that they do care about the feedback they get, even if you do not have any kind of feedback regarding how they deal with a reported bug.<span id="more-531"></span></p>
<p>Still with current iOS there are few problems with the <strong>Voice Control</strong> and romanian diacritics. Romanian language has only a small number of diacritical characters but it looks that speaking fails to recognize them.</p>
<p>English voice recognition and voice over used in iOS could be easily be tuned to support romanian diacritics.</p>
<ul>
<li>ș &#8211; reads like <span style="color: #888888;">sh</span> in shut</li>
<li>ț &#8211; reads like <span style="color: #888888;">zz</span> in pizza</li>
<li>ă &#8211; reads like <span style="color: #888888;">a</span> in above</li>
<li>î &#8211; <a href="http://en.wikipedia.org/wiki/Close_central_unrounded_vowel">close central unrounded vowel</a></li>
<li>â &#8211; reads the same as î</li>
</ul>
<p>More details regarding phonetic reading of romanian characters can be found on <a href="http://en.wikipedia.org/wiki/Romanian_alphabet">wikipedia</a>.</p>
<p>In addition to the voice issues listed about there is another very annoying bug inside the Romanian keyboard dictionary. Inside the default dictionary there is the word &#8220;<strong>La</strong>&#8220;, with the first letter uppercase. This is an extremely common work in Romanian and the auto-correct function will try to replace every &#8220;la&#8221; with &#8220;La&#8221;, making typing very hard. Probably this is one of the reasons why most romanians are disabling the auto-correct functionality.</p>
<p>I contacted Apple again and I hope they will solve these bugs soon. And from my Romanian friends, I expect some replies with their experience and maybe some likes on Facebook if they encountered the same problems.</p>
<p><strong>Update #1</strong> &#8211; Also I have to mention the the Romanian keyboard lacks the Romanian quotation marks:</p>
<ul>
<li>U+201E , U+201d &#8211; first level</li>
<li>U+00AB , U+00BB  - second level</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/ios-and-romanian-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Office spellchecker failing to detect language</title>
		<link>http://blog.i18n.ro/microsoft-office-spellchecker-failing-to-detect-language/</link>
		<comments>http://blog.i18n.ro/microsoft-office-spellchecker-failing-to-detect-language/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 06:49:22 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/2011/02/08/microsoft-office-spellchecker-failing-to-detect-language/</guid>
		<description><![CDATA[I was surprised to find out that Microsoft Office spellchecker is failing to detect the language even if this is damn simple because it should be based on the keyboard language set on the system. Take a look at my &#8230; <a href="http://blog.i18n.ro/microsoft-office-spellchecker-failing-to-detect-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was surprised to find out that Microsoft Office spellchecker is failing to detect the language even if this is damn simple because it should be based on the keyboard language set on the system.
</p>
<p><span id="more-512"></span>
<p>Take a look at my configuration below, it is supposed to spellcheck in English when you are in &#8220;EN&#8221; mode but instead it always using Romanian.
</p>
<p>Worse, even if you try to disable the auto language detection and set the default to English it will still use Romanian. Sad, probably this is happening when you do the QA without people specially trained for internationalization.
</p>
<p><img src="http://blog.i18n.ro/files/2011/02/020811_0649_MicrosoftOf1.png" alt=""/>
	</p>
<p>
 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/microsoft-office-spellchecker-failing-to-detect-language/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apple failing to support high-DPI on iTunes</title>
		<link>http://blog.i18n.ro/apple-failing-to-support-high-dpi-on-itunes/</link>
		<comments>http://blog.i18n.ro/apple-failing-to-support-high-dpi-on-itunes/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 11:08:47 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Output]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[dpi]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/2010/11/02/apple-failing-to-support-high-dpi-on-itunes/</guid>
		<description><![CDATA[The irony is that Apple who created the smartphone with the greatest DPI ever, is unable to add high DPI support for their iTunes application. Here is how the latest iTunes 10 application under Windows 7 on a computer that &#8230; <a href="http://blog.i18n.ro/apple-failing-to-support-high-dpi-on-itunes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The irony is that Apple who created the smartphone with the greatest DPI ever, is unable to add high DPI support for their iTunes application.</p>
<p>Here is how the latest iTunes 10 application under Windows 7 on a computer that has the DPI setting set to 150% (&#8220;Larger&#8221;) also known as 144ppi.<span id="more-496"></span></p>
<p><img src="http://blog.i18n.ro/files/2010/11/110210_1108_Applefailin1.png" alt="" /></p>
<p>Steve, what kind of QA is the iTunes team doing? As you can see this is not a minor/cosmetic issue anymore.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/apple-failing-to-support-high-dpi-on-itunes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to measure mutilanguage support of a CMS solution</title>
		<link>http://blog.i18n.ro/how-to-measure-mutilanguage-support-of-a-cms-solution/</link>
		<comments>http://blog.i18n.ro/how-to-measure-mutilanguage-support-of-a-cms-solution/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 13:48:18 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[i18n]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cms]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/?p=468</guid>
		<description><![CDATA[Most CMS solutions are marketing their multi-language support but in reality few of them do have good support for creating and maintaining multi-language websites. In order to give a real measurement regarding the support for multi-language I created a multi-language &#8230; <a href="http://blog.i18n.ro/how-to-measure-mutilanguage-support-of-a-cms-solution/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Most CMS solutions are marketing their multi-language support but in reality few of them do have good support for creating and maintaining multi-language websites.<span id="more-468"></span></p>
<p>In order to give a real measurement regarding the support for multi-language I created a multi-language support-scorecard.</p>
<p>To properly evaluate a solution you need to find the answer to the following questions. Most likely you will have to install it and play with in in order to find the answers.</p>
<h3>Can you declare the language of a specific page?</h3>
<p>Any CMS should allow you to declare the language of a page.</p>
<h3>Can you define different menus for each language?</h3>
<p>The navigation menu is not just another thing that needs to be translated, in many cases it will need to be customized for the target audience, meaning that it may be very different from the original one.</p>
<h3>Can you link a page from another language?</h3>
<p>In the real word you will never achieve a 100% translation and you will have to link to pages that are available only in other languages.</p>
<h3>When a page is translated are the links to it updated?</h3>
<p>This should be explained, a website is never fully translated and is normal to insert links to pages in another language if these are not translated. A smart CMS will update the links if you add a translation later.</p>
<p>Later, some translated pages may become obsolete and you may want or need to remove them. A smart CMS will redirect the links to the same page in other language if the original translation was removed.</p>
<h3>Are the links updated inside the articles?</h3>
<p>For SEO purposes you want to update links inside the pages instead of doing redirects. Anyway even the redirects are much better than 404s.</p>
<h3>Can you easily insert links?</h3>
<p>It is something very common to insert links inside pages. The CMS must allow you to do this without requiring you to know the URL of the target page. Still listing all the pages in all available languages can easily became an issue even for small sites. In order to simplify your work the system should present you a list that will contain all pages translated to current language *and* all pages not available in current language. This means that if you have a page that is already translated in your language you will not see its translations listed again.</p>
<h3>Can you customize the URL, html tile or attributes?</h3>
<p>Probably these features do not require any explanation.</p>
<h3>Does it generate properly ASCII text for the URLs?</h3>
<p>Unicode URLs are supported now by most browsers but simple ASCII ones are preferred for most languages, especially for those that are using the Latin alphabet and where it is easier to type them without diacritics. The CMS should be able to convert the Unicode page title into a simplified version that does include Unicode characters.</p>
<h2>Scoring example</h2>
<p>For the moment I created a <a href="https://spreadsheets.google.com/pub?key=0AuAbgmBsosYRdGNFNHRqWldvSmpqWDFwVU05ODQxOUE&amp;hl=en&amp;single=true&amp;gid=0&amp;output=html" target="_blank">scorecard as a Google Document</a> and computed a score for <a href="http://wordpress.org">WordPress </a>+ <a href="http://wpml.org">WPML</a> + <a href="http://wordpress.org/extend/plugins/easy-page-link-for-wpml/">EasyLink WPML</a> plugins. I&#8217;m sure that there are people ready to say the WordPress is not quite a CMS and I can tell them that are many declared CMS solutions on the web that are less a CMS than WordPress.</p>
<p><span style="color: #008000;">Update:</span> Included information about <a href="http://www.spip.net/en">SPIP</a> based on feedback received.</p>
<p>[gdocs st_id=0AuAbgmBsosYRdGNFNHRqWldvSmpqWDFwVU05ODQxOUE wt_id=od6 type='spreadsheet']</p>
<p>With your help I will try to add solutions to the table. The first ones that I&#8217;m thinking about are <a href="http://drupal.org/">Drupal </a>and <a href="http://www.joomla.org/">Joomla </a>so if you do have multi-language experience with them please send me your opinion and I will extend the article.</p>
<p>This <strong>scoring card</strong> is at its first version so if you have any comments, hints or observations please send them, I will be happy to include them in the next version. Also if you want I can add you as an editor to the google spreadsheet with the scorcard in order to be able to add scoring for other solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/how-to-measure-mutilanguage-support-of-a-cms-solution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UTC is obsolete, welcome to PST, the „real” standard</title>
		<link>http://blog.i18n.ro/utc-is-obsolete-welcome-to-pst-the-%e2%80%9ereal%e2%80%9d-standard/</link>
		<comments>http://blog.i18n.ro/utc-is-obsolete-welcome-to-pst-the-%e2%80%9ereal%e2%80%9d-standard/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 09:26:42 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[Cultural differences]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/2010/10/11/utc-is-obsolete-welcome-to-pst-the-%e2%80%9ereal%e2%80%9d-standard/</guid>
		<description><![CDATA[As you can imagine the title is now so true but the story is that at work I received some request to change the timezone of a server running hudson in order to make it easier for (some) people to &#8230; <a href="http://blog.i18n.ro/utc-is-obsolete-welcome-to-pst-the-%e2%80%9ereal%e2%80%9d-standard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As you can imagine the title is now so true but the story is that at work I received some request to change the timezone of a server running <a href="http://hudson-ci.org/">hudson</a> in order to make it easier for (some) people to read and edit the time of their scheduled jobs.</p>
<p>Hudson does not support different timezones by user so I needed a compromise and the initial one was to use UTC because it&#8217;s…. universal.</p>
<p>Even if this server is used by people from 4 or 5 timezones from all over the world, I had to give up and change it to PST because the company has its headquarters in PST.</p>
<p>Have you observed that all the software is configured to use PST as default time?</p>
<p>I will tell you why: just because most software companies do have their headquarters in California.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/utc-is-obsolete-welcome-to-pst-the-%e2%80%9ereal%e2%80%9d-standard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things you really should be knowing about Perforce</title>
		<link>http://blog.i18n.ro/things-you-really-should-be-knowing-about-perforce/</link>
		<comments>http://blog.i18n.ro/things-you-really-should-be-knowing-about-perforce/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 10:59:01 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[perforce]]></category>
		<category><![CDATA[scm]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/?p=444</guid>
		<description><![CDATA[My 3 years experience with Perforce was not one of the best ones and I decided to share some things that you may not know about Perforce, ones that you are not going to find in any marketing document. Limited &#8230; <a href="http://blog.i18n.ro/things-you-really-should-be-knowing-about-perforce/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My 3 years experience with Perforce was not one of the best ones and I decided to share some things that you may not know about Perforce, ones that you are not going to find in any marketing document.<span id="more-444"></span><br />
<h2>Limited support for ignoring files or directories</h2>
<p>If you used Subversion, Git or others probably you are already used to mark some files or directories to be ignored. On these systems ignore patterns are stored on the server and they do apply for all the users. This does make perfectly sense for me, if you want to stop your SCM from looking for .pyc files or temp directories you add the rule and everybody will benefit from it.</p>
<p>Now if you try to obtain the same behavior in Perforce you will be surprised that what their support for ignoring files is not what you would expect.</p>
<p>First, you can define the ignoring patterns in your clientspec, so they will be available only to this clientspec, meaning that you will have to multiply them in all your clientspecs. Sharing them with others? &#8230; yep copy/paste.</p>
<p>Now lets try to have a deeper look on how they really work:</p>
<ul>
<li>partially supported only in GUI (p4v) &#8211; for example they will continue to show in file tree and even when you use the Reconcile Offline Files. In fact the only place where they are working is on Advanced Reconcile &#8211; a place that you probably do not need/want to use.</li>
<li>forking? &#8230;. you just have to recreate the ignore pattern in the view.</li>
</ul>
<p>Now imagine that I do work a lot with Python and that entire source tree is full with temporary .pyc files.</p>
<h3>Mapping the same repository file/directory to multiple locations on disk</h3>
<p>Nope, this is not something you can do &#8211; you can try but it will fail to work properly. Trust me, it will save you precious time.</p>
<h3>Having workspaces mapped to the same directory</h3>
<p>If you do not want troubles, do not forget to keep each workspace (clientspec) in its own directory and be sure that these directories do not overlap, even partially.</p>
<h3>Running as root under OS X, not quite</h3>
<p>The login is not working well on OS X if you run perforce as root, this is happening because the system does not have HOME environment variable for this user. Do you what what was the response from support: why do you run Perforce as root? WTF!</p>
<p>I don&#8217;t want to imply that perforce support in not good, in fact I have to confess that they are very well prepared and give well documented answers and really fast. In fact the above case was the only mistake they made.</p>
<p>Workspaces (clientspecs) that are too hard to maintain</p>
<p>Do you have a big projects with tens of developers if not hundreds, and you change the project structure &#8211; now each developer will have to update all his workspaces to match the new one.</p>
<p>It was so hard for Perforce to add something like an @import to the clientspec, so it could just base a workspace on another one?</p>
<p>Now another &#8220;cool&#8221;, feature is that it is not possible just to copy and paste the view definition from one workspace to another because you will have to do some find-n-replace on it to replace the original clientspec name from each line with your name.</p>
<p>It&#8217;s true that there is an option to clone a clientspec, but this will create a new clientspec and you will still be required to move your customizations to it.</p>
<h3>Personal conclusions</h3>
<p>First, I want to say that even with the problems presented above, Perforce is a very reliable tool and I am not aware about any open-source solution that would be able to deal with repositories of hundreds of gigabytes and a changelist history of 6 digits.</p>
<p>If you know other workarounds for Perforce let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/things-you-really-should-be-knowing-about-perforce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complete guide for installing Hudson CI on OS X 10.6</title>
		<link>http://blog.i18n.ro/complete-guide-for-installing-hudson-ci-on-os-x-10-6/</link>
		<comments>http://blog.i18n.ro/complete-guide-for-installing-hudson-ci-on-os-x-10-6/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 11:02:23 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/?p=407</guid>
		<description><![CDATA[If you are one of the less lucky ones that do have to use OS X instead of Linux for installing a Hudson CI you could follow this guide because most of other resources I found were incomplete or obsolete, &#8230; <a href="http://blog.i18n.ro/complete-guide-for-installing-hudson-ci-on-os-x-10-6/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you are one of the less lucky ones that do have to use OS X instead of Linux for installing a <a href="http://hudson-ci.org">Hudson CI</a> you could follow this guide because most of other resources I found were incomplete or obsolete, even the ones referring to tomcat.  So here is my small contribution to the community.<span id="more-407"></span></p>
<h2>Installing Tomcat</h2>
<p>Here is the quick guide:</p>
<ul>
<li>install <a rel="nofollow" href="http://www.macports.org/">macports</a>
<ul>
<li><code>suport port upgrade</code></li>
<li><code>sudo port upgrade outdated</code>.</li>
</ul>
</li>
<li><code>sudo port install tomcat6</code>, or if you want other version check <code>port list|grep tomcat</code></li>
<li>config is now at: <code>/opt/local/share/java/tomcat6/conf</code></li>
<li>startup script: <code>/opt/local/share/java/tomcat6/bin/tomcatctl</code></li>
</ul>
<pre><span style="font-family: Georgia, 'Bitstream Charter', serif; color: #444444;"><span style="line-height: 22px;">cp /opt/local/share/java/tomcat6/conf/tomcat-users.xml.sample /opt/local/share/java/tomcat6/conf/tomcat-users.xml
</span></span><span style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px; font-size: 16px;">nano /opt/local/share/java/tomcat6/conf/tomcat-users.xml</span></pre>
<p>Activate at least the tomcat user and make it a manager.</p>
<p>For running tomcat as a <strong>daemon</strong> on port 8080 but enable also port 80 by using a firewall redirection edit <code>/opt/local/share/java/tomcat6/conf/server.xml</code> and add <code>proxyport="80" URIEncoding="UTF-8"</code> inside <code>&lt;Connector .../&gt;</code>.</p>
<p>For <strong>forwarding port</strong> 80 to 8080 run this line and add it do <code>/bin/catalina.sh</code>:</p>
<pre><code>ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
</code></pre>
<p>Set proper <strong>memory limits</strong> for Java machine running tomcat or you may be in trouble later. Inside<code>/opt/local/share/java/tomcat6/conf/local.env</code></p>
<pre><code>export JAVA_JVM_VERSION=CurrentJDK
export JAVA_OPTS="-Xmx3000M -Xms3000M -Djava.awt.headless=true -Duser.timezone=UTC"
</code></pre>
<p>In my example, I allocated ~3Gb or RAM but you can adapt this, anyway don&#8217;t put less than 1GB if you are running <code>hudson</code> inside tomcat.</p>
<h1>Running as a service (daemon)</h1>
<p>Run <code>nano /Library/LaunchDaemons/org.apache.tomcat.plist</code> and paste the code below:</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;Disabled&lt;/key&gt;
    &lt;false/&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;org.apache.tomcat&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
            &lt;string&gt;/opt/local/share/java/tomcat6/bin/catalina.sh&lt;/string&gt;
            &lt;string&gt;run&lt;/string&gt;
    &lt;/array&gt;
    &lt;key&gt;RunAtLoad&lt;/key&gt;
    &lt;true/&gt;
&lt;/dict&gt;
&lt;/plist&gt;
</code></pre>
<p>Check that launchd detected your new daemon, if not reboot <img src='http://blog.i18n.ro/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<pre><code>launchctl list|grep tomcat
</code></pre>
<p>Start tomcat manually.</p>
<pre><code>launchctl start org.apache.tomcat
</code></pre>
<p>If the status is something else than <code>-</code>, you have a problem and you should investigate it: <code>launchctl log level debug</code> and check <code>/var/log/system.log</code>.</p>
<p>Adding hudson to tomcat<br />
This is the easy part, just do:</p>
<pre>
<pre><code>cd /opt/local/share/java/tomcat6/webapps
wget http://hudson-ci.org/latest/hudson.war
chown _www:_www hudson.war</code></pre>
</pre>
<p>Now go to <a href="http://localhost/manager/">http://localhost/manager/</a> and start hudson.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/complete-guide-for-installing-hudson-ci-on-os-x-10-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Statistics regarding localized text</title>
		<link>http://blog.i18n.ro/statistics-regarding-localized-text/</link>
		<comments>http://blog.i18n.ro/statistics-regarding-localized-text/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 09:41:58 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[i18n]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[Translating]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/statistics-regarding-localized-text/</guid>
		<description><![CDATA[I&#8217;ve always thought it&#8217;s hard to find statistical information regarding software localization, so I decided to gather some of them in one place. Here are some data that I collected over time regarding localized text. I hope you may find &#8230; <a href="http://blog.i18n.ro/statistics-regarding-localized-text/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always thought it&#8217;s hard to find statistical information regarding software localization, so I decided to gather some of them in one place. Here are some data that I collected over time regarding localized text. I hope you may find them useful.<span id="more-370"></span></p>
<p>These are for English and are referring to application strings, so it does not apply for documentation or marketing materials:</p>
<ul>
<li>Average words/string: 3.6 words</li>
<li>Average characters/string: 22 characters</li>
<li>Most characters/strings: &lt;1000</li>
</ul>
<h2>Text size expansion when translated</h2>
<p>These data were published by IBM, in their National Language Design Guide Volume 1:</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 401px;"></col>
<col style="width: 401px;"></col>
</colgroup>
<tbody>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border: solid 0.5pt;">Characters in English</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">Average expansion</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">&lt;10</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">200-300%</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">11-20</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">180-200%</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">21-30</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">160-280%</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">31-50</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">140-160%</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">51-70</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">130-140%</td>
</tr>
<tr>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">Over 70</td>
<td style="padding-left: 9px; padding-right: 9px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">150%</td>
</tr>
</tbody>
</table>
</div>
<p>You may find this very useful for UI strings because it allows you to do pseudo-localization with strings length expanding, in order to evaluate how your interface will behave.</p>
<p>I encountered the biggest expansions on Russian language, followed by French. If you rely on word-wrap, remember, that there are languages with very long strings, German being one of them.</p>
<h2>Translation metrics</h2>
<ul>
<li>IT/documentation &#8211; ~2000-2500 words/day  (considering 8h workday)</li>
<li>Law/licensing – 50% speed decrease</li>
<li>On easy text you can boost the productivity a lot, reaching even 5000 words/day.</li>
</ul>
<h6>Resources</h6>
<ul>
<li><a href="http://www.w3.org/International/articles/article-text-size">http://www.w3.org/International/articles/article-text-size</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/statistics-regarding-localized-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Newbie guide to Unicode</title>
		<link>http://blog.i18n.ro/newbie-guide-to-unicode/</link>
		<comments>http://blog.i18n.ro/newbie-guide-to-unicode/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 09:26:39 +0000</pubDate>
		<dc:creator>sorin</dc:creator>
				<category><![CDATA[i18n]]></category>
		<category><![CDATA[encodings]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://blog.i18n.ro/newbie-guide-to-unicode/</guid>
		<description><![CDATA[I compiled a small list of things that any developer should know about Unicode. Unicode can represent any characters – Yes, at least for the usual mortals Same text can have different representations on Unicode &#8211; This is sad especially &#8230; <a href="http://blog.i18n.ro/newbie-guide-to-unicode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I compiled a small list of things that any developer should know about Unicode.<span id="more-366"></span></p>
<ul>
<li><strong>Unicode can represent any characters</strong> – Yes, at least for the usual mortals <img src='http://blog.i18n.ro/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
<li><strong>Same text can have different representations on Unicode</strong> &#8211; This is sad especially if you want to implement passwords or search Unicode text.</li>
<li><strong>Microsoft wrongly calls their UTF16-BE Unicode encoding just Unicode</strong> &#8211; Just remember that Unicode strings under windows (wchar *) are using UTF16-BE. &#8211; Also remember that the support for UTF-8 is limited under Window. You cannot use UTF-8 as a codepage on console or GUI applications so the only Unicode way is to use UTF16-BE. This does not mean that you cannot use it internally but when it comes to calling APIs or outputting to console you will be forced to convert it.</li>
<li>
<div><strong>Unicode is not an encoding or a code page</strong> &#8211; Unicode is a <strong>character-set</strong>, that can be encoded using one of the 4/6 existing Unicode encodings:</div>
<ul>
<li>UTF-7 – probably you can ignore its existence</li>
<li>
<div><strong>UTF-8</strong> – The one that I prefer considering:</div>
<ul>
<li>standard for most internet related protocols and becoming more popular</li>
<li>minimize required storing space for most languages, except <a href="http://en.wikipedia.org/wiki/CJK_characters">CJK</a> ones.</li>
<li>default storage encoding on Unix/Linux world (in memory they usually use UTF-32 to speedup processing)</li>
<li>does have only one binary representation</li>
</ul>
</li>
<li>UTF-16 – what Windows, OS X and Java are using internally. It comes in two variants LE and BE based on <a href="http://en.wikipedia.org/wiki/Endianness">endianness</a> of the platform. Usage of this encoding is a good compromise between speed and space but when it comes to disk storage or communication UTF-8 could be better because it does not depends on the endianess.</li>
<li>UTF-32 (also having BE/LE flavors based on the endianness) – good for processing speed but not for storage.</li>
</ul>
</li>
<li>Do not try to do more Unicode text processing yourself (at least not more than concatenations). You should use what your platform provides you or the <a href="http://site.icu-project.org/">ICU</a> do to do other processing like comparison, sorting, searching or replacing text because these operations are very tricky and probably you have better things to do.</li>
<li>
<div>Remember than in Unicode:</div>
<ul>
<li>two semantically identically strings can have a different binary representation even on the same encoding</li>
<li>sorting is dependent on user context (locale) and not only the strings being sorted</li>
<li>regarding uppercase/lowercase read <a href="http://www.unicode.org/faq/casemap_charprop.html">http://www.unicode.org/faq/casemap_charprop.html</a></li>
</ul>
</li>
</ul>
<h2>Additional resources</h2>
<p>These are few resources that you should read if you are new to Unicode:</p>
<ul>
<li><a href="http://unicode.org/standard/WhatIsUnicode.html">http://unicode.org/standard/WhatIsUnicode.html</a></li>
<li><a href="http://www.unicode.org/faq/">http://www.unicode.org/faq/</a> &#8211; read all links from here, it is a must</li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd374081(VS.85).aspx">http://msdn.microsoft.com/en-us/library/dd374081(VS.85).aspx</a></li>
<li><a href="http://www.egenix.com/www2002/python/Unicode-EPC2002-Talk.pdf">http://www.egenix.com/www2002/python/Unicode-EPC2002-Talk.pdf</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.i18n.ro/newbie-guide-to-unicode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc

Served from: blog.i18n.ro @ 2012-02-07 16:26:52 -->
