It’s good to review the fundamentals sometimes. Written in 1995 and often forgotten: A Pixel Is Not A Little Square.
May 14, 2013
April 29, 2013
I just wanted to share this. Popped up today while initializing an NSDateComponents object.
components:fromDate:toDate:options:]: fromDate cannot be nil
I mean really, what do you think that operation is supposed to mean with a nil fromDate?
An exception has been avoided for now.
A few of these errors are going to be reported with this complaint, then further violations will simply silently do whatever random thing results from the nil.
Here is the backtrace where this occurred this time (some frames may be missing due to compiler optimizations):
So that was unexpected.
April 11, 2013
There’s been a lot of chatter on the various blogs and news sites about the IGDA and Yetizen party incident. I’m not going to rehash that. See these articles if you’re not up to date on the whole controversy:
I will comment that I thought that the controversy was a wholly pointless manufactured thing and Brenda Romero’s resignation did not help anybody. That said, I was a little surprised to discover that the scandalous, allegedly inappropriate outfits that created all this trouble aren’t actually shown anywhere, in any of the news about the incident. At all. Not on Joystiq, not on the Gawker owned Kotaku, nowhere. I thought that was strange. Luckily I have photos of the Yetizen models from the previous year, so… here it is. This is the outfit that forced two IGDA members to resign.
Now you know.
November 14, 2012
I saw a blog post on IGN today: 4 reasons why the Nintendo Wii U will fail by Ian Fisch. I won’t comment on the WiiU, because I was one of the people who said the Wii was going to flop and man oh man was I ever off the mark on that one. But I did want to highlight a particular chunk of his post:
When people think of the massive success of the Nintendo Wii, they usually think of middle-aged moms playing Wii Fit, and senior citizens playing Wii Sports bowling at the retirement home. Indeed, the success of the Wii, much like the success of the Nintendo DS was due, in a large part, to casual gamers. We tend to forget that, originally, the excitement for the Wii was at a fever pitch among hardcore gamers. If you were a hardcore gamer then, you might remember sharing Eric Cartman’s excitement over the potential of Wii’s “motion control controls.”
It was hardcore gamers that gave the Wii its terrific launch. For about a year and a half, hardcore gamers were as enthusiastic about the Wii as their out-of-shape mothers soon would be. Of course, once hardcore gamers discovered the severe limitations of the Wii’s motion controls, the system became little more than a dust collector. The Wii U will not get this initial surge of excitement from hardcore gamers. The original Wii tantilized the hardcore set with the (false) promise of a new level of immersion – a step toward virtual reality.
I currently work for the BLAM Lab at Johns Hopkins University, which is part of the Department of Neurology. I helped found a group here called Kata. The Kata Project exists for a lot of reasons, but this idea is really our heart and soul:
In Japanese language, kata (though written as 方) is a frequently-used suffix meaning “way of doing,” with emphasis on the form and order of the process. Other meanings are “training method” and “formal exercise.” The goal of a painter’s practicing, for example, is to merge his consciousness with his brush; the potter’s with his clay; the garden designer’s with the materials of the garden. Once such mastery is achieved, the theory goes, the doing of a thing perfectly is as easy as thinking it.
I’m doing a rich mix of work here, centered around game development not only for medical and scientific research purposes but also commercial production. The key point, though, is that everything we do is centered around the study of biological motion and what it means for games. We’ve got touch, Wii, PS Move, or Kinect, Leap, or whatever else is coming down the pipeline, and I don’t feel that the potential of any of those devices has really been explored properly. The Wii implied something that it turned out not to be, sadly. Motion control itself, combined with game design that really focuses on using it in new and interesting ways, has a very distinct future separate from what we’ve got today. Fruit Ninja is an early expression of it, I think. Of course I believe that we’ll be the ones to crack the code, but no matter how it happens I find it extremely interesting to observe what people are doing with the rich data we can get out of motion control systems. So far Kinect and most iPad games seem to be an expression of how much data we can throw away, instead. That needs to change.
May 26, 2012
I wanted a new coat of paint around here. We’re going to try this one on for size. It may or may not stick, we’ll see. I’m going to try and revive blogging here, as there are a number of things I’ve been meaning to write for many months. Many of those things are about photography, some of them are about games, and not a lot are about SlimDX or SlimTune.
Don’t hold your breath on the Slim* stuff — I just don’t know what is going to happen in the coming months. I’ve decided to pursue a Master’s Degree in Computer Science at my alma mater, Johns Hopkins University. I hate school, but given other events in my life this was an important step to take. It does cut into my time quite severely, so I’m basically stepping out of the consulting business and maintaining a blog during school is daunting to say the least.
I am also working on game development for the Department of Neurology at the Johns Hopkins Hospital. That is an extremely interesting effort which I will attempt to discuss as much as I can, though a lot of it is not and will not be public soon. That’s the nature of the beast, unfortunately. I will say right now that it should be obvious that psychology and neurology play an important role in game design. It turns out that game design plays an important role in psychology and neurology too, and research has only just started to explore the implications of that crossover. There is a lot of potential.
Lastly, I’ve found myself very heavily invested in artistic pursuits, primarily photography. I think it’s important for any game developer (or any entertainment industry professional at all) to nurture their creative/artistic side as much as possible. You don’t have to be good at it, but you can’t neglect it. I picked photography because I’m terrible at drawing, and because I hoped it would clarify a lot of things I’ve never understood in graphics engineering. (It did.) It’s now a pursuit of mine in its own right, and I intend to be writing a lot about it.
Lastly, I want to thank all half dozen people who are actually reading this post. You guys are nuts and I’ve wasted your time, but I promise better things are coming down the pipeline. I am working to finish an epic post detailing the basics of digital color representation. I can almost guarantee you’ll learn something.
December 24, 2011
There’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 core structure. That is not the part I am writing about. If anything, it’s amazing that things took so long to get to this point. We’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.
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’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’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.
Now we’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 “copyright holders” and “intellectual property”, 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 Universal’s assault on the MegaUpload video to understand that. Making somebody invisible, even temporarily, is an enormously powerful ability.
The next target, possibly the crucial one, is the Domain Name System (DNS). DNS is responsible for translating a domain name like “google.com” into an IP like “10.11.12.13”. The US Department of Homeland Security has gleefully pursued sites by revoking their domain names without anything resembling due process and without available recourse. And without actual authority, for that matter. The results were predictable: a technical workaround which got the government mad, and a bogus seizure that made the whole program look corrupt, which it is.
The last gatekeeper is the ISP, the guys who hold the actual physical connection between us and the internet. They are under assault too. It’s the same story over and over again, but in the end the ISPs will cave because it will be difficult or illegal for them to hold out.
SOPA might be the greatest ever attack on Internet freedom, but it’s also a dead-on logical expansion of a war that has unfolded continuously over the past decade or more. It’s possible that this particular measure will be defeated. The trouble is that it doesn’t matter. 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.
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’s coming. It’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.
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 DNSSEC. 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’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’s control at all. There is work along these lines, but it’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.)
Then there are the ISPs. There’s no point locking the overall system down if your personal uplink still says “hey, no PirateBay for you no matter how you’re trying to get there.” That requires end-to-end encryption of your sensitive traffic. We have a system for that called Tor, but it’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 we’ve got that too.
That leaves us with the visibility problem in search engines, social networks, and similar services controlled by a single entity. I’m less concerned about this, because the steps I’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 decentralized search engine that isn’t subject to any control at all, but it’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’t know if that’s the case, but the more research we have in building completely distributed tools the better.
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’re lucky, Google and all the other internet companies will remember to sink millions of dollars into R&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’s our only chance to preserve what we’ve built and earned in the last forty-odd years: a completely free communication system that is equal to everyone.
November 3, 2011
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’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’m betting it wasn’t trivial, but do you know anything about them? Do you even know what brand you’re wearing?
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’ll discuss lenses, coatings, etc. But for now, let’s just tackle the overall problem of where to get your glasses.
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’s been established, they hand it straight off to the shop, and you pick out your frames. Nice, easy, and totally ignorant. That’s not to say you’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’s 10x in pure profit. Those $300 designer frames cost probably $30 to manufacture, and they’re really not precision equipment. I don’t have good numbers on lens markup, but it’s not subtle either. Cursory exploration suggests it’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’ll walk out with a pair of comfy glasses that look pretty decent on you and assurance that if something goes wrong, you’ll have someone to yell at.
So where do you go in the brick and mortar world? Walmart and Target are, well, pretty much what you’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’s turned out time and again that those guys over-charge and under-deliver. Shoddy lenses, shoddy coatings, even shoddy frames sometimes. Consumer Reports tells me that Costco is stand-out in quality and price, and as a matter of fact that’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’s where I would go.
That was the easy part — now for online retailers. The first challenge is even knowing what to buy. You’ll need your measurements, all 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’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. Don’t do this. I got mine by asking Costco to give me the stats on the last frames I bought from them. I’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’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’s ethical to do that by trying glasses in a store you won’t buy from, I leave for you to decide.
So where do you buy from? Pretty much everything you need to know is at GlassyEyes. I believe Zenni Optical is the largest and most popular of the online retailers, and I’ve been fairly happy with them myself. Just keep in mind that you’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’d expect with any of these companies, which is to say dismal. If you have a bad experience, you’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’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’s assuming you’re not in a hurry, because these things take 2-4 weeks and there are horror stories out there about things going completely awry.
So that’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’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’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’t be coated in 6-12 months. But at $20 per, it’s difficult to care.
If you’re looking for a primary pair though, especially if you’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’s a risk I took, and I’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’t love them; they fit great and look nice but they’re made poorly and it’s kind of a hassle. The people over at Optiboard would gloat; that’s a forum specifically for people in the optical industry, and their attitude about online purchasing is exactly what you’d expect, turned up to 11 in some cases. (By the way guys, online optical shops may be a lot of negative things but ‘criminal’ isn’t among them.) Remember that online optical, though in its infancy, represents an existential threat to these people’s careers.
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’re scratched up badly. So I thought to myself, this one time I’m going to do it right. I’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’t willing to buy ‘good’ 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. Ouch. I know there’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.
Right now, I’m researching some alternatives on how to get real brand name, good quality glasses. The Internet is here, after all, and I’m all for ruthless global competition. (That’s a nod to you libertarians, as long as we don’t have VAT in the US.) One of the big problems with online is the lack of professional adjustments, but it’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’t mind adding an extra fifteen bucks on top for fifteen minutes of that person’s time, and that’s more than I’m paid. I’m also going to find an optometrist who doesn’t have skin in the retail game and is willing to help me see better, regardless of who I pay for the glasses themselves.
September 26, 2011
It’s been a long time since I’ve written anything, so I thought I’d drop off a quick update. I was in San Francisco last week for a very interesting and unusual conference: ESCoNS. It’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’s sake, GDC attendance is generally in the vicinity of 20,000 people.
The seminal work driving this effort is really the findings by Daphne Bevalier at the University of Rochester. All of the papers are available for download as PDF, if you are so inclined. I imagine some background in psychology, cognitive science, neurology is helpful to follow everything that’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’s an NPR article that is probably more helpful to follow as a lay-person with no background. One highlight:
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. “We looked at the effect of playing action games on this visual skill of contrast sensitivity, and we’ve seen effects that last up to two years.”
Another rather interesting bit:
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’s an essential mental skill for math and engineering. Typically, Pratt says, women test significantly worse than men on tests of spatial cognition.
But Pratt found in his studies that when women who’d had little gaming experience were trained on action video games, the gender difference nearly disappeared.
As it happens, I’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’ll be studying motor skills. Probably lots of work with iPads, Kinect, Wii, PS Move, and maybe more exotic control devices as well. There’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.
There’s an added component as to why we’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’s our big gambit, and if it pans out we’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’s own sake and will hopefully lead to a lot of good results, but I went into games and not neurology for a reason ;)
May 28, 2011
I’ve been quiet for a very long time now, and this is why. We’ve just shipped our new game, Slug Bugs!
It uses our Ghost binaural audio which I’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’ll probably discuss the development more.
March 17, 2011
I’m a little surprised that search results don’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’t block ads. Well, the new version does — it’s just hidden.
Do not install ANY ad blocking add-in. It isn’t necessary. IE has a facility called Tracking Protection Lists that will do the job. You just need the right setting…
From IE9, visit Privacy Choice, who maintain block lists. Click either giant button, and Internet Explorer will offer to install it. That’s all you need to do. Most ads will now be blocked.
The downside is that, as far as I can tell, you can’t really configure this with custom filters like Firefox’s popular AdBlock Plus extension. Google Chrome’s available extensions offer custom filters but they don’t work correctly. Still, this does clean up nearly everything you’re likely to encounter in most browsing.