<?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>Zen and the Art of Programming &#187; General</title>
	<atom:link href="http://programmingzen.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://programmingzen.com</link>
	<description>Meditations on programming, startups, and technology</description>
	<lastBuildDate>Mon, 16 Jan 2012 17:09:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>The Real Reason Italy Sucks at the Startup Game</title>
		<link>http://programmingzen.com/2011/11/10/the-real-reason-italy-sucks-at-the-startup-game/</link>
		<comments>http://programmingzen.com/2011/11/10/the-real-reason-italy-sucks-at-the-startup-game/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 15:00:18 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[IT Business]]></category>
		<category><![CDATA[Italy]]></category>
		<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1429</guid>
		<description><![CDATA[For a long time now Italy has been experiencing political and economical turmoil that would require several drastic changes in order to reboot it. Italy needs a new class of politicians who truly care about the real problems that the country and its people are facing everyday. It desperately needs to reform the educational, tax, [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>For a long time now Italy has been experiencing political and economical turmoil that would require several drastic changes in order to reboot it. Italy needs a new class of politicians who truly care about the real problems that the country and its people are facing everyday. It desperately needs to reform the educational, tax, and labour systems, as well as a substantial reduction of bureaucracy at every level.</p>
<p>In his famous 1961 inaugural speech John F. Kennedy said to his fellow American citizens, &#8220;Ask not what your country can do for you &#8211; ask what you can do for your country&#8221;. In the same spirit I can’t help but ask myself, what would it take to modernize and restart Italy?</p>
<p>Though easy solutions do not abound, there is something that young Italians can do to greatly help this situation: <strong>create startups</strong>. Over the past 30 years American startups have generated <a href="http://www.whitehouse.gov/blog/2011/11/03/numbers-44-million" target="_blank">44 million jobs</a>. Starting a company is perhaps the most noble act Italians can do to improve their country and their own economical condition, while at the same time helping to create jobs for their fellow Italians.</p>
<p>I know that starting a company is not an easy or straightforward process in Italy. Doing so means facing a labyrinth of laws (plus very high taxes). The fiscal system is inefficient and often rewards tax evaders with a laissez-faire attitude, while showing a cruel persistence against honest small business owners.</p>
<p>It&#8217;s also hard because there are virtually no angel investors or venture capitalists. Though parents are sometimes seen as angel investors (of sorts), to some, for providing young Italians with a place to stay rent-free well into their twenties and sometimes even thirties.</p>
<p>The existence of obstacles shouldn&#8217;t be a good enough reason to prevent you from trying at all though. When you have very little to lose, because you’re already unemployed (or are not making anywhere near enough to get by), why not try and start something of your own? It&#8217;s obvious that without an initial capital, funds, or credit you can&#8217;t launch a physical retail outlet or start having goods manufactured for you in China.</p>
<p>Thanks to the web however, it’s possible to bootstrap a company and encounter relatively negligible monthly costs. The only real capital required is knowledge, which is freely obtainable online, paired with the ability to work both diligently and smartly towards a goal.</p>
<p>With rampant unemployment in Italy, particularly in the south, one would expect a huge surge of technical startups in Italy. You&#8217;d imagine people staying up until 3 AM in order to fulfil their dream of running their own business. Sadly, these are not the droids you are looking for. Unemployment figures are appalling, yet there are very few self-employed people or entrepreneurs to be found throughout the country.</p>
<p>The real limit is the mentality that most young Italians have.</p>
<p><strong>Risk aversion</strong>. Even when there is very little to lose and you’re 20-25 years old and without a family of your own to sustain yet.</p>
<p>Recently a great deal of people from all over the world applied to temporary leave their respective countries to go to Chile, in order to create a startup and take advantage of a <a href="http://www.startupchile.org/" target="_blank">$40,000 fund for startups</a> that the country is offering without any strings attached. Americans jumped at the occasion, despite the availability of local funds. How many Italians have gone so far? Very, very few. And yet they are the ones who could truly use &#8211; and need to avail of &#8211; chances like this.</p>
<p><strong>Fear of failure</strong>. Italian society has never come to terms with the fact that failing is an opportunity to grow and try again. If you fail once in Italy, you are often seen as a <em>failure</em> forever (short of doing amazingly well later in life).</p>
<p>In North America it&#8217;s pretty much established that statistically you&#8217;ll fail a few times before getting it right. Nobody would attach such a negative label to you because you tried to create something of value and didn&#8217;t end up succeeding. You&#8217;ll be respected far more than <a href="http://en.wikipedia.org/wiki/Citizenship_in_a_Republic" target="_blank">timid souls</a> who neither know victory nor defeat.</p>
<p>Real experts are usually people who have failed more than most people and have learned important lessons in doing so. This is true in any field, not just the business world.</p>
<p><strong>Sense of self-entitlement</strong>. People in Italy still expect to obtain a long term post office or government job where you’re unlikely to get fired and will remain there for 40 years, just because they got a college degree.</p>
<p>I’ve interviewed several Italian job applicants throughout my life, and it&#8217;s not unusual to see them become visibly upset when a fellow Italian wouldn&#8217;t hire them over someone from a different country (simply on the merits that we’re both from Italy) &#8211; even when they’ve never written a single line of code outside of their university courses.</p>
<p><strong>Fatalism</strong>. In Italy there is the belief that your future doesn&#8217;t depend on your own efforts, rather that it&#8217;s mostly influenced by impregnable external forces. When you are not convinced that you can take charge of your life, it becomes really hard to make the sacrifices and jump through the hoops required to achieve success.</p>
<p>Why work like a dog if you don&#8217;t believe in your heart that you can change your life and live the Italian take on the American dream? (I refuse to believe that the real Italian dream is to become a soccer player or a show girl, or to have a unionized job where you can&#8217;t get fired no matter how bad you behave.)</p>
<p>The following chart shows the results of some research that was carried out by the the Hoover Institution at Stanford University. As you can see, many Americans, Swedish, and English people replied “no” to the question, &#8220;Does success depend on forces outside our control?&#8221;. Italians however showed their fatalism, with more than 70% replying “yes”.</p>
<p><img class="aligncenter size-full wp-image-1430" title="Does success depend on forces outside our control?" src="http://programmingzen.com/wp-content/uploads/2011/11/does-success-depend-on-forces-outside-our-control-e1320936286945.png" alt="Does success depend on forces outside our control?" width="629" height="472" /></p>
<p style="text-align: center;"><small>(By the way, tip of the hat to <a href="http://twitter.com/fabricapo">Fabrizio Capobianco</a> for spotting this image on a slide by Richard Boly.)</small></p>
<p style="text-align: left;">I understand that as a whole a strongly catholic country may hold onto the popular belief that everything comes down to &#8220;God willing&#8221;, and that in many fields corruption and nepotism are the norm, not the exception. However it must be really sad to live a life in which you don&#8217;t believe in your ability to change your own destiny. Real change often derives from the ambition and desire to improve one&#8217;s situation in life.</p>
<p><strong>Cynicism and envy</strong>. In Italy, people tend to ridicule, envy, or be distrustful of those who actively want to create a better future for themselves or to change the status quo.</p>
<p>When Mashape&#8217;s founders wrote <a href="http://blog.tagliaerbe.com/2010/09/startup-investitori-italia.html" target="_blank">an open letter</a> to the Italian tech community in which they suggested that they were leaving Italy for Silicon Valley, people mocked them to no end. Many derided them and said they&#8217;d be back in a year with their tails between their legs and nothing to show for leaving Italy. What actually happened (as non-Italians might expect) is that they received <a href="http://gigaom.com/cloud/api-market-mashape-raises-1-5m-seed-from-mega-investors/" target="_blank">$1.5 million from some of the largest investors</a> in America, and in the process were able to get more investors to pay attention to wannabe Italian entrepreneurs.</p>
<p>This story speaks of a generation of cynics and discouraged people who not only struggle to produce something of value themselves, but who also actively sabotage others so as not to look incapable or lazy by comparison.</p>
<p>Overall Italians are a smart and (in the technical field) a generally talented group of people. Perhaps Italy will never have its own Silicon Valley, but it has a huge amount of human potential that should be put to good use. Change and innovation in my native country must start from the ground up, beginning with the attitudes and belief system of its youth.</p>
<p>I urge fellow Italians to fight these negative tendencies and stop, once for all, looking for excuses. If you wait for the ideal conditions to come along, you&#8217;ll never achieve anything important in life.</p>
<p>All change requires is for people to start taking action and trying for real. After all, just look around at the way Italy is these days: you don’t have a lot to lose. Yet there is so very much to potentially gain in the fight to reshape and transform Italy into the country it truly deserves to be.</p>
<p>[An Italian version of this article is <a href="http://stacktrace.it/2011/11/07/considerazioni-sulla-scarsita-di-startup-in-italia/" target="_blank">available on Stacktrace</a>.]</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/11/10/the-real-reason-italy-sucks-at-the-startup-game/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>An Update On My Technical Blogging Book</title>
		<link>http://programmingzen.com/2011/08/23/an-update-on-my-technical-blogging-book/</link>
		<comments>http://programmingzen.com/2011/08/23/an-update-on-my-technical-blogging-book/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 16:13:58 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Information Marketing]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1408</guid>
		<description><![CDATA[Today I wanted to let those of you who don&#8217;t follow my adventures on twitter know that I have a few updates in regards to my upcoming technical blogging book, which I announced a while ago. The most important update is that the book is not going to be self-published. Instead, after receiving offers from [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Today I wanted to let those of you who don&#8217;t follow my adventures <a href="http://twitter.com/acangiano">on twitter</a> know that I have a few updates in regards to my upcoming <a href="http://technicalblogging.com/">technical blogging</a> book, which I announced <a href="http://programmingzen.com/2011/04/11/im-thinking-of-writing-an-ebook/">a while ago</a>.</p>
<p>The most important update is that the book is not going to be self-published. Instead, after receiving offers from a couple of major publishers earlier this year, I decided to publish the book with <a href="http://pragprog.com/">The Pragmatic Bookshelf</a>. My experience with them has been more than satisfactory so far.</p>
<p>The book is going to be about 250 pages, and at the moment I&#8217;ve completed about 70% of it. The exact title and cover are not set in stone yet, but there is a concrete possibility that it will head into beta soon. This means that the book is likely to become purchasable before it&#8217;s fully finished, even though this hasn’t officially been confirmed yet.</p>
<p>Early technical reviewers have provided extremely encouraging feedback. Among those who’ve shared their valued thoughts are well-know world class bloggers who found the book to be packed with useful advice.</p>
<p>To give you a better idea of what the book is all about, I&#8217;ll share the (very provisional and subject to change) Table of Contents (as it appears at this early stage) here.</p>
<h1>Table of Contents</h1>
<p><strong>0. Introduction</strong></p>
<h4>Part I — Plan it</h4>
<p><strong>1. What kind of blog are you going to run?</strong><br />
    1.1 Solo vs Collective<br />
    1.2 General vs Niche<br />
    1.3 Pundit vs Instructional<br />
    1.4 Business Blogs<br />
    1.5 What&#8217;s Next</p>
<p><strong>2. A rock-solid plan for your blog</strong><br />
    2.1 Define Your Blog&#8217;s Main Topic<br />
    2.2 Analyze the Size of Your Niche<br />
    2.3 Give Readers a Compelling Reason To Stick Around<br />
    2.4 Set Goals for Your Blog<br />
    2.5 Choosing and Registering a Domain Name</p>
<h4>Part II — Build it</h4>
<p><strong>3. Setting up your blog</strong><br />
    3.1 Choose Your Blogging Software and Hosting<br />
    3.2 Installing WordPress<br />
    3.3 Configuring WordPress<br />
    3.4 Enhancing WordPress With Plugins<br />
    3.5 What&#8217;s Next</p>
<p><strong>4. Customizing and fine-tuning your blog</strong><br />
    4.1 Pick a Professional Theme<br />
    4.2 Enable Tracking of Your Site&#8217;s Visitors<br />
    4.3 Customize Your Sidebar<br />
    4.4 Encourage Social Media Sharing<br />
    4.5 Win Over Subscribers<br />
    4.6 Don&#8217;t Get in Trouble, Use Disclaimers<br />
    4.7 Master On-page SEO With Platinum SEO<br />
    4.8 Performance Considerations<br />
    4.9 Enable Code Highlighting in Your Posts<br />
    4.10 What&#8217;s Next</p>
<p><strong>5. Creating remarkable content</strong><br />
    5.1 Content Is King<br />
    5.2 Write for the Web<br />
    5.3 Can Linkbaiting Be Ethical?<br />
    5.4 Write Catchy Headlines<br />
    5.5 Develop Your Own Voice<br />
    5.6 Where to Find Ideas for Your Posts<br />
    5.7 Case Study: Math-Blog.com&#8217;s Headlines<br />
    5.8 Get Readers to Explore Your Content<br />
    5.9 Dealing With Copyright Violations<br />
    5.10 Back Up Your Content<br />
    5.11 What&#8217;s Next</p>
<p><strong>6. Producing content regularly</strong><br />
    6.1 What&#8217;s the Post Frequency, Kenneth?<br />
    6.2 Consistency Is Queen<br />
    6.3 On What Days Should You Post?<br />
    6.4 Schedule Time to Blog<br />
    6.5 Manage Your Time With the Pomodoro Technique<br />
    6.6 Surviving Writer&#8217;s Block<br />
    6.7 Get Others to Write for You<br />
    6.8 What&#8217;s Next</p>
<h4>Part III — Promote it</h4>
<p><strong>7. Promoting your blog</strong><br />
    7.1 Market It and They Will Come<br />
    7.2 Correcting a Self-Sabotaging Mindset<br />
    7.3 Perform On-Page and Off-Page SEO<br />
    7.4 Not All Links Are Created Equal<br />
    7.5 Guest Blogging on Other Blogs<br />
    7.6 Other Forms of Article Marketing<br />
    7.7 Participate in the Community<br />
    7.8 The Dark Side of Link Building<br />
    7.9 Promoting Your Articles on Social Networks<br />
    7.10 Promote on Technical Social News Sites<br />
    7.11 Case Study: ProgrammingZen.com&#8217;s Referral Traffic<br />
    7.12 What&#8217;s Next</p>
<p><strong>8. Understanding traffic statistics</strong><br />
    8.1 Baseline vs Spike Traffic<br />
    8.2 Key Site Usage Metrics You Need to Consider<br />
    8.3 Interpreting Visit Quantity and Quality<br />
    8.4 Where Do They All Come From?<br />
    8.5 Analyzing Google Analytics and Clicky Statistics<br />
    8.6 Keeping Track of Your Blog&#8217;s Growth<br />
    8.7 What&#8217;s Next</p>
<p><strong>9. Building a community around your blog</strong><br />
    9.1 Engage Readers<br />
    9.2 Supplement Your Blog With Community Tools<br />
    9.3 Forms Of Criticism<br />
    9.4 Your Mantras When Dealing With Criticism<br />
    9.5 What&#8217;s Next</p>
<h4>Part IV — Benefit from it</h4>
<p><strong>10. Making money from your blog</strong><br />
<strong>11. Promoting your own products</strong><br />
<strong>12. Benefiting from your blog to the fullest</strong></p>
<h4>Part V — Scale it</h4>
<p><strong>13. Scaling your blogging activities</strong><br />
<strong>14. Beyond blogging: your strategy for social media</strong><br />
<strong>15. Growing your online presence</strong><br />
<strong>16. Final words of advice</strong></p>
<p>If you are interested in receiving ongoing news about the book, you can <a href="http://technicalblogging.com/">sign up</a> for my spam-free, very infrequent, announcement newsletter <a href="http://technicalblogging.com/">here</a>.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/08/23/an-update-on-my-technical-blogging-book/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The need for good vocational schools for programmers</title>
		<link>http://programmingzen.com/2011/07/09/the-need-for-good-vocational-schools-for-programmers/</link>
		<comments>http://programmingzen.com/2011/07/09/the-need-for-good-vocational-schools-for-programmers/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 03:17:57 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1396</guid>
		<description><![CDATA[A rigorous computer science education is certainly beneficial to programmers. It provides you with the ability to see the bigger picture, and a more in-depth understanding of many topics that will ultimately make you a better developer. I would argue however that it is far from actually being necessity. For many programming jobs, a computer [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>A rigorous computer science education is certainly beneficial to programmers. It provides you with the ability to see the bigger picture, and a more in-depth understanding of many topics that will ultimately make you a better developer.</p>
<p>I would argue however that it is far from actually being necessity. For many programming jobs, a computer science education is akin to having a mechanical engineering degree when working as an auto mechanic. You&#8217;ll certainly have a great understanding of the job you are doing, but a good deal of what you learned academically will fail to resonate with what you do in your day job at the body shop.</p>
<p>What the programming world needs is good, reputable vocations schools. Such institutions should take an extremely hands-on approach, be taught by veterans in the field, and prepare students for how to actually program in the real world from day one.</p>
<p>Focus on SVN and Git, rather than on Petri nets. Teach students how to name identifiers in their code, how to organize code, how to test, how to work with Unicode, how to develop desktop, web, and mobile applications, how to write secure code, how to sell software, how to bill clients, and other software engineering best practices. Give priority to practical topics aided by plenty of exercises and useful projects that represent the kind of work students will one day find themselves doing for an employer.</p>
<p>This type of school may not give us a modern day Turing, but it would definitely help establish a new generation of competent craftspeople who can begin building useful products in the real world before they&#8217;ve even donned their mortarboards. And it could easily be a 2 year crash course, rather than 4 years.</p>
<p>I think such an approach would be a huge improvement over the status quo of far too many Computer Science graduates who can&#8217;t write a decent program after four years of theory based education (not to mention that they are still indebted years after their graduation).</p>
<p>Assuming that the instructors and material were both great and not your typical &#8220;Java school&#8221; curriculum, I would recommend this route to most of the people I know who are considering getting into this field.</p>
<p>What do you think?</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/07/09/the-need-for-good-vocational-schools-for-programmers/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>IBM is Looking for a University Student with PHP skills in Toronto</title>
		<link>http://programmingzen.com/2011/06/08/ibm-is-looking-for-a-university-student-with-php-skills-in-toronto/</link>
		<comments>http://programmingzen.com/2011/06/08/ibm-is-looking-for-a-university-student-with-php-skills-in-toronto/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 23:18:47 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[DB2]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IT Business]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1386</guid>
		<description><![CDATA[My team is looking for a student for a paid internship, which will last for up to 18 months. The candidate should be legally permitted to work in Canada, as the location for this internship will be the IBM Toronto Software Lab in Markham, Ontario. PHP is a required skill for this position. If you [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>My team is looking for a student for a paid internship, which will last for up to 18 months. The candidate should be legally permitted to work in Canada, as the location for this internship will be the IBM Toronto Software Lab in Markham, Ontario.</p>
<p>PHP is a required skill for this position. If you have experience with cloud computing (Amazon EC2), relational databases, open source contribution, and/or Moodle, that would be great. Part of your internship responsibilities will involve contributing to open source projects.</p>
<p>If you are interested, please get in touch by email at: <strong>Y2FuZ2lhbm9AY2EuaWJtLmNvbQ==</strong> (Base 64 encoded.)</p>
<p align="center" style="margin-top: 20px;"><a href="http://www.flickr.com/photos/christopherlord/514316263/"><img src="http://programmingzen.com/wp-content/uploads/2011/06/torolab.png" alt="IBM Toronto Software Lab" title="IBM Toronto Software Lab" width="633" height="386" class="alignright size-full wp-image-1387" /></a><small>Image used with the permission of <a href="http://www.flickr.com/photos/christopherlord/514316263/">Christopher Lord</a>.</small></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/06/08/ibm-is-looking-for-a-university-student-with-php-skills-in-toronto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interview with the Compilr.com team</title>
		<link>http://programmingzen.com/2011/05/31/interview-with-the-compilr-com-team/</link>
		<comments>http://programmingzen.com/2011/05/31/interview-with-the-compilr-com-team/#comments</comments>
		<pubDate>Tue, 31 May 2011 17:00:23 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[IT Business]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1380</guid>
		<description><![CDATA[1. For those who don&#8217;t know, what is an online compiler and how did you come up with the idea? An online compiler, or online IDE is a full software development environment on the web. This allows us programmers to develop from a wider range of machines without any software installations, and to always have [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><strong>1. For those who don&#8217;t know, what is an online compiler and how did you come up with the idea?</strong></p>
<p><img src="http://programmingzen.com/wp-content/uploads/2011/05/compilr.png" alt="Compilr" title="Compilr" width="200" height="58" class="alignright size-full wp-image-1381" align="right" stye="float: right;" />An online compiler, or online IDE is a full software development environment on the web. This allows us programmers to develop from a wider range of machines without any software installations, and to always have our code handy whenever we may need it. There are a wide range of online compiler&#8217;s out there today, but <a href="http://compilr.com" target="_blank">Compilr.com</a> is unique since our goal has been to create a fully fledged IDE for developing desktop applications on the web. The idea itself spawned from a combination of wondering what makes an IDE all that it is, knowledge of server side web development languages like PHP and using modern JavaScript libraries to create some really desktop-like user interfaces, and it&#8217;s because of the interest in these technologies that we have been able to bring Compilr to where it is today.</p>
<p><strong>2. Why is using an online compiler / online IDE better than programming on my computer?</strong></p>
<p>To develop from a wider range of machines without any software installations, and to always have our code handy whenever you may need it. But some more truly great things can be accomplished from an online IDE such as the ability to develop Windows code from any other OS or a fully online software team communication suite; allowing team members to work on the same code, communicate code changes actively, and instant message each other. Yes, you can accomplish this with desktop software to some extent, but with an online environment you can bring those change notifications instantly opposed to having to look for changes in source control such as svn or git. Online IDEs can also bring a whole new level to social code sharing, like open public projects that can be edited and tested by anyone in the entire world directly in their browser, yet still providing everyone with the version control they need to spot and prevent issues.</p>
<p><strong>3. How did you translate a traditional IDE into a web format, and what stack did you use for the web IDE itself?</strong></p>
<p>Currently we have deployed a lovely combination of Drupal for our CMS features, ExtJS for the bulk of our IDE&#8217;s user interface, a custom back-end service to handle code building and a number open source projects.</p>
<p><strong>4. Would you consider Compilr to be complete enough for production use or is there substantial work still to be done?</strong></p>
<p>It all depends on your production, currently we do not have any team integration, but we do support publicly visible projects. So if you&#8217;re a one person army, working on a Java, C#, or VB.net desktop application or XNA game, then Compilr might be the right solution for you! In my mind there is always work to be done and this includes: code completion &#8220;IntelliSense&#8221;, online execution of applications and debugging beyond build warnings and errors, and all those lovely team integration features I mentioned earlier.</p>
<p><strong>5. What is on the horizon for <a href="http://compilr.com" target="_blank">Compilr.com</a>?</strong></p>
<p>Besides all the features we want to add, we are always looking for suggestions, expanding our user base, and looking for way to gain recognition for ourselves and Online IDEs in general, we really believe that online IDEs will provide a lot of value for developers in the future.</p>
<p><strong>6. Are there any technological concerns for maintaining an online compiler? What about security?</strong></p>
<p>Security is definitely a concern for us, during our development we take a lot of care in making sure our access points are as secure as possible, although we are human, and we are capable of making mistakes, so we preform regular backups just in case.</p>
<p><strong>7. As more users come to Compilr, how do you plan to scale the system?</strong></p>
<p>We are constantly optimizing code so we can fit more users on to less machines, with less bandwidth. But we also plan on clustering our users, for example: Group 1 would be mirrored on server A and B while Group 2 would be on server C and D. Completely separating the users data and compilation requirements, besides the common elements required by the CMS front end.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/05/31/interview-with-the-compilr-com-team/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google I/O developer event in Waterloo, Canada</title>
		<link>http://programmingzen.com/2011/05/01/google-io-developer-event-in-waterloo-canada/</link>
		<comments>http://programmingzen.com/2011/05/01/google-io-developer-event-in-waterloo-canada/#comments</comments>
		<pubDate>Sun, 01 May 2011 22:07:28 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Canada]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Industry News]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1367</guid>
		<description><![CDATA[I just received an email from one of my contacts at Google in regards to an upcoming Google I/O conference in Waterloo, Ontario. I&#8217;m posting their announcement here in case you are in the area on May 10, 2011 and are interested in this free event: Google I/O 2011 is bringing together thousands of developers [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>I just received an email from one of my contacts at Google in regards to an upcoming Google I/O conference in Waterloo, Ontario. I&#8217;m posting their announcement here in case you are in the area on May 10, 2011 and are interested in this free event:</p>
<blockquote><p>Google I/O 2011 is bringing together thousands of developers to share, learn and create; we want you to be part of of this free developer event!</p>
<p>On Tuesday May 10th, eleven of our North American offices will be opening their doors to share the magic of I/O. Even though you might not be able to make it to San Francisco for the conference, we are bringing together passionate and talented developers in the local community to watch the conference through live streaming at the Google Waterloo Office.</p>
<p>We&#8217;ll be featuring live streaming of the keynote speakers and popular breakout sessions, as well as demonstrations &#038; tech talks from local Canadian Googlers.You&#8217;ll have the opportunity to connect with fellow developers, enjoy beverages and bites, and enter to win raffle prizes (like a Samsung Galaxy Tab!). Space is limited, so attendance will be granted on a first-come, first-served basis.</p>
<p><a href="http://www.google.com/events/io/2011/">Google IO Main Site</a><br />
<a href="https://sites.google.com/site/2011ioextendedonsites/">Click here for details, locations and to RSVP</a></p>
<p>Looking forward to seeing you in May,<br />
The Google I/O Extended Team</p>
<p>Questions? Email lexib at Big G
</p></blockquote>
<p>Seats are going fast, so <a href="https://sites.google.com/site/2011ioextendedonsites/">RSVP now</a> if you are interested in this event.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/05/01/google-io-developer-event-in-waterloo-canada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Results of the Technical Blogging survey</title>
		<link>http://programmingzen.com/2011/04/26/results-of-the-technical-blogging-survey/</link>
		<comments>http://programmingzen.com/2011/04/26/results-of-the-technical-blogging-survey/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 21:31:27 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Information Marketing]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1351</guid>
		<description><![CDATA[A couple of weeks ago I published a survey in which I asked you a few questions about a book on technical blogging I intended to write. The response has been very positive, so today I’m officially announcing that I’ve started writing this book. I also created a pre-launch landing page where you can signup [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago <a href="http://programmingzen.com/2011/04/11/im-thinking-of-writing-an-ebook/">I published a survey</a> in which I asked you a few questions about a book on technical blogging I intended to write. The response has been very positive, so today I’m officially announcing that I’ve started writing this book.</p>
<p>I also created a pre-launch landing page where you can <a href="http://technicalblogging.com/" target="_blank">signup to receive occasional updates</a> about the progress of the project, and learn of when the book becomes available for purchase. If you are interested, please signup now.</p>
<p align="center"><a href="http://technicalblogging.com" target=”_blank”><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging.png" alt="technical-blogging" title="technical-blogging" width="630" height="630" class="aligncenter size-full" /></a></p>
<p>Your feedback has been extremely helpful in determining the goals for the book. While I won’t share the many personal messages of encouragement I received via that surbey form, I’d like to transparently share the quantitative results of the survey, in case you are curious.</p>
<p>Title-wise, people liked Zen and the Art of Technical Blogging and Zen and the Art of Technical Marketing. I went with the former.</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging1.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>A large majority of survey participants have bought an ebook before:</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging2.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>Of the proposed topics for, and goals you’d like to achieve from reading, the book, earning extra income, promoting a startup, sharing technical knowledge, becoming a better self-promoter, and understanding online marketing where the most popular. So that’s what I’ll focus on.</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging3.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging4.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging5.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging6.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging7.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging8.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging9.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging10.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>When it comes to formats, most people strongly favoured PDF. I haven’t sorted out the details yet, but I think I will end up producing DRM-free PDF, Epub, and Mobi ebooks. I may also have a printed version as well, if I can find a printing and distribution system that doesn’t have insane markups on each copy.</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging11.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>Regarding price, I suspect a certain bias in the results. When asked how much you’d be willing to pay, respondents will sometimes state a lower number in the hope that this will influence the price and make it more affordable. Regardless, I have not decided yet on the price and it’s something I’ll likely establish towards the end of the writing process, based on the actual value the book ends up delivering. It will most likely be affordable though; anything between $19-$29 for all the digital formats (with a discount for those who <a href="http://technicalblogging.com/" target="_blank">signup to the pre-launch newsletter</a>).</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging12.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>To wrap up, these results show that most respondents would be quite interested in buying this book, so long as the conditions are right:</p>
<p align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/04/technical-blogging13.png" alt="technical-blogging" title="technical-blogging" width="630"  class="aligncenter size-full" /></p>
<p>I may occasionally post announcements about this in the blog as the project progresses, but the best way to stay up-to-date is to <a href="http://technicalblogging.com/" target="_blank">signup for the spam-free newsletter</a> for the book. I’m genuinely excited about this book and hope that I’ll be able to bring a good deal of value and insight to many people.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/04/26/results-of-the-technical-blogging-survey/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;m thinking of writing an ebook and would love your feedback</title>
		<link>http://programmingzen.com/2011/04/11/im-thinking-of-writing-an-ebook/</link>
		<comments>http://programmingzen.com/2011/04/11/im-thinking-of-writing-an-ebook/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 08:46:16 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1339</guid>
		<description><![CDATA[Over the past few months I’ve been toying with the idea of self-publishing an ebook about technical marketing and blogging. These are topics that I feel are very important for a technical audience (one that is often less keen on marketing and self-promotion). However, before committing to investing a large amount of my time and [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I’ve been toying with the idea of self-publishing an ebook about technical marketing and blogging. These are topics that I feel are very important for a technical audience (one that is often less keen on marketing and self-promotion).</p>
<p>However, before committing to investing a large amount of my time and energy in such a project, I thought it would be best to gauge the interest level in this idea amongst my readers first. I would also like to understand what areas interest you the most, and what you’d like to get out of such a book.</p>
<p>For example, would you like to learn how to blog so as to earn extra income? Or maybe how to further your career? Perhaps you’re interested in promoting your own products (such as desktop software or a web application) online. </p>
<p>If the interest is there, I want to get feedback as early as possible so as to create a useful step by step roadmap that truly answers your questions and serves your needs well.</p>
<p>If you are intrigued, please consider filling out the following brief survey. Thank you very much in advance for your valuable input.</p>
<p align="center"><big><a href="https://spreadsheets0.google.com/viewform?hl=en&#038;hl=en&#038;formkey=dGxZYzVkQXNHMDFiNmVxXzc4QVdkQXc6MQ#gid=0">Ebook Survey</big></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/04/11/im-thinking-of-writing-an-ebook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FAQ: What programming language should I learn first?</title>
		<link>http://programmingzen.com/2011/03/28/what-programming-language-should-i-learn-first/</link>
		<comments>http://programmingzen.com/2011/03/28/what-programming-language-should-i-learn-first/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 22:00:54 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[FAQs]]></category>
		<category><![CDATA[Programming Languages]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1328</guid>
		<description><![CDATA[There are hundreds of different programming languages out there. As a newcomer you can ignore the fact that most of them exist. However, even if we narrow the list to just a dozen mainstream languages, deciding on what programming language to learn first can be a daunting task. You might find yourself asking, should I [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://programmingzen.com/wp-content/uploads/2011/03/python-logo-master-v3-TM-e1301349063786.png" alt="Python Logo" title="Python Logo" width="250" height="84" style="float: right;" align="right" />There are hundreds of different programming languages out there. As a newcomer you can ignore the fact that most of them exist. However, even if we narrow the list to just a dozen mainstream languages, deciding on what programming language to learn first can be a daunting task. You might find yourself asking, should I learn C, C++, Java, C#, or PHP first? If you ask ten programmers this question, you&#8217;ll probably hear ten different answers. Here is my take.</p>
<p>Much as with human languages, programming languages are used to communicate. Interestingly they still involve communication between people, whether other programmers will end up reading/modifying/enhancing your code or you’ll do at a later point in time. Unlike natural languages however, programming languages are unequivocally understood by computers, thanks to the aid of interpreters, compilers, and similar types of software.</p>
<p>Depending on the kind of program you’re trying to write, and in which environment you’re working, you’ll find that some programming languages are better suited than others for certain tasks, even if most common programming languages are labelled as being &#8220;general purpose&#8221;.</p>
<p>For example, if you want to create iPhone and iPad applications, your best bet would be to use Objective-C. For Android smartphones and tablets, in most cases, you&#8217;ll need to become accustomed with Java. If you want to build web applications, you&#8217;ll want to learn client-side technologies such as HTML, CSS and JavaScript (of those three only JavaScript is an actual programming language, but the other two are necessary nevertheless). For the server-side of your web application, you&#8217;ll probably want to learn a language like PHP, Ruby, or Python (all three have frameworks that will help make most web programming tasks easier and less time consuming), rather than a system programming favorite like C. (And of course, one has to mention SQL if you’re interfacing with a relational database).</p>
<p>So should you start your foray into the world of programming languages with JavaScript? What about Objective-C? SQL? My advice is to avoid starting your programming journey with a language that is tailored to a specific environment. This early in the game, your main objective is to learn how to program &#8211; and how to reason like a programmer &#8211; rather than learning a specific language. Once you have mastered the fundamental concepts with the aid of a general purpose programming language, you can ease into other languages as the need arises, depending on the type of software you&#8217;d like to develop.</p>
<p>This is a profession where most of your skills are developed and honed by actually “doing”. If you grasp the fundamentals of programming outright, you can easily pick up a specific language and framework when you need to build iPad applications or whatever else you’d like to create.</p>
<p>A well-rounded programmer will end up learning several programming languages and tools over the course of their career. That said, if you are just starting out, focus on one language first. While this might seem a tad dull on the surface, the good news is that unless you pick a truly exotic programming language, a lot of what you learn will be applicable to other programming languages as well. Remember that at this stage, above all else, you are learning how to communicate your thoughts in precise statements for other programmers to understand (and for the computer to execute).</p>
<p>For this reason, you can&#8217;t really go too wrong with any of the &#8220;somewhat mainstream&#8221;, general purpose programming languages (e.g., C, Java, C#, Perl, Ruby, Python, or Scheme). That said, particularly if you are learning on your own, I&#8217;d advise that you go with a language that will make your learning trek easier. In other words, opt for a programming language that is widely used, well documented, and beginner-friendly. You’re looking for one that isn&#8217;t overly bureaucratic, doesn&#8217;t require you to manage memory directly, or have a deep understanding of mathematics to get started.</p>
<p>As such, my suggestion would be to start with Python, and use it as a tool to learn the general craft of programming. Learning Python is fun, easy, and useful. You’ll be able to use it for a wide array of projects in several environments (scripting, web, scientific research, etc&#8230;).</p>
<p>There are <a href="https://encrypted.google.com/search?hl=en&#038;source=hp&#038;biw=1401&#038;bih=740&#038;q=python+tutorial&#038;aq=f&#038;aqi=g10&#038;aql=&#038;oq=">a variety of free tutorials</a> on the web, but if you want a more rigorous/systematic/academic introduction, I highly recommend &#8220;<a href="/recommends/?1590282418" target="_blank" rel="nofollow">Python Programming: An Introduction to Computer Science (2nd Edition)</a>&#8221; (<a href="/recommends/?1590282418" target="_blank" rel="nofollow">USA</a> | <a href="http://www.amazon.co.uk/gp/product/1590282418/ref=as_li_qf_sp_asin_tl?ie=UTF8&#038;tag=zenruby-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=1590282418" target="_blank" rel="nofollow">UK</a> | <a href="http://www.amazon.ca/gp/product/1590282418/ref=as_li_qf_sp_asin_tl?ie=UTF8&#038;tag=zenrubyca-20&#038;link_code=as3&#038;camp=212553&#038;creative=381305&#038;creativeASIN=1590282418" target="_blank" rel="nofollow">Canada</a>).</p>
<p>Once you have learned the fundamentals of programming, have a decent command of the Python language, and have gained some experience with practical Python projects, you should be better armed to evaluate and pick up other languages and frameworks based on the projects you intend to develop or contribute to in the future (Open Source projects are awesome for this purpose).</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/03/28/what-programming-language-should-i-learn-first/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Programming is a Super Power</title>
		<link>http://programmingzen.com/2011/03/21/programming-is-a-super-power/</link>
		<comments>http://programmingzen.com/2011/03/21/programming-is-a-super-power/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 17:00:26 +0000</pubDate>
		<dc:creator>Antonio Cangiano</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[IT Business]]></category>

		<guid isPermaLink="false">http://programmingzen.com/?p=1325</guid>
		<description><![CDATA[In a society where technology and the Internet have become incredibly prominent elements of our daily lives, being able to program is akin to having a super power. In fact, a programmer is able to not only easily interact with cutting edge technology, but also to take advantage of said technology to transform pure thoughts [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>In a society where technology and the Internet have become incredibly prominent elements of our daily lives, being able to program is akin to having a super power. In fact, a programmer is able to not only easily interact with cutting edge technology, but also to take advantage of said technology to transform pure thoughts into something as tangible and useful as software.</p>
<div align="center"><img src="http://programmingzen.com/wp-content/uploads/2011/03/superheroes.jpg" alt="Programmers at work ;-)" title="Programmers at work ;-)" width="500" height="333" class="aligncenter size-full wp-image-1326" /></div>
<p>I would argue that there has never been a more exciting time for being able to program. While being a part of our industry back in the late seventies and early eighties must have been a very exciting time for programmers, I feel that what we have in our hands now is an even greater opportunity.</p>
<p>Today we are standing on the shoulders of giants, and are able to access amazing development tools, frameworks, and libraries &#8211; mostly for free thanks to the FOSS movement (and even some commercial powerhouses are now available in <a href="http://db2express.com/download/?S_TACT=ACDB201" target="_blank">free versions</a>).</p>
<p>Cloud computing gets rid of most upfront costs and allows us to scale our apps as the need arises. Mobile marketplaces enable us to target millions of mobile users. Documentation to help you learn how to program abounds in a myriad of media, from blog posts all the way to <a href="http://zfer.us/hUnNL" target="_blank">complete video tutorials</a>.</p>
<p>In addition, programming support forums are becoming ever more amazing, thanks to initiatives like <a href="http://stackoverflow.com/" target="_blank">StackOverflow</a>. As such, it’s never been easier (or cheaper, for that matter) to create software that has a major impact on the world.</p>
<p>Even if you have the funds at your disposal to hire programmers to do all the work for you, learning (at least the fundamental basics of) how to program will make your job as a “product guy” considerably easier. Possessing this ability will allow you to better gauge the skill levels of those you’re hiring, and then better communicate your ideas to them, and also understand what the limitations and technical challenges of a given implementation are.</p>
<p>As professional programmers it can be easy to forget how our skills are anything but common. This post is just a thought I wanted to share with those who are considering the possibility of becoming programmers,  but haven’t yet donned the proverbial cape and made the leap (or should I say, the single bound).</p>
<p><small>Photo credit: <a href="http://www.flickr.com/photos/levork/3760382453/">Julian Fong</a></small></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://programmingzen.com/2011/03/21/programming-is-a-super-power/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
	</channel>
</rss>

