Tuesday, March 28, 2017

The Switch

These are impressions of the Nintendo Switch in handheld mode. I've spent 20+ hours using it that way, and I don't know if I'll ever use it with the television.

The explanation for why is the review.

I enjoy handheld systems, but there's always been something that hurt the experience. With the 3DS/Vita, the screen was never quite large enough, and on the iPad/Android tablet, the screen turned into a dirty mess over time.

Wait, there's a third reason. Tablets never offer the ability to interact in a complex way, because the control schemes are necessarily limited. So the experience you can have is limited by the nature of the device.

That's why I'll probably never use the Switch with the television: as a handheld, the Switch is perfect. Just perfect.

For my hands, the Switch fits exactly right, and I mean exactly. It's incredibly comfortable, and the larger screen size makes the viewing distance just what I wanted.

Because I'm holding a controller in each hand, my interaction with a game can be complex, and each hand can comfortably reach every control.

Plus, and this is quite an experience the first time it happens, there's a tilt sensor, so I can make small aiming adjustments in games just by slightly moving the screen.

It's wondrous.

How long did it take me to realize this? Seconds. That's how good the Switch feels in your hands, and how fast you understand.

There are other niceties. The sound is very, very good. The screen is beautiful.

Most importantly, the ability to pick the system up out of the charging dock and be playing a game in five seconds is fantastic. It's so easy, and so convenient.

Sure, that's true of the 3DS/Vita as well, but the screen on the Switch is so much larger. It fills enough of your vision that you feel like you're playing a big game instead of a small one. It feels more consequential.

Look, the Switch is going to have the same issues every Nintendo console has had in the last decade: finding third party support that consists of more than gimmick games and shovelware. Probably, you're buying the Switch for first-party titles and a few terrific ports.

Is it worth it? Hell, yes.

I'll have thoughts on Zelda tomorrow.

Monday, March 27, 2017


"Oh hey, that guy's a kayaker," I said. "Pretty neat."We were behind a car at a stop light, and there was a sticker of a kayak in the back window.

"He's driving a Hummer, though."

"What's the business case for buying a Hummer, exactly?" I asked.

"There isn't," Eli 15.7 said. "They just want one."

The traffic light turned green, and the Hummer pulled into a parking lot.

"Oh no!" I said.

"Payless Shoes?" Eli said.

"Come on, man," I said. "You just bought a Hummer and you're buying shoes at Payless?"

Eli laughed. "That's all he can afford," he said.

"There's a marine store three doors down. At least park there, so people think you have a boat, too."

Life is complicated.

Friday, March 24, 2017

Friday Links!

Leading off this week, and it's an absolutely fantastic read (thanks, C. Lee): Murder in the Lucky Holiday Hotel.

This is such a remarkable and touching story: Father Who Quietly Maintained A Memorial To His Son For 12 Years Gets Permanent Tribute From Property Owner.

From Tim Lesnick, and these are amazing videos (now declassified):  LLNL Atmospheric Nuclear Tests.  Also, and boy, was anything we learned in American History actually real?  It wasn't just Greece: Archaeologists find early democratic societies in the Americas.

From Wally, and I'm posting this entirely for the baby throwing money .GIF, which is a total classic: 5 Reasons Why Tabletop Gaming Is The Best Mid-Life Crisis You Can Have. Grammar nerd alert: A missing comma keeps Oakhurst Dairy labor lawsuit alive. Even more grammar nerdness: Comma comeuppance: When rogue punctuation proves costly.

From C. Lee, and this is very, very useful: Informed Patient? Don’t Bet On It. These are very, very striking: Beautiful ukiyo-e tarot cards are East-meets-West in more ways than one. This is an excellent read: Hot Food, Fast: The Home Microwave Oven Turns 50. This is quite funny, unless your name is Kevin: Why it's hard to be a Kevin in France. This is fascinating: The real reasons why childbirth is so painful and dangerous. This is quite interesting as well: The hidden strengths of unloved concrete.

From Tim Jones, and these images are extraordinary: Extraordinary colourised images bring to life the horrors facing French soldiers during the First World War.

Thursday, March 23, 2017

Motorsports Manager

The day got away from me, but I do have one thing for you, and it's good: Motorsports Manager is free to play on Steam until Monday.

And it's good. Very good.

