Clueless Spammer is looking for a QA engineer.
I’ve just filed a bug with Apple that affects one of Trickster’s core features and also affects all users of OS X, thought they might not realize or care about it.
The problems is related to Last Open Date metadata not being updated for files that have quarantine attribute set in the file system (either because they were downloaded from the Internet or because they were saved from a Sandboxed application, which apparently can also set a different kind of quarantine bit.
Here’s the contents of the bug report:
Most files that are saved from sandboxed applications (or downloaded from the Internet) seem to have their quarantine flag set to some value. For some reason, for most of these files, Last Used Date (kMDItemLastUsedDate) metadata won’t be updated by Spotlight when this file is opened.
It appears that this problem started in OS X Lion (see Workarounds for quarantine bug in OS X Lion on CNET). I also noticed that the problem is not always showing itself. For example, if the first 4 digits are something like 0041 or 0042, the last used date will update. If it’s something else like 0001, it won’t.
I started a thread on it at Developer forums some time ago at https://forums.developer.apple.com/message/66280. No response so far.
Steps to Reproduce:
- In Finder, go to Downloads folder and add Date Last Opened column and sort by it in descending order
- In Safari, go to http://www.apparentsoft.com, right click on ImageFramer icon and “Save Image to Downloads”.
- It should appear on the top of the list in Finder as the file is created with the open date = date added.
- Open other files in Downloads to move them to the top of the list (though it might not work because of this bug). If no files move to the top, wait until the clock changes to a different minute.
- Double click the downloaded PNG from Finder. It should open in default application, like Preview.
Last Open date of the PNG file is updated to the time in step 5.
Last Open date doesn’t change.
Removing the quarantine attribute from the file and then opening it will bring it to the top and update its Last Open date.
Removing of the attribute can be done in the Terminal with:
xattr -d com.apple.quarantine <path/to/file>
TL;DR, an abbreviation for “Too long; didn’t read”, is Internet slang used in reply to a lengthy online message. It is also used at the beginning of a summary of such a message. — Wikipedia.
This essay explores TL;DR in programming context.
It tries to find out if the trend of TL;DR behaviour spreads to software development as well, and what are the dangers of that.
It’s about Bob. It’s not about you. Good programmer don’t TL;DR. Good programmers read.
Robert Kode1 is a long-time programmer. Bob loves to code. He was programming since his early teens and is fluent in six languages. He speaks only English but can read and write the other five. These five are not used for speech.
Over the years Bob developed good know-how in many areas of software development and has an intuitive understanding of many concepts. He can crunch code fast and his code is fast.
It just so happens that Bob is a TL;DR programmer.
Too Long; Didn’t Read
TL;DR comes from the increasingly short attention span of today’s Internet generation. Do programmers also fall victim to the short attention span which leads to TL;DR?
Bob believes that programming is about writing. Writing code. Writing code comments. Writing commit messages.
Bob was assigned to write a new module for an application. He skimmed the requirements for the module. He skipped half the paragraphs in the email that described some focus points. He didn’t get back to them when he churned out lines of code.
Eventually, Bob’s module implemented half the cases it was supposed to support. In some cases, it did what it wasn’t meant to do. QA filed a ton of bugs and Bob found himself in Tester Driven Development mode.
Now he cannot afford to skip reading the bug reports.
Too Lazy; Didn’t Research
How much research had to be done before writing the first line of code for Apollo Project?
Bob’s got years of programming experience, as I said, so he relies on his intuition. Oftentimes more than he should.
This time our Mr. Kode got the kind of task that he liked. He was supposed to implement a peculiar data processing algorithm for, well, the data.
Bob had prior experience writing some algorithms and was excited about the new challenge. He conceived the general approach of the algorithm as he was reading the requirements. He might have overlooked some of the intricacies of the requirements (see above) so it didn’t help either.
Bob went right ahead to writing it. After half a day it kind of worked. There were some edge cases that required attention. It was also slow. It also didn’t scale well for high amounts of data. Another day went on trying to optimize it. Then another day. Then it started giving the wrong results. And crashing on the edge cases.
Robert didn’t invest the time to think through his idea before developing. It’s not easy, so he trusted his intuition instead.
Bob also didn’t run a relevant search on Google. If he had, he might have stumbled upon a paper, or a blog post, or an answer on Stack Overflow, any of which might have helped him select and implement the right approach. Research is hard. Bob didn’t research. Bob was a bit too lazy.
They say good programmers are lazy. But they say it for a different reason.
Q: Does TL;DR programming lead to the culture of Stack Overflow questions of “please give me code to do X”?
Q: Do we see more bugs today because of TL;DR attitude? Including critical bugs like Boeing 787 bug which could bring the whole plane down in one case? Or more security omissions?
Q: How many programmers just try things out until they work, sometimes without understanding the theoretical basis of why and how? Or choose a simpler, inadequate solution?
Q: Could this also apply to other aspects of the software business, like product and project management, software architecture and market research?
Q: Are you a little like our Bob?
A: I am
- Fictional character
Doing customer support can bring more benefits than just another happy customer.
An interaction with a customer of your application can lead to:
- Understanding what the customers want from your application
- Learning where customers learned about your application
- Ideas for future features
- Recognizing which problems return with different customers
- Leads to other customers
- New vectors for marketing
- Fixing the underlying issue for the above problem or otherwise reducing this support request in the future
- Writing an FAQ article
- Creating a how-to-video for the issue
- Publishing the above video on YouTube
- Publishing an article explaining this video on the blog
- Tweeting and posting on Facebook about the article on the blog
- Mentioning it in the newsletter as a tip, perhaps
- Writing an article on the blog about how customer support can benefit you
- Tweeting about the above article
I made another musical video. This time I remade David Bowie’s excellent “Space Oddity” with lyrics on the subject of ups and downs of indie app development. It should be more accessible to the general population than my previous video about the programming language Swift.
Lyrics are embedded in the video but here they are in full:
App Oddity ~~~~~~~~~~ App Review to Coder Tom App Review to Coder Tom Take your caffeine pills And put your headphones on App Review to Coder Tom Commencing countdown, you’re logged on. Check submission and may Jobs’ love be with you This is App Review to Coder Tom You’re featured on first page And the web sites want to know how much you’ve made Now it’s time to go out and celebrate This is Coder Tom to App Review I’m stepping through the doors And my head spins in a most peculiar way And the App Store’s very different today For here Am I sitting in my basement Far from outside world Why do I feel blue Is there something I can do? Though I’m past one million free downloads I can’t see many sales And I think I might've chosen wrong way to go Tell my customers I care, 'cause they should know App Review to Coder Tom Your app is dead, there’s something wrong Can you fix it Coder Tom Can you fix it Coder Tom Can you hear us Coder Tom Can you… Here am I lying in my basement Far from outside world All I feel is blue And there’s nothing I can do
These days I’m reading what appears to be a fantastic book by Daniel Kahneman, called “Thinking, Fast and Slow”. It’s about how the intuitive and analytical minds think and interact. It’s about statistics and the fallacies of our minds with regards to statistical intuition and other thinking fallacies.
The quotes in the image are just a sample of quotes from one chapter. These specifically refer to the efficacy, or rather lack of thereof, of a specific kind of business books, those that try to teach the readers how to be successful in business by analyzing previous successful businesses, as if their management was somehow especially smart. The thing, as Kahneman explains, is that luck plays a much more important role than a specific CEO’s abilities are and eventually, over time, the companies come to some middle ground because luck averages out.
In short, read the quotes. Better yet, get the book.
Are you the president of a nuclear weapon wielding superpower? Congratulations! There’s an app for that.
Introducing the “Big Red Button” app for the Apple Watch — launch the nukes from the convenience of your wrist.
Targeting has never been so easy with a variety of options:
- Select your target destinations with Siri dictation. Relies on Apple Maps. It’s never wrong
- Tap a location on a zoomable map
- A Favourites list of your colleagues from other countries will automatically target their location
- Quickly rotate and let go of the digital crown to randomly select from a list of predefined targets and let it go. We call this feature “Atomic Russian Roulette”. It’s addicting, you’ll want to rotate and rotate!
Additional groundbreaking features include:
- Approve launches by signing with your finger on the watch face or by dictating “Sure, why not”
- Satellite view and the map update in almost-realtime after the target is hit by downloading latest imagery from military satellites. Terraforming has never been so fun
- Feel the hearts of your enemies stopping with the fantastic haptic feedback of your new toy. (Requires an In-App-Purchase of a backdoor access to their Apple Watches)
- Uses Force Touch technology to select the size of the warhead. Press harder to hit them harder
- Game Center integration to compete with your foes, complete with Leaderboards and Achievements
Download now or you’ll be out of the game first!
Successfully completed a client project in record time and budget by convincing the client that there’s no need for it.
Of course I wasn’t paid for the couple of hours it took me to research the idea and communicate my thoughts on it with the potential client. But it was the correct thing to do and I’d do the same again. Going for it could’ve ended very frustrating to all the parties involved.
I covered Radiohead’s Karma Police with modified lyrics about some of the attitude towards Apple’s new programming language, Swift, that I saw on the net.
It’s meant to be fun. Lyrics embedded in the video. Enjoy.