ringmaster

Joined 15 years ago

Karma
381
Submissions
38
Member since
Dec 29
http://owenw.com/ http://asymptomatic.net/ [ my public key: https://keybase.io/ringmaster; my proof: https://keybase.io/ringmaster/sigs/jCjQMhr3Vl44inlbbpd6qsZ_Nw9gwwfoTpnkUe88Qao ]
View on Hacker News

Recent submissions

Comment · 11 years ago
I have to agree with the frustration of the apparent minority. We've been using HipChat corporate-wide, and the subset of users that have been using Screenhero aren't going to be able to change to Slack now (even if we wanted to).

And it seems that the wondering our remote development team has been doing about what happened to progress on Screenhero's video codec (pumping 800kb/s+ over my line when nothing is happening on screen is a bit excessive) is now answered with a resounding, "We've been trying to get acquired." Well, congrats on that.

Back to VNC and Skype with no cursor of my own, I guess. But at least it's free and has less chance of my ISP throttling my home connection due to saturating the pipes with Screenhero all day.

Comment · 13 years ago
I work from home and brew my own beer. (home -> home -> home -> home)
Comment · 13 years ago
The airlocks are not at all of the terminals, so it's not surprising you didn't see it.

Here's a PDF explaining the airlock rooms at PHL (they call it a "secure exit lane system") with photos: http://www.aci-na.org/sites/default/files/tufts.pdf

If you look closely at the metal turnstiles in the bottom-right photo on page 8, you can see that there are glass doors between them. These separate and close by sensor to allow only one person at a time through the exit passage. This room is, by necessity, fully covered in cameras, and as other posters have said, it's a short jump from this into something with software recognition that locks the doors and waits for the armored men with clubs.

Sure, it's a far cry from the firetraps that those glass tubes in Syracuse are, but this method of containment is not new -- we were just not really paying attention to it before.

Comment · 13 years ago
Philadelphia airport has been like this for years already. The "airlock" isn't a single-person, but a small room that can lock a handful of people in as they pass individually through some unjumpable turnstiles. I'd post a photo, but there are signs around the room forbidding photography.
Comment · 13 years ago
The aggregation framework is ideal for answering these kinds of issues. Mongo has a bunch of aggregation routines that are useful for producing reports on demand, but not on the fly. The trade-off is possible because we know that the collected data (test answers) won't change after it is finalized, and the output of any individual report can be cached virtually indefinitely. (See http://docs.mongodb.org/manual/core/aggregation/)

Also keep in mind that unlike something like a web analytics package that gives you the option to filter and sort your data on any combination of criteria imaginable (for no good reason), the questions that academics/educators tend to need the answers to are generally the same for every new set of tests.

In other words, it's not necessary to enable every possible combination, filter, and sort of output, but merely (ha!) to optimize for the specific results that we know we will need (with a nod toward those results we might expect people to want in the future), and to codify the formulae that will produce those results.

Working with not a school but a testing research company (think of a company like "College Board" vs a "Smallville School District") leads you to produce reports that are significantly more detailed and statistically more valuable than "average score" questions like this, all of which is possible within MongoDB. Though, obviously this treads a little more into work product than would be comfortable to expound upon here. ;)

Comment · 13 years ago
I was on a team that built a web app for primary school standardized testing. The amount of data presented and collected per student per test is large and perfect for a document store. MapReduce operations allow the app to quickly produce cacheable reports across cross-sections based on requested criteria.

Event the tests themselves are composed of multiple parts that randomize for each student, and lend themselves to the document structure that MongoDB provides. Individualized tests could be assembled from components based on student criteria and stored uniquely for a user as of that time, a thing which would be unnecessarily complex within a relational system.

Could this all have been done with a relational database? Yes, I suppose, but I cringe at the complexity of relating test questions with test answers with users with other data elements ad infinitum using JOINs on both read and write. And this doesn't even touch the topics of sharding and replication, which Mongo made easy in comparison to MySQL or MSSQL.

Choosing MongoDB was the correct decision for this dataset and application. I don't advocate it for every app, but for this one, it was the appropriate fit.

Comment · 13 years ago
Is it just me, or should this title be "Zero-Day Attack"? What's the "Under" all about?
Comment · 13 years ago
Useful, maybe. Constructive, no. Especially to someone who didn't understand enough not to do this in the first place.

Just because you should expect the internet to be full of douchebags does not mean you need to contribute to their number. It doesn't hurt to be nice.

Comment · 13 years ago
It's ownCloud, but SaaS. Wait... That IS Dropbox.
Comment · 13 years ago
It's a byproduct of a one-size-fits-all-content design for a CMS that all of their output looks like the same drivel. In contrast, if a designer had the opportunity to hand-design each content page distinctly, such a site would look markedly better.

CMSes are not built to produce beautiful design, but to expedite content publication into a designed-once template, so it's no shock that their output typically exemplifies bottom-barrel design.

Comment · 13 years ago
He makes a good point in that design generally sucks on the web, though I disagree with practically everything else in this article, which seems to lay all of the blame for bad design on poor web standards and the need for revenue-earning advertising. Design needs to support the content - be it text, photo galleries, or advertising - not vice-versa. The complaint is valid, but the targeted cause is completely incorrect. Instead, try taking aim at factory CMSes that cram all content into a poorly-designed blog-like form factor and a lack of imagination, knowledge, and skill on designers' part for integrating a good design with those tools.

And... Should web designers learn to code? Absurd question. If you don't code, you're merely a hack graphic designer, not a web designer. You don't need to code all your designs, but you need to know code well enough to know that your design can be implemented; therefore, you need to know how to code.

Comment · 13 years ago
Better yet, put the stuff that's not related to what's on the tab (like bookmarks) OUTSIDE of the tab. Then I don't have to explicitly hide my bookmarks every time I capture a screenshot of a browser.
Comment · 13 years ago
In the Introduction, under functions:

  f = m*a
  f(20) = 20a
Which is ok, but then farther down:

  f(a) = m*a
  f(20) => 20a
This seems incorrect, since I was expecting m*20. On a separate page, this seems to work fine, though.

Otherwise, quite nice.

Comment · 13 years ago
When you write an authentication system with username and password you never display an error like "that password is incorrect", because then the attacker knows that the username is a valid one.

Why does everyone here assume that it's a vast conspiracy when, if they returned everything they had on you, it would be a giant red flag to anyone who was denied that they were being explicitly monitored?

The only way to guarantee secrecy for records that should rightfully be secret (whether you agree with the collection methods or not) is to deny everyone's request.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton