HN user

sah

1,374 karma

My company: http://saucelabs.com/

YouTube videos: https://www.youtube.com/user/hackerdashery

My twitter feed: http://twitter.com/sahazel

My website: http://awesame.org/

Side projects: http://codepad.org/ http://omgaudio.com/incoherence/

Posts82
Comments220
View on HN
siliconangle.com 10y ago

Sauce Labs Magnifies Cloud Mobile Testing with a Large Pool of Real Devices

sah
1pts0
about.travis-ci.org 13y ago

Mac, iOS and RubyMotion Testing on Travis CI

sah
49pts12
sauceio.com 13y ago

Sauce Labs Adds Support for Testing in Lynx

sah
12pts1
appium.io 13y ago

Appium: Drive iOS Apps from Any Test Framework

sah
40pts10
saucelabs.com 14y ago

Sauce Connect Gets Serious - reliable networking over TCP

sah
2pts0
saucelabs.com 16y ago

Continuous Try Server Integration

sah
1pts0
www.megginson.com 17y ago

Costing out Google App Engine

sah
1pts0
online.wsj.com 17y ago

The New Indie Videogame Movement

sah
25pts24
merd.sourceforge.net 17y ago

Syntax Across Programming Languages

sah
4pts0
nobelprize.org 17y ago

The 34 Women That Won The Nobel Prize

sah
1pts2
www.seefresh.net 17y ago

Social news sharing survey results, part 1

sah
1pts0
blog.wired.com 18y ago

Amazing Stat: California Uses More Gas than China

sah
2pts1
blogs.zdnet.com 18y ago

Approximately 800 vulnerabilities discovered in antivirus products

sah
1pts0
news.nationalgeographic.com 18y ago

Earth's Core & Magnetic Field Changing Fast, Study Says

sah
3pts1
en.wikipedia.org 18y ago

List of acquisitions by Google

sah
1pts0
yosefk.com 18y ago

Problems with C++

sah
3pts0
www.guardian.co.uk 18y ago

Biofuels have forced global food prices up 75% according to a World Bank report

sah
4pts0
blog.wired.com 18y ago

New longevity drug mimics caloric restriction in mice

sah
10pts10
www.informationweek.com 18y ago

AOL Increasing Dial-Up Fees

sah
1pts1
news.nationalgeographic.com 18y ago

Paleolithic concert halls? Cave drawings in France correspond with places of natural resonant sound

sah
5pts1
www.sfgate.com 18y ago

Antitrust probe opened over Google, Yahoo deal

sah
1pts0
www.carectomy.com 18y ago

A design for a train that never stops

sah
1pts0
www.scienceblog.com 18y ago

Survey data from 1981-2007 says happiness is rising worldwide

sah
1pts1
www.columbia.edu 18y ago

Citysense uses location data to map nightlife

sah
2pts0
www.chicagotribune.com 18y ago

I think I love you: What happens in that first nanosecond that makes us fall for someone

sah
14pts9
www.space.com 18y ago

Evidence of life on the early Earth might be found in meteorites on the moon

sah
2pts0
greenbuildingelements.com 18y ago

Entire Neighborhood Has Shared Solar Heating

sah
13pts2
www.newyorker.com 18y ago

The neuroscience of itching

sah
13pts2
www.pcpro.co.uk 18y ago

Firefox 3 already rules the roost

sah
2pts0
gizmodo.com 18y ago

NASA's hyperwall-2, the world's highest resolution visualization system

sah
1pts0
Goodbye, CouchDB 14 years ago

The quoted statement was hyperbole. I followed it with as much nuance as I felt it made sense to get into in the broader context of the article.

Goodbye, CouchDB 14 years ago

"If you don't like it, it must be because you haven't taken the time to understand it" is cognitive poison. What evidence will convince you that someone has understood well enough to judge that something doesn't make sense?

I've spent many years using schemas, and I know well how they work and what they achieve. I'm saying they're a lousy tradeoff.

Goodbye, CouchDB 14 years ago

I didn't say anything about domain-specificity.

My primary point was just that SQL is old, and I think the reason it is the way it is has more to do with history and compatibility than what we'd want it to look like if we started from scratch today.

SQL is still around because it was successful. And there are reasons to value compatibility, and to avoid changing things for no reason. But my personal experience using a database without using SQL was pleasant, and I'm anxious to see the world move on to something new and improved.

Goodbye, CouchDB 14 years ago

You're right that I was lumping transactions and data integrity guarantees in with "relational". I was thinking about normalization, and protecting data integrity in ways that lead to joins and transactions.

Goodbye, CouchDB 14 years ago

"They don't exist, if you don't construct SQL queries by concatenating strings and variables."

My point is, people still do this. You never hear about REST-injection or memcached-injection attacks, even though those are possible in principle, because those protocols don't encourage this mistake the way using SQL as a database API does.

Goodbye, CouchDB 14 years ago

We keep things we might need to search in regular columns (typically with indexes). The JSON object is just a way to add extra data to rows, which we can fetch and deal with on the app side. That works fine for a lot of things, and we're hoping it will give us some flexibility around when we need to do schema migrations in some cases.

Goodbye, CouchDB 14 years ago

