Rules for Work: The Zaarly Employee Handbook - <AUTHOR> http://handbook.zaarly.com/ <comment><USER4> I like this as a document.

One thing to remember though: an Employee Handbook has legal status. It's usually the primary vector that companies use to establish policies. For instance, the Zaarly handbook doesn't mention discrimination at all (except to tell employees to expect the men to use the women's restroom --- w.t.f.?!).

If you're going to do something like this --- and I'm not saying you shouldn't --- have a button-down version as well. It should make clear that employees are exempt from overtime, that you don't tolerate discrimination, that employment is at-will, when re-hired employees are considered formally a "re- hire" vs. "LOA" (so their benefits clock doesn't reset), and any expectations you have about client-facing conduct or not rm'ing the production servers, so that in a dispute, you can point to the document that spells stuff out.

The other thing to remember is that you'll occasionally be providing this to candidate employees during your hiring process, and again, there are formalities that you want to make clear.

I'm rewriting our handbook right now and targeting something in between this and the standard HR issue (actually, I'm targeting something more along the lines of Valve's guide, which I think is fantastic). It's tricky to get the tone right. One place I am taking advantage of a direct, common-sense tone is our anti-harassment and anti-discrimination policy stuff, where I can write forcefully and directly and not put off anyone I'd actually want to work with.

<comment><USER5> _an Employee Handbook has legal status_

\-- I'd be wary of this generalization. It is more the opposite. If that makes sense.

<comment><USER6> The original statement is _generally_ correct. Employee handbooks don't have contractual status (i.e. they can be amended at the company's discretion) but do have legal status insofar as employee's will be expected and, in most cases be contractually bound, to abide by the terms of the handbook.

<comment><USER7> It can bind employers, too. In most states, the answer to "what happens with unclaimed vacation pay if I quit?" is "go see what it says in the employee handbook."

</comment></comment></comment></comment><comment><USER8> I think this misses the point of an employee handbook completely. Its meant for when things go wrong... employees are not looking at any company handbook on a day to day basis to figure out how the company runs and how they should act. They only crack it open when shit hits the fan and they need to know what to do...

\- Think one of your co-workers is not performing up to par - might want to consult the employee handbook

\- Think you might get laid off - might want to consult the employee handbook

\- Wondering how much time you can take off - might want to consult the employee handbook

Employee handbooks are stuffy, boring and read like a dictionary. It is essentially a very light contract between the employer and employee - <USER2> a contract about how there basically are no rules probably makes everyone feel like they are forward thinking but helps very little. Here are some tangible examples...

\- There is no rule on vacation so my coworker "John" takes a lot of vacation. Hes pretty responsible about it but sometimes he's out and we really do need him - its begun to frustrate me a little. Is he about to be fired or can I do this too - Im doing a ton of work but would like to go to Europe for 6 weeks? (The problem here is that there is a very real limit on vacation - the limit is a magical number/level of output in the founders/investors/manager's heads and may depend on their mood day to day. What one's expectation of acceptable time off may not match anothers.)

\- I like to wear unqiue clothes but now a couple coworkers have started to tease me in ways that are really starting to bother me. (As a side note I think this was part of what occurred with that Kixeye debacle while it was a vary extreme case.) Lets see what the handbook says... oh.

\- "Tim" produces like crazy - the problem is that he is not big on communication and doesnt want to be apart of our meetings. Hes doing great work - its just not integrating with the direction everyone else is going.

It probably sounds like Im advocating for the other extreme where every detail is mapped out. Im not - it can be too extreme on structure but I dont think the other extreme is any better. In all honesty this would drive me away - <USER3> looks like a dream until money is low, stress is high, somebody is abusing something, or there is political in-fighting (which definitely can happen at small startups).

<comment><USER9> I don't ever want to consult an employee handbook. I especially don't want someone to tell me to RTFEH.

At Pivotal we have an e-mail alias for making any kind of request that will get routed to the right person and dealt with/responded to quickly. No guesswork required, no flipping through an employee handbook.

There's also a person everyone gets assigned that they can go to at any time with questions about how to enter their time, what to do about a bad situation at work, or whatever else they want to talk about.

There should always be a person available, not (just) an employee handbook.

<comment><USER10> _There should always be a person available, not (just) an employee handbook._

Obviously, but that person isn't omnipotent. Perhaps that person has never taken maternity leave and doesn't know the routines. Having things written down somewhere makes it easier to find and eliminates any guesswork.

The other advantage of a handbook is anonymity. Perhaps you want to look up the routines for maternity leave without announcing that you are/plan to be pregnant.

</comment></comment></comment><comment><USER11> IANAL, but while I think it's nice that they give these sorts of freedom, this sort of "no rules!" attitude can become a liability as a company grows.

When Jane gets told, "sorry you can't take 10 weeks of vacation this year", even though Tom got 10 weeks of vacation, you leave yourself open to all kinds of legal trouble. What looks like bureaucracy and bloat in bigger companies are most likely regulations put in place to protect both employee and employer rights.

I think the key to any HR policy, even an overt lack of HR policy, is to make sure its applied consistently.

</comment><comment><USER12> > _Rules for Work -- We do not have these._

Note: This was written by folks who have never been on the receiving end of a stupid employee lawsuit. There are reasons why you need an employee handbook, and almost all of them are legal CYA.

Seek out better legal advice than these guys did.

<comment><USER13> I could also see this handbook being used against them in the case of harassment, discrimination or wrongful termination suits.

<comment><USER12> > _this handbook being used against them in the case of harassment, > discrimination or wrongful termination suits._

Exactly. And since courts tend to favor employees, Zaarly's corporate neck is very exposed.

Here's one example:

> Whatever it is, it's cool.

> Also, it is a place where the guys frequently use the women's bathroom.

All any woman has to do for a harassment lawsuit is point to that phrase in a courtroom. "They will happily invade the place where women are exposed! and it's corporate policy!"

Not the brightest idea in corporate leadership.

And another thing: Suppose they wise up and actually get a real company handbook. All any woman has to do is bring out this version and describe that "Zaarly has a well-documented _history_ of harassment against women."

Edit: s/discrimination/harassment

<comment><USER13> Unfortunately Lawyers get paid quite a bit to make exactly those types of small things look very bad for their opponents. Another one that stands out to me is in the clothing section.

> We will never implement any sort of expectations around what you wear, but > we maintain all rights to mock your future mother-in-law's choice of clothes > if you choose to wear them to the office.

A decent lawyer will turn that into the company openly supporting and even encouraging harassment.

<comment><USER14> I can't tell wtf that even means, but I'm pretty sure it's a prime example of the less said, the better.

</comment></comment></comment></comment></comment><comment><USER15> These rules are nothing new. Every company seems to start this way and then eventually each of these principles die with a little regulation here and a little adjustment there.

<comment><USER16> Cough. Netflix.

<comment><USER17> Are you holding Netflix up against the GP's assertion, or in confirmation of it?

<comment><USER16> Netflix is still amazingly liberal with its policies.

</comment></comment></comment></comment><comment><USER18> Very, very pretty little scroller!

That said, the content is quite a bit of fluff with not much substance. What I got from this: we all think Zaarly is really cool. We don't care what you wear. We have nice chairs. Have fun!

This wouldn't help an incoming employee onboard any faster, or easier, which is the point of a handbook, no?

It'd be nice to see a "your first day" walkthrough.

Oh, and there'd better be a _real_ policy behind this doc, as they're going to be highly susceptible to lawsuits from their first few terminations.

For an excellent new employee handbook, see Valve: [http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...](http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf)

</comment><comment><USER17> > Disagreements that have not been addressed IRL will be promptly dismissed as > misunderstandings until an actual conversation has taken place.

That's an impressively mature stance on employee conflict.

> Or maybe better, an extension of your parent's house.

That's a very simple and reasonable explanation for workplace use.

It sounds like you treat your employees like adults. I find that commendable in the current business climate.

<comment><USER19> Really? What does 'IRL' mean? Because I find a slight friction between the statements 'you can work from anywhere, whatever hours you like' and 'disagreements are not considered real unless you've been in the same room'. Oh so I can work from home but you'll ignore anything I say if you don't like it, because I wasn't in the room with you. Got it. Sure you'll pay for my plane tickets, I don't want a plane ticket, I want to work from home and have you listen to me.

<comment><USER17> Judging from the rest of their handbook, it sounds like "IRL" means video or voice chat as well.

</comment></comment></comment><comment><USER20> I am just curious... Do these "take as much vacation as you want" policies work out well in practice? Or do the policies unintentionally create a competition to vacation less? Can anyone who works at a company with one of these policies share their perspective? How much is the approximate median vacation time taken?

<comment><USER21> IANAA, but... Remember that these vacation policies also offer a very significant accounting benefit compared to PTO polices that let employees accrue & bank PTO. The accounting downside for these PTO policies is that many employees end up with huge PTO balances (lame for other reasons) that they build up in advance of leaving the company. Because the company must pay out in cash the whole PTO balance when the employee leaves, the company actually has to keep (often very significant amounts of) cash on hand in proportion to the collective banked PTO amounts. This is lame and it's avoided in "you get 0 but take as much as you want" scenarios.

<comment><USER13> > Because the company must pay out in cash the whole PTO balance when the > employee leaves, the company actually has to keep (often very significant > amounts of) cash on hand in proportion to the collective banked PTO amounts.

Depends on the state. Many states let the employer decide if they want to have a pay out policy or a "use it or lose it" policy.

</comment></comment></comment><comment><USER22> I know I'm gonna get downvoted, but something about it gives me the creeps. It's almost as if the culture itself is some altar you have to worship at, rather than being the consensual improv that great cultures turn out to be.

</comment><comment><USER23> Why are men using the women's restroom? Doesn't that make the women (assuming any work there) uncomfortable?

<comment><USER24> Probably they are considering this is cool.

<comment><USER25> There are quite a few women that work here, actually. It's more like both are unisex for all, but it has been comical to guests that see men coming out of the women's bathroom.

They're each only one person... so... it's not at as odd as it seems. Inside joke, perhaps.

Granted, there isn't much context there haha

<comment><USER26> heh I almost messaged you after reading that line. I did a bit of a double take.

</comment></comment></comment></comment><comment><USER27> >If you want to coast, we recommend you apply for a job at Craigslist

Catty much? Amusing assertion given that Jeremy Zawodny works there.

<comment><USER28> Clicking on the link, I believe they mean "use Craigslist to apply for a job elsewhere". It's hard to believe anyone would bag on Craigslist itself as a model of efficiency; If you were to chart number of uniques per day against number of employees, I doubt anyone is within an order of magnitude (or two, or three) of Craigslist.

<comment><USER16> Wikipedia.

<comment><USER28> Oh, good call. Thanks.

</comment></comment></comment></comment><comment><USER29> _"You must never confuse faith that you will prevail in the end (which you can never afford to lose) with the discipline to confront the most brutal facts of your current reality, whatever they might be."_

        - Jim Collins

That's a great quote.

<comment><USER30> Great, amazing quote. Wrong author: <http://en.wikipedia.org/wiki/James_Stockdale>

<comment><USER29> Ah, thanks.

</comment></comment></comment><comment><USER31> That's not an employee handbook, it's a company: 1) giving itself a blowjob, and 2) recruiting (a certain demographic).

