CTO Mentor Network – A virtual peer-to-peer network of CTOs - <AUTHOR> https://ctomentor.network/ <comment><USER2> Absolutely agree there is a need for this. The website is obviously an MVP, but some feedback from someone who is squarely in your target audience:

* I am hesitant to sign up for yet another source of email without more information about the list membership. Do you already have commitment to participate from experienced CTOs with a public presence (such as Camille Fournier who you cite as inspiration)? That would certainly be an incentive to join. If you can't name names, or if you're bootstrapping and don't yet have names to name, then at least some information about the experience level of folks on the list would help: e.g. "15% of our membership has held a technical leadership or management role for at least 2 years".

* You might consider gathering some demographic information along with email address, for example to help address the point above.

* I'd like to know more about the expected participation model. Your description hints at a Q&A model where people submit questions for open discussion by the list membership, but "mailing list" suggests (to me) more of a broadcast model where the list operators submit curated nuggets of wisdom. As founding members of the community, you'll set the tone; as moderators, even more so.

* As you're building a community, I'd want to see a code of conduct - both to know what to expect from the moderators, and to be sure that people from marginalised demographics would be comfortable participating.

* Related to (and probably covered in) a code of conduct, I'd be more inclined to join a community with an explicit ban on advertising ("15% discount on my product for list members"), recruiting ("my team is hiring an iPhone engineer") and market research ("would your company use this product?"). Not that I have a problem with those things, but I wouldn't currently sign up for something that exposed me to more of them.

<comment><AUTHOR> Thank you for taking the time to post this. It's good advice from someone who is certainly our target audience.

A few answers/questions below:

* Bootstrapping with only a few names that are likely unrecognizable. I'm not the CTO of some random unicorn or vc-backed start-up. It's all the more reason I could use a peer-to-peer mentor. When I posted, there was only two of us who mutually agreed to it being a good idea. Myself? 4 years XP as a CTO and him 3 years 5 months. We started talking back and forth about small problems that plagued us or our teams. As we started helping each other, we realized there are likely many more like us who would benefit from having a peer to talk with.

* I am working on this now. Right now I am manually moderating the applications with only a name and email address to work from. Luckily, if you're a CTO/VP, you're name is pretty well published and indexed by LinkedIn, Google, etc. Lesson learned, if you build it they may come and you are likely going to be stuck with the repercussions of any decisions you hadn't made yet. I really should have asked for more on the form. At any rate, those that I cannot find easily I am replying back asking them to share more about themselves with me.

* Exactly right. At this time, it's a single email-list with a Q&A model and open discussion environment. You drive home a good point. Where I am a founding member and moderator, I need to clearly document our expectations, rules of the mailing list and a code of conduct as to what is appropriate to discuss and what is not. People do not want to be surprised when they are banned and a simple code of conduct can easily inform people and prevent them from posting something we don't want discussed or shared. Some of these may be legal minimums - for example, an anti-trust policy stating we cannot discuss pricing or fix the prices of our products especially where competitors may be on the same mailing list. I'm working on this now. As the group becomes larger, we likely need bylaws to further govern the organization.

* Great point regarding an explicit ban on advertising on the mailing list. That is definitely my intent.

Thank you again for taking the time to review and comment.

<comment><USER2> Thank you for taking the time to respond. I signed up :)

</comment></comment></comment><comment><USER3> I used to go to CTO events in London, and found them of variable quality.

Firstly, most CTOs were surprised I came from a coding background. Even more were surprised to hear I committed code regularly.

Secondly, most of the discussion was about how to deal with tactical issues in a strategic framework that was almost impossible to relate to.

I don't CTO any more (went back to being a humble dev because it made me happier), but 90% of CTO-only lists/networking events/activities are ego exercises first, useful only by accident.

If somebody can fix that, ace. There is nothing here that suggests this will actually be practically useful.

</comment><comment><USER4> Love the idea! Suggestion (I assume that the link is posted by the author or at least author will see this): include links to some some of the "required"/important reading/resources on the topic. It would be great to have materials that are confirmed to be good by the people that know what they're talking about. Maybe somebody here can suggest good resources about management are related topic for the aspiring/first-time CTOs? So far I've seen that this book is frequently recommended: [https://www.amazon.com/High-Output- Management-Andrew-Grove/d...](https://www.amazon.com/High-Output-Management- Andrew-Grove/dp/0679762884)

<comment><AUTHOR> iyn,

Author here. Thanks! That's a great suggestion. As you can tell, right now the site and the mailing list is the most minimal of an implementation. We want to build a network, connect and mentor one another through the simplest and easiest mechanism possible - email. Once we have a medium-sized community with dozens of experts, we plan to add community managed content. Perhaps through a wiki?

I'll share the books and articles that have positively affected my career. These aren't tried and true and maybe dozens of people would disagree about their value but here they are, for what they are worth:

Management:

      - High output management (Grove, 1995)
      - Leading Up: How to Lead Your Boss So You Both Win (Useem)
      - It's your Ship  (Abrashoff)
      - The score takes care of itself  (Walsh)
      - The Hard Thing About Hard Things  (Horowitz)
      - Where good ideas come from  (Johnson)
      - Extreme Ownership (Navy Seals) — (Willink)
      - Work Rules — (Bock)
      - 5 Dysfunctions of a team — (Lencioni)
      - Give and Take (Grant)
      - This is what impactful Engineering leadership looks like - http://firstround.com/review/this-is-what-impactful-engineering-leadership-looks-like/
      - Notes on startup engineering management for young bloods - http://www.elidedbranches.com/2015/10/notes-on-startup-engineering-management.html?m=1

Engineering:

      - Continuous Integration: Improving Software Quality and Reducing Risk (Duval, Matyas, Glover, 2007)
      - Continuous Delivery: Release Software Releases through Build, Test and Deployment Automation (Humble, Farley, 2010)
      - Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series) (Beck, Andres)
      - SICP: Structure and Interpretation of Computer Programs
      - Clean Code: A Handbook of Agile Software Craftsmanship
      - Design Patterns: Elements of Reusable Object-Oriented Software
      - Refactoring: Improving the Design of Existing Code
      - Refactoring Databases - Evolutionary Database Design (Ambler, Sadalage, 2006)

<comment><USER5> I highly recommend "The Phoenix Project" [0]. It's a great mix of entertainment and insight.

