<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Victor Stanciu</title>
	
	<link>http://www.victorstanciu.ro</link>
	<description>Web Developer, Geek</description>
	<lastBuildDate>Tue, 17 Jan 2012 11:18:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/VictorStanciu" /><feedburner:info uri="victorstanciu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://www.victorstanciu.ro/</link><url>http://www.victorstanciu.ro/vic.png</url><title>Victor Stanciu</title></image><item>
		<title>[RO] Normele de venit pe 2012</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/ztACpSRKX08/</link>
		<comments>http://www.victorstanciu.ro/normele-de-venit-pe-2012/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 11:17:14 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[PFA]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=749</guid>
		<description><![CDATA[S-au publicat normele de venit pe 2012. In momentul asta mai sunt cateva judete pentru care nu s-au publicat inca, dar probabil ca lista va fi completata zilele astea si cu restul. Dupa cum probabil ati auzit pana acum, marea schimbare in ce priveste normele de venit pe anul acesta e ca s-au scos aproape [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-3221195854725335";
/* PFA victorstanciu.ro post */
google_ad_slot = "1644426560";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>S-au publicat <a href="http://static.anaf.ro/static/10/Anaf/AsitentaContribuabili_r/Normevenit2012/Norme_venit2012.htm">normele de venit pe 2012</a>. In momentul asta mai sunt cateva judete pentru care nu s-au publicat inca, dar probabil ca lista va fi completata zilele astea si cu restul.</p>
<p>Dupa cum probabil ati auzit pana acum, marea schimbare in ce priveste normele de venit pe anul acesta e ca s-au scos aproape toate normele pentru CAEN-urile din <strong>IT</strong>, mai putin <strong>6202</strong> (activitati de consultanta in tehnologia informatiei) si <strong>6203</strong> (activitati de gestiune si exploatare a mijloacelor de calcul). Asta inseamna ca cei care au orice alt CAEN in afara de cele doua au de acum doua optiuni:</p>
<ol>
<li>Trecerea la <a href="http://www.victorstanciu.ro/despre-pfa-partea-2-impozitare/">sistemul real de impozitare</a>. In acest caz va trebui sa mergeti sa depuneti declaratia de venituri anticipate pe anul acesta. De asemenea, inseamna tinut contabilitate in partida simpla, completat registrul jurnal de incasari si plati, etc.</li>
<li>Schimbarea CAEN-ului actual in unul din cele doua de mai sus. Aici ar fi de notat faptul ca de acum orice nou contract sa fie facut pe noua activitate, ceea ce ar putea pune probleme unora. Spre exemplu, ma gandesc ca un contract de consultanta este posibil sa nu convina oricarui client, pentru ca practic nu ar mai exista obligativitatea livrarii de cod sursa sau alte materiale.<br />
Schimbarea de CAEN se face la ONRC. Cel mai bine sunati la sediul ONRC din judetul vostru pentru a intreba exact ce acte va trebuie pentru schimbarea CAEN-ului, cat dureaza, etc.</li>
</ol>
<p>PS: daca cumva stirea ca s-au scos normele de venit in IT te scandalizeaza, <a href="https://nufihater.wordpress.com/2012/01/12/despre-impozite-in-it/">am scris si pentru tine ceva</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ztACpSRKX08:2MM71q7hlqI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ztACpSRKX08:2MM71q7hlqI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ztACpSRKX08:2MM71q7hlqI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ztACpSRKX08:2MM71q7hlqI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ztACpSRKX08:2MM71q7hlqI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/ztACpSRKX08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/normele-de-venit-pe-2012/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/normele-de-venit-pe-2012/</feedburner:origLink></item>
		<item>
		<title>Export new and changed files only using TortoiseSVN</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/CX8OTfJnMs0/</link>
		<comments>http://www.victorstanciu.ro/export-new-and-changed-files-only-using-tortoisesvn/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 12:34:33 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[TortoiseSVN]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=737</guid>
		<description><![CDATA[I was forced to do some work under Windows these days, and when it came time to deploy the files I changed to the FTP server, I had to figure out how to use TortoiseSVN in order to only export the files that have been created or updated since the last deployment. As it turns [...]]]></description>
			<content:encoded><![CDATA[<p>I was forced to do some work under Windows these days, and when it came time to deploy the files I changed to the FTP server, I had to figure out how to use TortoiseSVN in order to only export the files that have been created or updated since the last deployment. As it turns out, it&#8217;s pretty easy:</p>
<ol>
<li>First, bring up the TortoiseSVN menu by right clicking on your working copy.</li>
<li>From the menu, choose &#8220;Show Log&#8221;.</li>
<li>Holding down the CTRL key, select the two revisions you want to compare (like <a href="http://www.victorstanciu.ro/wp-content/uploads/2011/06/svn-log.png" target="_blank">this</a>).</li>
<li>Right click on one of the two revisions and select the <strong>Compare revisions</strong> option.</li>
<li>In the file list that appears, select all the entries (CTRL+A), right click on them and select the <strong>Export selection to&#8230;</strong> option. The files will be exported with the right directory structure, so all you have to do is upload them to the server.</li>
</ol>
<p>Unfortunately, this method only works for new files or files that have been changed. The files that have been removed will have to be <strong>manually deleted</strong> from the server too.</p>
<p>There are, of course, tons of better tools to deploy files to FTP servers that can also handle removed files (<a title="Springloops" href="http://www.springloops.com/v2?r=12962243349773247" target="_blank">Springloops</a> is my current favorite), but this is quick and easy way to do it when you don&#8217;t have a better solution on hand.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=CX8OTfJnMs0:RNFRJUNgFpg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=CX8OTfJnMs0:RNFRJUNgFpg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=CX8OTfJnMs0:RNFRJUNgFpg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=CX8OTfJnMs0:RNFRJUNgFpg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=CX8OTfJnMs0:RNFRJUNgFpg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/CX8OTfJnMs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/export-new-and-changed-files-only-using-tortoisesvn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/export-new-and-changed-files-only-using-tortoisesvn/</feedburner:origLink></item>
		<item>
		<title>Dynamically resizing the Shadowbox.js modal window</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/jEcLwakYGhU/</link>
		<comments>http://www.victorstanciu.ro/dynamically-resizing-the-shadowbox-js-modal-window/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 13:21:18 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[shadowbox]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=713</guid>
		<description><![CDATA[Shadowbox.js is an excellent modal window component capable of handling everything from iFrames to Flash videos to image galleries. However, and odd as it seems, the out-of-the-box solution doesn&#8217;t have a resize() method with which to resize the modal window via JavaScript. The reason you might want to manually resize the modal window is in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.shadowbox-js.com/index.html">Shadowbox.js</a> is an excellent modal window component capable of handling everything from iFrames to Flash videos to image galleries. However, and odd as it seems, the out-of-the-box solution doesn&#8217;t have a <strong>resize()</strong> method with which to resize the modal window via JavaScript. The reason you might want to manually resize the modal window is in case the content inside changes, for example in the case of IFrames. Fortunately, implementing such a method is quite easy.</p>
<p>First, download <a href="http://www.shadowbox-js.com/download.html" target="_blank">Shadowbox</a>. As of this version, the downloaded files are automatically <strong>minified</strong>, so in order to be able to properly add the needed code you will have to prettify the code, using a tool such as <a href="http://jsbeautifier.org/" target="_blank">http://jsbeautifier.org/</a>.</p>
<p>After you have prettified the code, scroll down right after the <strong>onWindowResize</strong> method, which should look something like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">k.<span style="color: #660066;">onWindowResize</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>P<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span>
    <span style="color: #009900;">&#125;</span>
    I<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> K <span style="color: #339933;">=</span> g.<span style="color: #660066;">player</span><span style="color: #339933;">,</span>
        S <span style="color: #339933;">=</span> R<span style="color: #009900;">&#40;</span>K.<span style="color: #660066;">height</span><span style="color: #339933;">,</span> K.<span style="color: #660066;">width</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    t<span style="color: #009900;">&#40;</span>S.<span style="color: #660066;">width</span><span style="color: #339933;">,</span> S.<span style="color: #660066;">left</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    E<span style="color: #009900;">&#40;</span>S.<span style="color: #660066;">innerHeight</span><span style="color: #339933;">,</span> S.<span style="color: #660066;">top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>K.<span style="color: #660066;">onWindowResize</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        K.<span style="color: #660066;">onWindowResize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>The reason I am including the <strong>onWindowResize</strong> method is because, the code being packed, the variable names might change in subsequent versions of Shadowbox, so you will have to take a look at an existing function. Now, right below the <strong>onWindowResize</strong> method, add the following code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">k.<span style="color: #660066;">dynamicResize</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>w<span style="color: #339933;">,</span> h<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>P<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span>
    <span style="color: #009900;">&#125;</span>
    I<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    g.<span style="color: #660066;">player</span>.<span style="color: #660066;">width</span> <span style="color: #339933;">=</span> w<span style="color: #339933;">;</span>
    g.<span style="color: #660066;">player</span>.<span style="color: #660066;">height</span> <span style="color: #339933;">=</span> h<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> K <span style="color: #339933;">=</span> g.<span style="color: #660066;">player</span><span style="color: #339933;">,</span>
        S <span style="color: #339933;">=</span> R<span style="color: #009900;">&#40;</span>K.<span style="color: #660066;">height</span><span style="color: #339933;">,</span> K.<span style="color: #660066;">width</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    t<span style="color: #009900;">&#40;</span>S.<span style="color: #660066;">width</span><span style="color: #339933;">,</span> S.<span style="color: #660066;">left</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    E<span style="color: #009900;">&#40;</span>S.<span style="color: #660066;">innerHeight</span><span style="color: #339933;">,</span> S.<span style="color: #660066;">top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>K.<span style="color: #660066;">onWindowResize</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        K.<span style="color: #660066;">onWindowResize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Notice that there are only three lines that differ between the two methods. After adding this method (and perhaps minifying the code again), you can easily resize the modal like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">Shadowbox.<span style="color: #660066;">skin</span>.<span style="color: #660066;">dynamicResize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">600</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Or, if you want to do it from inside the iframe loaded within the modal:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">parent</span>.<span style="color: #660066;">Shadowbox</span>.<span style="color: #660066;">skin</span>.<span style="color: #660066;">dynamicResize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">600</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Note that this method <strong>does not</strong> resize the window beyond the viewport dimensions. It will still be scaled down if it exceeds the viewport&#8217;s width or height.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=jEcLwakYGhU:fOik6N6L9fo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=jEcLwakYGhU:fOik6N6L9fo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=jEcLwakYGhU:fOik6N6L9fo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=jEcLwakYGhU:fOik6N6L9fo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=jEcLwakYGhU:fOik6N6L9fo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/jEcLwakYGhU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/dynamically-resizing-the-shadowbox-js-modal-window/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/dynamically-resizing-the-shadowbox-js-modal-window/</feedburner:origLink></item>
		<item>
		<title>The Pomodoro Technique – 6 months later</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/EYn_jhF0pqo/</link>
		<comments>http://www.victorstanciu.ro/the-pomodoro-technique-6-months-later/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 13:42:04 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Lifehacks]]></category>
		<category><![CDATA[pomodoro]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=648</guid>
		<description><![CDATA[6 months ago I decided to try out the Pomodoro Technique, so it&#8217;s about time to document my findings. First of all, I cannot image going back to the way I used to work before. It seems too chaotic and disorganized now that I got used to the mechanical precision of the technique. Some things [...]]]></description>
			<content:encoded><![CDATA[<p><a class="fullimg" title="Trying out The Pomodoro Technique" href="http://www.victorstanciu.ro/the-pomodoro-technique-6-months-later/"><img class="alignnone size-full wp-image-553" title="The Pomodoro Technique" src="http://www.victorstanciu.ro/wp-content/uploads/2010/06/pomodoro.png" alt="The Pomodoro Technique" width="474" height="160" /></a></p>
<p><a href="http://www.victorstanciu.ro/trying-out-the-pomodoro-technique/">6 months ago</a> I decided to try out the Pomodoro Technique, so it&#8217;s about time to document my findings. First of all, I cannot image going back to the way I used to work before. It seems too chaotic and disorganized now that I got used to the mechanical precision of the technique.</p>
<p><strong>Some things I learned:</strong></p>
<ul>
<li>As I first suspected, the technique helped me accomplish a larger and more efficient quantity of work than before, with a lot less interruption, and a lot less room for procrastination. Not that you cannot procrastinate, it&#8217;s just that it&#8217;s more obvious to yourself when you do so. If you try reaching for <strong>12-13</strong> pomodoros on an average day, the days when you only manage to churn out <strong>6</strong> or <strong>8</strong> will stand out like a sore thumb.</li>
<li>I now think of tasks in terms of the number of pomodoros it takes to complete them, so it gave me an excellent unit of measurement for use in estimating.</li>
<li>Most of us don&#8217;t work in an isolated environment, and it&#8217;s sometimes hard not to be interrupted, and I think this problem only grows as the size of your organization increases.</li>
</ul>
<p><strong>Some tricks I used to adapt the technique to my own needs:</strong></p>
<ul>
<li>Starting a new pomodoro is sometimes hard. I now have the habit of leaving a small amount of work <strong>not done</strong> at the end of a pomodoro, and when the break is over this forces me to jump right in and finish what I started. It&#8217;s a lot easier to procrastinate when the code is stable and everything works.</li>
<li>I try and time my pomodoros with my lunch break. Therefore, I don&#8217;t take a larger break until after the 5th or 6th pomodoro, which usually ends just as we are all about to go out for lunch. Otherwise I would take my lunch break after just 2 pomodoros.</li>
<li>I started using the technique by scribbling the number of pomodoros that passed on a little piece of paper. I have, since then, advanced to using a daily to-do list, and marking each pomodoro on the row of it&#8217;s corresponding task. This serves a double purpose as, besides tracking the daily pomodoro count, it helps with the future estimation of similar tasks.</li>
</ul>
<p>Some of the adjustments I made (particularly the first one) directly <strong>contradict</strong> <a href="http://www.pomodorotechnique.com/products.html#pomodoropdf">the book</a>. I don&#8217;t think that&#8217;s too bad, because the entire technique&#8217;s role is to help me become more productive, and if I found a way to improve on this (for my particular case, of course), I think it&#8217;s OK. So go ahead and roll your own, as long as the changes you make boost your productivity. However, I strongly recommend sticking to the instructions in the book for the first few months, and then decide if it works for you out of the box or if it needs tweaks.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=EYn_jhF0pqo:JmlErQDfP40:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=EYn_jhF0pqo:JmlErQDfP40:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=EYn_jhF0pqo:JmlErQDfP40:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=EYn_jhF0pqo:JmlErQDfP40:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=EYn_jhF0pqo:JmlErQDfP40:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/EYn_jhF0pqo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/the-pomodoro-technique-6-months-later/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/the-pomodoro-technique-6-months-later/</feedburner:origLink></item>
		<item>
		<title>One does not simply Walk Into Mordor</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/XkRwkJ_GmkU/</link>
		<comments>http://www.victorstanciu.ro/one-does-not-simply-walk-into-mordor/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 12:26:24 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=642</guid>
		<description><![CDATA[I was meaning to start writing about books for some time now, but I also didn&#8217;t want to pollute this website with non-technical information so, for those of you that are interested, I will be massacring the English language on my other blog too, Walk Into Mordor. Happy reading!]]></description>
			<content:encoded><![CDATA[<p><a href="http://walkintomordor.com" class="fullimg"><img class="alignnone size-full wp-image-670" title="Walk into Mordor" src="http://www.victorstanciu.ro/wp-content/uploads/2010/11/walk-into-mordor.png" alt="Walk into Mordor" width="474" height="160" /></a></p>
<p>I was meaning to start writing about books for some time now, but I also didn&#8217;t want to pollute this website with non-technical information so, for those of you that are interested, I will be massacring the English language on my other blog too, <a title="Walk Into Mordor" href="http://walkintomordor.com/">Walk Into Mordor</a>.</p>
<p>Happy reading!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=XkRwkJ_GmkU:2o0paCz-MbU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=XkRwkJ_GmkU:2o0paCz-MbU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=XkRwkJ_GmkU:2o0paCz-MbU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=XkRwkJ_GmkU:2o0paCz-MbU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=XkRwkJ_GmkU:2o0paCz-MbU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/XkRwkJ_GmkU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/one-does-not-simply-walk-into-mordor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/one-does-not-simply-walk-into-mordor/</feedburner:origLink></item>
		<item>
		<title>[RO] Un nou inceput (2)</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/M8200jmgpuk/</link>
		<comments>http://www.victorstanciu.ro/un-nou-inceput-2/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 19:21:23 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[data solutions]]></category>
		<category><![CDATA[hyperactive]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=593</guid>
		<description><![CDATA[Acum 2 ani si 6 luni porneam pe un nou drum. Acum a venit vremea pentru inca un salt in fata. Am decis sa parasesc HyperActive. De acum incolo titlul meu (pe langa &#8220;Comandant Suprem al Fortelor Imperiale&#8220;) este &#8220;Programator la Data Solutions&#8220;. De ce? Pe scurt: pentru a programa. Pe lung: am inceput treaba [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.victorstanciu.ro/un-nou-inceput/">Acum 2 ani si 6 luni</a> porneam pe un nou drum. Acum a venit vremea pentru inca un salt in fata. Am decis sa parasesc <a href="http://hyperactive.ro/">HyperActive</a>. </p>
<p>De acum incolo titlul meu (pe langa &#8220;<a href="http://en.wikipedia.org/wiki/Darth_vader">Comandant Suprem al Fortelor Imperiale</a>&#8220;) este &#8220;Programator la <a href="http://datasolutions.ro/">Data Solutions</a>&#8220;.</p>
<h2>De ce?</h2>
<p><strong>Pe scurt</strong>: pentru a programa.</p>
<p><strong>Pe lung</strong>: am inceput treaba la HyperActive ca web developer, si in aceasta perioada am invatat mult, am crescut mult, pana am ajuns in punctul in care ma simt gata sa urc inca o treapta, iar acea treapta o reprezinta lucrul pe software web si aplicatii intranet. Programare.</p>
<p>HyperActive are si va avea in continuare succes ca agentie interactiva, cu clienti si proiecte importante in domeniul advertising-ului si marketing-ului digital, iar eu personal le doresc tot binele din lume. Din pacate satisfactia mea interioara vine din alt tip de proiecte.</p>
<h2>Ce am realizat?</h2>
<p>Nici nu stiu de unde sa incep. </p>
<ul>
<li>Am dobandit foarte multe cunostinte tehnice, atat de programare cat si de administrare a unui server.</li>
<li>Am optimizat modul de organizare si deployment a proiectelor, pana in punctul in care orice membru al echipei poate face deploy cu incredere la ultima versiune a unui proiect din cateva click-uri.</li>
<li>Am fost avocatul descentralizarii si organizarii pe echipe de proiect self-managed.</li>
<li>Am cautat in permanenta cai de imbunatare, atat a codebase-ului cat si a metodelor si proceselor de lucru. Am si reusit de multe ori.</li>
<li>M-am dat pe reddit.com. Mult :D</li>
</ul>
<p>Toate astea datorita si impreuna cu partenerul meu de batut cap in cap in gasirea solutiilor, <a href="http://www.gabrielsolomon.ro/">Gabriel Solomon</a>.</p>
<h2>Regrete?</h2>
<p>Echipa. Fara discutii.</p>
<p>Poate mai important decat realizarile de mai sus, HyperActive mi-a dat ocazia sa beneficiez de sentimentul inaltator de a fi persoana la care colegii tai apeleaza cand au nevoie de ajutor sau cand sunt blocati.</p>
<p><a href="http://www.ovidiuboc.ro/">Ovidiu Boc</a> imi spunea mai demult ca satisfactia succesului colegilor tai, succes la care ai pus si tu umarul, o depaseste uneori pe cea a succesului personal. Avea dreptate.</p>
<h2>Ce urmeaza?</h2>
<p>In primul rand urmeaza acomodarea si stabilirea la noul birou. Apoi un proiect in privinta caruia sunt foarte entuziasmat. Apoi &#8230; multa munca, multa joaca, invatam si ne dezvoltam in permanenta, altfel nu merita.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=M8200jmgpuk:1l6L3mlr8os:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=M8200jmgpuk:1l6L3mlr8os:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=M8200jmgpuk:1l6L3mlr8os:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=M8200jmgpuk:1l6L3mlr8os:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=M8200jmgpuk:1l6L3mlr8os:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/M8200jmgpuk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/un-nou-inceput-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/un-nou-inceput-2/</feedburner:origLink></item>
		<item>
		<title>Trying out The Pomodoro Technique</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/60detHfwRHc/</link>
		<comments>http://www.victorstanciu.ro/trying-out-the-pomodoro-technique/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:56:51 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Lifehacks]]></category>
		<category><![CDATA[pomodoro]]></category>
		<category><![CDATA[procrastination]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=513</guid>
		<description><![CDATA[In the raging, aeon-spanning battle against procrastination, I am constantly on the lookout (while procrastinating, of course) for ways to improve my productivity and help me work more efficiently. This is how I stumbled on The Pomodoro Technique, and gave it a try. The rundown At it&#8217;s core, the technique consists of splitting your work [...]]]></description>
			<content:encoded><![CDATA[<p><a class="fullimg" title="Trying out The Pomodoro Technique" href="http://www.victorstanciu.ro/trying-out-the-pomodoro-technique/"><img class="alignnone size-full wp-image-553" title="The Pomodoro Technique" src="http://www.victorstanciu.ro/wp-content/uploads/2010/06/pomodoro.png" alt="The Pomodoro Technique" width="474" height="160" /></a></p>
<p>In the raging, aeon-spanning battle against procrastination, I am constantly on the lookout (while procrastinating, of course) for ways to improve my productivity and help me work more efficiently. This is how I stumbled on <a href="http://www.pomodorotechnique.com/">The Pomodoro Technique</a>, and gave it a try.</p>
<h2>The rundown</h2>
<p>At it&#8217;s core, the technique consists of splitting your work in <strong>25 minute</strong> intervals, with a <strong>5 minute</strong> break between each interval, and a longer break (15-30 minutes) after <strong>3-4</strong> such intervals (pomodoros).</p>
<p>In theory, it should help you stay focused and productive, by timeboxing your tasks into <strong>undividable</strong> chunks and then help you analyze and measure your productivity in uninterrupted pomodoros.</p>
<p>The trick is, if you somehow get distracted during a pomodoro (either by other people or by yourself), that pomodoro <strong>no longer counts</strong>. Even if you happen to take &#8220;just a peek&#8221; at reddit&#8217;s homepage in the 23rd minute (although you and me both know there is no such thing as &#8220;just a peek&#8221; when it comes to reddit.com).</p>
<p>After the first few days with just a few finished pomodoros per day, you <strong>will</strong> do your best to avoid interruptions.</p>
<h2>Will it help me avoid said interruptions?</h2>
<p>No, it will not. It will only make the measure in which these interruptions affect you crystal clear, by showing you just how little actual uninterrupted work you do each day. <a href="http://www.pomodorotechnique.com/products.html#pomodoropdf">The book</a> does have an entire chapter dedicated to interruptions and how to handle them, and it&#8217;s a short read.</p>
<h2>Is it worth it?</h2>
<p>First of all, it&#8217;s not a silver bullet. <a href="http://www.peterkretzman.com/2009/12/16/no-silver-bullets-really/">There are no silver bullets</a>. It all boils down to your own resolve in sticking to a pattern and work in a less chaotic manner. I find it worthwhile and plan to keep using it for now, for the following reasons:</p>
<ul>
<li>Two pomodoros make an ideal work hour (hour of actual continuous work), which is just the right unit to use as a Story Point to measure <a href="http://www.agilemodeling.com/artifacts/userStory.htm">User Stories</a> in.</li>
<li>It helps with estimating and breaking down tasks, because it makes you split longer tasks into smaller, more specific and manageable units (more about this in the book).</li>
<li>It delivers what it promises: a mechanism to keep you focused and avoid &#8230; temptations.</li>
</ul>
<p>So go ahead, give it a try, but keep in mind, it will be hard at first; it will hurt your feelings, and like with all things that shine a light on existing problems, you will be tempted to give it up pretty soon.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=60detHfwRHc:1cKDqVo2W-w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=60detHfwRHc:1cKDqVo2W-w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=60detHfwRHc:1cKDqVo2W-w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=60detHfwRHc:1cKDqVo2W-w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=60detHfwRHc:1cKDqVo2W-w:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/60detHfwRHc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/trying-out-the-pomodoro-technique/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/trying-out-the-pomodoro-technique/</feedburner:origLink></item>
		<item>
		<title>Why testing doesn’t really happen until after D-Day</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/ngfJUgbrbFM/</link>
		<comments>http://www.victorstanciu.ro/why-testing-doesnt-really-happen-until-after-d-day/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 22:27:13 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=475</guid>
		<description><![CDATA[It happened to all of you. You work on a project and keep delivering features at a steady pace. You test your own work, and get constant confirmation from your project managers that each feature has been tested, and you have a green light to move on from the customer. The release date is closing [...]]]></description>
			<content:encoded><![CDATA[<p>It happened to all of you. You work on a project and keep delivering features at a steady pace. You test your own work, and get constant confirmation from your project managers that each feature has been <strong>tested</strong>, and you have a green light to move on from the customer.</p>
<p>The release date is closing in, you manage to wrap everything up, and <strong>launch</strong>. You lean back in your chair and think to yourself &#8220;ahh, another job well done&#8221;.</p>
<p>Then, out of nowhere, after just a few hours in, your task list / inbox gets filled with things like <em>&#8220;How can I do X?&#8221;</em>, <em>&#8220;We have an issue with Y&#8221; </em>and the dreaded <em>&#8220;Z isn&#8217;t working&#8221;</em>. You open the list, scan the first few items, and it hits you:</p>
<p><em>&#8220;Wait a minute, we&#8217;ve been over these, this is the way this feature was </em><strong><em>supposed</em></strong><em> to work, it&#8217;s been </em><strong><em>tested</em></strong><em>.&#8221;.</em></p>
<p>Ahh, but you see, it <strong>wasn&#8217;t</strong>.</p>
<h2>But how could this happen?</h2>
<p>Here&#8217;s the thing: your customers don&#8217;t <strong>really</strong> test. Your project managers don&#8217;t really test. You don&#8217;t really test. Not until the lauch date that is. That&#8217;s when everyone <strong>really</strong> starts testing.</p>
<p><em>&#8220;But, we had at least 6 people involved in this project at all times. Surely between them they tested everything&#8221;.</em></p>
<p>Well, not really, no. You see, every person involved in your project has a certain way of  looking at it.</p>
<p><strong>You</strong> have a list of features that needs implemented. While you churn out feature after feature, you only tend to test the specific behavior you built into each one. &#8220;Right, so the user clicks this, fills out this form, and ends up here.&#8221;.</p>
<p>You don&#8217;t really try to break your own application, so you only interact with it in the way it&#8217;s meant to work. And of course, it works &#8230; &#8220;on your machine&#8221;.</p>
<p>Your <strong>project managers</strong> don&#8217;t test because they don&#8217;t have the time for it, because they have that meeting about that other project with that other client in 10 minutes, just pop them an email and they&#8217;ll look it up later &#8230; They won&#8217;t. They&#8217;ll be too busy.<br />
They&#8217;ll rephrase parts of your email (because really, you suck at writing to corporate clients), and forward it to the customer. And they will not get a chance to test it again &#8230; until after the lauch date, when &#8230;</p>
<p>&#8230; the<strong> </strong><strong>customer</strong> will start testing. The customer, the person you build the entire project for, doesn&#8217;t even remotely start testing until after the project has set sail. Why? Because until then, to them, the project is not real yet. It&#8217;s &#8220;under construction&#8221;.</p>
<p>They will open it up, have a peek, and unless something is downright wrong, they will not notice it. They will not follow the individual interaction flows, they will not start using the project like they will use it for real. <em>&#8220;Oh, I can see some products, that probably means the entire administering, checkout and billing processes must be working.&#8221;</em>.</p>
<p>Most of the problems that will rise from the customer&#8217;s lack of testing are those when he expects a feature to work a certain way, but he described it to your project manager at first in a totally different way. And she described it to you in yet another way. And you developed it &#8220;your way&#8221;.</p>
<h2>Who&#8217;s fault is it?</h2>
<p>No one&#8217;s really. All of yours.</p>
<ul>
<li>The client is thinking <em>&#8220;I pay these people a lot of money, and the product is full of problems, I wanted something else.&#8221;</em>.</li>
<li>The project manager is thinking <em>&#8220;It&#8217;s that arrogant developer&#8217;s fault, I distinctly remember giving him precise instructions on how this should work&#8221;</em>.</li>
<li>We all know what you&#8217;re thinking &#8230; <em>&#8220;These damn mortals better let me get back to reddit.com&#8221;</em>.</li>
</ul>
<h2>Who should test?</h2>
<p>First of all, nothing beats professional testing. Ideally, you should have dedicated testers, but odds are you will have to make do with what you have available.</p>
<p>So there is good news, and bad news:</p>
<p>The <strong>good</strong> news is that, when searching for bugs, it&#8217;s easy! Grab a few members of your team that don&#8217;t work on this particular project. Best to do this with all types of colleagues: other developers, account managers, even the office secretary.</p>
<p>Sit down with them, and politely ask them if they can spare any amount of time to test your product. Then assign them some user roles, and let them loose.</p>
<p>The <strong>bad</strong> news is that application bugs are the easiest to find and fix. The biggest issues come from what I said earlier: <strong>miscommunication</strong>.</p>
<ul>
<li>The customer is not skilled in describing his needs. Most of the time he doesn&#8217;t even know his needs, and this is absolutely normal.</li>
<li>Your project managers don&#8217;t have enough experience in the customer&#8217;s business field, or not enough technical skills. So they interpret the customer&#8217;s requests, and relay them to you wrongly.</li>
<li>In-house problems. Trust issues and other problems can seriously affect the way people work together and communicate (more on this soon).</li>
</ul>
<p>My bet is that shorter release cycles, more customer involvement (the project managers really have to step up here), and enhanced communication can at least lessen the impact of these problems on the typical project. Also, the <a title="User Stories" href="http://www.extremeprogramming.org/rules/userstories.html">User Stories</a> and <a title="Acceptance Tests" href="http://www.extremeprogramming.org/rules/functionaltests.html">Acceptance Tests</a> agile development concepts fit perfectly.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ngfJUgbrbFM:Ul2IkXoJT8U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ngfJUgbrbFM:Ul2IkXoJT8U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ngfJUgbrbFM:Ul2IkXoJT8U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=ngfJUgbrbFM:Ul2IkXoJT8U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=ngfJUgbrbFM:Ul2IkXoJT8U:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/ngfJUgbrbFM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/why-testing-doesnt-really-happen-until-after-d-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/why-testing-doesnt-really-happen-until-after-d-day/</feedburner:origLink></item>
		<item>
		<title>Redirect all requests (including POST) from one Apache server to another</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/Saz_Sevk9vw/</link>
		<comments>http://www.victorstanciu.ro/redirect-all-requests-including-post-from-one-apache-server-to-another/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 14:04:36 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=461</guid>
		<description><![CDATA[In order to test POST callbacks made by a payment gateway without having to work via FTP on a publicly-accessible server, I needed a simple solution to redirect all requests from said server to my workstation, that is on the same network as the server, but is not accessible from outside. The easiest thing to [...]]]></description>
			<content:encoded><![CDATA[<p>In order to test POST callbacks made by a payment gateway without having to work via FTP on a publicly-accessible server, I needed a simple solution to redirect all requests from said server to my workstation, that is on the same network as the server, but is not accessible from outside.</p>
<p>The easiest thing to do was to use the <strong>mod_rewrite</strong>, <strong>mod_proxy</strong> and <strong>mod_proxy_http</strong> Apache modules. You can easily activate all of them in Ubuntu with:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">sudo a2enmod rewrite proxy proxy_http</pre></td></tr></table></div>

<p>I created an empty folder on the server and placed a <strong>.htaccess</strong> file with the following lines in it:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">RewriteEngine On
RewriteRule ^(.*)$ http://10.4.2.155/$1 [NC,P]</pre></td></tr></table></div>

<p>The <strong>[P]</strong> at the end of the RewriteRule specifies that the request should be handled by the proxy module so all GET and POST data are preserved. Therefore, all requests made in that directory will be automatically forwarded to my machine.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=Saz_Sevk9vw:0wuUXjPD-M4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=Saz_Sevk9vw:0wuUXjPD-M4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=Saz_Sevk9vw:0wuUXjPD-M4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=Saz_Sevk9vw:0wuUXjPD-M4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=Saz_Sevk9vw:0wuUXjPD-M4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/Saz_Sevk9vw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/redirect-all-requests-including-post-from-one-apache-server-to-another/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/redirect-all-requests-including-post-from-one-apache-server-to-another/</feedburner:origLink></item>
		<item>
		<title>PHP SoapClient port bug workaround</title>
		<link>http://feedproxy.google.com/~r/VictorStanciu/~3/q-OUnATMPVU/</link>
		<comments>http://www.victorstanciu.ro/php-soapclient-port-bug-workaround/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 11:45:15 +0000</pubDate>
		<dc:creator>Victor Stanciu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[soap]]></category>

		<guid isPermaLink="false">http://www.victorstanciu.ro/?p=456</guid>
		<description><![CDATA[PHP&#8217;s SoapClient has a bug (PHP 5.2.10 here, still not fixed apparently) when the SOAP service must be accessed on a different port other than 80. The WSDL file is fetched correctly, but all subsequent requests are made without any port in the Host field. This causes a SoapFault exception when trying to call any [...]]]></description>
			<content:encoded><![CDATA[<p>PHP&#8217;s SoapClient has a <a href="http://bugs.php.net/bug.php?id=30359">bug</a> (PHP 5.2.10 here, still not fixed apparently) when the SOAP service must be accessed on a different port other than 80. The WSDL file is fetched correctly, but all subsequent requests are made without any port in the Host field. This causes a SoapFault exception when trying to call any of the service&#8217;s methods.</p>
<p>So if the WSDL location is:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">http://example.com:33080/soap/server/path?WSDL</pre></div></div>

<p>All requests after fetching the WSDL file will be made to:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">http://example.com/soap/server/path</pre></div></div>

<p>The simplest way i could work around this was to extend SoapClient and intercept the constructor and the __doRequest method to inject the port in the location on each request:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> My_SoapClient <span style="color: #000000; font-weight: bold;">extends</span> SoapClient <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wsdl</span><span style="color: #339933;">,</span> <span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">parse_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wsdl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'port'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_port <span style="color: #339933;">=</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'port'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> parent<span style="color: #339933;">::</span>__construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wsdl</span><span style="color: #339933;">,</span> <span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __doRequest<span style="color: #009900;">&#40;</span><span style="color: #000088;">$request</span><span style="color: #339933;">,</span> <span style="color: #000088;">$location</span><span style="color: #339933;">,</span> <span style="color: #000088;">$action</span><span style="color: #339933;">,</span> <span style="color: #000088;">$version</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">parse_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$location</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_port<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'port'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_port<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$location</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">buildLocation</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$return</span> <span style="color: #339933;">=</span> parent<span style="color: #339933;">::</span>__doRequest<span style="color: #009900;">&#40;</span><span style="color: #000088;">$request</span><span style="color: #339933;">,</span> <span style="color: #000088;">$location</span><span style="color: #339933;">,</span> <span style="color: #000088;">$action</span><span style="color: #339933;">,</span> <span style="color: #000088;">$version</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$return</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> buildLocation<span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$location</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'scheme'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'scheme'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'://'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pass'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">.</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pass'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'@'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'host'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'port'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">':'</span><span style="color: #339933;">.</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'port'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'path'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'query'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$location</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'?'</span><span style="color: #339933;">.</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'query'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$location</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>It works for me, and I would like to know if it doesn&#8217;t cover your particular case :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=q-OUnATMPVU:WQgaopsTck4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=q-OUnATMPVU:WQgaopsTck4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=q-OUnATMPVU:WQgaopsTck4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?i=q-OUnATMPVU:WQgaopsTck4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/VictorStanciu?a=q-OUnATMPVU:WQgaopsTck4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/VictorStanciu?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/VictorStanciu/~4/q-OUnATMPVU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.victorstanciu.ro/php-soapclient-port-bug-workaround/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://www.victorstanciu.ro/php-soapclient-port-bug-workaround/</feedburner:origLink></item>
	</channel>
</rss>