</comment><comment><USER32> You're never going to employ blind people?

EDIT: Yes, this post is perhaps a bit grumpy. I leave it here because it's been replied to. (And because HN has no strikethrough.)

<comment><USER33> I don't understand why you'd read their document, find the worst possible interpretation imaginable - one which no reasonable person could assume was valid - and then post about that on Hacker News.

<comment><USER32> Clicky the little flag. Zoom the page. Some of the font drops off the bottom of the page, and scrolling doesn't work. (Chrome, macbook pro, OSX).

On the main text. Zoom the page. Some of the text falls off the left hand side, and there's no way to read it.

I mention the sight thing because it's clearly ignoring the fact that some people cannot see; and other people cannot hear; and other people cannot talk; and other people have neurological problems. It makes assumptions about people's ability to understand visual cues.

But, if you really want to talk about the rest of the document: It assumes people are reasonable, and thus we don't need rules. But we need rules because some people are not reasonable, some people are arseholes. Clear rules give those people hints about what is acceptable, and makes it easier for you to get rid of those people if they don't become acceptable.

It feels like they've left themselves wide open to legal action. All that ambiguity is what lawyers dream of.

<comment><USER33> Ah, I misunderstood your comment - my apologies. I thought you were making a snide remark about the "sign language" part of the communication doc. I guess if I shouldn't leap to accuse people of leaping to accuse people of things! Sorry :(

</comment></comment></comment></comment><comment><USER16> Extremely well done site. +1 for insistence on face-to-face and willingness to pay for plane tickets to facilitate it.

</comment><comment><USER34> "Work happens anywhere"

I'm travelling in Central America, and going to Zaarly.com showed me a page in Chinese. Telling Chrome to translate somehow fixed it into English. Except it says "What you want, when you want it.", which is like those placeholder spam sites.

So I turned on my proxy settings to appear in Denver, restart browser, and get the same "global" page. "Coming soon to your area!" No links or override so I can say "no, your approach using geo-IP is broken". So until the cookies expire or are deleted, any user identified as "global" is blocked from using the site.

I'm curious as to the benefit of using the IP to decide to block a user from even browsing the site. Why wouldn't you want to show the actual system, perhaps with a notification of "hey, there's nothing in your area yet"?

</comment><comment><USER35> >We do not have a vacation policy.

This works out fine till you get that _one_ employee who screws it up for everyone else. It really works when you have people who love working a lot, and those who don't have other "distractions" (marriage, kids etc,). A company should definitely have a vacation policy, if it doesn't it is doing injustice to employees who work hard.

Let's say Omar is a hard working guy doesn't take a lot of vacation, and Jack is a guy who loves taking vacations ( and sometimes takes too many vacations ), If both these guys are equally capable and have the same efficiency, Omar is the guy who contributes more to the company. Without a clear guideline from the hand book, Omar doesn't know how much time he can spend on vacations and so does Jack, but they both _assume_ that whatever they are doing is right, and whatever the _other_ guy is doing is _going overboard_. Giving a little thought to the vacation policy can help you a lot in these areas, Once you _do_ have a vacation policy there is no _misunderstanding_ everyone knows what they are doing.

The "vacation policy" ultimately gets changed when people take undue advantage of it, or people get fired for taking too many vacations, but not transparently. The management will say, oh, your results are below average, blah blah blah....

</comment><comment><USER36> Do employees actually take vacations at companies without a predetermined number of vacation days?

<comment><USER37> For people who have issues with this, I'd suggest asking your manager or whoever is in charge whether X days of vacation per year would be acceptable. And then track your own vacation days and treat them like you would at any other company.

<comment><USER38> Manager: "Take as much time as you want, but know that your absence would be highly disruptive to the company."

</comment></comment></comment><comment><USER39> They have a heap of employees for apparently not selling anything yet <https://www.zaarly.com/about>. Is this common for startups to take on this many people?

<comment><USER13> It's not that uncommon for a company with $15 million in investment money to have that many or more employees.

</comment></comment><comment><USER40> Wow, what a dumb document to publish. Anyone not hired or fired from this place will have a field day with this.

"Also, it is a place where the guys frequently use the women's bathroom."

Sounds like a really creepy place to work.

<comment><USER41> It's poorly phrased in this case, but gender-neutral facilities are coming of age. They appear on universities, for example.

This ties into trans* acceptance as well. Basically, don't dismiss it as too crazy of an idea.

</comment></comment><comment><USER42> My takeaway from this book: Zaarly is very unstructured. It's great that they have an order of priorities for doing things but I didn't see a real framework here that deviated from "how to be a basic employee 101." It reads like a layer of abstraction one step away from even high level values. There's very little to point to in the book that will adress/solve any actual workplace situations/conflicts.

That being said, it looks very pretty.

</comment><comment><USER43> _We are very happy to pay for plane tickets -- if you're not in the same room as someone that you need to talk to, one of you needs to change that. Disagreements that have not been addressed IRL will be promptly dismissed as misunderstandings until an actual conversation has taken place._

Ridiculous.

</comment><comment><USER44> Love the cool handbook. I would love to know what the hiring process is like. How does Zaarly protect itself from employees who'll leach company & team of valuable resources.

</comment><comment><USER45> Great job guys! I think it's awesome. As for all the haters and critics: I'll give their opinions more weight after I see their work.

</comment><comment><USER46> Outstanding job Marco. I'm impressed with what you've created here. This is a great way of showing the world the culture of Zaarly.

</comment><comment><USER47> I would love to know the process/steps they went through to come up with this document to it's current state.

<comment><USER48> 1\. Make it up as we go.

2\. Expect to be bankrupt before any serious disputes appear.

</comment></comment><comment><USER49> Really beautiful site.

<comment> johnx123-up Didn't anyone check the weird scss compiler comments yet? <http://handbook.zaarly.com/stylesheets/style.css>

<comment><USER50> I think that's standard for SCSS, it does it when I'm creating Rails web applications, but i'm new to Rails and there's probably a setting to toggle somewhere.

</comment></comment></comment><comment><USER51> Every time I see a startup that starts with a Z, my first thought is: "Is that the boob thing?" (Zivity)

</comment><comment><USER52> What does this company do?

<comment><USER53> Whatever it is that they do, they love it. The handbook is saying so.</comment></comment>