This is a very well-designed, attractive game, and it gives you decision sets without overwhelming you with information (like Football Manager can do). Plus the tilt-shift images are phenomenal.

Here's the link: Motorsports Manager on Steam. Plus, if you like what you see during the free period, you can buy the game for 50% off.

One more: Football Manager is free to play through the weekend as well, and has the 50% off deal as well. Very, very clever on Sega's part. Here's the link: Football Manager 2017.

Wednesday, March 22, 2017

Fighting Eleven #20: Choices

About two weeks ago, I decided I had to make a decision about the programming language I was using.

Like all languages, VB.NET does some things very, very well, particularly when used in a WPF application.

Other things, though, it does very poorly, often in an infuriating way.

Plus, it won't compile to a mobile platform (unless you count Windows Phones, which seem to be dead).

I decided that the easiest move would be to C#. It's supported in Unity, I thought it was relatively close to the scripting language in GameMaker (wrong, as it turned out), and it's easy to port C# to iOS. I wasn't sure about how well the XAML would export, but it felt like a step in the right direction.

So I started reading. And I had progressed to the point where I was going to start taking the existing code I had and convert it to C#.

However, I decided to email Garret first, because Garret is one of the smartest people I know, and even better, he explains things in an incredibly clear way.

His answer to my e-mail was so good that I'm quoting it below:
I'm afraid I must disabuse you of the notion that C# will give you the portability you are hoping for.

You are correct that .NET will only give you the tools to develop on the Windows Mobile platform, but I would strongly recommend that if there is a direction you want to go, you find a scripting platform or tool that will allow you to cross-compile between platforms and make the jump (or graphics platform or whatever) instead of spending time struggling to work in C#. And I will explain why I believe this below.

The idea of there being a "C-family" of languages is... misguided. A reasonable comparison would be an archivist comparing a coffee stained Playboy magazine with the Magna Carta and concluding they are similar because they are both yellow.

Maybe a bit extreme, but you get the point.

VB.NET has more in common with Java than C# has in common with C++.

The C-family appears to be a thing because what you are seeing is 50 years worth of developers being influenced by a revolutionary new programming language called "C" (which is based off a language called "B") that dates back to the moon landing. These developers were inspired by the ideas of a high-level language that abstracted away machine code, could be compiled and run on different chipsets without being modified, and decided "I can do it even better".

Some people took more extreme paths than others - a subset of them decided to build their own languages, but since they were familiar with "C" and (often) were building their compilers IN "C", they decided to make their language look like C.

You know how evolution works - we didn't evolve from monkeys, but Monkeys and Humans did have a common ancestor. Well, Perl and Java are the Pit Viper and 3-toed Sloth that just happen to share a common ancestor, a soft-shelled slug, called "C". As a result you can identify some characteristics in common that they share (they have eyes!) but that is where the similarity ends.

The "C" family is defined by a few commonalities (as I see it)
1) The use of braces "{" and "}" to denote the start and end of a block.
2) The existence of certain named control blocks: "if..else, switch..case, for, while" of which ALL can actually be accomplished solely through the use of a "while" statement if you are being truly masochistic.
3) The use of a dot "." to denote accessing a component property of a structure
4) Use a ";" to separate instructions (traditionally used at the end of a line).

That's about it.

Fascinating - I know.

But what it comes down to, is that I could write a summary that would outline the syntax changes that would result in VB.NET being classified as a "C-family" language, and it would take me fewer characters than I've already typed in this email to do it.

Lets try!

1) Braces: replace all blocks that begin with a keyword [complete list: class, do..loop, if..else, for each, for, function, select..case, structure, sub, try..catch, while] and end with another [end* or loop] by adding a "{" after the initial keyword command (ie "for i = 1 to 10 {") and replace the end keyword(s) with a "}"

2) No change (all VB keywords and control structures are modelled after "C-family" languages)

3) No change (VB uses the "." accessor)

4) Add a ";" after each declarative line, command, or instruction that is not the beginning or end of a block "{" or "}"


VB.NET is now in the C family!

The point of this is that the differences between "C" and "C++" and Perl, and PHP, and AWK, and Squirrel, and NYM and Noop... are enormous compared to the differences between VB.NET and C#.

The problem is that every language behaves differently under the hood, they do different things, they have different libraries, they have unique features, unique strengths, unique conventions, unique operators, unique platforms. That although they have some vague similarity in appearance, that is all they possess.

