I took and TA-ed my college’s Computer Security course, where we did things like write malware and put it on VMs, or sillier projects like port knocking. Who knows what they’re doing now.
Anyways, I always had one idea for a virus I wanted to write to maximize chaos:
Every n hours, the virus finds two files on the filesystem that have identical filetypes. Then, it swaps the files, but also swaps their filenames. Let’s see this in action:
# Find two files of similar types, then do something like:
mv $File1 $HOME/secret/gigli_ben_afflect_j_lo.mp4.tmp
mv $File2 $HOME/Videos/wedding_video.mp4
mv $HOME/secret/gigli_ben_afflect_j_lo.mp4.tmp $HOME/secret/gigli_ben_afflect_j_lo.mp4
What this does is: over time, the user’s filesystem will appear identical by most human measurement (the ‘Movies’ directory will contain a bunch of video files, with the same names as it’s ever had), but when if and when the user ever tries to open/use it, it contains something else entirely. In the example above, when the owner wants to watch Bennifer’s Gigli, they’ll see a wedding video instead. When they want to watch their wedding video, they’ll get Gigli. Do this slowly, across the entire filesystem and any filetypes.
I never even wrote a prototype, but when I considered doing anything like that, I always envisioned keeping something like a ‘transaction table’ so it would be easy to roll back.
Statement: I am plenty happy to use Java in a large number of contexts.
BANG! BANG! BANG!
Yes, I’ve read what jwz and Paul have written about it. In fact, I largely agree with all of it.
No, I’m not unqualified to say that. I’m not a defensive graduate from a so-called JavaSchool, I graduated from a pretty renown program. Like many engineers I often doubt my ability, but I’ve made it on the winning end of the Google Interview, and have written side projects in Erlang, Go, Racket, and Ruby. No company has ever fired me for technical ability or lack of contribution (one laid me off when they stopped making software); most have worked hard to keep me. It’s very, very hard to evaluate engineering ability but for the most standard (often bullshit) metrics, I pass.
I acknowledge that even in the game Java is playing, C# often does it better. I’ve never had the opportunity to use C# given it’s close association with Windows and the CLR; no firm I’ve worked with was using those, and when I choose technologies for my side projects, I usually use more obscure ones.
But frankly, I’ll go further and say it’s a damn good choice for many modules/projects.
Let’s break it down…
Today on Twitter is #talkpay, where we do what’s common in many countries (but taboo here) and talk openly about our salary experiences. While I’ll tweet my numbers, here are some other thoughts on salaries, tech, and pay.
(More about #talkpay here)
And the final part!! Part 1 covered architecture, and Part 2 covered libraries. Let’s finish this pup up!
Welcome back! Part 1 covered architecture, and Part 3 covers testing and miscellany. Here we’ll talk about —
I’m one of a small team of engineers for Sup, now on the Play Store and App Store. Download it! Use it! Every day! Make our founders and their investors happy. The more people are happy, the more likely it is I continue to get paid. I don’t need the money, but the people I owe do.
I wrote the first iteration of the server, but since the beginning of August I’ve worked almost exclusively on our Android client. While I did some very basic Android work in college 4 years ago (cringingly documented in part here) I consider this project, effectively, my first real exposure to Android.
Here’s a little overview of the tech behind the product: some architecture decisions, techniques and libraries that facilitated code re-use, a few gotchas, and resources if you ever want to delve into more Android work. This post is primarily about Architecture; Part 2, on Libraries, is here. Part 3 on other miscellany is here.
Last year my cousin Diego posted a Facebook status along the lines of “dude… I’m actually liking Chipotle! What’s happening to me?” to which I responded “Diego, my love for Chipotle has lasted longer than all my relationships combined. Get with the program.”
Yesterday, Blizzard’s StarCraft Facebook page shared this video with the heading “Why do YOU play StarCraft?”:
And, well, I’ve been playing StarCraft for well over 3 years now, and streaming for almost that long. Here’s an old vintage clip from at least two years ago, and a more recent one from last week. I’ve visibly aged between the two clips; I’ve also gotten much better at StarCraft.
Blizzard’s post got me wondering — why do I play StarCraft? Why have I stuck with it for this long?
I think the embedded video above is a bit more romantic, but I have some ideas.
I’ve been living in Philadelphia now for about a month, and I’m very impressed with the murals in the city. Most city art projects are small-scale, unobtrusive, and extremely tepid.
While Philly’s murals aren’t GROUNDBREAKING ART, they’re certainly very beautiful, and all over. Here are six of them within a half-mile of my apartment:
I’m on a bit of a professional hiatus right now, having left Google in August to pursue Big Life Things. I had some ideas for a big engineering project to do in the meantime, and like any language nerd, I wanted to write my own language. This is daunting — L. Peter Deutsch recommends otherwise, and a perusal of the Programming Language Checklist does a good job to scare you away.
I had a few designs, some template code, and may revisit the project. But I’ll blog about part of what I was hoping to achieve, in case someone else gets inspired.
[Disclaimer: I benefit from virtually every type of privilege society grants: namely, I’m White-presenting, cis, male, straight, thin, well-off, etc. Privileged people talking about movements aiming to equal the playing field are often fraught with peril and questions over to what degree I should involve myself in conversations like this are pretty open, so take the below with this in mind. I couldn’t find the original, but remember this reproduction of this handy flowchart just to be clear.]
Some folks on my Facebook feed are angry that some feminists are angry that Joss Whedon said some silly things about feminism the other day. Here are some other criticisms if you missed it.
I predictably mostly agree with the more critical takes, but many Facebookers on my feed are responding negatively to the response, so I’ll respond to their response to the response. That should fix it.