Manta: Unix Meets Map Reduce - <AUTHOR> http://dtrace.org/blogs/brendan/2013/06/25/manta-unix-meets-map-reduce/ <comment><USER2> _Wow!_ I've spent a hour or so looking at the Manta docs and I think Joyent has found the _sweet spot_ as far as abstraction is concerned. Kudos to the Joyent team!

The api [1] is so simple it's absurd. Looking at the design I just keep on asking myself, "but how will it perform?" And the answer is, I don't know. But what I do know is that because of the simplicity of the design, if this compute model catches on, it'll be the start of a new computing paradigm—probably the first genuine attempt at something we can agree is cloud.

The essence of the model is that "caching", in whatever form, is abstracted away. It is up to the architects of the system to ensure that the system performs well on a wide variety of compute scenarios. Let me explain. Usually, in a model like App Engine, you worry about how you'll represent your data in the Datastore, how you'll shard, how you'll use Memcache, and what type of batch jobs you'll run to reduce the amount of dynamic computation that is done on a request. On Manta, you just store your data to their object store and process it as needed. You let the system figure out data locality, what to cache, on which node to perform the compute, etc.

As I said, I have no idea how, or if, this will perform, but as far as abstraction level goes, it's perfect. This is where pricing becomes an issue. At 40µ$/GB/s it works out to 14.4¢/GB/hr with no mention or guarantee of the performance of the system. If the compute is slow, or the node is overloaded for tasks, what can a customer do? What if the compute is not limited by cpu but access to the underlying object store. Sure they say the compute is done at the edge, but what if they stick 4TB of data on a node that's the compute equivalent of an Intel Atom? So many questions about performance!

All that said, congratulations to the Joyent team. The HN response so far has been muted, but I think time will reveal Manta to be an important step towards true cloud computing.

Hopefully, Manta will mature enough to get a chance to kiss a girl.

[1] [http://apidocs.joyent.com/manta/api.html](http://apidocs.joyent.com/manta/api.html)

<comment><USER3> Thanks for the praise!

As far as pricing goes, you're charged for the wall clock time spent running inside the zone, so if your task queues up because the system is jammed, you're not paying for that. Task runtime can be affected on busy systems, but this has been in the noise for the jobs we've looked at. We're also looking to see how the system gets used in order to understand whether it would be useful to have other pricing options (e.g., tiers of service with guaranteed resources).

As for performance: we're using the system internally every day, and we've found the performance very good. Of course, the best way to find out is to evaluate it on your own workload. :)