C is a structured procedural language that shares many commonalities with Assembly (in fact, you can execute Assembly instructions within C if you'd like) while Java is a virtualized byte-code object-oriented language that just happens to appear kind-of like C.

For you to take advantage of any new mobile application platform scripting language, it is far more important that you understand the concepts that underlie Object-Oriented systems and how to structure, organize, and implement code effectively - which is something shared by all modern platforms (and co-incidentally, doesn't exist in C), and then how to do what you want to do in your destination platform of choice (understanding the libraries, idiosyncrasies, and structures of your target language) than it is to understand C-style.

When you get right down to it - once you understand how to program, the syntax rules become trivial.

I often reflect on how incredibly lucky I am to have people like Garret advising me on all different kinds of things, not just programming.

It makes me less stupid, and that's always a good thing.

Tuesday, March 21, 2017


Gloria left this morning to go to Shreveport for a few days.

While she's gone, I have to do stuff+. Including making the bed, which I've never liked doing.

This morning, though, I figured it out: I only had to make HALF the bed.

Before you email me and say it would just be easier to make the entire bed, let me assure you, sir, that it is not.

Fortunately, my cutting edge interest in laziness has been passed on to Eli 15.7. While we were in Detroit for MAHA, we went to a mall and relaxed for a while. The boy had a smoothie, but didn't want to actually hold the smoothie. No problem:

Now, this next image isn't related to laziness, but I didn't want to pass up a chance to show you the world's saddest mall kiosk:

Monday, March 20, 2017

Tape Measure

We drove past an apple orchard on Sunday.

A nice feature of Western Michigan: fruit-related activities.

"Hey, they have a vineyard, too," I said. "What are they making--apple wine?"

"Maybe," Gloria said. "A boy took me on a picnic by the lake with a bottle of apple wine when I was in high school."

"Apple wine? How old were you?"

"I was in high school," she said, protesting. "He was the first boy I ever kissed, because the picnic was so sweet."

"Naive teenage girl, romantic picnic, apple wine--that's how you get 'with child', young lady," I said.

Eli 15.7 started laughing in the back seat.

"It was all very innocent," she said.

"So how far did he get--second base?" I asked. Eli burst out laughing.

"He was swinging for the fences," Eli said.

"Hey!" Gloria said.

"Dinger," Eli said.

"Giancarlo Stanton at the plate," I said.

"This family," Gloria said.

Friday, March 17, 2017

Friday Links!

From Wally, and this is brilliant madness: The amazing flying machines of Chinese farmers. That would make a great title for a novel, by the way. This is also madness, but of a different sort: Pricey parking spot in Brooklyn on the market for $300,000. This is fantastic: Awesome Lego Garden Railway. This is crazy: How to Clear a Path Through 60 Feet of Snow, Japanese Style. These are just staggering: Some kind of model with incredible detail (seriously, can't categorize it).

From Steven Davis, and this is amazing: Yukino-otani, the huge snow walls of the Tateyama Snow Corridor. This is very, very silly: Weekend Watch: “Stupid Robot Fighting League” Brings Silliness to Combat. This is pretty amazing, and watching someone play the theremin at a high level is mesmerizing: Rimsky-Korsakov - The Flight of the Bumblebee - theremin and piano.

From C. Lee, and this is a clarification of a longstanding belief: The True Story of Kudzu, the Vine That Never Truly Ate the South. This is depressing: The Toxic Truth Behind Mardi Gras Beads.

Remember WordStar? Control KD to save? You'll love this: WordStar: A writer’s word processor.

From Ken Piper, and it's just one of many reasons to unreservedly love George Harrison (as I do): How George Harrison Saved Monty Python. On the other end of the spectrum, this is pretty terrifying: NFL abuse of painkillers and other drugs described in court filings.

Ending this week, a very serious article about an incredibly disturbing problem in this country. Sorry, it's not a feelgood moment (there are updates at the front, the full article is a bit down from the top): Everything You Think You Know About the Death of Mike Brown Is Wrong, and the Man Who Killed Him Admits It.

Actually, after reading that last article, we could all use something to cheer us up (thanks to Daniel Levine): Drink up the majestic hair on these Minnesota high school hockey players.

Thursday, March 16, 2017

MAHA (part three)

"Well, you got carried out on your shield tonight," I said to Eli 15.7 on the way back to the hotel.

"What's that?" he asked.

"In ancient times, when a gladiator was killed in battle, they carried him out on his shield," I said. "Which raises some questions, because how big could those shields possibly be, and how small were those warriors, but I said it mostly for the valiant image."

Of a very small person getting carried out on a shield, I guess.

The nice news--cutting to the chase--is that his leg recovered after a few more days on crutches, and a week later, he's back to almost 100% and skating tomorrow night.

The second piece of good news is that he's on a daily stretching program now--with a phenomenal coach (Maria Mountain)--because it was long overdue, and this injury was a wake-up call.

"Can you commit to doing this daily?" I asked him.

"One hundred percent," he said.

"Turning short-term weakness into long-term strength," I said. "Stretching will be another strength."

"You and the slogans," he said, laughing.

It's true, though. When something bad happens, if you use it to evolve what you're doing, you can convert it into something good.

There was one other nice moment, and it happened the next day. Eli's team couldn't advance out of pool play, but they still had one more game to play (Eli didn't even dress out).

I was standing in the other rink, watching the game of one of our friends, when a coach from one of the other teams walked up. I knew him from tryouts last spring, and he'd always been very nice to Eli.

Eli played him twice this season, and in the second game, he had 39 saves on 40 shots. At the time, it was probably the best game he'd ever played.

The coach shook my hand, smiled, and said, "Do you know what's the best part of my week?"

"What?" I asked.

"I don't have to play your kid!" he said, laughing. "He was the only goalie I was worried about."

I laughed with him.

"I tell my son at least once a month, 'I wish to god we'd kept him'," he said.

Eli crutched into the rink just then, and the coach shook his hand and said the same thing to him, and Eli got a big grin on his face.

He hasn't even made the 16u team yet--tryouts are next month--and there's still a ton of uncertainty until he's on the roster, but yeah, it's been quite a season.

Wednesday, March 15, 2017

MAHA (part two)

There were 60MPH winds in Detroit, which caused a power outage to the rink not once, but twice, in the game before Eli 15.7 took the ice.

Oh, and did I mention the bush fire outside the front door of the rink?

Good enough to play.

From the start of this game, I knew we were in trouble. Flat. Which isn't what you'd expect when the season would end with a loss, but we were getting dominated, and this was a team we'd played very evenly in our two previous meetings.

Another top fifteen team, though. Like I said, MAHA is Murderer's Row.

Things happen in hockey, though, and we went on the power play, then scored a beautiful goal out of nowhere. 1-0.

It was like that until near the end of the second period, when a kid shot from behind the goal line, directed it off Eli's back (even though he sealed the post), and it landed on the goal line and went in.

Or maybe it didn't. Eli said it didn't, and he had his glove on the puck, so the referee couldn't have seen it go in, but either way, it was a goal, and the score was tied 1-1.

After two periods, we were getting outshot 29-17. Even worse, we just don't have the puck that much, which is an even bigger problem.

I could see that Eli clearly wasn't 100%, but he was playing great.

We could still win this game.

Then the third period started, and we were playing no better than before. The puck was in our zone too often for too long, and then it happened. Eli made two excellent saves but couldn't control the puck on either, there was no help, and the third shot went bar down.

Just like that, we're behind. 2-1.

There were still almost 15 minutes left, but it could have been 150. We just couldn't get started offensively.

No Chip Hilton moment.

Even worse, with about 6 minutes left, on a breakaway, a kid lost an edge and went crashing into Eli's left leg, the one that was hurt.

He stayed on the ice for a long time, face down. Then he got up, stretched a bit, nodded, and stayed in the game, although he was limping pretty heavily.

I knew then that he was hurt even worse, but all I could do was sit and watch.

The coach pulled Eli for an extra skater with about a minute left, and we gave up an empty netter shortly thereafter.

Final score: 3-1. Final shot total: 44 to 23.

Normally, a kid would be elated with 42 saves on 44 shots, but when Eli finally came out of the locker room, limping hard, there was no elation to be found.


When Gloria makes dinner, we serve from the stove. I was assembling my dinner and noticed something unusual.

"I see what you did here," I announced loudly. "Trying to sneak some broccoli under the cover of green beans. Your nefarious scheme is unsuccessful."

"All I was trying to do was--"

"Veg-pionage!" I shouted.

Site Meter