<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Unhandled exception dereferencing pointer to object</description><title>[[self new] description]</title><generator>Tumblr (3.0; @wjlafrance)</generator><link>http://wjlafrance.net/</link><item><title>WWDC Preparation List</title><description>&lt;p&gt;I wasn&amp;#8217;t going to post one of these until I could say that I&amp;#8217;m a WWDC 2012 attendee. Today, I won a WWDC Student Scholarship, so I am, so I will.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been to a grand total of one WWDC before, so I guess I have some kind of experience. At least, if you&amp;#8217;re reading this, you seem to think so. Let&amp;#8217;s go!&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Before the conference even begins, there will be a trek to Cupertino on Sunday. Jeff LaMarche, our emeritus organizer, &lt;a href="http://iphonedevelopment.blogspot.com/2012/04/wwdc-pilgrimage-is-on.html"&gt;has the details&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Monday morning, there&amp;#8217;s the keynote. Last year, the line started around 5PM Sunday. Unfortunately, &lt;a href="http://www.apple.com/stevejobs/"&gt;the main reason&lt;/a&gt; for that is no longer with us, but it will still start early. 5AM is not a bad time to plan on getting out of bed.&lt;/li&gt;
&lt;li&gt;If you&amp;#8217;re going to be sitting in the very back of Presidio (the keynote room), and don&amp;#8217;t care about seeing the speakers in meat-space, you might want to go to Marina (the overflow room) so you can actually see the presentation on the huge screens.&lt;/li&gt;
&lt;li&gt;Go to the sessions you want to learn about right now. The biggest feature of WWDC is talking to the presenters after the presentation. The rest is on video.&lt;/li&gt;
&lt;li&gt;Skip sessions. If you aren&amp;#8217;t interested in any sessions for that block, go somewhere else. There are 6149 other developers around you who you should go talk to.&lt;/li&gt;
&lt;li&gt;Use Twitter to your advantage. Occasionally a high profile developer will say &amp;#8220;Nothing looks good right now. I&amp;#8217;m sitting outside Presidio.&amp;#8221; You probably should be too.&lt;/li&gt;
&lt;li&gt;Jeff LaMarche has a lot of other good tips. &lt;a href="http://iphonedevelopment.blogspot.com/2011/03/wwdc-first-timer-survival-guide-2011.html"&gt;Check them out.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;That&amp;#8217;s it. See you there!&lt;/p&gt;</description><link>http://wjlafrance.net/post/22860049053</link><guid>http://wjlafrance.net/post/22860049053</guid><pubDate>Fri, 11 May 2012 15:41:55 -0600</pubDate></item><item><title>Platform lock-in, piracy, legality, morality</title><description>&lt;p&gt;I&amp;#8217;m not a lawyer, so I&amp;#8217;ll try not to discuss the legal standpoint too much. I will make a few comments about my interpretation of the law, but keep in mind, this is not legal advice.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a piece of legislation called &lt;a href="http://en.wikipedia.org/wiki/First-sale_doctrine"&gt;the first sale doctrine&lt;/a&gt;. Generally, this protects your right to sell something you&amp;#8217;ve bought. For example, if I buy a motorcycle from Honda, and then I sell it to a third party 10 years later, I have not infringed any copyrights Honda may have, be they engine design, the manual, etc. The original copy I owned was legal, and I am transferring my legal ownership of that copy to the third party.&lt;/p&gt;
&lt;p&gt;Where it becomes interesting, though, is with electronic goods. Say I buy a book from the Kindle Store. After I&amp;#8217;ve finished reading it, I think it&amp;#8217;s an excellent book and I want to give my copy to a friend to read. I break the DRM if necessary (Digital Millennium Copyright Act allows DRM circumvention in order to access legal content) and send the file to a friend, then destroy my copy. This is just the same as handing my friend the paperback copy, except one important distinction. When I go to a book store, I buy a copy of the book. When I &amp;#8220;buy&amp;#8221; a book from the Kindle Store, I&amp;#8217;m actually buying a strict non-transferable license to the content of the book.&lt;/p&gt;
&lt;p&gt;Moving on from legal speculation, I want to talk about my opinion. I think that if I&amp;#8217;ve paid $7.99 for a Kindle book, as opposed to $7.99 for a paperback book, I should have every right to treat it as a paperback book. If this means that I want to pass the book on to a friend, I think that&amp;#8217;s totally fine. I think that as long as I destroy all copies of my eBook after giving it away, then it should be viewed just the same. I started out possessing a copy where my friend did not, and now he possess a copy while I do not.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s also the issue of platform lock-in. For instance, before I bought my Kindle, I bought several books from Apple&amp;#8217;s iBookstore. These books are in a proprietary ePub format with proprietary DRM that couldn&amp;#8217;t be cracked until recently. Now that they can be cracked, I can legally transfer them to my Kindle, but before I would need to re-purchase the book or otherwise re-aquire it. This is akin to buying a paperback book, getting glasses, and being told you need to buy a new copy if you want to read it with glasses on.&lt;/p&gt;
&lt;p&gt;This concept also applies to going between the worlds of electronic and tangible goods. If I buy a physical copy of &amp;#8220;Programming Clojure&amp;#8221;, an outdated programming book, for $10, then I think I should be entitled to also read this on my Kindle. The person I bought it from has already paid the publisher and author, and I now own their fully paid for copy. Although forcing multiple formats to transferred together as a single copy would be difficult, I don&amp;#8217;t think I should need to repurchase or re-aquire so I can take my book to school without carrying all of the weight.&lt;/p&gt;
&lt;p&gt;I said &amp;#8220;re-aquire&amp;#8221;, avoiding the word &amp;#8220;piracy&amp;#8221;. Calling it &amp;#8220;piracy&amp;#8221; tries to liken it to the piracy committed by actual pirates. Essentially, they come on to your ship and steal your goods, and if you&amp;#8217;re lucky, they also shoot your crew. This re-aquiring is more like &amp;#8220;bootlegging&amp;#8221;, recording a concert with a tape recorder in your boot. Doing that does not detract from anyone else&amp;#8217;s experiences, and certainly doesn&amp;#8217;t kill anyone. It&amp;#8217;s still illegal, of course, but not on the same scale.&lt;/p&gt;
&lt;p&gt;So, in closing, I want to re-state my two points. First, electronic goods should be treated the same way as tangible goods. I should be able to give my books to a friend after reading them. Second, I should be able to take my content from one platform to another freely, including between electronic and tangible platforms.&lt;/p&gt;</description><link>http://wjlafrance.net/post/20085800905</link><guid>http://wjlafrance.net/post/20085800905</guid><pubDate>Wed, 28 Mar 2012 17:21:27 -0600</pubDate></item><item><title>Speak in sensible terms, please!</title><description>&lt;p&gt;Miles per gallon is stupid. In superior countries (like Australia), they use a much more sensical term, liters per 100 kilometers. Of course, we would say gallons per 100 miles here.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve got a tough case to make here. Everyone uses MPG so how can it be stupid? Maybe not so tough. Lots of people use Windows, too. But seriously: When I buy a car, I don&amp;#8217;t want to envision myself on an EPA Estimated 27 mile commute. A 100 mile trip is easier to wrap my head around. As a case study, it was 258 miles round trip to CocoaConf. The mental math was 258 / MPG * (price per gallon). That worked out okay cause I safely assumed the toaster (we rode in a Scion xB) gets 25.8 miles per gallon.&lt;/p&gt;

