10 Tech Concepts Everyone Should Know
If you work in the tech industry then your daily conversations are littered with tech terms. You’ll probably have at least a vague idea of what these mean, but if you’re not in a technical role it’s sometimes hard to put these concepts and buzzwords in precise context. In this post I’ll briefly explain ten basic terms that engineers use every day. Whatever your role in the...
Is a CS Degree Worth It?
As ReadWrite noted recently, learning how to code has never been hotter. Tech-education startups like Treehouse and Codeacademy are booming; Non-profits such as code.org are working to make programming education available in schools; Informal workshops abound, and more and more non-engineering tech industry insiders are getting in on the action. Anyone with access to the internet now has within...
CS101 part 6: Operating Systems pt. 2
My previous CS101 post explained what operating systems are, and what services they provide. This post offers a quick tour through some basic operating systems concepts, and explains in more detail how the OS provides certain services. I’ll describe in turn how the OS manages each of the four basic resources: CPU, disk, memory and network. You’ll probably have heard of some of the...
CS101 part 5: Operating Systems (pt. 1)
It’s been a while, but CS101 now resumes… In a previous post I mentioned that modern computer systems consist of layer upon layer of increasingly complex building blocks. In this post I’ll talk briefly about the most basic of these building blocks: the operating system. An operating system (OS) is a piece of software that provides a set of common services to all the other...
A few weeks ago @shanley published this post about the superficiality of what passes for “company culture” in much of Silicon Valley. In the spirit of the April fool’s day grinch, I’m going to add another one: Culture is not about telling semi-clever lies on your corporate blog once a year. Every year, come April 1st, dozens of tech companies, from Google down to the...
Men, It's On Us Now
The Adria Richards/PyCon/SendGrid affair has made me sick to my stomach. Any decent human being should be outraged and sad at how low so many people in the wider tech world can sink. I’m not going to express an opinion on the original incident. How far out of line were those guys? Did Adria overreact? Could she have handled it better? I don’t know, I wasn’t there, and it...
CS vs. SWE
Someone asked me at a bar gathering yesterday: “Is computer science really a hard science? Isn’t it more like engineering?” I had at that point had one too many drinks to give a coherent answer. Plus, nothing kills small talk faster than bringing mathematics into the conversation… But it is actually a good question. What is the distinction between computer science and...
Alexia Tsotsis just published an important post on TechCrunch about an insidious side of startup culture, one she refers to as “the cult of success”. In the startup world we pay lip service to risk all the time. No concept is more hallowed or hyped in Silicon Valley than “entrepreneurship”, and the defining feature of entrepreneurship is risk. You Can’t Spell Risk...
Religious dogma sometimes leads to absurd anti-scientific stances: intelligent design, young earth creationism, faith healing, and ridiculous conclusions about reproductive health. If you want to revert to the 19th century, you can leave it at that. But a religious political party in Israel are now aiming much further back: United Torah Judaism, a fundamentalist ultra-orthodox party, are running...
CS101 part 4: Software
You suffered admirably through my necessary but dense preliminary discussions of boolean logic, binary arithmetic and memory hierarchy. Now comes the payoff - a series of posts about things you’ve actually heard of. First up: software. I’m sure you have at least a rough idea of what hardware and software are. In fact, if you’re reading this, you probably know a lot of people who...
Depression and the Highly Logical Mind
I was saddened to learn of the tragic death, by his own hand, of Aaron Swartz. That a prominent member of my community, our community, the tech community, is gone forever is sad. That he was lost so young is tragic. That he took his own life is a horror. Aaron Swartz wrote openly about having depression (I don’t like to use “depressed” as an adjective; It’s a disease that...
CS101 part 3: Memory
In my first two CS101 posts (here and here) we discussed the basic electronic circuits used to compute logic conditions and basic arithmetic. At the end of my last post I alluded to a third element we need before we can construct something worth calling a ‘computer’. That element is memory. Memory gives us the ability to have the current computation be influenced by the result of past...
Growth, Jobs and Silicon Valley
A non-technical, political post today (I did warn readers there would be some). The overriding theme of the upcoming presidential election is jobs, with the candidates sparring aggressively over who can create more of them. Unemployment is still high across the country, and finding work, especially if you’re a new college grad, is a daunting challenge. And yet here in Silicon Valley...
Hashing Redux: Proving What You Know
Remember my post about hashing passwords? I recently encountered a tweet exchange between two of my co-workers that used hashing in a novel and nerdy way. It started with this: Jorge is posting a quote from Minnesota congresswoman and amateur conspiracy theorist Michelle Bachmann, helpfully providing a link to the source. But he’s also added a mysterious string of letters and numbers in...
Spanner and Planet-Scale Services
Google recently published a much-anticipated paper on Spanner, their globally-distributed database. Spanner is the new pinnacle of Google’s technology stack, supplanting Bigtable at the cutting-edge of scalable databases. The authors will present the paper at the OSDI (Operating Systems Design and Implementation) ‘12 conference in October. Google’s OSDI papers tend to be...
CS101 part 2: Binary Numbers
In my debut CS101 post I discussed Boolean algebra, and how any Boolean function can be modeled by a real-life electronic circuit. In this post we’ll explore how this fact provides computers with the ability to do arithmetic. Natural Numbers To do arithmetic, you first need to be able to represent numbers. The most basic numbers are the natural numbers, the whole numbers we use for...
CS101 part 1: Boolean Algebra
Several people have suggested that I write a series of “CS101” posts explaining computer science and software engineering fundamentals, unrelated to anything in the news cycle. This idea appealed to my inner didact, so I’ll try a few posts along those lines and see what responses I get. Feel free to comment and/or suggest topics. Hopefully, reading these posts will provide...
Posts To Resume Shortly
Sorry for the long hiatus. I was on a much-needed vacation in Australia, Vanuatu and New Caledonia. I will resume regular updates shortly.
A Reliable Whole From Unreliable Parts
Wired Enterprise recently published an excellent article about how Google revolutionized distributed systems, creating the technologies that power not only Google, but much of the rest of the internet. The article gives some much-deserved limelight to Jeff Dean and Sanjay Ghemawat, accurately describing them as “two of the most important software engineers of the internet age — and two of...
Zinc and Pants
If you’re interested in Scala and/or in build systems, Typesafe just published a blog post about Zinc, the standalone incremental Scala compiler. Among other things, it mentions the work I’ve been doing on integrating Zinc into Pants (Twitter’s open-source build system; we’re moving towards using it at foursquare).
Programmer vs. Software Engineer
I received a rather touching message on Quora (of all places) yesterday. In it a metallurgy engineering student in India writes: From my childhood I was very much fond of computers but due to some reasons I wasn’t able to get into computer science engineering. Is there any other way I can become a software engineer? Well, a good start might be to pick up an elementary programming...
The IT Crowd
[h/t to @larsonite for finding this] Business Insider posted this a couple of days ago. Someone took a bunch of tech job postings offering salaries of over $100K and counted out the most popular buzzwords in those postings. By this analysis, the most in-demand tech skills include PowerBuilder, Silverlight and… drumroll… UML(!) OK, so if you’re not technical these may mean...
You Know What's Cooler Than a Billion Dollars? A...
Another guest post on Techcrunch, reproduced here for your inconvenience: [Full disclosure: I have never worked at Facebook, and own no Facebook stock, but I do know and respect many people who work there.] The sharp declines in Facebook’s stock price since their IPO have lead to a frenzy of alarmed comment, some going as far to declare the company in a state of emergency. I’m not...
Algorithms and AI, Part 2
Last week I wrote about algorithms, and in particular about what artificial intelligence (AI) algorithms are and how they differ from other algorithms. I promised to follow up with a post about “strong AI”, so here goes. Strong AI is the name given to a hypothetical artificial intelligence that meets or exceeds human intelligence. That is, an algorithm that can cause a machine to...
Algorithms and AI
The tech press often uses “algorithm” as a synonym for “secret sauce”. The word conjures up images of a mysterious black box that crunches data to produce movie recommendations or search results or a social news feed. Algorithms, particularly those that guess human intent, are often among a company’s most prized intellectual properties. However these magic black boxes...
What Google Is
[Got another TechCrunch guest post today. Reposting here for your convenience.] No, really, what is Google? TechCrunch co-editor Alexia Tsotsis recently posted an interesting piece about Google’s focus, or rather the perceived lack of it. Google has its fingers in so many pies that there are many different angles from which to consider this question. But the key to most of them ends up...
Ad Targeting is Hard
[I was privileged to get a guest post on TechCrunch today, which I’m reposting here for your convenience. For the record: I never worked on ad targeting at Google, but some of the smartest people I know did. ] Microsoft recently announced that it’s taking a huge $6.2 Billion writedown over the failed aQuantive acquisition. This news, and the scrutiny of Facebook’s business model...
Potatoes and Passwords
News of the recent password leak at Yahoo! comes hot on the heels of similar breaches at LinkedIn, eHarmony and last.fm. These leaks are infuriating, not just because these companies got hacked in the first place, but because they failed to adhere to basic password security practices, such as hashing and salting. Although those sound like something delicious you do with potatoes, they are also...
APIs (Application Programming Interfaces) are everywhere these days, allowing services to interact across the web in all sorts of interesting and useful ways. Reader (and ski lease buddy) @jerememonteau suggested that, since it’s such a popular buzzword, I write a post explaining what an API is, exactly. So here we go… [[MORE]] Interfaces We’ll start by ignoring the internet,...
Well, That Didn't Take Long...
In my earlier post “The Cost of The Cloud” I wrote: Amazon Web Services are now a crucial part of the startup ecosystem, and if you don’t believe me, wait until the next AWS outage and see which of your favorite online services is left standing… AWS experienced an outage this morning that took multiple services down, including foursquare. In this case the problem could...
Girls Who Code
Kudos to Twitter, who just announced their new partnership with Girls Who Code, a movement dedicated to eliminating the gender gap in science and engineering by educating and inspiring high school girls, giving them the skills and resources to pursue opportunities in those areas. And a special tip of the hat to Twitter engineer @pandemona who helped make this happen, and has long been a strong...
The Cost of the Cloud
Came across this fascinating blog post from online backup company Backblaze (h/t @hoffrocket for the link). If you’re an infrastructure geek you’ll love the detailed description of their custom-built storage pod. But even if you’re not, this chart should catch your eye: Cloud computing services are all the rage now, with more and more startups forgoing their own hardware...
Alan Turing and the Halting Problem
By now I’m sure most of you saw Saturday’s Google doodle, commemorating Alan Turing’s 100th birthday. Turing, as you’ve probably either read or already knew, was a British mathematician regarded as the father of computer science. His work as a codebreaker during the second world war contributed substantially to the allied victory. Tragically, not even his invaluable...
Welcome, one and all, to my brand-new blog! I know, I know, I’m a little late to the game… My entry into the world of self-publishing is clearly long overdue. I hope to make up for my tardiness by providing plenty of content worth reading. For those of you who don’t know me: My name is Benjy Weinberger, and I’m currently the engineering site lead for foursquare’s...