I had submitted 5.17 to the app store on June 22, and they only got around to reviewing it today -- July 3, 11 days later. They rejected it because a single one of the ~200 display modes failed to launch.

I just submitted 5.18 to the app store. I guess now I wait another two weeks.

I can tell this is going to go well.

If any of you reading this have influence with the Apple app-review process, it sure would be nice if you could use that influence.

I added a "review note" this time asking them not to be ridiculous, but I doubt they even read those.

With this version, all but three of the savers now work on iOS. The only ones missing are Extrusion (because it uses GLE and GLUT); WebCollage (because it's written in Perl, and thus impossible); and Lockward (because it's all screwed up).

I added a pretty significant optimization to jwzgles.c. When calling glBegin/glEnd, it was translating that to glVertexPointer/glDrawArrays. An optimization that was in there the first time around was that when that was inside of a display list, it was the glVertexPointer/glDrawArrays calls that were recorded in the list, not each call to glVertex3f. But that meant that it was still shipping the vertex array off to the GPU each time the list was played back. I changed it so that, upon reaching glEndList, it gathers up all of the verts, texture coordinates, etc. into a single VBO, ships that off to the GPU once with glBufferData, and on subsequent runs of the display list, refers to that VBO instead. This means display lists are really doing what they were meant to do: saving geometry on the GPU in an easy-to-replay way. A bit of housekeeping overhead aside, this should be as efficient as both A) the way display lists worked in the olden days, and B) what you would get if you rewrote your code and rolled your VBOs by hand.

Funny thing is, it literally came to me in a dream. The night before I had actually said to myself, "there, it's done" and closed Xcode. Then I had a dream where I was actually coding this up, Emacs keystrokes and all. The next night I sat down and, basically, re-typed it.

I don't have coding dreams that often, but when I do they're often like that. My subconscious sends me an email saying, "Hey jerk, go type this."

What people call "Obamacare" is actually the Patient Protection and Affordable Care Act. However, people were calling it "Obamacare" before everyone even hammered out what it would be. It's a term mostly used by people who don't like the PPACA, and it's become popularized in part because PPACA is a really long and awkward name, even when you turn it into an acronym like that.

Anyway, the PPACA made a bunch of new rules regarding health care, with the purpose of making health care more affordable for everyone. Opponents of the PPACA, on the other hand, feel that the rules it makes take away too many freedoms and force people (both individuals and businesses) to do things they shouldn't have to.

So what does it do? Well, here is everything, in the order of when it goes into effect (because some of it happens later than other parts of it):