&lt;p&gt;Let&amp;#8217;s say you&amp;#8217;re riding a motorcycle that gets 59mpg. Maybe you&amp;#8217;re smarter than me but the mental math for that is a head scratcher. So, how about knowing that it takes 1.6 gallons to go 100 miles. 1.6 times 2.6, round to 1.5 times 2.5, it&amp;#8217;s going to be around 3.75 gallons. Multiply by 4 and you know it&amp;#8217;ll cost somewhere in the ballpark of $15 round trip.&lt;/p&gt;

&lt;p&gt;It goes for other things too. I have 12Mbit internet at home. If someone told me they have a 24Tbit hard drive, I&amp;#8217;d giggle like a schoolgirl. So, I have 1.5MBit Internet at home. But that&amp;#8217;s a useless number. How about saying I have Internet that can download 100MB in 66 seconds. That&amp;#8217;s a bit wordy, but it&amp;#8217;s a lot more explanatory. About 40 minutes to download the latest Xcode, just by figuring its 3700MB and I can do about 100MB per minute.&lt;/p&gt;

&lt;p&gt;Finally, I write blog posts at a rate of about 1.65 sandwiches per post. Yummy!&lt;/p&gt;

&lt;p&gt;EDIT: Sensical term, not sensual. Damn you autocorrect.&lt;/p&gt;</description><link>http://wjlafrance.net/post/19725375877</link><guid>http://wjlafrance.net/post/19725375877</guid><pubDate>Thu, 22 Mar 2012 02:21:00 -0600</pubDate></item><item><title>Self-driving cars</title><description>&lt;p&gt;So it begins. Nevada has laws regulating self-driving cars, and &lt;a href="http://tech.slashdot.org/story/12/03/10/010211/california-to-join-nevada-with-rules-for-autonomous-cars"&gt;California&lt;/a&gt; is about to become second. With work from Google, along with others, self-driving cars are about to become a reality. There are several clear benefits:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Cars drop you off and park themselves.&lt;/li&gt;
&lt;li&gt;Your car can return home to drive your kids to school.&lt;/li&gt;
&lt;li&gt;Cars can negotiate and communicate more directly than humans.&lt;/li&gt;
&lt;li&gt;Protocols can be implemented that will extinguish car accidents.&lt;/li&gt;
&lt;li&gt;Computers have near-instant reaction time, hundreds of times better than humans. Navigating city streets at 60+ miles per hour will be safe, provided pedestrians can figure out what &amp;#8220;don&amp;#8217;t walk&amp;#8221; means.&lt;/li&gt;
&lt;li&gt;There will be an increase in skilled work, for manufacturing and programming these cars.&lt;/li&gt;
&lt;li&gt;Commuting will require minimal effort.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;These all sound great, don&amp;#8217;t they? Well, no.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Walking from a parking lot, sometimes half a mile or more, is great exercise.&lt;/li&gt;
&lt;li&gt;If a family only needs one car, the automotive industry will lose a very large amount of money.&lt;/li&gt;
&lt;li&gt;Building an apparatus to open mailboxes and deposit envelopes will be comparatively trivial, so postal workers are now unemployed, as are paperboys.&lt;/li&gt;
&lt;li&gt;If car accidents are impossible, the automotive insurance industry will evaporate. Any error is the fault of the manufacturer.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Of course, industry changes. The people who work for insurance companies will find new jobs, and new industries will be spawned, but the short-term evaporation of an industry will pose a medium-term problem to an already troubled job market.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s one final point to make: I want a car that can drive itself because I hate traffic. I want a car that park itself, because every day I have to park near Capitol Square, I want to punch every city planner in a 100 mile radius. But if you even think once about taking away my motorcycle, you&amp;#8217;ll never hear the end of it. Driving a motor vehicle is not a &amp;#8220;waste of time&amp;#8221; to some people. I use my motorcycle for both commuting and recreation. We&amp;#8217;ve seen how well humans work with computers, and for the vast majority of the population, it&amp;#8217;s probably a blessing that their computer doesn&amp;#8217;t control a thousand-pound sledgehammer that moves at 100 miles per hour.&lt;/p&gt;
&lt;p&gt;Don&amp;#8217;t get me wrong: I want self-driving cars here ten years ago. But it&amp;#8217;ll change things in ways that aren&amp;#8217;t entirely positive, and I think lots of people aren&amp;#8217;t going to like it.&lt;/p&gt;</description><link>http://wjlafrance.net/post/19034316213</link><guid>http://wjlafrance.net/post/19034316213</guid><pubDate>Fri, 09 Mar 2012 20:21:35 -0600</pubDate></item><item><title>Open letter to Verizon Wireless</title><description>&lt;p&gt;To whom it concerns,&lt;/p&gt;
&lt;p&gt;I was a US Cellular customer for several years. I feel they had the best value in regional post-paid wireless. When the iPhone 3G launched, I became interested in app development and took courses at my school. Eventually, I needed to buy an iPhone in order to build production applications. I bought an iPhone 3GS but AT&amp;amp;T had no service at my house, so I returned it. When the iPhone 4 came to Verizon Wireless, I jumped ship from US Cellular and joined Verizon, and brought my fiancee with me.&lt;/p&gt;
&lt;p&gt;I only came to Verizon Wireless because they carried the phone I required for business. It was strictly a business decision, and during the time I was with them, they did nothing that would warrant customer loyalty. I eventually purchased three iPhone 4Ss for myself and coworkers because Verizon would not allow us to upgrade even though we required phones for business. We decided not to switch to Sprint at that point, even though they had lower rates, simply because Verizon &amp;#8220;had us by the cajones&amp;#8221; with their ETF fees. Also, Verizon appeared to be a better value because they offered to unlock phones after 60 days of good standing.&lt;/p&gt;
&lt;p&gt;Later on, Verizon threatened to charge a convenience fee for paying your bill online. Now, how Verizon can call me paying them $200 a &amp;#8220;convenience&amp;#8221; is beyond me, but they dropped this fee, pending an FCC investigation. Of course, Verizon said that they dropped the fee due to customer feedback. If that were true, Verizon should have never let the idea leave the meeting room, as they should know that raising charges on customers would result in poor feedback, but I digress. Pending the investigation, Verizon decided to raise administrative fees instead. I was given notice on my bill that I received mid-January that it would be increasing by 15% per line, effective January 1st. There&amp;#8217;s some very important verbiage in the customer service agreement relating to this:&lt;/p&gt;
&lt;p&gt;&amp;#8220;We may change prices or any other term of your Service or this agreement at any time,but we&amp;#8217;ll provide notice first, including written notice if you have Postpay Service. If you use your Service after the change takes effect, that means you&amp;#8217;re accepting the change. If you&amp;#8217;re a Postpay customer and a change to your Plan or this agreement has a material adverse effect on you, you can cancel the line of Service that has been affected within 60 days of receiving the notice with no Early Termination Fee.&amp;#8221;&lt;/p&gt;
&lt;p&gt;This section is very important because this is the section that protects Verizon&amp;#8217;s customers from them raising fees every month until your cell phone bill is several times what it was when you began, and still being stuck in your contract. Also, this section requires Verizon to provide notice to their customers prior to the increase taking effect. I did not receive notice before January 1st about the administrative charge, which constitutes a breach of contract. Regardless, receiving the bill opened a 60-day window for me to leave, which I am doing now.&lt;/p&gt;
&lt;p&gt;Furthermore, I contacted Global Support to have my phone unlocked in accordance with the unlock policy and the terms of my SIM card agreement. These terms require that I be able to use another wireless carrier&amp;#8217;s SIM card, say, AT&amp;amp;T. I am not able to use an AT&amp;amp;T SIM card in my iPhone 4S, and Verizon has refused to assist me in this matter. I feel that this has damaged me in the amount of the difference between a subsidized iPhone 4S and an unlocked iPhone 4S, that being $450 per line. I purchased three iPhone 4Ss with Verizon, so they owe me $1,350. I am asking that Verizon Wireless unlock all three iPhone 4Ss I&amp;#8217;ve purchased through them by March 1st, 2012. Should they decide otherwise, I will be contacting Ismael Ozanne, JD and J. B. Van Hollen, JD, the Dane County District Attorney and Wisconsin Attorney General, to notify them that I believe Verizon has committed a fraud against every iPhone 4S customer in their jurisdictions.&lt;/p&gt;
&lt;p&gt;Finally, I would request that Verizon show a degree of concern towards their professional customers. I&amp;#8217;d like to let you know that Apple releases a new model of the iPhone each year, and the professionals who develop applications for these devices (and in turn, make the devices more appealing to your customers) need to have the latest devices to test their work on. It would generate enormous good will to allow mid-term upgrades at a $399/$499/$599 price on the iPhone. Regardless, I don&amp;#8217;t think I&amp;#8217;ll be returning to Verizon Wireless any time soon.&lt;/p&gt;
&lt;p&gt;Sincerely,&lt;br/&gt; William LaFrance&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It appears you have changed your contract. I object to this change and consider this change to be materially adverse.&lt;br/&gt; &amp;#8220;If you&amp;#8217;re a Postpay customer and a change to your Plan or this agreement has a material adverse effect on you, you can cancel the line of Service that has been affected within 60 days of receiving the notice with no Early Termination Fee if we fail to negate the change after you notify us of your objection to it.&amp;#8221;&lt;/p&gt;</description><link>http://wjlafrance.net/post/18352355127</link><guid>http://wjlafrance.net/post/18352355127</guid><pubDate>Sun, 26 Feb 2012 19:13:00 -0600</pubDate></item><item><title>The cost of an intern</title><description>&lt;p&gt;I&amp;#8217;m taking an Android development course at my college. Today, our teacher showed us an internship opportunity he&amp;#8217;d been emailed about. The opportunity was to build an app for data collection in an ecological project. It sounded like the intern would be the sole developer on the project (it was indicated that scheduling was flexible), and commitment to the project and reliability were expected. They were offering $8 - $12 per hour.&lt;/p&gt;
&lt;p&gt;According to a report from &lt;a href="http://www.infoworld.com/t/salary-and-job-trends/report-salaries-the-rise-mobile-developers-848"&gt;Bluewolf&lt;/a&gt;, Android developers start around $97,000 per year, or $1,940 per week. This breaks down to around $55 per hour. However, to be in the class, you&amp;#8217;re probably already an experienced Java developer and learning Android is simply another framework, so you&amp;#8217;re much closer to the advanced level.&lt;/p&gt;
&lt;p&gt;The most seasoned developer can only produce a certain level of code per hour. I would hazard a guess that an Android intern will produce 1/4 the code of a professional. That intern will increase his/her value throughout the project, and at the end of the project, they&amp;#8217;ll have visited every step of the process and be much closer to the professional&amp;#8217;s value.&lt;/p&gt;
&lt;p&gt;I was working as an iOS intern for $15 per hour as my first development job, and then moved to a salary job at $400 per week. I&amp;#8217;ve been doing iOS development for about a year now, and I wouldn&amp;#8217;t take a job for less than $30 an hour, and only if I were really interested in the project I were working on. To do so would be a disservice to my fellow coders, since if I&amp;#8217;ll work for $20, they must also be willing to work for $20. I would discourage anyone for taking an internship for a penny less than $15, because a company will then expect others to do so.&lt;/p&gt;
&lt;p&gt;To this, my teacher told me &amp;#8220;Go get my job and then you can discourage students!&amp;#8221;. My to-do list now has &amp;#8220;teacher&amp;#8221; on it.&lt;/p&gt;</description><link>http://wjlafrance.net/post/17187530878</link><guid>http://wjlafrance.net/post/17187530878</guid><pubDate>Mon, 06 Feb 2012 20:15:52 -0600</pubDate></item><item><title>"Make good stuff, then make it easy for people to buy it. There’s your anti-piracy plan."</title><description>“Make good stuff, then make it easy for people to buy it. There’s your anti-piracy plan.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;Jonathan Coulton is wise.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.jonathancoulton.com/2012/01/21/megaupload/"&gt;&lt;a href="http://www.jonathancoulton.com/2012/01/21/megaupload/"&gt;http://www.jonathancoulton.com/2012/01/21/megaupload/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(via &lt;a class="tumblr_blog" href="http://neil-gaiman.tumblr.com/"&gt;neil-gaiman&lt;/a&gt;)&lt;/p&gt;&lt;/em&gt;</description><link>http://wjlafrance.net/post/16763133919</link><guid>http://wjlafrance.net/post/16763133919</guid><pubDate>Mon, 30 Jan 2012 10:11:40 -0600</pubDate></item><item><title>Silly article about AT&amp;T's data prices</title><description>&lt;p&gt;Slashdot ran &lt;a href="http://mobile.slashdot.org/story/12/01/24/1335242/att-caps-netflix-streaming-costs-at-68kyr?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29"&gt;an article&lt;/a&gt; today, titled &amp;#8220;AT&amp;amp;T Caps Netflix Streaming Costs At $68K/Yr&amp;#8221;. The title immediately reaches for net neutrality fiends, but really, they&amp;#8217;re not capping anything.&lt;/p&gt;
&lt;p&gt;The summary says that streaming Netflix for 24 hours straight will consume 2.81GB. I&amp;#8217;m not about to dispute that. However, it also says that can result in charges as large as $68,376. In my last post, I figured that the cost per megabyte on the 300MB plan is $0.067, and 2810 megabytes times $0.067 per megabyte times 365 days is pretty close to their figure. But there&amp;#8217;s a third variable they forgot.&lt;/p&gt;
&lt;p&gt;How stupid does someone have to be to pay their cell phone bill 12 months in a row, each for over $5000, and never think to upgrade to the $30 plan for a rate of $0.01 per megabyte? Forgetting stupidity, if you&amp;#8217;re anyone I know, your cell phone would be shut off long before then because you don&amp;#8217;t even have enough money, so you&amp;#8217;d end your experiment in big numbers. Assuming you started the year on the $30 plan, your end result would actually be 2810 megabytes times $0.01 per megabyte times 365 days, or $10,256.50.&lt;/p&gt;
&lt;p&gt;To ice the cake, the summary proposes an analogy, that you walk into a gym and are told that your bill will be between $360 and $68,376. This analogy doesn&amp;#8217;t hold true at all, because if I walk into an AT&amp;amp;T store and kick and scream all day, I&amp;#8217;ll never be offered a $30/month unlimited plan. They haven&amp;#8217;t offered those in almost two years. Please quit comparing to it. You don&amp;#8217;t see anyone saying &amp;#8220;Ivy Bridge processors are so much faster than an i386!&amp;#8221;&lt;/p&gt;
&lt;p&gt;Mobile data is expensive, but not nearly as expensive as some crazy with a calculator would have you believe. If you want to stream Netflix 24/7/365, do it on your home internet at fixed rates.&lt;/p&gt;</description><link>http://wjlafrance.net/post/16418664163</link><guid>http://wjlafrance.net/post/16418664163</guid><pubDate>Tue, 24 Jan 2012 13:48:33 -0600</pubDate></item><item><title>You guys will get mad at anything, won't you?</title><description>&lt;p&gt;AT&amp;amp;T announced new data plans for smartphones. You can read the &lt;a href="http://forums.macrumors.com/showthread.php?t=1310409"&gt;story&lt;/a&gt; on MacRumors.&lt;/p&gt;
&lt;p&gt;The new data plans are:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;250MB for $15 (iPad only, $0.06 / MB)&lt;/li&gt;
&lt;li&gt;300MB for $20 ($0.067 / MB)&lt;/li&gt;
&lt;li&gt;3GB for $30 ($0.01 / MB)&lt;/li&gt;
&lt;li&gt;5GB for $50, plus tethering ($0.01 / MB)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The old plans were:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;200MB for $15 ($0.075 / MB)&lt;/li&gt;
&lt;li&gt;250MB for $15 (iPad only, $0.06 / MB)&lt;/li&gt;
&lt;li&gt;2GB for $25 ($0.0125 / MB)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Reading the discussion threads on MacRumors, you would think that AT&amp;amp;T just announced they&amp;#8217;re planning to double data prices, not institute price reductions across the board. The cheapest data previously was $12.50 per gigabyte ($22.50 if you wanted tethering), and it is now $10.00 per gigabyte with free tethering on the 5GB plan.&lt;/p&gt;
&lt;p&gt;If you have AT&amp;amp;T right now and don&amp;#8217;t want to switch from your current plan, then don&amp;#8217;t, and while you&amp;#8217;re at it, go outside and quit complaining. Don&amp;#8217;t even try to compare this to the $30 unlimited plan they haven&amp;#8217;t offered for nearly two years.&lt;/p&gt;</description><link>http://wjlafrance.net/post/16111498988</link><guid>http://wjlafrance.net/post/16111498988</guid><pubDate>Thu, 19 Jan 2012 05:34:24 -0600</pubDate></item><item><title>popchartlab:

