January 11, 2012

Can Knowing How To Program Make You a Better Person?

Filed under: Education, Software Blog — marcstober @ 9:24 pm

Codecademy has gotten some press about their Code Year project to teach you to write code, i.e., software. It doesn’t seem to be aimed at people on the typical computer science and engineering track but rather as a a basic literacy skill for anyone.

I forget sometimes I didn’t set out to be a programmer. I’d written some web pages that were simple documents, and knew they were lacking compared to “real” web sites where you could search, order a book, or buy an airline ticket. So I bought a programming book, found a small project to use it on at work, and the rest of my career fell in to place (eventually).

As a programmer, I have a different (better?) idea of the value of the technology we deal with daily in modern life.

Here are some examples. You can probably think of ways to dispute the particulars, but that’s why they’re examples, not proofs. (There’s my programmer-mind searching for discrete logical results again, forgetting that my blog audience has analog brains and doesn’t think in one’s and zero’s….)

Example #1: Twitter

Twitter is tremendously popular. I use it and it’s a lot of fun. I think a lot of people think it’s some amazing technology. It’s actually kind of tricky in that way: character limits, coded abbreviations, URL shorteners and hashtags all seem very technical. In fact, this originally turned me off to Twitter; I’ve lost count of the number of times in my career I’ve made a field longer or modified an app to take advantage of a higher-bandwidth connection, and Twitter was doing completely the opposite! Now I think people are attracted to the game (just like some programmers try to write the shortest program possible,) even if it’s cryptic to the point of being a novelty. Twitter isn’t some great technical advance; it’s really pretty simple: a couple web pages and a couple tables that any professional developer could implement, at least in its basic structure. What makes Twitter one of the leading social media platforms is not technology, but that millions of people use it. This may even make it more valuable as a business: lot of valuable users, without having to invest a lot in technology. (Admittedly scaling up to its current size is, as programmers like to say, non-trivial.)

Example #2: Netflix

On the other hand, Netflix seems simple. What could be simpler than watching TV? But parts of Netflix rely on some very sophisticated technology. Computer scientists competed for a million dollars over the best algorithm to recommend movies. Video compression and reliable streaming are hard. If you can invent a better video compression algorithm, you can probably get rich. We take it for granted that we can watch Netflix on almost any device (and we get angry if we can’t), but building native streaming players that enforce DRM (whether or not you want to) on multiple platforms and making them work well enough to compete with cable is very hard. Of course, Netflix does other difficult things like negotiating with movie studios. But I think a least part of the reason I pay for Netflix every month (and use Twitter for free) is that they have a lot more value in their technology.

Example #3: Verizon vs. Vonage and MagicJack

Vonage and MagicJack want you to think that they have some innovative new technology that can save you money. Maybe they could save me money, but from an engineering standpoint, I find them odd. When I pay my phone bill (well, FiOS bill) to Verizon, I can (barely) justify the expense knowing they maintain a huge physical infrastructure requiring real estate, trucks, union salaries, miles of expensive copper wire and glass fiber. I could plug a Vonage or MagicJack device into my Verizon Internet connection, but I’d still be relying on Verizon’s real estate, trucks, union salaries, miles of wire, etc. and my voice would get turned into the same bits on fiber either way. Any difference is a result of politics and commercial issues; there’s no fundamental technical reason these services should save you money.

So, have I convinced you to make learning to program your New Year’s resolution?

July 30, 2011

iPhone Navigation a Bumpy Road

Filed under: Cars, Design, Software Blog, Travel — marcstober @ 10:45 am

Your Road Ahead
Photo credit: Trey Ratcliff on Flickr under a CC BY-NC-SA 2.0 license (thanks for sharing!)

I left behind my paper maps and GPS device on our recent trip to California, navigating with my iPhone 4 instead. We got where we needed to go, but the iPhone was limited and frustrating for a state-of-the-art smartphone.

We flew into northern California to visit relatives and attend a wedding, then drive along the coast to LA sightseeing. This meant we had to locate points of interest as specific as a San Francisco apartment and as vague as a spot along those coast where you can see elephant seals, and drive in LA traffic. I knew I’d need more than the built-in Maps app. Before the trip, I used TripIt and Google Maps on the web to store various destinations. For voice-guided navigation, I purchased NAVIGON MobileNavigator, which was expensive, but cheaper than either buying a new GPS device or even updating the maps on my old one. (I’d also tried the less expensive MotionX GPS Drive app around eastern Massachusetts, but it came up with some strange routes, which proved to me that all navigation apps are not the same.)