Finally, you'll probably be interested to read Keith's summary of our hardware choices here: [http://dtrace.org/blogs/wesolows/2013/06/25/manta-what- lies-...](http://dtrace.org/blogs/wesolows/2013/06/25/manta-what-lies- beneath/)

</comment></comment><comment><USER4> "I'm looking forward to new discoveries now that I can store and process large amounts of performance data."

There it is. The central dogma of "big data".

But there is a dissenting view...

Jaron Lanier said, and I paraphrase: A computer will pass the Turing Test when the human running it becomes dumb enough to be fooled.

I have been very skeptical that the "discoveries" that big data presents to us will only be useful inasmuch as we dumb down our criteria for what discoveries are.

I suspect that anyone that has tried to model data and find _real_ insight with it for any amount of time shares this skepticism.

<comment><USER5> The criteria for discoveries is that they solve real customer issues and solve them fast. This may be direct or indirect, elegant or inelegant, simple or complex.

Last night I helped analyze an issue on Manta regarding job run time, and used DTrace to measure all process run time from all servers. It was a lot of data, but easily awk'd (in this case, not enough data to warrant map reduce), at which point I found run times from a certain set of processes that were equivalent to the job latency - taking us towards the fix.

That's just last night. A large number of real fixes have come from being able to quickly gather and process performance data, and from that spot latency outliers, unexpected workloads, and patterns over time.

I have spent time modeling systems. I wouldn't say I was left feeling skeptical of data-driven analysis, rather, I was left appreciating how complex real computer systems are, which defy accurate modeling. That's not to say that modeling is inferior or not worth doing -- it's another tool. I'll use whatever I can to fix my customer issues the fastest.

</comment></comment><comment><USER6> Not just MR, it's a full blown object store too.

[http://apidocs.joyent.com/manta/storage- reference.html](http://apidocs.joyent.com/manta/storage-reference.html)

</comment><comment><USER7> The next big data framework must be a programming language. Most languages make the assumption that the data it is processing, is available locally. This was true until the last few years for almost all situations. But not anymore.

<comment><USER8> I think I misread this the first time. You mean a "big data" framework not a big "data framework", right?

The idea of using a programming language as a database language: MUMPS (aka M), JavaScript as query language to some new NoSQL databases, ORM like Ruby ActiveRecrod which makes it look like you work on data in just Ruby.

As for the "big data" interpretation, I don't have much to say.

</comment></comment><comment><USER9> As much as i love Solaris (and ZFS and dtrace and Zones and all the nice things Sun and Joyent brought) i wish this would be available for Linux as well.

Edit: Ok, so it's called "Joyent Manta Storage Service" and the tutorial talks about creating accounts on the joyent cloud. So this is a Service, not a software? Sorry about the confusion then... I thought it would be a new software for SmartOS or Solaris...

<comment><USER3> It's not "for" any particular system. It's a Unix environment.

<comment><USER9> How is it a unix environment? On the first glance i don't really get how it is implemented. That's why i supposed that this only runs on SmartOS. Is the object store software downloadable somewhere? The tutorial mentions creating an account on the Joyent cloud...

</comment></comment></comment><comment><USER10> Near as I can tell this and Hadoop Streaming are very similar. In fact, you could probably take their open source CLI and wrap it around streaming without too much trouble.

[http://hadoop.apache.org/docs/stable/streaming.html](http://hadoop.apache.org/docs/stable/streaming.html)

That would at least avoid lock-in to Joyent's infrastructure.

</comment><comment><USER11> This looks awesome. I looked through the docs and didn't see much information on what happens in failure cases. If one node that is storing a replica of my data goes down how long until the data is replicated to a new node?

<comment><USER3> It depends on what "goes down" means. The vast, vast majority of such issues are transient: the node panics or loses power and comes back up. There's no impact to data availability or durability unless all nodes storing a copy of the same object are down at the same time.

It's a good question. Sounds like we should document or write up a blog post about the gory details.

<comment><USER11> That would be really useful. Along the same lines, one of the blog posts said that you chose to use strong consistency (CP in CAP). In the event of a failure, how many replicas (out of N) need to be down before the API returns 500s for reads or write (if they are different).

<comment><USER3> For a read to fail as a result of storage node failure, all replicas would have to be down. You may see increased latency on successful reads if some but not all of the replicas are down.

Recall that writes always create new objects. The storage nodes are selected dynamically for each write, so in practice that won't fail for storage node failure.

The more likely way to get a 500 from the data path is if parts of the metadata tier become unavailable. As with storage nodes, such failures are typically transient. They're also unlikely to affect reads. Writes may experience transient errors as the metadata tier recovers from failures.

[Edit for grammar.]

</comment></comment></comment></comment><comment><USER12> Reading the Manta website, I can't help but be reminded of this webcomic: [http://rbxbx.info/images/fault-tolerance.png](http://rbxbx.info/images/fault- tolerance.png)

<comment><USER13> I don't see how that comic is relevant to Manta, and it seems to be a bit of an unfair comparison. The Manta web site emphasizes the ability to use common and existing tools to work with the data. In addition to standard Unix pipes, they have bindings for pretty much every language I could think I want to use.

I.e. Manta seems to emphasize the ability to use existing tools in a distributed fashion, rather than forcing you to learn a new language with unfamiliar syntax.

</comment></comment><comment><USER14> So what is this SmartOS thing?

From what I understand: KVM is hardware virtualization, SmartOS is(a distro for) OS virtualization and Docker is process virtualization?

<comment><USER15> SmartOS is a distant relative of Solaris. It's an alternative to Linux for the server with all the Solaris bells and whistles (zfs, zones, dtrace) and great tooling for virtualization. Unfortunately it's not very widely adopted and to my knowledge is only supported by one start-up (Joyent) which limits its chances of dislodging Linux. So, a very powerful, highly integrated and ultimately niche stack.

It also inherited a subset of the Solaris community which is jaded by the popularity of Linux and its "primitive" toolset. You can often see them rolling their eyes and making condescending comments as the rest of the open- source world moves on.

The huge potential for all this is to contribute these wonderful tools to Linux, but there seems to be reluctance on that front.

<comment><USER16> _The huge potential for all this is to contribute these wonderful tools to Linux, but there seems to be reluctance on that front._

The code is there for the taking. FreeBSD has ported ZFS and DTrace. Guys at LLNL are using illumos ZFS code as upstream for ZFS on Linux. Others are working on DTrace.

One can wait for efforts like that to keep progressing, help in whatever way they can, or just use illumos based distros (e.g. SmartOS) now and not wait around. Choice is a wonderful thing.

<comment><USER15> Note that I am not complaining or demanding anything. You are right in assuming that I do not miss dtrace and zfs enough on my linux boxes to contribute individually to the porting effort.

I am simply observing that porting these tools to Linux doesn't seem to be a priority for either the Linux community (which is already incubating multiple "home-made" alternatives such as btrfs, lxc userland tools etc.) or the SmartOS community (which can understandably be tempted to keep these tools as proprietary "killer apps").

I believe that, if there had been a more concerted and serious effort to get these tools into linux early on, by people knowledgeable and influential enough to get it done (ie. not me), setting aside platform rivalries and NiH, a lot of sysadmins and developers would be having way more fun at their job right now.

<comment><USER17> I'm curious about why you don't think DTrace is that important. If dotCloud were running on a bunch of SmartOS boxes, and assuming that SmartOS was running on the metal and only OS virtaulization was used, then you could use DTrace to observe all levels of the stack from the hardware all the way up to the application. That seems like it would be useful for a PaaS company.

<comment><USER15> I do think dtrace is awesome, and would certainly not make an argument against using it. We may very well use it in the future.

There was no active decision _not_ to use it at dotCloud, our "visibility toolbox" is simply based on other tools - a combination of collectd, nagios, distributed rpc tracing, active and passive checks from the http frontends, and a decent logging setup. I'm sure you could accomplish this with dtrace and probably a dozen other tools, but I guess the same is true for every problem. At some point you just choose a tool that works and move on to the next problem.

</comment></comment></comment></comment></comment></comment><comment><USER18> Interesting, is Manta open source?

<comment><USER19> The client is: [https://npmjs.org/package/manta](https://npmjs.org/package/manta)

<comment><USER20> Those are the client libraries. It seems like the actual manta compute environment is primarily for SmartOS.

[http://apidocs.joyent.com/manta/compute-instance- software.ht...](http://apidocs.joyent.com/manta/compute-instance- software.html)

[https://github.com/joyent/manta-compute-bin](https://github.com/joyent/manta- compute-bin)

Also probably a better article:

[http://www.joyent.com/blog/hello-manta-bringing-unix-to- big-...](http://www.joyent.com/blog/hello-manta-bringing-unix-to-big-data)

</comment></comment></comment><comment><USER21> Official Announcement: [http://www.joyent.com/blog/hello-manta-bringing-unix- to-big-...](http://www.joyent.com/blog/hello-manta-bringing-unix-to-big-data)</comment>


Peter Thiel's CS183: Startup - Class 17 - Deep Thought - <AUTHOR> http://blakemasters.tumblr.com/post/24464587112/peter-thiels-cs183-startup-class-17-deep-thought

<comment><USER2> Funniest part from the notes!

"And then there's the probably apocryphal story about Columbus on the voyage to the New World. Everybody thought that the world was much smaller than it actually was and that they were going to China. When they were sailing for what seemed like too long without hitting China, the crew wanted to turn back. Columbus convinced them to postpone mutiny for 3 more days, and then they finally landed on the new continent.

Eric Jonas: Which pretty much makes North America the biggest pivot ever"

<comment><USER3> I got a good chuckle out of this one as well: "We may end up creating a supercomputer in the cloud that calls itself Zeus and throws down lightning bolts at people." Thiel is hilarious.

<comment><USER4> I liked this part. What a great class, wish I could attend.

"PayPal, at Luke Nosek's urging, became the first company in the history of the world that had cryogenics as part of the employee benefits package. There was a Tupperware-style party where the cryogenics company representatives made the rounds trying to get people to sign up at $50k for neuro or $120k for full body. Things were going well until they couldn't print out the policies because they couldn't get their dot matrix printer to work. So maybe the way get biotech to work well is actually to push harder on the AI front."

<comment><USER5> The class is pretty easy to crash, you just show up and sit in the back, there is plenty of room. Parking is pretty easy too.

04/02/2012 - 06/06/2012 Mon, Wed 2:15 PM - 3:45 PM at Annaud

</comment></comment></comment></comment><comment><USER6> The initial discussion about the hugeness and strangeness of AI reminded me of the godlike AIs in Dan Simmons' Hyperion Cantos, which are so incredibly advanced as to be pretty much beyond understanding in their native forms. The friendly ones end up speaking in zen koans.

[http://www.seanparnell.com/Hyperion%20Cantos/Web%20Pages/Umm...](http://www.seanparnell.com/Hyperion%20Cantos/Web%20Pages/Ummon.htm)

</comment><comment><USER7> We need a higher resolution in our vocabulary when talking about technological risks. Someone can be in favour of most forms of technology, and yet even when dealing with technologies with _extinction risk_ , the word that comes up to describe the opposition is 'Luddite'. Which is not to say that I am opposed to AI research.

</comment><comment><USER8> "The audience was split 50-50 on that. If it can accelerate—if it can more than double every 18th months going forward—it would seem like you'd get something like AI in just a few years. Yet most people thought AI was much further away than biotech 2.0. "

Interesting leap - is a large number of transistors on a die enough to enable an acceptable AI? I would have thought that more is necessary, and figuring out when it will happen will not be easily determined by a model like Moore's Law.

<comment><USER9> Singularitards tend to forget "size of brain" isn't related to "usefulness of brain." We don't have superintelligent elephants and whales running around.

Brains are slow, dumb things. They are just have freaky connectivity.

On a related note, it's hilarious modern GPUs aren't classified as weapons.

<comment><USER10> How do you weaponize a GPU?

<comment><USER11> You could use it for cryptography or cryptanalysis, for example.</comment></comment></comment></comment>


Bruce Schneier: We need 'cyberwar hotlines' to match nuclear hotlines - <AUTHOR> http://www.computerworlduk.com/news/security/3251799/bruce-schneier-we-need-cyberwar-hotlines-to-match-nuclear-hotlines/?cmpid=sbycombinatoranguyen <comment><USER2> Wow. I hope that's not what he actually wrote. If it is, and I realise it's a quote taken out of context then it's quite possibly one of the dumbest things I've ever heard him say.

Nuclear hotlines work because there's a certain established protocol for nuclear weapons. Due to Mutually Assured Destruction no-one (at least no-one using hotlines) really wants to start the first strike because it will result in annihilation. Therefore there's a vested interest in having the hotlines to avoid accidentally starting World War III.

With Cyberwar (and I'm referring to Computer Network Attack, not Computer Network Exploitation or espionage) there's no clear cut definition of what it actually _is_. Cyberwar means different things to different people in the same room, let alone different things to different people with different military structures and doctrines.

CNA is a very exploratory field at the moment, partly because no-one really understands the structure or boundaries and partly because it isn't necessarily contained to a theatre of operations. Add to that the fact that it is extremely cheap (by comparison) to mount cyber attacks (i.e. any fool and a laptop can do it) and the rules of engagement for cyber warfare become murkier than ever.

So to conclude, no I don't think we need cyberwar hotlines, at least until there's a broad military consensus on what cyberwar is, from which people can determine what type of communications they would need for such actions.

<comment><AUTHOR> I think he's just saying that cyberwar should be taken as seriously as nuclear war...though I agree I do feel he may be exaggerating for effect.

<comment><USER2> _If_ that's what he's saying then he should just stop talking until he knows more about the subject matter, but I don't think that's what he's saying.</comment></comment></comment>


Show HN: Stop constant buzz of your smartphone notifications while on computer - <AUTHOR> https://play.google.com/store/apps/details?id=com.marketlytics.idlenotifier

<comment><USER2> sweet, but chrome only?

<comment><AUTHOR> yes initially built it for our sanity, but the code is opensource[1] PR welcome :) [https://github.com/marketlytics/android- idlenotifier](https://github.com/marketlytics/android-idlenotifier)</comment></comment>


Ask HN: Is it possible to earn $1/min (not passively)? - <AUTHOR>

I was discussing this silly thought exercise with some friends today and thought I'd share..
Would it be possible for a website/app to exist that was similar to the Mechanical Turk in that you can perform a small unit of work whenever you like, except that it has not been commoditized and actually pays well. Say for example, the work required specific niche skills to perform?
If you had these niche skills and such a magical website/app existed would it be possible to earn a reasonable amount of money whenever you had a spare few minutes and had a computer or smartphone handy? (We were throwing around the figure of $1/min as the hypothetical extreme to illustrate the point).
I'm not talking about passive income that earns the equivalent of $1/min here. Specifically a small unit of work that you perform and receive payment for.
Do any such skills/tasks exist? Would such a situation be possible or would the attractiveness of any such opportunity always drive supply up and prices down such that $1/min is not possible as an equilibrium in reality?
I know this is potentially a pretty silly discussion but what do you guys think? What would be the smallest time unit of decent paying work possible? What would these niche skills be? If it couldn't exist, why not? <comment><USER2> Hey Terry,

Actually I am working on a start-up called MinuteBox.com (<http://www.minutebox.com>) and we are doing exactly like this. We are based in London.

We want to create a marketplace for people to buy and sell advice via video chat. Therefore, our users can monetise their expertise in small unit of time. The MinuteBox platform allows users to access expert advice in a cost- effective way. On the other hand experts can sell their time directly to users at their own convenience.

This is our demo video: <http://vimeo.com/13758599> You can have an idea how we approach this.

We are preparing for the launch and it would be great to get more feedback from you.

Cheers

Josh

<comment><USER3> Hey Josh, Looks really cool. I am not sure if you have launched officially yet, but if your interested in using Olark (<http://www.olark.com>) to talk to some of your early visitors, to help them through your signup process send me an email firstname.lastname@example.com and we'll hook you up.

</comment></comment><comment><USER4> I was dreaming about such an application for several years, and I guess it would work very well and generate exactly $1 / small unit of work.

There are tons of everday tasks that cannot be well or fully automated by software only. Such as translation, proofreading, photo masking, retouching, cleaning up 3D models, animation paths, excel sheets, html pages, debugging code, styling, formatting document etc. In many cases the automated features in the software are not good enough, or not possible at all. Human work is required. There are many tasks that an experienced user can do in a few minutes, but a new user would struggle for hours. Working with all sorts of software I have always been dreaming about "human assisted plugin features".

English is my second language. Let's say I am writing a blog entry. It's not very important, I will not hire someone to do a professional translation. So I just right click and select "human proofreading". Within a few minutes the result is back, I accept, $1 is charged on my account.

Or I have a design project and I'm late. I have 20 product photos where I have to make the background transparent. I am capable of doing it myself, but I don't have the time and I'm also a bit too lazy and hate doing it. So I right click and choose "human assisted select object". Within a minute a hand-made Photoshop selection appears in that window, I accept, $1 is charged.

I am sure many people would use such human-assited features for $1 A) to save time B) because we hate doing that task C) we cannot do that task ourselves.

But we need the beauty of the plugin integration into the very application we are using. Because we just dont't want the hassle of hiring someone (go to a website, find someone suitable to do the task, negotiate the price etc). It only makes sense, when the task is as defined as a real software feature such as a spell-check. It's clearly defined what I will receive as the result and I receive the result as if it was a software only function. I don't spend time chatting, phoning, etc, human work is in the background, almost fully transparent to the user. It is a human who will correct the error in my Excel function, but I invoke the feature by choosing a function in Excel the same way as if it was a software only feature.

This integrated plugin application is the key.

I will never hire somebody to cut out an object from its background in Photoshop on a freelance site, because of all the hassle. But when I'm running out of time, I will choose the "human select object" function instead of making the selection myself right in Photoshop.

The success of the service would also be built on the fact, that all sorts of big desktop software already have a lot of power users who are very experienced in producing good results fast in tasks that cannot be (fully) automated. These folks could sign up for the service, check what software and features they are available for work. After installing the plugins, jobs would appear in the application windows.

I think the price should be fixed. When I select a "human assisted proofreading" it's already OK for me to pay $1 for the result and I don't care if it cheaper or not. What I do care about is how good the result is. How fast it comes and how good it is. So I think the system should create a competition among workers not based on price (that should remain fixed) but based on quality benchmarks and feedbacks.

I would not make the system suitable for all kinds of jobs. Complex jobs should be arranged through traditional freelancing sites by hiring somone, explain the project, make a deal etc. This service on the other hand would exist for a limited number of human assisted software features that are best for a reliable implementation and is a frequent need that users will want to "outsource" this way.

</comment><comment><USER5> While I don't know if it is feasible or not, radiology interpretation can be done in units of one scan or a series of scans, and would easily sustain $1 per minute. The high price is caused by a combination of unique skill set, regulatory capture by the Guild Of Right Honoroable Radiologists, and agency issues separating the person who benefits from the interpretation, the person who orders the interpretation, and the person who pays for the interpretation.

<comment><AUTHOR> Nice one Patrick. Having authority under some regulation certainly seems like it would be the best way to keep the price up.

</comment></comment><comment><USER6> eh, specialized advice can be given in short bursts like that. The problem is filtering your pool of experts. I'll give someone who I have reason to believe knows the answer to my question well over a dollar a minute. but I'm doing this because I don't know the answer, so you'd have to filter the pool for me. even if it is something I know about, you can't usefully evaluate a person in a minute.

an easy one might be lawyer questions... I hear there are many unemployed lawyers right now? accountant questions, too. I'd pay more than a dollar a minute for that sort of thing, especially if I could get useful answers in a small number of minutes.

If you want $1/minute work for people who don't have advanced degrees, you will have to do more vetting, but that's okay. How about I pay a fashion expert a dollar or two to tell me if a shirt fits me okay? my cellphone has a camera. But if I'm paying, you've gotta certify that the person has taste. I don't have taste so I can't tell if the person on the other end does.

<comment><USER7> Specialized lawyer or tax advice sounds about right to me, especially if you can get a well-credentialed individual.

As Patio pointed out, regulated activities are another possible option.

Anything with a high barrier of entry and information-based.

</comment></comment><comment><USER8> Yes they do exist. It's called adult webcam shows.

<comment><USER6> considering the low barrier to entry, do you think those sorts of things pay that highly? I imagine that if the customer pays that much, most of the value is captured by the gateway.

Actually, I'm pretty sure I read an article a while back about some British unemployment office causing controversy for posting webcam girl jobs at something like ten pounds an hour. I can't find it, though, so I don't know.

<comment><USER9> Can it be because only a smallish subset of the female population are worth paying to see naked?

</comment></comment></comment><comment><USER10> yes. but you're going to be looking at skills and knowledge that are already inherently expensive or otherwise in short supply

example: something where you can send a text and/or photo to a doctor or RN for $1 and have them give some quick advice.

<comment><USER11> > example: something where you can send a text and/or photo to a doctor or RN > for $1 and have them give some quick advice.

I'm guessing this is something U.S. doctors won't touch due to liability issues. It could be a way for developing-world doctors to get some rich-world business, though. It'd be even easier if their country's regulators supported it: the biggest issue currently is that if I pay $5 to a doctor in [country] to look at a photo, how do I know this is even a doctor? If their equivalent of the AMA ran a certified portal it'd be easier to trust.

<comment><USER10> i wouldn't touch a startup idea like this myself unless i had more knowledge of the law behind it. it was mostly an example. you have to have a decently valuable skill to start with, basically, in order to translate it into shorter/faster $1 chunks.

</comment></comment></comment><comment><USER12> _Would such a situation be possible or would the attractiveness of any such opportunity always drive supply up and prices down such that $1/min is not possible as an equilibrium in reality?_

That depends upon the barriers to entry. In order to keep the wages high, you need to keep the number of people capable of doing the work small somehow.</comment>


Things you didn't know: At one time, America had an emperor - <AUTHOR> http://en.wikipedia.org/wiki/Emperor_Norton#Posthumous_fame

<comment><USER2> I've seen this page before, it's a good read. Friscans had a good sense of humour, bless them.

<<<Norton was loved and revered by the citizens of San Francisco. Although penniless, he regularly ate at the finest restaurants in San Francisco; restaurateurs took it upon themselves to add brass plaques in their entrances declaring "[b]y Appointment to his Imperial Majesty, Emperor Norton I of the United States."[27] Such "Imperial seals of approval" were prized and a substantial boost to trade. No play or musical performance in San Francisco would dare to open without reserving balcony seats for Norton.[9]>>>

<comment><USER3> San Francisco is one of my favorite cities in the US (I'm not a US native and moved to the Bay Area six months ago). It has its downsides, but the people and the culture just blow me away every new week that I spend in the area.</comment></comment>


Windows 9's new Start menu demonstrated on video - <AUTHOR> http://www.theverge.com/2014/9/12/6139255/windows-9-video-demo-features-start-menu

<comment><USER2> As a user of both windows phone and windows on the desktop; I'd be much happier if the desktop start screen experience were more like the phone one.

Phone: Here is a surface, arrange and size your tiles as you like, anywhere in available space.

Desktop: Here are groups, size your tiles and we'll auto arrange them in sequence in the group they are placed in.

You can be a touch more creative with the windows phone variant; and the experience is more intuitive when you're shuffling your tiles around.

Then again, the windows phone start screen does not react to screen orientation changes, meaning the surface you place your tiles on will never change size or orientation. I can see how the concept of groups answer the "how do we arrange to fill screen when orientation changes without bothering the user too much" question quite neatly; but I hope another few meetings around the drawing board on this issue can produce a more personal experience (rather than the current compromise).

I'd be happy to enable an option to have more customization options, even if it meant laying my tiles out twice (once for portrait, once for landscape).

I hope they don't do away with the start screen completely; I've gotten used to it and rather like it. Operating a surface taught me it's value.

</comment><comment><USER3> Did anyone else read that as Windows 95's new Start menu?

<comment><USER4> yes! deja vu too I remember clearly when they were showing it off in 1995.</comment></comment>


New Samuel: a font derived from Morse code - <AUTHOR> http://www.2ality.com/2012/12/new-samuel.html

<comment><USER2> Interesting font, but as an radio operator, no one actually writes nor reads code in it's "visual" (dit/dah) form. Messages are written or typed directly to or from English. Also after a while you don't hear individual characters as much as words and phases similar to a "real" spoken language. (Except for call signs and such...)

</comment><comment><USER3> Interesting and a clever system, but kind of nasty to read. They probably had fun developing it, though :)

</comment><comment><USER4> _Au contraire_ , I quite liked the font's look and feel. It would definitely look lovely on poster titles and the like.

As much as I liked the font, I also liked the approach behind building the font. _Algorithm_ is not the first word one associates with fonts ( _aesthetics_ is the word that comes to mind first) and I was pleasantly surprised to read the algorithmic approach behind the design too. :-)

Thanks for sharing it with us.

</comment><comment><USER5> Most of the letters are readable. However, 'P' looks exactly like what I'd expect 'E' to look like.

This presents a problem.

<comment><USER6> K, T, X, and Y are also tough at a glance. But I must admit, I do love the notion. There just has to be a better implementation.

<comment><USER7> I suspect so too.

But all this said, millions coped with "blackletter" for hundreds of years. Check out the caps: [http://www.identifont.com/samples/monotype- imaging/LucidaBla...](http://www.identifont.com/samples/monotype- imaging/LucidaBlackLetter.gif) (especially N, P, Y and G - and T and C look almost identical).</comment></comment></comment>


Finalterm - modern terminal done right - <AUTHOR> http://finalterm.org <comment><USER2> I'll say what I said the last time Finalterm was discussed here (and what I often say when 'improved' terminal emulators are thrown around):

Much of what is being provided here could _and should_ be implemented in the shell, not in the terminal emulator. Implemented in the shell, you could get many if not all of these features in any modern terminal emulator. If the terminal emulator genuinely does not provide the facilities that a shell needs to do something, then we can discuss extending the terminal emulator to provide generic facilities _that the shell would then use_.

The dropdowns in particular could and should be implemented in the shell. Look at what Vim does with its completion right now[0]; it doesn't need specialized terminal emulator support for that. Throwing in mouse support for those dropdowns would be nice, and could be done with existing terminal emulators.

Also, the last time this was discussed people raised concerns that additional parsing of terminal output presented an increased surface area for attack. xterm 'title' support has caused a vulnerability in the past, we should be careful to not repeat that.

[0] [http://1.bp.blogspot.com/_ci2yBnqzJgM/TD1PfKTlwnI/AAAAAAAAAD...](http://1.bp.blogspot.com/_ci2yBnqzJgM/TD1PfKTlwnI/AAAAAAAAADs/nOGWTRLuae8/s1600/vim_complete.png)

<comment><USER3> Nice. I mean, is there anything more satisfying than comparing someone's concrete implementation with our perfect ideal of what they _should_ have written? Ah, the software in our imagination is so wonderful! It is elegant! Bug-free! Conceptually unified! All of the abstractions match up nicely from hardware to application! Compared to our imagination, real software is a horrible, steaming, pile of shit.

And yet. I can't run _your ideas_ on my computer, but I can run Finalterm. So Philipp Emanuel Weidmann wins the argument, by default. Sorry.

<comment><USER2> If HN isn't the place to have an honest discussion about the merits of a project's architecture, then I don't know where is.

The author of this has some very good ideas and I don't doubt that they are technically proficient. Nevertheless, I believe they have executed their idea the wrong way.

This may seem like a complaint that the end user doesn't have any reason to care about, but I disagree. Downthread[0] there is somebody lamenting tab being used to activate the completion. I don't know what shell they use, but if they use zsh they already have a myriad of completion options available to them. Taking advantage of the features provided in this terminal emulator _and_ zsh simultaneously would undoubtedly be problematic _(actually, last I heard they seem to have somehow broken 'vi support', so whether or not arbitrary zsh configurations will even work on it is questionable)_. If we want Finalterminal to support the extensive range of completion that zsh already does, we are going to have a _lot_ of duplicated effort. Completion features should therefore be implemented at the same level that they have always existed at, the shell and/or application (think vim) layer.

[0]: [https://news.ycombinator.com/item?id=6574405](https://news.ycombinator.com/item?id=6574405)

<comment><USER3> But yours is not a criticism that Philip can really use. He's clearly decided on an approach: adding capability to a terminal. It's as if someone posted a Ruby framework and you criticized them for the fact that they _should_ be using Python, because it's just better for web stuff. Or someone posts a Vim plugin and you criticize them for not using Emacs, etc. Or someone writing an IDE plugin and you say they should run it from the command line anyway. Etc.

It seems unlikely that the author of finalterm, Philip, didn't consider doing this as a shell addition. But, if he pops in here and says, "Gosh, I never thought of that! You're right I should scrap this project and do it in the shell!" then I will humbly apologize. But, I don't think that's going to happen.

<comment><USER2> I don't know what Philip did or did not think of.

I think you are misunderstanding the nature of my complaint however. This isn't an issue of somebody using a tool that I don't prefer.. use Vim, or use Emacs, or use Nano for all I care. You want to use gnome-terminal? I can't stand it, but be my guest.

This is me saying that Philip has a good idea but has implemented it in a way that does not play nicely with existing tools. He knows this obviously, since he (or maybe other Finalterm authors, I haven't really been paying attention to that) have pointed that out himself. What I am pointing out that this incompatibility is unnecessary and unfortunate.

The crux of my complaint is that he has ideas that I would like to use, but solely because he has implemented them in an unorthodox way, there is simply no way that I can incorporate this into my workflow.

I'm not going to not say this simply because he may have also thought of this and disagrees with me. HN should not be an echo chamber of praise.

</comment></comment></comment></comment></comment><comment><USER4> This is exactly how a product page should look.

\- "Get it now" link

\- __Demonstrates __why you want it above the fold

\- Three major features right up front

\- More detail below, if you care to read that far

I don't know if the project is any good, but hot damn I love that page.

<comment><USER5> I don't know. For me it didn't really live up to the high standards of what is submitted to HN. Way too much information, and no where to sign up. No one will be interested in this.

<comment><USER6> It's a FOSS terminal emulator, what is there to sign up for? And there's an obvious and prominent link to the Github repo. For the record, I think it's highly interesting.

<comment><USER7> I think it was a sarcastic post :)

</comment></comment></comment></comment><comment><USER8> If you like the completion dropdown, and use Emacs, you may like term-mode extended with my readline-complete.el [0] and auto-complete-mode. Screenshots on the page.

As an aside, you would not believe how difficult it is to read completion data from readline. There is virtually no useful documentation on this matter; many readline settings make the task impossible; the --More-- menu requires your scraper to be interactive... you'd think there would be an escape to return the necessary data in a computer readable format, but you'd be wrong.

On top of that, some programs use mechanisms similar to but incompatible with readline, see Haskell's GHCi and haskeline.

[0]: [https://github.com/monsanto/readline- complete.el](https://github.com/monsanto/readline-complete.el)

<comment><USER9> For a few seconds there I thought _the_ Monsanto had a Github account. I was kind of excited to see what OSS they had.

<comment><USER8> My great great great (however many greats) aunt was the namesake for the company. I don't necessarily approve of their practices, and unfortunately I don't get any money out of the deal :(

</comment></comment></comment><comment><USER10> It really kills me to see an otherwise promising terminal with no screen splitting capability, and I did not see splitting mentioned anywhere on their product page.

Fortunately it appears to be a feature under active development, and they address splitting on their blog:

[http://blog.finalterm.org/2013/10/multiple-terminals- final-t...](http://blog.finalterm.org/2013/10/multiple-terminals-final-term- style.html)

The landing page looks great, but I think mentioning screen splitting would be wise.

<comment><USER11> Why not use screen or tmux? I don't think that should be handled by the terminal emulator. Then again, neither should a lot of these features.

<comment><USER10> While trying to think of a reply to this comment I realized that I have no answer, and I should probably just use screen or tmux. Thanks for that.

</comment></comment></comment><comment><USER12> I remember seeing this here: [http://n0where.net/final- term/](http://n0where.net/final-term/)

While the idea looks great, it seemed slow to react to my key presses. Maybe they can fix that in the near future. Otherwise I'm probably sticking to xterm.

</comment><comment><USER13> This is really cool.

I haven't evaluated it personally, but I don't think it's up my alley (I use a tiled WM); Vala and GTK make it seem like it's for the Gnome stack, and it also has mouse interactivity. Finalterm might be neat for an Ubuntu box, though.

Are there any comparable terminal emulators that support completion, 24-bit color, are hardware-accelerated, etc? I'd definitely like to replace mine if so.

</comment><comment><USER14> Last time I checked it, it was very buggy and unstable, but current version look much much better.

Unfortunately it's totally unusable for Vim users...

<comment><USER15> > Unfortunately it's totally unusable for Vim users...

How so?

<comment><USER14> It gets totally messed up - I can attach a screenshot if you wish. Maybe it's fault of my vim's config.

</comment></comment></comment><comment><USER16> I'm not sure why people find the need to create these things when they already exist in shells such as zsh.

</comment><comment><USER17> This looks like a cool project but lately I've been really enjoying a Guake terminal([http://guake.org](http://guake.org)) + fish shell([http://fishshell.com](http://fishshell.com)) combo.

</comment><comment><USER18> Been watching Finalterm for a few months - it looks interesting but it's still too unstable to use for production. The risk of it doing the wrong thing when running on a production host is just not worth the potential efficiency gains.

<comment><USER19> Not that I know anything about the software in question but... don't run it on a production host. Or when you're connected to a production host.

99% of your work should be spent on non production hosts. Fire up your old XTerm or whatever when you need to manage a production machine.

I don't really see the problem.

</comment></comment><comment><USER20> suggestion by tabbing in shell is annoying to me. Some commands have popular prefix. It would be better if suggestion is made like the one you did in finalterm (and list most frequent one at the top).

</comment><comment><USER21> Too bad it's not for mac.

<comment><USER22> Keep an eye on this pull request: [https://github.com/p-e-w/finalterm/pull/130](https://github.com/p-e-w/finalterm/pull/130)</comment></comment>


Implement a programming language in 7 lines - <AUTHOR> http://matt.might.net/articles/implementing-a-programming-language/ <comment><USER2> This one is a cheat because read does a lot of the work. I can tolerate treating STDIN/OUT as black boxes because they often are. The Scheme interpreter's functionality is what's custom. The read function is crucial to it. So, it's implementation should be included. That puts this way over 7 lines.

The good news is that I now know where the name Y Combinator comes from. I imagine it will take me a lot longer to wrap my head around that concept, though. Truly weird haha.

<comment><USER3> I do recommend learning the Y Combinator; it's the answer to the problem "How do I have a recursive anonymous function?"

<comment><USER4> Beside the theoretical side of Y, what made it interesting to me was the few tutorials on how one could derive it to stop an infinite expansion, which is a feeling I often get when trying to solve a problem, creates another similar problem only slightly different. Now I stop and try to find how to make bind the tail to the dog's mouth.

</comment></comment></comment><comment><USER5> Implementing a programming language in a few lines has always been done.

Here is an example in prolog of such a meta interpreter.

        interpret(true):- !.
        interpret(GoalA, GoalB):- !,interpret(GoalA),interpret(GoalB).
        interpret(Goal):- clause(Goal, Body), interpret(Body).

</comment><comment><USER6> Worth the read. Matt Might does really interesting things and explains what he does well. His blog is worth checking out.</comment>


Security experts say Chrome 69's 'forced login' feature violates user privacy - sahin-boydas https://techcrunch.com/2018/09/24/security-experts-say-chrome-69s-forced-login-feature-violates-user-privacy/ <comment><AUTHOR> Good timing Google, now that we have the Google-free Chromium variant.

[https://news.ycombinator.com/item?id=18053337](https://news.ycombinator.com/item?id=18053337)</comment>


Please end the "we are pissed because we got rejected posts" - <AUTHOR>

You got rejected by YC.
That may mean that your business idea/model is flawed or you simply do not have one.
It may also mean that you have a great business going but it was not a good fit for the YC portfolio.
Move on, reevaluate, talk to customers and validate your value proposition if it is a good business prove them wrong, if not pivot and keep trucking.
Maybe the next one will be a winner. <comment><USER2> Or you need to work on your pitch because you weren't able to effectively communicate the value proposition.

(Sadly, guilty as charged on that one)</comment>


Show HN: Recreate NASA's Apollo Space Beeps (Quindar Tones) with Web Audio - <AUTHOR> http://outputchannel.com/post/quindar-tones-in-web-audio/ <comment><USER2> Pretty neat! I've heard those beeps a lot but never knew what they were for. Also, is it me, or do the sounds in the example recording sound the same? (frequency-wise?)

<comment><AUTHOR> Thanks! Listening to the recording, I'm reasonably sure I can distinguish the two different frequencies, but there's no denying they sound very similar. They're so close there's less than a semitone between them.

</comment></comment><comment><USER3> The tape recordings of Apollo sound a few dozen Hz lower than the web audio version. Is this because of an inconsistent tape driver?

</comment><comment><USER4> Wow, this really made me realize how crappy the state of web audio is today.

Excellent work otherwise though.

<comment><USER3> Why is it crappy? You create a sine oscillator, connect it to output, and call .play(). Or are you referring to issues not addressed in this article?

<comment><USER4> The output quality is terrible, very crackly (on chrome and firefox). I don't see any reason for that in the code so I assume it's just due to the way web audio is in general. I can understand why it isn't used more often.

<comment><USER5> it sounds your processor can't keep up with your sound buffer. you can start Google chrome up with --audio-buffer-size=2048 to increase it

All audio technologies have buffer issues, it's a pretty basic problem. it's not unique to web audio.

<comment><USER6> > it sounds your processor can't keep up with your sound buffer

Is this 1994? We've been playing fancy, high definition, multi-channel audio on our computers for decades now, and it's been ages since I've seen it impact the CPU.

> All audio technologies have buffer issues, it's a pretty basic problem. it's > not unique to web audio.

I would say that in 2015, for most people it _is_ unique to web audio. Generally speaking when someone wants to play audio on their computer it just works.

<comment><USER3> This is because "fancy, high definition, multi-channel audio" has >40ms latency, so you cannot compare it with Web Audio, which is meant to be real time like in digital music settings, where often <8ms is required. You clearly do not understand the problem you are claiming to be simple.

<comment><USER7> How can web audio be realtime when it doesn't have a realtime scheduler? That may be driving this problem: the browser's javascript engine not being scheduled in time by the underlying operating system.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Is there a download available for offline listening?

<comment><AUTHOR> Hello, post author here, were you thinking about downloading the NASA sound clip or the web audio recreation?

<comment><USER8> Either but originally I meant the recreation.

<comment><AUTHOR> Ok, no problem, I've uploaded both audio files to my SoundCloud account ([https://soundcloud.com/outputchannel](https://soundcloud.com/outputchannel)) and you can download them by clicking the download button beneath the waveform display.

<comment><USER8> Neat and thanks.</comment></comment></comment></comment></comment>


Faculty Advisory Council Memorandum on Journal Pricing - <AUTHOR> http://isites.harvard.edu/icb/icb.do?keyword=k77982&tabgroupid=icb.tabgroup143448 <comment><USER2> > Harvard's annual cost for journals from these providers now approaches > $3.75M. In 2010, the comparable amount accounted for more than 20% of all > periodical subscription costs and just under 10% of all collection costs for > everything the Library acquires.

I've been to a couple of schools where the costs of journals makes many valuable resources and new research simply inaccessible. Other universities pale in comparison to Harvard's regular financial figures and of course their longstanding reputation, and yet their influence could go a long way in helping all the other guys catch up. If closed-access journals are hurting Harvard's library, imagine what it's like for a ~500 student engineering school that's already strapped for cash on all other fronts.</comment>


Casanova: Man of the World - <AUTHOR> http://www.the-tls.co.uk/articles/public/man-of-the-world/ <comment><USER2> I read Casanova's memoirs in English translation, and the translation to my native language (the original is in French). I cannot recommend it enough. If you are interested, do NOT take an abridged publication (of which there are many), but the complete one: [https://www.amazon.com/History-My-Life- Vols-1-2/dp/080185662...](https://www.amazon.com/History-My-Life- Vols-1-2/dp/0801856620) (the link is to vols 1-2 of 12).

It's about 3,000 pages written in a great style - very modern and fast paced. Not only Casanova was far from (only) a womanizer that the popular culture made of him, he was a man so ahead of it's time, that his memoirs are so full of wisdom that he would be an enlightened elite even today. He was a businessman, philosopher, con-man, adventurist, spy, politician, and, yes, a womanizer. But, above all this, a man with a very good reflection and understanding of the world, which we can enjoy reading his memoirs.

<comment><USER3> It looks like the Gutenberg Project's [0] English copy is the Arthur Machen translation from Jean Laforgue's hatchet job.

Still, it seems a wee bit ludicrous to be paying money for a work created over 300 years ago. Even the translations are still only derived works.

[0] [https://www.gutenberg.org/ebooks/2981](https://www.gutenberg.org/ebooks/2981)

<comment><USER2> The Gutenberg version is abridged, and the translation is also much worse than Trask. I do not consider $20 too much for a 800 page 2-volume book, very well typeset, with plenty of notes, and huge scholarly work put in it to make it accessible to the modern reader.

</comment></comment></comment><comment><USER4> Here's the thee volume collection that was discussed in the article:

[http://www.gallimard.fr/Catalogue/GALLIMARD/Bibliotheque- de-...](http://www.gallimard.fr/Catalogue/GALLIMARD/Bibliotheque-de-la- Pleiade/Histoire-de-ma-vie)

At more than 4000 pages (in French), it's rather daunting.

There was an exhibit at the BnF several years ago celebrating the acquisition of the manuscript:

[http://www.bnf.fr/en/cultural_events/anx_exhibitions/f.casan...](http://www.bnf.fr/en/cultural_events/anx_exhibitions/f.casanova_eng.html)

You can see some of it here:

[http://expositions.bnf.fr/casanova/](http://expositions.bnf.fr/casanova/)</comment>


Gmail login security alert messages now embed an ad for Google Chrome - <AUTHOR> https://www.reddit.com/r/MicrosoftEdge/comments/gvfhj8/gmail_login_security_alert_messages_now_embed_an/ <comment><USER2> Straight out of Google's anti-competitive playbook. [1]

Something I've noticed as well is that logging in on Firefox to Google websites causes extremely regular logouts to occur, and re-prompting for password. On Chrome, this virtually never happens.

[1] [https://www.computerworld.com/article/3389882/former- mozilla...](https://www.computerworld.com/article/3389882/former-mozilla-exec- alleges-google-torpedoed-firefox-with-oops-excuses.html)</comment>


Jipi and the Paranoid Chip, by Neal Stephenson - <AUTHOR> http://www.vanemden.com/books/neals/jipi.html

<comment><AUTHOR> The disgruntled-employee-remote-disables-cars story made me think of this Stephenson short story from 1997. It's just a few more iterations of technology, crime, and absurdity beyond the Austin incident.</comment>


SCO ORDER Granting IBM'S Motion for Partial Summary Judgment [pdf] - <AUTHOR> http://www.groklaw.net/pdf4/IBM-1159.pdf <comment><USER2> I have a daughter born is 2003 who is in Middle School now. It is crazy to me that this is still going on, especially considering the weakness of new-SCO's claims.

EDIT: I also really like the fact that the 2004 "Utah Unfair Competition" law (Yarro's Law) cannot be applied retroactively.

</comment><comment><USER3> If only AT&T had come out with true System V/386 a few years earlier, SCO never would have gained traction.

</comment><comment><AUTHOR> "This order addresses SCO's unfair competition claim, granting summary judgment on that claim in favor of IBM."

</comment><comment><USER4> I see this is a new document. I miss Pamela and her interesting point of view though.

</comment><comment><USER5> SCO? The undead walk the Earth!

</comment><comment><USER6> Was I the only one to check the date at the top?</comment>


Analysis of SSD Reliability during power outages - <AUTHOR> http://lkcl.net/reports/ssd_analysis.html <comment><USER3> The author of this study submitted it to Slashdot with the following summary: "After the reports on SSD reliability and after experiencing a costly 50% failure rate on over 200 remote-deployed OCZ Vertex SSDs, a degree of paranoia set in where I work. I was asked to carry out SSD analysis with some very specific criteria: budget below £100, size greater than 16Gbytes and Power- loss protection mandatory. This was almost an impossible task: after months of searching the shortlist was very short indeed. There was only one drive that survived the torturing: the Intel S3500. After more than 6,500 power-cycles over several days of heavy sustained random writes, not a single byte of data was lost. Crucial M4: failed. Toshiba THNSNH060GCS: failed. Innodisk 3MP SATA Slim: failed. OCZ: failed hard. Only the end-of-lifed Intel 320 and its newer replacement, the S3500, survived unscathed. The conclusion: if you care about data even when power could be unreliable, only buy Intel SSDs."

Source: [http://hardware.slashdot.org/story/13/12/27/208249/power- los...](http://hardware.slashdot.org/story/13/12/27/208249/power-loss- protected-ssds-tested-only-intel-s3500-passes)

<comment><USER4> Did he do any control studies with spinning disks?

I have my doubts that many of them would survive thousands of power cycles per day.

<comment><USER5> There's probably not much of anything that would survive that many power cycles in a day.

The test is pretty pointless.

<comment><USER6> What if I have thousands of disks deployed, and I suffer a single power loss? What are the chances that at least one disk will contain corrupt data after such an event?

Instead of buying thousands of disks to test this scenario, one reasonable shortcut might be to repeatedly test a single disk.

Even a spinning disk can handle a few thousand power cycles in its lifetime, surely?

<comment><USER5> On power up, there's a pretty big spike in power usage as the controller gets its shit together. Normally, this is not an issue, since the SSD housing simply absorbs the heat and then goes about its business. The same holds true for spindle drives.

What this guy did was test the drives in a manner they weren't designed for. Sure, I can drop Corvettes off a 20 story building, then bitch about the results, but that wouldn't change the fact that my test was flawed from the onset.

All he did was subject something to an environment is wasn't designed for.

Sure, I can drop a Corvette from a 20 story building, but there's nothing to be gained when the crumple zone is packed into the tail lights.

<comment><USER7> Hu? Where should that spike in power usage come from?

<comment><USER8> It comes from the decoupling/filter capacitors used in the DC power circuit. When the power is turned on after a sufficiently long time these capacitors are all uncharged and appear as "shorts" to the power source thus drawing large amounts of current. This initial surge current drops off as the capacitors get charged.

<comment><USER7> Filter capacitors producing excessive heat due to inrush current? That would be bad filter capacitors indeed ;-)

The claim was that an SSD somehow converted more electric energy into heat immediately after power-up which would damage the SSD, so real consumption, not just a current peak that goes into storage for later consumption. Normal- ESR electrolytics might have a heat problem when used at a few kHz in switching applications, but certainly not at 0.1 Hz.

<comment><USER9> It's long been standard practice with tantalum filter capacitors to feed them through an inductor or at least a resistor to prevent inrush current failures. That, and/or you derate the crap out of them when you design the board. Newer drives are probably using multilayer ceramics that can put up with just about any abuse including inrush.

Executive summary: powerup stress is not an issue unless the drive was designed by a moron.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> What I find rather annoying is that manufacturers/marketers rarely state whether or not an SSD has a supercapacitor or not. Here have been my finding:

\- OCZ Vertex 4 SSD does (but this is not advertised)

\- OCZ Vertex 3 does not, Vertex 3 Pro does

\- Ditto for Vertex 2 / Vertex 2 Pro

\- OCZ Deneva(2) R does, other OCZ Deneva/Deneva 2 do not -- and in the case of Deneva 2 R this is advertized

\- Intel 320 does (but is only sata II), but this is not advertised at all

\- Intel 520/530 does not

\- Intel 330/335: unclear

\- Intel S3700/S3500: does and this is advertised

Background: I was looking for an SSD to use for a ZFS intent log ("ZIL" \-- ZFS's write ahead log) -- my requirements were a sandforce controller (or equivalent) and toggle NAND (so that I could use the same disk for both ZFS cache and the ZIL), and a supercap. This was surprisingly hard to find.

What I'd like to see is:

1) Data on which SSDs have supercap

2) Data on which SSDs actually honour cache flush request (then a UPS + forcing a cache flush request upon power failure + redundant power supplies/multiple replicas in a distributed system) would suffice.

3) Best yet: have an API for for check whether or not an SSD has a supercap, whether or not the supercap still holds charge, and policy for honouring cache flush requests. Let the OS decide based on a policy I set.

If you are a consumer, the practical recommendation is not very different from the practical recommendation I'd give to anyone using spinning disks: RAID1/1+0/RAIDZ(-2) (with SSDs coming from different patches so that they do not wear out at the same time), UPS (for power outages), backups (against yourself and against power supply failures).

For production: obviously use a UPS, put the WAL of your database on an SSD with a supercap, make sure that your database fsync()'s the WAL at a reasonable interval (on every transaction is probably unreasonable, but so is once an hour), _and_ use a distributed system that replicates the WAL. If using a distributed system with (semi-)synchronous WAL replication is not an option and losing incremental data is not acceptable, use redundant power supplies.

<comment><USER11> > If using a distributed system with (semi-)synchronous WAL replication is not > an option and losing incremental data is not acceptable, use redundant power > supplies.

Also be sure to plug each redundant power supply into a separate UPS, and avoid equipment that has redundant power supplies on a single feed. UPS failures are a bear.

<comment><USER12> And also make sure no UPS is ever loaded over ~40%, so when one of the pair fails the other can handle the full load. And always set them up in isolated pairs, with no equipment plugged into a pair member and a non-member, to prevent cascading failures.

</comment></comment></comment><comment><USER13> Terrible title, terrible science, terrible conclusion.

Spoiler: He only tested these five drives, only Intel survived, so if they are your candidates, apply his conclusion:

        Crucial M4
        Toshiba THNSNH060GCS 60gb
        Innodisk 3MP Sata Slim
        OCZ Vertex 32gb
        Intel 320 and S3500

Notably missing is the Intel runner-up Samsung and probably others i'm not aware of, as well as other models.

<comment><USER14> The author mentions that he only evaluated drives that have some form of power loss protection - doing some quick searching around, I couldn't find any Samsung drives in the given price range that claimed to have that.

Did I miss an appropriate Samsung drive in my quick searches? Or is there reason to suspect that a Samsung drive that doesn't claim to have power loss protection would nonetheless handle this case better than the non-Intel drives that did make that claim? Because if not, then I don't think not evaluating Samsung drives compromises the results in any way.

<comment><USER15> The Samsung SM843T has power loss protection, among other things, and is priced really competitively to the Intel S3500.

</comment></comment></comment><comment><USER6> Why must SSDs have "power loss protection" in the form of a battery or supercapacitors to finish writes? Can they not simply cache writes but not falsely claim to the OS that they aren't fully written yet, and do some internal housekeeping (journal-like) for recovery? Does SATA/SCSI support the concept of "sync", or would allowing the disk to fall behind without deceiving the OS kill performance in some way?

<comment><USER16> Inside the SSD are flash memory chips. It takes a relatively long time (typically 10mSec) to tunnel the charge that changes a '1' bit (the erased state) to a '0' bit. If the power goes away during that programming time, the result in indeterminate. Not just bad, but bad in a potentially unknown way.

The worst case, which I've experienced with direct writing to flash chips, is that a totally unexpected flash location is corrupted. My guess was that the CPU started the write cycle just as power was lost, the CPU glitched the address lines as it was losing its brains, and the flash corrupted a random location.

Very, very bad.

If a power loss causes the flash to scribble on the wrong SSD location (e.g. the tables that keep track of good and bad blocks), the SSD "dies".

<comment><USER7> That's still no reason why you would need "power loss protection", in the sense of energy storage. What is needed is proper brown-out detection and properly set up reset circuitry so that the write gets aborted before lines start glitching (that is to say: energy needs to be dumped so it can not cause any damage once the CPU starts losing its brains).

That the storage location where a write was in progress is indeterminate afterwards shouldn't matter - between the time that some software initiates a write() and the time an fsync() on the same file returns, there is no guarantee what the written location will contain after a power failure, and if your software relies on the value in any way whatsoever, your software is broken.

<comment><USER16> Yes there is. The amount of hold up time is specified in the flash manufacturer's data sheets.

The problem is that the flash has an internal state machine that performs the charge tunneling as an iterative process: it tunnels some charge, checks the level on the floating gate, and repeats as necessary. If the power to the flash chip goes away or glitches during this internal programming process, the flash write fails in indeterminate and sometimes very unexpected ways.

<comment><USER7> Well, yeah, of course, you need some limit on the speed at which the power supply voltage drops, I was talking about the "flushing the cache" kind of "power loss protection", not claiming that pulling a circuit into the reset state could happen without latency ;-)

So, yes, you of course have to have some low pass in the power supply rail to make sure that power drops no faster than you can handle shutting down the circuit in an orderly fashion - all I am saying is that there is no need to guarantee that a read of a region where a yet-unacknowledged write was happening when the power supply failed returns non-random data, so it is perfectly fine to interrupt the programming process and leave cells where user data is stored in an indeterminate state. It's not OK to glitch address lines while programming is still going on, of course :-)

<comment><USER12> The "super capacitors" (almost nobody uses actual super capacitors after early models discovered that super capacitor lifetime at server temperature was inadequate) are just a low-pass filter - they usually only keep the drive online for a couple dozen milliseconds after main power goes down.

Most reasonable SSDs do not write cache at all, but thanks to the wear- leveling issues, they need to have a sector-mapping table to keep track of where each sector actually lives. That table takes many, many updates, and since it's usually stored in some form of a tree, it's expensive to save to media which does not support directly overwriting data (IE NAND, which requires a relatively long erase operation to become writable.) This table is typically what is lost during power events, and it is not usually written out when you sync a write.

So what happens is you write, sync, get an ack, lose power, reboot, and magically that sync'd data is either corrupt, or, even worse, it's regained the value it had before your last write, with no indication that there is a problem. This can cause some extremely interesting bugs.

</comment></comment></comment></comment></comment></comment><comment><USER17> In general, Intel is a "class act".

A few years ago my employer worked with Intel on a joint IC project (not Flash). My overall impression was that Intel engineers were meticulous and smart. This internal culture probably applies to many different Intel divisions. So I'm not surprised that Intel SSDs are reliable.

<comment><USER18> I had an old Intel G1 SSD die during a power outage that went a little too long for my cheap UPS. Of course one event in uncontrolled conditions isn't meaningful. I still bought another Intel SSD because every Intel device I've owned was top notch.

</comment></comment><comment><USER19> It is good to see someone actually testing the power-loss protection claims made by manufacturers.

However, uninterruptible power supplies are usually a better investment than power-loss resilient storage media. The problem is, even if your SSD or hard drive behaves perfectly during a power-loss scenario, your server software may not. Almost every database, filesystem, etc. includes some amount of buffering in memory, because sending every write directly to disk is a performance killer.

Also, the best-case scenario with power-loss resilient media is that your system shuts down cleanly. With a UPS, you can keep the system up until diesel generators kick in, a much better endgame for everybody.

I once asked someone who had worked in the hard drive business what a hard drive would do when power was lost. "Try to park the drive head immediately before it crashes on to the platter," was the immediate response. Trying to flush the cache contents wasn't even remotely on his mind. In practice, losing power while writing to a hard disk does often corrupt sectors-- even sectors that weren't being written to during the power loss incident.

It's good to see that (some) SSDs are at least trying to flush the cache, but you really have to ask yourself: can you really trust the manufacturer's claims? And if you can trust them, can you trust your specific software configuration under this unusual scenario? I think it's just too long a frontier to guard with too few sheriffs. Dude, you're getting a UPS.

<comment><USER20> The problem of SSDs, as others have mentioned here, is that writing during power loss can have more important effects: it can overwrite firmware bits or mapping bits. In the first case the whole SSD is dead, in the second case, much more data than the one currently written is lost.

<comment><USER19> My impression was that even cheap SSDs should have ultracapacitors or small batteries that allow them to survive a power loss event without being bricked. Of course, the stuff in the cache is lost at that point, but that's no worse than the situation with a hard drive. Also, as I mentioned, "much more data than the one currently written" can be lost when power fails in a hard drive. So the situation is really no different, unless the manufacturer screwed up.

<comment><USER12> Spinning disks have enough rotational momentum to keep spinning (which keeps the heads floating) for long enough to park the heads via a weak spring, with zero electricity. A head crash doesn't corrupt a few sectors so much as cause catastrphic damage - that disk would likely never read another sector again. Properly-functionioning spinning disks haven't had issues with random data loss on power failure for at least a decade now.

And your impression of cheap SSDs is dead, flat wrong. They're cheap - <USER2> unnecessary part is left off to save money. And we've all (all of us who pay attention) known for years that SSDs (even some with power fail protection) will lose data (even bits which it has reported to have sync'd) on power loss.

A UPS is not enough, if you need to have your data, you need multiple layers of backup, and an SSD must have some method of writing out voltatile data (mostly internal metadata, not cache) before it shuts down.

<comment><USER19> _Properly-functionioning spinning disks haven 't had issues with random data loss on power failure for at least a decade now._

Source?

 _And your impression of cheap SSDs is dead, flat wrong. They 're cheap - every unnecessary part is left off to save money. And we've all (all of us who pay attention) known for years that SSDs (even some with power fail protection) will lose data (even bits which it has reported to have sync'd) on power loss._

I think you misread what I wrote. I wrote that I would expect cheap SSDs to "survive a power loss event without being bricked." I did not write that they would retain all data, which seems to be what you are arguing against.

I have heard rumors that some cheap SSDs do not honor the SATA SYNC command. Unfortunately I do not have a reliable source for this theory, do you?

 _A UPS is not enough, if you need to have your data, you need multiple layers of backup, and an SSD must have some method of writing out voltatile data (mostly internal metadata, not cache) before it shuts down._

I don't think anyone is arguing that a UPS is a replacement for backups.

</comment></comment></comment></comment></comment><comment><USER9> It's long been conventional wisdom that you'd have to be crazy to buy anything but Intel when it comes to SSDs. This study isn't too surprising, in that regard.

<comment><USER21> I've never had any issues with Samsung or Kingston SSDs. The 840 EVO series and Pro series are the best performance for the money you can get.

<comment><USER22> Kingston used to rebrand Intel SSDs (same controller, just a smaller amouht of flash) for the "value market", so not surprising they were good.

</comment></comment></comment><comment><USER23> The Crucial M4 had no power-loss protection. The newer model (M500) does and would be a more interesting test.

</comment><comment><USER24> As many have pointed out: There are many applications where power cycling is extremely rare and also not a big deal.

1\. Laptops have a built in UPS incase they're unplugged 2\. Servers should have UPS incase they're unplugged or small outtages 3\. Desktop drives shouldnt be trusted as the only copy. Though I imagine the data corruption would propagate to backups?

<comment><USER25> Laptops are vulnerable to this problem, if you don't know about it.

On my notebook I've lost a partition with Crucial M4. OS hanged, I did a hard reset and after reboot discovered data loss.

<comment><USER22> I got an Intel SSD (G1 80GB) in my laptop to do OS development (drivers), which incidentally is a use case that requires _lots_ of hard resets. Never had any problems with it, and it's been through dozens if not hundreds of hard reset cycles. In fact I got the SSD specifically because I didn't want to be spinning up/down a disk that much, and laptops tend not to have reset buttons (they really need one, IMHO.)

<comment><USER26> Those tend to be very safe hard resets from a drive perspective. First of all, you're not losing power, so even though there's a reset, the drive firmware maintained power. Secondly, I'm guessing you see far more hard locks and manual resets than random, sudden reboots - and if that's the case, then the drive firmware probably didn't even notice. By the time you press reset, an eternity has passed and any ongoing activities have long finished.

I can imagine a software-fault causing drive-level problems if the drive has a large cache and a broken fsync, or if the bios does some kind of unsafe hard drive reset _very_ quickly after starting.

In any case, it's probably more likely to be file-system level reliability you'd need in the face of driver instability.

</comment></comment></comment></comment><comment><USER27> Would be nice to see this test for Samsung drivers which should be closer to Intel's quality.

</comment><comment><USER28> Where are all the dates in this article? When were these drives purchased/manufactured?

Some (all?) of the 320 drives (pre-2012) had a bug that basically bricked the drive after power loss. See more on google at '8mb bug' and this Intel thread [1]. The existence of this bug, the well-known reliability reputation of Intel, and the sheer size of this sampling number (N=500?) make the distinction in time important. Were all these drives more recent, or is the Intel failure rate, even with buggy firmware, still ~.5% ?

> _However, given that deployment of over 500 Intel 320 SSDs has been carried > out and only 3 failures observed over several years, it would be reasonable > to conclude that Intel S3500s could be trusted long-term as well_

[1] [https://communities.intel.com/message/133499](https://communities.intel.com/message/133499)

<comment><USER12> That bug was not as prominent as you make it sound - I was unable to reproduce the issue (or any other issue) across tens of thousands of reboots on the buggy firmware (running Linux and a quality SAS HBA.) The circumstances to produce a corruption were much more rare than simply "power loss," and many users with "safe" platforms could easily expect 0.5% AFR.

Even with "risky" OS and controller combinations, there was an element of probability involved, so most (probably almost all) power loss events would not hit the bug.

Plus the SSD320 was difficult to obtain back then, and reasonable operators upgraded to the firmware version with this bug fixed, so only a small percentage of the units were ever even vulnerable.

</comment></comment><comment><USER29> I really hate when people are sloppy with notation.

20GB = Twenty Gigabytes

NOT

20gb = Twenty gram bits

and:

20MB/s = Twenty Megabytes per second

NOT

20mbytes/sec = Twenty milli-bytes per second ( If you got you B's and b's correct about you would need to write out "bytes" )

<comment><USER30> If you want to be really pedantic, differentiate SI giga/megabytes as GB/MB and "binary" gibi/mebibytes as GiB/MiB

<comment><USER31> This is actually a major annoyance in some fields - Xilinx for example likes to use GB to represent 1024^3 for storage on FPGAs while HDD manufacturers like to use 1000^3. IMHO [ZYEPGMK]?iB is the way to go to end this non-sense.

<comment><USER32> I'm old enough to remember what MB and GB meant before sleazy marketers started to redefine them. They should have been sued for deceptive advertising. Instead the computer press of the time was spineless, because guess who paid for the ads.

So I refuse to be a wuss and use MiB and GiB.

(Also, get off my lawn.)

<comment><USER33> Since mega- and giga- haf well-established meanings as prefixes to measures, and the original common usages of MB and GB were inconsistent with those meanings, I prefer MiB and GiB for those uses, _even though_ it took marketers using the correct versions for devious reasons to get terms popularized that distinguished the base-2 prefixes from the close-but-not-the-same base-10 prefixes.

</comment></comment></comment></comment></comment><comment><USER34> I read through the report a couple times, but couldn't figure out how many drives he had in each test batch. I'm a little concerned that he just took a single drive, and hoped it would effectively represent the entire model.

Clearly there will be some variability - and he may have gotten a good, or bad drive - and a larger population of SSDs might behave quite differently in terms of reliability.

</comment><comment><USER35> My brand new crucial M4 ssd stopped working after few days. To be precise, the system would show the drive for about 2 minutes after each reboot then after that the drive would not show up anywhere at all. Whether you try in windows explorer or device manager or any where else. I contacted their support team but they never replied.

<comment><USER36> Crucial reportedly has better support than that. My M4 would crash after 21 minutes (exactly-ish) over a year continuous service (100+GB/day), the latest firmware fixed the problem and increased speeds. The USB firmware updater was a god send compared to the vile vile hoops I had to jump through to upgrade my OCZ drive.

I currently have an Samsung 840 1TB and has been rock solid, it replaced a 250GB intel 320. Afaik Samsung is the only manufacturer that owns the whole supply chain, flash + controller.

<comment><USER37> Toshiba also do both NAND and controllers.

</comment></comment></comment><comment><USER38> I have a Viking VRFS21100GBCNS which supposedly features Super Capacitor power failure protection. Manufacturer PDF - [https://docs.google.com/file/d/0B9JXvW974L4JUkxJMGJIUjNtRDg/...](https://docs.google.com/file/d/0B9JXvW974L4JUkxJMGJIUjNtRDg/edit?usp=sharing)

</comment><comment><USER39> I've found that the Intel 320 drives are much than the Samsung 830/840, Crucial M500 when setup for sync writes on Linux (as a NFS server) - with the Intel drives being about 4x faster than the others in my testing.

</comment><comment><USER40> Would be interesting to know how Samsung SSDs, very popular now and used in Apple's line, fare on that test.</comment>


Passion is the new workplace requirement – and one that should be resisted - <AUTHOR> https://www.jacobinmag.com/2015/08/do-what-you-love-miya-tokumitsu-work-creative-passion/

<comment><USER2> Bring the European working time directive regulations to the US. No person shall work more than 48 hours per week averaged over a 6 week period.

These regulations allow some crunch mode projects to occur, but not go on forever.

I'm not optimistic that we will ever see this in the US though. The US chamber of commerce would fight it tooth and nail.</comment>


SCOTUS:  Are sawed-off shotguns are inherently violent? - <AUTHOR> http://www.scotusblog.com/2014/11/argument-analysis-justices-unhappily-consider-whether-sawed-off-shotguns-are-inherently-violent/

<comment><USER2> Absolutely. As with any gun, it is a tool with one purpose: killing.

The threat is the presence of the gun, not the waving it about and yelling. That's use (or misuse, really).</comment>


Ask HN: Am I right there's no place for C++ developers in the startup world? - <AUTHOR> I just browsed 100+ startup jobs on AngelList, found 0 C++  positions. I filtered out hundreds of jobs for Ruby, iOS, PHP, Python, and about a million for Javascript.<p>I live in London, maybe this is just a UK thing? or is C++ dead in the startup world. <comment><USER2> Startups aren't about code, they're mostly not even about actual products, it's just a lot of idiots running around trying to get funding using the latest new buzzwords and shiny new tech that looks good on their resume.

If you have a strong engineering background especially in C++, you'll be just fine.

</comment><comment><USER3> We use C++ heavily at Accompany. The CTO co-founder was one of the chief engineers at Google Analytics where most of the highly scaled systems were written in C++. Perhaps you could try investigating startups where the founders have a Google engineering pedigree?

</comment><comment><USER4> Startups are about flexibility and time to market. Not two of C++'s best qualities. Obviously, a generalization and an opinion, but I would argue it fits the facts.

</comment><comment><USER5> Keep in mind that many companies will hire you even if you don't know the language they code in, on the assumption you'll easily learn new languages.

I've mostly done Python in past, and C++ long ago, but at current job I've also been writing Java, Javascript, Ruby and Kotlin.

</comment><comment><USER6> C++ is one of the most powerful and ubiquitous languages in software engineering but keep in mind that you wont find much C++ in webdev because Python,Ruby,PHP, etc are at a higher level of abstraction and their interpreter was likely written in C.

</comment><comment><USER7> C++ is dead there (and in many other places). The closest thing is Golang and Swift (and perhaps Rust). That doesn't mean there are no C++ jobs, but you'd need to look for them elsewhere. Why is that surprising?

<comment><AUTHOR> I don't see why C++ should be dead in startup world. With the emerging of AI, machine learning and fintech, you would think there's plenty of opportunity for using C++. I know there are plenty of C++ jobs in google/facebook, banks(i work there), but still, 0 startup on AngelList is surprising, I was thinking it's at least as (un)popular as java and C#.

I even found a Haskell shop there.

<comment><USER7> C++ might be used. By calling it from Python or Java or Haskell, which will allow you to iterate 10 times faster than using it directly. Startups are trying to prove that their business idea works. This idea usually involves using existing technology to solve some business problems, rarely it requires development of lower layers of the stack. This may come later - or may come never. You can easily use machine learning without knowing what C++ is.

</comment></comment></comment><comment><USER8> most operating systems, deep learning frameworks, computer graphics systems are in c++.

the hottest 3 areas in tech, vr, deep learning/ai and self-driving cars, need c++ intensively.

c++ programmers are at the tip of the programmer pyramid.

<comment><AUTHOR> I agree, but most of the things you mentioned are done by big companies like google, most startups labeled with deep learning/ai are using python or javascript.

<comment><USER8> that's why I said it's the tip of the pyramid.

</comment></comment></comment><comment><USER9> nowadays C/C++ is mostly something for:

* low-level infrastructure like databases

* desktop applications

* some embedded work

The vast majority of startups isn't doing anything like that, then you have to subtract those that do it using other technologies and there is not much left. And in many cases it's going to be part of a role, not a pure C++ position.

Once they grow more and more companies go into low-level things, but for your typical young start-up it's a waste of resources if it isn't part of the core product.

<comment><USER10> Aren't most games made with C/C++ as well?

<comment><USER11> Yes, C++ is the language of video games. Often they use a different language for game scripting (game logic and a lot of AI), but it's mostly C++ as far as the core parts go; engine systems, renderer, etc. While most tend to use third party libraries for sound and physics, they too are mostly written in C++.

</comment></comment></comment><comment><USER12> I've seen some demand for C++ in job advertisements in Germany and the Netherlands for startups. These startups tend to be doing things with devices of various kinds and need developers to write software for them. I've seen a few that are also using C++ for high-performance, real-time sort of software that isn't device-related.

So I'd say that while it's less common to see startups doing anything with C++, they certainly do exist.

</comment><comment><USER13> People use whatever lets thdm quickly put together applications. Most that know C++ probably dont hear much on C++ frameworks for web. Knowing about those could help. Here's one Ive seen a few times in comments although not tried:

[http://cppcms.com/wikipp/en/page/main](http://cppcms.com/wikipp/en/page/main)

</comment><comment><USER11> [https://news.ycombinator.com/item?id=12846216](https://news.ycombinator.com/item?id=12846216)

Fair amount of C++ here.

</comment><comment><USER14> I don't agree with that statement.

At SolidFire our core product is written in C++. We were bought by NetApp and are no longer a startup, though.

It's not a trendy language, but there are startups using it.

</comment><comment><USER15> We use C++ heavily in the startups I am CTO for. Recommended.

<comment><USER16> Yep, I am the CTO for 3 very successful startups. This has been my experience as well.

<comment><AUTHOR> Can I ask what's the name of your company/product?

<comment><USER15> Uh, he's trolling...

</comment></comment></comment></comment><comment><USER17> If you like systems programming, you should look for startups using Rust or Go. I think they are more popular in the startup scene right now.

</comment><comment><USER18> Is C++ the only language you code in?

<comment><AUTHOR> No, but I want to code in C++

<comment><USER11> Most experienced C++ programmers just put up with it, they really want to be using something else, but have lacked, and continue to lack options.

If you are experienced, however, it's not difficult to find work. Video games. Space, aerospace, automotive, and military industry. IoT. Wherever you can imagine heavily constrained embedded systems. Or in the case of games, where you have 16.67 milliseconds to render a frame.</comment></comment></comment>


I've used Amazon's text-to-speech API to create voice-over for my video - <AUTHOR> https://www.youtube.com/watch?v=dGx-IVI3Cg8 <comment><AUTHOR> I have trouble speaking, I don't really like my voice and accent, so I decided to try using Amazon Polly and see if it helps me to create a watchable video.

It ended up working surprisingly well. I have used reveal.js to generate slides, and PhantomJS to automatically render them into images. Then I've edited them together using Kdenlive. The entire process of turning my article into a video took a couple of hours.

I think it turned out pretty cool and I figured I'd share it with you guys. It's imperfect, but it's really impressive how far text-to-speech engines have come.

At this point it still probably makes more sense to spend $10-$20 on fiverr to create a professional voiceover, but I can totally see how in the near future it would be possible to automatically generate high quality videos.

I think I'm onto something here, maybe I'll make a SaaS tool out of this. Very cool stuff.

<comment><USER2> Fascinating. Is the api simply text-in to audio-out, or can the text be marked up for composable with something like SSML? The ability to insert appropriate paused for pacing, change intonation, etc would be very useful.

<comment><USER2> Oh wow, they go further than SSML, with visemes and their phoneme maps as well. [0] It's a shame there doesn't seem to be a quality IDE for such things.

[0] [http://docs.aws.amazon.com/polly/latest/dg/speechmarks.html](http://docs.aws.amazon.com/polly/latest/dg/speechmarks.html)</comment></comment></comment>