Right now there is a renaissance in digital goods fulfillment options, with plenty of startups hoping to get the long-tail microtransaction stuff going in their favor. Some of them are oriented more towards music, while others are oriented more towards eBooks or other sorts of things. Here's a quick comparison of a few of them (Bandcamp, CDBaby, Gumroad, and Simple Goods) for those who might be interested in such a thing.
April 27, 2013
April 23, 2013
So I got my Ting phone on Saturday, and I'm happy with it. Phone-wise it's essentially the same phone I had before (Samsung Galaxy Nexus), only it's about 6 grams heavier and 0.5mm thicker. Oh no.
The voice service is pretty good so far, although I haven't used it much either.
The data service is passable. It's only 3G service for now, because LTE is only just beginning to be rolled out in Seattle (as a stealth beta), and I get around 800Kbps on a good day, compared to 10Mbps on T-Mobile. But that's enough for what I use data for on my phone most of the time, and in the meantime I have a Freedompop access point which I get 6Mbps on.
Unlike most pay-as-you-go/MVNO services, it actually lets you forward your voicemail to an alternate number, so Google Voice works with it with no voicemail conflicts (except that GV can't automatically provision it since it misdetects the number as being Sprint, but that's easily addressed from the Ting website).
So, in a week or two I'll just be canceling my T-Mobile plan and paying the $200 ETF (and reselling my GSM Galaxy Nexus). In the meantime, if you sign up for Ting via my referral link, both of us get a $25 credit, so that helps to lessen the blow. (And with my expected usage, that'll cover two months of service for me.)
One downside is that I really wish that in the lower usage tiers you could pay per unit instead of for the entire tier; I generally don't use text messages at all, and when I do it'll be 4-5 per month. At $3 for the first chunk of 100, that works out to 60 cents a text message for actual usage (compared to the 3 cents per message that it would nominally cost). Which I guess isn't too bad, really, but still, it's kind of offensive from a service-cost perspective. I suspect that most months I won't get any at all though, since I only use my phone's SMS gateway as a backup for my work pager and I hardly ever get paged. So, I expect my normal monthly bill to be $12-15. Which is totally fine compared to the $75/month I was paying before, for the same level of usage.
April 14, 2013
Based purely on the cost of the next 24 months of service:
- Sticking with T-Mobile with the service I hardly ever use: $46.07/month → $1105.68
- Switching to T-Mobile prepaid with the more amenable contract term: $30/month + $200 ETF → $920
- Switching to Ting: $15/month + $200 ETF + phone price → $560 + phone price
So as long as the phone costs less than $360 I'd be making out better than T-Mobile prepaid, and as long as it's less than $545 I'd be better off than sticking with what I have.
Phone options available directly from Ting that work out better than T-Mobile Prepaid:
- Kyocera Rise: $163, a semi-decent Android 4.x phone with a QWERTY keyboard (which would be nice). Big downsides: Crappy CPU, no LTE. Not sure those things would really bug me anymore. It's pretty ridiculously thick though (c'est la slider).
- LG Optimus Elite: $193 but probably crap judging by my experience with LG phones (and spec-wise it's worse than the Rise, so uh, no)
- Samsung Galaxy Victory: $294, slightly-decent CPU, supports LTE, has Samsung's crappy customizations but Cyanogen exists, almost as ridiculously thick as the Rise though
Phones which work out better than my current T-Mobile plan:
- Samsung Galaxy Nexus: $404, the exact phone I have already. I can keep using my car dock (as rarely as I do that), known quantity for overall quality and speed and so on.
- Samsung Galaxy SIII 16GB: $450, by all accounts a decent phone, although spec-wise not as good as the Galaxy Nexus so I really don't know why someone would pay more for a lesser phone (unless you REALLY want the Samsung customizations, and I don't know why you would).
So really it comes down to: would I rather keep using the same phone, in which case it makes more sense to switch back to T-Mobile's ultra-annoying pay-as-you-go service (sigh), or would I be willing to take a downgrade in performance but get a physical keyboard (and really the number of times that I've really wished I'd had a physical keyboard vs. Swype over the last few years have been, oh, about three).
Or it could just be worth the $44 to switch away from T-Mobile while keeping the same model of phone (and of course, I can always sell the used GSM phone, duh), and anyway the nature of Ting is that I'd have an auto-adjusting rate based on how much I'm actually using; the $15/month is just an estimate based on how much I use my phone right now, and it can go as low as $6/month, and the key other variable I'm not accounting for is that if I do end up needing more minutes or data one month, Ting's tiering-up costs way less (and is way less of a hassle) than T-Mobile's.
So yeah I'm thinking it works out best to just cancel T-Mobile and switch to Ting, with an LTE Galaxy Nexus. My parents switched to Ting a while ago and they've been pretty happy with it, so... yeah.
March 23, 2013
I had a dream in which I was sitting on a train and talking to an ostensible coworker (nobody I know in real life) about programming languages and some of the interesting stuff going on in performance evaluation, when suddenly she asked me, "Dude, are you okay?"
"Then why are you turning bat-cave black?"
I suddenly realized that I was turning blue with hypoxia, and promptly woke up to find myself not breathing.
After a few seconds of hyperventilation, my first thought was: "Uncaught exception propagated up the stack."
February 27, 2013
The cost of getting 10 LED PAR20 bulbs from Amazon: $200.
The cost of getting 10 PAR20 bulbs direct from China via eBay: $100
The cost of the light diffusers to make the light usable in the kitchen: $10
The cost of replacing the 5 lights in the kitchen which failed (probably due to the incredibly slight heat buildup from the diffuser) with 5 more from Amazon: $100.
So in effect, having 5 crappy bulbs and 5 decent bulbs has ended up costing more than just getting 10 decent bulbs to begin with. But isn't that always the way?
Incidentally, I highly recommend the LED lights from lightkiwi. All of the Lightkiwi lights I've gotten have been excellent quality with great light output and very reliable. All the others... not so much.
February 15, 2013
So, I finally got my next power bill. It was still pretty high, but not as high, despite my home being more comfortable during times when it was much colder outside, so I'm chalking this up as a win. Also, a huge chunk of that power consumption occurred during the week of lag between me being billed and be getting the bill, and it also took me a couple weeks to make all the improvements that went in.
The big lesson I've learned is that as soon as it starts to get cold, seal the windows. (Also, I should push harder to get the building's windows upgraded. At least on the alley side, where I live, and where the historical society doesn't care quite as much about maintaining the original fenestration.)
January 18, 2013
So, I replaced all the halogen and incandescent lights that I could with LEDs, I put plastic shrinkwrap on my windows, and I installed a new thermostat. And my power consumption for this billing cycle is already going to be even more than the last one. But that's probably because it's really freaking cold right now and the baseboard heaters can barely even keep the temperature inside at 64F, so imagine how much worse it would be if I didn't take all these measures.
One slight annoyance is that the LED PAR20 bulbs which replaced the halogens don't have quite the spread as I'd like (the overall spread was 40 degrees, a little wider than the halogens they replaced, but it was mostly concentrated in the centers), but I got some diffusion film and put it in front of the two lights that really needed spreading out, and that has improved the lighting in the kitchen immensely.
Anyway, dang it's cold here.
December 15, 2012
So, my condo is a quaint Victorian home. Well, a quaint Victorian firehouse that was converted into a condo 30 years ago. Of course, being Seattle, all of the heating is electric, and being Victorian (and subject to Seattle historic preservation society rules) the windows are a bit leaky and drafty, and being Victorian and in Seattle, there's not a lot of light normally so I need to have a lot of lights on all the time to keep myself from getting rather depressed.
So I was expecting a fairly large electricity bill, but I wasn't expecting it to be $275!
Basically, the bill claims I used 3259kWh over the last two months, or an average of 49kWh per day — an average current draw of 2KW. That seems pretty high... until you consider the lighting and the heating.
The electric baseboard heaters in the dining room end up running way more than I'd like, because of the drafty windows, and the thermostat is also kind of fiddly with a ridiculously large hysteresis dead zone. Many times I've come home at the end of the day for the place to be sweltering inside. Clearly I need a better thermostat.
Lighting-wise, it's mostly halogen and incandescent track lighting. I've been slowly replacing the incandescent bulbs with LED ones, although it's taken me a while since the dining room spot lights require getting up on a ladder, and I'm not so good with ladders (I'm not afraid of heights, I'm afraid of falling from them). The dining room has 6 spotlights, previously each with a 75W bulb in it. The kitchen and studio each have 5 halogen PAR20 lights, each with a 50W bulb in them. That adds up to 950W right there. Of course, I don't run them 24/7, but I do run them quite a lot. In any case, I've finally ordered a 10-pack of PAR20 bulbs so that I can replace those ones right away. (They do not require climbing up on a dreaded ladder.)
A few weeks ago I did add some (technically HOA-covenant-violating) weather stripping to my dining room windows to improve the draftiness, and it helped but even then the baseboard heater still ends up running way more than I'd like. I have no idea what the wattage on it is but it's likely 1kW on its own. Then there's the heaters in the bedroom and studio, although they don't run nearly as much (admittedly because they get plenty of heat from the dining room and from the studio lights).
The dining room thermostat does have a "setback" function which doesn't work very well, but which would still be better than not using it at all. So I should definitely set that up, finally, and maybe look for a more modern, easier-to-program baseboard thermostat. (This one uses a mechanical timer switch that's fiddly and drifts way too much, among other problems.)
Other than that I can't really think of anything else that would be taking much power. All of my computers are pretty "green" (laptops or laptop-class hardware which maxes out at 75W and mostly goes into low-power mode most of the time). I guess there's a few things I leave on all the time that I shouldn't, like the stereo in the dining room. Unfortunately it doesn't have an automatic power-saver feature like the one in the living room. But it also shouldn't be taking more than a few dozen watts sitting idle, right? It doesn't get very warm, in any case.
What other stuff should I look at? I had a window person look at the dining room windows and there wasn't anything he could do because of the historical building stuff (they care very deeply about preserving the "character" of the windows), but the skylights aren't regulated by that and they might benefit from getting their seals replaced (I know the seal is failing in the bedroom skylight, for example).
It's also possible that this was a one-time irregularity, like maybe the power company didn't bill the previous owners for their last two months of service or something, although I can't see that mistake as having been made. I really should have checked my meter when I first moved in. The amount on the meter now is about 230kWh higher than on my bill, though, and the reading was taken 5 days ago, so that's 46kWh/day - consistent with my bill. At this very moment my meter is spinning at about 8 seconds per revolution, with a kH of 7.2 meaning I'm drawing about 3200W right now. Yikes. But the scary thing is that most of the meters in the building are spinning faster!
December 3, 2012
So, as I've mentioned in the past, I've been living a mostly Google-service-free life for the last year or so. I do my own email and calendar hosting on LiNode, I use DuckDuckGo for search, and I use Tiny Tiny RSS hosted on Dreamhost for my RSS feeds. (And Dreamhost in general for my webhosting, although I might move some of that over to the LiNode or get an EC2 instance or something.)
However, I still quite like Android, and so I still need a GMail account for its user account (for app purchases and such), and while I have that I also have Google Voice for my phone number, which I figure is fairly benign since I don't keep my address book on Google's servers and so far they haven't done anything to monetize my voicemails.
Once upon a time I worked for a VoIP startup in Albuquerque. Everything was based on standard technologies, namely SIP for call routing and various DNS-based things for endpoint lookup. In the VoIP landscape, most providers do something similar. But not Google.
Google Voice provides two forms of call termination:
- Routing your calls over the POTS network using a call gateway (which is expensive)
- Routing your calls over the Internet (which is cheap) using the Jingle protocol (which is non-standard)
Android itself supports SIP dialing and termination. If you have a traditional SIP account, such as with Vonage, 8x8, or any of the thousands of VoIP services out there, then you can use Internet bandwidth for your call routing, natively and built-in to the Android OS. But Google Voice — Google's own service, made by the same people who make Android — does not support SIP. Instead it uses Jingle, which is a protocol intended for establishing voice calls via XMPP. (Incidentally, most existing IM networks, such as AIM, use SIP for their call routing as well.) Android has no built-in support for Jingle.
SIP also allows you to have multiple endpoints connected to a single account; if a call comes in, then all connected endpoints will ring and any of them can answer the call. Jingle, however, has the same limitation as XMPP, in that incoming messages only go to one connected endpoint, and the rules by which it decides which one gets it are byzantine, opaque, and generally not very useful.
Where this is going for me is that I have fairly spotty cellphone reception in the two places I sit most often: my recording studio, and my office. However, I have great Internet coverage there. So, one of my coworkers pointed me to an app called GrooVe IP, a Jingle client for Android. It has a few rough edges, but it works well enough. However, it doesn't work too well if you have Google Voice set to forward to both your cellphone and your Jingle client, because both of them ring and the phone gets confused. Fortunately, GrooVe also makes GrooVe Forwarder, which you can use to turn the cellphone forwarding on and off based on GrooVe IP's availability. So, that works pretty okay.
I also decided for various reasons that it'd be nice to have a landline going through Google Voice, which is possible because of the OBi110, which will connect to Google Voice accounts, and also provides its own call routing mesh (which, as it turns out, sucks horribly). Unfortunately, it connects to Google Voice via Jingle. Which only supports a single endpoint at any given time. And you have no control over whether the OBi box or GrooVe IP gets priority.
So right now my choices are:
- Use the OBi exclusively at home, and my work phone number at work, and just not use GrooVe IP at all (and be stuck with suboptimal but available devices)
- Use GrooVe IP + GrooVe Forwarder on my cellphone, and return (or write off) the OBi and cordless phone I got to work with it (I was originally just going to use my AE90 with it, but I'm not sure the OBi can produce enough voltage to trigger the ringer, and anyway it turns out the OBi requires a touch-tone phone for initial setup — and of course pulse dialing won't work with it, not that I expected/needed it to)
- Sign up for a VoIP service, connect the OBi (which also supports SIP) to that, and pay an extra $7+/month for the ability to have a backup phone at home (and add it as a Google Voice POTS endpoint)
Hope really hard that Google comes to their senses and adds actual SIP support to Google Voice and then have everything Just Work(ha ha who am I kidding that'll never happen, have you seen what they've done to IMAP and NNTP?)
- Sign up for actual POTS service, use the OBi in its intended capacity as a proprietary-calls-to-POTS termination device (which in turn allows me to roll my own limited version of Google Voice, essentially), be sure that my AE90 will work, and pay $14+/month for what just amounts to 911 access
Right now I'm mostly leaning towards option 2, because it works (mostly) and isn't terrible (mostly).
November 1, 2012
The big problem I have in Seattle is that starting in mid-October or so, it's dark out when I wake up (and I'm not exactly an early riser) and gets dark early, and this continues until April or so. It makes it very difficult for me to wake up and face the day. So I finally decided to try out a wake-up light.
This morning I got to use it for the first time, and while it might be a first-time placebo effect, the difference was (if you'll pardon the expression) like night and day — I woke up well before the dawn simulation completed, and felt energetic and ready to go! As an added bonus, the annoying birdsong that it plays when it finishes the cycle caused both cats to rush over to check out what was going on. (I have since changed it to use a radio station.)
Amazon carries a few others, including a somewhat cheaper halogen model, and they all work under the same principle. If you want to be especially cheap about it you could always just get a regular lamp and hook it up to a timer, although having the light slowly fade in was probably a huge part of why it worked so well (I actually woke up pretty early on in the fade-in process but I was able to just slowly rise with it).
I'd say the downside is that the built-in wake-up sounds are annoying and shrill and way too repetitive, but its FM tuner is pretty okay. It's not exactly hi-fi, but it gets the job done.
It's also nice that the front panel LEDs are adjustable in brightness, and so unlike on my previous (cheap) alarm clock, I don't need to obscure the clock to keep it from burning my retinas while I try to sleep.
October 26, 2012
The Seattle area has two major area codes: 206 (for the city proper) and 425 (for most of the nearby cities). San Francisco's area code, and therefore my current number's area code, is 415. As a result, people often get confused by my phone number and mentally autocorrect it from 415 to 425. Which, of course, doesn't work terribly well. So it's time to return to the 206 area code.
However, for quite some time Google Voice (the only Google service I really use anymore) has had a severe lack of phone numbers in many major area codes, including all of the ones for the Seattle area. However, you can always port a number from a cellphone over to Google Voice. But that means terminating your cellphone service.
Fortunately, T-Mobile has a $1 naked SIM which you can activate with a prepaid account. Also, you can activate it without adding any funds to it whatsoever. So, in effect, if you have a spare GSM phone laying around, you can get a phone number for $1. To sweeten the deal, it also comes with $3 of credit on it, which is more than enough to get the confirmation call from Google Voice's porting robot.
Unfortunately, porting a phone number away from T-Mobile prepaid isn't quite instantaneous, since Google Voice doesn't prompt you for a PIN unless there's an error (which there will be, since T-Mobile prepaid doesn't have a normal account number), so it might take 24 hours or so for my Google Voice number to be updated.
Google does let you keep the old number for 90 days, and permanently for another $20, but I'm not particularly attached to this number so tl;dr: My 415 area code number isn't going to be valid much longer.
October 24, 2012
The Sprung soundtrack just came up on iTunes shuffle for me, and it's been about 8 years and for some reason I feel like talking about some of the fun technical stuff. It wasn't a great game and it wasn't an amazing use of the DS technology, but there was some pretty cool internal stuff about it, even if it wasn't really visible in the end product.
I figure that since it was released over 8 years ago now and apparently Ubisoft doesn't even have the source anymore there's no harm in talking about things. (No, Nintendo, I'm not sharing any secrets specifically about the DS, and I never did to begin with, despite what your clueless lawyers told Ubisoft's clueless lawyers.)
I feel like I've written about this before but if so I feel like writing about it again, so bear with me.
October 16, 2012
So, my TV only came with a stupid "magic" remote which uses a gestural mouse and is painful to use. LG does a good job of making it hard to tell which of their standard remotes works with their TVs. And I wanted a universal remote that would work with everything; the universal remote which came with my stereo is quite good but, unfortunately, doesn't support the particular LG remote codes I need, either. So I paid way too much money for a Logitech Harmony One.
After spending a couple hours trying to get it to work reasonably I think I've beaten it into submission, but it was still bad enough that I decided to send a not-so-polite suggestion to Logitech support:
There is absolutely nothing intuitive or well-designed about this piece of crap web application thing. It's not even due to it being a web application, it's just that I don't think that the people who wrote the software have ever actually tried using it.
It would be really nice if you could just configure your devices based on what they're connected to (like, PS3 is connected to the A/V receiver on the HDMI2 port, A/V receiver is connected to the TV on the TV's HDMI1 port) rather than having to do a fiddly configuration of every port every single time you want to set up an activity.
It would be nice if you could skip the wizard crap, and just say which devices you want on and in which modes, and if you could see all the stuff about an activity or device at a glance instead of having it broken up into a dozen different pages.
It would be really nice if it didn't consider an Apple TV to be the same as a full media PC with keyboard, mouse, monitor, and gaming.
It would be exceptional if the button configuration for an activity could have groups of buttons set based on the defaults for one of the devices.
As it stands, the Harmony configuration software is CRAP, and it would also be really nice if there were just some XML-based format that users could use to create a configuration with an external tool. Allowing for third-party configuration would be a really good thing in this case.
Your wizards suck. Your UI sucks. The only reason I went with the Harmony is there don't seem to be any other learning remotes on the market anymore. I'm regretting paying this much for a nice device that's configured with such a badly-written piece of crap.
Your UI designers are bad and you should feel bad.
Was this abrasive enough?
September 14, 2012
So I rebooted my laptop into Windows for the first time in months, hoping to play Black Mesa Source. It came up, but everything was degraded, all my system tray icons were missing or broken, I was unable to configure it to Wi-Fi, and there was a "This copy of Windows is not genuiune" warning in the corner of the screen (which is probably why the rest of it was there). I went to try to activate it, but since I couldn't get online (because one of the systray icons that was removed was my Wi-Fi settings and I didn't feel like tunneling through the billions of different ways of configuring networking in Control Panel which are all maddening and broken and stupid in different ways) I decided to try the phone activation. Which was of course a very slow and obnoxious process, because there were warnings about how long the wait would be if I needed tech support, then overly-verbose instructions about how to enter the goddamn "installation ID" key, and then every single time I entered a group of 6 digits it stopped to prompt me for the next one with a different tone of voice and long-winded explanation of what to do next each time. Finally I got through it all, and then the number it read back to me for the activation went through the same sort of thing. Finally I got my Windows activated, and then rebooted, and then got Wi-Fi working, and then I kept getting a buttload of error messages from Steam that were covered over by other Steam dialogs and I just got sick of it and rebooted back into Linux.
Wake me up when Black Mesa Source is out for the Mac.
August 28, 2012
I guess it's been a while since I've posted, so here it is in brief:
- Job is going pretty good so far. The way computers are set up now is very different than five years ago, so I was able to actually figure out a decent work setup that works well. Also, my coworkers are pretty excellent, and in particular I'm getting along well with one of the engineers who is an old friendly curmudgeon from Syria. I'm also getting a handle on the codebase quicker than I expected, and this team is way more laid-back than anyone else I've worked with.
- My offer on the Firehouse 25 condo still stands, and I just accepted an offer on my condo in SF (whee). The offer I accepted wasn't as high as I was hoping for but it was still above my asking price and makes the timing work out really nicely (and my realtor pointed out that because of labor day and Burning Man I'm unlikely to get more offers in the next couple weeks anyway, and then that means it'll be sitting on the market for a while and that has a way of tainting things). I'm still making a decent profit on it anyway.
- I got sick of not having any guitars with me and I figure I need a better 6-string acoustic, and Guitar Center is just up the street from where I'm staying, so I figured...
- Werner is still going nuts, but hopefully he won't have to put up with this crappy apartment much longer.
- The ISP situation in Seattle proper is pretty dismal. Looks like the only real choice right now is Comcast. Maybe Paul Allen will stop working on his urban-renewal vanity projects and start trying to establish a FTTH provider to improve the city that's already here. But I'm not holding my breath.
- My wrists still suck, my butt still sucks, and I still have anxiety issues, but somehow life goes on.
July 26, 2012
I figure that it was time for me to finally set up a bug tracker.
(This is also useful for actual projects, such as AudioCompress, and I've also been thinking of finally releasing the source to SOLACE, and maybe updating the code to be a bit more modern and useful.)
June 21, 2012
FeedOnFeeds was getting pretty annoying, and fof-redux seems to have stalled in a completely broken state. Fortunately, I came across another self-hostable server-based RSS aggregator, Tiny Tiny RSS, which has a lot of things going for it:
- It's pretty cleanly-written (despite being in PHP) and designed to be a modern web app
- It's being actively-developed (and the developer is ridiculously responsive)
- It's using git for its source control
- It supports DBMSes other than mysql!
Of course the UI is taking some getting used to, but it's flexible and configurable enough to work more or less how I want it to (although a lot of the configurations occur at a code level, unfortunately). I have a few nitpicks with it (which mostly boil down to it being designed around the "RSS is like email" model rather than the "RSS is a stream of aggregated content" model that I prefer) but it also has a lot going for it, such as having a client API (and an Android client) and a nicer set of sharing mechanisms than FoF's (including share-to-Twitter and a much nicer sharing feed mechanism). It also has a nice filtering mechanism (which I haven't used yet but will probably come in handy if I start using it to aggregate forum content and comment feeds — which is another use case it seems to be designed for) and it's generally just a nice piece of software over all.
It's also gotten me to finally start using github for collaboration, because the author prefers github's pull request mechanism (which personally I think is kind of ridiculous; yet another thing I have in common with Linus, apparently), so, yay for that I guess. (I suspect I will still prefer to just publish my stupid stuff on my own repo though. I really ought to get around to moving my SVN crap there, speaking of which.)
June 11, 2012
Thanks to the recent spate of websites' password hash lists getting leaked and a lot of my internal shame over the fact that phpBB2 still uses unsalted md5 for its auth, I finally got around to fixing phpBB2 to salt its damn passwords. It's shameful how many PHP apps don't use the built-in
crypt() function and just use
md5() [WARNING: many of the comments on that page show a DANGEROUS lack of understanding of how this works!] instead - because people just don't understand security (even though this is stuff that's been known since the 1940s or something). It's stupid.
Anyway, I debated either replacing it with
crypt() and requiring everyone to change their password, or just wrapping the existing md5 values up in a crypt and making all future passwords a
crypt(md5($password)) instead, and the latter won out.
If (like me) you're running an old phpBB2 instance and don't want to upgrade to phpBB3, I've provided a handy guide for doing this yourself.
May 20, 2012
May 4, 2012
A lot of folks out there know about the Mandelbrot set. But that knowledge is often based on pretty abstract stuff, and is limited to the fractal as a two-dimensional thing that doesn't really make much sense. The other day I decided to screw around with some basic GPU programs, and I figured I'd finally write some stuff about this.
This is of course very basic to anyone who has studied fractals before, but the description of what's going on is largely secondary in this case.
(Warning: There are a lot of very large images in this post.)