Josh Gordon is a professional grade moron

I begin my day, as always, by going to Facebook. A friend comments that Josh Gordon has done something stupid again. I sigh and look it up. There are two problems with this scenario.

1) Dude, you’re trying to appeal a suspension for using marijuana. How about, I don’t know, putting down the marijuana for a while? I get that THC is addictive, but it’s considerably less so than caffeine or alcohol or nicotine or any of a dozen other drugs.

2) There are many, many places in the US where going 15 miles an hour over the speed limit will not get you a ticket. Northeastern Ohio is not one of them. Even doing 10 over is pushing it. I know that the highway speed limits are stupid. I was young once, and fancy free, and earned myself a speeding ticket or two doing much what you did. However, I was not (and am not, sadly) a phenomenal athlete who could become a millionaire. I was a dude driving a Buick or Ford Focus (depending on the occasion in question).

So, if for some reason you’re reading this blog, Josh Gordon, find a cave somewhere. A cave where there is no marijuana. A fully modern cave, with an awesome TV, broadband, video games aplenty, all the food you can eat — I’m not a monster — but no marijuana. Live in this cave, and do not come out until the appeal is reviewed. Then, go back into the cave, and stay there for the rest of your NFL career. At least, the portion of it that involves the Browns.

Failing that, give me the cave. I kind of want to live there now. There’s broadband and TV!

Catching Me In June

This June won’t be too busy for me conference-wise, but I do have a couple talks.

First of all, I’m going to be at SQL Server #299 in Columbus, Ohio on Saturday, June 14th.  I will have the chance to give two talks there, one on tally tables and the other on using the APPLY operator.  I’ve given both of those talks before, so this should go pretty well.

After that, I’m giving my In-Memory OLTP talk to the Triangle SQL Server Users Group on Tuesday, June 18th.

That should just about cover it event-wise for next month.

Ceiling Fans Installed

I’ve lived in North Carolina for just about a year, during which time I haven’t had ceiling fans.  This past week, I decided to correct my mistake.

I now have ceiling fans up in the master bedroom, office, and guest bedroom.  The office has historically been a terrible room climate-wise, due to the fact that there’s hardly any insulation and is east-facing, so it gets hot early in the morning.  With the ceiling fan installed, you can definitely feel a difference.

I still have plans for one or two more, but these have bumped my Handyman Rating up to a Level 1.5, and my Electrocution Count is still 0.

Thoughts On OOTP 15

I’ve gotten through season 1 of OOTP 15.

Fundamentally, it’s the same game for me as OOTP 14.  I don’t really like 3D mode all that much, so I’m not using it.  I turned on all of the foreign leagues because they’re awesome, but they really slow down simulating games, and I might just turn them off again.  I also saw that the AI is a bit smarter—you can’t flip players quite as much as before, and the game doesn’t over-value setup men—but I still made what I consider to be major steals with some regularity.  On the plus side, they’ll consider debt-for-debt swaps:  I have $13 million tied up in Dan Uggla; to get rid of him, I had to trade some guys of value an take on a similar guy with a big contract but maybe some more upside.  In prior editions, the game would freak out because of Uggla’s contract and I’d pretty much have to eat it.