I also purchased NavAssist. If you have Navigon or TomTom apps, buy NavAssist. It’s only 99 cents and it lets you copy and paste addresses from other apps (including the native Maps app) into your GPS app. On the other hand, it’s ridiculous that there not a better way to share addresses designed into the iPhone. For example, to navigate to our hotel address saved in TripIt: open the record in TripIt, click to open the address in Maps, copy the address, paste into NavAssist, click to search then click to launch Navigon. This should not take so many clicks through 4 different apps!

My big disappointment came when I tried to view the customized map I’d saved in Google Maps. I’d dropped multiple pins on a map and planned to use that to see what I was near and decide what to visit next. I didn’t expect that the native Maps app (which isn’t really “Google Maps” even if it uses Google data) would support this, but I’d assumed I’d have all the functionality of the web-based Google Maps through the mobile web. It was not possible. The Google products are a confusing mix of “Maps,” “Local”, “Places,” and the Google Earth app. It is possible to view saved maps via Google Earth, but this is both too slow to use well without good WiFi, and doesn’t provide you with the sort of road and address data you need for driving navigation at all.

Fortunately, I’d printed out on a paper a list of the points of interest I’d saved in Google Maps. The native Maps app doesn’t support dropping multiple pins (or even a single pin precisely). I briefly tried free Bing and MapQuest apps before buying two more map apps: CityMaps2Go by Ulmon, and Map+ by Shinya Sugawara. I’d used Ulmon’s Paris guide app on another trip with much success, but it worked better for finding landmarks (like the Louvre and the Eiffel Tower and the closest subway stop) than for finding specific street address and driving to them. Finally, the 99 cent Map+ app was only thing I could find for dropping multiple pins on on a street map.

Maybe the developers of NavAssist and Map+ could get together and build an app that combines the ability to drop multiple pins with the ability to paste in addresses and launch a navigation app? Does it seem wrong that $300 of GPS hardware and software is made usable by $1.98 of apps? Has Apple restricted the functionality of map and navigation apps while it works on its own? I’d consider this a possibility, but I can’t do much else with a speculation of an unannounced product.

July 29, 2011

YAACSDTBAB

Filed under: Software Blog — marcstober @ 5:32 pm

Yet Another Article Comparing Software Development To Building A Bridge:

What Happened to Software Engineering? – Developer.com

This is just the latest one example; liberally paraphrasing, it’s always the same: ‘Bridge building is so cheap and easy, there’s no excuse for programming not to be even cheaper and easier.’

Seems to me this meme is an insult to both software developers and civil engineers. Then again, it’s mostly perpetrated by people who expect software and bridges to magically appear without paying for them. Or worse, by someone trying to sell technical products and services without hiring enough technical talent.

July 6, 2011

Fun With Hebrew Fonts: Liturgical Use of Meteg

Filed under: Judaism, Software Blog — marcstober @ 7:00 am

For the Family Service Siddur I’m editing, we set the Hebrew text in Times New Roman1 using Microsoft Word, because this was a volunteer project and we all had that software available, and because that font is actually quite nice at rendering Hebrew with vowels as needed for liturgy.

A reviewer noticed an error in Mah Tovu:

The quamats2 that should be under the resh is under the kaf. It’s not a typo; I had typed the letters correctly: kaf , shva , resh , qamats , meteg .

I realized the issue was with the meteg. (In liturgy, meteg is used to indicate the stressed syllable, particularly when it’s not the last syllable, which is usually stressed in Hebrew.) Without the meteg, the vowel is centered below the “point” of the resh, not the center of the letter:

So far, so good; this contributes to the readability of the letters. The problem is that Times New Roman shifts vowels to the right when followed by meteg. This is okay if the vowel starts off below the center of the letter:

But when the vowel is centered under right edge of the letter to start with, it ends up appearing under the previous letter, incorrectly. For example, the font Cardo doesn’t shift the vowel when a meteg is added, which I think is better:

It’s worth noting that not all Hebrew fonts even include meteg, which is not used in modern Hebrew.
I solved the problem using the overstrike feature of Word’s equation editor:

