tag:blogger.com,1999:blog-22382009671896326712024-02-18T21:32:02.518-08:00Radio Free LunchDavid Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.comBlogger143125tag:blogger.com,1999:blog-2238200967189632671.post-85844178954636025672016-04-07T08:54:00.000-07:002016-04-07T08:54:34.356-07:00Game Center With a Bad Network<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjPM2Aj829SlOztt287vXOR-dtCLeN2uMRlnXOwjQcpaoOpDue8aRxFpMY7-gSGgjXv56gVIvQF5apjeba0szPADDHIJZ9fe_6STl9040Vt0MOSMspm3jKS8Da1hUoUTGMoxi-DZPx7Pcw/s1600/BulgeInvite.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjPM2Aj829SlOztt287vXOR-dtCLeN2uMRlnXOwjQcpaoOpDue8aRxFpMY7-gSGgjXv56gVIvQF5apjeba0szPADDHIJZ9fe_6STl9040Vt0MOSMspm3jKS8Da1hUoUTGMoxi-DZPx7Pcw/s320/BulgeInvite.png" width="280" /></a></div>
I got a question about Game Center and network connectivity, and thought I’d share my thoughts publicly, since this was a major issue we had to deal with at Shenandoah Studio when we did multiplayer for <i>Battle of the Bulge</i>, <i>Drive on Moscow</i>, and <i>Desert Fox</i>.<br />
<br />
<blockquote class="tr_bq">
Basically, the issue stems from loss of internet connection during a turn: at the end of a turn we save the state of the game board (locally, to PlayerPrefs), and use an End Turn method to communicate to Game Center that the turn is over.<br />
<br />
If there’s no internet connection, the game state is saved but the end of turn message never gets sent (Android is awesome in the sense that end of turn messages are cached if the user has no internet connection, and sent when there is).</blockquote>
<br />
That is awesome, if it handles all network errors and not just lack of internet.<br />
<br />
<blockquote class="tr_bq">
So my question here is really, how do you gracefully handle a loss of internet connection? The only solution we have is to test for a connection prior to saving/ending the turn and present a pop-up advising the player to connect to the internet (otherwise, their turn is held in that state).</blockquote>
<br />
This one is enormously tricky with Game Center, because it has no guaranteed delivery.<br />
<br />
First, I would not check for any specific error, because you can have anything at all go wrong during networking. (“No internet” might be worth a special test just because the player can deal with it by turning on WiFi or whatever, but it’s the least of your problems.)<br />
<br />
Basically, you need to send the turn to Game Center and check for an error when your completion handler is called. If there’s failure, you need to do your own saving, and then send the update again later.<br />
<br />
The problem is, you can get false negatives. Did you get a timeout because your network was so slow or noisy that the packet could not be delivered to Game Center? Or was the timeout because the “yes, turn received” acknowledgement from Game Center timed out? This is critical because the other player will have gotten the turn, and may have sent their own by the time you get to repost. So you also need some sort of logic to handle posting a stale turn.<br />
<br />
To test your code, you’ll want to use the Network Link Conditioner (enable this in the Developer settings on the device). This lets you simulate a terrible network. Just be sure to disable it when you want to actually do anything (it’s all too easy to forget and wonder what’s wrong with your phone).<br />
<div>
<br /></div>
David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-78248381491766907872015-07-28T12:25:00.000-07:002015-07-28T12:25:08.028-07:00King of Dragon Pass is on Steam!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiskQJWSL3e_s-zx04ccx1nakd52WFiRLbVWFijg8IARyKOl1VPIsD6sceJV-LGFK1oWWpdgP-M7oE33W9DaitcpP8G_z0WurJnqeefB5Plwmxqu6E5QVa2JEw6nJThXSlqJTKRSWB8W0in/s1600/header.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiskQJWSL3e_s-zx04ccx1nakd52WFiRLbVWFijg8IARyKOl1VPIsD6sceJV-LGFK1oWWpdgP-M7oE33W9DaitcpP8G_z0WurJnqeefB5Plwmxqu6E5QVa2JEw6nJThXSlqJTKRSWB8W0in/s320/header.jpg" width="320" /></a></div>
I originally created King of Dragon Pass mostly with a Mac, and all of the <a href="https://itunes.apple.com/us/app/king-of-dragon-pass/id335545504?mt=8&uo=4&at=10laGk">iOS adaptation</a> used a Mac. But the original game ran only under Mac Classic, so I haven’t been able to play the game on a Mac since Apple removed Classic support.
So I’m really happy that HeroCraft is bringing the game back to Mac OS X. King of Dragon Pass for Windows and Mac is <a href="http://store.steampowered.com/app/352220">now available on Steam</a>! (You can also discuss it in the <a href="http://steamcommunity.com/app/352220">Steam Community</a>.)<br />
<br />
I’ve talked more about King of Dragon Pass at the <a href="http://kingofdragonpass.blogspot.com/">Development Blog</a> over the past few years.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-30401756913785752302012-11-03T16:55:00.001-07:002012-11-03T16:55:51.623-07:00iPad mini first thoughtsI’ve had the new iPad mini for about a day, and have been trying to use it whenever practical (I got the WiFi model so I can’t use it in the car).<br />
<br />
My main impression continues to be: it is very light. Partly that’s because I’ve sort of been trained to know how heavy an iPad is: 1.46 pounds (662 g) for my current 3rd generation device. My mini is 0.68 pound (308 g). Somehow it feels almost the same as the iPhone 5, which is 3.95 ounces (112 grams). I’m not sure how to explain that, other than the iPhone 5 always feels really light too, and they must be about the same density. Light is good, and I can’t wait to use it on the subway (the iPad has always been a little tricky to hold while standing and holding on to a rail).<br />
<br />
The other thing that is the same is pixel size. It’s true that the iPhone 5 has a retina display and the mini doesn’t. But the mini has exactly the same <a href="http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density#Apple">pixel density</a> as the original iPhone, and the recent iPhones really have the same pixels in terms of layout (the pixels are just capable of better detail).<br />
<br />
So buttons, text, any screen element you need to interact with is the same size (in millimetres) on iPad mini and on any iPhone. The basic pixels are the same size, you just have more of them.<br />
<br />
By contrast, the iPad (3rd or 4th generation) is blown up slightly, as well as having better pixels.<br />
<br />
What this means is that text isn’t as crisp as the iPad retina display, but it does seem better than the iPad 2 (it is smaller but harder to make out the pixels).<br />
<br />
I think less expensive and lighter are going to make this the device to recommend to most people. I’m still waiting to see how it works on the commute to have a final judgement for myself. I do think Apple has another winner.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-65733483813444014512011-09-07T20:57:00.000-07:002011-09-07T20:57:35.839-07:00King of Dragon Pass for iOS is out!<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdadMOmL_8ObjIIstx8wwtvrJGRynHxducPvbjGH1-84iu9O2MAQIom8uH8UVvN2AXvTHn2ZvBx1YdUeJ97IWeoxbY2BUk2j6RGFerTZyt-hx22TXhJ3FBJfb4AVt41Bp4kSPG07kPE83d/s1600/p-notourcow.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdadMOmL_8ObjIIstx8wwtvrJGRynHxducPvbjGH1-84iu9O2MAQIom8uH8UVvN2AXvTHn2ZvBx1YdUeJ97IWeoxbY2BUk2j6RGFerTZyt-hx22TXhJ3FBJfb4AVt41Bp4kSPG07kPE83d/s320/p-notourcow.png" width="320" /></a></div> My game King of Dragon Pass is now available in the <a href="http://bit.ly/rikWuv">iPhone App Store</a>!David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-2932911790559016452011-08-30T16:54:00.000-07:002011-08-30T16:54:42.752-07:00King of Dragon Pass Is In Review<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJod6tE1neK3FC25Sf6IMiDiMInxlsAywMGUMjjXxI0ul_U4ikauDy3zv51X_-eUZ-HuVVAcwSwB8zsQgR46vn0n0G5NsYRa_Z1VlVPsGhCnEA6b3i18lsD1NUgiMFjwB7GozAwvh-3HtU/s1600/m-relations.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJod6tE1neK3FC25Sf6IMiDiMInxlsAywMGUMjjXxI0ul_U4ikauDy3zv51X_-eUZ-HuVVAcwSwB8zsQgR46vn0n0G5NsYRa_Z1VlVPsGhCnEA6b3i18lsD1NUgiMFjwB7GozAwvh-3HtU/s200/m-relations.png" width="200" /></a></div>The iPhone game I’ve been working on is now <a href="http://kingofdragonpass.blogspot.com/2011/08/king-of-dragon-pass-is-in-review.html">waiting for review in the App Store!</a><br />
<br />
I originally created <a href="http://www.a-sharp.com/kodp/">King of Dragon Pass</a> for Windows and Mac, but have been <a href="http://www.a-sharp.com/kodp/ios/">porting it to iOS</a>. It’s optimized for the screen size of an iPhone or iPod touch, but runs fine on iPad.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-55614259999233877132011-02-28T19:51:00.000-08:002015-07-27T12:37:16.325-07:00Review: Seized<iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-na.amazon-adsystem.com/e/cm?t=daviddunham-20&o=1&p=8&l=bpl&asins=0767931394&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"></iframe><i>Seized: A Sea Captain’s Adventures Battling Soundrels and Pirates While Recovering Stolen Ships in the World’s Most Troubled Waters</i> — with a subtitle like that, do I really need to say more?<br />
<br />
This is in fact a first-person account of an honest captain’s dealings with the seamier side of the modern shipping business. In some ports around the world, people abuse local law and make fraudulent claims against ships. The crew (and owner) often have little recourse. Captain Max hated the idea of his ship being stolen by a bogus claim, and managed to get it out of port. He was later called on to do the same.<br />
<br />
At other times in his career, he acts as a ship broker, again dealing with locals who may not have quite the same respect for law as he does. In fact, he even uses the law as a weapon in one case.<br />
<br />
As a book, I found <i>Seized</i> well-written and interesting. As a gamer, I immediately wanted to make use of it in a game. Surely the players’s spaceship should dock at an outlaw port! And Captain Max might have made a Climb roll or two, but typically he solved problems with his wide array of contacts, his ability to judge people, and his broad knowledge of ships.<br />
<br />
It’s the last one that makes me reconsider game scenarios based on <i>Seized</i>. While any reasonable game doesn’t require a player to have the same knowledge as his character, there’s a difference between not knowing what a MacGregor hatch cover is, and knowing that your character knows about their pros and cons of one, and how they may impact his actions. Without sea-going experience, I think it would just be too hard to have a game that revolved around the intricacies of JB Weld.<br />
<br />
But again, that sort of thing works fine in a book. Hardberger always explains things so us landlubbers can understand. And the events in the book are always dramatic, because there is always a very real chance of failure (indeed, he recounts stories when things did not end up going well).<br />
<br />
Another issue with game scenarios is that I’d been running a <i>Diaspora</i> game, where a spaceship visits a small number of ports. Many of the outlaw ports in <i>Seized</i> can get away with it because a ship may only visit once even if all goes well. In a smaller cluster, ports have a much greater interest in ships returning — there won’t always be another sucker.<br />
<br />
A recommended read, and even if I can’t easily duplicate Captain Max’s adventures, there probably will be corrupt judges in one of my future games.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com2tag:blogger.com,1999:blog-2238200967189632671.post-23087250273617778962011-02-05T13:10:00.000-08:002011-02-05T13:10:41.893-08:00Review: A History of the World in 6 GlassesSince I enjoyed Tom Standage’s <i><a href="http://www.amazon.com/gp/product/0802716040?ie=UTF8&tag=daviddunham-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0802716040">The Victorian Internet</a></i>, I picked up <a href="http://www.amazon.com/gp/product/0802715524?ie=UTF8&tag=daviddunham-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0802715524"><i>A History of the World in 6 Glasses</i></a>. This covers the history of the six beverages that “chart the flow of world history:” beer, wine, distilled spirits, coffee, tea, and Coca-Cola.<br />
<br />
Most of the book was about the history of the drinks, and how they were regarded at the time (for example, Native Americans didn’t want to drink unless they could get drunk). The section I found most interesting was about how tea (and its monopolist, the British East India Company) was a major cause of American independence (the famous Boston Tea Party was the result of a law dictated by the company).<br />
<br />
An interesting read, recommended.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-82147363680684473542010-12-13T18:32:00.000-08:002015-07-27T12:37:51.243-07:00Reviews: Debugging and Write Portable CodeTwo books I bought recently were ones I expected to be easy going. They were, but I think they were still worthwhile.<br />
<br />
<i>Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems<iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-na.amazon-adsystem.com/e/cm?t=daviddunham-20&o=1&p=8&l=bpl&asins=0814471684&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"></iframe></i> by David J Agans is about, well, debugging. Anything, not just software. It’s full of war stories from many domains (including cars, houses, and Sesame Street). The rules are how to logically approach problem solving, and make sure the problem is actually solved (rule 9). Most of it is common sense, but it doesn’t hurt to see it distilled. And based on the war stories, it’s easy to get wrong. Of potential use to non-developers: there’s a chapter on applying the 9 rules from the Help Desk, when you can't observe directly.<br />
<br />
Interestingly, one of his war stories was kind of mentioned in...<br />
<br />
<br />
<br clear="all"><br />
<br />
<i>Write Portable Code<iframe align="left" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-na.amazon-adsystem.com/e/cm?t=daviddunham-20&o=1&p=8&l=bpl&asins=1593270569&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="align: left; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"></iframe></i> by Brian Hook. I’d had some dealings with Brian when I was at GameHouse, so I knew he knew his stuff. This book too was largely review (I’ve had to deal with getting code to run on different processors and compilers), but again it’s nice to have things spelled out sometimes. And I’d never heard of compile-time asserts or <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">#pragma STDC</span> before. Some of it’s a bit dated (version control in particular — and it must have been written right before the Mac Intel transition), but much of it is stuff you’d still have to deal with when moving between Mac and Windows — or even Mac and iOS. (Scalability is one aspect of portability.)David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-1095288854069147052010-12-12T18:33:00.000-08:002010-12-12T18:33:23.489-08:00High-Bandwidth SneakernetI love the plan to deal with the huge amounts of data expected from a proposed <a href="http://www.sciencenews.org/view/feature/id/63612/title/Black_hole_silhouettes">black hole imaging project</a>. Each station will create about 22 terabytes of raw data per day. “No imaginable link from remote mountaintops permits live telemetry of such a torrent. Astronomers will physically pull eight-pack cartridges of disk drives from the data recorders. ‘We’ll mail them,’ says Doelman. ‘You can’t beat the bandwidth of a 747 packed with hard drives.’”<a href="http://www.blogger.com/"></a>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-58363341389187331852010-12-09T15:42:00.000-08:002010-12-09T15:42:18.121-08:00iPad Data GotchaJust spent way too much time on the phone with AT&T. I haven’t completely resolved problems I was having with cellular access for my iPad, but I can give a warning: be 100% sure your email address is correct.<br />
<br />
If it’s not, you won’t be able to log in again (since it’s your account name). And you won’t be able to retrieve a lost password, even with the web form that asks for IMEI and ICCID, because it’s sent to the wrong address. Nor can AT&T change it for you. And you won’t be able to stop automatic billing.<br />
<br />
The whole idea of having plans that purport to be by the month, but expire, seems pretty lame, and is ultimately responsible for my problems. But that’s perhaps the topic of another post.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-87732300031986022072010-08-06T18:33:00.000-07:002010-08-06T18:35:29.567-07:00Predecessor to DiceBook<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80NwdeB_sb51OGAozdeI6mpoouZ7lsysMQnCLQwsUdO4-81Nhu1axb88Ts4JcOmjh148IrFuVbH9nrxuOiihWfezZiWVE_mfBlMD90Uh-lvSSoeC4G4IrGI-SG7cz5gTNjcdslSY4iIzP/s1600/bagODice.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80NwdeB_sb51OGAozdeI6mpoouZ7lsysMQnCLQwsUdO4-81Nhu1axb88Ts4JcOmjh148IrFuVbH9nrxuOiihWfezZiWVE_mfBlMD90Uh-lvSSoeC4G4IrGI-SG7cz5gTNjcdslSY4iIzP/s200/bagODice.jpg" width="200" /></a></div>I had a reason to open up my Newton, and realized that I had written a dice roller for that platform. No PDF viewing, but it provided simplicity and easy configuration. (I apologize for the poor photograph — I can’t remember how to take a screen capture from the device.)<br />
<br />
I don’t remember if this was ever distributed — there certainly wasn’t an App Store in those days!David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-20120998891558993172010-07-29T16:53:00.000-07:002010-07-29T17:17:25.834-07:00DiceBook Now Available for iPadJust a quick note that I’ve finally gotten through the App Store approval process, and the ~4 hour wait to have the app show up in the store…<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMfIzvq211RI4_OTr8Zubf14kiQC8rQNdUub56iHYkhpyrUORpFt-HquFCEpUCSoCFvhyeEUeYGyIS-PS5eu4zVoQ0M0t7CYVqjSM69VZ8V6U6YU2iVPwxlxttLIN3GPVH3X7XVuneXYoC/s1600/preview2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMfIzvq211RI4_OTr8Zubf14kiQC8rQNdUub56iHYkhpyrUORpFt-HquFCEpUCSoCFvhyeEUeYGyIS-PS5eu4zVoQ0M0t7CYVqjSM69VZ8V6U6YU2iVPwxlxttLIN3GPVH3X7XVuneXYoC/s320/preview2.png" /></a></div><br />
DiceBook is a specialized PDF reader that includes a flexible dice roller. It’s designed to be used with rolepaying games (like <i>Dungeons & Dragons</i>, <i>HeroQuest</i>, or <i>Spirit of the Century</i>). You can make dice rolls without leaving the app (so it should be useful even when iPad gets fast app switching).<br />
<br />
Learn more from the <a href="http://a-sharp.com/dicebook/">DiceBook web site</a>, or go right to the <a href="http://bit.ly/azerUg">App Store</a>.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-7819799485531643282010-06-30T17:53:00.000-07:002010-06-30T17:53:06.096-07:00Apple Recycling ReduxI decided to upgrade my iPad to a model with 3G wireless (so I could access maps in the car if need be), so I was once again able to <a href="http://radiofreelunch.blogspot.com/2010/04/apple-recycling-program.html">avail myself of the Apple Recycling Program</a>. This time, I shipped off a Radius color <a href="http://en.wikipedia.org/wiki/Radius_Pivot">pivoting monitor</a> and another Power computer, both probably dating from 1998. Total shipping weight: 92 pounds. Shipping weight of the iPad: 3.3 pounds (about 1/28 as much).<br />
<br />
So if you’re on the fence about getting an iPad, think about it as a great way to clean out your closet!David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-76120499781436072822010-06-22T18:21:00.000-07:002010-06-22T18:21:39.101-07:00Is the Future the Past?One thing that struck me about John Siracusa’s <a href="http://arstechnica.com/apple/news/2010/06/copland-2010-revisited.ars">interesting article on Apple’s language and API future</a>: Apple did a high-level language once before. <a href="http://en.wikipedia.org/wiki/NewtonScript">NewtonScript</a>.<br />
<br />
Whenever I see Python or Lua code, I think back to when I was coding in NewtonScript, which had a similar syntax and similar concepts. Here’s a bit of code from the original implementation of <a href="http://a-sharp.com/jigami/">Jigami</a>:<br />
<br />
<br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="font-size: small;">regTile := {_proto: pt_Tile, _parent: self, viewBounds: RelBounds(11, 112, 34, 34)};</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="font-size: small;">regTile.edges := pt_Tile.possibleEdges[tileNum];</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="font-size: small;">regTile:CalcEdges();</span></span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-style-span" style="font-size: small;">regTile.symbols := NIL;</span></span><br />
<div><br />
</div><div>There was also a visual design tool, Newton ToolKit (NTK). The combination of a dynamic language, no pointers, and a graphical editor was quite productive. And NewtonScript was good enough to use for all of the system apps. Yes, there was a little C++ code in parts, but a lot of it was probably premature optimization (there was nothing like Shark or <a href="http://developer.apple.com/technologies/tools/">Instruments</a> for Newton).</div><div><br />
</div><div>I don’t know what direction Apple is moving, but at the very least it’s an interesting proof of concept for something that works well in a mobile device.</div>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-82865015704145928232010-06-17T09:42:00.000-07:002010-06-17T09:44:53.723-07:00Phishing Is For Phones Now?I think I just got a <a href="http://en.wikipedia.org/wiki/Phishing#Phone_phishing">phishing phone call</a> on my cell phone, from 707-703-4722 (though of course caller ID is <a href="http://en.wikipedia.org/wiki/Caller_ID_spoofing">easy to spoof</a>). I think it was from Cascade Bank about my credit card. Thing is, I don't have one from them (to my knowledge at least). I didn't enter my credit card # when asked…<br />
<br />
To make it even more suspicious, it was a computer-synthesized female voice, though they mentioned something about recording the call.<br />
<br />
This has never happened to me before, so I reported it to <a href="http://phonephishing.info/report/">http://phonephishing.info/report/</a>.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-89741059321137940012010-06-13T17:01:00.000-07:002010-06-13T17:06:07.466-07:00WWDC ThoughtsOthers have <a href="http://googlemac.blogspot.com/2010/06/wwdc-2010-journal-day-0.html">reported already</a>, and everything except the <a href="http://events.apple.com.edgesuite.net/1006ad9g4hjk/event/index.html">keynote</a> is covered by nondisclosure. But here are a few random thoughts on Apple’s <a href="http://developer.apple.com/wwdc/">Worldwide Developers Conference</a>, held last week in San Francisco.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0lY1TD839W00sw6Q_zlP3oyvJwNKknJh8rNdKKBDi-bZ6720okhped-EQy1UFawvNesq-9sFzHY0MSYqMtotjsx5er_9CTVaJevoqLQYE5O4o0I_WAKYr1BywD54Zw67orXh7d4WkmJS_/s1600/WWDC10.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0lY1TD839W00sw6Q_zlP3oyvJwNKknJh8rNdKKBDi-bZ6720okhped-EQy1UFawvNesq-9sFzHY0MSYqMtotjsx5er_9CTVaJevoqLQYE5O4o0I_WAKYr1BywD54Zw67orXh7d4WkmJS_/s200/WWDC10.jpg" width="200" /></a></div><br />
Apple made it very hard to plan — about 6 weeks notice. Luckily my employer, Rogue Amoeba, was waiting to pounce, because the event sold out in only 8 days.<br />
<br />
I’ve been to the conference a number of times (I think my first was 1989), so I knew I’d be getting a t-shirt, and packed accordingly. Except this year they no longer handed out a t-shirt and a bag (sadly I didn’t go last year, when they handed out a slim laptop backpack). This year it was a lightweight jacket. This was actually pretty useful, given the temperature, but meant I had to get my own WWDC shirt so I didn’t stink on Friday.<br />
<br />
Oddly, unwashed developer wasn’t something I noticed. I did however have to sit through a session next to someone with bad breath, someone smelling of alcohol (in a 09:00 session), and a smoker.<br />
<br />
It was pretty obvious from the event list going in that it was going to be an iPhone-centric show. Apple doesn’t release all the event names until after the keynote, so I had some hopes that there would be a little more Macintosh content. Sadly, there wasn’t. On the other hand, I did manage to get to one session (the last one as it happened) that was directly helpful to my current work on <a href="http://www.rogueamoeba.com/pulsar/">Pulsar</a>.<br />
<br />
More surprising was the number of women. There are never a lot (you inevitably hear someone joking about the lines for the men’s toilet and the lack of line for the women’s), but this year seemed worse than I remember. Perhaps I was especially surprised because the very capable programmer I hired to do an iPhone game while at GameHouse was a woman.<br />
<br />
Overall numbers seemed bigger than I recalled from 2 years ago as well. I remember lining up for the keynote, but I didn’t remember having to line up for other sessions — and some of these lines snaked around two corners.<br />
<br />
I believe the conference cost significantly more this year ($1600), but the amenities seemed cut back. I already mentioned the reduction in attendee premium. There was also no reception, and no espresso bars inside Moscone. And the Beer Bash didn’t serve sushi.<br />
<br />
We also got nothing at registration except the jacket and badge. Going paperless seemed reasonable though, because there was a custom application (apparently this was first available last year). It had some usability problems, and crashed relatively often. It was handy to have on both my iPhone and iPad despite that.<br />
<br />
Speaking of iPad, this year I decided to try leaving my laptop home and using just an iPad (with Bluetooth keyboard) to take notes. This made it the first year I didn’t have to worry about keeping my battery charged (although several of the session rooms had electrical outlets attached to the seats, a great feature I made use of 2 years ago). I plan on discussing this more in a later post.<br />
<br />
All in all, I found the week worthwhile, though I would have liked more on Macintosh.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com1tag:blogger.com,1999:blog-2238200967189632671.post-5815492193772034722010-04-28T08:33:00.000-07:002010-04-28T08:33:25.851-07:00Apple Recycling Program<div class="separator" style="clear: both; text-align: center;"><a href="http://nikonizer.yfrog.com/Himg689/scaled.php?tn=0&server=689&filename=q04ac.jpg&xsize=640&ysize=640" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://nikonizer.yfrog.com/Himg689/scaled.php?tn=0&server=689&filename=q04ac.jpg&xsize=640&ysize=640" width="240" /></a></div>One of the cool things about getting an iPad was that it qualified me for Apple Recycling. I can get rid of two computers, monitors, or printers in a responsible fashion.<br />
<br />
I went with some of the biggest and heaviest stuff, which has long been out of service (the computer was one we used on King of Dragon Pass, released in 1999, and the printer was introduced in 1993).<br />
<br />
So by buying 2622 cc worth of tablet (by box size), I get rid of 222400 cc worth of obsolete hardware. For free (Apple pays shipping)! Not a bad deal.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com1tag:blogger.com,1999:blog-2238200967189632671.post-47764297741565203212010-04-17T10:48:00.000-07:002010-04-17T10:50:00.552-07:00iPad CaseWhenever I get a new portable device, it seems like I have to get a new case.*<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiblhtFMC-gikR2JSI27xdY3cWwVVF4JxmSB2XNwV4qusdejkQARpLcY0B6kAJ2LilZ2lML-mDv7R3V8ElFOE9-24jARA-Uns7vKkVXjQdfojDRTg4AK-mS8Z9ba1qu855aLxYq0CwTmfWx/s1600/iPad+CaseCrown.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiblhtFMC-gikR2JSI27xdY3cWwVVF4JxmSB2XNwV4qusdejkQARpLcY0B6kAJ2LilZ2lML-mDv7R3V8ElFOE9-24jARA-Uns7vKkVXjQdfojDRTg4AK-mS8Z9ba1qu855aLxYq0CwTmfWx/s200/iPad+CaseCrown.JPG" width="200" /></a></div>I just got an iPad, and while I suspect it will be pretty rugged, putting it in my <a href="http://radiofreelunch.blogspot.com/2008/02/macbook-air-first-impressions.html">laptop case</a> seemed like overkill — it rattles around.<br />
<br />
After a little online research, I decided on the “<a href="http://www.casecrown.com/ipad/suede-sleeves/ipad-suede-sleeve-blue">iPad Suede Sleeve</a>” from CaseCrown.<br />
<br />
And then I didn’t buy it, because their stupid web site makes you register. Hello CaseCrown! I want to buy one item for my one device. Just let me buy the damn thing!<br />
<br />
However, I wasn’t able to find another case that I liked any better, so I finally bit the bullet and bought it. Sight unseen, but $20 with free shipping seemed like a good deal.<br />
<br />
The case came promptly. It fits pretty well (it could be a little smaller) and seems well made. The sides are padded, though I imagine if I ever drop it, the corners will be what hits. There’s a side pouch, which ought to hold the charger or a paperback book.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr4BJ4Oo5b5qerDCiqReNxM-YMP_Hp9OAadN6DfCt87huBPc9T7V1XHsfpVcXky7LgoLDs8t9YkY-wYWWJJpgZhQQrEN0zizklrHJF_ttqateSnNMqBXAFS23rcFc3FuD4vByBCKtQjgSE/s1600/iPad-side.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr4BJ4Oo5b5qerDCiqReNxM-YMP_Hp9OAadN6DfCt87huBPc9T7V1XHsfpVcXky7LgoLDs8t9YkY-wYWWJJpgZhQQrEN0zizklrHJF_ttqateSnNMqBXAFS23rcFc3FuD4vByBCKtQjgSE/s200/iPad-side.JPG" width="200" /></a></div><br />
I have used it once so far, and wonder if I made a minor mistake in not getting the similar <a href="http://www.amazon.com/CaseCrown-Protective-Sleeve-Shoulder-Pocket/dp/B003BLI22I?ie=UTF8&tag=daviddunham-20&link_code=btl&camp=213689&creative=392969" target="_blank">CaseCrown Protective Sleeve</a>, which has a strap. After 5 minutes of walking with the case in my hand, it started to feel heavy. On the other hand, a strap for such a small device seems a bit silly, and this case is small enough to toss in a backpack.<br />
<br />
Obviously choice of case is a personal matter, but I recommend this one.<br />
<br />
* The only exception has been my iPhone. It fits in my pocket so well that I don’t want to bulk it up with a case.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-59991072650873457432010-04-06T20:55:00.000-07:002010-04-06T20:55:56.569-07:00Proper Names in SCRABBLE?Supposedly the UK edition of SCRABBLE <a href="http://www.nydailynews.com/money/2010/04/06/2010-04-06_rules_change_for_scrabble_proper_names_allowed_in_new_united_kingdom_version.html">will allow proper names</a>.<br />
<br />
This seems seriously broken, because there’s really no way to know what’s legal or not.<br />
<br />
Yeah, the argument about having to memorize <a href="http://en.wikipedia.org/wiki/SOWPODS">SOWPODS</a> has validity, but what <b>will</b> be the arbiter of what’s legal? More proper names get created all the time. And what languages are you restricting this to? Who’s to know what all the last names in Croatia (or Tonga) are.<br />
<br />
Essentially, it will become a word game that has nothing to do with words. To me, those are a lot less fun because they’re totally arbitrary.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com2tag:blogger.com,1999:blog-2238200967189632671.post-21452263698884261042010-03-30T18:06:00.000-07:002010-03-30T18:06:03.010-07:00Improving iPhone SecuritySince my iPhone has email and a bunch of other sensitive information on it, I’ve always set a passcode. But I’ve always been a bit dubious about the security of a 4-digit code. In fact, one of my coworkers once saw what I entered as we were walking down the street. While I’m not really worried about coworkers, and 10000 possibilities might be enough given there’s an Erase Data option, I still wanted more security — especially once I get an iPad and may have more data on it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStZh0nrj_nOUh3nBtQnUErKQXZWIrr5HwwUYgzH8ShbrwVW24a3bjcXoK1qlHM6EFPGd3S0UfvjXWwhgOg__fducWlLrHIh_XYuY8RI7lzQ0rKQNUiBe-vZsbPu_2PssM5cDnGeYpAhm8/s1600/profiles.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="117" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStZh0nrj_nOUh3nBtQnUErKQXZWIrr5HwwUYgzH8ShbrwVW24a3bjcXoK1qlHM6EFPGd3S0UfvjXWwhgOg__fducWlLrHIh_XYuY8RI7lzQ0rKQNUiBe-vZsbPu_2PssM5cDnGeYpAhm8/s200/profiles.png" width="200" /></a></div>Enter <a href="http://support.apple.com/kb/DL851">iPhone Configuration Utility</a>. While this has a wide variety of <a href="http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf">enterprise options</a>, it’s actually easy to make a simple profile.<br />
<br />
Download and install the utility (there’s also a Windows version). Launch it, and click “Configuration Profiles” in the left pane. Click “New” in the toolbar. Enter a name and ID in the “General” section, then click “Passcode.” Now you can set up a more secure passcode — more than 4 characters, letters as well as numbers, etc. (You don’t actually choose the passcode here.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsMOF7PYniLuGrnYXg8tBDZPkNC2TAue8exgy_mKfgwKQ1hWAYGwJ5Ad0fw4MUSe9cVXQoEb7ddXsC3TAQ3BwuuKz8tXs8fM8fx41WoSXKHUeJSjfcBFCFevyQ67K4s3YVwyX7v61tb1N/s1600/onDevice.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsMOF7PYniLuGrnYXg8tBDZPkNC2TAue8exgy_mKfgwKQ1hWAYGwJ5Ad0fw4MUSe9cVXQoEb7ddXsC3TAQ3BwuuKz8tXs8fM8fx41WoSXKHUeJSjfcBFCFevyQ67K4s3YVwyX7v61tb1N/s200/onDevice.png" width="200" /></a></div>Then attach your iPhone via USB. Click it in the left pane. Click the “Configuration Profile” tab, then click the “Install” button for your new profile. You’ll confirm this on the device.<br />
<br />
Now you can set up a passcode as usual, in Settings > General > Passcode Lock.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIlxjd9WHPLBOVMTONn6EQhZKuy1zVbSfOTXyI8y40eWVKrszgrtBXAr3Th_i1Rxv8HWTjeJ364s6RSEYiEiYckVZvaxkhnsIRvQTRdbmYlO0R9y4jjh0U5DnnxAfoPQKSjjADtGzUIBI/s1600/IMG_0506.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIlxjd9WHPLBOVMTONn6EQhZKuy1zVbSfOTXyI8y40eWVKrszgrtBXAr3Th_i1Rxv8HWTjeJ364s6RSEYiEiYckVZvaxkhnsIRvQTRdbmYlO0R9y4jjh0U5DnnxAfoPQKSjjADtGzUIBI/s200/IMG_0506.PNG" width="133" /></a></div>Now when you unlock the screen, you’ll get a full keyboard instead of a 10-digit pad. Note that you’ll still be able to make emergency calls (911) without unlocking.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-45030909593359923822010-03-19T22:52:00.000-07:002010-03-19T22:52:45.568-07:00Original Artwork from King of Dragon PassMy computer game <a href="http://a-sharp.com/kodp/">King of Dragon Pass</a> won the award for Best Visual Arts at the second annual Independent Games Festival. I was really proud of this — we consciously went against the grain by creating quality watercolor art, and scanning it. The artists did a great job.<br />
<br />
I’ve put a selection of the original watercolor & ink art for sale at <a href="http://daviddunham.etsy.com/">daviddunham.etsy.com</a>. I'll be adding more artwork (the game had over 400 illustrations), so if you don’t see something right away, subscribe to the shop RSS feed.David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-44699397202379898812010-03-16T08:17:00.000-07:002010-03-16T20:51:08.522-07:00How much data is enough for your iPad?Wondering about the 3G plans that AT&T will be offering for the Apple iPad? Is 250 MB spread over a month enough?<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyKEXYnUnGzvxwg5aWGrW2YdttsVLrZqYd4Q6mUByr5IONa-BVU1nr2Gz7SvE-85aht5vc3tLOAytzdHGDCEX3b0Fj5UGIJ4Mu2Dldrh0A3E2cr8G4kK2v8uQMNKQSDEW5LESvUChkw4bn/s1600-h/Screen+shot+2010-03-15+at+18.54.41.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyKEXYnUnGzvxwg5aWGrW2YdttsVLrZqYd4Q6mUByr5IONa-BVU1nr2Gz7SvE-85aht5vc3tLOAytzdHGDCEX3b0Fj5UGIJ4Mu2Dldrh0A3E2cr8G4kK2v8uQMNKQSDEW5LESvUChkw4bn/s320/Screen+shot+2010-03-15+at+18.54.41.png" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_3bNKf24hhqQQSHxpszyRvLKobKNfasFgVPmam5UkO8TAURk0ilVrxH5DE0EB3wVQCpTOUJeORD8oxLFukef61_e0so7Wo48QPJO3H36yV44jg20aHMXNr-T-DtTgbdu5dAG6cYFy7EUw/s1600-h/Chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_3bNKf24hhqQQSHxpszyRvLKobKNfasFgVPmam5UkO8TAURk0ilVrxH5DE0EB3wVQCpTOUJeORD8oxLFukef61_e0so7Wo48QPJO3H36yV44jg20aHMXNr-T-DtTgbdu5dAG6cYFy7EUw/s320/Chart.png" /></a></div>If you already have an iPhone, you can find out. I just noticed that AT&T has added a “View Past Data Usage” button to their web site. For me, the cheapest data plan would be fine — I must do enough of my networking while connected to a WiFi network.<br />
<div class="separator" style="clear: both; text-align: center;"></div>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-81067716672494598762010-02-15T10:17:00.000-08:002010-02-15T10:33:05.829-08:00Weren’t those my pixels?As you can see at <a href="http://www.officeformac.com/blog/Welcome-to-the-new-Office-2011-User-Experience">Microsoft’s Mac blog</a>, Word 2011 will have (counting the menu bar) 8 horizontal strips of controls.<div><br /></div><div>I love portrait displays, and have one, but I often use my laptop without one. And the laptop screen is wide, not tall. This seems like a terrible use of space, when they should be figuring out how to get more of my content visible without scrolling.</div><div><br /></div><div><div>They say you gain vertical space compared to Office 2008, so maybe it’s a good thing I haven’t installed that yet!</div><div><br /></div><div>I’m not even going to discuss visual clutter or whether you can find things — the ribbon may indeed make Word’s vast number of features more approachable.</div><div><br /></div><div>For contrast, Pages has 5 strips of controls (menu bar, toolbar, format bar, ruler, and stuff at the bottom), and one of those is shared with the horizontal scroll bar so it doesn’t steal vertical space. Yes, there are palettes, but they use space on the side and don’t steal content area from typical documents.</div></div>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com1tag:blogger.com,1999:blog-2238200967189632671.post-32850267050059922082010-02-14T12:18:00.000-08:002010-02-14T12:18:00.493-08:00Coders at WorkI recently read <i><a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&tag=daviddunham-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1430219483">Coders at Work</a></i> by Peter Seibel. It’s a series of in-depth interviews with 15 noteworthy programmers, including Jamie Zawinski, Guy Steele, Ken Thompson, and Donald Knuth. Topics range from personal questions (“How did you begin programming?”) to occasionally esoteric discussion of computer science.<div><br /></div><div>One thing I was continually struck by: that’s me! I don’t mean I’ve made a major impact on the world of computers, but so many of their attitudes and approaches were the same as mine. Perhaps that’s not surprising — a couple times it’s mentioned that perhaps 2% of the population are true programmers (who really understand and enjoy it), and I’m obviously in that group. And I’ve used some of the same computers (though one of them had a cutting-edge IBM 1620 in his high school, while our 1620 was obsolete and almost impossible to repair). But I don’t know what explains why we’re not fans of <a href="https://www.amazon.com/dp/0316778494?tag=daviddunham-20&camp=213381&creative=390973&linkCode=as4&creativeASIN=0316778494&adid=1EFJ8GWGWDFRCBMFC0XP&">brainteaser interviews</a>.</div><div><br /></div><div>I’m not sure I use print statements to debug quite as often as most of them, though it is something I do often. I hadn’t realized how common it was!</div><div><br /></div><div>Everyone (except Knuth) was asked whether they had read <a href="https://www.amazon.com/dp/0201485419?tag=daviddunham-20&camp=213381&creative=390973&linkCode=as4&creativeASIN=0201485419&adid=0SG9M84WFQQAVTKSH9NF&">Knuth</a>. I did read volumes 1 and 3 back in college, but haven’t referred to it more than once or twice since. That puts me about in the middle of the pack.</div><div><br /></div><div>The book is marred by a few typos and formatting errors (e.g. an entire paragraph in bold), but is attractively set in Gill Sans.</div><div><br /></div><div>I enjoyed it greatly. It was a nice mix of stories (such as what was going on at Netscape) and computer science (which as a practitioner I’ve gotten away from). Highly recommended to at least 2% of you.</div>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0tag:blogger.com,1999:blog-2238200967189632671.post-81712413289478064062010-02-12T13:21:00.000-08:002010-02-12T13:21:57.929-08:00Switching EmailI just took a couple of steps in the email world: I switched both my server and client.<div><br /></div><div>I blame Apple. They announced iPad, and I’m making sure I’ll be able to fully use it.</div><div><br /></div><div>For various reasons, I have multiple email accounts. Until now, I’ve been reading some with Apple Mail on my Mac, and also on my iPhone. The accounts are set up to use IMAP, which means mail is on the server (or if you will, the cloud). I can get it anywhere.</div><div><br /></div><div>But for my oldest accounts, I’d used Eudora as my client, and Eudora Internet Mail Server for the actual server I ran. And I’d set things up with the POP protocol (which is essentially client-centric). This meant that I needed a master device that sucked the messages off the server. I couldn’t retrieve mail from my iPhone, because my laptop was the master owner. And EIMS didn’t support SSL anyway. EIMS also supports IMAP to the standard, and Apple Mail is apparently buggy, and doesn’t play well with EIMS.</div><div><br /></div><div>I thought about buying a mini with Snow Leopard Server and running mail off it. That would give me the cloud and the security. But it costs $1000. I might have been able to add SSL on top of EIMS, but I’d still be dealing with the mismatch between it and my IMAP client.</div><div><br /></div><div>What I ended up doing was using Google Apps Standard Edition. I don’t care about the actual apps (Calendar, Chat, Docs), but they do provide what is essentially Gmail for your domain. In my case, domains (since my wife and I get mail at three different domains). Although they push for the Premier Edition ($50/year/user), the free Standard Edition provides domain aliases (so we can handle our three domains via the same site) and nicknames (so I can have app-specific addresses).</div><div><br /></div><div>Basic setup was easy. I had to prove I owned my domain, which I could do by putting a file on my server. The domain aliases were a bit trickier — Google checks for “domain.com/file” but I’d set up Apache so it was actually at “www.domain.com/file”. There was no error message — and since it’s free, support is only via a forum (which I still haven’t gotten an answer from). But I eventually figured out what was going on. But then, one of the domains took, but the other did not. (After several hours, it finally did.)</div><div><br /></div><div>Google provides a way to test things, so I created an account on my iPhone and made sure I could send and receive via IMAP.</div><div><br /></div><div>I don’t do my own DNS so I had to contact my ISP. They threw the switch, and things pretty quickly were working!</div><div><br /></div><div>While I get no spam on my Gmail account, I get a fair amount to my older addresses (the fact that it’s multiple addresses probably works against me). Google has so far filtered all of this about as well as SpamSieve did on the client side — I get a bunch that’s not blocked by the server, and (being paranoid) go through it for false positives on occasion. (I have gotten two false positives in almost a week.)</div><div><br /></div><div>On the client side, I had to learn Gmail’s idiosyncratic approach to IMAP. You will need to enable the advanced IMAP controls via Gmail Labs, and expose the labels. Then the important thing, if you want things to look more or less like IMAP, is to ensure that any message has only one label. I had originally used the tagging model, and assigned labels liberally. After all, Google wasn’t duplicating a message in the In folder and the Developer folder. But IMAP (at least as implemented in the Apple client), does.</div><div><br /></div><div>Luckily, it’s easy to set up your filters so that an incoming message that’s filtered skips the inbox. At this point, the IMAP client can move things between folders, and the right thing happens. Well, you’ll probably want to read Google’s documentation on how to set up for IMAP, since some of the system folders should be set up in a less intuitive way.</div><div><br /></div><div>So far I’m pretty happy with this. As far as I can tell, it’s been totally transparent — I still get and send email with the same addresses. I can get mail via IMAP or the Web-based Gmail interface. And I’ll no longer need to administer my own server (as easy as that was with EIMS).</div>David Dunhamhttp://www.blogger.com/profile/11303126226993823687noreply@blogger.com0