HNHacker News
TopNewBestAskShowJobs

xb95

893 karma · joined September 7, 2011

Director of Infrastructure @ Discord.

You can find me on the internet as 'zorkian'.

submissionscomments
xb95··on Pearson takes down 1.5 million teacher/student blogs with a single DMCA notice
As another data point -- I run Dreamwidth Studios (http://dreamwidth.org) and we host on ServerBeach. We received a DMCA notice a few weeks back that had the same notice, almost, ours said:

    Dear Mark Smith:

    We have received a valid claim under the Digital Millennium Copyright Act,
    codified at 17 U.S.C. 512 (the "DMCA"), that materials on your web server hosted
    at ServerBeach may violate the copyright interests of the party filing the
    complaint.

    In accordance with the DMCA, we hereby inform you that your web server has
    been or within the next 24 hours will be, disabled to the extent necessary to
    comply with the DMCA.

    Your web site will remain disabled unless we receive a valid
    counter-notification from you.
Note that it says that it could have already happened, and it's immediately hostile. Also, this notice DID NOT CONTAIN THE NOTIFICATION. I was concerned, as Dreamwidth has a fully functional DMCA policy and we pay people to manage DMCA complaints. We have a good team, fast turnaround, and obey the law.

I got on the phone with ServerBeach, and they flat out REFUSED to show me the DMCA notice. They said that it was a privacy issue, they could not show me the DMCA that was filed against my company. The notification they sent me included a random URL on my site -- but didn't tell me what content was actually infringing.

I was told I had no choice but to take down content that was NOT infringing -- overbroadly censoring my user, HOPING that was enough to pacify the ServerBeach AUP team. I was not about to risk my business (we pay ~$8,000/month to ServerBeach) over one user's content.

But honestly -- that's a terrible position to be in. We're a site that believes strongly in fair use and transformative works. We have worked hard to fight for our users -- but if our host is fighting us... there's precious little we can do about the situation.

So -- be wary of ServerBeach. It seems that lately their AUP team has gone off the deep end and they're throwing customers under the bus. I wish I knew why.

xb95··on I just left 200 fake parking tickets at YC Demo Day...
I don't consider this creative, personally. People have been littering my car with leaflets for many years. Every single time, I get annoyed and throw them away.
xb95··on I just left 200 fake parking tickets at YC Demo Day...
Not really. Someone launches a hot-new-startup-you-just-have-to-see every 20 minutes. The time I have spare to devote to looking at new things is super limited, so, much like with that old adage that "first impressions count", I start to filter things based on what are, in many cases, trivialities.

In this case, though, I don't feel that it's entirely trivial. Quality is something that happens top to bottom, I believe. Think about Apple -- while I dislike a lot of things they do as far as the walled garden goes -- I feel that they have a quality experience through and through. Every step along the way -- visiting the store, buying a product, even the packaging is well done.

When you have 30 seconds to make an impression on the people that might make or break your future, "that startup that littered a bunch of cars with dead trees and didn't even get someone to proofread" is not the kind of impression I'd want to be making.

xb95··on I just left 200 fake parking tickets at YC Demo Day...
Yup, I came here to note the "its" problem. I won't try the app or look any further, because anybody who can't be bothered to use proper grammar on a publicity stunt sure as hell isn't going to release a quality product.
xb95··on Flying car closes in on FAA OK
Sort of. (And caveat: I'm a software guy, I just happen to love airplanes.)

Airplanes generate only forward thrust (unless you're in a VTOL craft which we won't talk about). This forward force is what ends up generating lift due mainly to two particular, but separate, applications of physics.

First, wings take advantage of what is called Bernoulli's principle. Picture a wing: it is longer on top than it is on bottom due to the "chamber" of the wing. I.e., the asymmetric difference in the shape of the top and bottom of the wing. This causes the air that flows over the wing on top to be at a different speed than the air on bottom, since the air on top gets compressed. (Remember that in a river, if the river narrows, the current speeds up because you still have a stable amount of water to get downstream. If the volume status the same, higher pressure = higher speed, roughly.)

So, by Bernoulli's principle, the slower air on bottom has more potential energy than the air on top -- and that results in more outward pressure by the air, i.e., it pushes up on the wing harder than the air on top pushes down (which has more kinetic energy and less potential, due to the higher speed). Because the wing is not creating energy, the air is merely converting to and from kinetic/potential.

However, that's not the entire story of lift!

Wings are also angled, with their trailing edge down as compared to the leading edge. This angle is defined as the "angle of attack". Think about it like this: when you stick your hand out of the window of your car while driving down the freeway at high speed, you can tilt your hand up and "take off". The wind hitting your hand pushes it up because of the angle. This seems kind of straightforward, right?

If you continue tilting your hand closer and closer to the vertical, at some point it falls back down. You have "stalled" and are no longer generating enough lift to fly. Airplanes do the same thing, so they have to balance the lift they generate with the other factors.

Airplanes fly mainly through the combination of these two things: lift generated by the relative difference in airspeed above and below the wing, plus lift generated by the angle of attack.

I hope that is explanatory, and if I'm wrong on anything, someone else will come correct me!

xb95··on Riak 1.2 Officially Released
The company I work for, Bump (http://bu.mp/company/), pays for Riak Enterprise. I am not going to disclose our particular pricing, though, except to say that this isn't a commodity. Every deal is going to be different, cover different things, so it's hard to give guidance on the subject.

What I will say, however, is that it has been worth it. Whenever we need Basho's support, they are on the line and ready to help us. Their staff has been excellent to us and I couldn't be happier about our relationship with those folks.

Whether it is sitting down and talking to them about some what-if scenarios, discussing optimizing our usage, or even reviewing configuration files before we spin up a new cluster -- they've been on the ball. We recently renewed our contract for another year and I can't imagine us not doing that as long as we still use Riak.

xb95··on Show HN: Collections, a fast multiple-account Google Docs client for Mac
I have confirmed that there is no longer any data in the database I can connect to. Thank you for taking care of this.
xb95··on Show HN: Collections, a fast multiple-account Google Docs client for Mac
As of right now, 3:16 PM PDT, I can still connect to (one of) your Postgres databases.

    # psql --host=ec2-23-21-85-231.compute-1.amazonaws.com --port=5432 -U ruwdncbzdkulsh dc6jnvg2ce8qim
    Password for user ruwdncbzdkulsh: 
    psql (9.1.4)
    SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
    Type "help" for help.
    
    dc6jnvg2ce8qim=> SELECT NOW();
                  now              
    -------------------------------
     2012-07-13 22:17:51.821052+00
    (1 row)
xb95··on Show HN: Collections, a fast multiple-account Google Docs client for Mac
Actually, your Postgres credentials still work. I am currently able to connect to the database and I can still view people in the role I grabbed.

I'm not sure how to validate that this is still timely, though... oh, I created a table:

public | hacker_news_1342216769 | table | ruwdncbzdkulsh

With the current timestamp. So, if you changed anything, it hasn't actually taken effect in the part that matters -- the exposed database.

xb95··on Show HN: Collections, a fast multiple-account Google Docs client for Mac
Hi --

I suggest you not use this app right now. It is currently throwing up debug pages that include information that allows someone to connect to Postgres and dump the database containing information about your documents.

App developers -- please update your Heroku settings and/or turn this off immediately. You are exposing confidential company information to the wild.

Thanks.

xb95··on It all began with a strange email
EVE Online has always had what we call the "in-game browser". It used to be this rather terrible system that was a custom built environment that had maybe 15 HTML tags supported. It was not a very good system.

Eventually, CCP made a deal with someone (I forget which framework they went with, I want to say it's webkit based?) and they embedded a modern browser with JavaScript support.

They've also done some modifications of the system -- when you are in-game, you can instruct your browser to "trust" the remote web site. If you do that, the browser starts sending along headers that include information like your location in-game, your character name/ID, what corporation you're in, etc. It's a rather abysmal system of authentication, but it works OK for basic things.

They also added some JavaScript APIS so you can do some things in-game from the browser. I.e., display "show info" windows, do some UI stuff, etc. This makes you able to build web sites that are slightly more interactive and useful and actually connect with the game you're playing.

The ERP we've built is, unfortunately for me, in .NET. It's an ASP.NET system (maybe C#?) and so I can't really work on it. (I'm a Perl/Python/Go guy mostly.) I have built some other systems that my corporation and alliance uses, though, that are not part of our ERP or EMC (corporation management application).

A screenshot of the production view of our ERP:

http://xb95.com/pics/eve-erp.png

Note that it has order priority, build location, item, quantity. The icons on the right allow the producer to handle the order -- "resources ordered" (turns out we didn't have it, so I had to order stuff), "build started" (it's in build, wait for it to finish), "buy instead" (turns out it's better to buy it, resubmit this to procurement), and cancel, comments, info, etc.

xb95··on It all began with a strange email
I've played off and on since 2003. The corporation I'm part of now has built an ERP and manages a trillion ISK (which at the legal rate is $35,000 USD in assets).

We have production facilities -- several of them. We have distribution facilities. Transportation units (local and long-haul). We have combat pilots to protect the transportation. And we have the final delivery points where we actually sell goods -- both retail (on the market) and bulk (contracts to buyers).

To manage all of this, we have built an ERP system. It tracks our inputs, outputs, and processes. It makes procurement decisions (build vs. buy) and submits orders to the various groups of people who actually make things happen -- the producers, researchers, haulers, marketers, etc. The game is very manual on that front, but we use an automated system to actually submit very small, easy to understand orders that people can do in a few minutes usually. In aggregate, it powers a rather complicated machine.

As an example... let's say somebody places an order for 10 Widgets out in the edge of space. We live out near the edge -- actually, look at this map:

http://go-dl1.eve-files.com/media/corp/Verite/influence.png

That's the sovereignty map. It's updated daily. My alliance is Intrepid Crossing in the top right in green. That's 0.0 space (null-security aka no police and lawless -- players own and control everything). Now, let's go through that example of a user ordering 10 widgets.

* Delivery order is submitted if we have it in stock. If so, someone will deliver it via contract. Done. * If not in stock, start the decision tree for this item. * Do we have this in stock in production/stock facilities? If so, submit a transportation order. When it gets transported, the system detects this and submits a delivery order. * If we don't have it in stock, check the market prices for the goods required to build this item as well as the cost to purchase it from a reseller. * If it's cheaper to buy, we submit an order to our procurement team. (Automatic, still.) Once they procure it, the order goes to transportation and then finally delivery. * If it needs building, we do another process of seeing if we have what we need -- or if we have to buy minerals, blueprints, etc. * If we had to buy things, those orders are submitted to procurement and transportation. * If we have it (or the minerals arrive), the production order is submitted. * When we finally have the good, then transportation and delivery happen.

The entire thing is mostly automatic. We carry out the whims of this machine and we supply (rather efficiently) a pretty large alliance. It's a really impressive system.

Yeah, it's a video game. Sort of.

I love it.

And I haven't even touched on the politics, wars, and everything else. It's a beautiful, wonderful, maddening thing.

xb95··on It all began with a strange email
I worked at CCP when they hired Eyjólfur. He came in without really knowing a lot about the game world and made it his first job to learn as much as he could about how the world actually worked.

Given that I was a foreigner who was working and living in Iceland, I didn't have much of an evening social life. I was also one of the relatively few employees (sadly) that were really active in the game in the advanced levels of play -- 0.0, empire wars, etc.

Eyjólfur spent a bunch of evenings sitting with me while I played internet spaceships. He asked tons of questions and really got to learn the universe, or at least my corner of it. It was really interesting to work with him and hear him talk about his thoughts as he was putting them together.

CCP used to publish the Quarterly Economic Newsletter, like this:

http://cdn1.eveonline.com/community/QEN/QEN_Q3-2010.pdf

They've since stopped doing that, but you can see from that example that it used to be a fantastic resource. If you wanted to know the nitty-gritty details about the universe of EVE Online, the QEN was hard to beat.

xb95··on Latency numbers every programmer should know
This reminds me of one of the pages that Google has internally that, very roughly, breaks down the cost of various things so you can calculate equivalencies.

As an example of what I mean (i.e., these numbers and equivalencies are completely pulled out of thin-air and I am not asserting these in any way):

  * 1 Engineer-year = $100,000
  * 25T of RAM = 1 Engineer-week
  * 1ms of display latency = 1 Engineer-year
This allows engineeers to calculate tradeoffs when they're building things and to optimize their time for business impact. E.g.: it's not worth optimizing memory usage by itself, Latency is king, Don't waste your time shaving yaks, etc etc.
xb95··on Eve Online spaceship viewer uses WebGL
I've been playing it on and off since 2003. It's the best online game I have ever played, bar none. It fills a niche in the world of games that nobody else does, and for that alone, is worth playing to see what it's like.

The real problem with EVE is the "learning cliff" and how easy it is to get your ass handed to you. Even after you learn everything -- you don't know anything and you will die repeatedly and with no mercy. That's the name of the game, though, and it's a hard lesson for some people.

EVE is the closest parallel to real life I've ever seen in a game. It truly is a sandbox world. There aren't arbitrary protections like in other MMOs. You can be killed anywhere; you're never safe. There are people who exhibit every facet of human behavior -- and games within games within games. It's a player driven economy, the sociopolitical landscape is all created by the people who play it, and truly a lifestyle if you let it be.

A real 24/7/365 game. It doesn't stop. I've set alarm clocks to get up at 4AM and help my corporation or alliance out when needed. I've taken days off from work to make sure I could be available for crucial moments. It's a video game -- yes, it is -- but it can be so much more than that. For many people this is an alternate reality.

At any rate, I highly recommend it. It's not for everybody, most people quit before giving it a real chance, but it's something worth experiencing. If it is the kind of thing that catches you, though, it will grab you and shake your very worldview on what "online gaming" can be.

It's beautiful, it's cruel, it's terrifying and wonderful.

xb95··on Migrating From MongoDB To Riak At Bump
Yes, Riak gives you certain flexibilities that make certain things easier. If a node dies, you generally don't have to worry about anything. Stuff Just Works. (Well, in the Riak case, this is true until you realize that you have to do some dancing around the issue that it doesn't automatically re-replicate your data to other nodes and relies instead on read repair. This puts a certain pressure on node loss situations that I find is very similar to traditional RDBMS.)

But of your list, I have done all of these things in a MySQL system and for a comparable 1000 lines of code.

1. We implemented a system that tracks which servers are part of a "role" and the weights assigned to that relationship. When we put in a new server, it would start at a small weight until it warmed up and could fully join the pool. Misbehaving machines were set to weight=0 and received no traffic.

2. Node failure is easy given the above: set weight=0. This assumes a master/slave setup with many slaves. If you lose a master, it's slightly more complicated but you can do slave promotion easily enough: it's well enough understood. (And if you use a Doozer/Zookeeper central config/locking system, all of your users get notified of the change in milliseconds. It's very reliable.)

Network partitions are hard to deal with for most applications more so than most databases. It is worth noting that in Riak, if you partition off nodes, you might not have all data available. Sure, eventual consistency means that you can still write to the nodes and be assured that eventually the data will get through, but this is a very explicit tradeoff you make. "My data may be entirely unavailable for reading, but I can still write something to somewhere." IMO it's a rare application that can continue to run without being able to read real data from the database.

3. In a master/slave MySQL environment you would be reading from the slaves anyway unless your tolerance for data freshness is such that you cannot allow yourself to read slightly stale data. I.e., payment systems for banks or things that would fit better in a master/master environment. Since the slaves are all in sync, broadly speaking, you can read from any of them. (But you should use the weighted random as mentioned in the first point.)

...

Please also note that I am not trying to knock Riak. It's neat, it's cool, it does a great job. It's just a different system with a different set of priorities and tradeoffs that may or may not work in your particular application. :)

But to say that it can do things the others can't is incorrect. Riak requires you to have lots of organizational knowledge about siblings and conflict resolution in addition to the operational knowledge you need. A similar MySQL system requires you to have a different set of knowledge -- how to design schemas, how to handle replication, load balancing, etc.

Is one inherently better than the other? I don't think so. :)

← PreviousPage 3 of 3