To reproduce this:

  1. Press ctrl-F9 to insert the special equation editor brackets.
  2. Paste in the following: eq \o(רָ,ˌ)

Note that the character used here is actually the Unicode MODIFIER LETTER LOW VERTICAL LINE character (hex 02CC), because Hebrew points without a consonant are rendered with a dotted circle by the software. I think this character is used as a phonetic symbol to indicate stress anyway, so it’s not inappropriate. However, I consider this a work-around; in a perfect world, I’d like to have an accurate digital text that renders into print without pretending it’s an equation.

Hope someone finds this helpful or at least interesting!


1This would be version 5.01 of Times New Roman from Microsoft. I’m pretty sure the original 1930’s version of the font for the London Times didn’t include Hebrew!

2I am not a not usually fan of the letter “q” in Hebrew transliterations, but I am using the standard Unicode names of Hebrew characters.

June 20, 2011

I finally got an iPhone

Filed under: Software Blog — marcstober @ 12:27 am

I find the whole “cult” of Apple–people waiting in line at the mall and other such nonsense–to be a turn-off. It’s kept my attention enough to notice that, with the latest releases of their iOS operating system (version 4 and the just-announced version 5), they’ve actually created a great smartphone. So, when my HTC Incredible dropped on the floor and wouldn’t turn on, I switched to an iPhone.

Earlier iPhones reminded me of a European roadster: fun to drive, not very practical. There were arbitrary things that you couldn’t do. Remember the big deal when iPhones got copy and paste? It seemed ridiculous to me that you needed to tether a wireless device to computer for backups and updates (and this only changed with the iOS 5 announcement just this month). Plus, I was a happy Verizon customer and they only ran on AT&T.

Before iOS 4, iPhones did not support multitasking. This is not about being able to run more than one app at a time. It’s about building software that can take full advantage of the computer in your pocket. You should be able to ask an app to do something–keep track of your location, let you know about something, sync some data, play music, whatever–without actually having to be “in” the app using it; shouldn’t computers do things for us? Gradually, Apple has been getting rid of these restrictions. Sometimes this results in more esoteric feature announcements like notifications and task completion. Really, it’s about making the iPhone a seriously capable (and still fun) mobile platform.

Speaking of serious, the iPhone supports full encryption of data synced from a Microsoft Exchange server, which most Android phones do not. Setting aside whether I should be spending time on work when I’m not in the office, this makes it possible for me since I work for a hospital covered by state and federal privacy laws.

I like openness in principle, so I’m not fond of Apple’s tightly controlled app ecosystem. However, I’m encouraged by the DCMA exemption that says jailbreaking is not actually illegal, because it shouldn’t be illegal to do what you want with something you bought. Apple’s support of HTML5 is also encouraging. (I’m not sure Flash support would really be a win for openness.) Every smartphone platform has its issues, and it’s far from clear that Apple’s veto power over apps discourages innovation any more than business decisions made by hardware and software companies with more “open” operating systems.

Rather that a roadster, today’s iPhone is like a luxury SUV. I could tell you I had to buy it for the advanced airbags and all-wheel-drive stability control, but I can’t honestly complain.

June 3, 2011

The last thing I’ll say about PC’s vs. Macs

Filed under: Software Blog, Usability — marcstober @ 8:01 am

I’ve recently started using an iPad. As an old-school (80’s and 90’s) Mac user who has been using Windows for the last 15 years, I’ve been struggling to express what it is about Apple’s UI that I’m having trouble getting used to. I realized it was an issue of the “clutter-discoverability trade-off” that John Cook so nicely explains on this blog:

Clutter-discoverability trade-off — The Endeavour.

It’s interesting how over my career, Microsoft and Apple have switched places on this. I remember when Macs came out in the 80’s–-really up until Windows 95–-the advantage was that everything was discoverable on a menu or as an icon, unlike DOS-based programs where you needed a cheat sheet handy for all the commands. These days, I find Apple products, while beautifully clutter-free, are less discoverable.

For example, a relative of mine recently had to take her phone back to the Apple Store because she had accidentally activated the three-finger-double-tap zoom feature. Gestures that involve taps or swipes with 2 or 3 fingers aren’t very discoverable, IMHO. A big ugly “click here to unzoom” button would have been friendly. (Not that having live people in local stores isn’t friendly in some other way.)

