Menu

Sanspoint.

Essays on Technology and Culture

What to Learn, What to Build

So far, my grand attempt at learning web programming has been a refresher course in stuff I know. The basic semantics of coding, variables and functions, for and while loops, data types and arrays—these are things I learned and was taught, but it never hurts to go back and brush up when you’ve been out of practice. The language I’ve been learning, through Codecademy’s free lessons is JavaScript, a simple language and a good place for me to start as not knowing it is a gaping hole in my skill set. The plan is, once I have a grasp of JavaScript, to learn jQuery, which is how a lot of the neat animated and dynamic stuff happens on websites these days.

After that?

I see two choices for what language to learn: PHP and Python. [1] I already have some grounding in PHP, having designed WordPress themes and built a database driven site from scratch, albeit a poor one. It would be an easier place to start. Python, however, compels me as the company I work for uses it as the basis for their product. It would make me extra valuable to be able to not just point out bugs, but possibly go in and fix them. Another tool in the utility belt. The jury is still out, however, on which. (Suggestions appreciated, provided you can back them up.)

The other question is what to build. The first thing that comes to mind is to go back and rebuild the blog/database site I wrote in PHP so many moons ago, this time done right with objects and frameworks to make the code maintainable and logical. Whichever language I use is secondary. The important thing about building something is that it is truly learning by doing. A virtual classroom and instruction only can take you so far up the Dryfus model. Working outside of the classroom and figuring things out on your own is where the action happens.

For now, however, it’s classroom study and review. And patience.


  1. Cue the wailing and gnashing of teeth on the part of the Ruby programmers.  ↩

Learning to Write Code All Over Again

When I went off to college for the first time, I was set on studying Computer Science. The plan was to learn how to program, and maybe get a job creating video games or even start my own video game studio—a dream shared by almost every geeky teenager in the early 2000s, I suspect. Three semesters later, I decided English was more to my liking, and that the higher math required in a CompSci program was beyond my grasp. My grades in CompSci weren’t great either. I passed my first course by the skin of my teeth, and begging my professor to regrade a misgraded assignment.

I got started with programming like many people my age, with QBASIC, though my first real exposure to programming as a concept came from Apple II LOGO in grade school. In QBASIC, the furthest I got was discovering how to write trippy graphical screen savers using random number generators and drawing primitives on screen. In 8th Grade, I got ahold of a copy of Microsoft Visual Studio 6 that, er, fell off the back of a truck. [1] In high school, I switched to Visual Basic, thinking it would be the best step up from QBASIC.

There were two pet projects I had in high school. One was a simple game: “Whac-A-Mac” where the player had to click to smash Macintosh computers that popped up on screen in the style of Whac-a-Mole. I completed this, but it was a bloated, ugly mess. The next project was “NerdQuest,” an RPG inspired heavily by System’s Twilight, a Mac-only puzzle game. This never got off the ground. My understanding of how to do graphics in Visual Basic was non-existent, as illustrated when a friend offered me the code to his isometric graphics engine that he wrote in Visual Basic. One look at the code made my head hurt.

I had exactly two successes as a teenage programmer: a Visual Basic database-based app on the various animal kingdoms I wrote (barely) for a High School biology class, and teaching myself TADS, the Text Adventure Development System. Ultimately, I focused on learning HTML and CSS, with a tiny bit of JavaScript, and enough PHP to design WordPress themes, and be dangerous. I did, with help from a book, write a very basic PHP and MySQL based blog and database for Booji Boy’s Basement, but after a previous webhost was hacked, I lost the source code.

Lately, however, two things have me thinking it might be a good idea to try and learn how do program again. The first is that I am now part of the technology startup economy, albeit in a non-programming role. [2] The other is listening to tech podcasts like the now defunct Build and Analyze, Back to Work, and Quit!. Regular topics of discussion on all of these shows has been learning to program, working for yourself, or changing your role in a job to a technical one—and doing so without expensive education.

The barrier to entry to a programming job has been lowered, significantly. If you have the chops, and have the code to back it up on GitHub, you can find work. Xcode, the tool used to create software for the Mac, and iOS, is free. To become an iOS developer costs $99. There are free and paid classes on how to program in the languages that make our modern tech go, including JavaScript, jQuery, Python, Ruby, and Objective-C. It couldn’t hurt me to learn. So, the other day, I downloaded Xcode, installed a Python development environment, and reinstalled MAMP, with the full intention of getting back into programming, at least as a hobby. We’ll see how it goes.


  1. There was a minor underground economy of software trading in my middle school, which was also a high school. This was back in the days when the fastest home internet connection was a 128kbps ISDN line, and BitTorrent didn’t exist. It was a miracle we even had these CDs of Photoshop 7, Bryce 3D, and Visual Studio floating around.  ↩

  2. Creating e-mail newsletters involves no programming. It’s simply HTML and CSS, albeit HTML and CSS done with standards circa 2002. Thankfully, I haven’t needed to use spacer GIFs. Yet.  ↩

NYC Chief Digital Officer: upgrading a subway system is a lot harder than restarting a router