[0] [https://en.wikipedia.org/wiki/The_Phoenix_Project_(novel)](https://en.wikipedia.org/wiki/The_Phoenix_Project_\(novel\))

<comment><USER6> Or _The Mythical Man Month_ ( [https://www.amazon.com/Mythical-Man-Month- Software-Engineeri...](https://www.amazon.com/Mythical-Man-Month-Software- Engineering-Anniversary/dp/0201835959) )

Honestly I'm kinda surprised that didn't come up sooner...but only half- surprised.

<comment><USER7> This one should be read (and understood) by anyone who fancies him/herself a manager.

</comment></comment></comment></comment></comment><comment><USER8> This is a great idea, and was something I was searching for when I became VP of Engineering at PipelineDeals. Alongside ctomentor.network, there are other useful resources for engineering leaders as well:

* CTOschool in NYC ([http://www.meetup.com/ctoschool/](http://www.meetup.com/ctoschool/)). They have over 2k members, monthly meetups and an active, relevant mailing list. I recommend joining for the mailing list alone.

* I live in Philly so I was tired of commuting to NYC for this meetup, so I co-founded CTOSchool in Philly ([http://meetup.com/CTO-School-Philadelphia/](http://meetup.com/CTO-School-Philadelphia/)). We have over 200 members now and growing.

Both groups focus on engineering leadership topics like hiring, onboarding, software delivery process, team structure, dealing with c-level team, etc. It really made a huge difference in my career.

</comment><comment><USER9> I just copied this idea for bootstrappers: [https://news.ycombinator.com/item?id=12834961](https://news.ycombinator.com/item?id=12834961)

<comment><USER10> Great idea, I've signed up.

Seems like it might be useful to ask for a website on your sign up form so that you have some idea what people are working on.

<comment><USER9> Thanks! I wanted to keep it simple for now as this is literally an MVP I cobbled together in 43 minutes. I will ask the people who signed up for details later on, to put them in the best-matching groups.

</comment></comment></comment><comment><USER11> Awesome idea! Are you open to non-CTOs? For example, a software engineer turned investor? ^cough cough^

<comment><AUTHOR> No, sorry! We're looking for CTOs that are working in the trenches with us to act as peer mentors and advisors.

<comment><USER11> Got it, thanks! FWIW my motivations are: 1) I work with many CTOs, so I have a good perspective across a lot of companies. 2) I'm always looking to learn more about what sorts of company-agnostic issues CTOs struggle with. If you ever change your mind, I'd love to join the group.

<comment><AUTHOR> I've got your email from your blogs header. Will keep you in mind.

</comment></comment></comment></comment><comment><USER12> For those in NYC, there's also [https://www.meetup.com/ctoschool/](https://www.meetup.com/ctoschool/) which has its own similar mailing list.

</comment><comment><USER13> You've addressed a real need here. I've learned so much from talking to other technical founders about managing engineers and projects. I feel that this stuff isn't as well-documented as much as other parts of startup and engineering life, and I think this could be a big first step toward fixing that.

I was especially psyched to join as soon as I saw a reference to that fantastic Camille Fournier article. Her blog is one of the few incisive resources I've found on technical management at startups.

</comment><comment><USER14> The form should post over https. Otherwise, great idea! I signed up.

</comment><comment><USER15> So valuable. We have an in person CTO mentor network that's about 3 years old now with approx 70 members. Check it out 7CTOs.com

<comment><USER6> That's certainly one way to spend $375/month ([http://7ctos.com/details/](http://7ctos.com/details/) ).

<comment><USER16> That is very cheap per month for good advice... just sayin.

</comment></comment></comment><comment><USER17> I signed up. It's worth a gamble from my Cloudflare email address. Worst case I end up with spam for Google's filters, best case interesting discussions.

<comment><USER18> (list co-moderator with jetsnoc here)

Well, it is currently a fully moderated list, and we will do our best to maintain the guidelines so hopefully you won't get any spam at all!

Right now we are checking sign ups before approving, so if someone signs up with an obfuscated email and we can't find their linked in page etc (so that we can check that they are really a CTO/engineering director and not a spammer) they won't even be added to the list unless we follow up directly and get a bit more information.

<comment><USER19> Are subscribers or submitters pre screened? Or both?

</comment></comment></comment><comment><USER20> I signed up but got a white screen the first time. The second time it worked but I might be there two times :) Good idea anyway!

</comment><comment><USER21> I remember the exCTO of etsy announcing something like this on Paul Fords podcast - is this that?

<comment><AUTHOR> It is not, I will look into that. Maybe there are some synergies.

</comment></comment><comment><USER22> I signed up, but got no confirmation mail. Am I in?

</comment><comment><USER23> Would love to see books, articles, lessons learned in the trenches from female CTOs.

<comment><USER6> What, like Solanas' _SCRUM Manifesto_?</comment></comment>


Idea to ($0.07) profit in 7 hours - <AUTHOR> http://wardrox.tumblr.com/post/1309056394/my-micro-start-up-adventure-idea-to-profit-in-7-hours

<comment><USER2> Unless your time is worth less than $.01 / hr, this isn't profit :)

<comment><AUTHOR> I agree, $0.07 isn't stunning (it's only going to get me a half billionth of my jet), but to break even in such a short space of time I found interesting.

Though could it not be considered profit in some form, as I'm working for free on the project? It's the site's profit, rather than my own?

<comment><USER2> I've always had lots of side projects, so I understand that line of thinking, believe me. And I didn't intend to be snarky, it's just that it's easy to go down a bad road where you convince yourself you're doing better financially on a project than you are because you fail to take your time into account. Imagine you were selling the site to someone else: they'd have to hire someone to do the work you've been doing, and that costs money.

<comment><AUTHOR> I'm keeping track of my hours worked, so I have a rough idea of when it'll actually have properly paid for itself. I'm not kidding myself, don't worry :)

</comment></comment></comment></comment><comment><USER3> "<!-- You can't get in the club by looking at the source code --> "

nicely done.

</comment><comment><USER4> should be "by invitation only" to keep it exclusive. ask every new member to invite only the three coolest friends he has. Everybody getting an invite will use it, just not to lose this chance (invitations only valid for three days or so, decide now!)

(do I get free membership for this great idea?)

<comment><USER5> Also may I suggest restricting early members to only those with @Harvard.edu email addresses?

</comment></comment><comment><USER6> Rule number 1 of the club: No offensive names or locations

And member #7 (of 24 thus far) is named Tits McGhee, from Whale's Vagina (a slang term for San Diego, it seems.)

<comment><AUTHOR> I decided that to be rude rather than offensive, and it's turned into quite the talking point.

</comment></comment><comment><USER7> Full credit to you for producing a concept to live, money generating site.

Equally like your tactics via twitter, and buying the domain ( I might borrow that! ) to gain members.

BUT... This is a horrible example of what budding internet entrepreneurs should be aiming for. Truly horrid.

<comment><AUTHOR> Cheap, tiny, poorly made, a quick buck and lacking scope? I agree. I think "horrid" is a bit much though, but then I would.

It was sort of an experiment for me and if it ever turns any real money I will be using it to build on existing plans for a proper start-up. The Club isn't the pinnacle of what I want to make, rather it's a side-note.

Though, unless I covered it above, why do you say it's horrid? Simply the vapid and useless nature of the product?

<comment><USER7> "Horrid" purely because in its current state it offers no value, nor is it an impressive feat of technology. ( I dont believe )

Bottom line, you executed from idea to product, horrid or not. That IS great. The knowledge of knowing how to go from idea to paid service is very valuable.

I dont know if it is poorly made. Tiny is not a bad thing nor is a lack of scope.

<comment><AUTHOR> I disagree that it offers no value at all.

If it did, nobody would pay the $1. Though that's a rubbish answer, and probably accidentally passive-aggressive. So here's a longer one:

People in the tech world love joining clubs that give no real reward. People started joining Facebook because it was cool to be in the Facebook Club, same with Twitter, the iPhone, new communities etc. I'm over-simplifying it, but that's because The Club I built is exactly that; a crude over-simplification of an already existing and replicated system.

The value comes from the psychology. Paying to be in something early and fun, even though there is no intrinsic reason, is nice. It's similar to how trophies and rewards work on other sites and in games. There's no reason why you want it, but it feels nice.

But I agree that it's also certainly not an impressive feat of technology, that's for sure :)

<comment><USER7> I will have to agree to disagree on the value.

Your argument is valid, I just dont subscribe to it myself.

As noted thru all my comments, even tho we disagree on its value, it has great "knowledge" value to you and your professional capacity.</comment></comment></comment></comment></comment>


Haskell vs. Ada vs. C++ an Experiment in Software Prototyping Productivity (1994) [pdf] - <AUTHOR> http://www.cs.yale.edu/publications/techreports/tr1049.pdf <comment><USER5> Here is how I would run this experiment.

For each language, I would have two experts in that language. Call them P and D: programmer and documenter.

They would not be permitted to communicate.

P would be required to write strictly code, without a single comment or a shred of documentation.

D would not be permitted to view the problem description: only the input data (along with documentation describing what the data means) and the code written by P.

D would have to determine what the code is doing and specify the problem being solved, relying on his or her expertise in the implementation language to unravel how the code is treating the input data, and hence what is its meaning.

Then evaluate the time spent by P, the time spent by D, the size the code, and the degree to which the code actually solves the problem and the degree to which D's documentation actually reverse-engineers the specification not revealed to D.

Then we could say meaningful things: like a given solution is very small and was developed quickly, but it took great effort to unravel what it's doing. That's not bad: there are situations when that is acceptable, namely the development of one-off solutions that will never need to be understood or maintained, and which are needed ASAP. Situations would also reveal themselves when the program takes long, and isn't particularly short, but is a breeze for D to understand. Usually we would prefer that situation in permanent production code.

The all round winner would be: small code written by P in a short amount of time, quickly reverse-engineered by D to recover the spec. (With bonus points for time performance, small memory use, etc).

There is also a degree of realism in this setup. How often are we called upon to understand some code which is utterly undocumented? That's when we feel the differences in languages, programming approaches and styles.

<comment><USER6> Tradeoffs in speed vs maintainability could be the intentional result of choices made by P though. What instructions would they be given regarding how to handle those tradeoffs?

<comment><USER5> > _What instructions would they be given regarding how to handle those > tradeoffs?_

"Try to win this contest to make your language look good."

P can gamble with their task at the risk of blowing up D's time.

</comment></comment></comment><comment><USER7> please stop linking this paper. it is too old, endlessly debated, and does a disservice to any precieved motive of promoting or demoting any of the mentioned languages.

previous discussion:

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

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

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

[https://www.reddit.com/r/programming/comments/1v0z02/haskell...](https://www.reddit.com/r/programming/comments/1v0z02/haskell_vs_ada_vs_c_vs_awk_vs_an_experiment_in/)

<comment><USER8> And C++ has come a long way since then. A long long way. It feels almost like a completely different language now.

<comment><USER9> It would have been, unless the existence of the endless baggage of old C++ code to support and maintain...

<comment><USER8> clang-tidy can be useful to modernize code.

[http://clang.llvm.org/extra/clang- tidy/index.html](http://clang.llvm.org/extra/clang-tidy/index.html)

</comment></comment></comment></comment><comment><USER10> Hm, this paper is pretty obviously promoting Haskell. The main authors wrote the haskell variant, did not even execute the other prototypes and make conclusions without any sort of comparison except LOC.

I like haskell, but this paper is doing a poor job of representing scientific honesty.

<comment><USER11> The people conducting the test also, without the authors' knowledge, got a grad student, gave him eight days to learn Haskell (with no formal training, but the option to ask a more experienced Haskell programmer questions), and then handed him the problem spec and told him to implement it in Haskell. He did it in eight hours with a bit under twice as many LOC as the paper's authors' version. The paper's authors also point out issues with the study, and describe it as showing the possible worth of functional languages, not Haskell specifically.

</comment></comment><comment><USER12> Someone (I think John C. Peterson) mentioned this paper at the Paul Hudak memorial symposium last year. His comment was the that the comparison was unfair, because the Haskell program was written by Mark P. Jones, who was a good enough programmer to outshine his competitors no matter what language. :)

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

See this for a pretty powerful rebuttal.

The second Haskell program in this paper, that also out compete everyone, was built in a week by a grad student that did not knew Haskell before hand without talking to the first implementer.

</comment></comment><comment><USER14> Are any of those languages even remotely similar after 25 years? For example, C++11 is practically a different language from C++<98.

<comment><USER15> Haskell changed way more than C++. I don't think Ada changed a lot.

Still, they are so different from each other that I don't think all that change makes much of a difference.

<comment><USER3> Ada has had 3 major revisions since 1994. It's changed at least as much as C++.

<comment><USER16> I don't think you can compare the changes between Ada 83/95/2005/2012 to what has happened to C++. The Ada language seems much more stable and backwards compatible to me, and given it's nature, it makes sense to avoid introducing major changes. However, I'm not an Ada expert so correct me if I'm wrong.

<comment><USER17> Oh, I bet you can given it's been done in detail more than once. Here's a recent one:

[http://www.electronicdesign.com/embedded/c11-and- ada-2012-re...](http://www.electronicdesign.com/embedded/c11-and- ada-2012-renaissance-native-languages)

</comment></comment></comment></comment></comment><comment><USER2> There might be many biases in this research. If one is able to write code in Haskell it tells a lot about them, and he might be a better programmer than one who writes in Ada or C++.

To make this research unbiased we need to do the following:

* Take people who are profecient in Ada, Haskell and Ada

* Randomly assign them to different teams

* Compare their results

<comment><USER3> > If one is able to write code in Haskell it tells a lot about them, and he > might be a better programmer than one who writes in Ada or C++.

And here's the arrogant, self-important attitude that turned me off of Haskell.

When I was using it, I didn't see any evidence that Haskell users are any better or worse than programmers in any other language.

If it were true, why aren't Haskell developers taking over the world with their superior software?

In reality, any new, interesting language is going to attract better than average developers at first, because those developers are always learning new stuff and trying different things.

<comment><USER18> > And here's the arrogant, self-important attitude that turned me off of > Haskell.

Haskellers are usually out to convince that Haskell is for most programmers, and that "need PhD to use it" is a myth.

It is people frustrated by the (difficult) learning curve of Haskell that say such things.

<comment><USER3> > It is people frustrated by the (difficult) learning curve of Haskell that > say such things.

And there it is again. I haven't drank the Haskell kool-aid, so I must not be smart enough to use it properly.

<comment><USER19> > If one is able to write code in Haskell it tells a lot about them, and he > might be a better programmer than one who writes in Ada or C++. - <USER2>

> And here's the arrogant, self-important attitude that turned me off of > Haskell. - <USER3>

> It is people frustrated by the (difficult) learning curve of Haskell that > say such things. - <USER4>

> And there it is again. I haven't drank the Haskell kool-aid, so I must not > be smart enough to use it properly.

Firstly, reading "people frustrated by the difficult learning curve of haskell say such things" as "I haven't drank the Haskell kool-aid, so I must not be smart enough to use it properly." is a __very __uncharitable interpretation.

Secondly, I believe solomatov and Peaker's comments could be written more unambiguously as follows (though I thought they were precise enough):

solamatov commment rewrite: Someone who can write Haskell might be a better programmer than programmers who use other languages because Haskell is difficult to learn.

peaker comment rewrite: People frustrated by the difficulty of the Haskell learning curve say things such as "Someone who managed to learn Haskell to the point they can write code in it have proven their worth more than those who use easier to learn languages"

So jlarocco, could you still call classify these comments and the thought processes behind them arrogant and self important? Is there anything that would turn you off of them?

</comment></comment></comment></comment></comment><comment><USER20> I enjoyed the paper, thanks. I am now inspired to rewrite some C++ in Haskell.

Anyone have a modern example of this type of research? Opinions are welcome!

</comment><comment><USER21> Basically 'Relational Lisp' won. Just three hours development time.

<comment><USER15> And a write-only prototype.

I'm sure it could become more readable with some more time invested.

<comment><USER5> Can you let others know where you were able to download this?

<comment><USER15> What it says about the Lisp implementation:

> The documentation size is also quite low, which may partially account for > this [low implementation time].

It then got a B in understandability, what is the lowest grade on that dimension.

<comment><USER21> > The documentation size is also quite low

You can guess that it is very declarative code, given that they used a Lisp with high-level facilities on top.

<comment><USER15> I'm not going back into the article, but there's a "code reads like documentation" dimension on the evaluation. I don't remember it getting a top score there.

<comment><USER21> But got an A in the table for "Executable Specification", that's what 'declarative programming' actually means. One specifies/declares WHAT to do and the system figures out HOW to do it. Relational Lisp supports this on a 'logical'/'relational' level.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> BTW... in the diagram showing the regions of interest for a given set of craft and their positions, some of them are referred to as "doctrines". Anyone know what "doctrine" means in this context?

</comment><comment><USER22> I'd like to see a more recent evaluation of this.</comment>


Ultrasound technology lets you touch and manipulate virtual objects - <AUTHOR> http://www.bloomberg.com/news/features/2016-02-03/uk-startup-ultrahaptics-is-making-virtual-reality-feel-more-real <comment><USER2> Didn't care much for the article, but the linked Nature Communications paper "Holographic acoustic elements for manipulation of levitated objects" is quite fun:

[http://www.nature.com/ncomms/2015/151027/ncomms9661/full/nco...](http://www.nature.com/ncomms/2015/151027/ncomms9661/full/ncomms9661.html)

Short 3 minute summary video from the supplementary materials, which has a fair amount of eye-candy: [http://www.nature.com/ncomms/2015/151027/ncomms9661/extref/n...](http://www.nature.com/ncomms/2015/151027/ncomms9661/extref/ncomms9661-s3.mov)

</comment><comment><USER3> This is great work, but this is another article trying desperately to give one person credit for something that an entire community of researchers has been working on. They go as far to claim ultrasonic haptics was "abandoned" in the 70s and they're the only one working on "in the air" haptics, and yet, a few minutes of searching shows similar work done at University of Tokyo and Disney research:

[http://news.bbc.co.uk/2/hi/technology/7593444.stm](http://news.bbc.co.uk/2/hi/technology/7593444.stm)

[https://www.disneyresearch.com/project/aireal/](https://www.disneyresearch.com/project/aireal/)

That said, translating this stuff to a product line is the real challenge, and they seem to be doing impressive stuff there. But priority claims really take away from that.

</comment><comment><USER4> All of the examples shown in the video demo look so painfully unrealistic and impractical: every situation seems to beg for an actual, you know, button.

Using two fingers to air swipe a virtual knob to bring up the heat when you're cooking? Really? How does that make anything any easier?

Even worse: trying to do so while driving. Good luck with that!

The technology seems promising but I just don't see it happening for any of the demo'ed use cases.

<comment><USER5> Not everything is supposed to be immediately applicable. I'm guessing it will be a while before we start some stuff like this in consumer products but seeing the first steps of it is pretty cool still

</comment></comment><comment><USER6> I've played with one of their kits, it's definitely fun. The level of definition for different textures was surprisingly good as well.

Worth noting that you have to orient your hands horizontally to the device like with the Leap Motion to get a consistent result.

<comment><USER7> From your account, and looking at the pictures, you need to hold your arm/hand/finger in the air to make this work.

How long can you do that before it becomes uncomfortable (aka "gorilla arm")?

<comment><USER6> Good point, although I wasn't using it long enough to know exactly. I imagine you could apply the same rule of thumb as with other gestural controllers.

Another aspect of fatigue would be: does the user become fatigued/insensitive to the haptic interaction over time?

</comment></comment></comment><comment><USER8> This makes me think of the description in Genesis of the Universe being created through speech— the Universe is the sustained epiphenomenon of 10 utterances:

[http://www.chabad.org/multimedia/media_cdo/aid/677029/jewish...](http://www.chabad.org/multimedia/media_cdo/aid/677029/jewish/Ten- Utterances-of-Creation.htm)

. . . also, this is like the coolest thing ever . . .

</comment><comment><USER9> Seems to be great for texture already. I wonder how you can integrate it into the typical VR setting. I'm envisioning some sort of bubble around the person. Or at least I guess you'd need to be surrounded by the ultrasound speakers in some way.

Stopping movement is of course also very tricky/tough. Picking up a mug of coffee is a killer app. If that ever works with the right feedback the future is here.

</comment><comment><USER10> Gesture based computing is almost here in some form. Apple, Google, Intel and Microsoft are all working on it:

Apple: [http://9to5mac.com/2016/02/02/apple-proximity-sensors- patent...](http://9to5mac.com/2016/02/02/apple-proximity-sensors-patent/)

Intel Real Sense - [http://www.intel.com/content/www/us/en/architecture-and- tech...](http://www.intel.com/content/www/us/en/architecture-and- technology/realsense-overview.html)

Google's Soli chip - [http://www.youtube.com/watch?v=0QNiZfSsPc0](http://www.youtube.com/watch?v=0QNiZfSsPc0)

Microsoft shipped the Kinect 6 years ago.

The need for hand tracking with VR headsets should give it another boost.

By the 20th anniversary of Minority Report?

[http://youtu.be/7SFeCgoep1c](http://youtu.be/7SFeCgoep1c)

<comment> rm_-rf_slash Gesture input is ultimately pointless without force feedback, or else you don't feel the interaction and the lack of intuitive feeling makes you want to go back to comfortable interfaces.

I remember being really excited for the Wii and swinging my sword for the first time in Legend of Zelda. My sword was blocked; my hand kept moving. Immersion gone.

<comment><USER10> What you have done is give an example where it would be an improvement to have force feedback. It's a common fallacious way to try and disprove something.

It does not mean that this is the general case. Actually, it doesn't matter if it is. If there are a dozen uses without feedback, and 3 dozen uses with feedback, it's still a big win to get the first dozen uses.

<comment> rm_-rf_slash It is a big loss regardless if the lack of convenient feedback means the application is never used, even if force feedback is not necessary to function.

<comment><USER10> yes, it's a big loss if you have nothing now and add a solution for some people. But since it can't meet the needs of everyone ... </sarcasm> You want it all or nothing. seems unreasonable.

<comment> rm_-rf_slash As Tim Cook said to me, if you make something that doesn't change behavior, it's a gimmick, and it won't last.

If motion sensors have an application - perhaps for people with disabilities - by all means go for it. But innovation for its own sake can be a waste of time.

<comment><USER10> Do you mean like speech recognition before it's 100% ready? It's pretty limited now and I've noticed that Siri is easily confused and people seem to have to repeat themselves quite often.

Obviously, motion sensors have a lot of use without force feedback. Feel free to wait until that point. Telling the rest of us that we don't need it seems pointless.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I just want someone to figure out how to immobilize muscles so that you can't "push through" the feedback. Then, I can get my full body holodeck.

<comment><USER12> That sounds scary.

(And here we go again, my brain is throwing misuse scenarios at me..)

<comment><USER13> Yup.

The problem is not designing solid haptics.

The problem is designing solid haptics that can't easily kill or maim you.

</comment></comment></comment><comment><USER14> You could virtually punch someone with this tech. Transduce this!

Blind people can feel their way around a user interface, or perhaps a projected face from a 3D door camera.

</comment><comment><USER15> Was thinking about it yesterday!! Really cool stuff that you got something working!

</comment><comment><USER16> Awesome. But one thing is still missing: temperature and especially temperature response gradients - like, when you touch a simulated piece of aluminium foil it will adapt to your hand temperature while a "solid steel block" will feel colder than your hand for longer time.

</comment><comment><USER17> Ok, when can we expect holodecks, and even better, Quark's holo-suites?</comment>


Show HN: Kickstarter campaign to stop porch pirates with Package Guard - <AUTHOR> https://www.kickstarter.com/projects/packageguard/the-package-guard <comment><AUTHOR> Thanks for anyone who takes the time to check out our hardware startup Package Guard.

We would love any feedback and are here to answer any questions.

<comment><USER2> Hi,

What if thief takes everything, including Package Guard? Does PG has wifi connection lost alarm?

<comment><AUTHOR> The PG connects to your home wifi and will alert if the package is removed.

Never thought about sending an alert if the PG is taken out of Wifi range. This is a great idea.</comment></comment></comment>


Show HN: My latest pet project, pydroid - <AUTHOR> http://github.com/msanders/pydroid#readme

<comment><USER4> I love it, except for the project name. I was thinking it was going to be another "Run Python on Android" project.

<comment><USER5> Yeah, I wasn't sure about the name. Any suggestions on an alternative?

<comment><USER6> AutoPy? A quick Google doesn't reveal other projects with this name.

<comment><AUTHOR> Done.

Rather messy since github doesn't do redirects, but I suppose it's worth it.

By the way, to uninstall the apparently poorly-named pydroid:

      cd ${PYTHON_DIR}/site-packages/
      rm -r pydroid pydroid-0.42-*.egg-info

where ${PYTHON_DIR} is "/Library/Python/2.6" on OS X, "C:\Python26\" on Windows, etc...

Then just run the new installer shown on the script page (or install from source), now at:

<http://github.com/msanders/autopy>

<comment><USER7> autopy is really perfect. It's reminiscent of autopilot and much more descriptive of what your tool does.

<comment><USER8> autopylot?

<comment><USER6> Taken, unfortunately (that was my first idea before AutoPy).

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm loving this library. I'm having a ton of fun messing around with it.

Here's a script to play basketball at <http://www.onlinegames.com/basketball>

I'm having trouble getting calculate_shot_pos right given the ball pos and basketball pos. My trig is pretty rusty, so if anyone wants to help me out (even with some strategy) I would love to hear it! I've learned the library, so getting it to actually play the game well is just a bonus.

Anyway, here goes:

        from pydroid import mouse, bitmap
        from math import floor, sqrt
        import time

        rim_color = 15474
        ball_color = 10440243
        basket_pos = (143, 365)

        def is_ball_on_screen(screen):
            return len(screen.find_every_color(ball_color)) > 0 and find_ball_pos(screen)[0] > basket_pos[0]

        def is_basket_on_screen(screen):
            return screen.get_color(basket_pos[0], basket_pos[1]) == rim_color

        def average(xs):
            return int(sum(xs, 0.0) / len(xs))

        def find_ball_pos(screen):
            coords = screen.find_every_color(ball_color)
            xs = [coord[0] for coord in coords]
            ys = [coord[1] for coord in coords]
            return (average(xs), average(ys))

        def calculate_shot_pos(basket, ball):
            x = basket[0] + (ball[0] - basket[0]) / 3.0
            y = basket[1] - (ball[1] - basket[1])
            return (int(x), int(y))

        while(True):
            screen = bitmap.capture_screen()
            if is_basket_on_screen(screen) and is_ball_on_screen(screen):
                ball_pos = find_ball_pos(screen)
                shot_pos = calculate_shot_pos(basket_pos, ball_pos)
                mouse.move(shot_pos[0], shot_pos[1])
                time.sleep(.5)
                mouse.click()
            time.sleep(1)

</comment><comment><USER10> Script to play Winterbells (<http://www.ferryhalim.com/orisinal/g3/bells.htm>) based on pydroid:

        import pydroid

        INIT_COLOR = 473428
        BELL_COLORS = set([12702690, 8950940, 9016477, 9017249, 9018536, 12505567,
                           12505568, 11715538, 10862803, 12965603, 12439776, 12834019,
                           14411502, 8953000, 5401724])

        def find_init_color(screen, xr, yr):
            for x in xr:
                for y in yr:
                    if screen.get_color(x, y) == INIT_COLOR:
                        return (x, y)

        def init():
            while True:
                screen = pydroid.bitmap.capture_screen()
                first = find_init_color(screen, xrange(0, screen.width), xrange(0, screen.height))
                last = find_init_color(screen, xrange(screen.width - 1, -1, -1), xrange(screen.height - 1, -1, -1))

                if first is not None and last is not None:
                    return first, last

        def check(first, last):
            screen = pydroid.bitmap.capture_screen()

            for y in xrange(last[1] - 1, first[1], -1):
                for x in xrange(first[0] + 1, last[0]):
                    if screen.get_color(x, y) in BELL_COLORS:
                        return pydroid.mouse.move(x, y)

        def main():
            print 'Searching for Winterbells...'
            first, last = init()

            print 'Found at %s, %s. Running.' % (first, last)
            while True:
                check(first, last)

        if __name__ == '__main__':
            main()

It's far from perfect, but it's a good start. To run it, execute the script, then open the game in a resolution large enough such that the whole game is visible.

All it does is find pixels with colors unique to the bells and moves the mouse there. I made the same script in C# a while ago. This script is faster (even though it's Python!) and far more concise. It was astonishingly easy to make too thanks to pydroid. The only time-consuming bit was finding the bell colors. Kudos for the nice library!

<comment><AUTHOR> Very cool!

<comment><USER10> Significantly optimized:

        import pydroid, operator

        INIT_COLOR = 473428
        BELL_COLORS = set([12702690, 8950940, 9016477, 9017249, 9018536, 12505567,
                           12505568, 11715538, 10862803, 12965603, 12439776, 12834019,
                           14411502, 8953000, 5401724])
        CANVAS_WIDTH = 751
        CANVAS_HEIGHT = 501

        CHECK_WIDTH = CANVAS_WIDTH / 2 - <USER2>

        def find_init_color(screen, xr, yr):
            for x in xr:
                for y in yr:
                    if screen.get_color(x, y) == INIT_COLOR:
                        return (x, y)

        def init():
            while True:
                screen = pydroid.bitmap.capture_screen()
                first = find_init_color(screen, xrange(0, screen.width), xrange(0, screen.height))
                last = find_init_color(screen, xrange(screen.width - 1, -1, -1), xrange(screen.height - 1, -1, -1))

                if first is not None and last is not None and last[0] - first[0] >= CANVAS_WIDTH and last[1] - first[1] >= CANVAS_HEIGHT:
                    return first, last

        def triangle(base, width, height, top_left, bottom_right):
            for i in xrange(0, height):
                y = base[1] - <USER3>
                diff = i * width / height

                if y > bottom_right[1]:
                    continue
                if y < top_left[1]:
                    break

                for x in xrange(base[0] - width + diff, base[0] + width - diff):
                    if x > top_left[0] and x < bottom_right[0]:
                        yield (x, y)

        def check(first, last, prev):
            screen = pydroid.bitmap.capture_screen()

            if prev is not None:
                for y in xrange(prev[1] + 20, prev[1] - 20, -1):
                    for x in xrange(prev[0] - 20, prev[0] + 20):
                        if screen.get_color(x, y) in BELL_COLORS:
                            pydroid.mouse.move(x, y)
                            return (x, y)

                for point in triangle(prev, CHECK_WIDTH, 150, first, last):
                    if screen.get_color(point[0], point[1]) in BELL_COLORS:
                        pydroid.mouse.move(point[0], point[1])
                        return point

            for y in xrange(last[1] - 100, first[1], -1):
                for x in xrange(first[0] + 1, last[0]):
                    if screen.get_color(x, y) in BELL_COLORS:
                        pydroid.mouse.move(x, y)
                        return (x, y)

        def main():
            print 'Searching for Winterbells...'
            first, last = init()
            prev = None

            print 'Found at %s, %s. Running.' % (first, last)
            while True:
                prev = check(first, last, prev)

        if __name__ == '__main__':
            main()

It still only scores in the thousands because one of the bell colors sometimes maps to the rabbit, but it's at the point where it scores better than a newbie. Instead of looking from the bottom up for bell pixels, it tries to look in the following regions in order:

1) The area near where it last looked.

2) A triangular area above where it last looked, which is a heuristic guess of where the rabbit would be able to jump to.

If those fail, then it looks from the bottom up for a bell. Okay that was fun, but it made me realize I really need a day job.

<comment><AUTHOR> Cool :)

Just a minor nitpick: you may want to try the library method bmp.find_color() instead of your find_init_color() ([http://msanders.github.com/autopy/documentation/api- referenc...](http://msanders.github.com/autopy/documentation/api- reference/bitmap.html#bmp.find_color)), it should be significantly faster.

Also, instead of iterating through the width & height manually, autopy offers this shortcut:

      for x, y in bitmap:
          do_something(bitmap, x, y)

</comment></comment></comment></comment><comment><AUTHOR> "The prize is the pleasure of finding the thing out, the kick in the discovery, the observation that other people use it. Those are the real things." — Richard Feynman

:)

</comment><comment><USER11> This sounds like it would be very useful for writing a poker bot.

<comment><USER12> I was thinking along these lines, but not a bot. It would be nice as a helper program while playing to put the mouse over the bet buttons, to set standard cbet amounts and raise sizes, etc.

</comment></comment><comment><USER13> This reminds me of how I started "programming", making bots for online text- based mmorpgs with AutoIt V3 (<http://www.autoitscript.com/>), automating IE. That was a great introduction to programming for me, very simple language with useful functions and great help files. Since I switched to using Linux, I've been trying to find a Linux equivalent. Of course, a general programming language with an http library could be used to do what I was initially doing with AutoIt, but it's kind of fun to see windows being manipulated and the mouse moving, keyboard text being sent out, like a ghost user.

AutoPy gives me an excuse to learn python too. Totally sweet.

</comment><comment><USER8> It looks great. I have a slight issue, though; whenever I try to import pydroid, it goes

        Traceback (most recent call last):
      File "<pyshell#0>", line 1, in <module>
        import pydroid
      File "C:\Python26\lib\site-packages\pydroid\__init__.py", line 8, in <module>
        import pydroid.bitmap
        ImportError: DLL load failed: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.

<comment><AUTHOR> What OS?

<comment><USER8> Windows Vista 64bit

<comment><USER8> For some reason, if I use the binaries to install it, it works fine as long as I remove

        import autopy.bitmap

from __init__.py

<comment><AUTHOR> Yes, that removes the libpng and zlib dependencies. Those should be statically compiled in on Windows though.

Unfortunately, I don't have a Vista installation to test this on, which makes it a bit difficult for me to debug.

</comment></comment></comment></comment></comment><comment><USER14> I've been trying to figure out a way to automatically do screen captures of the Stormpulse map at various intervals. Being able to use Python ... perfect. Thank you.

</comment><comment><USER15> Sounds very interesting. I'm going to try writing some simple tests for my application.

On a side-note, the name sounds a little inapropriate in Russian.

<comment><AUTHOR> > On a side-note, the name sounds a little inapropriate in Russian.

What does it mean?

<comment><USER16> It sounds like a derivative form of a word fag (very offensive, foul language).

</comment></comment></comment><comment><USER17> To use this to script applications there could be a few useful wrappers -

For example: \- Enumerate open windows (with names from title of each) \- Get xy coords, height + width \- Enumerate controls that windows knows about and their locations

</comment><comment><USER18> The bitmap matching really sucks though. It won't match images that have been taken straight from larger images.

</comment><comment><USER19> How about some distutils/setuptools based packaging? Or a RPM spec file?

</comment><comment><USER20> You are my favorite person today.

</comment><comment><USER21> Doesn't seem to work on Python 2.5.x under WinXP. I get the DLL load failure message "This application has failed to start because python26.dll was not found."

The installer was happy finding Python 2.5.

Oh well, I should probably upgrade to 2.6 anyway ...

</comment><comment><USER22> um, <http://www.autohotkey.com/> ?

it doesn't matter if your scripts are cross platform when the apps they script aren't.

<comment><USER23> Not really. It means that you can learn the technology once and apply it to multiple projects with different target platforms.</comment></comment>


OneReceipt Shutting Down 8/24/16 - <AUTHOR> http://blog.onereceipt.com/post/148753258030/onereceipt-shutting-down-82416 <comment><AUTHOR> Three years since their last blog post, and I had no idea I ever tried their service. Perhaps a few more emails or touch points along the way might have changed things?

</comment><comment><USER2> I was just thinking to myself that a receipt saving service would be useful for my small business...</comment>


Update on the recent DDoS attack on Tutanota - <AUTHOR> https://tutanota.com/blog/posts/update-ddos-attack/ <comment><USER2> I don't understand why they can't have a status page "without google" (or something like S3 or anything behind cloudflare). Can someone explain?</comment>


Using Wraith for Visual Regression Testing - <AUTHOR> https://pantheon.io/docs/guides/visual-diff-with-wraith/ <comment><USER2> I remember when we open sourced Wraith, we came up with the name about an hour before we made it public. It's nice to know people are still using it, the space is a lot more crowded now than it was 3 years ago.

<comment><USER3> It's been really handy for some of our needs. I only wish it had an option to save either the DOM or the source content for each capture, too, just in case it's an upstream asset that changes the display properties of the site. Other than that, it's been a really part of several of our workflows!</comment></comment>


Japanese railway operator to license maglev tech to US for free - <AUTHOR> http://asia.nikkei.com/Business/Companies/Japanese-railway-operator-to-offer-maglev-tech-to-US-for-free <comment><USER2> I think the problem with the US railway system is not the lack of technology, but politics: People seem to love bold and mostly unrealistic proposals like Elon Musk's "Hyperloop" or the Maglev technology but seem to be a lot less passionate about making existing infrastructure better (which understandably is much more boring):

As an example, I just took the Amtrak train from NYC to Montreal to attend PyCon (which is awesome!), which took all in all 11 hours to cover a distance a little over 530 km. For comparison, going from my hometown Saarbrücken in Germany to Paris (which is about the same distance) takes less than two hours (1:40h to be exact) with TGV or ICE trains. Arguably for the latter there is no border to be crossed (OK actually there is but none that is patroled) but still, this kind of makes you wonder why a high-tech nation like the USA doesn't have a similar system of high-speed trains in place, and I think that the answer has more to do with political unwillingness and lobbying than with lack of technology.

BTW, in Germany there once was an attempt to build a Transrapid (our version of Maglev that is deployed in Shanghai, developed by Siemens [http://en.wikipedia.org/wiki/Transrapid](http://en.wikipedia.org/wiki/Transrapid)) track to connect the Munich airport to the city centre (see "Munich Link" section in the article above), but calculations showed that the achievable time saving compared to the latest generation of ICE high-speed trains would be only 3 minutes, whereas the additional cost would have been around 3 BN €, which lead to the project being eventually ditched.

<comment><USER3> Slightly off-topic: I've noticed that public transport from city center to airport kind of suck in larger german cities.

In e.g. Berlin (for SXF at least), Frankfurt and Munich there's only the fantastically slow S-Bahn, with ride times around 40-60 minutes.

<comment><USER2> Agreed, Frankfurt and Hamburg are pretty ok though. And in Berlin it's not only the transportation to the airport but the airport itself that sucks ;) *

*the announced opening date of the new airport has been delayed by several years to the point where it's questionable if it will ever open...

</comment></comment></comment><comment><USER4> The technology has existed for so long but never really went anywhere. After half a century there are 30km in Shanghai, that's all.

Maybe it will work out better in the future.

The biggest problem I see is that the gains of this technology would be rather small anywhere with conventional high-speed rail or existing infrastructure that can be upgraded to that. With Maglev everything needs to be built from scratch. That's just not very attractive for any place that has consistently expanded its rail network ever since the height of the industrial revolution.

And for what? A 180km/h faster train? I personally very much want that, sure, but is it worth it for anyone building it? I'm pretty sure I know the answer in Western Europe (though I can always hope that maglev has a future there), I'm not so sure when it comes to the US.

<comment><USER5> "And for what? A 180km/h faster train?"

Going an extra 110mph(180km/h) would be a huge win. It greatly extends the distance where a train wins over a jet.

Also consider, for instance, in the NYC area, you could live 100 miles away from Manhattan and easily commute to work. That means you could live in downtown Philly and work in Manhattan, 30 minutes away. The world becomes a lot smaller.

<comment><USER6> > Going an extra 110mph(180km/h) would be a huge win. It greatly extends the > distance where a train wins over a jet.

Not really, because jets will go much more places that your single maglev line ever will. That's the problem with hi-tech trains. They are extremely costly to deploy in terms of infrastructure, they go over land that could be used for other purposes, and because of the large investment required they only go in very few places. Jets win everywhere else.

<comment><USER5> "Jets win everywhere else."

Of course they don't. Getting to an airport 60-90 minutes before a flight that's only 60-90 minutes doesn't make much sense

<comment><USER7> This is true.

But the requirement to arrive 90 minutes before departure time is not a problem with the vehicle but the bureaucracy and security apparatus around it.

True Story: while I like to arrive well before a flight (just in case) when I was younger it was not unheard of to arrive at the airport _minutes_ before flight departure and simply stroll down the causeway, and onto the flight.

<comment><USER8> I could walk into the heathrow terminal for edinburgh plonk down my card buy a ticket walk into the lounge have a quick pint and be on a plane to ediburgh within 15/20 min

<comment><USER9> Of course Heathrow itself is an hour from almost everywhere in central London, and Edinburgh Airport is 30 mins by road from Princes Street, so your 20 mins just became two hours.

<comment><USER8> hmm used to be 30 mins in a taxi to haethrow and the train journy takes 5 hours.

And the british airways cream tea was amazing as it should be for >£200

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Japan also offer loans to USA for building maglev trains [http://www.telegraph.co.uk/news/worldnews/asia/japan/1055533...](http://www.telegraph.co.uk/news/worldnews/asia/japan/10555330/Japan- offers-to-lend-US-half-the-cost-of-Super-Maglev-train-between-Washington-and- Baltimore.html)

</comment><comment><USER11> Japan's maglev technology (EDS) is very different from Germany's maglev technology (EMS) that's being used in Shanghai. One pulls the train up electromagnetically to a steel track and the other uses permanent magnets to push the train away from the track. Both are still going nowhere. And it's for good reason.

● Both are extremely expensive per mile compared to HSR (high speed rail). Sure it's faster than high speed rail but a technology doesn't make it because it's better, but because it's more practical to implement.

● Service is not as tried and trusted as HSR. Germany's test facilities have been torn down after the Shangai maglev was built and Japan's maglev hasn't been expanded. On an emotional human level it just doesn't feel trustworthy. If you're not growing you're dying.

● Both technologies are proprietary whereas HSR has more companies and manufacturers to chose from.

● HSR could probably compete with maglev speeds by building a wider gauge track, using larger wheels, and implementing more aerodynamic designs to reduce drag and power consumption.

● Germany and Japan are pitching their maglev trains while they themselves aren't avid users of them.

=== Lessons ===

If you want something to succeed sometimes you have to set it free.

If you're not expanding or growing you're dying.

If you want people to use your solution, instill trust by investing in and using your own solution.

<comment><USER12> A full Tokyo-Nagoya-Osaka maglev (SCMaglev) line is under construction in Japan right now, with the Tokyo-Nagoya leg due to be in operation by 2027.[0]

As if late, traditional HSR is getting a lot of competition (in Japan at least) from domestic flights that cost almost exactly the same and take about the same amount of time. This has led to a resurgence of the "old" airports in Tokyo, Nagoya and Osaka.

[0] [http://en.wikipedia.org/wiki/Chuo_Shinkansen](http://en.wikipedia.org/wiki/Chuo_Shinkansen)

</comment></comment><comment><USER13> Japanese railway operator to _license_ maglev tech to US for free

<comment><USER14> So that means they can use the tech, but not redistribute it to anyone else? Sounds pretty fair to me.

</comment></comment><comment><USER15> If you ever have the chance to ride the Shanghai maglev from Pudong airport into the city, splurge a little bit for first class. It's incredibly relaxing before or after a long flight and watching the world fly past at 270mph and not feeling crowded or touching other people for 8 minutes.

Oh, and don't trust any taxi driver who speaks English, you're extremely likely to be scammed. Don't ask me how I know.

</comment><comment><USER16> What about Elon Musk's hyperloop venture, are they in the running?

<comment><USER17> Yes, Hyperloop Transportation Technologies exists (I'm volunteer), they are going to design and build a prototipe using crowdsourcing engineering (not capital as far as I know). Also they have contact with several universities and companies that are interested in partnering and developint part of the systems. Right now they are working in the legal parts of the company and mean while there is a brainstorming at the engineering part with calculations beyond tha alpha document. It's a hard process as the technology is so new, but amazing non the less. The idea is to start building and testing a scale prototipe for 2015 in LA.

</comment></comment><comment><USER18> Its not the speed, its the distance between the stops..

Let me give you an example...in the midwest USA there is a short commuter line called South Shore that runs from SouthBend Indiana to southern shore of Lake Michigan and up to the Loop in Chicago

Most of the stations on the South Shore are either blocks apart or a few miles apart..which negates a high speed rail solution

</comment><comment><USER19> Is there a specific reason to license it for "free" or is there something more to it than meets the eye?</comment>


Taco Bell Programming - <AUTHOR> http://widgetsandshit.com/teddziuba/2010/10/taco-bell-programming.html <comment><USER2> This man has clearly driven himself insane staring at code.</comment>


Show HN: Retro Looking Graphics in the Browser (feature demo only) - <AUTHOR> https://epistemex.github.io/retro-canvas/

<comment><AUTHOR> This is a JavaScript retro context for canvas which help you produce "retro" looking graphics, such as non-aliased lines, indexed palettes (comes with retro palettes for CBM64, VIC20, ZX Spectrum and 20 others), low resolution, dithered images and more. Free/GPL3.0 license.</comment>


iPhone 6 and iPhone 6 Plus Drop Test - <AUTHOR> https://www.youtube.com/watch?v=eGxlm82hWDM#t=268

<comment><USER2> Bad link. You linked to the final few seconds of the video instead of the start.</comment>


Droid 2 screen explodes in man's ear - <AUTHOR> http://www.androidcentral.com/man-hospitalized-after-droid-screen-explodes-his-ear

<comment><USER2> From the guidelines: <http://ycombinator.com/newsguidelines.html>

        In Submissions
        ...
        Please submit the original source. If a blog post
        reports on something they found on another site,
        submit the latter.

Here's the original source:

[http://www.wfaa.com/news/health/Man-hospitalized-after- phone...](http://www.wfaa.com/news/health/Man-hospitalized-after-phone-- 111203854.html)

</comment><comment><USER3> Video at WFAA doesn't work for me, Youtube version:

<http://www.youtube.com/watch?v=NhSZK43ovpU></comment>


An Open Letter to Managers of Women - <AUTHOR> https://medium.com/@JasonShen/an-open-letter-to-managers-of-women-58b1655943ce#.jev2nanrq <comment><USER2> Yes, this happens to everyone, but this happens to women much much more. Even well intentioned managers at good companies can find themselves victims to cognitive bias, unintentionally. This article raises specific things to watch out for.

Note: I am a male, a manager, and occasionally guilty of such things.

</comment><comment><USER3> "Maybe you think she has to wait her turn, or brush up on her soft skills and work better with others, or that she simply needs more experience"

This happens to EVERYONE, not just women. I worked at many companies in my career doing the work of my superiors and kissing their ass, while getting paid at a lower pay-grade and not getting promoted. This is how the game is played. If you want it changed, start your own company and change it for everyone, not just women.

"Despite this woman's outstanding contributions, you haven't promoted her or given her a raise. It's not fair and you know it."

I don't really see any actual statistical evidence that shows this happening at a greater level (or an alarming level) to women.

"You've talked a big talk about mentoring and development opportunities, but when push comes to shove, you give her the less glamorous work, the "maybe next time" speech, the completed plan decided in a separate meeting without her, because it was just easier and perhaps you think she won't make as much of a fuss about it."

Did she actually deserve a raise? Put her time in? Have the experience? Lately, it seems many people attribute the -isms when they don't get their way and want power and control over another.

"She's no fool. She's taking classes outside of work, maybe with company support, but often paid out of her own pocket. She's got side projects where she's developing new skills and learning how to lead, because outside the company walls there's no one who can hold her back. She's got a network and she knows what her friends at other companies make and she has thought about what she might do if her paycheck were 20%, 30%, or 50% bigger."

There are plenty of bad companies that don't recognize good talent. This isn't related to sexism. Finding a better job might be your best option.

"And pay her what she's worth, with a title to match. After all, she's grown more in the last six months than some of your team have grown in the last six years."

This isn't how it works. Regardless of the person, you need to put your time in before getting promoted. You can learn lots, but there are many things you just need to experience...and this takes time.

"Fail to do these things and she will leave, probably after a big project wraps up because even in the end, she's still responsible"

So, because she didn't get a major raise after completing a project after 6 months, she's going to leave? I've worked and managed at many, many places (and now own my own business) and I don't think I would want to hire anyone with this entitlement attitude.

"This article is inspired by the struggles I have heard from many talented, ambitious women who do amazing work that is as good and often better than the men around them"

OFTEN better than the men around them? Can we please not encourage blatant sexism in an article that is supposed to be against sexism? So..many...logical..fallacies.

"These issues are often worse for women of color."

Proof? I also wish we had more statistics and facts and less emotion and hearsay. Come on HN!, we are all about intellectualism...and this article is the antithesis of that!!

"It can be downplaying of the ideas and contributions of women, comments like "she can be abrasive""

Some people are 'abrasive' and need to change their attitude at work. A friend of a friend of mine was called 'abrasive'. She just got out of college and interviewed at a place and told the interviewer that the job was beneath her and she knew more than them. She just graduated from college and had only intern experience. It was well deserved.

"Well-intentioned men and women may still unintentionally reinforce patriarchal patterns and devalue women."

I wish you would have mentioned 'patriarchal' at the beginning of the article, so I wouldn't have to waste my time. But alas, I can't get that time back.

Corporate life is tough and not always fair, but it has nothing to do with sexism on a systemic level. All of these complaints have been happening to men for many years. It sounds like now that women are becoming more of a part of corporate life, they are finding out how shitty and soul-sucking it can be.

This is actually why I started my own company.

Edit: I also checked out some of the links at the bottom of the article (which I won't name here). It's one of the most excluding jobs sites I have ever seen.

I hope one day we can have inclusivity for all, instead of this backward 1950s thinking where one group is accepted and the rest are turned away.

<comment><USER4> There are some studies that try to dive into this often repeated anecdotal stuff you are reading here. Turns out it was observed frequent enough to garner some actual research!

One study found a key perpetuator in divergent career growth along gender lines was was an observation that women had support networks that consisted of other women, who were also less likely to be in management positions. Both the men and women that had professional and support networks consisting of men who were more likely to be in managerial roles found their contributions to be matched with greater career growth.

Wish I could find that study so you could make your own conclusions and read theirs. FWIW it kept my attention because the sample size and time period was decent.</comment></comment>


The Full Stack, Part I - <AUTHOR> http://www.facebook.com/notes/facebook-engineering/the-full-stack-part-i/461505383919 <comment><USER2> > Well, if the table is in InnoDB format it will result in one disk-seek, > because the data is stored next to the primary key and can be deleted in one > operation. If the table is MyISAM it will result in at least two seeks, > because indexes and data are stored in different files. A hard drive can > only do one seek at a time, so this detail can make the difference between > 1X or 2X transactions per second.

Nonsense.

Innodb has clustered primary keys, which means that the row data is attached to the leaf nodes of the primary key index as the author correctly states. However, the leaf nodes and the non-leaf index nodes are actually stored in different segments of the table space! While in the same (giant) file, it is unlikely that they would ever be in contiguous space on disk enough to be read in a single random IO operation.

But it's more complicated than that: if any of the index pages or data pages have been read recently they will probably still be in the buffer pool, which means that they will require no disk operations.

But that's just the seek operation to find the row. The write operation is a different story yet.

What innodb will do is modify the row by marking it with the transaction id in which it was deleted. It will keep the row in place so readers with an older transaction id will still see it until all those transactions are complete. The change in the row and the row page will be written to the copies of the affected pages in memory only. Eventually the data pages and any affected index pages will be flushed to disk, potentially grouped with other changes to the same pages. IO operations occur on the level of reading and overwriting whole pages only, if not more.

Concurrently it will record in the log buffer every change it makes to the pages in memory. This won't get written to disk right away either, it will flush the log buffer to disk once per second in the default configuration.

So there are many more potential disk operations required of innodb than myisam. Generally innodb is preferably because it is vastly more reliable, and because it can handle concurrent read/writes to the same data -- MyISAM basically can't. MyISAM will in fact generally be FASTER for any single operation than InnoDB, because it simply does less.

<comment><USER3> I think you're right. I'll try to come up with a simpler example and update the piece. Thanks!

<comment><USER3> Corrected, though I'm not completely happy with it:

<http://carlos.bueno.org/2010/11/full-stack.html>

</comment></comment></comment><comment><USER4> I started as a performance software person, from memory and cache conscious algorithm design in grad school, to network stack testing, to web server/db server/client-side performance testing and optimization. It is an _excellent_ way to develop that feel for the big picture of how things are working. In enterprise software, there used to be a lot of low hanging fruit and it was fun to get "heroic" results with simple SQL tuning.

The flipside of that experience and mindset is that now, as I try to shift my way towards more functional and declarative programming styles is that I sometimes get sucked into the premature optimization black hole - I overthink rather than just doing some simple exploratory programming.

I keep telling myself I'm going to implement some fairly large project using nothing but lists and a Lisp to break it down.

<comment><USER5> I get around this by implementing the abstract version of my code first; I then implement the abstractions that I used in the abstract version of my code. So I'm not even worried about running code until I have a general idea of what I want it to be doing.

I obviously then rework stuff as I learn that my assumptions were totally wrong, but this way I've started from an incorrect conceptual model; rather than an incorrect full implementation. I think this makes it easier to manipulate.

edit: And I guess the point of that is that according to XKCD, I start at sociology, and work my way down the stack until I get to whatever language/libraries (hopefully not Math) I'm actually programming in. Like some sort of crazy fractal.

</comment></comment><comment><USER6> I don't think I agree with the conclusion that performance will "depend almost completely on the random seek time." You can store the entire 10TB library on 5 2TB spinning drives. 5 drives can easily serve up 500mbps (that's only 60MB/s, one drive territory). So, on to seeking.

2000 streams, 5 drives, that's 400 per disk. Let's say we have the world's worst disks, that can only do 10 seeks per second. 400 / 10 means we have to buffer 40 seconds of data per stream (per seek) and we have to read it in 0.1 seconds before moving to the next stream. 300kbps * 40s / 8 = 1500K of data. 1.5M / 60MB/s disk transfer takes 0.025 seconds, well under 0.1.

I guess that's alluded to by "non standard prefetching", but I don't think it's that advanced. Especially since in a streaming video application, the client software is already going to be doing buffering for you. The bottleneck is bandwidth.

Check my math please? :)

<comment><USER3> This sounds reasonable. AFAIK the default readahead on Linux is 128KB, so you'll probably need to test and tune quite a bit to get it right. I had a paragraph roughly along those lines in an early draft, but decided it was too much detail. "Concurrent reads" is probably more accurate than plain "seek time".

<comment><USER6> The kernel readahead is actually irrelevant. Your app issues 1MB reads one at a time and the kernel will fetch that all at once.

</comment></comment></comment><comment> brown9-2 Reading this makes me really curious how Netflix's Instant Watching service is architected. Anyone have any details?

<comment> contol-m As far as I know, Netflix does not handle the actual streaming of bits - it is done by CDNs like Akamai or Limelight.

</comment></comment><comment><USER7> This is very interesting and well written so someone "dumb" like me can learn a lot about planning and optimisation from this. Riht in the third paragraph I just realised why some SQL query I wrote is so slow, embarassing but true, heh!

<comment><USER8> Are you just inexperienced? Don't prematurely sell yourself short. I'd read that a Rails hosting company found that 70% of their customers hadn't properly indexed their tables, and knowing's half the battle.

</comment></comment><comment><USER9> A much more readable, FB-free version of this is at his blog, <http://carlos.bueno.org/>

<comment><USER10> Thanks, facebook.com is blocked at work.

</comment></comment><comment><USER11> A company well-stocked with full-stack engineers who can communicate makes the execution of good ideas so frictionless and the death of bad ones so quick and painless that it cannot help but to succeed.

If this is the caliber of engineering talent that Facebook values, there should be no surprise they are taking over the world.

</comment><comment><USER12> From the ex-yahoo who got 'famous' by using a microwave near his wifi laptop to simulate dropped packages.</comment>


Saferwall – A hackable malware sandbox - <AUTHOR> https://saferwall.com <comment><USER2> This is a very close site design to rethinkdb. I like it a lot. I am on mobile so I can't view source but I wonder if its a framework, open-source of they just semi cloned it.

<comment><USER3> The site appears to be hosted by Github pages, and uses [http://bitters.bourbon.io/](http://bitters.bourbon.io/)

</comment></comment><comment><USER4> Should a sandbox not be hackable

<comment><USER5> Hackable doesn't always mean crackable :)</comment></comment>


Iranian web developer faces death over photo uploading tool used by porn sites - <AUTHOR> http://www.theregister.co.uk/2011/02/10/iran_web_developer_smut_site_death_sentence/ <comment><AUTHOR> Sorry for the delete & resubmit: I realized the original title of the post totally missed the point, i.e., that he is not faced with the death penalty for developing a porn site, but rather because he had developed a photo uploading utility that was subsequently used -- without his knowledge or consent -- by a porn site(s). AND he has a wife back home in Toronto. This is disgusting. That's like saying that a guy who builds beds should be put to death because an unmarried couple made use of one.</comment>


Failed Aakash Tablet Is A Lesson In India's Long Road Ahead To Tech Innovation - <AUTHOR> http://www.fastcompany.com/magazine/167/aakash-tablet-india-tech-industry <comment><USER2> There is no lesson here. "It's déjà vu all over again".</comment>


Ask HN: Is ShowHN moderated? - <AUTHOR> Having submitted a link to Show HN, it seems like it doesn't appear straight away.<p>Is Show HM moderated, and if so, what is the criteria for acceptance? <comment><USER2> Show HN has its own "new" page -

[https://news.ycombinator.com/shownew](https://news.ycombinator.com/shownew)

If it is popular there it gets a position on the Show HN page, but you can see the time range of content there covers a couple days worth of submissions so it's not at all guaranteed -

[https://news.ycombinator.com/show](https://news.ycombinator.com/show)

If it is comparably popular to regular submissions it can also get a prominent position for a while on the front page of HN itself.</comment>


ESNI: A Privacy-Protecting Upgrade to HTTPS - <AUTHOR> https://www.eff.org/deeplinks/2018/09/esni-privacy-protecting-upgrade-https?h <comment><USER2> My understanding was that ESNI would not make it's way into OpenSSL until it reaches RFC status / standard ratified. It won't be in 1.1.1. Is someone from the EFF going to help OpenSSL support this any time soon? Or perhaps GnuTLS?</comment>


HTTP Intermediary Layer From Google Could Dramatically Speed Up the Web - <AUTHOR> http://tech.slashdot.org/story/09/11/12/1943254/HTTP-Intermediary-Layer-From-Google-Could-Dramatically-Speed-Up-the-Web

<comment><USER2> The quickest way for a 'dramatic' speedup of the web is to install an ad blocker.

Also, 'dramatic' speedups will only lead to pages that get loaded up with more junk.

If that had not happened we'd already have an extremely fast browsing experience. It's like memory and disk space, if the budget increases then there will be some way to spend that budget.

If web pages load in under one second they'll be 'improved' until they load in 3 to 4 seconds again.

spdy:// ? I don't think so.

Let's drop some of that flash and turn on gzip compression (if you haven't done that already) and make sure your cache headers are set properly.

That alone will probably give you a 50% boost.

<comment><USER3> While your points are valid in order for webapps to continue their march in to desktop app territory they need to decrease latency. I think this is what spdy is there for.

I'm sure a lot of fat will be added to apps but if my AJAX requests are snappier I am more then happy to support this.

<comment><USER2> from:

[http://sites.google.com/a/chromium.org/dev/spdy/spdy- whitepa...](http://sites.google.com/a/chromium.org/dev/spdy/spdy-whitepaper)

"To target a 50% reduction in page load time. Our preliminary results have come close to this target (see below)."

The bigger chunk of which seems to come from header compression.

SPDY is targeted to be placed between HTTP and TCP.

It 'only' requires changes to the client and the webservers.

That makes me a little skeptical about the value of their tests, I can't imagine they got the top 500 websites to change their server architecture to allow this test to take place.

They are very much focused on the latency issues but the only references they give are for things related to page load time, which are affected peripherally by latency, but latency is _much_ more of an effect on single connections.

And the only gain from that would be to compress the headers.

If header compression is that much of a deal then I would suggest to add optional header compression to the http standard, not to place layers in between http and tcp.

And that layer would have to add 0 overhead all by itself on single connections or the results would be negative instead of positive.

You can't really support this unless the client supports it as well, think of it as a specialized gateway function inside the browser that knows how to tunnel HTTP over SPDY to hosts that support it, the key factor is interleaving frames of content from different sources. Essentially a packet multiplexer/demultiplexer if I read it all right, that will pack all the requests on the sending side and unpack them at the receiving end to go to their respective handlers.

By the way, the 'server pushes resources before the client has asked for it' is what has been making my webcam software functional for the last 15 years or so.

I clued in to that in '95 or so using the server-push technology and figured out that since I already knew that the next request would be for another frame of the same cam why not send it right now instead of waiting for the browser to ask for it...

</comment></comment></comment><comment><USER4> Out of interest I downloaded the page with curl, then stripped out the JS and other stuff, leaving mostly just formatting and text.

        Before: 178845 bytes
        After :  33604 bytes

That's just the page, and doesn't include images or ads, but it does include the text of the comments.

Just an observation.

</comment><comment><USER5> Compressing http content also means extra processing on both the client and the server side. While this might not be as noticeable on a PC, for mobile phones it sure can be a concern. It will be interesting to see some data on it.

</comment><comment><USER6> Wow. A slashdot link in many months on HN. Telling.</comment>


FCC asks Apple why they rejected the Google voice app - <AUTHOR> http://www.washingtonpost.com/wp-dyn/content/article/2009/08/01/AR2009080101074.html

<comment><USER2> This post is much more public than TechCrunch. Now that it has been updated by a response from AT&T, that is surely true. AT&T says it does not APPROVE applications. Does that mean it only rejects them? Really, you must look at the entire response to realize it could all just be word trickery.

</comment><comment><USER3> TechCrunch alert!

<comment><USER4> Still, smart move to get your content syndicated like that so you can use a very high profile site to link back from.

<comment><USER3> I tried following some links and ended up ping-ponging between the two sites. I guess it's a reciprocal arrangement.</comment></comment></comment>


Designing a crypto-currency for planet hunting - <AUTHOR>

I want to design a crypto-currency for planet hunting. Primarily i'm interested in harnessing computing power to identify likely interstellar planets. Usable data that comes to mind is http://www.planethunters.org/. Using data from their platform or a similar one, we could design a prime coin, but rewards would be for contributing to planet hunting!
Ideally it would be structured like a bitcoin blockchain, utilizing SHA256, after all, the more computer power the (theoretical) better.
Anyone else interested in this project? I'm rather occupied with our startup, but I think this could be an intriguing side-project. I'd like to get feedback and learn if others are interested.
Thanks! <comment><USER2> This is the wrong way to go about it. Create a BOINC project to do the actual data analysis. Use Ripple, colored coins, MPEx, or any other currently usable asset-issuance service to create "planet hunting credits." Each time points are credited to a user in BOINC, send them shares. That's it.

<comment><AUTHOR> I'm going to have to reflect on your answer, but on its face that makes sense. I sincerely appreciate the feedback, dude!</comment></comment>


Stack Overflow Questions - <AUTHOR> https://towardsdatascience.com/finding-the-real-top-stack-overflow-questions-aebf35b095f1?_branch_match_id=512959307986242803 <comment><USER2> Nice project!</comment>