Go Nuts!

gopher-wallpaper

I’m experimenting with Go recently for some side projects I’m working on, and am really enjoying working with it so far. It has a great standard library, is fast, is built to support great tools, and has a great community. I first learned about it through dotCloud and the Docker project which is built using Go. (more…)

Radically Cross Platform: Memory Management

Desktop vs Mobile

Images under CC by Allison Meier and Chez Eskay

The first post of this series described a choice of technologies and toolsets (based on Xamarin) that allows C# programmers to deploy graphics accelerated apps using OpenGL/DirectX across a radically cross platform spectrum of devices and operating systems.

That’s all fine and good, but it’s not the whole story.  Just because you can build and run your app on a given platform doesn’t mean it’s ready to publish on an app store.  Well, in the case of Windows and Mac x86 desktop apps, maybe it does.  But when you take a code base with beautiful LINQ queries, effortless, strictly-typed data modeling, and world-class garbage collector (GC) expectations – and run them on a wimpy ARM-based mobile device, a funny thing happens.

(more…)

What The x.509 Is Wrong With Gmail?

Elephants Family

Image by Benh LIEU SONG

You don’t often stop to think about x.509 and the Public Key Infrastructure
(PKI) that authenticates our Internet connections. Allow me to explain why you
should.

Transport Layer Security (TLS) uses x.509 certificates to authenticate
connections. In your every-day use of the Internet, this means that you get a
certificate from a server when you connect over HTTPS (for example.) This
certificate is the only reasonable means you have to verify the identity of a
server.

Why does this matter? I’m glad you asked.

(more…)

Target: Gmail

title

Image by bloggingberlin

Your e-mail account is probably the most valuable online account you control.
The security of most of your other accounts depends on the security of your
e-mail account. (Think I’m wrong? Have you ever recovered a lost password?)
For this reason, it is worth considering how best to protect it.

I use Gmail for my personal e-mail. In this article, I’m going to discuss the
benefits and costs of letting Google manage my e-mail. Then I will focus on
how those benefits and costs affect the security of my personal communications.

(more…)

Can (and Should) Everyone Learn to Program?

Fair warning: The following article is long, rambly, and contains no code. It does, however, contain some rumination on the idea that everyone can and should learn to program. Want to put your two cents in on the topic? Skip straight to the comments – I look forward to reading what you think.

03212012Matitec_entrega_dispositivos_santafe084

So, I was just thinking, it would be really great if you could come present to my CS class – talk about programming in general, as a job, that kind of thing.

Recently an old university friend of mine, now a Math and Physics teacher, was tasked by his administration with teaching computer science to his highschool students.

His experience with CS being limited to the half a dozen or so courses he took years ago to fill out the minor requirements of his degree, and the prescribed curriculum being heavy on the history and ethics of computing and light on actual programming content, he’s been struggling with how best to present the essential concepts in a way that would appeal to typically lethargic teenagers.

They really need to be taking the work home, exploring the concepts on their own – there’s only so much we can do in an hour a day. There’s all sorts of resources out there – I just need a way to spark some excitement about programming in them. Maybe having a ‘real’ programmer come in would be helpful?

I agreed, and began to prepare my presentation. While the Way of the Programmer had been known to me since the childhood discovery of the QBasic interpreter in DOS, it wasn’t until highschool that I truly took the first steps on this Path to Enlightenment – thanks in large part to a wise teacher/mentor, as per the trope. Doing my part to introduce some young minds to this sometimes frustrating, but often rewarding discipline would be a Good Deed®.

I had an additional ulterior motive, however. I had often seen espoused – mostly in various communities populated primarily by programmers (such as Hacker News) – the opinion that programming was/is the new literacy; that is, a basic element of education that everyone can and should learn. Both they and my teacher friend had noted the ever-expanding collection of sites dedicated to teaching programming: Code Academy, Starter League, Code.org, amongst many others. They seemed certain that not only could anyone learn programming, but everyone should learn programming.

I wondered if anyone not already committed to our discipline felt the same way – particularly the students who should apparently be learning their if, while, foreach alongside their ABCs.

Here was a chance to find out.

(more…)