I’d like to take a moment to talk about a sentiment that’s been repeated endlessly in political cartoons and other news media, which pretty much boils down to “OMG SELFIES”.
Selfies, as it turns out, have been around pretty much forever. We used to call them self-portraits. Consider this self-portrait by Rembrandt in the goddamn 1600s:
And, I should note, this isn’t the oldest surviving self-portrait. It’s just a particularly good one. But hey, maybe you want to say “OH BUT THAT ISN’T A PHOTOGRAPH SO IT DOESN’T COUNT”, in which case fine, how about this photographic self-portrait taken in 18-fucking-39:
“THAT WASN’T USING A MIRROR”, you say? Firstly, go fuck yourself. Secondly, fine. How about this one from circa 1900:
Or this one of Princess Fucking Anastasia in 1914:
And even ignoring the whole history thing, it’s not just self-absorbed youths that take pictures of themselves. You also get older people:
And Mars rovers (in which case selfies are actually useful for science):
And this guy:
People take selfies because they want to have a memory, and sometimes proof, of something. Taking a picture of yourself doesn’t mean you’re narcissistic or self-absorbed. It just means you’re taking a picture of yourself. That’s all! So can we stop fucking going on about selfies already?
My dad’s watch has had the alarm stuck on for years. Neither of us could figure out how to turn the damn thing off. I think one of the buttons doesn’t work. In any event, it used to be set to go off at midnight. So every night, my parents would be in bed when the watch went off, at which point my dad would note, “It’s midnight”. Then my dad had an idea: while it’s impossible to turn off the alarm, he’s still able to set it. So about a year ago he set it to 9:00, figuring that no matter which 9:00 the watch went with, it shouldn’t be too intrusive at that time. Turns out it’s 9:00 PM, at which time the family is often eating dinner or watching TV or something.
Now, it just so happens that my mother has high-frequency hearing loss, so she can’t hear the alarm. As a result, she spent years thinking that she had married a crazy person; every night he’d announce that it must be midnight and claim it was a result of his alarm going off, but she’d’ve heard an alarm and there very clearly wasn’t an alarm. But when he set it to 9, my brother and I started hearing it too. My father was vindicated.
And now, every night at 9 o’clock, we remind her.
“These are not the terms we had agreed upon.” The man’s voice was cold.
“What do you care?” Michael asked. “It’s in your favor. Why question a good thing?”
“That’s not how it works.” His reply was sharp, like a teacher correcting a particularly troublesome student. “I cannot take that which I have not earned.”
Michael’s tongue briefly got the better of his brain. “Doesn’t stop you from taking lives.” Hopefully the man had a sense of humor. All available evidence indicated to the contrary.
“As I said, I cannot take what I have not earned.” He paused, considering something. “And this is twice what I have earned.”
“Look, I can’t take it back. They killed the last guy that tried that. Take it.”
“Must I repeat myself?” A moment’s silence. “You could appropriate the remainder for yourself.”
“Yeah, because they’d never find out about that.” Michael ran his fingers through his hair. “Okay, look. How about—what if I hired you?”
“Tell me your target,” the man said.
So he did.
There are a lot of reasons that you’d want to know if your app has been run before. Maybe you want to ask the user if you can collect usage information. Maybe you want to set up the default settings. Whatever the reason, it’s often useful to know. A simple method would be this:
If you interrupt my shower to tell me something, there aren’t a whole lot of things that’ll make me glad you did.
<Abe> I accidentally wrote on my computer screen!
That’s one of them.
I listen to a lot of music. Unfortunately, I don’t have much of an income at the moment, so my options for getting more are basically limited to pirating it and subscribing to an unlimited music service (e.g. Zune Pass, Spotify, Qriocity). I’m not going to lie and claim that I’ve never taken the former route, but I prefer to use legitimate methods when I can. The end result is that I am currently a subscriber to Zune Pass.
I’ve been enjoying it a lot. The ability to listen to anything on a whim (and legally!) is really nice. What’s special about Zune Pass, though, is the fact that, every month, you are given 10 credits. Each credit can be traded in for an MP3 copy of a song. This is the killer feature of the service. If for some reason I eventually cancel my subscription, I’ll still have some music. With, for example, Qriocity, I’d have nothing to show for my time using the service. It is more expensive than most of the other services ($15/month vs. $10/month), but I think this makes up for it.
It’s not perfect, though. The credits don’t roll over if you forget to use them before the month ends, so you have to keep on top of things. That’s not too much of an issue. The real problem is the lack of support.
Zune Pass currently works with Windows computers, Zune players, the Xbox 360 (provided you have Xbox Live), and Windows Phones. Not too many people have Windows Phones just yet and the Zune never really caught on. What Microsoft really needs to do is port the Zune software to Mac OS X and write apps for iPhone and Android.
There’s some hope of this; the Windows Phone Connector for Mac has some assets indicating that Zune will be coming to OS X in some fashion, but it’s still pretty murky. As for the phones, I don’t know about the iPhone, but I’ve got some heavy doubts about that there’ll ever be a Zune app for Android. Java is pretty easy to decompile, and the app would need to have the DRM scheme in it. Then again, there are obfuscators (e.g. DashO), so who knows? Maybe it will happen after all.
One thing I use a lot on my computer is the “open command window here” context menu entry. By default, you have to hold shift when right-clicking on a folder to get it to show up, but you can hack it such that it always shows up when you right-click on a folder (delete the registry entry at HKCR\Directory\shell\cmd called Extended) or when you right-click the empty space inside a folder window (delete the registry key at HKCR\Directory\Background\shell\cmd called Extended).
The Windows version of git comes with a version of bash that’s set up all nice-like with git integration. I found myself often opening a bash console, switching into some directory, doing something with git, and then closing the console. That’s somewhat tedious, though, so I ended up making an “Open in Git Bash” context menu entry. If you want to use it, you’ll need two files: bash.bat and bash.reg
<Me> Good news: I finished my app! Bad news: the internet is dead, so I can’t post it.
<Jon> awesome, what app? And the world can wait another day for greatness.
<Me> It draws POLYGONS.
Elyscape Software is proud to announce the release of its first mobile application: the Polygon Viewer for Windows Phone 7. Here at Elyscape Software, we understand that the need for an inexpensive tool that can easily visualize a variety of shapes, and this app was created to provide for this emerging market. Offered at the low cost of nothing, the Polygon Viewer creates not just regular polygons but star polygons and star figures as well. It even tells you what to call everything.
The Polygon Viewer is available now in the Windows Phone Marketplace. My next app is in development and will actually be useful.
I heard she asked about me from a friend the other day
He said as far as he knew I was doing fine
– Eli Young Band, Back of My Mind
I’m still here.
C++ is a good language to know if you want to go into software development. So are Java and C# and Python. More important than any of these, however, is versatility. With documentation handy, you should be able to develop a basic working knowledge of pretty much any language within a day or so. Don’t be scared off by that; it’s much easier than it sounds. Languages tend to follow certain patterns. If you can get the thinking down, translating it into code is the easy part.