The Verge interviews Rachel Haot, NYC’s Chief Digital Officer.

One more thing to love about my city of choice: We actually have someone who is in charge of the technology side of things in more than just the IT sense. The Verge‘s interview Rachel Haot is essential reading for techies, urbanists, and both. She brings an interesting perspective to the infrastructure side of things. They also talk about how she actually gets stuff done without getting bogged in implementation details. I like that.

And the sooner we get Wi-Fi on the subway, the better. No voice service, though, please. People on the trains are loud enough already.

Fiddling on the Inside

Part of the reason I switched to the Mac in the first place was that I was tired of endlessly fiddling with my computing setup. On Linux, I was constantly switching between an endless succession of window managers, desktop managers, themes, plugins, and tweaks. Eventually, I settled on XFCE, a rather Mac-like X Windows desktop manager, but that was only a foundation on which I constantly switched themes and plugins in search of the perfect setup. On the Mac, you don’t have nearly that level of customizability. Good.

The other reason I switched to the Mac was that I got tired of mucking around inside my machines as well. Maintaining a typical PC is not just software based. Throughout my life as a PC user, I was often opening up the case to change this, upgrade that, swap this, and install that. When I got my first Mac, a Mac mini, I opened it up once to upgrade the RAM, and then never again. [1] I never opened up my iBook, but I did upgrade my original MacBook to 4GB of RAM, and just before writing this, I upgraded my MacBook Pro to 16GB. [2]

The trend in Apple hardware of late has been towards increasingly closed designs. Removable batteries were the first to go. The latest MacBook Airs solder the RAM and SSD to the logic board. The Retina MacBook Pros have soldered RAM, but a replaceable SSD, if you can find a bare, case-free SSD. Power users bemoan the lack of access to their machine’s internals, and I can’t blame them, but for me, it’s one less thing to worry about.

There’s plenty of ways I can tweak my Mac, but I’ve stopped reading a lot of “workflow porn” because it’s not actually helping me with my workflow. The less I have to think about the machine that lets me do what I do, the more I can think about doing what I have to do. It’s as simple as that. The less I have to go inside, the less fiddling I have to do, the better. It’s a peace of mind thing. Merlin Mann calls it the “Catholic experience” that Apple provides. When some of the “easy” choices have been made for you, you’re freer to focus on the harder choices. Ask Barack Obama, the man who only has two colors of suit, so he doesn’t have to think about which to wear. He has more important things to worry about.


  1. The original Mac minis were a pain in the ass to open, requiring a dulled putty knife and a lot of prying. The most recent models are much easier to access, at least for RAM upgrades. If Apple didn’t criminially overcharge for RAM, I wouldn’t be going inside my machines at all.  ↩

  2. I plan to also swap out the stock drive with an SSD in time.  ↩

Value What People Love

Whatever you’re looking for, it’s easy to find a bad review of it. Type a company, or a product, or a band, or anything into Google, followed by “sucks,” and you’re guaranteed results. People can wax poetic for pages about what is bad, what’s worse than bad, and why anyone who likes a certain thing is wrong, wrong, wrong. Since it’s so easy to toss out vitriol over stuff that “sucks,” there’s little value to negative reviews. Reading Roger Ebert’s review of Freddy Got Fingered is a great entertainment value. When buying technology, it helps to know if a lot of people opened the box to find the item won’t actually turn on, but there’s little beyond that. If the number of one-star reviews outnumbers the number of four and five star reviews, that’s all you need.

It’s still easy to get caught up in the negativity vortex around opinions on culture, technology, and politics. That’s because it’s easy to be negative. To embrace and love something is much harder. I’d rather read someone’s effluent praise of a product or album than a million negative reviews that boil down to “shit sux.” These aren’t going to change anyone’s opinion on matters that are religious in nature. Remember, nobody thinks they’re stupid, and everybody has their reasons. Unless someone’s choices directly affects you, your opinion is nothing more than that. If only we all could agree on that…

And at the risk of stirring up some partisan sentiment, I have to admit that I have only rarely ever heard anyone say they love a Microsoft product. They may like it, prefer it, or exist anywhere on a spectrum that only rarely goes into “love” territory. The same emotional attachment that attracts Apple fas is the same thing that repels its vehement detractors. And you can replace “Apple” in that sentence with nearly any other divisive item. Some suggestions: “Justin Bieber,” “cities,” “football.” They stir up the tribal instinct, the narcissism of minor differences, and split us into “us” and “them.”

Nobody talks up things they don’t really have an opinion on. Nobody sings the praises of beige. The extremes of love and hate are what drive us to share opinions, for good or for ill. It’s the things we love, however, that say more about us than what we hate. However, sharing what we love opens us up to the attack from the haters. That might explain the apathetic way some people discuss culture, politics, or tech. Better to not express a strong opinion any way, so as not to rile anyone up. That’s all the more reason to glom on to those people who sing the praises of what they love to the world. They share their true self, not the posturing avatar of what they want to be seen as. Even if you don’t agree, they are the ones worthy of your consideration when evaluating anything.