Santa explained via Venn Diagram.
(via Stephen...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lvsil5Dl1f1qarp45o1_400.gif"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://popchartlab.tumblr.com/post/13837405559/santa-explained-via-venn-diagram-via-stephen"&gt;popchartlab&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Santa explained via Venn Diagram.&lt;/p&gt;
&lt;p&gt;(via &lt;a href="http://bit.ly/sixd8h"&gt;Stephen Wildish&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://wjlafrance.net/post/14343175231</link><guid>http://wjlafrance.net/post/14343175231</guid><pubDate>Fri, 16 Dec 2011 23:39:09 -0600</pubDate></item><item><title>Clean install of Ruby on Rails on Mac OS X</title><description>&lt;p&gt;I&amp;#8217;m going to buy a Mac Mini today, and this is the process I&amp;#8217;m going to follow to make a clean install of Ruby on Rails. I&amp;#8217;ll refine these instructions as I walk through them.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Install Xcode from the Mac App Store. If you have Lion, it&amp;#8217;s a free download. Xcode comes with all of the code compiling utilities that allow us to build our rubies (&amp;#8220;rubies&amp;#8221; are a specific version of ruby) and gems (ruby frameworks). It can also be installed from Apple Developer Connection, but that&amp;#8217;s the hard way. If you download it from the Mac App Store, you&amp;#8217;ve actually only downloaded the installer, so go ahead and install it.&lt;/li&gt;
&lt;li&gt;Open Terminal.app, and visit &lt;a href="http://beginrescueend.com/"&gt;Begin Rescue End&lt;/a&gt; and copy their one-liner to install RVM, the Ruby Version Manager. Pasting this line into a terminal will run RVM&amp;#8217;s installer.&lt;/li&gt;
&lt;li&gt;Read the instructions on your screen. There will be a line of &amp;#8220;shell script&amp;#8221; you need. Copy this line (just as you would in any Mac app), and then type &lt;code&gt;open -a TextEdit .bash_profile&lt;/code&gt; , paste it, and save.&lt;/li&gt;
&lt;li&gt;Close your terminal and re-open it to make sure your environment is up-to-date.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;time rvm install 1.9.3 --with-gcc=clang&lt;/code&gt; to install Ruby 1.9.3, the latest and greatest version of Ruby. I like to use the time command to tell me how long it took, but you don&amp;#8217;t have to.&lt;/li&gt;
&lt;li&gt;You don&amp;#8217;t usually need the with-gcc argument, but at the time of this writing, the 1.9.3 packaging is behaving weird on Lion. Normally, you could just do &lt;code&gt;rvm install 1.9.2&lt;/code&gt;. That ruby is still rather popular, so you should install that now.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;rvm use 1.9.3 --default&lt;/code&gt; to make Ruby 1.9.3 your default ruby, and the one that will be used when you type &lt;code&gt;ruby&lt;/code&gt; .&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;gem install bundler&lt;/code&gt; . A lot of tutorials will say to type &amp;#8216;sudo before &amp;#8216;gem. If you do this, the gem will be installed for use with your &amp;#8220;system ruby&amp;#8221;, which you do not want to use, and won&amp;#8217;t be visible to your RVM ruby.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;gem install rails&lt;/code&gt;. Rails is actually a gem, just another framework on Ruby.&lt;/li&gt;
&lt;li&gt;Gem is pretty smart about handling dependencies, and right now you&amp;#8217;re set to start Rails development. There are a few more gems that aren&amp;#8217;t explicit dependencies of Rails, but that you&amp;#8217;ll still need. To install the remaining essential gems, start a new project. &lt;code&gt;rails new my_awesome_project; cd my_awesome_project&lt;/code&gt;. The last command Rails runs when making a new project is &lt;code&gt;bundle install&lt;/code&gt;, which is the command to install all the gems your project requires. You&amp;#8217;re now completely installed.&lt;/li&gt;
&lt;li&gt;Enjoy! You should now follow Michael Hartl&amp;#8217;s &lt;a href="http://ruby.railstutorial.org/"&gt;Rails Tutorial&lt;/a&gt; and find web development enjoyable again.&lt;/li&gt;
&lt;/ol&gt;</description><link>http://wjlafrance.net/post/14325257335</link><guid>http://wjlafrance.net/post/14325257335</guid><pubDate>Fri, 16 Dec 2011 16:37:00 -0600</pubDate></item><item><title>"XML is like violence. It doesn’t solve anything and shouldn’t be used."</title><description>“XML is like violence. It doesn’t solve anything and shouldn’t be used.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Inspired by: “XML is like violence. If it doesn’t solve your problem, you’re not using enough of it.”&lt;/em&gt;</description><link>http://wjlafrance.net/post/14245885789</link><guid>http://wjlafrance.net/post/14245885789</guid><pubDate>Wed, 14 Dec 2011 20:55:20 -0600</pubDate></item><item><title>Reorganizing and installing hardwood flooring.</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lw85c4wzwc1r6y64io1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Reorganizing and installing hardwood flooring.&lt;/p&gt;</description><link>http://wjlafrance.net/post/14245761493</link><guid>http://wjlafrance.net/post/14245761493</guid><pubDate>Wed, 14 Dec 2011 20:52:52 -0600</pubDate></item><item><title>Loki is a fanboi.</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lvgmt9ZWWm1r6y64io1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Loki is a fanboi.&lt;/p&gt;</description><link>http://wjlafrance.net/post/13536808660</link><guid>http://wjlafrance.net/post/13536808660</guid><pubDate>Wed, 30 Nov 2011 00:17:33 -0600</pubDate></item><item><title>A response to Matt Gemmell turning off comments.</title><description>&lt;p&gt;&lt;a class="tumblr_blog" href="http://acreek.tumblr.com/post/13504259748/a-response-to-matt-gemmell-turning-off-comments"&gt;acreek&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;First.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://wjlafrance.net/post/13505731719</link><guid>http://wjlafrance.net/post/13505731719</guid><pubDate>Tue, 29 Nov 2011 12:08:43 -0600</pubDate></item><item><title>Fixing World of WarCraft's legacy set item storage</title><description>&lt;p&gt;With every World of WarCraft expansion, they introduce new storage bags that allow characters to store more items. These are generally two or four slots bigger, and if a character has six bank slots and four person slots, that&amp;#8217;s 20 or 40 more items. But with the introduction of Void Storage, it seems like they&amp;#8217;re looking for ways to save on database storage. I say this because when you store an item in Void Storage, they remove any enchantments and customization, so it&amp;#8217;s clearly being stored as just an item ID, and the actual record for that specific item GUID is being removed from the database.&lt;/p&gt;
&lt;p&gt;I was looking at Void Storage on the public test realms, and although it&amp;#8217;s a great new feature, it doesn&amp;#8217;t really serve me as a legacy tier packrat. I like to run old raids to collect my old item tiers, just for the sake of looking cool. With transmogrification being introduced, this is obviously intended behavior. So, where should we store our stuff?&lt;/p&gt;
&lt;p&gt;I think that a feature for storing old sets should be allowed. It becomes unlocked when you have a single item from a set. You can store that item in there, Void Storage style. There&amp;#8217;s a database table for the sets:&lt;/p&gt;
&lt;pre&gt;CREATE TABLE EQUIPMENT_SET (
  set_id int PRIMARY_KEY,
  name varchar2 NOT NULL,
  head_id int,
  shoulder_id int,
  chest_id int,
  wrist_id int,
  hand_id int,
  waist_id int,
  leg_id int,
  foot_id int,
  weapon_id int,
  weapon2_id int,
  ranged_id int,
  ring1_id int,
  ring2_id int,
  trinket1_id int,
  trinket2_id int
);&lt;/pre&gt;
&lt;p&gt;Also, a table for a character possessing a set:&lt;/p&gt;
&lt;pre&gt;CREATE TABLE CHARACTER_SET_STORAGE (
  character_id int NOT NULL,
  set_id int NOT NULL,
  head int,
  shoulder int,
  chest int,
  wrist int,
  hand int,
  waist int,
  leg int,
  foot int,
  weapon int,
  weapon2 int,
  ranged int,
  ring1 int,
  ring2 int,
  trinket1 int,
  trinket2 int
);&lt;/pre&gt;
&lt;p&gt;This allows that there&amp;#8217;s no storage for characters who don&amp;#8217;t have any items from a set, like my paladin doesn&amp;#8217;t have a piece of tier 3 Redemption Armor. However, if I have a few piece of Judgement Armor, it&amp;#8217;ll look like this:&lt;/p&gt;
&lt;pre&gt;INSERT INTO EQUIPMENT_SET (set_id, name,              head_id, shoulder_id, chest_id, wrist_id, hand_id, waist_id, leg_id, foot_id, weapon_id, weapon2_id, ranged_id, ring1_id, ring2_id, trinket1_id, trinket2_id)
                   VALUES (217,    "Judgement Armor", 16955,   16953,       16958,    16951,    16956,   16952,    16954,  16957,   0,         0,          0,         0,        0,        0,           0);
INSERT INTO CHARACTER_SET_STORAGE (character_id, set_id, head, shoulder, chest, wrist, hand, waist, leg, foot, weapon, weapon2, ranged, ring1, ring2, trinket1, trinket2)
                           VALUES (1234567890,   217,    1,    1,        1,     1,     0,    0,     0,   0,    0,      0,       0,      0,     0,     0,        0);&lt;/pre&gt;
&lt;p&gt;So, since item sets are already stored in the database (they have to be for set bonuses), this only really adds one table. I&amp;#8217;m sure there&amp;#8217;s already extensive triggering when an item is looted, so checking if the set storage should be unlocked won&amp;#8217;t be significantly more processing, or perhaps that should be processed when a character visits the set storage vendor. But, this would allow more serious players to store all 12 tiers of their gear plus their millions of dungeon and PvP sets, and be an added reward for those who farmed the real items instead of the lookalikes for Transmogrification.&lt;/p&gt;</description><link>http://wjlafrance.net/post/13207470327</link><guid>http://wjlafrance.net/post/13207470327</guid><pubDate>Wed, 23 Nov 2011 10:25:04 -0600</pubDate></item><item><title>Re-launching my blog</title><description>&lt;p&gt;Amazon EC2 has hosted my blog for the past year or so. It&amp;#8217;s been an enjoyable experience, and I liked having my own virtual private server in case I needed to do some Linuxy stuff, but it cost $17 per month and I wasn&amp;#8217;t really interested in paying for that anymore. It looks like Tumblr is pretty simple to use, and bringing my domain name over here wasn&amp;#8217;t too much of a pain, so that&amp;#8217;s where I am now.&lt;/p&gt;</description><link>http://wjlafrance.net/post/12794085067</link><guid>http://wjlafrance.net/post/12794085067</guid><pubDate>Mon, 14 Nov 2011 11:12:35 -0600</pubDate></item></channel></rss>