Tips for Data Science Success - <AUTHOR> https://www.theseattledataguy.com/top-30-tips-data-science-team-succeeds/ <comment><USER2> Getting ownership is huge!</comment>


Ask HN: Is StackOverflow down? - <AUTHOR> <comment><USER2> From the horse's mouth: [https://mobile.twitter.com/Nick_Craver/status/10573854147707...](https://mobile.twitter.com/Nick_Craver/status/1057385414770769926)

It looks to have been a very brief outage.

</comment><comment><USER3> Doesn't seem to be down in Australia though

[https://downforeveryoneorjustme.com/stackoverflow.com](https://downforeveryoneorjustme.com/stackoverflow.com)

<comment><USER3> It seems to be down in some locations

[https://outage.report/stackoverflow/amp](https://outage.report/stackoverflow/amp)

</comment></comment><comment><USER4> I think this is the first time I've seen StackOverflow down, and while I was writing this it seems like it's back again for me (Mexico).

</comment><comment><USER5> It's down in Seattle</comment>


Google+ wants you to get more spam - <AUTHOR> http://www.lockergnome.com/it/2011/10/30/google-email-spam/

<comment><AUTHOR> Asking authors to expose email addresses in order to verify content authorship is a spammer's dream.</comment>


Baidu Deep Voice Explained: Part 1 – the Inference Pipeline - <AUTHOR> https://medium.com/athelas/paper-1-baidus-deep-voice-675a323705df#.lbmwd3u9t <comment><USER2> This post on Deep Voice seems a little off-the-mark. In fact, I would say it is completely misleading about the technical accomplishments here.

From my perspective, Baidu's approach is a little embarrassing, with the use of many modeling stages in their training and production of TTS. When the rest of the community is moving towards end-to-end training, their usage of this many stages sounds excruciating. Merlin[0], which was a pretty good standard for 2016, has this painful feeling as well, with two DL stages (duration, acoustic) followed by some conditioning and then a synthesis step.

The more important technical contribution seems to be the hand-tuned synthesis code that makes their generation faster; cool but not particularly sexy (and there are few details). The details on training hyperparams are nice to have too, of course.

Contrary to the post, I would be very surprised if the voice sample included in the post was actually generated by Deep Voice -- it has none of the robotic qualities pointed out by the researchers themselves in their blog post[1]. More likely it is a demonstration of the loss in their last, WaveNet-like stage. This was also pointed out in the previous HN discussion[2]

Lastly, Andrew Ng is neither thanked in the paper nor mentioned on any webpage -- are we sure this was work he supervised?

[0] [https://github.com/CSTR-Edinburgh/merlin](https://github.com/CSTR- Edinburgh/merlin)

[1] [http://research.baidu.com/deep-voice-production-quality- text...](http://research.baidu.com/deep-voice-production-quality-text-speech- system-constructed-entirely-deep-neural-networks/)

[2] [https://news.ycombinator.com/item?id=13756489](https://news.ycombinator.com/item?id=13756489)

<comment><USER3> Thanks for your feedback.

\- I state the caveats that the voice sample published for Deep Voice are using ground truth features. That being said I can make it clearer.

\- Andrew Ng runs the Baidu AI team. He may not have supervised it but he's associated with this.

\- I've gotten direct feedback from an original author of this paper to ensure the post represents its accomplishments well. At this point I believe it does save for the caveat.

</comment></comment><comment><USER4> Are there any how-to guides to getting something like this running? Or are there missing pieces of closed-source software needed? I'm interested in the theory but it helps to be able to try it out.

<comment><USER5> If you want to see the most basic form of this pipeline, I have a blog post on "bad speech synthesis" [0]. There are open source versions of WaveNet for TTS [1], but I have not run the code myself or seen the quality of the output. Our code for char2wav is theoretically available [2], but not yet ready for "how- to-guide" level use.

[0] [http://kastnerkyle.github.io/posts/bad-speech-synthesis- made...](http://kastnerkyle.github.io/posts/bad-speech-synthesis-made-simple/)

[1] [https://github.com/buriburisuri/speech-to-text- wavenet](https://github.com/buriburisuri/speech-to-text-wavenet)

[2] [https://github.com/sotelo/parrot](https://github.com/sotelo/parrot)

</comment></comment><comment><USER6> > The results of the paper speak for themselves.

Why yes, they do.

(I assume this was deliberate.)

</comment><comment><USER5> Showing one of the top two samples from their blog (full prediction) along with the one you link (only acoustic model) would more clearly show what you are getting at in the explanation, since how the text inference works is most of the complexity in this model (given baseline knowledge of WaveNet, at least). The sample shown only does step 3 from your summary as far as I can tell.

In particular the top 2 samples from the Baidu blog most clearly show the gaps we need to cover from a research perspective to truly get "human level" TTS - a lot of the complexity in TTS is in the text part, and getting the subtleties of stress and f0 prediction correct is far from a solved problem. This is partly why there are so many different submodules and parts in the text piece of DeepVoice, and a whole appendix dedicated to that in WaveNet.

It is still surprising to me how good the audio models from WaveNet and DeepVoice are (such as the sample you show) - it seems that given good enough text features e.g. groundtruth the synthesis is nearly perfect. So it seems (IMO) that the next research papers will be focused on the text/f0 part.

I will also plug the work we have been doing at MILA, which is related but tries to directly go from text -> speech with attention based RNNs [0]. A longer version of our paper should be on arxiv soon, but for now we have a short teaser which was submitted as an ICLR workshop [1]. One fun feature is that we have the ability to handle multi-speaker synthesis, and multi-speaker datasets as well.

The primary differences from a high level are: we don't need a pronunciation dictionary for training, but they (DeepVoice or WaveNet) do. However we need a vocoder (currently WORLD) to get intermediate targets for training, while they do not. For training we need a directory of text files, and a directory of audio files, along with a script to run WORLD on the audio.

This means char2wav can go to new languages without extra lexical information (e.g. pronunciation dictionaries), since the WORLD assumptions are broad, but we find we have a difficult time on English without using phonemes (from a pronunciation dict), since the character -> audio mapping is pretty difficult for English.

We have better outputs (compared to char2wav English) on Spanish, German, and Romanian [2] though we are still improving every day. Note that the Romanian is still using fixed synthesis with WORLD - this is a demo only of the text -> WORLD features part of the model, the "reader".

The end result of both char2wav and DeepVoice (be able to go from text -> speech directly in generation) is the same. WaveNet also has this - you can see most of the TTS details in the appendix of the paper [3].

There is also a good discussion on reddit with one of the DeepVoice authors that has quite a bit of detail about their approach, I found it quite helpful [4].

Heiga Zen has a great overview talk on youtube for people who are interested in TTS [5].

There are also some interesting extensions on WaveNet [6][7], though I have not translated enough to determine what exact methods are being used.

[0] [http://www.josesotelo.com/speechsynthesis/](http://www.josesotelo.com/speechsynthesis/)

[1] [https://openreview.net/pdf?id=B1VWyySKx](https://openreview.net/pdf?id=B1VWyySKx)

[2] [https://www.youtube.com/watch?v=cwnDjq33uMs](https://www.youtube.com/watch?v=cwnDjq33uMs)

[3] [https://arxiv.org/abs/1609.03499](https://arxiv.org/abs/1609.03499)

[4] [https://www.reddit.com/r/MachineLearning/comments/5wosbm/r_d...](https://www.reddit.com/r/MachineLearning/comments/5wosbm/r_deep_voice_realtime_neural_texttospeech/)

[5] [https://www.youtube.com/watch?v=nsrSrYtKkT8](https://www.youtube.com/watch?v=nsrSrYtKkT8)

[6] [https://twitter.com/ballforest/status/838759080621568002](https://twitter.com/ballforest/status/838759080621568002)

[7] [https://twitter.com/ballforest/status/836803448435789828](https://twitter.com/ballforest/status/836803448435789828)</comment>


Firefox Focus – privacy focussed mobile browser - <AUTHOR> https://blog.mozilla.org/blog/2017/06/20/firefox-focus-new-to-android-blocks-annoying-ads-and-protects-your-privacy/ <comment><USER2> It's somewhat disturbing to see "Automatically block online tracking while you browse" the very same moment the app starts to silently send tracking data to app.adjust.com and incoming.telemetry.mozilla.org.

Yes, Mozilla needs that data to improve Firefox Focus. Yes, they probably don't send anything sensitive. Yes, it's not browsing activity, just an install ping (probably). Yes, the app's open source so I can take a look. But still...</comment>


Ask HN: How did you go about estimating the "market" for your last product? - <AUTHOR> Basically, if you build it, will they come? I know this is not a trivial matter, but before embarking on spending (at least) several hundred hours building an MVP, how do you figure out whether to pursue an idea? <comment><USER2> If you build it they WONT come. If they did, then the failure rate of startups won't be above 90%.

Do your homework (both primary and secondary research). You have nothing to lose by spending a few days analyzing the opportunity.

\- For a project that had to do with shipping labels, used UPS's , Fedex's Annual reports to estimate the potential number of customers who would prefer that kind of shipping. So looking at annual reports of listed companies that are in the same (or similar) business would be useful.

\- Looked at platforms like Fiverr, Upwork etc. and scrape their job boards and analyzed for words that would describe what you are gonna build. Reach out to those customers who listed those jobs and freelancers who did similar jobs. you will learn a s __t ton.

For a project involving selling via messengers used \- Facebook's and WhatsApp announcements page on their blog. \- Popular Newspaper articles about digital advertising (that quoted sources) Sometimes, you can google things and when you find the news articles, they might indicate the source. For example "John Doe, an analyst with Analysis Paralysis Inc, estimates there are 3433 cows who eat ketchup in the West Virginia" . You can then google that company and find useful stuff on their blog or even buy the report from them.

\- For a project that involved selling fasteners to fix ceiling panels, estimated the number required by looking at US Census Bureau data on housing square footage.

\- You can also use google surveys to ask questions to the target market (the used to allow you to do free surveys). Yes they might ask for a faster horse. But you will get the insight that "speed is a need". So if you do a good job asking the right questions and interpreting the answers, you will get a fair idea of the opportunity.

Maybe you could post here what exactly you wanna know, there would be folks here who would know the answer.

Don't worry about folks "stealing" your idea. If you are worried about it, go spend 2 dollars on a lottery ticket. The chances are more that you would win the lottery.

<comment><AUTHOR> I like the idea of looking up Fiverr and Upwork. For several projects I have in mind, I have seen an obvious need for 1 company / party. The question I always had was whether there are more companies who need it and are their needs similar enough.

</comment></comment><comment><USER3> Keywords, Google keyword tool, forum chats, Reddit comments.

Use tools like these to find EVIDENCE that people are trying to find a solution (similar to yours) to the problem they have.

If you find this evidence, it proves that:

1\. There is an inefficiency present (opportunity is simply inefficiency by another name).

2\. It shows that the problem is painful enough that people are trying to find a way to solve it. And..

3\. It proves that the customer is aware enough of the problem to be able to see you as a likely solution (so you don't have to educate them).

I used this process to come up with my own successful ideas. One of which being: [https://myapptemplates.com](https://myapptemplates.com).

This video will help shed more light on the above [https://www.youtube.com/watch?v=exMoRoaxKtQ](https://www.youtube.com/watch?v=exMoRoaxKtQ)

</comment><comment><USER4> My current project - [https://oppslist.com](https://oppslist.com) \- caters to software developers.

I googled how many software developers there are, then used a calculator to guess what fraction of them might ever buy it, and what that might mean in terms of revenue.

Also, the product solves (sort of) a problem I have.

</comment><comment><USER5> Talk to target customers?

<comment><USER6> Ford was once quoted as saying that if he had asked his customers what they wanted they would have asked for a faster horse. So, no. Does not work in every case. I think one other way is to build a product which you would use yourself.

</comment></comment><comment><USER7> comps?</comment>


Reverse Engineering for Beginners - <AUTHOR> https://github.com/dennis714/RE-for-beginners <comment><USER2> If you find binary reverse engineering fascinating and want to go deeper into the formal aspects checkout [http://www.reddit.com/r/ReverseEngineering/comments/smf4u/re...](http://www.reddit.com/r/ReverseEngineering/comments/smf4u/reverser_wanting_to_develop_mathematically/) and [https://github.com/turnersr/turnersr.github.io/blob/master/t...](https://github.com/turnersr/turnersr.github.io/blob/master/technology_review/Technology_Survey.md) .

<comment><USER3> This is a really great list but it missed hooking libraries/tools. A good thread about alternatives is also on the reverse engineering subreddit: [http://www.reddit.com/r/programming/comments/22crn0/gpl_alte...](http://www.reddit.com/r/programming/comments/22crn0/gpl_alternative_library_to_microsoft_detours_for/)

 _Disclaimer: my company does one of the tools being discussed._

</comment></comment><comment><USER4> Also useful for RE beginners: [https://microcorruption.com/](https://microcorruption.com/)

</comment><comment><USER5> If I'm interested in reverse engineering, but at a higher abstraction than this book - let's say there is a game client communicating with server and I want to understand what the format of the packet is (ie. application level rather than all the way down) - does the question make any sense? And where could I find material for it?

<comment><AUTHOR> Wireshark, Deep Packet Inspection and similar might be terms you can look after to find out more. RFCs are what you need to understand the protocols (if they are public standards)

</comment></comment><comment><USER6> This is an amazingly in-depth and up-to-date walkthrough. Way better than CS61. But...

> "for Beginners"

> links to GitHub repo full of .tex files

O:

<comment><USER7> Well, the readme links to a PDF.

<comment><AUTHOR> I thought linking to the source rather than to just the pdf would be more useful for you, as a) some might like to actually contribute and b) many would like to know what else the author made and lastly c) a minority of people isn't allowed to open pdf's from the internet, so they could build it locally (or just starr on github).

</comment></comment></comment><comment><USER8> I always enjoyed this page (pretty old and more of a hackme featuring reverse engineering stuff):

[http://3564020356.org/](http://3564020356.org/)

The hash maze is pretty interesting.

<comment><USER9> Good old times :)

</comment></comment><comment><USER10> Ouch, bad time for GitHub to go down. Here is Google's cache:

[http://cl.ly/2i150V3c450i](http://cl.ly/2i150V3c450i)

<comment><USER11> Here is also links to PDF files: [http://yurichev.com/RE- book.html](http://yurichev.com/RE-book.html)

</comment></comment><comment><USER12> It looks like a good resource from a very quick skim of the document. It is a shame, however, that the English may not be too polished.

<comment><USER13> You can always make a pull request.

<comment><USER14> Apart from working out which .tex file corresponds to which piece of text, the files are tricky to read because they contain both english and russian strings delimited by some kind of macro.

Any hints on editing this?

<comment><USER11> Well, it's possible to grep these files :) See also: [https://github.com/dennis714/RE-for- beginners/blob/master/CO...](https://github.com/dennis714/RE-for- beginners/blob/master/CONTRIBUTING)

</comment></comment></comment></comment><comment><USER14> For anyone reading this at the time of this post, GitHub is down.

</comment><comment><USER15> Why do you write a 600 page book and offer it for free?

<comment><USER16> Why do you write [an entire kernel, an operating system, an RDBMS, a web application framework, ...] and offer it for free? Sometimes, the journey of creation and the sharing are more important than any remuneration you might otherwise get.

<comment><USER17> I hope he publishes a print version of the finished book, like Miran Lipovača did with Learn You a Haskell for Great Good! If someone releases a free book that has immense value to me, I'm more than willing to support them by buying a wonderful print version. There's something wonderful about having the ergonomics of a print book, combined with the ability to copy and paste and follow links from a PDF...

<comment><USER11> Yes, I'll signup with service like lulu.com in future, for those who want hardback, when I'll feel I finish the thing, maybe 1-2 years later.</comment></comment></comment></comment>


YouTube-dl Supported sites - <AUTHOR> https://github.com/rg3/youtube-dl/blob/master/docs/supportedsites.md <comment><USER2> Prove it with travisci?</comment>


Travels with John Conway, in 258 Septillion Dimensions - <AUTHOR> https://www.nytimes.com/2020/05/16/science/john-conway-math.html <comment><USER2> Unfamiliar with the man beyond basic things like the Game of Life, I had his biography on my to read list for a while. His passing unfortunately propelled it to the top of the pile, and I read it in a few days. Conway truly was a once in history kind of person, and the biography feels so casual yet intimate - it feels a little bit like having lost a friend.

Since, I've been slowly diving into the various books and papers he published - they are all awe inspiring. His proof of Morley's trisector theorem is stunning - I can't wait to share it with nieces and nephews because it is that straightforward, it literally can be taught to young children. A proof for a theorem that stumped all mathematicians for over a century. Just utterly stunning.

I have "Winning Ways for your Mathematical Plays" coming in the mail today. Can't wait.

We were blessed to count John amongst us, let's do our best to treat everything with the same playfulness and curiosity that he did.

</comment><comment><USER3> This story got me to read up on the Monster group, watch the linked [https://www.youtube.com/watch?v=jsSeoGpiWsw](https://www.youtube.com/watch?v=jsSeoGpiWsw) and understand at least the basic definitions involved. My newbie take: in the realm of group theory it's as if we've categorized all prime 'numbers' into one of 18 infinite streams or one of 26 'numbers' that don't belong to any such streams. Amazing.

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

</comment><comment> ur-whale [http://archive.is/etd8n](http://archive.is/etd8n)</comment>


Conan Visits YouTube's VR Lab - <AUTHOR> https://www.youtube.com/watch?v=QqugCQzWOYA <comment><USER2> geo-blocked for copyright because why?? Geez did we ever fail at this whole internet thing. Copyright is absolutely ridiculous.</comment>


Ask HN: How can I create a startup from my graduate thesis? - <AUTHOR>

Hello everyone,
I always hear of people starting companies that spawned from a graduate school thesis. I am currently working on an idea, which I completely came up with and develop myself in graduate school. Like the professors, researchers, and other graduate students, I signed an agreement that makes the university own all my creations.
I would like to start a company from all my research (this is my life and passion) after graduation. How can I do this if my research is not my property? How have others (maybe you) done this in the past?
My research can be applied to a diverse set of fields, but if it just stays with the university it will belong to just one project, and it would stay like that forever. It's hard to watch my research trapped in one field and one project.
Hopefully the HN community can provide some guidance, feedback, and maybe so interesting stories.
Thank you. I appreciate it. <comment><USER2> Even the most graduate-school-inspired businesses are about 5% pre-existing research and 95% solving a problem people will pay for. Academic research is, almost by definition, solving problems that people will not yet pay for (I say this having been a graduate student and professor, and now in the startup game).

I'd encourage you to think about what marketable problems you are well- equipped to solve, rather than thinking about what you can do to sell your pre-existing research. The former is the essence of a startup and the latter is, on average, a recipe for disappointment.

On the legal matters: the University will almost certainly license the idea to you. Universities are not in the business of business, so just holding the patent is not particularly useful to them. They _want_ someone to go out and start a business around the idea. You would be a good candidate for that. There is essentially no chance that they won't license it to you if you are credibly starting a business around it (though they'll probably want some kind of stake in the company). This is exactly the situation Google has: Stanford owns the PageRank patent and licenses it to Google in return for (I believe) a portion of Google's early stock.

<comment><AUTHOR> Thanks for all that info. You made a good point about having something that is marketable before wanting to start a company. I have actually done just that. I have been demoing my research through marketable applications from the start. On application is actually directly helpful to a product that the school is developing. So they license it to me, and I sell it back to them (kinda funny)?

To tell you the truth, my only problem is with the university wanting a huge stake, and leaving me and my fellow partners with very little for our hard work.

Thanks for the help I appreciate.

</comment></comment><comment><USER3> My university had an intellectual property office. I'd ask around your the engineering department for for their student liaison or the name of someone who won't yank you around.

They IP office would regularly send someone to the larger engineering classes when I was in undergrad. Hopefully you will be able to sit down with a cool cat and walk out a single page waiver.

I'm guessing you will have a harder time getting what I call an IP waiver if you are on a full ride vs paying sticker price for your degree.

<comment><AUTHOR> Thanks for this. I did not know such a waiver existed. I searched the "Office of Research" website of my school, but I did not find any information regarding such a waiver. I will talk to a professor to see if my school has such a thing.

Also one of my professors said that schools don't usually go after students making companies with university related research. Unless the company gets really big. But if the company gets big, then they could easily settle with some cash.

</comment></comment><comment><USER4> Counting your eggs way before they're hatched. If you become a successful company you can deal with it then. Start doing what you wanna do with it, if any success appears on the horizon then think about all this.

<comment><AUTHOR> What you said is actually what I have been moving towards. I'm just gonna worry about it later, and start the startup.</comment></comment>


The shock tactics set to shake up immunology - <AUTHOR> http://www.nature.com/news/the-shock-tactics-set-to-shake-up-immunology-1.21918?WT.mc_id=TWT_NatureNews&sf75681232=1&sf76318367=1 <comment><USER2> >> Sympathetic nerves are damaged by over-release of noradrenaline, which causes them to withdraw from the immune cells that they should be moderating. As the disease progresses, these nerves advance back into the tissues that they abandoned — but they do so in abnormal ways, making connections with different subsets of immune cells. These rearranged neural pathways actually maintain inflammation rather than dampen it.

That seems to fit eerily well with my experience. I most likely have an autoimmune condition, and, whenever I am sufficiently active to the point where I feel the adrenaline going, afterward I feel feverish and have a malaise. It explains it perfectly if sympathetic activation serves to kick the T cells out and stir up inflammation.

I hope they do this research posthaste. I think I can personally benefit.

</comment><comment> wu-ikkyu I've read a bit about how taking cold showers can supposedly stimulate immune function.

I wonder if there is any connection with the "shock" of jumping into a cold shower and the electro shock therapy detailed in the article.

<comment><USER3> Interesting potential link. When talking about cold showers, I suggest looking up the Wim Hof Method. In addition to cold exposure, this method includes a specific breathing technique based on Tummo meditation: oxygen surplus inhaling combined with subsequent breath holding.

</comment></comment><comment><USER4> Previous discussion: [https://news.ycombinator.com/item?id=14263675](https://news.ycombinator.com/item?id=14263675)

</comment><comment><USER5> sounds like a real-world Chaos Monkey</comment>


Two-Thirds of Americans Would Utilize High-Speed Rail If It Was Available - <AUTHOR> http://evobsession.com/survey-two-thirds-americans-utilize-high-speed-rail-available/ <comment><USER2> My father told me a story about discontinuing a street car line (called an interurban) in a town North of Detroit. There was a hearing at city hall and hundreds of villagers turned out.

Dozens of people made the case to keep the line. Finally the street car company's lawyer got up and made the business case for discontinuing the line. He concluded by asking the crowd how many of you used our company's street car to get to this meeting? Not a single hand went up.

It's easy to tell a pollster you're for high speed rail but how many will actually buy a ticket? Perhaps they should ask for them to prepay for a ticket?

<comment><USER3> >It's easy to tell a pollster you're for high speed rail but how many will actually buy a ticket? Perhaps they should ask for them to prepay for a ticket?

I use the MBTA on a fairly frequent basis. I would use it every day if biking didn't half my commute time.

I've also used Megabus to visit New York City, for day trips even, Acela for an interview in New York once, and a short domestic air flight to visit a friend in Washington DC for a weekend. These costed ~$30, ~$200, and $500 for round trips, respectively.

Note that the bus takes almost five hours, the train takes four hours, and the airline flight took about two to three hours. The bus and train were crossing the same distance between the same two cities, and a comparable air trip would have cost $450 for a 1 hour, 15 minute flight.

Why is the transit system structured so that by taking "high-speed" public transit over slower private transit, I reduce my trip by 20% but pay 9x more? Why is it that if I actually want to travel quickly, I have to take a private transit agency (ie: JetBlue), and can quarter the time spent in transit by spending twice as much as the next-fastest option and 15x as much as the slowest option?

In particular, how can we talk about a so-called "high-speed" rail system in which the gap between driving and taking a train is only one hour but the cost gap is multiplication by nine?

<comment><USER4> Acela isn't "high-speed" rail, it's basically normal rail with high-speed hardware which occasionally goes fast enough to barely clear the threshold for calling it "high speed."

Acela averages less than 70MPH. In a proper high-speed system that would be more like 180MPH. Boston to DC would be 2.5 hours, vastly faster than flying once you account for airport nonsense.

<comment><USER5> While I agree that more high-speed rail would be amazing in the US as a viable transit option, a lot of the calculus around efficiency of it rests on it being exempt from the likes of TSA. TSA has been making their way into train stations for a few years now:

2013: [http://reason.com/archives/2013/08/08/tsa-to-ruin-train- trav...](http://reason.com/archives/2013/08/08/tsa-to-ruin-train-travel-now- too)

2015: [http://www.infowars.com/tsa-airport-style-searches-on-all- am...](http://www.infowars.com/tsa-airport-style-searches-on-all-amtrak- trains/)

<comment><USER6> > TSA has been making their way into train stations for a few years now:

Yeah, 'Amtrak police' are now also doing their own 'random' inspections and swabs, etc. Last few times I took the Amtrak from Penn Station they were doing this.

Yet another reason for me to take the bus (which is 80% cheaper, as long as they're not sold out).

</comment></comment></comment></comment></comment><comment><USER7> Years ago I thought the idea of regional high speed rail lines in the US was a great idea, but I think the time for that has come and gone. The future seems to be clearly moving towards autonomous cars (and buses one presumes). Why sink billions into high speed rail when on our current pace it will be only a couple decades before we have all electric cars powered by solar and other clean energy sources that are 90 something percent autonomous? I think most people would easily choose a 5 hr autonomous car ride from LA to SF with complete freedom of movement in both cities compared to a 2 hr train ride with possibly a couple hours in both cities dealing with connections getting you to your specific destinations.

<comment><USER8> I do wonder what would happen if they built a new double lane highway between two cities that is only usable by autonomous vehicles? How fast do we trust autonomous vehicles to go?

<comment><USER9> In a fairly straight line and in good weather? Very fast (compared to current US highways). 150 mph or more.

The primary factor I can think of in terms of risk, are wild animals crossing and vehicle malfunction (eg tire rupture). Censors/radar, both in the vehicle and along the perimeter, should take care of the animal threat. On the mechanical side, well, the goal would be to get the rate of death down to perhaps airline-like numbers.

<comment><USER8> A fence and over/under animal crossings would probably deal with the non- flying animals. Birds require a bit of intervention sometimes.

I wonder if anyone has done a paper on how fast / how dense you can drive automated cars while maintaining a decent safety margin.

Also, different makes of automated cars are going to be a pain in the butt for the system. I'm sure the Kia and Ferrari are going to want to go different speeds.

</comment></comment></comment></comment><comment><USER10> Be weary of statistics asking people what they might do if something were available vs what they actually do when it's there. Because then you have to factor in the schedules, the ticket price, etc. It doesn't cost anything to answer yes to a poll, it's a bit more complicated when it's time to plan a trip and shell the money out.

</comment><comment><USER11> I'd prefer a more modest speed rail that went from where I am to somewhere I want to go. It does no good at all to travel at high speeds somewhere else, when all that saved time is more than lost trying to get from else to where I want to go.

I'd even prefer slower rail to my car, because I can read on the train, and I don't have to spend 5-10 min parking.

</comment><comment><USER6> > To be more exact here, 63% of those surveyed stated an interests in > utilizing high-speed rail service if it was available.

That's asking the wrong question, though. The issue is not so much whether people would, in the abstract, have an interest in using high-speed rail as a hypothetical means of transportation. The first challenge is figuring out _where_ to place the rail - trains can only travel on tracks, so the train routes need to connect highly-trafficked (source, dest) pairs in order to be useful. And the second challenge is figuring out how to do this for a price that justifies the costs. (Even if the project is taxpayer funded, the costs include the opportunity cost - what other projects that tax money could have been spent on).

Two-thirds of Americans would use high-speed rail if it connected their home city with their most frequently-visited destination city. But that's not the same as saying that two-thirds would use high-speed rail if it connected, say, LA and SF, or NYC and DC. The question is, would enough people use _those_ routes in order for the project to justify its costs?

The question isn't entirely useless - for example, if only 1% of the country demonstrated an interest in using high-speed rail, we could probably stop there. (Even if it connected NYC and LA, the two largest cities, there's no way the traffic would cover the opportunity cost of the project). But as stated, this survey tells us pretty much nothing new - we already knew that there's an abstract interest in high-speed rail, but what we _don 't_ know is how to convince people that we have a cost-effective way of building out the tracks between the most-important destination hubs[0].

[0] We sort of do know what the most-important destination hubs are, because it's not _that_ different from the most-trafficked Amtrak routes and flight routes in a given region. Yes, you can make the argument that high-speed rail rail should serve the areas that aren't currently well-served by other transportation means, but keep in mind that those also tend to be the less- populated areas to begin with, which means that the challenge of recouping the costs of the project is even greater.

<comment><USER12> This. Rail is great for roughly linear population distributions (like Japan or California coast), but understand the USA had a huge 2D spread - laying out a vast rail grid is a lot harder than roughly a line. Each terminal had the same problem, as travelers are moving to/from in all directions. My own case: 2 miles to the nearest bus, then 20 miles to the subway, then 15 miles to what would be the high speed long range rail terminal - then a similar reverse sequence to reach the destination, at which point I'd have minimal luggage and no personal transport. Way easier to just throw everyone & everything into the family SUV and drive, taking a similar travel time with what I want and have a vehicle when we arrive.

<comment><USER13> Which is one reason why the Northeast Corridor works even though it's only sorta high-speed rail. There are a few cities off the coast like Pittsburgh that miss out but you handle a lot of population with a single line.

The only caveat is that, because it's not really high-speed, it works better as north and south segments than as one single line. But because it's NYC in the middle, even that works pretty well.

</comment></comment></comment><comment><USER14> Two criticisms of the map:

1\. A high speed line down the California coast is totally impractical. Mountains, granite and huge grade changes make for an expensive proposition.

2\. The broken links in the midwest between the network in Texas/Oklahoma with that stemming from Chicago is silly. Their are mothballed Rights-of-Way there that are perfect alignments for HSR.

Outside that, I'm still very much interested in a way to make HSR work in a number of areas for the US.

</comment><comment><USER15> I'm always confused by the high-speed rail numbers. Exactly how many trains would it take to get 2/3 of the US population using rail?

Take the average international-sized airport runway. It can land a 747 every couple minutes. That's hundreds of people every minute. A high-speed rail line cannot take even a fraction of that number. The trains cannot run at speed without significant time/distance between them. That's the limit of one- dimension travel (rail) v the three dimensional world of aircraft. It would take dozens of parallel rail lines to replace even a medium sized airport. While we all might want to use rail for some journeys, I don't see it ever competing with air travel in the US market.

<comment><USER4> A Shinkansen line (arbitrarily chosen because it was the first thing that popped up in my search) can do 13 trains per hour with 1,323 passengers per train, which is equivalent to one 747 every 1.4 minutes.

<comment><USER15> That would replace one runway, but it still doesn't compare to the number of planes that the sky can handle. Sky which is cheap/free in comparison to building rails. There is definitely a point where trains are more efficient, particularly between a small number of large cities, but moving a large proportion of US air traffic onto trains, imho, is a different problem given the number of routes (1000s) and airports (100s).

I'd have to see the math, but there is also a question as to carbon emissions per-passenger/distance. I believe that on long flights (more time at high altitude) widebody aircraft might be more fuel efficient than high-speed trains stuck on tracks.

<comment><USER16> > Sky which is cheap/free in comparison to building rails.

Isn't flying the most expensive kind of transportation ? Plus it relies on fossil fuels big-time.

<comment><USER15> It's hard to compare price because it is very rare for two means to compete directly. It's often apples and oranges. A train that moved as fast as plane isn't going to be very fuel efficient. They can be electric (insert source debate) but planes can also run on biofuel (another debate). And when comparing plane-train, a plane burns much of its fuel taking off and climbing to altitude. Once there (10,000m) it is remarkably fuel efficient in terms of passenger/mile at a given speed. And there are times when rail simply won't ever be an option (over large water). The head of RyanAir gave a great presentation a couple years ago about highspeed rail. His point was that, while great if you live in london and vacation in Paris, most people don't live downtown, that planes can land in places much closer to actual destinations --> reducing total-journey emissions.

I'd love a high-speed rail from Vancouver BC to Calgary Alberta, or Prince George (both places I go every year). But building such a structure is a monumental task (10s of billions) and a fast train would take a vast amount of energy covering that distance. Imho trains just cannot compete in such markets.

<comment><USER16> As you said, it is two different things.

I take the train everyday. For me, travelling by train for < 4h trips to a city sounds like a good deal.

It is generaly a smoother experience than taking a low-cost flight. But, I realize it really depends on how 'car-first' and large your country is. Definately not an universal solution.

</comment></comment></comment></comment></comment></comment><comment><USER17> There was a previous article[0]/discussion[1] on HN that contained a similar map of proposed high speed rail lines. This previous map made less sense because it encouraged building out new HSR lines across the vast expanses on the American midwest.

I like this new map better though - HSR makes the most sense for medium- distant transit. The Mid-Atlantic/New England area is a perfect example of a region where a lot of mid-distance travel happens. The current rail lines are okay but not fantastic and improved lines would be a positive for travelers.

[0]: [http://www.nytimes.com/2016/04/17/opinion/sunday/a-new- map-f...](http://www.nytimes.com/2016/04/17/opinion/sunday/a-new-map-for- america.html) [1]: [https://news.ycombinator.com/item?id=11506446](https://news.ycombinator.com/item?id=11506446)

</comment><comment><USER18> Do two-thirds of Americans travel enough to use high-speed rail?

<comment><USER19> I currently use rail once, maybe twice a year. Being faster could possibly make impact on that. It's a 4 hour train ride to Chicago but it's a 2 hour drive to Detroit or Cincinnati.

In theory if the train was twice as fast, becoming the same 2 hour ride, I'd be more likely to visit Chicago more for one-day or even a single evening event.

</comment></comment><comment><USER20> This would seem pretty clear when California voters (notorious for not voting in taxes or bonds) approved the high speed rail project. What was even more interesting were the forces that came out against it and how they have acted.

<comment><USER21> I voted for that bond measure, and now I regret it. I'm a little fuzzy on the details at this point, but my recollection is that it was originally planned to include major Caltrain improvements, which they have now given up on.

<comment><USER22> The intended improvements have changed, but they're still there. Hopefully we'll end up with electrification and level-loading, which should increase Caltrain people/hour to be the same as a BART line. 38% of tech workers in Palo Alto take Caltrain, just imagine what it could be if Caltrain wasn't running over 100% during rush hour.

</comment></comment></comment><comment><USER23> It would help people who fly too.

One thing that struck me living in Europe was that flying was much cheaper and easier and I think competition with rail was a big part.

</comment><comment><USER24> Well, they are currently breaking ground on high speed rail in California. We may get this question answered in actual fact in the not too distant future instead of in some hypothetical study.

Anyone have any ideas for how to help make it successful? I would love to have better transit options because I have no plans to drive a car ever again.

</comment><comment><USER25> Bullshit! I will believe it when 2/3 or Americans put $1,000 or so deposit towards a high speed rail system.

</comment><comment><USER26> Altrnste read: One third of Americans would refuse rail even if it were perfect and free.

</comment><comment><USER27> Truly, the subjunctive tense is dead.

</comment><comment><USER28> We certainly need better public transit infrastructure.

</comment><comment><USER29> Two-Thirds Of Americans __SAID THEY __Would Utilize High-Speed Rail If It Was Available

</comment><comment><USER25> It really kind of fascinates me why people are so obsessed with rail and high speed rail. What are the emotional reasons for it, because there are no rational and reasonable arguments for it that can't be refuted. It makes absolutely no sense and strikes me as another one of those examples of obsessive thoughts and ideal people have these days. It's like all the shitty education we subjected people of roughly <35 years old to are starting to bear shitty rotten and mutated fruits.

<comment><USER4> High-speed rail is the best way to travel intermediate distances, say 200-1000 miles. In this realm, it's faster than air travel overall (because you have much less security nonsense and getting to the train station is much faster than getting to the airport) and it's far more comfortable.

I must know, how do you refute that?

<comment><USER25> Well, I can assure you that if train ridership increases, the risk will increase as a function of the attack vector and the threat by muslims. As that risk profile increases, so will the "security nonsense" and difficulty getting there increase.

Also, the degree of expedience at which airports function leaves a lot of room for improvement. There is really little reason why it could not get far more efficient. You seem to also miss the fact that even if you establish a route through 1,000 miles of other people's land and have dispossessed them through eminent domain, and you have blasted your way through ecosystems, you are then stuck with specific routes that can only adapt by scaling throughput of that specific route.

Think of it this way, with the pestilence of douchebags overrunning Austin there is no way that rail could have accommodated that growth, let alone even triggered it. What, are you going to build high speed rail infrastructure across multiple states to California to accommodate the flow of douchebags to SXSW and ACL? You'd be lucky to be done before Austin has suffocated itself and the bubble bursts and the next fad has drawn the attention of the pretentious class.

I won't disagree that train travel is more comfortable, but hell, you really need to be because the trip, at best, is going to take you three times as long. Because what you are also missing is that we are talking about high speed rail here, we are not talking about fast rail like Acela, which is quite convenient in the NE corridor, but also only because of the population density. But even that train stops on a regular basis, which is also a function of what makes is even remotely not a horrific idea even though it still loses money. The problem with air travel these days is that the Airline industry has essentially captured regulators and legislators and are raping the public with high prices they are colluding on and ever decreasing service and features, also essentially due to collusion and a lack of real competition.

Don't get me wrong, I realize that train travel has some benefits and is probably more energy efficient and less polluting, but reality is that it is in no way cost effective let alone adaptable and flexible.

The thing that kind of irks me the most about he wide eyed, pie in the sky, rail supporters is that they have absolutely no idea how much it actually costs to provide the kind of level of rail and public transportation infrastructure that you see in Europe. The costs are astronomical both in long term investments and in M&O. There are inklings of how much it really costs, but reality is that no one really have an accurate understanding of its cost because European governments keep that information under lock and key, lest the rabble find out how much their money is squandered.</comment></comment></comment>


Porting C to Rust - <AUTHOR> https://wiki.alopex.li/PortingCToRust <comment><USER2> > Achieving abstraction is super hard when you can just reach down into some > bytes and noodle around with them instead.

Disagree. In my experience all was wonderful once I was past the point where I decided to just not worry. Much the opposite, so much pointless and confusing OOP boilerplate (as well as blood, sweat, and all that) goes into "securing" code against misuse.

Invest some time into data structures with obvious meaning, or a procedural API that is easily understood. "Nobody" will "ever" misuse, and misuse will be easy to detect. Much better tradeoff IMO.

And lastly, of course, abstraction has nothing to do with "security systems". It's against popular opinion, but you can in fact have good abstraction with nothing but plain functions and void pointers. I like to view abstraction as mostly a conceptual thing that doesn't even happen in code.

<comment><USER3> > _" Nobody" will "ever" misuse, and misuse will be easy to detect... And > lastly, of course, abstraction has nothing to do with "security systems"._

I've spent a lot of time digging around in other people's C code over the years, and with very few exceptions, the kind of low-level byte munging in the original post tends to be absolutely riddled with bugs. There are off-by-one errors, buffer overflows, integer overflows, and memory leaks. The error- handling code paths tend to be broken, too.

And if you run a fuzzer like libfuzz or American Fuzzy Lop, it will almost always find even more vulnerabilities. (A handful of C programs do better, including djb's tools, SQLite, dovecot, and significant portions of Apache. Apache seems to mostly succeed because it has good abstractions for strings and buffers.)

Back in 2002, I published a ~7,000 line XML-RPC library in C, with extensive unit tests. I ran it through multiple code quality tools, including Electric Fence. I spent a long time carefully examining each function for correctness. I chose Expat as my XML parser, because it was one of the best-written at the time.

Overall, I thought I was an unusually paranoid and careful C programmer. But here's the list of CVEs against my library and—most importantly—its dependencies: [https://people.canonical.com/~ubuntu- security/cve/pkg/xmlrpc...](https://people.canonical.com/~ubuntu- security/cve/pkg/xmlrpc-c.html)

If anybody here writes C code, and if your code runs on potentially hostile data, I strongly recommend experimenting with a fuzzer. It can be a brutally humbling experience, even if you think you're an exceptionally careful programmer. And if you rely on anybody else's code, like I did, you inherit all their bugs.

<comment><USER4> We need all the help from our programming languages (and tools) that we can get. Donald Knuth is a remarkable programmer and computer scientist. Interestingly, he kept a list of all the errors in his program TeX[1], which starts in March of 1978.

TeX is an exceptionally stable program, the design has been frozen since version 3.0 in 1990 reflecting Knuth's desire to have a format suitable for reproducing the typesetting precisely even for archived texts that were developed on hardware that is no longer running. Since 1990 only minor changes have been made to TeX and this is reflected in the current version number, 3.14159265, which is converging to pi.

A comment by Knuth in the error log in March of 1990 was _" We're now up to Version 3.0; I sincerely hope all bugs have been found."_ At that point there had been 908 errors logged. The last entry is currently an entry made in 2014 for error 947.

I've always been fascinated by this list (see [1]).

[1] [http://texdoc.net/texmf- dist/doc/generic/knuth/errata/errorl...](http://texdoc.net/texmf- dist/doc/generic/knuth/errata/errorlog.pdf)

<comment><USER5> That is a great list, and the paper that accompanies it is a must-read. Note that to make sense of the list (to put it in context, and what all the abbreviations stand for, etc), it is best to read the paper by Knuth. That's "The Errors of TeX", also reprinted in Literate Programming. (The DOI of the paper is 10.1002/spe.4380190702 and that may help one find and read it.) Just the abbreviations are also given in [https://www.tug.org/TUGboat/tb10-4/tb26knut.pdf](https://www.tug.org/TUGboat/tb10-4/tb26knut.pdf) but the paper is much more.

</comment></comment></comment></comment><comment><USER6> > A lot of these complaints are just, well, it's called Progress. If we > designed the C in 2018 and made it so we actually wanted to use it, then it > would look very different. Probably a lot like Nim or Swift. I think that's > still a niche that is currently unfilled; a modern, powerful language that > doesn't try to provide the same guarantees as Rust and so can be much more > minimalist.

I think zig is quite a good candidate to fill that niche. It is very compatible with C, but it offers meaningful improvements while still being very picky about what goes into the language.

<comment><USER7> Zig is good, but I like the look of Kit ([https://www.kitlang.org/](https://www.kitlang.org/))...it feels a lot more C like with many of the features (ADT/pattern-matching/generics/type-inference) of the latest crop of languages. Not fully ready though, but promising.

<comment><USER8> The two projects have different ambitions, really. Kit is a "compiles to C" that adds on some nifty semantics. There are many similar efforts in that vein, and they benefit by reusing the leverage of the existing infrastructure and patching it up, but that isn't going to change the underlying environment - you'll still build and debug as if it were C. Zig is trying to replace the very bottom of the stack. Although it's bootstrapping off a C++/LLVM environment itself, the effort is more ground-up and will remove much of the undefined or vendor-specific behavior that currently exists in C tooling, while still adding some high-level niceties, just probably not as many as an applications-focused language.

</comment></comment></comment><comment><USER9> Here is the discussion on the Rust Subreddit, with author comments [1].

[1]: [https://old.reddit.com/r/rust/comments/9mioiv/porting_c_to_r...](https://old.reddit.com/r/rust/comments/9mioiv/porting_c_to_rust_a_case_study_minimp3/)

</comment><comment><USER10> > What is it about C that makes people think L3_imdct_gr() is a perfectly good > function name?

Early ANSI, like Fortran77, only required 6 characters of a symbol to be significant, with compilers not going much farther beyond that. At that point, it sort of becomes a "when in Rome" thing.

<comment><USER11> Unpopular opinion: it also benefits the human reader to have the significant distinguishing parts of the function name at the beginning, instead of after a bunch of foreplay.

As to this particular function name, you're in MP3 land, so MDCT means Modified Discrete Cosine Transform. The "i" is probably "inverse." "L3" is probably "Layer 3" since we're talking about MPEG Layer 3. I had to look up "gr" since it seems specific to the encoding, but it seems to refer to "granule" which is a basic unit of the MP3 data stream (that's also clear from the context, since many functions operate on a gr_info structure). A comment on the gr_info structure might have helped there, but there's nothing wrong with consistently using a shorthand that is used in the underlying spec. In context, it's not actually a bad function name.

<comment><USER12> I suppose I'd grant that there's two distinct audiences: one who's familiar with the codebase already and has to read these symbols but knows what they mean, and one who's new to the code. I think your point only works for the former and doesn't help the latter at all.

So we should weigh the negative impact to the familiar-reader of scanning a 64-character identifier distinguished only by a suffix like "_gr" (or "_greater" if that's what is meant here) against the negative impact of the difficult-to-decipher-abbreviations to the unfamiliar-reader. IMO the net win is to optimize for the unfamiliar-reader in this case. The frequency of unfamiliar-readers is much lower than familiar-readers, the positive impact is much more significant.

> As to this particular function name, you're in MP3 land, so MDCT means > Modified Discrete Cosine Transform. The "i" is probably "inverse." "L3" is > probably "Layer 3" since we're talking about MPEG Layer 3. In context, it's > not actually a bad function name.

Agreed, this codec implementation will likely use some abbreviations for sane reasons. But even if you know what mdct/l3 mean in this context (I did), can you say what this function does (or should do) by looking at the name? What about it is distinct from L3_imdct12/L3_imdct36/etc?

<comment><USER13> > _I 'd grant that there's two distinct audiences: one who's familiar with the > codebase already and has to read these symbols but knows what they mean, and > one who's new to the code. I think your point only works for the former and > doesn't help the latter at all._

With the exception of the "i" (possibly inverse?), the rest of the parts seem like things you would very quickly become familiar with after a short period of looking at the code and reading up on the subject matter (both of which would be required if you wanted to contribute or port).

I guess having names that are immediately understandable to any fresh reader with zero domain knowledge is a noble goal, but it's a high bar.

It's not a perfect function name (you've pointed out some other, valid, problems) but it's far from being objectively bad.

<comment><USER14> _> I guess having names that are immediately understandable to any fresh reader with zero domain knowledge is a noble goal, but it's a high bar._

I'd argue that it is often detrimental to the readability for those with domain knowledge, and if the code (as often is) requires the domain knowledge it can be a disservice.

Consistency is key, _if_ you are consistent these shortened function names can be disturbingly pleasant.

Long names are sometimes a consequence of the programmer not taking the necessary time to think about it (also, consistency is still paramount).

</comment></comment></comment></comment></comment><comment><USER15> On the "possible bugs in minimp3" section, the links are all to the current master, which appears to have changed since this was written (e.g. [https://github.com/lieff/minimp3/blob/master/minimp3.h#L232](https://github.com/lieff/minimp3/blob/master/minimp3.h#L232) doesn't point at the function with the bitshift anymore; I expect it should be [https://github.com/lieff/minimp3/blob/644e0fb7fed34f803b6634...](https://github.com/lieff/minimp3/blob/644e0fb7fed34f803b6634f72e5ad8cc20a520f7/minimp3.h#L232)).

Protip: When viewing something like this in GitHub, press "y" and the URL bar will change to be a proper permalink to the current version of the code. This permalink can then be shared. Alternatively, with the line highlighted, press the … button in the gutter and it will offer a "Copy Permalink" option (which gives you the same permalink you get by pressing "y").

</comment><comment><USER16> > _In the end, the results of my work are in the rinimp3 crate, because I suck > at naming things._

Why not minimp3-rs -- thus people familiar with the original C library will be sure where it is coming form...

<comment><USER17> "Crate" refers to a package in the centralized repository for Rust packages, crates.io. Given that it's not a repository for C packages as well, adding "-rs" to the end is a bit redundant. That being said, there's nothing enforcing that that the repository name has to be the same as the crate name, so it would be pretty reasonable to add "-rs" to the end of the name on Github, etc.

<comment><USER18> Yes, but also no. "crate" is Rust's unit of compilation. Crates.io distributes _pacakges_ , which are made up of one or more crates.

That said, yes, it's considered bad form to name your project with a -rs suffix. GitHub is okay.

</comment></comment></comment><comment><USER19> I admit, I was curious about the `some_struct foo[1];` thing.

This is all I could find. It isn't terribly compelling.[1]

[1] [https://stackoverflow.com/questions/6390331/why-use-array- si...](https://stackoverflow.com/questions/6390331/why-use-array- size-1-instead-of-pointer)

<comment> GuB-42 The stack overflow link is about a different mater. And it is compelling. I managed lower memory usage and improve performance very significantly using this technique.

That kind of control over memory is what C is very good at, and it is, I think, the main reason why C tops almost every benchmark.

Note that modern C++ offers everything C has to offer plus even better, more advanced tools. As a result, it should be even faster. However, "proper" C++ is a bit more hands off when it comes to memory management, with things like generic containers, smart pointers, ... It tends to result in a slightly worse performance.

As for the "foo[1]" as it is described in the article, it is just syntax. Some people may find it more readable than &foo, it doesn't matter. Kind of like &table[1] vs table+1. Use the form you prefer, or even 1[table] if you are making an IOCCC entry.

</comment></comment><comment><USER20> "The lack of real bool" -Which is fine as the minimum space it would take to store a bool is 1 byte anyway (unless youre using bitflags), and you probably want to give more detailed information than true/false anyway

"but a shitty way to engineer software as a whole. Achieving abstraction is super hard when you can just reach down into some bytes and noodle around with them instead.": Data oriented design is usually better both in ease of use and performance than any random class abstractions that exist; also, see Linux.

"Bloody hell you can't tell whether a pointer points to a single object or an array just by looking at it": You can, usually. There are plural words in languages usually used do denote this, item _s_ , also the size thing he mentioned. If it doesn't have it then its usually just bad practice or poor code quality.

"heckin' ternary operators, just make your if statements not suck.": Ternary operators are great, and usually quite concise. Not sure what they are specifically referring to here :/

"The pre and post increment operators are just the worst damn thing in the world.": Again, this knowledge comes to experience, and actually makes things more concise.

C is not designed to be a ""beginner"" friendly language, but its essence is simple -- and I would recommend it for any beginner as it really drives home the majority of actual programming principles, and makes you think about what you are doing on a deeper level rather than coating things in a magical dust layer of classes with vtables and garbage collection.

"it's called Progress.": However, with modern programming languages it's one step forward with two steps back most of the time.

I agree with stuff about automatic conversions between types, however some compilers will warn you (unless you told it to shut up) about any narrowing conversions that you do, and that's the main trap that people fall into.

The majority of debugging/compiling tools are designed primarily with C in mind and are fairly simple to use also.

The majority of the rant about C was mainly not based off issues with C itself, but with the code quality of minimp3, which is quite depressing as C itself does have some bad traits imo such as function ptr definitions are bulky, : for bitfields, no predictability for most 'undefined behaviours', dodgy bitshifting too and probably more things I can't think of at the top of my head.</comment>


Ask HN: Is exclusive social network for gamers still a thing? - <AUTHOR> We are living in a eara, where social network companies like Facebook's ND Twitter exists.<p>My question is an exclusive social network for gamers still a thing for gamers. <comment><USER2> I think game/genre-related subreddits are the closest thing to gaming social networks.</comment>