<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Promit&#039;s Ventspace</title>
	<atom:link href="https://ventspace.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://ventspace.wordpress.com</link>
	<description>Life, the Universe, and Software</description>
	<lastBuildDate>Sat, 28 Jan 2012 03:57:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ventspace.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://secure.gravatar.com/blavatar/639ce25b09a05c370f6424c164743c58?s=96&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Fbuttonw-com.png</url>
		<title>Promit&#039;s Ventspace</title>
		<link>https://ventspace.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://ventspace.wordpress.com/osd.xml" title="Promit&#039;s Ventspace" />
	<atom:link rel='hub' href='https://ventspace.wordpress.com/?pushpress=hub'/>
		<item>
		<title>SlimDX Status Report</title>
		<link>https://ventspace.wordpress.com/2011/12/25/slimdx-status-report/</link>
		<comments>https://ventspace.wordpress.com/2011/12/25/slimdx-status-report/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 20:17:54 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[SlimDX]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=801</guid>
		<description><![CDATA[Alright, we&#8217;ve talked DirectX and XNA already so let&#8217;s move on to the subject of SlimDX. First off, there&#8217;s a release coming any day now. A number of things were screwed up with the September 2011 release, mostly my fault, and I&#8217;ve been busy patching them up. So there&#8217;s a new December 2011 release around [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=801&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Alright, we&#8217;ve talked DirectX and XNA already so let&#8217;s move on to the subject of SlimDX.</p>
<p>First off, there&#8217;s a release coming any day now. A number of things were screwed up with the September 2011 release, mostly my fault, and I&#8217;ve been busy patching them up. So there&#8217;s a new December 2011 release around the corner, and 4.0 runtimes will be available right at the start. I do want to point out, though, that the runtimes are strictly for end-users (non-developers) who are consuming SlimDX apps. You don&#8217;t need them to develop, and for that matter you probably don&#8217;t need them at all if you&#8217;re at a game development company. They install the DX runtimes, VC runtimes, and SlimDX itself. Given that both runtimes are now well over a year old, odds are you already have this stuff. While that doesn&#8217;t excuse my personal failures in getting this stuff out in a timely fashion, there is almost certainly no need to worry over it for 90% of you.</p>
<p>We&#8217;ve been promising a SlimDX 2.0 release for some time now, with substantially revised architecture. The redesign is based around many of the same concepts driving another wrapper library called SharpDX by Alexandre Mutel. Alex was working with us for a while but we split up over some mutual differences and went our separate ways. I&#8217;ve decided to withhold any comments on his work one way or the other. As far as our work&#8230; we need help. The three of us (Josh Petrie, Mike Popoloski, and myself) have been working on the library for something like five years, and things are pretty stable at this point. Sure there are bug fixes that we&#8217;re shipping out, but especially now that the DirectX SDK updates have stopped, the current codebase is largely good to go. The new codebase for 2.0 is really a prototype, and the simple fact is that it needs a lot of work and none of us has the time anymore.</p>
<p>I repeat: <b>We need new people to help develop SlimDX</b>. If that doesn&#8217;t happen then we&#8217;re likely stuck in place, which might not be that big of a problem except for one thing: Windows 8. SlimDX 2.0 is based on a code generation system that should allow us to target C++/CLI as well as the new C++/CX language. With CX support we get not only .NET but also JavaScript and native code support to interop with Metro apps. Not only that, but it also means ARM support and SlimDX on tablets in the coming years. I think that&#8217;s a big deal, if we can pull it off.</p>
<p>When I first wrote SlimDX in 2006, I believed that automated codegen like SWIG was not well suited to creating a simple, usable wrapper. SlimDX was hand written from the ground up to make using DirectX as painless as possible, and also to reshape the DirectX API into something that made sense as a .NET API. That was directly in the footsteps of Managed DirectX which Tom Miller had created, though we took the model a lot farther in that direct path. Alex came to us with an approach for code-gen which we felt really has potential, but there&#8217;s still a lot of rough edges and a lot of work in getting it to the standard which we really want it to be at. </p>
<p>So, who can help? You&#8217;ll need to have a working familiarity with C++ and C#, and DirectX of course. It is not, contrary to popular belief, necessary to really deeply understand any of these things. Working on SlimDX is an adventure in quirks and details of interop that I can almost guarantee you have not seen. Don&#8217;t worry about experience if you&#8217;re looking to help out. There will be a lot to learn of course, and you&#8217;re going to need a lot of free time to commit to this, but we&#8217;ve spent a long time building SlimDX and have a pretty solid handle on what&#8217;s going on. The only other requirement is the understanding that what you get out of this is experience, an excellent resume item, and skills that are fairly rare. Money is very unlikely to appear directly unless donations take a serious uptick.</p>
<p>If you&#8217;re interested in helping out, please post here, or ping us via Twitter or IRC or e-mail or GameDev or whatever. I really do need one or two people to join as regular developers, otherwise DirectX and Windows may well move forward without a SlimDX to help glue the bits together.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/801/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=801&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/12/25/slimdx-status-report/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Advocacy Won&#8217;t Save the Internet</title>
		<link>https://ventspace.wordpress.com/2011/12/24/advocacy-wont-save-the-internet/</link>
		<comments>https://ventspace.wordpress.com/2011/12/24/advocacy-wont-save-the-internet/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 01:31:58 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Non-technical]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=796</guid>
		<description><![CDATA[There&#8217;s been a lot of rage across the internet and related companies about a US bill called the Stop Online Piracy Act, abbreviated as SOPA. You can look to Wikipedia for what the whole thing is about and why people are upset. In short, it greatly contracts internet freedom and may inflict damage on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=796&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a lot of rage across the internet and related companies about a US bill called the Stop Online Piracy Act, abbreviated as SOPA. You can look to <a href="http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act">Wikipedia</a> for what the whole thing is about and why people are upset. In short, it greatly contracts internet freedom and may inflict damage on the core structure. That is not the part I am writing about. If anything, it&#8217;s amazing that things took so long to get to this point. We&#8217;re seeing the beginning of a war that was always inevitable, and I fear that if we continue to try to solve it at a policy level, freedom will lose as it always does.</p>
<p>Money and power are and always have been centered around a singular point: control. In order to protect an oppressive government, or an oppressive business model, you must control the basic pathways and communication channels. The methods have changed over the course of centuries but the ideas have not. The Internet and the Web represent largely uncontrolled systems of communication. As a result, it&#8217;s been a continued thorn in the side of governments and corporations for many years. From Napster to PirateBay and WikiLeaks, and far more reprehensible things (eg child porn), there&#8217;s been a constant struggle between freedom and control. That struggle has been largely random and without direction, because nobody really knew how to police the internet. The system was designed to be resilient, and there are many, many ways in which blocks by oppressive regimes have proven ineffective.</p>
<p>Now we&#8217;re seeing the next phase, which is to target the gate-keepers. The internet is resilient, but it is not resilient enough. Search engines and link accumulators were targeted first. Coupled with DMCA provisions, sites are vanished from Google and Bing and once that happens the site may as well not exist. Discovery becomes nearly impossible. This has been done to protect &#8220;copyright holders&#8221; and &#8220;intellectual property&#8221;, but that is merely a proxy for ANY information that any party or any government (primarily the US) does not want in the wild. You only need to observe <a href="http://www.wired.com/threatlevel/2011/12/universal-megaupload-video/">Universal&#8217;s assault on the MegaUpload video</a> to understand that. Making somebody invisible, even temporarily, is an enormously powerful ability.</p>
<p>The next target, possibly the crucial one, is the Domain Name System (DNS). DNS is responsible for translating a domain name like &#8220;google.com&#8221; into an IP like &#8220;10.11.12.13&#8243;. The US Department of Homeland Security has gleefully pursued sites by <a href="http://torrentfreak.com/u-s-government-starts-new-round-of-pirate-domain-seizures-110521/">revoking their domain names</a> without anything resembling due process and without available recourse. And without actual authority, for that matter. The results were predictable: a <a href="http://torrentfreak.com/homeland-security-wants-mozilla-to-pull-domain-seizure-add-on-110505/">technical workaround</a> which got the government mad, and a <a href="http://arstechnica.com/tech-policy/news/2011/12/senator-wyden-wants-answers-from-dhs-over-domain-name-seizures.ars">bogus seizure</a> that made the whole program look corrupt, which it is.</p>
<p>The last gatekeeper is the ISP, the guys who hold the actual physical connection between us and the internet. They are <a href="http://www.zdnet.com/blog/london/british-isp-told-to-block-pirate-bay-torrent-site-or-face-court/571">under assault</a> too. It&#8217;s the <a href="http://torrentfreak.com/isps-blocking-the-pirate-bay-violates-freedom-of-expression-111111/">same story</a> over and over again, but in the end the ISPs will cave because it will be difficult or illegal for them to hold out.</p>
<p>SOPA might be the greatest ever attack on Internet freedom, but it&#8217;s also a dead-on logical expansion of a war that has unfolded continuously over the past decade or more. It&#8217;s possible that this particular measure will be defeated. The trouble is that <i>it doesn&#8217;t matter</i>. There is far, far too much at stake for the corporations and governments to let this go so easily. They will learn from their mistakes here, tweak and tune the language and the pitch, and come back with armies of lobbyists time and again until the chaotic political winds line up in their favor. That WILL happen, and things will start to crumble for those who value freedom. </p>
<p>Ultimately Hollywood wants the same thing that the government wants: the ability to control and restrict what happens on the Internet and how. They are on the same side, and all the calls in the world to your Representative will only delay what&#8217;s coming.  It&#8217;s useful to buy time, but at the end of it all there is only one choice that will work: the Internet and the World Wide Web must be made entirely immune to censorship at a fundamental technical level. It must be redesigned so that no amount of legal threat is capable of affecting it at all.</p>
<p>From a technical point of view, that means a few things. First, the DNS system must be secured against the whims of any government. There are two options for doing that. One is to secure the DNS system so that every country controls its own TLDs and cannot affect any others. I believe this is doable with a widespread rollout of <a href="http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions">DNSSEC</a>. The US could still revoke domains, but only those hosted as COM/ORG/NET/US/etc which are ostensibly subject to their legal control anyway. Just pick a country where whatever you&#8217;re doing is legal and sign up with them. The other option is rather extreme, and involves replacing the DNS system entirely with a new naming system that is not under anybody&#8217;s control at all. There is <a href="http://arstechnica.com/tech-policy/news/2010/11/fed-up-with-icann-pirate-bay-cofounder-floats-p2p-dns-system.ars">work along these lines</a>, but it&#8217;s difficult to see potential for mainstream adoption. (On the other hand, it could thrive in environments like P2P networks if the tech details are hacked out.)</p>
<p>Then there are the ISPs. There&#8217;s no point locking the overall system down if your personal uplink still says &#8220;hey, no PirateBay for you no matter how you&#8217;re trying to get there.&#8221; That requires end-to-end encryption of your sensitive traffic. We have a system for that called <a href="https://www.torproject.org/">Tor</a>, but it&#8217;s possibly extreme. The ability to perform encrypted DNS queries locally (this is different from DNSSEC), plus secure HTTPS connections, achieves nearly everything we need. The latter has already become commonplace on major sites, which only leaves us to solve encrypted DNS queries. Luckily <a href="http://www.techrepublic.com/blog/security/dnscrypt-encrypting-dns-communications-simply/7033">we&#8217;ve got that too</a>.</p>
<p>That leaves us with the visibility problem in search engines, social networks, and similar services controlled by a single entity. I&#8217;m less concerned about this, because the steps I&#8217;ve discussed  so far open the door for somebody in a more open country to build systems that are not subject to government or corporate whims.  There is work on a <a href="http://www.itworld.com/software/228393/free-software-activists-take-google-new-free-search-engine">decentralized search engine</a> that isn&#8217;t subject to any control at all, but it&#8217;s unclear whether such a system is actually workable. Similar efforts are underway to replace centralized services such as Facebook, Twitter, and even semi-centralized mechanisms like OpenID. There is a core belief here that any system that is centralized is necessarily a threat, and cannot be trusted. I don&#8217;t know if that&#8217;s the case, but the more research we have in building completely distributed tools the better.</p>
<p>To try and win true freedom for the Internet on political and policy grounds is an eternal battle which we will likely lose. There is too much at stake for the power players to give up what we are asking of them. If we&#8217;re lucky, Google and all the other internet companies will remember to sink millions of dollars into R&amp;D into making the Internet unbreakable, instead of simply lobbying the government not to do it. Once we make it indestructible on a technical level, governments and corporations will be forced to adapt to the new order, instead of trying to stop it. That&#8217;s our only chance to preserve what we&#8217;ve built and earned in the last forty-odd years: a completely free communication system that is equal to everyone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/796/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/796/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/796/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=796&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/12/24/advocacy-wont-save-the-internet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving Away From Godaddy</title>
		<link>https://ventspace.wordpress.com/2011/12/23/moving-away-from-godaddy/</link>
		<comments>https://ventspace.wordpress.com/2011/12/23/moving-away-from-godaddy/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 01:53:28 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[SlimDX]]></category>
		<category><![CDATA[SlimTune]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[SlimDX SOPA GoDaddy]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=790</guid>
		<description><![CDATA[Just a quick update here: My domains, primarily SlimDX.org and SlimTune.com but a few others as well, are currently hosted by GoGaddy. Now GoDaddy is a company with a long, messy history of being a third tier sleaze-bag registrar, but I stuck with them because of pricing. However their recent support of SOPA, and their [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=790&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a quick update here: My domains, primarily SlimDX.org and SlimTune.com but a few others as well, are currently hosted by GoGaddy. Now GoDaddy is a company with a long, messy history of being a third tier sleaze-bag registrar, but I stuck with them because of pricing. However their recent support of SOPA, and their pathetic recant, pushed me over the edge.</p>
<p>Effective immediately, I am shifting all domains away from GoDaddy. Because I&#8217;m rather new to this process, I don&#8217;t know what will happen to DNS and email during the transition. SlimDX or @slimdx.org addresses may become inaccessible for a short period while I sort things out. Please bear with me.</p>
<p>If you are interested in moving your own domains, I found out that NameCheap is running a promotion with code &#8220;SOPAsucks&#8221;. Their pricing is not quite as aggressive as GoDaddy but it appears that they do offer very competitive pricing ($2 specials) nonetheless. Transfers with the code cost $6.99 per domain, which includes a year renewal of the domain. I am sure there are other anti-SOPA registrars but this one is mine.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/790/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/790/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/790/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=790&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/12/23/moving-away-from-godaddy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>DirectX and XNA Follow-up</title>
		<link>https://ventspace.wordpress.com/2011/12/15/directx-and-xna-follow-up/</link>
		<comments>https://ventspace.wordpress.com/2011/12/15/directx-and-xna-follow-up/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 22:28:06 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=788</guid>
		<description><![CDATA[I wanted to clarify and respond to a few things regarding my previous post about DirectX and XNA. First a quick note: the very long standing DIRECTXDEV mailing list is being shut down. Microsoft is encouraging a move to their forums, but in case you&#8217;re fond of the mailing list format there&#8217;s a Google Group [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=788&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wanted to clarify and respond to a few things regarding my previous post about DirectX and XNA. First a quick note: the very long standing DIRECTXDEV mailing list is being shut down. Microsoft is encouraging a move to their forums, but in case you&#8217;re fond of the mailing list format there&#8217;s a <a href="http://groups.google.com/group/directxdev/">Google Group</a> that everyone is shifting over to. If you&#8217;re reading this blog post, you&#8217;re probably interested in the subject matter and so I highly encourage everyone to join. MS Connect&#8217;s entry for DirectX is being discontinued as well, so I&#8217;m not sure how you report bugs now.</p>
<p>Something on the personal front: I got a few comments, directly and indirectly, about being an MS or DirectX &#8220;hater&#8221;. Good lord no! I <i>adore</i> DirectX, XNA, Windows, and Microsoft. I criticize because I want to see these technologies thrive and succeed. I&#8217;ve been doing a lot of iOS/Mac/OpenGL work lately and from a technical standpoint it&#8217;s absolutely miserable. I miss the wonderful Microsoft world of development. But a lot of what I&#8217;m hearing in public and private worries me. My alarmist approach is designed to bring attention to these things, because oftentimes the development teams live in a bubble separated from their users. (Hell, I can barely get in touch with people using SlimDX.) The XNA team, for example, are <i>terrible</i> at communication. It&#8217;s exasperating, because the direction, plans, and schedules are completely opaque &#8212; even to those of us who have signed an MS NDA and are ostensibly supposed to see this information early. (We don&#8217;t see jack shit, by the way. Exasperating.)</p>
<p>Second, no I do not think DirectX is dead. No I do not think everybody should switch to OpenGL. From a platform and technical standpoint, we&#8217;re probably as much or even more of a commitment than in the past. What&#8217;s bothering me is the pathetic way that community, documentation, etc is being handled. Look: <a href="http://msdn.microsoft.com/en-us/library/ee663275.aspx">Where is the DirectX SDK?</a> I don&#8217;t know when that was published, but it appears that nobody noticed it until very recently. How would we? I don&#8217;t wander MSDN online at random. And it&#8217;s been placed right next to <a href="http://msdn.microsoft.com/en-us/library/bb318658(v=VS.85).aspx">this comically worthless page</a>. This is the kind of developer support I&#8217;m complaining about. Nobody outside MS understands what is going on in Bellevue, and I&#8217;m getting this worrisome feeling that nobody inside understands either. The DirectX SDK wasn&#8217;t just a diverged way to deliver support for a core platform technology, which is what seems to be driving the current decision making process. It represented half a gigabyte of commitment to the developers who arguably make the entire Windows ecosystem compelling to a consumer. &#8220;Developers developers developers!&#8221;  &#8220;Yeah, what&#8217;s up?&#8221;  &#8220;Uhhh, hi?&#8221; That&#8217;s what it feels like. MS wants developers around, but they forgot to put any thought into why. (Here&#8217;s a hint guys, ask DevDiv. They seem to still have a clue, C++ team aside.)</p>
<p>And in the other corner, we&#8217;ve got XNA. Whoo boy. There&#8217;s no point to sugarcoating this, although I&#8217;ll probably ruffle some feathers: XNA 4.0 is garbage. It exists to support two things: XBLIG and WP7. XBLIG is a joke, so really the only productive arena remaining is WP7. It&#8217;s sad because XNA 3.x was actually an <i>excellent</i> way to do managed development on PC. 4.0 introduces a profiles mechanism that is focused specifically around the Xbox and WP7, and produces a stunningly foolish situation on PC where DX10+ hardware is required but none of the new features are supported. Worse still, that was a few years ago. Now we&#8217;ve got DirectX 11 with Metro coming down the pipeline and XNA staring blankly back like the whole thing is a complete surprise. It tends to raise some questions like, is XNA 5 coming? Will there be DX11 or Metro or Windows 8 support? Is anybody even listening? And the answer we got was, and I quote: &#8220;We’re definitely sensitive to this uncertainty, but unfortunately have nothing we can announce at this time.&#8221;</p>
<p>My judgement on that message is that XNA does not exist on PC. I&#8217;ll say the same thing I said in 2006 when XNA was first revealed. Treat it as an API that happens to run on Windows as a development convenience, not as something it&#8217;s actually meant to do. The computing world has moved on, and if Microsoft can&#8217;t be bothered to bring XNA along then that&#8217;s just something we have to work with. If and when XNA 5 is announced, then we can go back and take a look at the new landscape.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/788/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/788/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/788/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=788&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/12/15/directx-and-xna-follow-up/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>DirectX and XNA Status Report</title>
		<link>https://ventspace.wordpress.com/2011/11/28/directx-and-xna-status-report/</link>
		<comments>https://ventspace.wordpress.com/2011/11/28/directx-and-xna-status-report/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 02:05:21 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=770</guid>
		<description><![CDATA[A few interesting things have been happening in the DirectX and XNA world, and I think people haven&#8217;t really noticed yet. It&#8217;s been done quietly, not because Microsoft is trying to hide anything but because they&#8217;ve always been big believers in the &#8220;fade into the night&#8221; approach to canceling projects. Or their communication ability sucks. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=770&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few <i>interesting</i> things have been happening in the DirectX and XNA world, and I think people haven&#8217;t really noticed yet. It&#8217;s been done quietly, not because Microsoft is trying to hide anything but because they&#8217;ve always been big believers in the &#8220;fade into the night&#8221; approach to canceling projects. Or their communication ability sucks. Cancel may be the wrong word here, but the DirectX developer experience is going to be quite a bit different moving forward.</p>
<p>Let&#8217;s start with the DirectX SDK, which you may have noticed was last updated in June of 2010. That&#8217;s about a year and a half now, which is a bit of a lag for a product which has &#8212; sorry, had &#8212; scheduled quarterly releases. Unless of course that product is canceled, and it is. You heard me right: there is no more DirectX SDK. Its various useful components have been spun out into a hodge-podge of other places, and some pieces are simply discontinued. Everything outside DirectX Graphics is of course gone, and has been for several years now. That should not be a surprise. The graphics pieces and documentation, though, are being folded into the Windows SDK. D3DX is entirely gone. The math library was released as XNA Math (essentially a port from Xbox), then renamed to DirectXMath. It was a separate download for a while but I think it might be part of Windows SDK from Windows 8 also. I haven&#8217;t checked. The FX compiler has been spun off/abandoned as an open source block of code that is in the June 2010 SDK. There are no official patches for a wide range of known bugs, and I&#8217;m not aware of a central location for indie patches. Most of the remaining bits and pieces live on <a href="http://blogs.msdn.com/b/chuckw/">Chuck Walbourn&#8217;s blog</a>. Yeah, I know.</p>
<p>In case it&#8217;s not obvious, this means that the DirectX release schedule is now the same as the Windows SDK, which always corresponds with major OS updates (service packs and full new versions). Don&#8217;t hold your breath on bug fixes. Last I heard, there&#8217;s only one person still working on the HLSL compiler. Maybe they&#8217;ve hired someone, or I assume they have a job opening on that &#8216;team&#8217; at least. What I do know is that for all practical purposes, DirectX has been demoted to a standard, uninteresting Windows API just like all the others. I imagine there won&#8217;t be a lot more samples coming from Microsoft, especially big cool ones like the SDK used to have. Probably have to rely on AMD and NVIDIA for that stuff moving forward.</p>
<p>That covers the native side. What about managed? Well the Windows API Code Pack hasn&#8217;t been updated in a year and a half so we won&#8217;t worry about that. On the XNA front, two things are becoming very clear:<br />
* XNA is not invited to Windows 8.<br />
* XBLIG is not a serious effort.<br />
The point about XBLIG has been known by most of us MVP guys for a while now. Microsoft promised a lot of interesting news out of this past //BUILD/ conference, which I suppose was true. However you may have noticed that XNA was not mentioned at any point. That&#8217;s because XNA isn&#8217;t invited. All of that fancy new Metro stuff? None of it will work with XNA, at all, in any fashion. (Win8 will run XNA just like any other &#8216;classic&#8217; app.) That also implies pretty minimal involvement with the Windows app store. Combined with the fact that XBLIG has never been a serious effort to begin with, I&#8217;m dubious about tablet support for managed games. XNA does work on WinPhone7 and Win8 does support Win7 apps, so it ought to work in principle. Maybe. Given the niche status of Windows Phone 7 at the moment, and major losses of tech like UDK and Unity from that ecosystem, I&#8217;m also expecting WinPhone8 to be much more friendly to native code. (If not, I expect that platform to fail entirely, and take Nokia with it.)</p>
<p>I&#8217;m also looking at this e-mail right now in my box, which starts as follows:</p>
<blockquote><p>As you know, the 2012 Microsoft MVP Summit is Feb 28-Mar 2, 2012. We wanted to inform you that DirectX and XNA technologies will not be hosting sessions at the Summit. As MVPs, you are still encouraged to attend and be a part of the global MVP community, and you’ll have the ability to attend technical sessions offered by other product groups.</p></blockquote>
<p>Really? No DX/XNA sessions at all? I don&#8217;t think DirectX is fading into the sunset because it&#8217;s a core technology. XNA will most likely disappear. For some reason, Microsoft is getting out of the business of helping developers produce games and other 3D applications at the exact same time that they&#8217;re <a href="http://blogs.msdn.com/b/jasonz/archive/2011/09/14/announcing-visual-studio-11-developer-preview.aspx">adding core support for it</a>. Yes, Visual Studio 11 has model and texture visualizing and editing. It even has a visually based shader editor. I&#8217;ll let you take a wild guess on how well that will work with XNA code.</p>
<p>I don&#8217;t know exactly what Microsoft is going for here, but every couple of days somebody asks me when the next DirectX SDK is going to be released and I think I&#8217;m just explicitly stating what Microsoft has vaguely hinted for a while now. There is no new DirectX SDK, soon or ever. And I&#8217;m not holding my breath for any XNA updates either. I am told there is an XNA 5, but they won&#8217;t be at the summit apparently. If there is some actual future in XNA, feel free to make yourselves heard on the mailing lists because right now it&#8217;s really difficult to understand why anyone would bother.</p>
<p><b>Important clarification:</b> I do NOT think DirectX is being deprecated or vanished or even dramatically changed at the core. (I&#8217;m less confident in XNA.) The SDK is being vanished, subsumed into Windows SDK as a component just like all the rest of Windows. So coding DX is no more special than coding GDI or Winsock. There will still be 11.1 and 12 and all that, probably delivered with OS releases and service packs. &#8220;DirectX 11.1&#8243; will actually be synonymous with &#8220;Win7 SP2&#8243;. That has been the case for a while, actually. What&#8217;s going away is the wonderful developer support we&#8217;ve enjoyed as long as I can remember. Compare the D3DX libraries across 9, 10, and 11. Is this really a surprise? It&#8217;s been slowly happening for years.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/770/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=770&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/11/28/directx-and-xna-status-report/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Purchasing Glasses: Online or Offline?</title>
		<link>https://ventspace.wordpress.com/2011/11/03/purchasing-glasses-online-or-offline/</link>
		<comments>https://ventspace.wordpress.com/2011/11/03/purchasing-glasses-online-or-offline/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 03:55:25 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Non-technical]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=762</guid>
		<description><![CDATA[I pride myself on being an informed consumer, to the point of obsession and beyond. It came time to buy a new pair of glasses, and I realized that I know nothing about them. I&#8217;ve had these things on my face every minute of every day for most of my life, and yet I had [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=762&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I pride myself on being an informed consumer, to the point of obsession and beyond. It came time to buy a new pair of glasses, and I realized that I know nothing about them. I&#8217;ve had these things on my face every minute of every day for most of my life, and yet I had no clue what I was doing. After asking around a bit, I realize that essentially all of my friends and acquaintances were exactly the same way. Those are nearly all computer people, and depend on their glasses for daily life. How much money did you lay out for your glasses? I&#8217;m betting it wasn&#8217;t trivial, but do you know <i>anything</i> about them? Do you even know what brand you&#8217;re wearing?</p>
<p>This post is the first of a couple, dealing with overall eyeglass selection and particularly the question of whether to buy in-store or online. Later on, I&#8217;ll discuss lenses, coatings, etc. But for now, let&#8217;s just tackle the overall problem of where to get your glasses.</p>
<p>Online or brick and mortar store? In most cases, the person doing your eye exam rents space from or is outright affiliated with a retailer. Once your prescription&#8217;s been established, they hand it straight off to the shop, and you pick out your frames. Nice, easy, and totally ignorant. That&#8217;s not to say you&#8217;re getting a bad product, but you are probably paying a lot for the convenience. How much is a lot? The typical margin on frames varies from 100% to 1000%. Yes, that&#8217;s 10x in pure profit. Those $300 designer frames cost probably $30 to manufacture, and they&#8217;re really not precision equipment. I don&#8217;t have good numbers on lens markup, but it&#8217;s not subtle either. Cursory exploration suggests it&#8217;s at least 100%. For your money, you get free adjustments and maybe repairs from the people who sold you the glasses. Odds are you&#8217;ll walk out with a pair of comfy glasses that look pretty decent on you and assurance that if something goes wrong, you&#8217;ll have someone to yell at.</p>
<p>So where do you go in the brick and mortar world? Walmart and Target are, well, pretty much what you&#8217;d expect. Sort of vaguely competent but minimal at best. Big name chains like Lenscrafters are popular and prevalent in malls all over, but it&#8217;s turned out time and again that those guys over-charge and under-deliver. Shoddy lenses, shoddy coatings, even shoddy frames sometimes. <a href="http://pressroom.consumerreports.org/pressroom/2010/11/costco-tops-list-of-eyeglass-retailers.html">Consumer Reports</a> tells me that Costco is stand-out in quality and price, and as a matter of fact that&#8217;s where I got my glasses many times. If I were looking for a quality pair of reasonably priced glasses to try on before I buy, that&#8217;s where I would go.</p>
<p>That was the easy part &#8212; now for online retailers. The first challenge is even knowing what to buy. You&#8217;ll need your measurements, <i>all</i> of them. What size frames are good for you, your prescription, and also an obnoxious number called the pupillary distance (PD). PD is the straight line separation between your pupils when looking straight forward, and is used to place the optical centers of the lenses correctly. It&#8217;s also not officially part of your prescription, and difficult to measure reliably on your own. All opticians are equipped to take this measurement in order to sell you glasses. The only reason you could possibly need this number yourself is to order online, and that is why pretty much no optician anywhere will give you that number. It is not legally part of your prescription. Many online retailers tell you how to measure the PD by yourself. <b>Don&#8217;t do this.</b> I got mine by asking Costco to give me the stats on the last frames I bought from them. I&#8217;m due for a new prescription any day now, and I intend to find an optometrist (not an optician) who will give me the number properly as part of the exam. You&#8217;ll also need to know the ballpark for what frames fit you, best established by finding frames that already fit you and getting the measurements off them. Whether it&#8217;s ethical to do that by trying glasses in a store you won&#8217;t buy from, I leave for you to decide.</p>
<p>So where do you buy from? Pretty much everything you need to know is at <a href="http://glassyeyes.blogspot.com/">GlassyEyes</a>. I believe Zenni Optical is the largest and most popular of the online retailers, and I&#8217;ve been fairly happy with them myself. Just keep in mind that you&#8217;re getting made-to-a-price Chinese frames with Chinese lenses and Chinese coatings shipped from China, with everything that implies. Anti-reflective coatings have a substantial mark-up here, but Zenni charges $5 and corners are getting cut somewhere. Support and returns are also about as easy as you&#8217;d expect with any of these companies, which is to say dismal. If you have a bad experience, you&#8217;re not likely to find a good resolution. But for the price of a reasonably decent Costco pair, I can easily order four or five pairs from Zenni with all of the relevant coatings. The Costco will be better, though, so it&#8217;s still not clear if things stack up in your favor. At the very least, online is a great way to get backup pairs, prescription sunglasses, or costume glasses. That&#8217;s assuming you&#8217;re not in a hurry, because these things take 2-4 weeks and there are horror stories out there about things going completely awry.</p>
<p>So that&#8217;s the run-down. Retailers = reliable and safe but horrifically expensive. Online = enormous cash savings and super sketchy. Actually fairly typical. So which one to pick? If this is for a first time purchase, go to a retailer. Seriously. First-time wearers have absolutely no business buying online. If you have a very complex prescription or health problems with the eyes, you&#8217;re probably better off with the retailers. The online places are just too likely to screw it up, and you need someone who is equipped to CHECK the lenses you get back from the lab. (Some optometrists will do this for ordered glasses though.) If you&#8217;re poor/broke or just looking for backup pairs, online is a great way to get them. I have a couple lying around from online and they do the job. The Zenni coating is clearly trash, though, and I suspect some of these lenses from other online shops won&#8217;t be coated in 6-12 months. But at $20 per, it&#8217;s difficult to care.</p>
<p>If you&#8217;re looking for a primary pair though, especially if you&#8217;re not quite certain about the necessary measurements, then it gets tricky. I ordered four pairs recently to try out. One is great, one is workable, one got returned due to incredibly poor fit, and one is being donated because it looks laughably terrible on me and returning it would net me nothing after shipping. That&#8217;s a risk I took, and I&#8217;m a little irritated about the losses on the bad ones, but my new sunglasses from Zenni are really nice, and these rimless from Goggles4U are adequate too. But I don&#8217;t love them; they fit great and look nice but they&#8217;re made poorly and it&#8217;s kind of a hassle. The people over at <a href="http://www.optiboard.com/forums/forumdisplay.php/11-General-Optics-and-Eyecare-Discussion-Forum?order=desc">Optiboard</a> would gloat; that&#8217;s a forum specifically for people in the optical industry, and their attitude about online purchasing is exactly what you&#8217;d expect, turned up to 11 in some cases. (By the way guys, online optical shops may be a lot of negative things but &#8216;criminal&#8217; isn&#8217;t among them.) Remember that online optical, though in its infancy, represents an existential threat to these people&#8217;s careers.</p>
<p>All the same, I still need a primary pair of glasses. I used a pair from Zenni as my primary for about a year but they were never quite right and the coatings just plain rubbed off. They&#8217;re scratched up badly. So I thought to myself, this one time I&#8217;m going to do it right. I&#8217;m going to visit an actual store, pay for real frames and real lenses, and have a real professional set them up just so. Pretensions being what they are, I wasn&#8217;t willing to buy &#8216;good&#8217; frames unless they were Oakley, and the local Oakley distributor optician guy was really incredibly nice and incredibly helpful. I was pretty much ready to buy from him until I got the price tag: $550. <i>Ouch</i>. I know there&#8217;s about $200 in markup on the lenses alone there. I can get a Leica 14 element or Zeiss 7 element camera lens for not much more money, and corrective lenses are not in the same league of quality as those beauties.</p>
<p>Right now, I&#8217;m researching some alternatives on how to get real brand name, good quality glasses. The Internet is here, after all, and I&#8217;m all for ruthless global competition. (That&#8217;s a nod to you libertarians, as long as we don&#8217;t have VAT in the US.) One of the big problems with online is the lack of professional adjustments, but it&#8217;s not like you always have to take your glasses to the person who sold them to you. Of course a glasses store is hoping to get your business with services like free adjustments, but I don&#8217;t mind adding an extra fifteen bucks on top for fifteen minutes of that person&#8217;s time, and that&#8217;s more than I&#8217;m paid. I&#8217;m also going to find an optometrist who doesn&#8217;t have skin in the retail game and is willing to help me see better, regardless of who I pay for the glasses themselves.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/762/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/762/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/762/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=762&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/11/03/purchasing-glasses-online-or-offline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Neuroscience Meets Games</title>
		<link>https://ventspace.wordpress.com/2011/09/26/neuroscience-meets-games/</link>
		<comments>https://ventspace.wordpress.com/2011/09/26/neuroscience-meets-games/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 20:43:54 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Non-technical]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=751</guid>
		<description><![CDATA[It&#8217;s been a long time since I&#8217;ve written anything, so I thought I&#8217;d drop off a quick update. I was in San Francisco last week for a very interesting and unusual conference: ESCoNS. It&#8217;s the first meeting of the Entertainment Software and Cognitive Neurotherapy Society. Talk about a mouthful! The attendance was mostly doctors and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=751&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time since I&#8217;ve written anything, so I thought I&#8217;d drop off a quick update. I was in San Francisco last week for a very interesting and unusual conference: <a href="http://escons.org/">ESCoNS</a>. It&#8217;s the first meeting of the Entertainment Software and Cognitive Neurotherapy Society. Talk about a mouthful! The attendance was mostly doctors and research lab staff, though there were people in from Activision, Valve, and a couple more industry representatives. The basic idea is that games can have a big impact on cognitive science and neuroscience, particularly as applies to therapy. This conference was meant to get together people who were interested in this work, and at over 200 people it was fairly substantial attendance for what seems like a rather niche pursuit. For comparison&#8217;s sake, GDC attendance is generally in the vicinity of 20,000 people.</p>
<p>The seminal work driving this effort is really the findings by <a href="http://www.bcs.rochester.edu/people/daphne/">Daphne Bevalier</a> at the University of Rochester. All of the papers are <a href="http://www.bcs.rochester.edu/people/daphne/publications.html">available for download as PDF</a>, if you are so inclined. I imagine some background in psychology, cognitive science, neurology is helpful to follow everything that&#8217;s going on. The basic take-away, though, is that video games can have dramatic and long-lasting positive effects on our cognitive and perceptual abilities. Here&#8217;s an <a href="http://www.npr.org/2010/12/20/132077565/video-games-boost-brain-power-multitasking-skills">NPR article</a> that is probably more helpful to follow as a lay-person with no background. One highlight:</p>
<blockquote><p>Bavelier recruited non-gamers and trained them for a few weeks to play action video games. [...] Bavelier found that their vision remained improved, even without further practice on action video games. &#8220;We looked at the effect of playing action games on this visual skill of contrast sensitivity, and we&#8217;ve seen effects that last up to two years.&#8221;</p></blockquote>
<p>Another rather interesting bit:</p>
<blockquote><p>Brain researcher Jay Pratt, professor of psychology at the University of Toronto, has studied the differences between men and women in their ability to mentally manipulate 3-D figures. This skill is called spatial cognition, and it&#8217;s an essential mental skill for math and engineering. Typically, Pratt says, women test significantly worse than men on tests of spatial cognition.</p>
<p>But Pratt found in his studies that when women who&#8217;d had little gaming experience were trained on action video games, the gender difference nearly disappeared.</p></blockquote>
<p>As it happens, I&#8217;ve wound up involved in this field as well. I had the good fortune to meet a doctor at the Johns Hopkins medical center/hospital who is interested in doing similar research. The existing work in the field is largely focused on cognition and perception; we&#8217;ll be studying motor skills. Probably lots of work with iPads, Kinect, Wii, PS Move, and maybe more exotic control devices as well. There&#8217;s a lot of potential applications, but one early angle will be helping stroke patients to recover basic motor ability more quickly and more permanently.</p>
<p>There&#8217;s an added component as to why we&#8217;re doing this research. My team believes that by studying the underlying neurology and psychology that drives (and is driven by) video games, we can actually turn the research around and use it to produce games that are more engaging, more interactive, more addictive, and just more fun. That&#8217;s our big gambit, and if it pans out we&#8217;ll be able to apply a more scientific and precise eye to the largely intuitive problem of making a good game. Of course the research is important for it&#8217;s own sake and will hopefully lead to a lot of good results, but I went into games and not neurology for a reason <img src='https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/751/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/751/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/751/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=751&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/09/26/neuroscience-meets-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Our game Slug Bugs released!</title>
		<link>https://ventspace.wordpress.com/2011/05/28/our-game-slug-bugs-released/</link>
		<comments>https://ventspace.wordpress.com/2011/05/28/our-game-slug-bugs-released/#comments</comments>
		<pubDate>Sat, 28 May 2011 17:20:34 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Non-technical]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=740</guid>
		<description><![CDATA[I&#8217;ve been quiet for a very long time now, and this is why. We&#8217;ve just shipped our new game, Slug Bugs! It uses our Ghost binaural audio which I&#8217;ve teased several times in the past, and is also wicked fun to play. Please check it out! A little later in the week I&#8217;ll probably discuss [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=740&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been quiet for a very long time now, and this is why. We&#8217;ve just shipped our new game, <a href="http://slugbugsgame.com/">Slug Bugs!<br />
<img src="http://slugbugsgame.com/images/mainImage.jpg" width="600"><br />
</a><br />
It uses our Ghost binaural audio which I&#8217;ve teased several times in the past, and is also wicked fun to play. Please check it out! A little later in the week I&#8217;ll probably discuss the development more.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/740/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/740/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/740/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=740&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/05/28/our-game-slug-bugs-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>

		<media:content url="http://slugbugsgame.com/images/mainImage.jpg" medium="image" />
	</item>
		<item>
		<title>How to Block Ads in IE9</title>
		<link>https://ventspace.wordpress.com/2011/03/17/how-to-block-ads-in-ie9/</link>
		<comments>https://ventspace.wordpress.com/2011/03/17/how-to-block-ads-in-ie9/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 04:24:28 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Non-technical]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=735</guid>
		<description><![CDATA[I&#8217;m a little surprised that search results don&#8217;t turn up more useful information for this. Internet Explorer 9 is frankly a fabulous browser, but many people have traditionally avoided IE because it doesn&#8217;t block ads. Well, the new version does &#8212; it&#8217;s just hidden. Do not install ANY ad blocking add-in. It isn&#8217;t necessary. IE [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=735&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a little surprised that search results don&#8217;t turn up more useful information for this. Internet Explorer 9 is frankly a fabulous browser, but many people have traditionally avoided IE because it doesn&#8217;t block ads. Well, the new version does &#8212; it&#8217;s just hidden.</p>
<p><b>Do not install ANY ad blocking add-in.</b> It isn&#8217;t necessary. IE has a facility called Tracking Protection Lists that will do the job. You just need the right setting&#8230;</p>
<p>From IE9, visit <a href="http://www.privacychoice.org/trackerblock/ie9">Privacy Choice</a>, who maintain block lists. Click either giant button, and Internet Explorer will offer to install it. That&#8217;s all you need to do. Most ads will now be blocked.</p>
<p>The downside is that, as far as I can tell, you can&#8217;t really configure this with custom filters like Firefox&#8217;s popular AdBlock Plus extension. Google Chrome&#8217;s available extensions offer custom filters but they don&#8217;t work correctly. Still, this does clean up nearly everything you&#8217;re likely to encounter in most browsing.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/735/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=735&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/03/17/how-to-block-ads-in-ie9/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding Subversion&#8217;s Problems</title>
		<link>https://ventspace.wordpress.com/2011/03/09/understanding-subversions-problems/</link>
		<comments>https://ventspace.wordpress.com/2011/03/09/understanding-subversions-problems/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 23:13:51 +0000</pubDate>
		<dc:creator>Promit</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://ventspace.wordpress.com/?p=730</guid>
		<description><![CDATA[I&#8217;ve used Subversion for a long time, even CVS before that. Recently there&#8217;s a lot of momentum behind moving away from Subversion to a distributed system, like git or Mercurial. I myself wrote a series of posts on the subject, but I skipped over the reasons WHY you might want to switch away from Subversion. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=730&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used Subversion for a long time, even CVS before that. Recently there&#8217;s a lot of momentum behind moving away from Subversion to a distributed system, like git or Mercurial. I myself wrote a series of posts on the subject, but I skipped over the reasons WHY you might want to switch away from Subversion. This post is motivated in part by <a href="http://altdevblogaday.org/2011/03/09/its-time-to-stop-using-subversion/">Richard Fine&#8217;s post</a>, but it&#8217;s a response to a general trend and not his entry specifically.</p>
<p>SVN is a long time stalwart as version control systems go, created to patch up the idiocies of CVS. It&#8217;s a mature, well understood system that has been and continues to be used in a vast variety of production projects, open and closed source, across widely divergent team sizes and workflows. Nevermind the hyperbole, <b>SVN is good by practically any real world measure</b>. And like any real world production system, it has a lot of flaws in nearly every respect. A perfect product is a product no one uses, after all. It&#8217;s important to understand what the flaws are, and in particular I want to discuss them without advocating for any alternative. I don&#8217;t want to compare to git or explain why it fixes the problems, because that has the effect of lensing the actual problems and additionally the problem of implying that distributed version control is the solution. It can be a solution, but the problems reach a bit beyond that. </p>
<p><b>Committing vs publishing</b><br />
Fundamentally, a commit creates a revision, and a revision is something we want as part of the permanent record of a file. However, a lot of those revisions are not really meant for public consumption. When I&#8217;m working on something complex, there are a lot of points where I want to freeze frame without actually telling the world about my work. Subversion understands this perfectly well, and the mechanism for doing so is branches. The caveat is that this always requires server round-trips, which is okay as long as you&#8217;re in a high availability environment with a fast server. This is fine as long as you&#8217;re in the office, but it fails the moment you&#8217;re traveling or your connection to the server fails for whatever reason. Subversion cannot queue up revisions locally. It has exactly two reference points: the revision you started with and the working copy.</p>
<p>In general though, we are working on high availability environments and making a round trip to the server is not a big deal. Private branches are supposed to be the solution to this problem of work-in-progress revisions. Do everything you need, with as many revisions as you want, and then merge to trunk. Simple as that! If only merges actually worked.</p>
<p><b>SVN merges are broken</b><br />
Yes, they&#8217;re broken. Everybody knows merges are broken in Subversion and that they work great in distributed systems. What tends to happen is people gloss over <i>why</i> they&#8217;re broken. There are essentially two problems in merges: the actual merge process, and the metadata about the merge. Neither works in SVN. The fatal mistake in the merge process is one I didn&#8217;t fully understand until reading <a href="http://hginit.com/00.html">HgInit</a> (several times). Subversion&#8217;s world revolves around revisions, which are snapshots of the whole project. Merges basically take diffs from the common root and smash the results together. But the merged files didn&#8217;t magically drop from the sky &#8212; we made a whole series of changes to get them where they are. There&#8217;s a lot of contextual information in those changes which SVN has <i>completely and utterly forgotten</i>. Not only that, but the new revision it spits out necessarily has to jam a potentially complicated history into a property field, and naturally it doesn&#8217;t work.</p>
<p>For added impact, this context problem shows up without branches if two people happen to make more than trivial unrelated changes to the same trunk file. So not only does the branch approach not work, you get hit by the same bug even if you eschew it entirely! And invariably the reason this shows up is because you don&#8217;t want to make small changes to trunk. Damned if you do, damned if you don&#8217;t.</p>
<p>Newer version control systems are typically designed around changes rather than revisions. (Critically, this has nothing at all to do with decentralization.) By defining a particular &#8216;version&#8217; of a file as a directed graph of changes resulting in a particular result, there&#8217;s a ton of context about where things came from and how they got there. Unfortunately the complex history tends to make assignment of revision numbers complicated (and in fact impossible in distributed systems), so you are no longer able to point people to r3359 for their bug fix. Instead it&#8217;s a graph node, probably assigned some arcane unique identifier like a GUID or hash.</p>
<p><b>File system headaches</b><br />
.svn. This stupid little folder is the cause of so many headaches. Essentially it contains all of the metadata from the repository about whatever you synced, including the undamaged versions of files. But if you forget to copy it (because it&#8217;s hidden), Subversion suddenly forgets all about what you were doing. You just lost its tracking information, after all. Now you get to do a clean update and a hand merge. Overwrite it by accident, and now Subversion will get confused. And here&#8217;s the one that gets me every time with externals like boost &#8212; copy folders from a different repository, and all of a sudden Subversion sees folders from something else entirely and will refuse to touch them <i>at all</i> until you go through and nuke the folders by hand. Nope, you were supposed to SVN export it, nevermind that the offending files are marked hidden.</p>
<p>And of course because there&#8217;s no understanding of the native file system, move/copy/delete operations are all deeply confusing to Subversion unless it&#8217;s the one who handles those changes. If you&#8217;re working with an IDE that isn&#8217;t integrated into source control, you have another headache coming because IDEs are usually built for rearranging files. (In fact I think this is probably the only good reason to install IDE integration.)</p>
<p>It&#8217;s not clear to me if there&#8217;s any productive way to handle this particular issue, especially cross platform. I can imagine a particular set of rules &#8212; copying or moving files within a working copy does the same to the version control, moving them out is equivalent to delete. (What happens if they come back?) This tends to suggest integration at the <i>filesystem</i> layer, and our best bet for that is probably a FUSE implementation for the client. FUSE isn&#8217;t available on Windows, though apparently a similar tool called <a href="http://dokan-dev.net/en/">Dokan</a> is. Its maturity level is unclear.</p>
<p><b>Changelists are missing</b><br />
Okay, this one is straight out of Perforce. There&#8217;s a client side and a server side to this, and I actually have the client side via my favorite client SmartSVN. The idea on the client is that you group changed files together into changelists, and send them off all at once. It&#8217;s basically a queued commit you can use to stage. Perforce adds a server side, where pending changelists actually exist on the server, you can see what people are working on (and a description of what they&#8217;re doing!), and so forth. Subversion has no idea of anything except when files are different from their copies living in the .svn shadow directory, and that&#8217;s only on the client. If you have a couple different live streams of work, separating them out is a bit of a hassle. Branches are no solution at all, since it isn&#8217;t always clear upfront what goes in which branch. Changelists are much more flexible.</p>
<p><b>Locking is useless</b><br />
The point of a lock in version control systems is to signal that it&#8217;s not safe to change a file. The most common use is for binary files that can&#8217;t be merged, but there are other useful situations too. Here&#8217;s the catch: Subversion checks locks when you attempt to commit. That&#8217;s how it has to work. In other words, by the time you find out there&#8217;s a lock on a file, you&#8217;ve already gone and started working on it, unless you obsessively check repository status for files. There&#8217;s also no way to know if you&#8217;re putting a lock on a file somebody has pending edits to.</p>
<p>The long and short of it is if you&#8217;re going to use a server, really <i>use</i> it. Perforce does. There&#8217;s no need to have the drawbacks of both centralized and distributed systems at once.</p>
<p>I think that&#8217;s everything that bothers me about Subversion. What about you?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ventspace.wordpress.com/730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ventspace.wordpress.com/730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ventspace.wordpress.com/730/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ventspace.wordpress.com&amp;blog=5043426&amp;post=730&amp;subd=ventspace&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://ventspace.wordpress.com/2011/03/09/understanding-subversions-problems/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="https://secure.gravatar.com/avatar/0a53e788a9f8c852a97d12a1fa13f852?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">Promit</media:title>
		</media:content>
	</item>
	</channel>
</rss>
