<?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>Emanuele Feronato &#187; PROgramming</title>
	<atom:link href="http://www.emanueleferonato.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emanueleferonato.com</link>
	<description>italian geek and PROgrammer</description>
	<lastBuildDate>Tue, 16 Mar 2010 15:55:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Saving and storing your work</title>
		<link>http://www.emanueleferonato.com/2010/02/18/saving-and-storing-your-work/</link>
		<comments>http://www.emanueleferonato.com/2010/02/18/saving-and-storing-your-work/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 22:45:52 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=2385</guid>
		<description><![CDATA[No matter if you are a Flash game developer, a web designer, a video editor, a programmer or whatever&#8230; the more your work on your computer, the more files you will generate.
After a while, your hard disk will become a nasty place full of shattered project if you don&#8217;t follow some simple rules.
That&#8217;s how I [...]]]></description>
			<content:encoded><![CDATA[<p>No matter if you are a Flash game developer, a web designer, a video editor, a programmer or whatever&#8230; the more your work on your computer, the more files you will generate.</p>
<p>After a while, your hard disk will become a nasty place full of shattered project if you don&#8217;t follow some simple rules.</p>
<p>That&#8217;s how I organize, save and store my work.</p>
<p><strong>1) I keep on the computer&#8217;s hard disk only the projects I am currently working on</strong></p>
<p>With more than 10 years of work, keeping all projects, images, video and every other kind of file on the computer I am currently using would be really a nonsense. First, there is no reason to keep old projects on your hard disk, second I don&#8217;t want someone to rob my notebook and have access to an entire life of work. So I use to keep on my computer only the projects I am currently working on. When a project is finished, I move it on another hard disk. Should I work again on an old project, I copy it on my computer and start working on it, until it&#8217;s finished, then I move it on another hard disk.</p>
<p>Since you will access this hard disk once in a while (sometimes once a week, sometimes once a month), there isn&#8217;t any particular recommendation about the hard disk. I am using two USB 1TB iomega where I store almost all my work.</p>
<p>Why &#8220;almost&#8221;? Because I have some other USB 500GB hard disks with video projects. Videos can consume a lot of hard disk space, so it&#8217;s better to dedicate an entire hard disk to each project</p>
<p><strong>2) I create a folder for each branch of my projects</strong></p>
<p><img src="/wp-content/uploads/2010/02/store01.jpg" /></p>
<p>In the picture you can see four directories. Two are obvious, while &#8220;Beta&#8221; contains all the abandoned projects and &#8220;No internet&#8221; contains all the projects I did not develop for the web, such as executable software, brochures, business cards, and so on. As said, videos are on other hard disks.</p>
<p>Obviously, the folders you will have may vary according to the type of projects you are working on&#8230; so you couldn&#8217;t have &#8220;Flash games&#8221; but you could have &#8220;Magazines&#8221;&#8230; this depends on your work.</p>
<p>Just remember: don&#8217;t delete anything. Never. That&#8217;s why I have a directory for abandoned projects. Hard disk are so inexpensive you can afford a lot of them<span id="more-2385"></span></p>
<p><strong>3) Inside each branch folder, I create folders with single projects</strong></p>
<p><img src="/wp-content/uploads/2010/02/store02.jpg" /></p>
<p>This is a screenshot of the &#8220;Websites&#8221; folder. As you can see, there are a lot of them! And they&#8217;re about four times the ones I was able to show you in the picture. Each folder is named with the site domain name, so I don&#8217;t have to remember if &#8220;Yeah inc.&#8221;&#8217;s website is located at &#8220;yeahinc.com&#8221;, &#8220;yeah-inc.org&#8221; or &#8220;yeah-company.net&#8221;</p>
<p>Also, I don&#8217;t start folder names with &#8220;www.&#8221; because almost every website starts with &#8220;www.&#8221;&#8230; I won&#8217;t be able to find the right site in a couple of seconds.</p>
<p>Last but not least, when I redesign a site I made &#8211; let&#8217;s say &#8211; in 2007, create another folder with the same name, followed by the year, such as &#8220;yeahinc.com (2010)&#8221; so I can quickly get my hands on the right content</p>
<p><strong>4) Inside each project folder, I create a folder for every topic</strong></p>
<p><img src="/wp-content/uploads/2010/02/store03.jpg" /></p>
<p>In the picture you can see all folders related to the websites divided by category. Sorry for some italian names, but as said this is my real way to store my work. As you can see, there is a folder for Photoshop files, one for Autocad ones, and so on.</p>
<p>Also notice the backups. Always keep both old versions of your projects and the last one. Using unix dates will make your life easier when you&#8217;re about to look for the right content.</p>
<p>If your site has a dynamic database, like a blog, an e-commerce site and so on, remember to backup your databases at least once a week</p>
<p><strong>5) Inside a topic folder I store all files with the right names</strong></p>
<p><img src="/wp-content/uploads/2010/02/store04.jpg" /></p>
<p>Don&#8217;t call files &#8220;Untitled.psd&#8221; or &#8220;File01.fla&#8221;, but use the unix data followed by a name that will help you to remember what&#8217;s inside that file. This way, when you&#8217;re looking for the last header you&#8217;ll just have to look for the file with &#8220;header&#8221; in its name with the highest date.</p>
<p><strong>6) Everything I showed you in this post is actually stored in TWO hard disks</strong></p>
<p>I don&#8217;t want to see all your work destroyed because my daughter made the hard disk fall on the ground&#8230; so every month I spent a couple of hours to syncronize two hard disks. This will grant me a longer life because I won&#8217;t suicide in case one hard disk will cease to live.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2010/02/18/saving-and-storing-your-work/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Being a geek in Venezuela</title>
		<link>http://www.emanueleferonato.com/2010/02/03/being-a-geek-in-venezuela/</link>
		<comments>http://www.emanueleferonato.com/2010/02/03/being-a-geek-in-venezuela/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 09:47:47 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Monetize]]></category>
		<category><![CDATA[PROgramming]]></category>
		<category><![CDATA[Users contributions]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=2317</guid>
		<description><![CDATA[Yesterday I bought a MacBook on the Apple Store using some of the income generated by this blog. Do you know why I could do this? Because I am a geek, and because I live in Italy.
If I lived in Venezuela, things could have been quite different. This is the story of John Freddy Vega, [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I bought a MacBook on the Apple Store using some of the income generated by this blog. Do you know why I could do this? Because I am a geek, and because I live in Italy.</p>
<p>If I lived in Venezuela, things could have been quite different. This is the story of <strong>John Freddy Vega</strong>, a blogger and geek from Venezuela.</p>
<p>He runs <a href="http://www.cristalab.com/" target = "_blank"><strong>Cristalab</strong></a>, a blog full of AS3 and PHP tips, just like mine. But it&#8217;s not as easy as it seems.</p>
<p>&laquo; Any self-respecting geek has certain <strong>basic needs</strong>, and Venezuelans are no exception: smartphones, laptops, permanent internet connection, access to information and, above all, the <strong>ability to purchase</strong> a lot of stuff we love although we don&#8217;t need it at all.</p>
<p><img src="/wp-content/uploads/2010/02/flag-venezuela.gif" /></p>
<p>That&#8217;s why Venezuela&#8217;s technology case is so curious. We are one of the Countries with <strong>highest Blackberry penetration</strong>, so much so that <strong>RIM</strong> (Research In Motion: the Canadian company that developes the BlackBerry smartphone) people were forced to know we&#8217;re not an African country, we have crappy but still profitable Internet connections and we can even (in many cases) afford a cable TV. <span id="more-2317"></span></p>
<p>On the other side, we are a Country under <strong>heavy control</strong> by the Government about the purchase of dollars, either to travel (in which case the Government itself tells you how many dollars you can purchase, at a given fee) and for internet shopping (which limit &#8211; the so called &#8220;quota limit&#8221; &#8211; is <strong>$400</strong>). </p>
<p><strong>The control over dollars makes it impossible to buy on the Internet </strong></p>
<p>Do you charge in dollars? Then you must sell them to the Government, that pays you in the official currency, with a currency exchange set by the Government itself (at the time of writing this article, 4.30 Bolivars for every dollar) and you can&#8217;t have dollar deposits in Venezuelan banks unless you have so much money that they&#8217;ll open for you a deposit abroad and let you manage it from your bank. </p>
<p>These restrictions are particularly annoying to the geek, when he wants to do things than almost any other Latin American geek can do, like buying a new Tablet on eBay or on Amazon, or buying a Geek Pillow. Needless to say we can&#8217;t buy things like the iPad or &#8211; much more to my taste &#8211; the Nexus One from Apple or Google pages.</p>
<p><strong>Venezuela used to be a technological Country </strong></p>
<p>In the rest of Latin America, Venezuela is seen (or has been seen for many years) as a rich country, thanks to large amounts of money due to oil incomes. The unseen truth unveils high poverty levels, which increase as we get devaluations (recently we had the last one, 100%) and that our ability to acquire foreign currency and/or items brought from abroad is becoming more and more complicated. Consumption limits and exchange controls are now part of our biggest problems (not to mention other problems like the energy crisis or the bad water service we are suffering in this moment). </p>
<p>Just to say one example, not so long ago the technology gap between U.S. and Venezuela was about <strong>a week</strong>, and this made Venezuela an highly technological Country. Now the gap can be of <strong>months</strong>. </p>
<p><strong>You can leave the Country only if approved by the Government</strong> </p>
<p>I still bitterly recall that because of these limitations I couldn&#8217;t go to <strong>Adobe Live 2009</strong> in Lima, and before that I couldn&#8217;t go to Bogota to an Aikido seminar with two of the most important masters of the continent in this Martial Art. Things that for other people are just a matter of having or not having enough money to afford them, for us it&#8217;s a matter of having the luck our currency is authorized and not exceeding the limit imposed. </p>
<p>We must clarify something: currency regulation is nothing new, and it&#8217;s a valid idea under certain circumstances, moreover it&#8217;s not the first time we have it. What&#8217;s illegal is: 1. It is not common to have limited access to foreign exchange 2. A control on the price of the dollar should be a temporary measure, usually a couple of months at most. We&#8217;re having it for about 3 years. </p>
<p><strong>How to deal with these restrictions</strong> </p>
<p>If you need the new MacBook, or the Nexus One or whatever, your solution is getting the money through Paypal (which has no agreements with any bank in the Venezuela), having someone bringing them from abroad and pay them in Bolivars, then buy it on the local market with <strong>prices that can even be three times the original price in foreign markets</strong> or get dollars in the parallel market (black market). </p>
<p>I do not want to enter the political issue, which is always tricky, but make it clear that being geek in my Country, Venezuela is becoming a more and more complicated issue, usually with more disappointments than successes. </p>
<p>I am sure we will seek ways to keep up on what we love and &#8211; in many cases &#8211; what feeds us. </p>
<p>Be careful when you are choosing who you want to be at the Government. &raquo;</p>
<p>Do you live in a Country with restrictions? Share with us your experience, contact me to have it published.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2010/02/03/being-a-geek-in-venezuela/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>11 questions to ask to yourself once you complete a project</title>
		<link>http://www.emanueleferonato.com/2009/12/15/11-questions-to-ask-to-yourself-once-you-complete-a-project/</link>
		<comments>http://www.emanueleferonato.com/2009/12/15/11-questions-to-ask-to-yourself-once-you-complete-a-project/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 22:39:00 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=2070</guid>
		<description><![CDATA[Let&#8217;s say you just finished a project&#8230; no matter whether a website or a Flash game&#8230; but you finished it right now.
Let&#8217;s suppose your client gave you a deadline, or you just wanted to finish it today because tomorrow you&#8217;ll be busy on another project, or you&#8217;ll have some holidays.
In most cases, you know the [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you just finished a project&#8230; no matter whether a website or a Flash game&#8230; but you finished it right now.</p>
<p>Let&#8217;s suppose your client gave you a deadline, or you just wanted to finish it today because tomorrow you&#8217;ll be busy on another project, or you&#8217;ll have some holidays.</p>
<p>In most cases, you know the whole project can be optimized. Depending on the project complexity, you will see a lot of things you could improve to make the project run faster, look better, being more understandable and  &#8211; above all &#8211; reusable.</p>
<p>Unfortunately, in most cases we prefer to leave it &#8220;as is&#8221; since &#8220;it works&#8221; and &#8220;that&#8217;s enough&#8221;, because we think the customer is already satisfied</p>
<p>I have to say, once I finish a project, I promise myself to keep it as clean as I can, even if I know I won&#8217;t be able to reuse anything&#8230; like, as example, a website. But as I have a lot of work, almost all the times I end leaving the project &#8220;as is&#8221;.</p>
<p>While you can&#8217;t work for the rest of your life to the same project, there are 11 questions you should ask yourself before you can consider a project as &#8220;completed&#8221;</p>
<p>Let&#8217;s see them:<span id="more-2070"></span></p>
<p><strong>1) Are all loaded libraries necessary?</strong> Or did you start your website with Prototype just to find jQuery was better? In this case did you remove Prototype scripts? Why are you still using mouse listeners if you decided to steer your car with arrow keys? Remove all unused libraries to speed up the project.</p>
<p><strong>2) Did you use some &#8220;quick&#8221; variables such as <code>$temp</code> or <code>$a</code></strong>? Try to imagine yourself changing something in your project after six months your customer is using it. Can you remember that <code>$temp</code> holds the temporary array of salaries? Why didn&#8217;t you call it <code>$temp_salary_array</code>?</p>
<p><strong>3) If you are using OOP, do you have classes that could (or maybe should) be split in subclasses?</strong> Remember that 10 small classes are way more reusable than a big one.</p>
<p><strong>4) Did you comment the core of the code?</strong> Again, try to imagine yourself changing something after six months. You can&#8217;t remeber the meaning of every <code>while</code> loop, unless you comment at least the most important ones</p>
<p><strong>5) Are there unused files in your directory?</strong> This may happen when the customer wants to remove some content, such as a picture, from a web page. In most cases you modify the HTML without physically deleting the unused files. And if this unused file is an indexed web page, the problem remains as search engines will still drive traffic to the page. </p>
<p><strong>6) Is your project ready for next-generation resolution?</strong> Remember screen resolution changes&#8230; are your background seamless to face a higher resolution? Do they fade? Does your page have some appeal on a tiny netbook?</p>
<p><strong>7) What if you are going to sell/give the source code?</strong> Is the code ready to be sold? Or is it just a bunch of patches to make something work in some way? </p>
<p><strong>8) Did you keep all necessary files to make occasional changes?</strong> Imagine the customer wants to change the color of the header of the website you created, and you don&#8217;t have anymore the Photoshop/Illustrator file&#8230;</p>
<p><strong>9) Did your put your name or your company name somewhere?</strong> Always try to put your name and your link somewhere. It&#8217;s called marketing. And&#8230; no, your name shouldn&#8217;t blink and shouldn&#8217;t be bigger than the customer name</p>
<p><strong>10) Did you sanitize user input?</strong> Or are you ready to handle the customer calling you every day to complain about spam forms trying to sell viagra? From his drills online shop?</p>
<p><strong>11) What if a competitor tries to find weak points of your project?</strong> Some designers do not have any ethic and won&#8217;t hesitate to show the customer the weak points and bugs of your work to aquire your customer. Try not to leave anything someone else can use to steal your client.</p>
<p>Do you follow there principles? Do you follow some more? Let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/12/15/11-questions-to-ask-to-yourself-once-you-complete-a-project/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Keep your WordPress Blog (or any site) clean with new Google Webmaster Tools</title>
		<link>http://www.emanueleferonato.com/2009/10/14/keep-your-wordpress-blog-or-any-site-clean-with-new-google-webmaster-tools/</link>
		<comments>http://www.emanueleferonato.com/2009/10/14/keep-your-wordpress-blog-or-any-site-clean-with-new-google-webmaster-tools/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:27:34 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1743</guid>
		<description><![CDATA[Yesterday I blogged about 10 ways to secure your WordPress blog
Today I found a new, important tool to keep your blog (or site) clean: Google Webmaster Tools and its new services &#8220;Fetch as Googlebot&#8221; and &#8220;Malware details&#8221;.

Once you enter into Webmaster Tools you will find on the left Dashboard sidebar a Labs item with two [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I blogged about <a href="http://www.emanueleferonato.com/2009/10/14/10-ways-to-secure-your-wordpress-blog/">10 ways to secure your WordPress blog</a></p>
<p>Today I found a new, important tool to keep your blog (or site) clean: <a href="https://www.google.com/webmasters/tools/home?hl=en">Google Webmaster Tools</a> and its new services &#8220;Fetch as Googlebot&#8221; and &#8220;Malware details&#8221;.</p>
<p><img src="/wp-content/uploads/2009/10/wtools01.png" /></p>
<p>Once you enter into Webmaster Tools you will find on the left Dashboard sidebar a Labs item with two sub-items: &#8220;Fetch as Googlebot&#8221; and &#8220;Malware details&#8221;.</p>
<p><img src="/wp-content/uploads/2009/10/wtools02.png" /></p>
<p>&#8220;Fetch as Googlebot&#8221; answer the common question &#8220;What does Googlebot see when it accesses my page?&#8221;<span id="more-1743"></span></p>
<p>Now you can submit pages of your site and get (almost) real-time feedback on what Googlebot sees.</p>
<p><img src="/wp-content/uploads/2009/10/wtools03.png" /></p>
<p>This feature will help users a great deal when they re-implement their site with a new technology stack, find out that some of their pages have been hacked, or want to understand why they&#8217;re not ranking for specific keywords. </p>
<p><img src="/wp-content/uploads/2009/10/wtools04.png" /></p>
<p>&#8220;Malware details&#8221; provides webmasters with samples of the malicious code that Google&#8217;s automated scanners detected on their sites.</p>
<p>If some pages of your site distribute malware, you will find a list of such pages and in some cases &#8220;Malware details&#8221; can identify the underlying cause of the malicious code, and provide these details if possible.</p>
<p><img src="/wp-content/uploads/2009/10/wtools05.png" /></p>
<p>Fortunately, I have no malware threats at the moment&#8230; these services are still in beta (called &#8220;Labs&#8221; from Google guys) so may change, break or disappear at any time.</p>
<p>I strongly suggest you to try them and read the <a href="http://googlewebmastercentral.blogspot.com/2009/10/fetch-as-googlebot-and-malware-details.html">official blog entry</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/10/14/keep-your-wordpress-blog-or-any-site-clean-with-new-google-webmaster-tools/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The return of &#8220;Under Construction&#8221; &#8211; evolution of a malpractice</title>
		<link>http://www.emanueleferonato.com/2009/09/16/the-return-of-under-construction-evolution-of-a-malpractice/</link>
		<comments>http://www.emanueleferonato.com/2009/09/16/the-return-of-under-construction-evolution-of-a-malpractice/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 16:17:17 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1655</guid>
		<description><![CDATA[In the late 90&#8217;s most personal and some commercial websites used to place a big, animated, irritating image like this one:

This picture, placed in a webpage browsed at a 800&#215;600 resolution (the most popular one during those years), fills half of the visible area.
This means the page was shouting &#8220;hey, I am incomplete, probably I [...]]]></description>
			<content:encoded><![CDATA[<p>In the late 90&#8217;s most personal and some commercial websites used to place a big, animated, irritating image like this one:</p>
<p><img src="/images/uc.gif" alt="" /></p>
<p>This picture, placed in a webpage browsed at a 800&#215;600 resolution (the most popular one during those years), fills half of the visible area.</p>
<p>This means the page was shouting &#8220;hey, I am incomplete, probably I will never be completed so what are you doing here?&#8221;</p>
<p>We know a good site is always under construction. This blog is always under construction. I add new content almost every day.</p>
<p>As co-owner of a web agency, I notice almost all customers ask some minor changes to their sites about every six months&#8230; no matter if it&#8217;s a new set of photos or an update to the &#8220;about&#8221; page&#8230; they are changing.<span id="more-1655"></span></p>
<p>So we can say all good sites are always under construction&#8230; the only &#8220;fully constructed&#8221; ones are the ones showing &#8220;under construction&#8221;&#8230; most of these sites are updated less than once in a year.</p>
<p>Not to say someone is even able to make typo&#8230;</p>
<p><img src="/images/costruction.jpg" alt="" /></p>
<p>Will you ever come back to that site?</p>
<p>But I have good news: nowadays &#8220;under construction&#8221; is disappearing&#8230; but another menace is approaching our monitors&#8230; directly from the Greek alphabet&#8230;</p>
<p><img src="/images/beta.png" alt="" /></p>
<p>From <a href="http://en.wikipedia.org/wiki/Beta_version#Beta" target = "_blank">Wikipedia</a>: A &#8220;beta version&#8221; is the first version released outside the organization or community that develops the software, for the purpose of evaluation or real-world black/grey-box testing. The process of delivering a beta version to the users is called beta release. Beta level software generally includes all features, but may also include known issues and bugs of a less serious variety.</p>
<p>Unlike &#8220;under construction&#8221;, &#8220;beta&#8221; has a meaning&#8230; the problem is this term is abused.</p>
<p>A good Web 2.0 site is always in beta because new features are added constantly and you may experience strange bugs like the <a href="http://www.emanueleferonato.com/2009/08/20/facebook-bug-none-of-my-friends-can-view-my-profile-wall-photos/">Facebook one</a>&#8230; but Facebook does not show &#8220;beta&#8221;&#8230;</p>
<p>And the interesting thing is most &#8220;beta&#8221; sites show the &#8220;beta&#8221; status in a creative way&#8230; this is a small list of sites in &#8220;beta&#8221; for ages&#8230;</p>
<p><img src="/images/betas.jpg" alt="" /></p>
<p>So, if &#8220;under construction&#8221; means &#8220;I&#8217;ll never finish this page&#8221;, &#8220;beta&#8221; now means &#8220;I don&#8217;t know if it will work&#8221;&#8230; not that interesting.</p>
<p>Do you have sites in beta/under construction?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/09/16/the-return-of-under-construction-evolution-of-a-malpractice/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Understanding (AS3) access modifiers (Public, Internal, Protected, Private)</title>
		<link>http://www.emanueleferonato.com/2009/08/26/undserstanding-as3-access-modifiers-public-internal-protected-private/</link>
		<comments>http://www.emanueleferonato.com/2009/08/26/undserstanding-as3-access-modifiers-public-internal-protected-private/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 13:36:11 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1576</guid>
		<description><![CDATA[I see a lot of confusion around the web about access modifiers, so I am going to give a brief explication about them.
First, if you noticed the post title, you&#8217;ll see I wrote AS3 in brackets because access modifiers have not been introduced with AS3, but AS3 finally featured access modifiers.
As far as I can [...]]]></description>
			<content:encoded><![CDATA[<p>I see a lot of confusion around the web about access modifiers, so I am going to give a brief explication about them.</p>
<p>First, if you noticed the post title, you&#8217;ll see I wrote AS3 in brackets because access modifiers have not been introduced with AS3, but AS3 finally featured access modifiers.</p>
<p>As far as I can remember, access modifiers came from C, or at least I started studying them when I was programming with C.</p>
<p>Acess modifiers are anguage keywords for specifying the visibility of classes and members, that means they determine which code may access classes and class members.</p>
<p>Just think about a bartender in a exclusive pub that may require membership, and everything will be easier.</p>
<p><strong>public</strong> (available to all code): allows access from every class&#8230; the bartender will attend everyone, no matter where he&#8217;s coming from</p>
<p><strong>internal</strong> (available within the same package): allows Classes sharing this package access&#8230; the bartender will attend only people somehow related with the pub (workers that built it, people involved in furnishing, and so on)&#8230; this definition may lead to misunderstandings, so let&#8217;s say access is limited exclusively to classes defined within the current project.</p>
<p><strong>protected</strong> (availabile within the same class and subclasses): allows subclasses access&#8230; the bartender will only attend customers with membership and their sons</p>
<p><strong>private</strong> (available only within the same class): allows access only by the same class&#8230; the bartender will only attend customers with membership</p>
<p>Now the big question: is it so important to use the right access modifier?&#8230; I have to say in most small projects that you&#8217;re sure you&#8217;ll be the only one using them, you can define everything as public and forget about the rest, but obviously if you are looking for reusability and portability, you should pay attention to access modifiers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/08/26/undserstanding-as3-access-modifiers-public-internal-protected-private/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Facebook bug: none of my friends can view my profile, wall, photos&#8230;</title>
		<link>http://www.emanueleferonato.com/2009/08/20/facebook-bug-none-of-my-friends-can-view-my-profile-wall-photos/</link>
		<comments>http://www.emanueleferonato.com/2009/08/20/facebook-bug-none-of-my-friends-can-view-my-profile-wall-photos/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:53:27 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1557</guid>
		<description><![CDATA[Today I discovered an interesting Facebook bug: when I log in, every thing is alright but none of my friends can view my profile.
When they click to view it, it takes them back to their homepage.
And also, any comment I make doesn&#8217;t appear for my friends, but I can see them clearly when I log [...]]]></description>
			<content:encoded><![CDATA[<p>Today I discovered an interesting Facebook bug: when I log in, every thing is alright but none of my friends can view my profile.</p>
<p>When they click to view it, it takes them back to their homepage.</p>
<p>And also, any comment I make doesn&#8217;t appear for my friends, but I can see them clearly when I log in.</p>
<p>Maybe FB staff needs some php classes&#8230; :)</p>
<p><object width="520" height="417"><param name="movie" value="http://www.youtube.com/v/vrj2XDnhU0Y&#038;hl=it&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/vrj2XDnhU0Y&#038;hl=it&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="520" height="417"></embed></object></p>
<p>&#8230; any clue?</p>
<p>I tried to login &#8220;from the other side of the world&#8221; as said in a forum (thanx Bob) but nothing happened.</p>
<p>It feels like a part of my &#8220;second life&#8221; has gone&#8230; it could be an interesting post&#8230; AFTER my account has been fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/08/20/facebook-bug-none-of-my-friends-can-view-my-profile-wall-photos/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Games for the game developers!</title>
		<link>http://www.emanueleferonato.com/2009/06/29/games-for-the-game-developers/</link>
		<comments>http://www.emanueleferonato.com/2009/06/29/games-for-the-game-developers/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 11:28:18 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1393</guid>
		<description><![CDATA[I was impressed by &#8220;Games for the game developers!&#8221; comment on Create a Flash game in minutes with PlayCrafter.
The idea of giving people a tool to make a so-called &#8220;videogame&#8221; without any programming knowledge isn&#8217;t new.
The first complete tool I used was the Shoot&#8217;Em-Up Construction Kit (SEUCK) on my Commodore 128

Having no idea about how [...]]]></description>
			<content:encoded><![CDATA[<p>I was impressed by &#8220;Games for the game developers!&#8221; comment on <a href="http://www.emanueleferonato.com/2009/06/23/create-a-flash-game-in-minutes-with-playcrafter/">Create a Flash game in minutes with PlayCrafter</a>.</p>
<p>The idea of giving people a tool to make a so-called &#8220;videogame&#8221; without any programming knowledge isn&#8217;t new.</p>
<p>The first complete tool I used was the <a href="http://en.wikipedia.org/wiki/Shoot'Em-Up_Construction_Kit" target = "_blank">Shoot&#8217;Em-Up Construction Kit</a> (SEUCK) on my Commodore 128</p>
<p><img src="/images/seuck.jpg" alt="" /></p>
<p>Having no idea about how to make a game, the first &#8220;games&#8221; I made with that kit was just clones of a space game included in the package, just changing bullets speed, number of lives, and other minor things.</p>
<p>But I loved the idea of making games.</p>
<p>With the SEUCK I made about 10 games I only played by myself, because you know in mid 80&#8217;s there wasn&#8217;t the so-called Web 2.0</p>
<p>Anyway I had a lot of fun</p>
<p>My first &#8220;real&#8221; game was a <a href="http://en.wikipedia.org/wiki/Concentration_(game)" target = "_blank">concentration game</a> with time limit, combos, and so on, developed with <a href="http://en.wikipedia.org/wiki/AMOS_(programming_language)" target = "_blank">AMOS</a>.</p>
<p>I can&#8217;t even remember the name but I remember a friend of mine managed it to be included in a <a href="http://en.wikipedia.org/wiki/Aminet" target = "_blank">Aminet</a> CD-ROM</p>
<p>Now the web has changed and you can create a game, upload it in a few seconds and read opinions, comments, reviews.</p>
<p>Moreover, you can make money out of it.</p>
<p>But you must not forget there are people having fun making games.</p>
<p>Tools like <a target = "_blank" href="http://www.playcrafter.com/#invitedBy=17007">PlayCrafter</a> are meant to make people having fun in creating their own games.</p>
<p>Yes, there will be a lot of bad games and most of them will be clones of the same (bad) game, but if you don&#8217;t like a game, just don&#8217;t play it.</p>
<p>And, more important, maybe someone will enjoy the process of making a game and will start studying a programming language to make a more original game.</p>
<p>And don&#8217;t forget the &#8220;Games for the game developers!&#8221; sentence can be used by Flash game developers against <a target = "_blank" href="http://www.playcrafter.com/#invitedBy=17007">PlayCrafter</a> users, but can be used in the same way by PS3 game developers against Flash game developers.</p>
<p>20 (TWENTY!!!) years ago people like me programming in Pascal and Basic was mocked by C++ programmers, because they said real programmers code with C++</p>
<p>When I learned C++ I was mocked by Assembly programmers because they said real programmers code with Assembly.</p>
<p>Nothing new on the horizon&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/06/29/games-for-the-game-developers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The art of debugging</title>
		<link>http://www.emanueleferonato.com/2009/06/26/the-art-of-debugging/</link>
		<comments>http://www.emanueleferonato.com/2009/06/26/the-art-of-debugging/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 20:48:53 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[PROgramming]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1377</guid>
		<description><![CDATA[In a perfect world, our software never run in an unexpected way.
Unfortunately, we don&#8217;t live in a perfect world, so sometimes (quite more than sometimes) we have to face some strange errors.
That&#8217;s when we must learn the gentle art of debugging
Follow me through easy steps and you&#8217;ll wipe the bugs out of your life
1) A [...]]]></description>
			<content:encoded><![CDATA[<p>In a perfect world, our software never run in an unexpected way.</p>
<p>Unfortunately, we don&#8217;t live in a perfect world, so sometimes (quite more than sometimes) we have to face some strange errors.</p>
<p>That&#8217;s when we must learn the gentle art of debugging</p>
<p>Follow me through easy steps and you&#8217;ll wipe the bugs out of your life</p>
<p><strong>1) A bug never appears &#8220;sometimes&#8221;</strong></p>
<p>Believe me, the word &#8220;sometimes&#8221; has been invented for losers. A drunk would say he &#8220;sometimes&#8221; gets drunk, but in my opinion he gets drunk EVERY TIME he drinks too much. That&#8217;s another way to live your life. &#8220;Sometimes&#8221; means you don&#8217;t know when. You can&#8217;t live this way. You are a programmer.</p>
<p>So, you must know when your script has a problem. Exactly. Try to replicate it. Insert breakpoints, print variables, do whatever you can to recreate the problem EVERY TIME you want.</p>
<p>Do you want an example? &#8230; let&#8217;s see this script</p>
<p><code>a = a random number between 0 and 9<br />
b = 10/a</code></p>
<p>This script sometimes crashes&#8230; but you must know when it crashes&#8230; and we can say the script crashes EVERY TIME <code>a = 0</code>, because of a divide by zero error.</p>
<p>When you can describe the problem starting with EVERY TIME, proceed to step 2</p>
<p><strong>2) A bug never appears for the sake of appearing</strong></p>
<p>Believe it or not, Gods aren&#8217;t upset with you. There isn&#8217;t any virus in your computer. &#8220;THEY&#8221; aren&#8217;t trying to drive you mad, and leech your brain because they want to rule the world.</p>
<p>The bug appeared for a reason. In the previous example, the reason was a number cannot be divided by zero. It&#8217;s not a plot against you. You simply cannot divide a number by zero.</p>
<p>You must understand why your script does not work&#8230; in this case it was a division by zero error, you have to find your case.</p>
<p>Now you know when the bug appears, and why it appears</p>
<p><strong>3) A bug is a useless creature</strong></p>
<p>Ok, bugs are the only good actors I can see in horror movies for a couple of years, but they are quite useless&#8230; and maybe they can survive to a nuclear war, and I don&#8217;t really want to survive to a nuclear war just to face giand radioactive bugs, so make up your mind, you don&#8217;t need bugs.</p>
<p>I mean you must find a way to get what you want with no risk to encounter a bug. In our example, you must decide if you really need a random number between zero and 9, or if a number between one and 9 would do.</p>
<p>With numbers from 1 to 9 you solved the bug, but sometimes you may decide you need the zero too, and in this case you would perform the division only if the number is different than zero.</p>
<p>This is the step where you must decide if you want to obliterate the bug or handle it as an exception.</p>
<p>Needless to say the first option is the best, because you can manage one, two&#8230; maybe five&#8230; TEN exceptions, but sooner or later your script will collapse if you work this way.</p>
<p><strong>4) Put a big shoe on the bug&#8217;s head</strong></p>
<p>It&#8217;s the time to rewrite the bugged code&#8230; keep in mind what your script is intended to make, and what you don&#8217;t want to happen. Since at this time you will probably are a bit tired, proceed step by step. Throw a shoe to a bug from a big distance, and you&#8217;ll miss it. Get closer and closer, until&#8230; SQUASH! It will know the power of the mighty shoe.</p>
<p><strong>5) It wasn&#8217;t a simple bug. It was a cyborg bug</strong></p>
<p>If your bug dies with a little red light fading away, and you can hear something like &#8220;I&#8217;ll be back&#8221;&#8230; then it wasn&#8217;t a simple bug&#8230; it was a cyborg bug. In real life, fixing a bug can bring new bugs to life.</p>
<p>In my previous example, I can fix the bug setting <code>a</code> as a random number between 1 and 9.. but I can fix the bug coding the second line as <code>b= 10/(a+1)</code>.</p>
<p>According to what I am expecting from the script, one of the ywo ways of fixing the bug can make the bug return later. You have to forecast future bugs and prevent them</p>
<p>That&#8217;s all&#8230; this was obviously an ironic post, but there is some truth in it&#8230; how do you debug your scripts?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/06/26/the-art-of-debugging/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Adobe CS4 Master Collection</title>
		<link>http://www.emanueleferonato.com/2009/04/19/adobe-cs4-master-collection/</link>
		<comments>http://www.emanueleferonato.com/2009/04/19/adobe-cs4-master-collection/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 22:00:20 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[PROgramming]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=1156</guid>
		<description><![CDATA[Do you want to know what do Adobe ships to you when you purchase the Adobe Creative Suite 4 Master Collection?
Here it is:

Five DVDs with the suite itself and one DVD with two hours of video footage about using CS4 softwares.
Let me remember you the software included:
InDesign CS4
Photoshop CS4 Extended
Illustrator CS4
Acrobat 9 Pro
Flash CS4 Professional
Dreamweaver [...]]]></description>
			<content:encoded><![CDATA[<p>Do you want to know what do Adobe ships to you when you purchase the <a href="http://www.adobe.com/products/creativesuite/mastercollection/" target = "_blank">Adobe Creative Suite 4 Master Collection</a>?</p>
<p>Here it is:</p>
<p><img src="/images/mastercs4.jpg" alt="Adobe CS4 Master Collection" /></p>
<p>Five DVDs with the suite itself and one DVD with two hours of video footage about using CS4 softwares.</p>
<p>Let me remember you the software included:</p>
<p>InDesign CS4<br />
Photoshop CS4 Extended<br />
Illustrator CS4<br />
Acrobat 9 Pro<br />
Flash CS4 Professional<br />
Dreamweaver CS4<br />
Fireworks CS4<br />
Contribute CS4<br />
After Effects CS4<br />
Adobe Premiere Pro CS4<br />
Soundbooth CS4<br />
Adobe OnLocation CS4<br />
Encore CS4<br />
Adobe Bridge CS4<br />
Adobe Device Central CS4<br />
Dynamic Link<br />
Version Cue CS4</p>
<p>I still haven&#8217;t installed it, so I can&#8217;t say, at the moment, if there is something made exclusively for the box retail edition, something the downloadable version does not have.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2009/04/19/adobe-cs4-master-collection/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