The connection I see is the attempt to make the syntax English-like. Expressions like "SELECT * FROM users" remind me of COBOL's "ADD X TO Y".

Goodbye, CouchDB 14 years ago

A number of us know MySQL fairly well, and in particular I've seen how it's used by some of the biggest internet companies. We have some postgres experience on our team as well, but it's a little more of an unknown. So experience trumped feature set in this case.

One thing I would say about postgres is that it has a lot of features. As a new user, it's hard to know which ones to use in which ways, and what the downsides might be.

I'm not sure I understand your concern here. How does monocle make decomposing logic into functions difficult?

The "yield" keyword is an indicator of where control is returned back up to the event loop and other things can happen. We like that in monocle, because we view it as dangerous; in thread-and-lock terms, it's sort of like "unlock everything".

Eventlet (http://eventlet.net/) is an example of a similar framework that decided not to require "yield" at these points.

Well, monocle is headed in its own direction. We're abstracting the generator-style concurrency stuff out from the underlying I/O framework, so monocle works with both Twisted and Tornado, and we're prepared to interoperate with other frameworks in the future. On top of that base, we're developing a framework for working in this style; there are some early ideas in monocle.experimental. We're also building simplified base networking APIs in a way that only makes sense if you're committed to this style of concurrency.

I think the question is really whether you're more compelled by generator-style concurrency, or Twisted itself. If you want to work deeply with Twisted, inlineCallbacks lets you use generator-style where you want, and is maintained along with Twisted. If you want to use generator-style concurrency to its full advantage in simplifying complex evented servers, that's where monocle is going.

I don't think it's very credible to hold Perl 6 up as the standard for how to encourage and enable complete implementations, considering that ten years in, it still has only partial implementations.

Sauce Labs 17 years ago

Yeah, we know our front page is lousy right now; we've got a redesign and a much clearer explanation in the works.

You need our service to make sure your web apps work in all the popular browsers.

We've got a bunch of web browsers in the cloud which you can remote-control via and API, to make sure the features of your site work cross-browser. We use a popular open source browser automation tool called Selenium, which my cofounder Jason Huggins created.

I'm curious whether the above description makes sense, or still leaves you scratching your head!

That's me. Sauce Labs has indeed been keeping me ridiculously busy. But codepad is my favorite side-project, and I don't mean to neglect it. I'll find a free weekend and update interpreter versions once things are less crazy here!

"Awesome! I can just store things in a JSON-like list and not have another table or anything!" Oh, what if I want to find all the users who have 'ruby' as an interest? Oh, I can only lookup by key? And yes, there are ways around that. You could create a table of interests and each interest would be a key in that table and it would have a list of people with that interest.

This is not true of CouchDB. Indexing is done on the keys generated by arbitrary Javascript views. A view returning results keyed by interest is trivial.

I think the duration of this outage was basically about waiting for the GFS team to roll in. They knew at 6:44am that they had a crashing GFS Master on their hands, but they didn't decide to try upgrading until 8am, and only escalated to the GFS team after the upgrade failed to help, at 9am. That's the story of this outage, to me:

6:44 AM --- A GFS Site Reliability Engineer (SRE) reports that the GFS Master in App Engine's primary data center is failing and continuously restarting.

8:00 AM --- The cause of the GFS Master failures has not yet been identified. [...] the GFS SRE decides to commence the upgrade immediately in an attempt to alleviate the problem.

9:00 AM --- The GFS upgrade [...] finishes, but the Master is still failing. The GFS SRE escalates directly to the GFS engineering team, and [they begin] live debugging of the failing software[...].

10:00 AM --- GFS SRE advises that the GFS engineering team has identified the cause [...] GFS Master is no longer failing and GFS Chunkservers, which hold the actual needed data, are starting to come back up by 10:30 AM.

The differences are hard to notice, but to me the /classic page is subtly better. Things I'm personally interested in ("Fibers & Cooperative Scheduling in Ruby") are mostly voted a couple places higher, and things that bored me ("Steve Blank: Gravity Will be Turned Off") are a few places lower.

Not just hilarious, but truly in the spirit of AFD, unlike most of the lame "pranks" that plague the internet every April 1st. Maybe it was unwise and bad for business or maybe it didn't actually matter, I don't know. But either way, this was a great prank!

"Making people happy" is hard to define, but you can pick better concrete metrics than RMSE, and this article offers suggestions on how. An important part of solving any problem is defining success correctly.

I should have added: if you can prevent the hire, probably the most significant thing you can do for the company is to learn how to correct the problems, real or perceived, that have led to the desire for a new engineering manager.

It's normal for the VP Eng to be a peer of the CTO and report directly to the CEO. That said, you are almost certainly being marginalized. Your CEO likely knows he needs your irreplaceable understanding of the company's technology, but otherwise wants you out of the way.

Replacing you as manager is probably not going to work out well unless he already has someone good in mind. CEOs rarely understand how much difficulty they'll have identifying competent tech managers. He's in danger of finding someone who does a great job of "managing up" and a poor job of getting things done efficiently and correctly.

If you can't prevent the hire, making sure you hire someone competent is probably the most significant thing you can do for the company.