I will say two things have improved greatly:  first, I love the fact that I can get ratings normalized across the entire league, rather than by league and position.  I like seeing that the 75-potential second baseman is really more like a 50-potential guy in the league; it’s just that second basemen are so rare that 50’s the best you can do.  [Not really with second basemen in the current MLB; actually, that’s more like starting pitchers, where a #1 starter can be a 60.]  Second, the widescreen-friendly interface is nice.

But given that OOTP was such a fun game last year, it’s getting hard to improve.

Stratfor: Disband the CIA and NSA, it’s all the intelligence gathering you’ll ever need!

A friend pointed this out to me on another website. We have this brilliant tagline:

Best-selling author George Friedman founded Stratfor in 1996 to bring customers an incisive new approach to examining world affairs. Under his direction, Stratfor taps into a worldwide network of contacts and mines vast amounts of open-source information. Analysts then interpret the information by looking through the objective lens of geopolitics to determine how developments affect different regions, industries and markets.

So, they Google stuff on the internet and watch CNN. And calling geopolitics “objective” is hilarious.

Their vision:

Stratfor’s vision is to be the foremost provider of predictive geopolitical-based intelligence services.

Stratfor’s core philosophy is that transformative geopolitical events are neither random nor unpredictable. Building on nearly 20 years of experience as the world’s premier geopolitical intelligence firm, Stratfor develops constraint-based narratives for key trends around the globe — placing today’s events in context and forecasting tomorrow’s new developments well before they appear in the headlines.

This reminds me of this Dilbert comic. Wally has a ponytail because he’s discovered it makes people give him venture capital. Ah, 1999.

The core philosophy is bold, I’ll give them that. I love the idea of “constraint-based narratives,” which makes me think of unconstrained narratives. “We predict that giant robot whales will develop nuclear technology, but we think Aquaman will try to calm them down, until he realizes whales are mammals and not fish. ESPECIALLY robot whales, who are clearly robot mammals.”

Of the three experts they champion, the one thing they all have in common is that they’ve sold a lot of books. That means they’re good at convincing people to believe their bullshit, which is not the worst qualification for running a geopolitical intelligence firm, you have to admit.

You can check out their methodology, which successfully proves that they have at least one graphic artist. Oh, one of the award winning reports they author?

The very first sentence is complete horseshit.

Like nearly all of the peoples of North and South America, most Americans are not originally from the territory that became the United States.

Since you’re using “are” — indicating present tense — I would argue the exact opposite: most people who are Americans did come from the United States since, you know, no matter how bad illegal immigration is, it has yet to reach over 50%. Even if you include legal immigrants, it’s still way less than 50%. According to the Brookings Institution, it’s actually less than 20% (although it is not clear whether or not this figure includes illegal immigrants, they link to a paper I could read if I cared to break it down.)

It takes a special kind of stupidity to achieve almost complete incoherence one sentence into a flagship paper. One more insane sentence, which leads off the second paragraph:

The American geography is an impressive one.

“One?” One of what? Are you trying to say, “The American geography is an impressive geography?” Because that’s moronic. “Geography” — specifically, the science of studying the earth, or physical location on the earth of some natural feature — cannot be impressive. Would you call the “Grand Canyon an impressive geography of America?” No. You could say “the Grand Canyon is an impressive feature of American geography.” But geography, in and of itself, cannot be impressive. I’m theoretically paying damn good money for your nonsensical advice. Try to make it coherent nonsensical advice!

Oh, and a free tip (the next one is $100,000): nothing is inevitable, in a historical sense. Only Marxists think that. Wait a minute… you aren’t a big Commie, are you, Stratfor?

Identity Integers In SQL Server In-Memory OLTP

There’s a piece of no-longer-correct information floating around on the Internet, and I wanted to put up a blog post to point out the correct answer.  A lot of people say that identity integers are not allowed in SQL Server 2014’s In-Memory OLTP (i.e., Hekaton).  In fact, identity integers are allowed and are fully supported in the full release of SQL Server 2014.

Let’s create a new In-Memory OLTP table using an identity integer as the primary key.

CREATE TABLE dbo.IdentityTest
(
	Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 500000),
	IncidentNumber VARCHAR(19)
)
WITH
(
	MEMORY_OPTIMIZED = ON,
	DURABILITY = SCHEMA_ONLY
);

From there, I want to show you that you can certainly insert into a table with an identity column:

INSERT INTO dbo.IdentityTest(IncidentNumber) VALUES ('This can''t work!');
SELECT * FROM dbo.IdentityTest;

If you run it locally, you’ll get back the row you expect, proving that it absolutely can work.

“But wait,” you might say, “what about natively compiled stored procedures?” We know that natively compiled stored procedures are neutered in V1, so that’s a good question. Let’s gin up another example:

CREATE PROCEDURE dbo.dbo.IdentityTest_NativeProcedure
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE=N'us_english')

	INSERT INTO dbo.IdentityTest(IncidentNumber) VALUES ('This can''t work!');

END
GO

EXEC dbo.dbo.IdentityTest_NativeProcedure;
SELECT * FROM dbo.IdentityTest;

If you run this, you’ll see that even a natively compiled stored procedure successfully uses an identity column. Given that you can’t get FOR NEXT VALUE on a sequence in a natively compiled stored procedure, this is an important finding.

Now let’s clean up the junk:

DROP PROCEDURE dbo.IdentityTest_NativeProcedure;
DROP TABLE dbo.IdentityTest;

Putin or Hitler? The definitive primer

Many, many news outlets have broadcasted stories comparing President of the Russian Federation Vladimir Putin with Chancellor of the Third Reich Adolf Hitler. It strikes me that it might be useful to help people figure out the difference! The primer is simple: start from the top and work your way down.

— Is the person living or dead? If dead, it is Hitler. If living, it is Putin.*

— Look at the person’s face. If they have a mustache, it is Hitler. If they do not, it is Putin.

— Look at the top of the head. If you see hair, it’s Hitler. If you see very little to no hair, it is Putin.

— If you are looking at a photograph, is the shirt on or off? If there is a shirt, it could be either. If there is no shirt, it is Putin.

