For years Magic Lantern has been loved and trusted by many Canon users, and envied by Nikon users, thanks to the host of features the free software adds to the camera’s firmware.
A miserable April Fools’ joke, however, has many users irritated with the developers.
Turns out Magic Lantern though it would be funny to set the camera to have a 1 in 1000 chance of getting the blue screen of death, as long as the camera is not busy recording video. That’s right, ML intentionally crashed cameras.
Vladimir Ivanov shared a lengthy breakdown of his experience, and the headache and wasted time it took for him to figure out the BSOD was caused by a prank.
He begins by explaining the problem he encountered:
“BSOD says that an internal error number 0x000000aa (there’s no mistake in numbers) occurred. There’s a lot of text (memory dump is ready, try to restart, check the settings, etc.) and “Your camera was bricked” (among others).
My cold fingers do a reset via the battery, as recommended by the developer. I turn on the camera and get the same BSOD two seconds after the download. F@#$%!
I’m getting nervous. Remove ML. Everything works normally.
Thinking that it is the build’s fault, I roll back to the version dated March 28th (which took me 4+ hours!).
Run it. Everything works. Okay. Adjust the camera again, being prepared to dive into the study. BSOD! WTF?!
Reset. BSOD in a minute. Format it. Reinstall. Run. BSOD. Shock. Damn!”
After a while Vladimir decided to read the source code over on bitbucket, and that’s when he found the following code:
struct tm now;
LoadCalendarFromRTC(&now);
joke_mode = (now.tm_mday == 1 && now.tm_mon == 3);
+ if (joke_mode)
+ {
+ msleep(1000);
+ joke_mode = display_idle();
+ }
and
+ if (joke_mode)
+ {
+ if (rand() % 1000 == 13 && !RECORDING)
+ {
+ extern void bsod();
+ bsod();
+ }
+ }
You read that correctly. Magic Lantern created a “joke mode” that caused cameras using its software to crash. Sounds like someone wasn’t wearing his thinking cap.
Vladimir explains in more details how the code works:
“The explanation: On April 1st (now.tm_mday == 1 && now.tm_mon == 3 (the third month becomes the fourth when counting from zero), after loading ML, the firmware generates a random number every second. If this number is equal to 13 and the camera is not recording at the moment (thanks at least for this), get your BSOD. Since my level of luck was critically low, I caught the BSOD 5 times after loading the firmware”.
Obviously this terrible idea of a prank wreaked havoc and before too long the Magic Lantern forums had users reporting their urgent problem. A user called “josecarlosss” posted the above image showing the results on his own camera.
At some point a developer with the handle “g3gg0” stepped in and explained the joke:
“yeah sorry to the ones who got victim of that BSOD.
the flickering backlight was making some people upset, so we switched back to the uhm several years old BSOD prank…”
Over on the BitBucket forums “a1ex” who seems to be the same person as “g3gg0”, or at least another developer, posted the following fix:
“First step: read the error message and notice the hint about today’s date.
Easy way to bypass the prank: change the date to April 2.
Harder way: inspect the source code, notice what the magic button is, and press it at camera startup”.
In what might seem like a desperate attempt to turn a poor prank into a PSA, the developer posted a message warning users they should always be ready for ML failing:
“so a warning to everyone being pranked yesterday:
you are not prepared for serious shooting with magic lantern, if this was a real problem to you.why?
if you use ML for business make sure a failure, no matter if serious issues or not so serious (like yesterday) wont get you in trouble!
– take ML-free backup-cards with you
– make yourself confident with rescue procedures and how to temporary disable ML
– ML, especially “latest” versions can introduce troublesome behavioryes, its cool that ML is being used in a lot of serious stuff. we really love that.
but we expect users to be prepared for the moment when ML is going nuts for some reason.
this day will come.”
It’s not that I don’t agree with the gist of this message, but setting up a prank that hurts your supports and then blaming them for falling for it just doesn’t sound like the best course of action.
The pranks received a variety of responses, most in the lines of this comment:
“Haha, this is all really f*ing funny, but I spend a lot of time perfecting my photos, some of which are once-in-a-lifetime photo opportunities. I don’t need Magic Lantern developers PURPOSEFULLY f*ing up my photos as a practical joke”.
A few users, who undoubtedly did not encounter the BSOD, actually thought the prank was pretty successful:
“ahahahahahahaha SO GLAD it did not happen to me! Still, great prank!”
Being a Nikon user I can’t install Magic Lantern anyway, but this move would definitely make me second guess any decision to do so if I could.
[via boingboing]
FIND THIS INTERESTING? SHARE IT WITH YOUR FRIENDS!