How Magic Leap redefined magic. Literally.

There has been huge excitement at the long awaited announcement that Harry Potter will be reinvented in Cinematic Reality. Despite this excitement some truly die-hard fans are angry. Why? Because Harry, Hermione, and Ron won’t be using magic; they will be using sorcery.

To understand why, we must go back nearly 15 years to the summer of 2015 when Magic Leap exploded into the world’s consciousness. I had tried Oculus VR and it was stunning, but nothing prepared me for my first Magic Leap experience. I was so excited on my first first trip to the Magic Shop to see the Flutterpods. My first purchase? A dragon, of course! His name is Tarquin and he’s perched on my bookcase right now, cleaning his wings. It was clear to me at that moment that Magic Leap had invented magic. So along with everyone else I began calling this new technology just that: magic.

The speed with which magic became ubiquitous is, of course, well known. I’m writing this sitting on my couch with a translucent writing screen conveniently floating in front of me. When my daughter Magic-Skyped in a few minutes ago the screen faded away and instead she was there in the room with me. We magiced in her mom as we planned for Thanksgiving. When done they magiced away and I magiced the writing screen back up with a nod of my head. Remember all those devices that we used to have–phones, TVs, tablets, laptops? They are all pretty much obsolete now. Everyone just uses magic.

And this is the problem for Harry Potter. For the generation that has grown up with magic it becomes confusing when characters are engaging in the fictional supernatural phenomenon that is now commonly known as sorcery, but are referring to it as “magic”. Personally, I think the younger generation should be given enough credit to understand that Harry Potter comes from the time before magic. I don’t expect Hollywood to agree with me.

The redefinition of words by technology is nothing new. Consider that the word “computer” originally referred to a person who would perform computations. But if I say, “the time before computers” everyone understands I am not talking about such people. Likewise, when I say, “the time before magic” most people will understand what that means–it means the time before Magic Leap.

Magic has its problems and everyone is aware that not all the social implications have been positive. But despite these issues I feel extremely lucky to be living in the age of magic. And as I throw snacks for Tarquin and watch him swoop down to pluck them out of the air I want to say a big thank you to Magic Leap for inventing magic. And yes, magic was invented in the same way that computers were invented. It was invented so completely that the very word has been redefined. Literally.

Posted by Arthur
November 22, 2029.

(This is a work of speculative fiction. I have no connection to Magic Leap nor do I have any inside information. I am not from the future.)

Posted in Entity Framework | Leave a comment

After wearing ourselves out in the real world, my daughter and I…

Today, after wearing ourselves out in the real world, my daughter and I have paddled down the Anduin and through the Argonath, floated in space above the Earth, flown through the Solar System and marveled at the beauty of Saturn’s rings, watched some of The Lego Movie in 3D on a giant theater screen, caused asteroids to explode by staring at them, shot paper balls around a classroom and played a Game Boy under the desk, until the game came out of the Game Boy and filled the classroom, sat in a cafe in Paris as a robot, enjoyed butterflies fluttering around us and petals floating softly from above, ridden a roller coaster through a lava factory, and flown inside our own Minecraft worlds. This is just the beginning. Thank you Oculus. Everything is awesome.

Posted in Entity Framework | Leave a comment

Soft Oatmeal Cookies

How software engineers make cookies, or a true story about over thinking everything… Continue reading

Posted in Entity Framework | 1 Comment

EF 6.1: Creating indexes with IndexAttribute

Since EF 4.3 it has been possible to use CreateIndex and DropIndex in Code First Migrations to create and drop indexes. However this had to be done manually by editing the migration because the index was not included anywhere in the Code First model. Now with EF 6.1 it is possible to add index specifications to the model such that creating and dropping indexes can be handled automatically by Migrations. Continue reading

Posted in Code First, Code First Migrations, Data Annotations, Entity Framework | Tagged , , , , , | 23 Comments

EF 6.1: Turning on logging without recompiling

I already blogged about SQL logging in EF6. Part 3 of that series shows how to use EF with a logging framework such as NLog. If you do this then you can easily switch logging on and off using NLog or equivalent without any changes to the app. This is the approach I would use if I wanted to log SQL from EF. But what if logging was not considered at all when the app was created? Now with EF 6.1 you can switch logging on for any app without access to the source or recompiling. Continue reading

Posted in DbContext API, Entity Framework, Extensibility, Interception, Logging | Tagged , , , , | 8 Comments

EF6 release dates…or lack thereof

On the EF team we frequently get questions along the lines of, “when will the next version of EF be released?” This is an entirely reasonable question to ask and it is frustrating to me personally that I cannot answer such questions. But of course this is nothing compared to the frustration felt by those of you who never get an answer. So why is it this way?

Update: Visual Studio 2013 has been announced for “this year” by Brian Harry. If you read the rest of this post you will realized that this means EF6 RTM will be also released “this year”. Continue reading

Posted in Entity Framework | Tagged | 11 Comments

Database initializer and Migrations Seed methods

Entity Framework contains two different methods both called Seed that do similar things but behave slightly differently. The first was introduced in EF 4.1 and works with database initializers. The second was introduced in EF 4.3 as part of Code First Migrations. This post describes how these two methods are used, when they are called, and how they differ from each other. Continue reading

Posted in Code First, Code First Migrations, Database Initializers, DbContext API, Entity Framework | Tagged , , , , , , , , | 6 Comments