— Is the person eating a delicious steak or other meat product? If they are, it is Putin. If they are not, it is Hitler.

— Is the person consuming an alcoholic beverage? If so, it is Putin. If not, it is Hitler.

— When they smile, do they appear genuinely happy? If so, it is Hitler. If not, but they do look like they are mocking you, it is Putin.

— Address the individual in German. If you get a response, it could be either Hitler or Putin. If you do not get a response, it is probably Hitler. Please make sure you verified if the person is living or dead.**

— Address the individual in Russian. If the response is virulent hatred, it is probably Hitler, depending on the content of your address. If you get any other response, including no response, it is Putin.***

— Ask the individual about the Soviet Union. If you get a nostalgic sigh, it is Putin. If the response is murderous rage, it is Hitler.

— Ask the person about Karl Marx. If the individual you were talking to is now a smoking crater, caused by spontaneous combustion from pure, unadulterated hatred, it is Hitler. In all other cases, it is Putin.

— In fact, if the response to anything is any emotion other than boredom or cynical mocking, it’s probably Hitler.

I hope you have found this primer helpful. If you have questions, please do not hesitate to ask!

*As of this blog post. This will become untrue in the future. Future responses, obviously, imagine a reanimated, sentient Hitler. Not a zombie Hitler, though.

**Putin lived in East Germany as part of the KGB.

***No response because you are not worth his time.

Conferences Over…For This Month

This past week has been a busy one for me.

First was Carolinacon, which was fantastic and whet my appetite for Derbycon.

After that, I had a chance to hear Grant Fritchey speak about continuous deployment on Tuesday.  This was an early version of the talk, but he did a good job.

On Wednesday, I gave my own talk on In-Memory OLTP in SQL Server 2014.  That went really well, even though it lasted over two hours.  I was exhausted by the end of it, but there were a number of great questions.  Most of the questions boiled down to, “Why would I actually use this in a production environment?”  And that’s a fair question…

Finally, I gave the same talk on Friday to my co-workers, but in a condensed, one-hour format.  I had to pack in a lot of detail, but I think they got the gist of it.

That’s all for this month.

The greatest villain in comics, movies, and comic book movies

He has been played by two magnificent actors, both incredibly talented who have been fantastic in multiple roles. The first to play this role on film has been nominated for Academy Awards; the second a young actor, also nominated for Academy Awards. He is among the most recognizable villains in film today.

… Oh, sorry, did you think I meant the Joker? I was talking about Magneto.

I could have sworn Chris Sims of Comics Alliance did an “Ask Chris” about Magneto that made all of the points that I’m about to make. If I find it, or you find it, dear reader, I will link it. In any case, while I love the Joker and Batman as characters, and they’ve made for two mighty entertaining films, Magneto, as a villain, is heads and shoulders over the Joker.

I don’t remember who said it originally — Michael “P.S.” Hayes of the Fabulous Freebirds, or perhaps Jerry “the King” Lawler — but one of the all time wrestling greats said that the best heels are the ones who are convinced they’re right. A villain who recognizes himself as a villain is not as compelling one as one who thinks he is genuinely doing the right thing. The Joker is the former. He embraces chaos and destruction for his own sake. His mission in life is to remake Batman in his own image. Everything else is secondary. Especially Harley Quinn. He has no principle, he has no guiding purpose; he merely exists. Batman is always facing “timeless” enemies — Ra’s Al-Ghul is only the most obvious example — and the fact that the Joker is always there, even when he isn’t (maybe especially when he isn’t), gives him a larger than life character. That’s his strength — and also his weakness.

Magneto, or Erik Lensherr (at least in the movies), is very much grounded in reality (pardon the pun.) The guy was a Holocaust survivor. One of the things Marvel does better/differently than DC is making characters “real” people who happen to be superheroes, and Magneto is no different. He has seen the absolute worst that humanity can achieve and vows it will never happen again. He believes his opinions are the correct ones, and to hell with anybody who disagrees with him. He can and will work with others to achieve his goals (unlike the Joker, who is always manipulating them, usually for the sake of doing so), because his goals are all that matter to him. He is a charismatic leader of men, and if his goals weren’t ultimately so horrific, he wouldn’t be a villain at all.

The Joker’s origin story, perhaps alone of all major villains, has pretty much been “BECAUSE REASONS.” Look at The Dark Knight, where Heath Ledger’s Joker tells a dozen different versions of his origin, almost all of which are certainly lies (if not all of them.) He is, after a fashion, mocking the viewer, who has been trained to expect “official” origin stories for their villains. There isn’t one for Joker. The origin story isn’t just part of Magneto — it is Magneto.