How the dream of cheap streaming television became a pricey, complicated mess - <AUTHOR> https://www.washingtonpost.com/business/2019/04/13/how-dream-cheap-streaming-television-became-pricey-complicated-mess/ <comment><USER2> After a marked decrease, piracy appears to be on the rise again [1]. The timing coincides with the peak content availability of Netflix, and then the fragmentation as every studio decided they needed to build their own streaming service.

It's kind of frustrating to see how close things came to actually getting to the ideal (imho, anyway): any show, streamed on demand, on any device, for a reasonable fee. Instead, the studios are going to try to compete on content - which is not really competition. I don't care what studio makes funny_show (either when deciding what to subscribe to, or when trying to figure out what app to launch to watch it), I just want to watch it. I don't want to watch similar_but_not_as_good_knock_off on another service.

What's crazy is the seemingly unstoppable train wreck the industry is currently involved in. It's bad enough to not only see what the music industry was forced into (which is basically ideal for consumers, at least without dismantling the entire way music is produced), but the movie industry already went through this a half century ago, when theaters used to be owned by the studios and only show their own exclusive movies [2].

[1] [https://www.maketecheasier.com/internet-piracy-is-on-the- ris...](https://www.maketecheasier.com/internet-piracy-is-on-the-rise/)

[2] [https://en.m.wikipedia.org/wiki/United_States_v._Paramount_P...](https://en.m.wikipedia.org/wiki/United_States_v._Paramount_Pictures,_Inc).

<comment><USER3> >I don't care what studio makes funny_show (either when deciding what to subscribe to, or when trying to figure out what app to launch to watch it), I just want to watch it.

There's a joke that this is exactly what cable TV was.

Back then: "This is ridiculous! I'm paying for all these channels when I only watch two or three of them. I should be able to pay for just the ones I use."

Now: "This is ridiculous! Every time I find something I want to watch, I have to subscribe to a new service!"

<comment><USER4> Hilarious how the op and others have come full circle. I think what people want is something more akin to cable 2.0. Better interfaces and browsing but consolidation of all content so avoid this fragmentation we are moving closer and closer to.

<comment><USER5> Doensn't that already exist? Sling and DirecTV Now are basically just cable- lite services that you stream. I actually like these better than Netflix or Hulu.

</comment></comment></comment></comment><comment><USER6> Yes, if you want what you had before, then streaming isn't going to save you money. However, with the current system, I can pay $50/month for cable and then get whatever else I actually want when I want it. I get YouTube TV but only during the football season. I enjoy and pay for Netflix. I rent movies occasionally on Amazon, which I have Prime for, but I'd be paying for that anyway for package deliveries. If I had a kid at the right age, I'd probably shell out for Disney.

Overall, I pay a lot less than I would for cable and I get 90% of what I'd use anyway. So I pay a medium amount, but use everything I pay for. Compare this with cable where you pay a lot and use very little of what you pay for.

<comment><USER7> I think cell phones, not streaming, replaced cable, as far as monthly bills. Home Internet replaced the home phone bill, cell phones replaced the cable bill.

I bet lots of households are north of $200/mo between the two, which is probably close to (somewhat higher than—inflation, after all, plus we may just be spending a little more on this stuff) what phone + cable/satellite used to run for the some sorts of households.

A streaming subscription or two's nothing next to those, though tack a couple on top and we _are_ probably paying more, inflation adjusted, for this stuff than we used to. It's cell phones that're really soaking up the dollars, though. We've got about the worst you can get and still have any data (very low data limit) and it's still almost $100 for two lines, and we own both our phones outright so aren't paying the monthly add-on for a phone payment.

<comment><USER8> I think cell phones eliminated the home phone line for most people, not the internet.

Edit: I recommend US mobile or Ting for cheap phone plans. My wife and I pay ~$55 combined monthly on Ting.

<comment><USER7> > I think cell phones eliminated the home phone line for most people, not the > internet.

Right, in functionality, but if you think in terms of a kind of _slot_ for bills, I think home Internet fits close into where the phone bill used to (think back when phone bills were kinda high, especially if you wanted caller ID and voicemail and such, once those came around, or long distance) while cell phones tend to be a little higher and fit roughly where cable/satellite used to, as far as proportion of telecom bill goes.

> Edit: I recommend US mobile or Ting for cheap phone plans. My wife and I pay > ~$55 combined monthly on Ting.

Yeah, probably time for us to shop around again. We're on T-Mobile, which was easily the cheapest option from the big carriers at the time we picked it. We like that we still get (much slower) Internet service if we hit our tiny cap, which we can do by accidentally watching youtube for a few minutes with the wifi off. But maybe we should look at re-sellers. Seems crazy that they could be cheaper than going first-party, but I guess maybe they are, somehow.

[EDIT] is that $55 with taxes and fees and such? I remember last time I looked into this, maybe a year ago, what I kept running into was that it looked like I'd save a lot looking at sales' version of the figures, but when it came time to get serious about paying and those things got added in it was no savings, or maybe just single digit $/mo so not really worth a switch.

<comment><USER8> Looking at my bank account statements, it looks like it was $42 for the last two months, and $52 for the two months before that, so that's after taxes/fees.

It varies based on usage, and we're fairly light on data, so you might see higher numbers. (No cap, but if you use more you get billed more.)

</comment></comment></comment></comment></comment><comment><USER9> There is a view that has been expressed several times in HN when this topic is touched: "Netflix has enough current or future material (Netflix Originals) so that I can see it for the rest of my life, I do not really care if the quality is 10/10, I only use it as a form of light entertainment."

However, for other people, like me, the quality of art is essential, and we do want to see the best that has been produced this year and the past 100 years. Where is this material? How can I consume good European cinema from the 50s and 60s? Where can I consume the best Latin American cinema from the 80s? etc.

<comment><USER10> Maybe people don't want to watch exclusively Netflix's originals. I personally wish there was a UI feature to just hide all of Netflix's own crap and show me what else they have. Of course that feature will never exist.

<comment><USER11> Weird, to me, that you judge the quality only on the financier. Do you do this the other way -- is their a company that you'll always watch?

If you don't mind, do you generally go with labels rather than attempting to judge goods/services on their innate qualities?

Seems like one could download a list of all Netflix content somehow and filter out their self-financed stuff? Would be a bit clunky.

</comment></comment></comment><comment><USER12> I feel like too many people don't value how easy it is to signup and cancel these services. As others have mentioned in the comments, I usually rotate my subscriptions quite a bit throughout the year depending what shows are coming out, and that context is huge. Hulu, SlingTV, PS Vue, Netflix, Prime, etc. all make it SUPER easy and hassle free to deactivate/resume all the services on any whim. You can do it all in their interface in minutes. That's such an underrated feature that many forget about. Trying to cancel and resume cable with companies like Comcast is nothing short of a nightmare. They have 0 respect for the user's time, and they always try to hit you with sketchy hidden fees and dark pattern UX's.

I'm personally very happy with this new system of being able to rotate, and juggle services where it makes sense and get the content I want, wherever it is offered. I don't mind putting that burden on myself to manage because it's easy with all the services, and at the end of the day, having no commercials and that freedom to choose is all I every wanted. Not to mention, it's still all cheaper than traditional cable.

</comment><comment><USER13> The dream of cheap streaming television will always stupid. Given that there's zero marginal cost to distributing content, "unbundling" doesn't ultimately reduce providers' costs at all (of course it's not quite this simple, you have several players involved in providing content - studios, cable operators, aggregators like netflix, etc - but in the long run these details don't matter). So given that the costs of production haven't been lowered, why would anybody expect the cost to the consumer to decrease? On average they should remain the same. Maybe everybody expected to be on the lucky side of average? Or maybe people just hadn't thought this through at all.

<comment><USER14> > So given that the costs of production haven't been lowered, why would > anybody expect the cost to the consumer to decrease?

This was the part of the story I never understood. There seemed to be some sort of implied "and then VCs will subsidise things until everyone permanently accepts lower profit margins in order to lower costs". Which just didn't seem like a terribly plausible sequence of events.

It kinda reminds me of how everyone thought e-books of the latest Harry Potter should cost $1 (compared to a more expensive print book) and, surprise, it didn't work out that way either.

<comment> village-idiot Turns out that physical books and DVDs were a minuscule part of what made books and movies expensive. Who knew?*

* Lots of people knew this.

<comment><USER15> And a lot of people didn't. It's hard to internalize how cheap _matter_ is at scale. For a long time I really did think most of a book's cost is in printing. I still catch myself assuming a random product is expensive because of its manufacturing; it's a hard habit to kick.

</comment></comment></comment></comment><comment><USER16> I rotate through streaming services every few months, catching up on the latest shows then canceling.

I much prefer this to traditional cable!

<comment><USER17> Do you lose all content associated with your account each time, though? Like "sub-profiles", already watched shows, language preferences, etc.?

<comment><USER18> Who cares? Is any of that particularly valuable? Setting up your language prefs again surely only takes a minute or two.

<comment><USER17> Not having to skim through already-watched or downvoted shows is a gain of time, which is probably valuable if one takes the time to (un)subscribe regularly.

</comment></comment></comment></comment><comment><USER19> > Disney's service will cost just over half the monthly price of the most > popular Netflix plan... The goal is to achieve revenue through reach, not > overcharging.

That sounds exactly like what Netflix promised originally: cheap subscriptions, growing revenue through reach not higher prices.

Y'know, like when they offered a $11.99/month subscription in 2017... which now costs $15.99/month - a 33% rise in 1.5 years, whilst reducing the amount of content available.

<comment><USER20> > whilst reducing the amount of content available.

This is the part that bothers me the most. I've been a subscriber to Netflix since 2008 and I'm getting pretty close to cancelling the streaming service.

I subscribe to the "standard" plan which is about to go up to $12.99 next month (from $10.99). Realistically the +$2/month isn't going to break me but it's the lack of content that will.

Almost every time I want to go watch something on Netflix, it's like "oh yeah, I remember watching Contact a few years ago on instant watch, let's do it up!... Oh wait, it's been removed". Then I'll think about 5 other movies I want to watch which I know I've watched in the past and they are gone too. Before you know it, I've spent 15 minutes trying to find something to watch where I end up just turning it off and doing something else.

It feels like you have to watch what Netflix is adding / removing every month instead of being able to select what you want to watch. To make matters worse I have an older smart DVD player and the Netflix UI doesn't show titles that are going to be removed if you have them added to your watch list (it only shows either or, and the watch list text always wins), which makes it a huge pain to tell if a title is about to expire since I have to use a third party website which breaks me from the watching / browsing experience.

I'll probably cancel in a few months and just stick with the 1 DVD out at a time plan which has nearly every movie. Sure the DVD plan is horrible for watching shows because of how long it would take to finish them due to shipping logistics but I watch more movies than shows.

<comment><USER21> True that! I remember that a couple of years ago Amazon and Netflix had a great overlap in the center, Netflix added at the show end of the spectrum while Amazon did the same with movies. Then it drifted away but you still could get most content by just the two with the monthly subscriptions.

And now some content isn't there at all, some is buy-only and some is rental. Factor in that everything Disney will be gone soon that sucks. Streaming got me away from "alternative" sources, if they continue like that might just return

Disclaimer: That counts for Germany

</comment></comment></comment><comment><USER22> What we have now is the À la carte I always wanted that old media said we couldn't have.

I still pay less than I ever did with cable, I don't have to subsidize ESPN or Fox News and I don't have to waste time watching or fast forwarding through ads.

I think what we have now is fantastic.

<comment><USER23> But isn't this the _opposite_ of À la carte? You have 2-3 massive "cartes" with content and all you can do is eat everyting on one menu. Or switch between them. If you like showA and a family member likes showB it's now not a fight over the remote, it's a fight over which month to subscribe to which service.

Also since HBO/Netflix et.al don't carry regular live TV, most of us still keep their regular TV subscriptions for news/sports etc., making it not a replacement for TV but an expensive luxury extra.

</comment></comment><comment><USER24> The golden age to be really was around 2009 when I was able to buy pretty much every show I wanted for download on Amazon or iTunes and pay for just that. Now with Netflix and Amazon prime etc. we just traded one form of bundling for another.

The only advantage is that I can rotate between some streaming services (e.g last month Netflix, now HBO bc GoT, then Showtime for Billions..)

<comment><USER25> Isn't this still true? What shows can you not buy on Amazon or iTunes?

<comment><USER26> Availability of content on Amazon and iTunes is very country specific. In my country, there are no TV shows available at all, and the movie selection isn't stellar either. Half the stuff I want to watch just isn't available for purchase at all.

And availability keeps changing! You want to buy a movie that was available last week, and it's gone!

It's so frustrating...

<comment><USER21> The last thing is want pisses me of the most, also the reason I don't maintain whatch lists anymore.

</comment></comment></comment></comment><comment><USER10> I think the dream was that Netflix would actually become the one-stop-shop for absolutely everything old and new. That you could watch the latest GoT as well as get your fix of all of the old Schwarzenegger movies for 10 bucks a month. Obviously that never worked out. For me it's clear that in the near future every production house will have its own streaming service and they will essentially become stream-channels once an aggregator comes in and gives you a package deal. You'll save 10% if you bundle up 10 different streaming services, etc. I'm sure the next step after that will be to re-introduce commercials? Why not profit even more by having people pay monthly and serve them ads at the same time? At that point the cycle will restart as a new wave of piracy will begin because obviously people don't want to pay a fortune to watch ads and have access to a bunch of crap they never watch.

</comment><comment><USER17> Unpaywalled/GDPR-friendly: [https://archive.is/2S7ib](https://archive.is/2S7ib)

</comment><comment><USER27> I suspect that This will inevitably lead to more legal battles and a violence in copy right enforcement not seen before.

</comment><comment><USER28> NPR also recently had a story with this conclusion.

It doesn't seem all that pricey or complicated to me. Perhaps I'm missing some of the big picture, but it sure seems odd this angle has been hitting main stream media in a reinforcing manner.

<comment><USER29> I want to re-watch Futurama. Can you tell me where it's available to stream?

It was on Netflix for a few months, now it's a Hulu exclusive (IIRC). For how long? No one knows.

How many services do I need to subscribe to to get most of the content I need/want? 3? 5? More? How much will it cost?

Oh, and you're lucky if you're in the US. If you're outside the US, finding whete content is available becomes a never-ending exercise in frustration due to territorial limitations (which for some reason still apply to globally available and accessible internet services).

<comment><USER30> Finding where content is available outside the US isn't a super hard exercise, it's just frustrating. The answer at least half the time is "you can't".

<comment><USER19> Yep, and that's the sad thing.

As a Brit, it used to be a simple flow: check Netflix, almost certainly on there, watch.

Now it's usually not on there, and checking JustWatch shows that it's unavailable in the UK (without paying to buy or 'lease' the content, usually for a similar price to the streaming service's monthly rate).

You can see why torrenting is on the rise again: a Netflix subscription just doesn't cut it anymore, and Hulu isn't available in the UK without a VPN.

<comment><USER31> > As a Brit, it used to be a simple flow: check Netflix, almost certainly on > there, watch.

This is nonsense tbh.

This was never the case, and if it was it was because you had ridiculously narrow demographic tastes.

<comment><USER29> It's not nonsense, it's facts and reality.

[https://www.finder.com/uk/netflix-uk-vs-world- content](https://www.finder.com/uk/netflix-uk-vs-world-content)

Canada and the US have 10-11% more content than UK. The disparity was much greater before most content providers left Netflix and before the advent of Netflix's original programming.

It was and still is even worse for other countries (I live in Sweden, it has 30% less content than the UK)

</comment></comment></comment></comment></comment></comment><comment><USER32> Good thing I still have my massive media archive drives.

<comment><USER33> I've gone a similar route, partly because I want to own the content and partly because of availability. There are 20/30/40-year-old shows and movies that I enjoy, and few of them are on any streaming service. Those that are often have periods of unavailability due to licensing contracts expiring.

I'm currently operating on an 8 TB archive, of which I have two copies. One is installed in a desktop computer, and the other is in a single drive Synology. I take the Synology when traveling with our RV.

<comment><USER34> Have you found a good way to streamline bringing content into your archive after purchase? I've tried to start archiving my collection of movies/TV on physical discs, but have never managed to get very far because the whole process of ripping/transcoding Blu-rays is a PITA and takes forever (ignoring the legal issues with Blu-ray and DVD ripping, as well).

<comment><USER35> After purchase I usually just download a "backup" of the content.

<comment><USER36> Sadly, this is generally faster, better quality and easier. Getting the right encoding settings, audio formats, video codecs etc is a surprisingly complicated dance. I've often downloaded a bluray I bought just because I know the release groups will get the job done better than I can.

<comment><USER32> Same with games, especially if they require some third party crap like Uplay.

</comment></comment></comment></comment></comment></comment><comment><USER37> Like music, the internet supplied the dream of ridding us of the expensive middle man, instead, it was the dawn of the middle man. In time, software gets easier, and I'm still optimistic that the middle man will disappear and we will get very large, cheap distributed systems, with payments, that will allow peer to peer. Mix in UBI and the future will be bright, I mean, except for a couple of revolutions along the way.

<comment><USER38> I used to feel that way. I've also expected much broader democratization of production from 3D printing.

It's possible software is just not there yet, but I think network effects and de facto cartels are an equal or greater force against the natural progress of technology.

At this point I am pretty convinced it's going to take a union or pact amongst ai devs, or a revolution, to prevent a couple players from basically "winning capitalism", and rent seeking off infinite labor supply for eternity.

<comment><USER21> Well, I think the internet can remove all middle men except _one_. The one that remains is de facto a monopoly. So prices go down as long there is competition and more then on middle man. The less middle men there are the higher the prices. And then there is no way back neither, so the remaining middle man is running a global experiment on price elasticity until growth declines. Maybe 3D printing will be different due the physical aspects of it.

</comment></comment></comment><comment><USER23> I wish Netflix/HBO would start to tier their subscriptions. E.g. I just watch the odd documentary and none of the new big series on Netflix/HBO and it feels like I'm paying a lot of my subscription money into Game of Thrones...

<comment><USER39> 20-30 million US subscribers watch Game of Thrones and maybe 2 million will watch the most popular docs.

I suspect the GoT viewers are subsidizing your docs, not the other way around.

<comment><USER23> I suppose. I was assuming these old docs cost nearly nothing for them to stream.

</comment></comment></comment><comment><USER40> There's a perfectly acceptable solution to all of this that has been used many times in the past: Compulsory licensing. The same thing that happens with music broadcast on the radio for example.

</comment><comment><USER41> I signed up for Disney Theatre in Japan the other day to catch up on some Marvel movies before seeing the new Avengers movie.

I've seen a few comments about how it's easy to create and cancel accounts for these services. In this case it was extremely complicated and I almost gave up.

Step 1: download the Disney theatre app on my Apple TV.

Step 2: After it opens, use the resulting QR code to open the registration site on my phone and create an account

Step 3: Link the account to another account for docomo (one of the main cell phone providers and the only way to pay)

Step 4: Make a docomo account since I don't have one

Step 5: add payment to the new docomo account

Step 6: login to my new Disney account when prompted

Step 7: Download the Marvel, Disney and Disney Theatre apps when prompted

Step 8: Open the Marvel app on my phone and login with my new Disney account

Step 9: Find the movie I want to watch. Oops, it's not there, find another one. Click on it and it opens the Disney theatre app on my phone, which I have to login to. Here I realize that the Marvel app is for extra content.

Step 10: Realize that the app on my Apple TV is not authenticated yet, go back to the authentication site, which allows the app to work

Step 11: Find and watch a movie

They truly messed up the experience here. First, content here is even more fragmented in Japan and often bundled to mobile provider plans. This was a failure for consumers until Netflix gained enough content to blow the other streaming services out of the water. I suspect the docomo deal was made years ago when it was the norm and someone convinced Disney it was expected. I doubt the equivalent (eg link to your T-mobile account) will be required for payment in the US version. Second, downloading and signing in to multiple apps is a hassle. The extra apps have content such as interviews with actors and... themed cupcake recipes. It feels very corporate and I wouldn't predict that the potential extra added value will surpass extra confusion.

All of that being said, I could probably tolerate HBO and Disney as unique subscriptions, plus Netflix, Amazon and specific sports leagues. Any more fragmentation than 4-5 services and I'm more likely to unsubscribe from all of them.

</comment><comment><USER42> Much shorter version:

\- Good content costs a lot of money to produce.

\- That money has to come from somewhere.

\- That money has to come either directly from viewers or from advertisers (or some combination).

</comment><comment><USER43> Can't open the site because it blocks users with ad blockers.

Online newspapers have trained me over the last 20 years to need an ad blocker, without one they will serve up horrible experiences.

* The Cost of Mobile Ads on 50 News Websites - The New York Times || [https://www.nytimes.com/interactive/2015/10/01/business/cost...](https://www.nytimes.com/interactive/2015/10/01/business/cost-of-mobile-ads.html)

What's frustrating about all this, and I suspect it's somewhat relevant, is that I really just want to pay a flat fee to get all the content and never see another ad. And because Netflix, Hulu, Disney, Amazon, etc. can't agree... I'm left to go back to Rarbg -- who gives me easy access to content, for free, without making a fuss if I use an ad blocker or VPN.

Remember that video about Jeff Bezos talking about customer experience, and how it was paramount? Right, so I need modern Jeff Bezos to be like, "Hey, all the streaming services need to get their act together... what we're doing now is really shitty customer experience and we're making it easier for people to pirate than to simply pay for our services."

What's fucked up, I pay for Netflix, Amazon, and CBS... and still I'd rather torrent it so I can stream it from my Plex because I have no idea when Amazon will make changes to their content library, or Netflix will decide that I don't deserve true HD experience due to their bandwidth issues. So... back to good ol', never-let-you-down, BitTorrent... all because these content sellers can't get their heads into modernity.

Anyway the whole thing is fucked.

</comment><comment><USER44> Global Public Licence. Paid by everyone, according to their abilities, available to everyone. Revenue is split according to views. "Streaming" platforms just do that : streaming, and compete.

</comment><comment><USER45> I'd like access to every platform, service and channel then only be billed for the amount I watch.

</comment><comment><USER46> There needs to be a "Movies Anywhere" for streaming.</comment>


Radical surgery permanently extends your legs - <AUTHOR> https://futurism.com/neoscope/radical-surgery-taller-leg-lengthening <comment><USER3> A classmate of mine in 3rd grade spent an entire year in more or less constant pain when one of his legs needed growth plate surgery. He had metal pins sticking out of his legs, and like you would with braces, they were forcibly separated a millimeter or so a week for a year. This is like having a broken femur for 12 months that's intentionally never allowed to heal so the bone has to keep regrowing to fill in the gap.

i don't recommend it for aesthetics! in his case, it was required and something they wanted to do before his growth plates closed completely. As a result he's had a normal adulthood.

</comment><comment><USER4> If I am rich enough to have that done, I would rather have an app that displayed my bank balance on a small lapel button :) I'll be here all week :)

Anyway if a person's only dating criteria is your height and they themselves are not around that height, then I think it is best to stay as far away from that person as possible. I knew couple people like that and over the years they have had lots of relationship issues.

<comment><USER5> 92.2% or so of men are taller than their heterosexual partners. This is usually attributed to women's preferences, although I'm sure there are some men who insist on their SOs being shorter than them. Avoiding people who think height is an extremely important factor may not be possible.

Source: [https://fivethirtyeight.com/features/how-common-is-it- for-a-...](https://fivethirtyeight.com/features/how-common-is-it-for-a-man-to- be-shorter-than-his-partner/)

<comment><USER6> Oh wow. I didn't know it was that uncommon. I'm fairly short, so every gf I've had was taller. But it's terribly clear women have filtered me out often because of my height. It's depressing.

</comment></comment></comment><comment><USER7> I'd rather just watch Gattaca and experience this on the screen rather than in real life. I'm 5'9" and totally content with that.

</comment><comment><USER8> I've had this surgery done on my right leg 4 times. 3 times on my fibula, at 4, 11, and 17 years old, and once at 26 years old on my femur.

The first two had me using the external lengthening frame, which makes for a gruesome looking leg with thin long screws drilled through your bone and poking out to connect to two metal rings whose spacing controlled the lengthening. It's about as painful as you'd imagine it is to wake up after surgery with a half dozen screws through now your two pieces of fibula. I remember being scared of hitting the frame on things because of how painful it was.

At 17 I was able to take advantage of an internal lengthening rod, so no frame needed. It's much nicer than a frame and I would say that is what all the article's patients use. Remarkable medical tech.

By the time my last one was near I'd forgotten how bad the experience was. I took only 2 weeks off work. I was stupidly overconfident. I spent 1 week in hospital really drugged up and in heaps of pain, with a freshly broken femur, and then got home and had a worse week. It was too painful to sleep for a couple of months and the lengthening itself was awful, as my quad muscles were being stretched in ways that a child's muscles will handle but my adult muscles were hating. I'd spend over an hour a day stretching my leg that originally could only bend 50 degrees, and more than once the pain brought me to tears.

Once I could get to a physiotherapist she was shocked at how cut up and bruised the surgery had made me. Over half the surface area of my right buttock, hip, and upper leg was purple, with 6 new scars. By that point, a month in, I had come to reckon with how brutal this surgery is, and that I had months and months of recovery left. I was not a happy person. Pretty angry, to be honest.

I couldn't walk unaided by crutches for over 6 months, and I'd been aching to be able to walk since about day 14 of my recovery.

My right femur is now 4cm longer. People doing this surgery for cosmetic reasons do both legs and much more than 4cm at a time, sometimes 12cm. 12cm in one go must be agony for adult muscles, and it would take a over a year and half to get walking again. Having just experienced 4cm on one leg, it's incredible that we let people do this to themselves so that they can be more attractive.

</comment><comment><USER9> It's amazing to me that to get gender confirming surgery you need a letter from a psychologist and an unrelated doctor to prove you're sane enough, but if you're a rich dude you can just pay to have your legs broken so you can be over 6 feet tall.

<comment><USER10> Ethically, these doctors are supposed to get reassure themselves that their patients are compos mentis. In practice, though, actually doing so effectively would devastate the plastic surgery industry, especially this sort of fringe stuff. Note that there seem to be about three doctors worldwide who do this as a cosmetic procedure. (It is worth noting that the doctor in the article says he's turned people away, so some sort of screening is presumably being applied.)

There was an amazing Channel 4 (UK TV channel) documentary a while back about penis enlargement surgery. _Every single person_ who appeared in it should probably have been referred to a psychologist. One guy had it done about 10 times.

</comment></comment><comment><USER11> Are there also downsides?

Will my legs be more prone to breaking (for instance, when jumping)?

Will my gait, or my balance be altered? Will this become a non-issue over time?

I'm curious.

<comment><USER8> Having to undergo the process is a huge downside. I've done it 4 times. Forgot how bad the first three were (thanks brain) but my latest was a terrible time.

Another downside is that you will have scars all over your legs.

Your legs should not be more prone to breaking.

Gait and balance will initially of course be affected, but there's no long term problems there.

</comment></comment><comment><USER12> Actually, this can happen also by accident during hip joint replacement surgery many older people take these days. The chance is not very high, but it sucks, as you then have one leg slightly longer, causing all manner of problems. Reportedly people then have to use special shooes but it still sucks.

<comment><USER13> The "special shoes" really just depends on the extent of your problem. I've worked with folks that needed a significant lift on one foot: these were not cheap at all.

On the other hand, my mother has one leg slightly longer than the other. It does cause her pain, but all she needs is a shoe insert to correct the issue. It really isn't a big deal at all, and avoiding pain is definitely worth it.

</comment></comment><comment><USER14> Having legs disproportionately long compared to the torso isn't ideal either.

<comment><USER15> I currently have disproportionately short legs, so I may be the ideal candidate for this. However, there's no way I would put myself through this painful surgery just to end up having to explain why I'm suddenly taller to everybody. It would make something I'm insecure about a conversation starter for the next year.

<comment><USER16> > having to explain why I'm suddenly taller to everybody

Don't worry about them: if these conversations become annoying to you, just find better understanding friends.

I'm not arguing for or against this procedure though: it can be helpful for some people and can be damaging (both physically and mentally) to others like any other cosmetic surgery.

<comment><USER17> Your friends being concerned about your well-being and speaking to you about it are much better than those who don't.

</comment></comment></comment></comment><comment><USER18> > "I think that's something that's so powerful too — people will always be > three inches taller or whatever you made them," Debiparshad said. "They'll > die and be in their casket and decompose three inches longer. It's very > permanent."

Possibly the best argument _against_ getting this kind of bizarre cosmetic surgery.

<comment><USER13> I don't really understand why that's an argument against it. We do permanent things all the freaking time. Holes in earlobes and tattoos. We remove - <USER2> sometimes install - teeth! We patch folks up with metal, install breast and butt implants, install electronics to help hearts and brains. We suck away fat! Not all of these are minor cosmetic surgeries - some are major surgeries and optional!

And besides, if it weren't permanent, why would one go through the pain of the surgery in the first place? I'd actually argue that if the permanence is something that bothers you, this is certainly not something you would personally consider, but it certainly isn't really an argument against it being available for the wider population.

<comment><USER18> Because you're going to die and your body is going to decay and those extra inches mean absolutely nothing.

<comment><USER19> By this argument, any activity during your life means absolutely nothing.

[https://en.wikipedia.org/wiki/Proving_too_much](https://en.wikipedia.org/wiki/Proving_too_much)

<comment><USER18> That doesn't even remotely follow from what I wrote.

But thanks for your very helpful link to wikipedia.

</comment></comment></comment></comment></comment><comment><USER20> There's also leg shortening surgery, apparently it's a thing in places where there's some stigma around being taller than normal.

</comment><comment><USER21> Reminds me of this:

[https://jezebel.com/stories-about-my- brother-1835651181](https://jezebel.com/stories-about-my-brother-1835651181)

Author's brother died from am embolism resulting from height extension surgery.

<comment><USER22> Mind-blowing that she tries to blame that on _men_.

<comment><USER10> She blamed it on 'the patriarchy', that is, essentially, traditional gender roles and expectations. Those absolutely harm both women and men. Why was the brother insecure over his height in the first place? Almost certainly because society says that men _should_ be taller.

<comment><USER19> This is about the fact that women strongly prefer a man that is considerably taller than themselves.

If this is a cultural norm or an inherent part of human nature is both debatable and researchable. To me, it has all the marks of a builtin preference of our species.

</comment></comment></comment></comment><comment><USER23> Doesn't this permanently increase the number of cells that you have, and therefore augments the chance that you'll get cancer?

<comment><USER24> Everything augments the chances you get cancer. Your chances are higher reading this now than when you had originally posted your comment. So, yes but also, who cares...

</comment></comment><comment><USER25> Would the body be out of proportion? If somebody is tall everything thing else is big/long too.

<comment><USER10> It probably wouldn't be that noticeable; there's a lot of natural variation there anyway. I've longer arms and legs that would be normal for my torso; in practice it mostly just manifests in minor problems with clothes (in particular it's very hard to get a shirt that fits).

<comment><USER10> (And I expect someone both wealthy and vain enough to consider this would just get around that one with tailoring).

</comment></comment></comment><comment><USER26> I guess that's one way to get a leg up on the competition.

</comment><comment><USER27> You know, as someone tall enough to walk into doorways in older buildings, and too tall to fold oneself into a compact car... Height advantages are subjective.

<comment><USER28> On the plus side you get to build up forehead calluses, especially if you have a basement.

<comment><USER21> Become an IRL Klingon.

<comment><USER29> Today is a good day to duck!

</comment></comment></comment></comment><comment><USER30> Sure this might be neat, but a dolphinoplasty is what people in the world really need to feel whole.

</comment><comment><USER31> And then I can finally go to Titan.

</comment><comment><USER32> This is some Gattaca shit right here. Only for the desperate.

</comment><comment><USER33> Home Depot has drywall stilts under US$100. Just sayin'</comment>


Meetings Are Legalized Robbery - <AUTHOR> http://www.yegor256.com/2015/07/13/meetings-are-legalized-robbery.html <comment><USER3> I hate meetings. But even I think this article is ridiculous. I like the idea of asynchronous collaboration, but I'm bothered by the other 80% of this article.

The main thesis, buried in the paper, is that meetings steal the spotlight away from the one individual who's smarter than everyone else.

Or in my experience, the one individual who thinks he's smarter than everyone else - everyone else is beneath him and doesn't know "software engineering." He is The Architect, who sits in his office all day doodling and thinking of just the perfect architecture. He hates meetings because they pull him out of his theory sessions with himself.

The article mentions Einstein creating his theories alone. Einstein is the exception, not the rule. It's just like all the people who idolize Steve Jobs and try to run their business like him, only to fail because of an inflated ego with nothing to back it up.

<comment><USER4> _" The article mentions Einstein creating his theories alone. Einstein is the exception, not the rule."_

Even Einstein probably spent a lot of time talking face to face with his colleagues and presenting his ideas at Physics conferences. Science progresses through the exchange of ideas, both formally and informally.

 _" It's just like all the people who idolize Steve Jobs and try to run their business like him..."_

And I bet that Jobs, like most executives, spent most of his days in meetings rather than thinking alone in his office.

</comment></comment><comment><USER5> The Einstein thing was pretty weak. We don't need 100% asynchronous collaboration, but meetings should be treated as a last resort, not a first step. Call meetings when the features unique to meetings are needed - <USER2> language, 100% attention and instant response, etc.

Otherwise you're just wasting 1 man-hour per person in the meeting. Did we need to spend the equivalent of somebody's work day to talk about this thing? Was that needed? Because that was extremely expensive.

And the title is just click bait. If anything, meetings are legalized sabotage or vandalism. Not robbery. I don't go and steal people's time and end up with it myself.

</comment><comment><USER6> The problem with meetings is that they are often interminable, with too little accomplished. That's what needs to be fixed.

I've never had an opportunity to try it, but long ago someone suggesting that everyone needs to remain standing at meetings, to help expedite them. This would also make it more difficult to e.g. use a laptop to read HN instead of paying attention. :)

<comment><USER7> Agreed. And we need good meetings. But we shouldn't assume that no meetings is better than good meetings.

Standing meetings work. When anyone (non handicapped) wants to sit down, it's a sign the meeting is going too long.

</comment></comment><comment><USER8> > A good software architect doesn't need meetings and never organizes them.

Well I'm glad someone decided this arbitrarily. Who needs data? We have an oracle.

</comment><comment><USER9> "If I'm not mistaken, enjoying the process of creativity without any results is an obvious sign of mental illness."

Well fuck you too.</comment>


How Student Loan Debt Is Destroying Marriages - <AUTHOR> https://melmagazine.com/en-us/story/how-student-loan-debt-is-destroying-marriages <comment><USER2> Well,

Not everybody needs to go to an expensive college. You can get a great education for a fraction of the cost from a community college.</comment>


Set Your Head On Fire: The Way of the Liberation Artist  - <AUTHOR> http://www.illuminatedmind.net/2009/07/09/set-your-head-on-fire-the-way-of-the-liberation-artist/

<comment> onreact-com In a fast changing world you need to question traditional ways everywhere as the reality they are based on is often a thing of a distant past that does not address the actual issues of the present.</comment>


EPaxos, transactions and the next 700 Paxos systems - <AUTHOR> http://rystsov.info/2015/10/09/epaxos700.html <comment><USER2> This article would be really interesting with more context and explanation, but I find a bit unreadable in its current state.

That being said, I enjoyed the algorithm for generating the next Paxos algorithm. That's fun, but I'm still not sure that I really understood what the author was saying.

<comment><AUTHOR> Thank you for response, maybe I'll return and update it someday.

Yet the idea is very simple. Instead of putting say dictionary behind Paxos/Raft and coordinate update to this state, it makes sense to have dictionary of different Paxos/Raft instances and to use transaction to coordinate multi-updates.

</comment></comment><comment><USER3> """Peak a favorite transactions model to support multi-object updates e.g. Sagas, RAMP transactions, Yabandeh's transactions""".

It doesn't really matter what exactly the paxos value is, so you can put the whole multi-object update in 1 paxos value.

<comment><AUTHOR> If I understand you correctly, you suggest to have shared dictionary and use Paxos/Raft to order its updates. This approach has limitation - see "There Is More Consensus in Egalitarian Parliaments" paper for details.

I suggest to have dictionary of Paxos/Raft which orders updates only to its element and to use transactions to do multi-object updates.</comment></comment>


Ask HN: Salary cut for position change Front-end – Back end? - <AUTHOR> Long story; I want to know if a salary cut is justified in my situation.
18 months ago, I started my first job as an android developer in a fintech startup, after graduating with my Masters in a top 20 university. When I joined, I was the only android developer and built 2 relatively complex apps from scratch (designing architecture,  app development, some security/crypto/api).
My CTO, to whom I report directly, knows since the day he hired me that I don't want to be doing front-end my whole life, and we agreed this summer that I'd be switching to the back-end.
At the time, I asked him if there would be any salary change with the switch, and he reassured me that there wouldn't be, because he allows his engineers to move horizontally without any salary change.
Since 2 months, I've been learning about the back-end language, Functional Programming, and other frameworks they use. All on my personal time in the evening and on week-ends.
Last week, the CFO asked to speak with me and told me that we'd have to sign a new contract, and that they're going to decrease my salary (by over 10%). His argument is that he wants to align my salary with the other back-end juniors.
This news came to me as a shock and I am very confused if this is a normal practice or not. I've explained the situation to some of my SE friends and older acquaintances and all of them without exception find it scandalous and have told me that I should not accept the offer and start looking for another job.
I feel like the company is not valuating my work and my experience at their place. During these 18 months, I have shown that I am able to learn and adapt fast, that I deliver good results, and they have seen that I am highly motivated and positive in a very consistent way.
(Continuing the text in comment) <comment><AUTHOR> (Next part of the text):

Obviously, this career switch would be a great opportunity for me to move into the back-end world, learn a lot of new stuff, broaden my SE skills, build a better CV and invest in my future.

There are many arguments that I can find on my side to find it disgraceful and why they shouldn't decrease my salary. I feel I shouldn't even have to defend my salary in the first place in this situation, as decreasing my salary is a bit of a low blow.

Some notes: \- The startup has a lot of cash \- We are ~20 software engineers \- I am quite confident that I could earn more than my current salary with my experience if I moved to a bigger city in my country \- The other juniors didn't have more professional experience when they were hired, and don't have a better education \- I absolutely love the the project, and the other employees, our culture, and the office \- Even if I do accept now, I don't know why they'd want to do this to me when they know I am not happy with the situation, as their are making me lose some of my loyalty to the company, taking the risk that I'll leave when I get enough experience on back-end

I feel like they are forcing the pay cut on me, after promising me a switch, then promising there wouldn't be any salary change.

HN, shed light on my situation and tell me what you think.

</comment><comment><USER2> Sounds like this is a small shop. When you were off by yourself, your compensation stood alone in its own category. If you join the other backend devs, then your salary is compared against theirs and it "looks bad" on the internal spreadsheet. This is an internal political game and your CTO is not willing to spend his political capital on a junior developer. That may or may not be a reasonable decision on his part. Your excellent work up to this point (and future potential) isn't being weighed as much as it should be and there's probably very little you can do to change that.

I wouldn't accept a pay cut. It's too early in your career for that.

The ideal option is to tell the CTO "I can't take a pay cut. Keep me the same, and I promise I won't tell anyone." That might solve his political problem. If he won't go for that, then your options are: (1) continue in your current role (unhappy, but better paid), (2) leave for a different position. You probably will want to start planning for your eventual exit anyway, since this smells like a place with limited growth prospects.

</comment><comment><USER3> I think it is reasonable for you to be compensated according to the skills you have and the performance you demonstrate. I think it's reasonable for everyone with similar skills and performance to be compensated the same.

You are moving from a role you have 18 months experience into one where you have much less. Personally, I wouldn't cut your salary immediately, but I would work with you to build a transition plan made up of SMART goals. At the end of the transition period (probably 3-6 months in this case), we would discuss your performance relative to the expectations of the role and level you have transitioned into.

If, at that time, you were performing at a level more junior that you are being compensated, I would offer you the option of returning to your former role (assuming we still had a need for someone in that role) or level you down and adjust your compensation accordingly.

The CTO was foolhardy in making a blanket promise that you could move "horizontally" without impact to compensation, but the CFO is also overly focussed on what could be a small amount money (2.5-5% of your total salary).

I'd suggest that you go back to the CFO and the CTO and propose a transition plan with an eval at the end to determine your level and compensation. You should also ask what the promotion path forward would be like if you transitioned and were leveled down. Will you be stuck there for a long time or will you have a chance at being promoted back up once you have a year of experience? Then you can decide if a possible (presumably short-term) decrease in compensation is a valid investment in your long-term career.

"my SE friends and older acquaintances and all of them without exception find it scandalous"

Obviously, you need to balance an anonymous voice* on the internets against your friends and acquaintances, but this really isn't that scandalous. Perhaps they've just not experienced it themselves.

Actually, the biggest problems you have right now are that the CFO and CTO aren't on the same page and that the CFO is making decisions about compensation for engineers. The CTO (or whoever your direct supervisor is) should be making your compensation decisions based off strategic decisions taken in conjunction with the CFO (and others).

*I'm actually the head of engineering at a growing startup, but maybe I'm lying :-D</comment>


Black Friday and Cyber Monday Live Map - <AUTHOR> https://datastories.shopify.com/ <comment><USER2> We've had a live sales map for every Black Friday over the last 10 years. Somewhat refined it every year with the web becoming better and better.

The first ones were a bunch of divs over a png of the world, then canvas with SVG arcs, now webgl. It's a ridiculously busy time at Shopify each year and an event we take very seriously to get right.

<comment><USER3> It's a tradition for me as well to stare at it and fiddle with it for a while. Coming from ecommerce, the scale staggers me! This and what Alibaba does on singles day. Kudos.

</comment></comment><comment><USER4> > Normal users

Yay it's Black Friday / Cyber Monday! lets keep shopping!

> HN Crowd

Oooh another lava lamp, look at all those live payments! That's cool!

> Tinfoilers

Is it me or is it scary that Shopify can see my live payments in real time?

> Me

Meh. It's a Friday, I'm going to party tonight.

<comment><USER5> We went to my sister's house for Thanksgiving, so we spent Black Friday driving back home and then playing games together when we got home. We went out the next day and got a few things (needed and snow gear), but mostly avoided shopping.

It's way more relaxing to not bother with going shopping. There are plenty of good deals throughout the rest of the year, so why fight traffic and crowds to shop on one specific weekend?

</comment></comment><comment><USER6> Open the dev console for some fun... debugShopify()

<comment><USER7> Can you please give us more details or write a post on how you do this. Very cool!

</comment></comment><comment><USER8> Not the same thing of course, but this reminded me of the video of the Chinese sorting center after the 2018 11.11 (Singles' Day) sale: [https://www.youtube.com/watch?v=zjdpz05u2DY](https://www.youtube.com/watch?v=zjdpz05u2DY)

Singles Day is the worlds busiest shopping day.

</comment><comment><USER9> China seems way too quiet. There's ~8k orders per minute, and only ~200 per minute (~2.5%) come from China?

I feel like it is likely the "corporate" end is the HQ in America. But then we're using these lines to calculate shipping distances.

Or, IDK, maybe everything is already in a warehouse on the mainland.

<comment><USER10> AFAIK China doesn't do much black Friday stuff. Iirc they have singles day which just crushes BF in sales

[https://america.cgtn.com/2019/11/29/black-friday-how-us- reta...](https://america.cgtn.com/2019/11/29/black-friday-how-us-retail- stacks-up-against-chinas-singles-day)

</comment></comment><comment><USER11> Black Friday is useless, at least in my country. Half shops jack up priced a few weeks before and then "discounted" to original level, another half just set small sales on garbage tier devices at 5-10% level. It's like with advertisements - I suppose some of them may be genuine, but I don't bother to find out in a sea of scam and lies.

</comment><comment><USER12> As someone who spent a bit too much time on designing and developing live Pi powered dashboards for his home office I can truly appreciate a visualization like this.

</comment><comment><USER13> I would characterize US's 2019 black Friday as:

\- 50% off things should not buy

\- 10-15% off things you cannot afford.

Ali's 11/11 in 2019 seemed to be more affordable.

</comment><comment><USER14> This is quite an achievement in realtime viz. /r/dataisbeautiful would be proud.

</comment><comment><USER15> I think Ali also has one for 11/11? Maybe I am mistaken...</comment>


Another great JS security (view source) - <AUTHOR> http://www.foresthomecemetery.com/ just great. ;) <comment><USER2> Oddly the password function is called only when you click on lower black image. If you click on the defined Area (which happens to cover right where the "Password-ed Area" text is, then it bypasses the function call all together and just lets you in.

</comment><comment><USER3> I hope this is the product of having your brother in law's second cousin's nephew do the work for you and not the result of paying someone. But... they probably paid someone for this.</comment>


Log Everything as JSON. Make Your Life Easier. - <AUTHOR> http://blog.treasure-data.com/post/21881575472/log-everything-as-json-make-your-life-easier <comment><USER2> I've seen several articles like this, and there are a number of things to consider.

Logging to ascii means that the standard unix tools work out of the box with your log files. Especially if you use something like a tab delimiter, then you typically don't need to specify the delimiter.

As an upside you are aren't storing the column definition in every single line, which if you are doing large volume traffic definitely matters. For instance we store gigabytes of log files per hour, grossing up that space by a significant margin impacts storage, transit and process times during write (marshallers and custom log formatting). Writes are the hardest to scale, so if I'm going to add scale or extra parsing time, I'd rather handle that in Hadoop where I can throw massive parallel resources at it.

Next you can achieve much of the advantages of json or protocol buffers by having a defined format and a structured release process before someone can change the format. Add fields to the end and don't remove defunct fields. This is the same process you have to use with protocol buffers or conceptually with JSON to have it work.

Overall there are advantages to these other formats, but the articles like this that I've seen gloss over the havoc this creates with a standard linux tool chain. You can process a LOT of data with simple tools like Gawk and bash pipelines. It turns out you can even scale those same processes all the way up to Hadoop streaming.

<comment><USER3> _Especially if you use something like a tab delimiter, then you typically don't need to specify the delimiter._

What if the fields contain tabs? For every human-readable format that can contain arbitrary user input (nearly all of them) you need some form of escaping (I guess you could do length prefixing in ASCII decimal, but it'd not be pretty either and incompatible with basic tools).

But by far the biggest problem is the logging of text messages aimed at a humans, not the delimiting. Regular expressions can help in searching logs in quick-hack jobs, but if you need to parse logs for visualization or reporting, which is very common in organizations, using them is error-prone. After all, you rely on English messages of a certain form. The complexity of that could quickly move from "easy with regexps" to "we need NLP in our log parser!" (never mind security problems with one field leaking into another due to a slightly wrong regexps).

The application might change the message to make the message more readable for humans, or even move around fields, and your automated parser breaks. Structured messages, on the other hand, won't change for those concerns as the formatting for humans happens in the back-end.

I get a bit annoyed at the "WTF kid, learn UNIX tools" kind of responses here. UNIX tools are one way of doing things, not the holy one perfect way. Tool support is important, but there are also tools for processing JSON, XML, streams available. Shouldn't you use the best tool for the job, not the one you happen to know?

(I don't mean that JSON is necessarily the best format in every use-case, but for automated processing every structured format at all trumps arbitrarily delimited and escaped files. You can easily convert between structured formats should the need arise)

<comment><USER4> > _"Shouldn't you use the best tool for the job, not the one you happen to > know?"_

Well, 'best' in this case should be determined by combining a number of factors. Certainly technological superiority should be weighted quite heavily, but in certain circumstances the _"Nobody ever got fired for buying IBM"_ effect is also very important.

Of course there is also the _"The best tool for the job is the one you have/know."_ quip, which I don't generally agree with myself... so I guess what I'm saying is that your mileage may vary.

(disclaimer: I log with JSON)

<comment><USER3> But such thinking can block innovation. It's a form of path lock-in. Both UNIX and Windows "gurus" are guilty of this, of seeing their way as the "one true way". Just because it's always been that way.

New ideas are not always better, but sometimes they might be. In the longer run "I'm used to this" (on its own) is not a good argument as there will always be new people that are not used to your specific blub, and if they can be more productive or make more reliable/secure systems then eventually you'll be out of the market.

See also: <https://news.ycombinator.com/item?id=3892410>

<comment><USER4> Oh certainly, I fully agree. I think I'm just saying that I think logging is going to be one of those things, for better or worse, that most developers look at and do the mental calculus of _"It's a good idea, but do I want to go out on a limb here, with_ this _issue?"_ In at least some cases all the factors added together just won't work out to it being worth the risk/effort.

Basically just the IBM thing. Was IBM always the best choice? No. But even so, it was often the best choice for the individuals making that call. This is the sort of thing that you have to recognize and contend with if you want to introduce change.

</comment></comment></comment></comment></comment><comment><USER5> This article feels like it would work just as well with "Protocol Buffers", "Thrift", "XML", or even maybe "ASN.1". If that's truly the case, maybe the better thing to say is "please don't (only) log in ASCII", followed by "please use a format which is hard to get wrong".

JSON scares me a little. Don't you have to worry about escaping a whole bunch of characters just in case something gets the wrong idea about what you have in a field? I saw a page not too long ago which listed about a dozen characters which should be substituted in some manner when used in JSON.

Full disclosure: I got tired of ASCII logging from my web server and wrote something to stream binary protocol buffers (!) to a file instead. <http://rachelbythebay.com/w/2012/02/12/progress/>

<comment><USER6> Over the last 10 years, I've gradually moved from ASCII to Thrift/ProtocolBuffers to JSON. Here are some random thoughts:

1) As others said, you should definitely use a library for JSON reading/writing.

2) JSON is simple and surprisingly fast to read/write. In one large benchmark ([http://code.google.com/p/thrift-protobuf- compare/wiki/Benchm...](http://code.google.com/p/thrift-protobuf- compare/wiki/Benchmarking)), the Jackson JSON library (for Java) comes in somewhere between Thrift and Protocol Buffers.

3) JSON feels friendlier than protocol buffers and Thrift because it's human readable instead of binary.

4) JSON is more convenient than multi-line formats like XML because you can grep for things easily. For example, if you have {time:015128752, event:"authentication error", user:"bob smith", details: "..."}, then I can take do the following:

      cat log.json | grep 'user:"bob smith"'

It's hard to do that with XML because even if you find the right user, the entire log message/object spans multiple lines.

5) JSON is not as compact as binary, but it gets surprisingly close if you gzip it. All of those repeated descriptive attribute names are great for humans, but compression algorithms love them as well.

6) The format is fairly universal, but if you ever come across a language without JSON parsing libraries, the format is not so hard that you couldn't write your own parser (compare that to Thrift, XML, etc)

<comment><USER7> > JSON is more convenient than multi-line formats like XML because you can > grep for things easily.

Only if the text representation is pretty-printed in a certain way.

> It's hard to do that with XML because even if you find the right user, the > entire log message/object spans multiple lines.

XML tooling makes grepping obsolete.

        cat log.xml | xpath //log[@user="bob smith"]

<comment><USER8> Just please consider that XPath needs to store the items in a tree structure first (XML needs to be parsed and loaded into memry) before it can be useful. Running that on a large log file would be an interesting performance experiment.

<comment><USER7> Nonsense, XPath works very well with streamed content, and there are even implementations of XPath engines for FPGA and GPGPU, all of which have very strict memory limitations.

DOM is completely optional, and you only need it for convenience or to observe the modifications, e.g. the way browsers make use of it.

Just think how you would compile any XPath expression — it's very similar to REGEX, only for structured data.

<comment><USER9> I think you're overstating the capabilities and implementation of common XPath processors here, and silently implying the use of a _subset_ or _modified version_ of XPath as specified. Arbitrary XPath will likely require loading the entire document in the worst case, because it allows navigation to any portion of the tree.

<comment><USER7> Navigation to any portion of the tree does not imply any need to keep the entire document in memory at once.

Worst case scenario XPath expression will not yield any results before _traversing_ the entire tree. However any XPath 1.0 (and I imagine 2.0 is no different in that regard) can be compiled into a deterministic state machine (DFA), which only needs to keep tabs on how many elements it has seen and what conditions has been met.

What XPath 1.0 specifically doesn't allow are arbitrary sub-expressions in predicates. Those would be problematic in certain conditions.

The only potential issue with performance is when running a large number of XPEs against a single stream. So there are various techniques to remedy that, including merging state machines for branching expression etc.

<comment><USER9> There's a following:: axis in XPath which lets you look ahead to arbitrary elements. So the processor needs to load the document into memory, which of course is not streaming.

<comment><USER7> I don't see how this axis itself is a problem. Could you provide a specific example?

<comment><USER9> Just /node/node2/following::* in a predicate or whatever. Perhaps you're conflating XPath-as-used with XPath-as-specified? <http://msdn.microsoft.com/en-us/library/ms950778.aspx> explains that you can't support all of XPath (even 1.0) and process things the way that you describe.

<comment><USER7> Right, they completely eliminate any buffering. That's very strict, but you're right. I thought you meant that there's a subset of XPath that can't work on anything but DOM.

<comment><USER9> Yeah, that's all. The reason it's relevant is that XPath processors often value conformance over expanding the utility of their system. I didn't want someone going off and using libxslt or xalan expecting it to process things in a memory-efficient manner.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The real takeaway is that log files invariably tend to become interfaces for something. They often end up being used for monitoring tools, business intelligence, system diagnostic tools, system tests, and so on. And they're great for this. But not when they contain sentences like "Opening conection...", which break half those tools the moment someone fixes the typo.

The log strings became an interface. Avoid this. If it's an interface, it has to be specced, and it has to allow for backward compatibility, just like any other interface that crosses component / tool boundaries.

Whether you do the actual data storage with JSON or something else doesn't matter. It's an implementation detail (though I agree that keeping it not only machine-readable, but also human-readable, is probably a good thing).

Design the classes that represent log files, and treat them like they're part of a library API. Don't remove fields. Ideally, use the same classes for writing (from your main software) and parsing the logs (from all that other tooling) and include version information in the parser so that the class interface can be current yet the data can be ancient.

<comment><USER11> That exactly the opposite of my understanding of logs, and the reason why I can't agree with the OP.

For me logs are a way to store extensive historical data about what happened, in the cheapest and simplest way possible. Logs are a "write a lot and read almost never" kind of storage. For this kind of storage, the simplest way to do it is tab delimited flat files.

Logs are for debug or "legal" purposes: a client complains he has lost all his data, your boss comes in the room with fume steaming outside his ears telling you names because you "can't store f __* client's F __* valuables cleany". Then, using awk or grep kungfu, you come up ten minutes later with the exact millisec when the client did click on "Yes, I am sure I want to delete my data", his IP, his session_id, his browser fingerprint and so on. In case of security audit, you are required to send 10 years of server logs to a trusted third-party (they will not do anything with it, they just want to make sure you have logs). You zip the thing and send it by email to then (thus crashing security auditor's email server). You have done your duty.

These are what logs are for. Having JSON or any other format inside just make it more fragile, less versatile, will mess with line-oriented commands and is unnecessary.

If you are using your logs regularly to track some business data about your product, you are using logs for the wrong purpose and should consider using something else.

<comment><USER12> You just email them? No encryption or anything like that?

Kind of funny that a security audit is the thing that trigger this .. =/

</comment></comment></comment><comment><USER13> There's been a lot of noise about logging in the linux ecosystem lately.

There's Project Lumberjack ([http://bazsi.blogs.balabit.com/2012/02/project- lumberjack-to...](http://bazsi.blogs.balabit.com/2012/02/project-lumberjack- to-improve-linux-logging/)) to encourage applications to generate structured logs and better document/integrate tools for working with those logs. The proposed structure is Common Event Expression (<http://cee.mitre.org/>).

At the last kernel summit, ideas (<http://lwn.net/Articles/492125/>) were presented on how to make kernel messages more structured.

More radically, there's The Journal (<http://lwn.net/Articles/468049/>), a proposed replacement for syslog.

<comment><USER14> Also, the newest syslog RFC (<http://tools.ietf.org/html/rfc5424>) allows for structured data to be included with the message.

The nice thing about this approach is that you can serialize the received messages however you'd like: JSON, XML, TSV, whatever.

Support for RFC 5424 in syslog daemons and logging libraries is thin, but will hopefully improve soon.

</comment></comment><comment><USER15> What if I need, say, to find the 10 IPs that make the most requests? With the Apache log format, I can write the following in about 15 seconds:

      cut -d ' ' -f1 log | sort | uniq -c | sort -nr | head

Say you need to follow accesses to a particular file? The following quick and dirty one-liner probably works well enough:

      tail -f log | grep --line-buffered file.pdf

How do you do that with json?

Granted, as soon as your logs stop being a sequence of records (lines) with a fixed sequence of neatly delimited records, you will need something more than text. However, I still don't know of tools to work with json from the command line that are as concise, efficient, flexible and robust as the standard unix utilities for text.

<comment><USER16> > How do you do that with json?

Depends on the schema used, but it would probably be something like

        jshon -a -e "ip" -u < log | sort | uniq -c | sort -nr | head

</comment></comment><comment><USER17> I dunno, this feels like the "web developers" approach to logging. I can't say that it wouldn't be cool to be able to parse logs into a structured format, but honestly, tools are already there to parse logs that are very powerful (gawk + shell pipes + {whatever_unix_tool_you_can_think_of}). If you don't have programmers that can knock out a real quick awk liner to process a logfile for you in any custom way you want, then I could see where this approach (using JSON) is useful because then they can use something they are familiar with instead of something they are not. But really, you should know how to use the Unix tool chain if you're a programmer.

</comment><comment><USER18> TSV and you're done

smaller

readable, esp. with `column -t <log`

works with awk/cut/join/grep/sort/column/etc./etc./etc.

if you have complicated enough logs that you can't maintain the shell scripts that parse them, you probably also have enough log data that json's going to blow up your space and you probably want indexes anyway, so throw it in a real database (oh hi I work for one of these, log analysis is actually one of our strong suits)

but others have already commented to this effect

</comment><comment><USER19> "Alex ... [realizes] that someone added an extra field in each line"

Someone?!? Who's touching the server configuration and why? Unless Alex put a publicly accessible web interface on his .conf files, this shouldn't be happening.

Back on topic. The increase in size for logging in JSON could easily be a deal breaker.

<comment><USER20> OT, but I really like the way you expressed this: "could easily be a deal breaker". Too many comments on HN instead say "This would never work because of the increase in size" instead. Your comment recognizes the nuance without getting bogged down in what-ifs and disclaimers. Very well put.

</comment></comment><comment><USER21> I've done various different log formats over the years including JSON.

One thing I've done for logging errors or warning is to log them in RSS format. I monitor them just like any RSS feed. It's really handy because there's already tons of ways to read these logs so we don't have to create anything.

I wouldn't use this for a debug log because it would probably be unusable if there was a large volume of logs, but for watching errors it's great.

</comment><comment><USER22> This idea is as old as Lisp. <http://sites.google.com/site/steveyegge2/the- emacs-problem>

</comment><comment><USER23> One of the non-functional requirements of logs is that they should be fast to write. Marshalling data into a structured format takes longer than spitting out sprintfs.

If you really need structure for ease of querying, you might as well go all the way and throw it into a proper data store.

<comment><USER24> Remember we're talking about writing to disk. The time it takes to marshal the data is pretty much insignificant to the time it takes to do the actual write.

We use JSON on disk heavily in several places where we generate or receive huge amounts of data. JSON-in-a-file is a pretty good datastore for sequential data processing because it's so convent and you can work with the data using cat, tail or any tool supporting JSON.

<comment><USER23> > The time it takes to marshal the data is pretty much insignificant to the > time it takes to do the actual write.

And JSON is more verbose.

Basically this is another read/write dichotomy.

When do we pay the price of structuring data? At write time? Or at read time? I'd rather pay it at read time, as writing may be shaving performance from my actual primary production system.

<comment><USER24> This is premature optimization. Do you think it's expensive to write a few brackets, quotes and escape a few characters? We have harder problems to think about than optimizing for writes in our logging system :-)

How can you trade write/read without some structure in the log message? And do you know that sprintf actually costs something too? It's basically a mini- language which must be parsed and interpreted. You can go google sprintf+performance to see stories of people finding this out - but most of the time it doesn't matter, because the cost is insignificant and you can do what's most convenient for you.

<comment><USER23> My point is that structure is imposed _somewhere_ if you want to query your data. Either that structure is in the data, or in tools that parse the data. There is a "conservation of structure", if you like.

Most of the bunfights between proponents of different technologies is really an argument about where to pay structural tax. You can pay more at write time or read time on a sliding scale.

For logs, I think the smart option is to pay as little write-time overhead as possible. Their purpose is to maximally describe an event with minimal interruption to service. Every strictly unnecessary adornment to structure takes you further away from that core non-functional goal.

</comment></comment></comment></comment></comment><comment><USER25> We're also using Fluentd as well as original JSON-based logging libraries.

Fluentd deals with JSON-based logs. JSON is good for human facing interface because it is human readable and GREPable.

On the other side, Fluentd handles logs in MessagePack format internally. Msgpack is a serialization format compatible with JSON and can be an efficient replacement of JSON.

I wrote plugin for Fluentd that send those structured logs to Librato Metrics (<https://metrics.librato.com/>) which provides charting and dashboard features.

With Fluentd, our logs became program-friendly as well as human-firnedly.

</comment><comment><USER26> Loggly supports this, and they provided a good interface for querying the data as well. We used it for a while as a way to unify a couple GB of daily log data from our Rails app running on multiple instances. I even wrote a library that allows you to quickly add arbitrary keys to the request log entry anywhere in the app.

Unfortunately we had to disable it temporarily as the Ruby client did not cope well when latency increased to the Loggly service. It was fine for a while since we are both on AWS, but one day our site started getting super slow. It took a while to track down the problem because the Loggly client has threaded delivery, so a given request would not be delayed. But the problem was that the next request couldn't be started until the delivery thread terminated.

Okay I realize this is not the best architecture. There should be a completely isolated process that's pushing the queued logs to Loggly so that the app never deals with anything but a local logging service. Loggly supports syslogng, but that would be standard logging not JSON, so I think if we want to go this route we need to come up with something on our own...

</comment><comment><USER27> I only need three programs to deal with anti-ASCII, pro-complexity JSON, XML, etc. crowd: tr, sed and lex.

All the effort these Javascripters expend putting data JSON just gets undone by my custom UNIX-style filters; then I can actually work with the text.

Are they making life easier? For who? Seems like it's just more work for everybody, translating text back and forth into myriad formats.

But what can you do?

<comment><USER7> Your "plain text" probably has some implicit structure. XML, JSON, ProtocolBuffers, just make that structure explicit.

Dropping to plain text only to run sed or grep is a classic case of "if you have a hammer…." XML has a myriad of tools that do make your life easier — you just need to learn to embrace them.

<comment><USER27> It all starts as a stream. That is the "universal format".

sed was designed to edit streams. A stream can be transformed via stream editing into any text format, for any downstream consumer. It's line based. That's the only limitation.

lex can handle multiline "records". There is nothing you cannot do with lex. But only if you know how to use it. It's usually faster than any scripting language. Worth learning to use? Your choice. But it is what it is. It works. It, or some clone of it, was used to build the compiler that someone used to compile the shared library you're using as part of your special solution for the format of the month.

If you produce a stream as JSON, that's great. But now we're limited to consumers that understand JSON.

If you know your consumer wants JSON, then sure use some specialised library. But that's not what this guy is suggesting. He wants everything in JSON.

Well, not every consumer wants JSON.

This is a case of "I learned [X]. Please everyone use [X]."

None of us want to have to learn every language and every application.

Now consider if [X] is UNIX. For better or worse, it's the foundation on which most stuff talked about here runs. Perhaps it seems crude, it lacks sophistication in the eyes of a younger generation. It's a "hammer". But what can you build without a "hammer"?

In his case, [X] is Javascript. What's the foundation for Javascript? A "web browser".

Perhaps some people think nothing is possible without a web browser that can run Javascript.

It's a very narrow view.

<comment><USER7> Your plain text is less portable than any structured format. You're creating ad-hoc parsers to process your ad-hoc format. There has to be some implicit structure to this text, otherwise you wouldn't be able to use lex.

All it does is it ties your format to the specific implementation of your parser, including all the bugs in your custom stack. Your logs are now .docs, just in plain text.

> It all starts as a stream. That is the "universal format".

False. It starts as a data structure in the memory of the producing entity. The most direct or lightweight format would be a direct memory dump of the process. This would be unpractical, so the choice is between a generic portable structured data format and an ad-hoc serialization format.

Here's your pipeline:

Structured data (Producer) → Plain text → Structured data (Consumer)

It's like creating JPEGs of your logs and then running OCR to get the structured data back. That would be insane, right? But that's the _exact analogy,_ just your pipeline is a little lighter.

Now consider the alternative:

Structured data (Producer) → Portable structured data (.xml) → Structured data (Consumer)

The data in a structured, portable and uniform format like XML can be leveraged to offer rich and powerful tools, like XPath/XQuery/XSLT, all the while remaining agnostic to the specific data domain.

It's just the logical thing to do.

</comment></comment></comment></comment><comment><USER28> Except that fixed-field loglines are much faster to process than parsing JSON, which makes a difference when working with large logs.

<comment><USER29> Depends on what you value more: CPU time, or your developers' time keeping the log format and parsers in sync after any change.

<comment><USER30> You could test that the logging and parsing are in step, which then reduces the developer time to "Doh, red test" and a simple fix.

<comment><USER29> Why increase your burden even to that? Computers are there to do stupid repetitive stuff for us so we don't have to. Why design a logging format that requires even _minimal_ manual intervention to keep automated parsing working?

</comment></comment></comment></comment><comment><USER31> Logging to mongo (as JSON) has proven useful to us. Makes it easy to slice and dice the data.

<comment><USER32> Ya, logs are soooo much more valuable when they're in a database that you can query. We log to MySQL and then correlate logs with users, events, IPs, pages, etc.

Logs are just as relational as anything else, it took me awhile to realize it though.

</comment></comment><comment><USER33> I would love to see a JSON based shell, instead of the traditional shells based on raw strings. Heck, we could have a whole ecosystem of tools built around JSON or similar semi-structured representations.

</comment><comment><USER34> Log Many things as [my favorite format]. Make My Life Easier by doing the difficult work.

I would log in a fast compact, but not limited, and heavily documented binary format at a hardware level with lots of fail-safes. Maybe what I am doing is more appropriately called creating a journal. [My favorite scheduler] would very lazily and at opportunistic idle times convert the older non-human readable binary logs and insert the log data into [my favorite] database as very query-friendly information.

<comment><USER35>
      I would log in a fast compact, but not limited, and heavily documented binary format

Such as ASN.1, perhaps?

</comment></comment><comment><USER36> How do you even log as JSON?

Is your entire log file a giant JSON array? That would be challenging for most parsers I know because they would have to read the entire array into memory first.

Or do you log one JSON object per line? Then you would get problems as soon as you have line breaks inside strings and still have to parse until the object ends in some other line. Also, JSON objects do not have to be single-line to be valid, so you would in fact be working with some self-defined subset of JSON.

<comment><USER37> _Is your entire log file a giant JSON array?_

That's not necessarily a bad choice, but it's problematic for the reasons you describe. Still, since JSON is concatenative, you could indeed store all of your objects with a comma at the end and then use:

        import json; json.loads("[%s null]" % file_contents)[:-1]

_Then you would get problems as soon as you have line breaks inside strings_

Then you are not logging JSON. JSON does not permit that.

 _Also, JSON objects do not have to be single-line to be valid, so you would in fact be working with some self-defined subset of JSON._

Yes, and? Working in a subset of JSON which forbids newlines as whitespace -- that's still JSON, and it solves your problem elegantly.

Do... do you have multiple logging programs, logging to the same file, and one of them wants to insert newlines? Is this a real problem in your dev stack?

<comment><USER36> It is a real problem in someone's dev stack. I have already written code to preprocess such log files before feeding chunks into a real JSON parser. It didn't make my life easier.

I'm not against logging as JSON at all, but as pointed out, you have to use a subset that makes parsing the logs easy.

</comment></comment></comment><comment><USER38> I like this idea a lot. Frameworks like Rails come with excellent log messages, granularity and a pub/sub mechanism. Often this can be a lower hanging fruit than throwing in a ton of custom instrumentation for some third party analytics tool, especially when you're pressed for time.

My question is how fluentd can be hooked into Rails so that Rails' native messages use it and how does it work in the Heroku infrastructure?

</comment><comment><USER39> I've been thinking about this recently as well. I wrote a simple JSON logger for Perl recently. It will probably be on CPAN this weekend. Until then you can see it on prepan and github.

prepan <http://prepan.org/module/3Yz7PYrBSd>

github <https://github.com/kablamo/Log-JSON>

</comment><comment><USER40> Or provide unit test for said log parser and require (or don't) all tests to pass pre-commit. A JSON struct isn't going to stop your colleague from removing nor renaming a field. Removing the logging all together. Or changing the format himself, if your company is really setup for allowing colleagues to so easily break your code -- not that anyone's perfect.

</comment><comment><USER41> Is it worth switching to JSON to avoid having to edit your bash 1-liner when you change the format of the log?

</comment><comment><USER42> We've been logging all of our analytics data in JSON for years now.

</comment><comment><USER43> I tried this , it was no good ( because of escaping of special characters, and parsing performance. )

then i switch to newline and n r . and all my problems were solved (for now)

</comment><comment><USER44> Okay, and as soon as I switch to JSON, I have not just 5 million referrers logged per day, I also have 5 million times the word "referrer" in my log. Nice.

<comment><USER7> Trivially solved by compression. In those five million referrers you're probably also repeating "Firefox" and similar strings over and over, so compressing logs is already standard practice.

<comment><USER44> Compressing logs that are being written to? Never heard of that...

</comment></comment></comment><comment><USER45> Why not go even further and store them in MongoDB?</comment>


Show HN: Command line copy and paste - <AUTHOR> https://github.com/deutronium/CopyPaste

<comment><AUTHOR> The idea is to provide Copy & Paste Unix commands to use like so:

In one terminal you can do: cat file | copy

And in another: paste</comment>


The Chadwick Chair - <AUTHOR> http://daringfireball.net/linked/2013/05/01/chadwick <comment><USER2> Gruber's comment here is a bit ingenuous:

"Don Chadwick is the designer behind both the Aeron and the Chadwick. The Chadwick is the one he put his name on."

The Aeron was a collaboration between Bill Stumpf and Chadwick. They'd worked together on chairs before for Herman Miller (Equa chair, 1984 & Sarah chair, 1988). I'm not sure Bill would have appreciated naming any of these chairs "the Chadwick."

Bill Stumpf was an extremely talented industrial designer. He passed away at age 70 in 2006. <http://www.nytimes.com/2006/09/10/obituaries/10stumpf.html> [http://www.hermanmiller.com/content/hermanmiller/english/pro...](http://www.hermanmiller.com/content/hermanmiller/english/products/designers/stumpf.html)

It's also worth reading some of the backstory on the creation of the Aeron chair: [http://www.fastcodesign.com/1671789/the-untold-history-of- ho...](http://www.fastcodesign.com/1671789/the-untold-history-of-how-the- aeron-chair-came-to-be)

<comment><USER3> Yeah, I like the implication that the one with his name is better because of that, even though it's meaningless.

</comment></comment><comment><USER4> I'm in my late 30s and I hack for 10 hours a day in a director's chair from the '60s at the kitchen table.

I'd suggest getting enough exercise and standing up at least once an hour. And of course paying some attention to the basic ergonomics of where you work. But spending ludicrous amounts of money on a chair seems, well, silly.

\- From the directors chair.

<comment><USER5> I don't consider it a "ludicrous" amount of money. It's about the same amount one spends on a mattress and boxspring. And we spend about the same amount of time each day in both.

(I just use the chairs at my office, and I don't like the logistics of lugging my own chair to the office. But if I was in a situation where I was buying a chair for myself, I would consider something like this.)

<comment><USER6> Agreed. Here's something I realized about 5 years ago.

You will spend 95% of your time putting pressure on your: \- Shoes \- Mattress \- Chair

Skimping on any of those can lead to fatigue, discomfort and pain.

</comment></comment></comment><comment><USER7> The thing I didn't like about the Aeron is that the fabric seating base wasn't flat/wide/firm enough and the frame edges would roll my legs together. The Chadwick Chair has the same basic design, and looks like it would do the same thing.

I found that the Herman Miller Embody was a good choice for me, and a good value despite the stunning price on them. With their 12-year warranty, it came out to about 28 cents a day. Three years into it and the fabric still looks good, and cat hair is easy to remove (always a plus).

<comment><USER8> I don't know that this does, but the Aeron comes in three different sizes. You can adjust the tension of the fabric base (that's the twisty knob on the right-hand side), also.

<comment><USER9> I just reached down and fiddled with that. The knob on the right adjusts the tilt tension.

</comment></comment></comment><comment><USER10> Another popular office chair recommendation is the Steelcase Leap [1]. It may not have the same namedropping power at the Chadwick, but that's not important. I got mine off Craigslist for about $300, and it's the best chair I've ever had. It's also way better than the Herman Miller Reaction we have at my current office.

[1] [http://www.steelcase.com/en/products/category/seating/task/l...](http://www.steelcase.com/en/products/category/seating/task/leap/pages/overview.aspx)

</comment><comment><USER11> Is there any science behind the design? Studies, analysis, etc?

</comment><comment><USER12> I used to suffer form frequent backaches. A couple of years back I shifted from modern office chairs to a solid wooden chair ($50) with no arms at home. The chair is heavy enough that it does not move as I shift my weight around. I find myself sitting up straight more often, as against slouching all the time, and since then I never had any back-pain.

<comment><USER13> I've used an Aeron and tried various other high-tech chairs and had similar results. I tend to have the best posture and feel most comfortable when in a hard chair, ideally with four legs I can prop my legs against. The rest of the time I spend standing.

</comment></comment><comment><USER14> I've been sitting on a $16 exercise ball (55cm) for the last few months while slowly recovering from a herniated disc in my back. As a former sloucher (and Aeron chair sitter), I can't speak highly enough about the new setup.

</comment><comment><USER15> I have had a standing desk for almost 6 months now and I couldn't be happier. I have lower back herniated discs and sitting exerts way more pressure on my lower spine than standing. The added benefit is that I get to move and stretch more easily then I'd do sitting.

I do not stand the entire day though. I take short breaks by sitting on a high chair. I stand for about 2 hours and then sit for 15-30 minutes. This has worked way better than any ergonomic chair for me.

<comment><USER16> A solution similar in spirit, sitting on an exercise ball: [http://lifehacker.com/5830748/why-i-switched-my-office- chair...](http://lifehacker.com/5830748/why-i-switched-my-office-chair-with- an-exercise-ball-and-what-it-feels-like)

<comment><USER15> I have tried exercise ball and still own one. The only problem is that it does not work with high table. I'd love to switch to the exercise ball when I have to sit.

I also like the Kneeling chair[1] which is a similar solution although works mostly on keeping your back straight where as, exercise ball helps your core as well.

[1] <http://amzn.com/B000TMK0O0>

</comment></comment></comment><comment><USER17> I often suffer of bad back pains and the only thing that fixed it (or greatly improved it) was the purchase of an Embody Chair [http://www.hermanmiller.com/products/seating/performance- wor...](http://www.hermanmiller.com/products/seating/performance-work- chairs/embody-chairs.html)

Edit: With a bit of research you can find it used or open box (like I did) and save some money.

</comment><comment><USER18> I'm no fan of Chadwick's because both the Aeron and Chadwick look so complex, there are knobs and levers everywhere. I prefer Humanscale's stuff (Liberty and Diffrient), the self-adjusting recline works very well, they're way too comfortable for my health and they've got a lower dust-trap coefficient. They also look... simpler.

<comment><USER19> While I don't intend this to in any way to try to sway you from your perfectly reasonable preferences here — with the Aeron chairs I've sat in — slide the armrests inward toward your body, and you'll find directions underneath for the knobs and dials and levers. Which is not exactly the most intuitive, but it is handy.

<comment><USER9> You may be thinking of a Steelcase Leap or similar. The Aeron armrests don't slide in, they just pivot. I just had to look up the guide [http://www.hermanmiller.com/content/dam/hermanmiller/documen...](http://www.hermanmiller.com/content/dam/hermanmiller/documents/user_information/Aeron_Chairs_adjustment_guide.pdf)

</comment></comment></comment><comment><USER20> The Supporto chair, while more expensive than others is incredibly comfortable and & good looking. I have both an Aeron and a Supporto. The difference between the two is like Photoshop vs Acorn on Mac. With the Aeron it sometimes feels like the designer chose not to choose… which I disagree with!

</comment><comment><USER21> I sit in a small wooden folding chair I bought for $30. People cringe when they see it, especially since I have scoliosis. Yet, I never experience back pains. Maybe doing squats 3-4 times a week at the gym is a better way to back health than spending so much on a chair.

</comment><comment><USER22> Much as I love my fat arse, $750 for a chair seems a tad exorbitant without a doctor's note.

<comment><USER23> If you're in a decently sized city, craigslist is your friend. The going rate on used Aeron/Chadwick/Life/Leap/Think/Liberty/Freedom/etc. is about $200-300.

<comment><USER24> Totally agree. Two weeks ago I bought a Steelcase Leap for $300 - only a year old and in great condition - and I couldn't be happier with the decision.

</comment></comment></comment><comment><USER25> I have an Aeron chair, but I actually stand up most of the time now. Much better than sitting.

</comment><comment><USER26> Given the source this must be an analogy. The ivePhone is coming!!!</comment>


Manipulating and Animating SVG with Raw Javascript - <AUTHOR> https://chanind.github.io/javascript/svg/2019/01/13/manipulating-and-animating-svg-with-raw-javascript.html <comment><USER2> [https://developer.mozilla.org/en- US/docs/Web/SVG/SVG_animati...](https://developer.mozilla.org/en- US/docs/Web/SVG/SVG_animation_with_SMIL)

</comment><comment><USER3> Taking the provided example further, use a Penner easing equation to create a nice eased stop to the target value.

Even as simple as: progress = progress * progress

Can make things have a more natural feel</comment>


Oldest piece of code running on OSX 10.9.2? - <AUTHOR>

What is the oldest piece of code running inside the latest OSX release (10.9.2) ? <comment><USER2> You'd need to comb [http://opensource.apple.com/](http://opensource.apple.com/) for an idea about that.</comment>


Which of the 11 American nations do you live in? - <AUTHOR> http://www.washingtonpost.com/blogs/govbeat/wp/2013/11/08/which-of-the-11-american-nations-do-you-live-in/

<comment><USER2> This should link to the (better) original article, not the WaPo rehash:

[http://www.tufts.edu/alumni/magazine/fall2013/features/up- in...](http://www.tufts.edu/alumni/magazine/fall2013/features/up-in-arms.html)

</comment><comment><USER3> The the article talks about the Left Coast - I call it the Best coast. It's where Intel, Boeing, HP, Microsoft, Tesla, Amazon, Starbucks and the Grateful Dead come from. Let any other part of the country match that. :)

<comment><USER4> In Appalachia, they have Skyline Chili. I accept your surrender.</comment></comment>