<?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>Cobworks</title>
	<atom:link href="http://cobworks.ca/feed/" rel="self" type="application/rss+xml" />
	<link>http://cobworks.ca</link>
	<description>A window to the snails pace of personal development</description>
	<lastBuildDate>Thu, 24 Nov 2011 20:12:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dinosaurs, Dodos and Protestors</title>
		<link>http://cobworks.ca/2011/11/24/dinosaurs-dodos-and-protestors/</link>
		<comments>http://cobworks.ca/2011/11/24/dinosaurs-dodos-and-protestors/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 19:58:13 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=229</guid>
		<description><![CDATA[
The Occupy *Your home town here* movement seems to be winding down. It started as a potentially massive movement to protest bailouts for banks that screwed up while Joe Blow Average struggles to find work. At first a lot of people, possibly 99% of people, were curious. But soon the protesters went from curiosities to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2011/11/protest.jpg"><img src="http://cobworks.ca/wp-content/uploads/2011/11/protest.jpg" alt="" title="protest" width="300" height="200" class="aligncenter size-full wp-image-230" /></a></p>
<p>The Occupy *Your home town here* movement seems to be winding down. It started as a potentially massive movement to protest bailouts for banks that screwed up while Joe Blow Average struggles to find work. At first a lot of people, possibly 99% of people, were curious. But soon the protesters went from curiosities to pains in the ass. They were unable to draw in the all-important teeming masses and the movement became largely represented by students and hippies who claimed to represent 99% of the people. People started to express concern about how much money these protests were costing and why they needed tent cities to protest. Here in Vancouver, a young woman died of a drug over dose in one of the tents.</p>
<p>In <a href="http://en.wikipedia.org/wiki/2010_G-20_Toronto_summit">Toronto, the G20 meeting</a> that took place in 2010 was controversial because of its cost, but also because of the police handling of protesters. 1000&#8217;s showed up to protest all kinds of things, the police at times over reacted and the press in Canada had a field day. There was quite a bit of support for the G20 protesters but there was also a lot of support for the police and government efforts to get their jobs done and not be heckled by protesters &#8216;whining&#8217; about everything. </p>
<p>I remember living in London, England when the Iraq war was just getting started. There were massive protests there against the UK&#8217;s involvement. I attended one such protest, it was huge. Some organizers say that up to 2 million people flooded the streets of central London. It wasn&#8217;t hard to believe, square miles of the streets were crammed. There were passionate speakers in Hyde Park delivering speeches that made my arm hairs stand up at times. There was a lot of energy and power in that crowd I thought. But of course, the UK went into Iraq anyways.</p>
<p>If you go to the capital of any major western country, the iconic main political buildings always have some sort of constant protest going on. So constant and small that no one really even pays attention.</p>
<p>All these protests failed in shaping government policy in any meaningful way. Protesting just doesn&#8217;t work anymore (did it ever?). Political organizations are always polling the voters to gauge where public opinion is on a given issue. That&#8217;s typically where you see governments reacting. When politicians see 50% of voters disagree with their position, politicians change their tune or risk not getting re-elected. </p>
<p>If you care about something so passionately that you show up to protest somewhere, it doesn&#8217;t really matter. You only have one vote no matter how much you care. It&#8217;s the vote of everyone that matters, that’s how democracy works. Governments now safely ignore protests of almost any size without risking re-election because they will have pollsters telling them that there are a few people who care deeply, but they only represent 10% of the population.</p>
<p>With our society and technology changing so fast, it&#8217;s surprising sometimes to see how some things change very little. Protesting is one of those things, but not all the time. Openmedia.ca launched a <a href="http://openmedia.ca/news/160000-strong-petition-stop-internet-metering-become-largest-online-action-canadian-history">very successful</a>, coordinate online campaign to get the government to change the way telecom companies in Canada bill customers. Barack Obama won the presidency with an <a href="http://www.barackobama.com">unprecedented online campaign</a> that reached out to new supporters and constantly tried to engage existing supporters. Campaigns that have a clear purpose, are able to target certain demographics and have someone managing public perception will always do better than a bunch of people camping at city hall.</p>
<p>People are inundated with information every day. Most of it is cast aside as noise. Like junk mail, if you are constantly casting it aside, you&#8217;ll soon just get annoyed that it&#8217;s there at all. A lot of protesters fail to grasp this, and it&#8217;s these protesters that are going the way of the dinosaurs.</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/11/24/dinosaurs-dodos-and-protestors/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Anatomy of a Startup Fail</title>
		<link>http://cobworks.ca/2011/10/11/anatomy-of-a-startup-fail/</link>
		<comments>http://cobworks.ca/2011/10/11/anatomy-of-a-startup-fail/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 22:35:15 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Being Entrepreneurial]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=221</guid>
		<description><![CDATA[
I am officially closing the book on my second business venture. Schedule Bin will still be around but in a much more diminutive state. Let me tell the story in blog form:
A few years ago, a friend and I decided we needed to join forces and create a company. We both had steady jobs as [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2011/10/success.jpg"><img src="http://cobworks.ca/wp-content/uploads/2011/10/success.jpg" alt="" title="success" width="259" height="194" class="aligncenter size-full wp-image-222" /></a></p>
<p>I am officially closing the book on my second business venture. Schedule Bin will still be around but in a much more diminutive state. Let me tell the story in blog form:</p>
<p>A few years ago, a friend and I decided we needed to join forces and create a company. We both had steady jobs as computer programmers that we didn&#8217;t want to give up on, so we decided to start a project in our spare time, <a href="http://runningastartup.com/2011/08/dont-quit-your-day-job.html">as is oft recommended</a>. The first thing we needed was an idea, we thought about making video games because it was something that made sense for the both of us, then one night, he was telling me how someone he knew was complaining there was no online tools to schedule employees. After maulling that over for a couple weeks, we decided that this was the perfect project because it made so much sense and was something we felt we had the ability to do and blow everyone away with the result. We searched for competition online and found there was no one doing online employee scheduling.</p>
<p>So we got cracking and slowly started working on the project. Early on however, my friend and business partner decided that Schedule Bin wasn&#8217;t something for him. We were both realizing that there was a lot of work. When you think of working on a cool new project in your spare time, it&#8217;s easy to glance over the fact that &#8220;spare time&#8221; can mean 1000&#8217;s of hours of evenings and weekends. That is a big commitment no matter how you slice it. Another factor was that competition was suddenly coming out of the wood work. Maybe our google searches got better, maybe other people had the same idea just before we did, for whatever reason, there was competition. So my partner left leaving me the sole pilot steering the ship. A little while later, I lost my full time job.</p>
<p>I started doing software consulting on my own which proved to be a great means to support myself. But I also worked that much harder on Schedule Bin. Perhaps it was pride, perhaps it was genuine niavity, perhaps it was because I thought things were almost done and the end was within sight, perhaps it was a lack of better things to do with my time; I pushed on and the further I pushed the more I realized that things were not working out. Here&#8217;s why:</p>
<ul>
<li>I was never &#8220;almost done&#8221;. Never is a business product &#8220;almost done&#8221;. Even now that it is &#8220;done&#8221; there is no shortage of features that I could be putting into the site. Ever wonder why big software companies like Microsoft, Adobe, Oracle, Apple, etc etc put out new products every year or two? It&#8217;s so they can keep making money. If you build something and call it &#8220;done&#8221; within a year the competition will have the same thing but with better features. You&#8217;re work as an entrepreneur developer is never &#8220;done&#8221;.
</li>
<li>
I made an employee scheduling web site. I have never at any point in my life been passionate about how employee&#8217;s are scheduled. From the get-go this was purely a means to make money for me. When the going got tough, it was that much harder to man up and go the extra mile because it was employee scheduling, not something I had any burning convictions about. I had a hard time thoroughly testing parts of the system myself because it was simply too boring. Don&#8217;t get me wrong, any labor of love is going to hit a point where you are simply sick of it and want it to go away. But it is that much harder when you don&#8217;t really care about it on a good day.
</li>
<li>
I don&#8217;t know if I was a great salesman or not. I certainly put in some effort, maybe not enough. I cold called around 75 business&#8217;s and though I got a few meetings out of it and a chance to demo Schedule Bin, I didn&#8217;t get any sales through cold calls. I hired an SEO company to help me with online marketing for a bit and though I got a few leads, I didn&#8217;t land anything solid. I tried to do my own SEO and as my adwords bill kept coming through each month with little to show for I eventually stopped doing that too. I wasn&#8217;t able to find a repeatable way to sell my product. I did find one paying customer, but they left after a while due to the beta-state of the website, as well as the lack of more enterprisy features.
</li>
<li>
I used Adobe&#8217;s Flex to build the site. It was a tech I was good with and didn&#8217;t think it would be sidelined as fast as is has been. I also used Google&#8217;s AppEngine which was great for the last few years. But now Google has changed the pricing so it is now more expensive to run Schedule Bin (though to be fair, still cheap, just not free). Whats more, changes in their server have unexpectedly broken things on Schedule Bin. So I had to keep a close eye on Google&#8217;s Appengine in case they change something that will break my site.
</li>
<li>
I burnt out. After so many months and so many hours the fire simply petered out. This is the perfect indication that you&#8217;re done with a business product. But because I put in so much effort, the thought that a little bit more effort was all that was needed to turn it all around kept me working on it for a few months longer than I should of. But once you realize you will wake up tomorrow caring less than you care now, nothing less than a weekend camping with Tony Robbins is gonna change your attitude.
</li>
</ul>
<p>Mercifully, I did have enough sense to do software consulting and that kept me pretty busy. Never was I working on Schedule Bin fulltime for more than a couple weeks. Having a steady source of income was great and I feel definitely helped moderate the emotional rollarcoaster ride I was on when working on Schedule Bin.</p>
<p>Here are my tips when considering starting your own business:<br />
- Do something you actually care about. We should of stuck to video games, especially considering it was just as the iphone was coming out (the cliche &#8220;hindsight is always 20/20&#8243; comes to mind).<br />
- Do not put all your eggs in one basket. Always have a plan B. This is especially important if you have a family or other financial obligations.<br />
- The fear of failure is rampant and superficial. Ignore it. I didn&#8217;t fail, I simply found a way to make money that wasn&#8217;t efficient.<br />
- Choose your tech well. Cloud services might be perfect for your project. But at the end of the day, API&#8217;s, EULA&#8217;s, terms and conditions, technology trends, direction of the product/company can all change and leave you and your product blowing in the wind.<br />
- You must be able to generate revenue or attact users right away.<br />
- Test your concept before you start and during development. Don&#8217;t make something for other people to use based on what you think they&#8217;d want.<br />
- No amount of networking or attending startup events will make your product fly if you can&#8217;t get the any part of the business model working on your own. </p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/10/11/anatomy-of-a-startup-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghosts of Microsoft Past</title>
		<link>http://cobworks.ca/2011/10/04/ghosts-of-microsoft-past/</link>
		<comments>http://cobworks.ca/2011/10/04/ghosts-of-microsoft-past/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 07:07:30 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=214</guid>
		<description><![CDATA[With Windows 8, Microsoft is running headfirst into a product launch disaster.]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2011/10/ms_xp.jpg"><img class="aligncenter size-full wp-image-215" title="ms_xp" src="http://cobworks.ca/wp-content/uploads/2011/10/ms_xp.jpg" alt="" width="356" height="300" /></a></p>
<p>With Windows 8, Microsoft is running headfirst into a product launch disaster.</p>
<p>In the tech world, there has been a lot of positive advanced press about the previews of Windows 8. Yet most of these fail to acknowledge a fundamental Achilles’ heel in Microsoft&#8217;s core strategy for its future flag ship product. And Microsoft&#8217;s failure to fully acknowledge this problem threatens to undo everything that is good about its new OS.</p>
<p>Windows 8 is being touted as a fundamental shift in user interface versus other editions of Windows, and it&#8217;s Metro UI borrows heavily from Window Phone 7, which itself is partly inspired by (or is at least a reaction to) Apple&#8217;s iOS, the OS that powers iPads and iPhones.  MS has touted tablets running Windows years before the iPad came on the scene, but as most people who have used these devices know, the experience has been sluggish and entirely non-intuitive. Not a chance that these devices could have ever pulled off the kind of mass consumer adoption that has happened with the iPad.</p>
<p>Enter Windows 8: with its sleek, light-weight, and touch-friendly Metro UI, MS has a chance to redeem itself. At last, a version of windows that will run equally well on both the desktop and on tablets. The early press has been incredibly positive, with tech journalists / bloggers gushing about how MS has finally made the sort of fundamental shift in thinking required to level the playing field with Apple. These tech writers point out that the UI has the right stuff to compete with the iPad in terms of user experience. They then point out the killer feature that gives MS the edge over other platforms (Android, Blackberry) when it comes to competing with and potentially unseating the incumbent Apple: legacy Windows app support. Why would you buy an iPad &#8211; the thinking goes &#8211; when you can have an iPad-like device that you can also run your traditional desktop apps on? Just plug-in a keyboard and you no longer need 2 devices (an iPad and a laptop or PC) &#8211; finally the best of both worlds in one sleek device.</p>
<p>But it doesn&#8217;t stop there: Windows 8 is the first version of Windows to support the same ARM CPU / processor architecture that is used in low powered devices such as virtually all smartphones (iPhone, Android, Blackberry, etc), the iPad, and all Android tablets. Further, all evidence suggests that the new Windows 8 UI runs very well on this hardware, providing a beautiful user experience and fantastic performance while offering the same small form-factor and long battery life that consumers have come to expect from modern tablets. Microsoft looks to have a real winner on its hands!</p>
<p>But there is one problem and tech journalist have either failed to understand this or failed to understand the ramifications: you can&#8217;t run legacy Windows apps on ARM based processors. So the only Windows 8 tablet hardware platform that can compete with the iPad in terms of size, battery life, and performance, won’t run legacy Windows apps. That means that these devices won’t run any of the latest Windows 7 apps you have on your PC, or any of the 10+ year old Windows 9x or Windows NT based apps either. None of it. Nada.</p>
<p>&#8216;But&#8217; &#8211; say the more tech-knowledgeable Windows fans &#8211; &#8216;x86 based tablets running Windows 8 will be able to run legacy apps&#8217;. Yes they will&#8230;.and there is NO IMPROVEMENT in Windows 8 for running these apps on x86 tablets versus running them on tablets with Windows 7. In other words: any tablet running Windows 8 AND supporting legacy apps will have the same compromise between performance and battery life / size that all current Windows 7 tablets have. They won’t be iPad killers.</p>
<p>And most Windows users won&#8217;t want to run the Metro-UI on their desktops or laptops, despite Microsoft’s decision to make it the default user experience for Windows 8. It&#8217;s too touch-oriented and takes more clicks to get things done compared to the current desktop paradigm when using keyboard and mouse. Metro shines on tablets&#8230;.but can only really compete hardware-wise with the iPad when it ditches legacy apps. But at that point, why would anybody buy a Windows 8 tablet with relatively no apps versus an iPad?</p>
<p>I&#8217;m a Windows user and I&#8217;m looking forward to trying out Windows 8&#8230;.but I see a major public-relations disaster in the making. Already amongst the more tech-literate readers of the aforementioned tech blogs and websites, reader response suggests that most people have failed to understand that this OS limitation even exists. And this is because most of the fawning journalists &#8211; distracted by Microsoft&#8217;s pre-product launch theatre &#8211; are themselves failing to understand and point out the &#8216;Windows 8 on tablets&#8217; reality.</p>
<p>To sum it up: Windows 8 can only compete against iPad hardware when it can&#8217;t run Windows apps, at which point its only real advantage is lost.</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/10/04/ghosts-of-microsoft-past/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back in My Day, I had to Telecommute</title>
		<link>http://cobworks.ca/2011/09/12/back-in-my-day-i-had-to-telecommute/</link>
		<comments>http://cobworks.ca/2011/09/12/back-in-my-day-i-had-to-telecommute/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 06:41:58 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cobworks.ca/2011/09/12/back-in-my-day-i-had-to-telecommute/</guid>
		<description><![CDATA[
I recently had the privilage to drive across Canada. It was a great trip but along the way it got a bit distrubing to see the number of small, abandoned highway towns, slowly being reclaimed by nature. More disturbing were the small towns and villages that did have people in them. There were a few [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2011/09/country_road1.jpg"><img src="http://cobworks.ca/wp-content/uploads/2011/09/country_road1.jpg" alt="" title="country_road" width="480" height="360" class="aligncenter size-full wp-image-209" /></a><br />
I recently had the privilage to drive across Canada. It was a great trip but along the way it got a bit distrubing to see the number of small, abandoned highway towns, slowly being reclaimed by nature. More disturbing were the small towns and villages that did have people in them. There were a few towns that must of had dozens of residents. All of which were involved in the local industry (mostly agriculture). These towns are dying, how do I know? No young people. There are simply no opportunities in these towns.</p>
<p><a href="http://en.wikipedia.org/wiki/Telecommuting#Potential_Benefits">This shouldn&#8217;t be</a>. We live in an age where I can freely and easily have conference calls with multiple people around the world, send messages to my friends and family and get the local news from anywhere in the world. All at the same time. As a self employed software consultant, I do things like tweet, write blog posts (hello!) and share with the world things I&#8217;m working on. This is how I create and maintain my reputation and this is what I show potential clients when I need to assure them that I can help them with their problems.</p>
<p>And I&#8217;m not even that great at it. There are many well known and respected programmers making a great living doing similar things. Starting an open source project and selling consulting services is a great way to gain street cred. Indeed, experts and analysts (I use these terms loosely) have <a href="http://www.economist.com/node/21528429?fsrc=scn/fb/wl/ar/mybigfatcareer">noticed work-from-home trends</a> and have already started to coin terms and identify demographs in the changing ways people work. Why does this new class of worker need to be in large centers? Don&#8217;t get me wrong, there are obvious advantages to working from home in a large city, but surely technology makes it easier for people to make a decent living from even small towns in the middle of the Canadian prairies.</p>
<p>Certainly one of the reasons why rural areas are bereft of a skilled work-from-home workforce is the lack of connectivity. Many communities throughout Canada lack things like highspeed internet, they simply don&#8217;t have the infrastructure. But that is likely a minor reason. The major reasons are social attitudes. Most employers insist that they must see company employees in front of company computers for 8 hours of company time per day, seemingly oblivious to the possibility that watching a person in front of a computer doesn&#8217;t mean they are actually working. And most would-be employee&#8217;s don&#8217;t know how to market themselves effectively without being face-to-face with someone.</p>
<p>Also, how would someone in a small town catch on to this work-from-home thing? If you are surrounded by farmers, you less likely to research work-from-home jobs and put the time into learning how to do them and marketing yourself than someone who has access to people who already do that (in a city for example). Maybe people who left town might trickle back, perhaps they got a job that allows them to work from anywhere. They may be able to offer guidance to others. Certainly there is no shortage of online resources to teach people anything to almost any level.</p>
<p>I am sure that sooner or later work-from-home will be a common thing. The reason it will take time is simple: technology evolves much faster than society. </p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/09/12/back-in-my-day-i-had-to-telecommute/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Google is on a Different Level</title>
		<link>http://cobworks.ca/2011/08/28/why-google-is-on-a-different-level/</link>
		<comments>http://cobworks.ca/2011/08/28/why-google-is-on-a-different-level/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 04:44:04 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=195</guid>
		<description><![CDATA[Google is on track to be the most valuable company in the world. I say this because of the vast amounts of information they store and process. Almost every search people do is recorded and intelligent algorithms are constantly combing the data and ultimately finding ways to make better sense of what the world searches [...]]]></description>
			<content:encoded><![CDATA[<a href="http://cobworks.ca/wp-content/uploads/2011/08/enterprise.jpg"><img src="http://cobworks.ca/wp-content/uploads/2011/08/enterprise.jpg" alt="" title="enterprise" width="550" height="293" class="size-full wp-image-196" /></a>
<p>Google is on track to be the most valuable company in the world. I say this because of the <a href="http://en.wikipedia.org/wiki/Google_platform">vast amounts of information</a> they store and process. Almost every search people do is recorded and intelligent algorithms are constantly combing the data and ultimately finding ways to make better sense of what the world searches for. The thing that sets Google apart is the massive scale in which they operate. There are many companies that process data, but Google&#8217;s edge is how much more they process. More data, more variety of data, more data processing routines&#8230; Who knows how such a vast system will evolve, or even snowball into something bigger.</p>
<p>With so much potential power, people are rightly concerned about letting a company like Google have so much info. The consequences of Google suddenly doing blatent acts of evil are pretty harmless now (ie. no one uses Google, the company eventually folds or fades into obscurity). But who knows, <a href="http://www.google.com/transparencyreport/governmentrequests/">governments can and do force Google</a> to share their user information (possibly for evil, as may be the case in places like N. Korea or China). The possibility of hackers or disgruntled employees releasing user data is always there also.</p>
<p>As society&#8217;s slow pace of evolution tries to keep up with the comparitively lightening fast pace of technological innovation, we will need to trust a company like Google at some point if we are to embrace all the awesome things that science fiction has shown are possible through technology. Although there seems to be countless barriers to trusting companies like Google, actions speak louder than words.</p>
<p>Google spends so much money doing genuinely cool things. For example, websites I make use javascript libraries stored on Google&#8217;s CDN saves me money because I don&#8217;t need to use my servers bandwidth to download those files to visitors to my site. Google Books was started because Sergey Brin (Google co-founder) wanted all the books in the world to be accessible to everyone, and also prevent disasters like libraries being destroyed or books being lost. Google&#8217;s google.org is not a separate non-profit entity created by Google, but Google itself using its know-how to improve how the world deals with technology. It is known that about 95% of Google&#8217;s revenue comes for ads. Admittedly, their ads are EVERYWHERE, but I also think it&#8217;s worth while pointing out that Google has <a href="http://en.wikipedia.org/wiki/List_of_Google_products">dozens of products</a> that are feature rich, freely available and don&#8217;t even require you to register to use them.</p>
<p>Etc, etc</p>
<p>Apple has been in the news a lot lately. Everyone and their kitchen sink owns, or wants to own, one of their products. The <a href="http://mashable.com/2011/05/09/apple-google-brandz-study/">Apple brand is probably the strongest brand</a> in the world, and there are probably people out there who would actually kill me for bad mouthing Apple or Steve Jobs. But why? Why such feirce loyalty? Apple makes great products, but what has one of the worlds largest companies given back? Not a fucking thing. Since Steve Jobs came back to Apple in &#8216;96, they haven&#8217;t donated anything to anyone. There are a lot of reasons to fear/hate/boycott Apple, but I honestly can&#8217;t find anything positive to say about the company aside from the obvious &#8220;they make cool products&#8221;. </p>
<p>Actions speak louder than words. Though we may still be a far way off from lauching space ships to seek out new life and new civilizations, I&#8217;ll put the limited amount of trust I have reserved for massive companies, and my hard earned dollars, in with companies like Google as I can&#8217;t think of any other organization willing to spend so much money on sending a space ship to explore space with the sole purpose of learning. In fact, every other organization on the planet would call that a waste of money.</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/08/28/why-google-is-on-a-different-level/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Will I Ever Own 0&#8217;s and 1&#8217;s?</title>
		<link>http://cobworks.ca/2011/05/18/will-i-ever-own-0s-and-1s/</link>
		<comments>http://cobworks.ca/2011/05/18/will-i-ever-own-0s-and-1s/#comments</comments>
		<pubDate>Wed, 18 May 2011 17:10:52 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=173</guid>
		<description><![CDATA[
I own my bicycle. I can ride it whenever I want, when I want. I can add parts to it to improve it. I can paint it. I can destroy it or give it away for any price I want. I can put a flower-rimmed basket on it and start a delivery service with it. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2011/05/pig_digital.jpg"><img src="http://cobworks.ca/wp-content/uploads/2011/05/pig_digital.jpg" alt="" title="pig_digital" width="525" height="375" class="aligncenter size-full wp-image-184" /></a></p>
<p>I own my bicycle. I can ride it whenever I want, when I want. I can add parts to it to improve it. I can paint it. I can destroy it or give it away for any price I want. I can put a flower-rimmed basket on it and start a delivery service with it. I own my bicycle.</p>
<p>All the digital things I own, I own in the sense that I can use the product/service within the guidelines of the terms and service and I can stop using the product/service at any time (unless there are contractual obligations). That is the extent of &#8220;ownership&#8221; with 0&#8217;s and 1&#8217;s. </p>
<p>With any digital software or content you purchase or use, you are virtually always required to agree to a terms of service agreement and/or an end user license agreement. Pretty much everything I use on my computer requires me to go through at least one of these tombs of legalese. The truth is that I rarely ever read more than a paragraph, there is often pages and pages of information. So much to read that rather than forcing me to scroll to the bottom of the text containing one of these agreements, and at least bettering the odds that I&#8217;ve gleemed something from the agreement, often there is just a &#8220;next&#8221; button to the side, allowing me to completely skip reading the agreement. I assume this is done because the agreements have gained so much mass that it could take so long to get to the bottom of an agreement, many potential customers may get lost in the madness of so much jargon and abandon the sign-up.</p>
<p>A friend and I were recently discussing eReaders. He had recently purchased an Amazon Kindle and had nothing but praise for the device. It got me thinking that I really should get an eReader too. So I did a bit of research. I found a lot of forum posts about how Amazon doesn&#8217;t sell you (as in you don&#8217;t own it) any ebooks you purchase. Rather, they lease them out to you and have the power at anytime to revoke that license and take back the ebooks you purchased (as has <a href="http://blogs.wsj.com/digits/2009/07/30/lawsuit-amazon-ate-my-homework/">happened in the past</a>). &#8220;That&#8217;s bullshit&#8221; I thought and set forth with plans to buy the Kobo, which doesn&#8217;t have such a checkered past. But then my friend pointed out that they have the same terms in their terms and conditions, they just haven&#8217;t flexed their legal powers like Amazon has, yet.</p>
<p>Which got me thinking, I don&#8217;t own anything on my computer. Even emusic, which I always held as the defacto example of the way an internet company should work and how it assures me that I &#8220;own&#8221; the DRM free music I download from their site, has a gotcha. Their terms and conditions states that </p>
<blockquote><p>&#8220;Content received through the Service may be used and played for your personal, non-commercial use only.&#8221;</p></blockquote>
<p>So does this mean that if I DJ for a living, I can&#8217;t use the music I &#8220;own&#8221;? What do they mean by &#8220;personal use&#8221;?</p>
<p>I sent emusic an email asking for clarification, here&#8217;s what they said:</p>
<blockquote><p>Unfortunately, we can&#8217;t really answer that question. We cannot define what &#8220;personal, non-commercial use&#8221; is.<br />
We understand you have some ideas in mind for the MP3s you download, but we recommend seeking professional legal advice before using that music as you requested below. </p></blockquote>
<p>So, the company I purchase music to &#8220;own&#8221; from doesn&#8217;t know if I actually own my music the way I own my bike. This was the stalwart of digital content ownership and forward thinkng terms and conditions in my mind. Now that part of my mind is a hollowed out husk. I will never completely own anything I pay for on the internet. Everything is ultimately &#8220;owned&#8221; by large companies who license out content and services. </p>
<p>To be fair, in practise, and considering how fast things have changed over the last few decades, this seems to have been somewhat balanced: computers are increasingly being used despite this. But at the same time, I feel lots of companies would benefit to rethink how business should be done over the internet. Where production costs are virtually nothing, and distribution costs are fractions of a cent. Why am I still paying $8 for an ebook I don&#8217;t own?</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2011/05/18/will-i-ever-own-0s-and-1s/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mobile Flash&#8217;s Growing Pains</title>
		<link>http://cobworks.ca/2010/11/21/report-from-mobile-flashs-front-lines/</link>
		<comments>http://cobworks.ca/2010/11/21/report-from-mobile-flashs-front-lines/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 19:13:38 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Being Entrepreneurial]]></category>
		<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=163</guid>
		<description><![CDATA[
I&#8217;ve recently commented on the lack of games on Android and thought that the Android market could use a good tower defense game. Of course, it would be nice to make money on my side projects, so I thought it would be really good to port my game to iOS and other modern devices, maximizing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2010/11/impossible.png"><img src="http://cobworks.ca/wp-content/uploads/2010/11/impossible.png" alt="" title="impossible" width="366" height="324" class="aligncenter size-full wp-image-166" /></a><br />
I&#8217;ve <a href="http://cobworks.ca/2010/04/19/why-android-market-has-no-games/">recently commented</a> on the lack of games on Android and thought that the Android market could use a good tower defense game. Of course, it would be nice to make money on my side projects, so I thought it would be really good to port my game to iOS and other modern devices, maximizing my potential market and ideally, selling a lot more games.</p>
<p>The problem is that me and a friend working on a game don&#8217;t have the time, energy or mental fortitude to port our game to all those platforms. This has been the dilemma of the mobile application developer for years. Unlike desktop development where 90% of your market runs the same platform, mobile is, has always been and very likely will always be a fractured market with no clearly dominate player. </p>
<p>What this means is that I need to put in a lot more work for my apps to reach the majority of smart phone users. I have worked at companies that make their own mobile frameworks with the dream of one day being able to plug an xml file through their machine and have a blackjack game (for example) spit out the other end. Problem is that platforms are always being updated forcing you to always update your framework. The biggest problem though is that if your apps are so simple that a framework can make them, it will be faster and cheaper to just build the apps using reusable code.</p>
<p>Adobe is trying to be the new Java (only focusing on the front end rather than servers). As an independent developer, I applaud their efforts but gotta say mobile Flash is in an alpha stage right now and is not ready. After trying to port my tower defense game to my Nexus One, I was surprised to find everything was just really slow, across the board. I put in some diagnostic code and discovered that the mobile version of my game takes 50% longer to do everything. 30 FPS became 20 FPS. What I thought would be the processor intensive parts of the game (the path finding) actually ran fine. It was the graphics, drawing one circle around a selected tower slowed things by a further 35-50%. I have heard that when doing mobile Flash development to avoid using any vector graphics (using the Graphics API), but the truth is that any vector graphics kills your apps performance to the point where vector drawing shouldn&#8217;t be allowed on mobile Flash, it is unusable. </p>
<p>Of course, the problem is that once you do that, you fracture your cross-platform platform. But that doesn&#8217;t really matter anyways as just using Sprite&#8217;s and bitmaps alone slows my app down to the point off being unusable (and those are essential to Flash). If you look at Adobe evangelists showing off Flash on their phones, they are usually apps where there is very little movement (showing an image gallery is common). I wish they would stop doing this as I find it misleading. What would be great is for Adobe to instead advise developers on how to optimize their Actionscript code for mobile devices (other than a few <a href="http://www.actionscript.org/forums/showthread.php3?t=249212">forum posts</a>, there is really nothing on the web providing guidelines on this). If this isn&#8217;t possible, developers are going to abandon Flash as a mobile platform, but if Adobe keeps acting like there isn&#8217;t an 800 pound gorilla in the room, developers might start abandoning Flash all together.</p>
<p>Of course, if RIM and Adobe are able to make their new QNX OS and Flash work fast and zippy together, that could be the time where Adobe can start shaking the &#8220;poor performance&#8221; monkey off it&#8217;s back. If they don&#8217;t pull it off, I hope RIM has a native SDK in the works.</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2010/11/21/report-from-mobile-flashs-front-lines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rotating Objects Around Their Center</title>
		<link>http://cobworks.ca/2010/10/25/rotating-objects-around-their-center/</link>
		<comments>http://cobworks.ca/2010/10/25/rotating-objects-around-their-center/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 16:45:31 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Game Development]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=154</guid>
		<description><![CDATA[In actionscript, when you create a Bitmap or Movieclip or Sprite, it&#8217;s reference point is at the top left at 0, 0 meaning that if you rotate an object, it will rotate around the top left corner, not the center. 
I am currently working on a tower defense game and needed the turrets for my [...]]]></description>
			<content:encoded><![CDATA[<p>In actionscript, when you create a Bitmap or Movieclip or Sprite, it&#8217;s reference point is at the top left at 0, 0 meaning that if you rotate an object, it will rotate around the top left corner, not the center. </p>
<p>I am currently working on a tower defense game and needed the turrets for my towers to rotate around the center. There are many sites such as <a href="http://ryanbosinger.com/blog/2008/actionscript-30-rotate-around-center-point/">Ryan Bosingers</a> that correctly explain you need to use a matrix and transform your object so that the point you want to rotate around is at 0, 0. </p>
<pre class="brush: as3;">
private function rotateAroundCenter (ob:*, angleDegrees:Number, ptRotationPoint:Point) {
      var m:Matrix=ob.transform.matrix;
      m.tx -= ptRotationPoint.x;
      m.ty -= ptRotationPoint.y;
      m.rotate (angleDegrees*(Math.PI/180));
      m.tx += ptRotationPoint.x;
      m.ty += ptRotationPoint.y;
      ob.transform.matrix=m;
 }
</pre>
<p>The problem with solutions such as the above is that over time your objects can start to drift. This is caused because once you rotate your object, you are altering it&#8217;s width and height. If you rotate a square 45 degrees, it is a diamond and its width is greater. In the function above you transform an objects back X pixels, rotate it a bit then transform it back the same X pixels, ignoring the fact that the rotation changed the width and height slightly. This adds up over time, which is why you want to basically reset your matrix with the <code>identify()</code> method:</p>
<pre class="brush: as3;">
private function rotateAroundCenter (ob:*, angleDegrees:Number, ptRotationPoint:Point) {
      var m:Matrix=ob.transform.matrix;
      m.identity()
      m.tx -= ptRotationPoint.x;
      m.ty -= ptRotationPoint.y;
      m.rotate (angleDegrees*(Math.PI/180));
      m.tx += ptRotationPoint.x;
      m.ty += ptRotationPoint.y;
      ob.transform.matrix=m;
 }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2010/10/25/rotating-objects-around-their-center/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get All Fields From App Engine Expando</title>
		<link>http://cobworks.ca/2010/10/06/get-all-fields-from-app-engine-expando/</link>
		<comments>http://cobworks.ca/2010/10/06/get-all-fields-from-app-engine-expando/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 23:59:55 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cobworks.ca/?p=147</guid>
		<description><![CDATA[To get a dictionary of all the fields, including dynamic fields, from an appengine datastore Expando (or even Model) class, add this method to your model:
def getFields(self):
      combinedDict = self.properties()
      combinedDict.update(self._dynamic_properties)

      return combinedDict

]]></description>
			<content:encoded><![CDATA[<p>To get a dictionary of all the fields, including dynamic fields, from an appengine datastore Expando (or even Model) class, add this method to your model:</p>
<pre class="brush: python;">def getFields(self):
      combinedDict = self.properties()
      combinedDict.update(self._dynamic_properties)

      return combinedDict
</pre>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2010/10/06/get-all-fields-from-app-engine-expando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Session Management With Google&#8217;s App Engine</title>
		<link>http://cobworks.ca/2010/09/28/session-management-with-googles-app-engine/</link>
		<comments>http://cobworks.ca/2010/09/28/session-management-with-googles-app-engine/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 23:05:15 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cobworks.ca/2010/09/28/session-management-with-googles-app-engine/</guid>
		<description><![CDATA[
The Problem
I have a simple site, www.radstuff.com, that requires a login to view all kinds of rad stuff. I don&#8217;t want anyone to enter www.radstuff.com/privatedata to view any private data. Also, I want to know when a user logs in what kind of user they are (admin, regular, manager, etc).
The Solution
Gaeutilities&#8217; Session is pretty sophisticated. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cobworks.ca/wp-content/uploads/2010/09/sessionmanagment.jpg"><img src="http://cobworks.ca/wp-content/uploads/2010/09/sessionmanagment.jpg" alt="" title="sessionmanagment" width="500" height="375" class="aligncenter size-full wp-image-142" /></a></p>
<p><strong>The Problem</strong><br />
I have a simple site, www.radstuff.com, that requires a login to view all kinds of rad stuff. I don&#8217;t want anyone to enter www.radstuff.com/privatedata to view any private data. Also, I want to know when a user logs in what kind of user they are (admin, regular, manager, etc).</p>
<p><strong>The Solution</strong><br />
Gaeutilities&#8217; Session is pretty sophisticated. It generates 3 tokens at a time (for async requests some pages may make) and stores them as a list in both the gae&#8217;s datastore and cache. Every time you instantiate it, it will automatically generate tokens and assign one to the cookie and update the cache and datastore with the new tokens. Tokens are valid for 5 seconds after which they will be re-generated again.</p>
<p>I found all of this a bit more than I needed, and immediately began to pair it down so that it would suit my needs. One of the things I found was the class function check_token that checked if a token was still valid (ie. exists, hasn&#8217;t expired). With this I created a session StringProperty in my user model so that when a user logs in, I would use gaeutilities to generate a session token and save it in my user model. Because gaeutilities automatically creates a cookie with the session token in it, the next time a user requests data from my app, I check the cookie&#8217;s session token and see if it exists in any of the user records. If it doesn&#8217;t, the user gets redirected to the login page. If a user record exists with that session token in it, I create a new token, update the cookie and the user&#8217;s session token in the datastore and allow them to view the requested page.</p>
]]></content:encoded>
			<wfw:commentRss>http://cobworks.ca/2010/09/28/session-management-with-googles-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