p.s. Back to the article, I’ve also recently started using Emacs, but you could say I took that up just for the challenge of it’s non-discoverability!

April 3, 2011

Alone Alone

Filed under: Relationships, Software Blog — marcstober @ 4:12 pm

There’s a hypothesis that seems to be getting a lot of discussion, most notably in the book Alone Together: Why We Expect More from Technology and Less from Each Other (full disclosure: I haven’t read the book), that we need to put down our digital devices so we can properly be together together for face-to-face encounters.

I should agree agree with this. I’ve gotten angry at my spouse for seeming consumed with her iPhone; and been annoyed at “friends” who are quick with the online comment but never find time to get together.

But something bothered me. It would be nice to think that putting down the devices would result in substantial I-thou encounters. But I’m afraid it doesn’t really address the way people turn to devices when they feel alone alone.

The parent who spends all day with young children and never has an adult conversation feels alone alone.

The worker who looks all day at a screen of impersonal words and numbers can feel alone alone.

The husband waiting in the hospital for his wife to recover with no other family or friends around is alone alone.

The person who attends a community function where lots of people know each other but they don’t know anyone can be alone alone.

I’m not sure how to help in these situations but I wouldn’t demonize the technology.

First, I’m not sure smartphones have made things worse. Breakfast used to involve my dad completely hidden behind a newspaper. Businesspeople had a secretary to take messages, but if the phone rang at dinner, you had to answer it; and it was probably a telemarketer. Today we have the opportunity to talk about putting down our phones because we know our news and messages will wait until we choose to pick them up.

As a technology professional I’m somewhat biased in favor of technology, but the professional part is about knowing technology is not a magic bullet and how to apply it in a way that will do good.

I think the potential of digital networks to connect us is awesome, including the fact that often this communication actually enables face to face encounters: from planning, to arranging travel, to being able to have an in person experience without losing touch with home. And, I think there is still an opportunity to design gadgets would do an even better job nudging us to use them efficiently and then turn them off.

December 26, 2010

The Lesson of Tron: Don’t be a machine. Learn to use them instead.

Filed under: Software Blog — marcstober @ 5:48 pm

Tron–whether the original 1982 movie or this year’s Tron: Legacy–has got to be the movie that glamorizes computer technology more than any other, and that’s why I love it. It’s no stretch to say that the original furthered my interest in the field which turned into a career. (Although The Social Network, despite being a very different sort of movie, actually says many of the same things.) So, given that I’m biased, I want to think that the movie says something meaningful and hopefully positive about the role of the digital world in our lives.

I think the lesson is this: Despite attractive memes to the contrary (in both directions), digital technology is not destined to be a force either for good or for bad; it just lets people do the same things faster. It’s up to us to do something good with it. And, this actually reflects my experience in the software and IT industry: while some people assume that those of us who work with machines are essentially doing the work of machines, in fact a large part of my job is using human judgement to ensure the “programs” actually do something useful for the “users”–and it’s rarely a forgone conclusion exactly what that is.

(Embedded video clip is the first appearance of the Tron character as a logo for its creator, Lisberger Studios.)

December 23, 2010

Some quick and easy gift ideas for geeks or my Christmas wishlist – Disorganized thoughts

Filed under: Consumer, Personal Blog, Software Blog — marcstober @ 10:23 am

There are a lot of cool gifts here but this suggestion for a free gift has to be one of the most thoughtful ever (for someone like me who starts a bunch of things that take him off on tangents!):

Free: ask them what they want to achieve over the next month/3 months/year, and ask if a daily/weekly/monthly call would help them out – if it would, call/visit them at regular intervals and ask them to show you what they have done. Some extra encouragement and motivation is often far more valuable than any product could be, if they are trying to turn a side project into a business.

via Some quick and easy gift ideas for geeks or my Christmas wishlist – Disorganized thoughts.

October 22, 2010

Something I’ve been working on…

Filed under: Education, Information Politics, Judaism — marcstober @ 5:57 am

Crossposted to JHacker.org.

Here’s my submission (alas, not a winner) to the Jewish Futures Conference. I am drawing on my experience in the software/IT industry and thinking about how much could be done for Jewish education.

Jewish Technology R&D Vision (via marcstober)

Judaism is a culture that has been transmitted through text and community and that has so many synergies with the potential of the Internet.

« Previous PageNext Page »