19 years of income for a home, on average - <AUTHOR> http://www.bloomberg.com/news/articles/2016-01-25/hong-kong-scores-a-record-in-survey-of-priciest-housing-markets <comment><USER2> * unless you're in the Bay Area</comment>


Causation Bias (a response to comment about causation w/o correlation) - <AUTHOR> http://theincidentaleconomist.com/reader-response-causation-bias/ <comment><USER2> So the debate is whether Causation causes Correlation, or if they are merely correlated?

Welcome to meta-land.</comment>


Ask HN: How should I spend my $1000 check to help my community? - <AUTHOR> As someone who is fortunate enough to be in a line of work that allows me to (mostly) fulfill my normal responsibilities from the comfort of home with no immediate threat to my job security, along with robust enough savings to support my family in the event that were to change, the proposed $1000 stimulus check, while welcome, wouldn't make a substantial difference in my day-to-day finances. However, it has me questioning how I might use the money to help support those most directly impacted by the closure of restaurants, bars, and other small businesses. A few ideas come to mind, but I'm curious to hear what others think of how best to use this (still theoretical) money to support their communities.<p>- Gifting to family or friends who are directly impacted<p>- Donate to local food bank or other charities/funds established to support those impacted<p>- Spend the money at neighborhood businesses facing the risk of insolvency <comment><USER2> Spend the money by buying services. Sevice workers are having a hard time since people are staying home.

Donating it sounds good but by spending it on a small business it will help save a job and a business which will help greatly.

Also don't overlook the social distance protocol which ultimately will be the saviour if we all follow it.

</comment><comment><USER3> Donation to food banks seems to help the highest critical need people otherwise seeing funds that work with homeless shelters may be a good source to focus on as well.</comment>


UK government responds on Phorm - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/7619297.stm

<comment><USER2> I have been watching this Phorm business for some time now - While I am disappointed that the EU are letting them continue on with it, at least they have stated that companies involved must obtain consent and provide useful information about what people are consenting for ... I still wouldn't bet on the ISP's gaming it somehow though!

</comment><comment><AUTHOR> Background on Phorm: <http://en.wikipedia.org/wiki/Phorm> .</comment>


The latest from the LHC - <AUTHOR> http://cdsweb.cern.ch/journal/article?issue=30/2009&name=CERNBulletin&category=News%20Articles&number=3&ln=en

<comment><USER2> The Apollo code reminds me of the Feynman inquiry: by then he had not much to loose by saying the truth.

The funny thing is, that his remarks are still valid and apply to current "big science" projects and we still didn't quite manage to break through communication barriers and learn to deal with thermal expansion and rigidity change (spring constants spring to mind) at different temperatures.

At CERN, they call this the silent killer. Just let's hope for the best... while doing everything to see it working. And when it _does_ work: i.e. pp collisions and recording of those events (not cosmics), then I'll be one celebrating the most. But until then, no propaganda, please.

 _"For a successful technology,"_ Feynman concluded, _"reality must take precedence over public relations, for nature cannot be fooled."_</comment>


US Military Warns Of Oil Shortages By 2015 With Significant Impact - <AUTHOR> http://www.zerohedge.com/article/us-military-warns-oil-shortages-2015-significant-economic-and-political-impact-especially-we

<comment><USER2> Well, if they really believe it they should be aggressively funding electric/hybrid and fuel cell vehicles. They've got the kind of budget that can make a big difference in innovation.

<http://en.wikipedia.org/wiki/Darpa></comment>


The Siren Song of Startups - <AUTHOR> http://cacm.acm.org/blogs/blog-cacm/29807-the-siren-song-of-startups/fulltext

<comment><USER2> Seems like a very gloomy view of start-ups. I'm not quite sure in what kind of universe the founders are last in line to take in profits from a start-up. If that is the case anywhere, I'd strongly encourage those founders to get out of there and come to backwards old England and start a start-up without professional investors. However, I don't think that's the case. The evidence doesn't support that idea.

Certainly, joining a start-up as an employee "to get rich" would be the wrong idea. But I imagine many of us here are founders, and though we're not doing our start-ups for the sole purpose of getting rich, the fact that it's a possibility is certainly important. Would you bother working on your start-up if you knew for sure that it would never make you more money than you could make burger-flipping? (directly or indirectly)

<comment><USER3> Actually, I think this is a pretty realistic - and appealing - view of startups, but it's also very much a description of what the experience of a VERY small startup is.

I think it's important to note that there are different stages of a startup's lifecycle. It's been my experience that venture funded startups aren't nearly as risky as people make them out to be.

My guess is that the typical venture funded startup has a lifespan of at least 4 years. That's probably close to how long the typical college grad will want/should stay at their first job.

Bottom line: join a startup, don't start one.</comment></comment>


Kik's defence to RIM's infringement lawsuit - <AUTHOR> http://blog.davidlam.ca/2011/02/kiks-defence-to-rims-infringement.html

<comment><USER2> "in the statement of defence Kik asserted that Ted, the CEO of Kik, did not have access to the BlackBerry Messenger (BBM) source code while he worked at RIM's BBM team as a Project Coordinator. Kik also denies that Ted had access to RIM's development plans, market research, and other internal reports related to BBM while working as part of RIM's BBM team, as RIM had alleged in its statement of claim."

Once upon a time, Yours Truly was also a Project Coordinator at RIM and that was definitely not true. I was not on the BBM team, but tons of code was publicly browsable in the SCM and I was privy to all documents (PRDs, MRDs, project schedules, etc) which had anything to do with the team I was on. In short, I call BS.

<comment><USER3> While I don't dispute anything you're saying, I can also say that in lawsuits like this, it's pretty typical for the plaintiff to generally trump up the role/abilities of the defendants in the suit to try to maximize damages.

That happened to me. I was involved in a suit during the dot-com-bust (I followed my former manager to his startup - they wanted to shut us down), and my role was inflated from worker bee who wasn't on any projects to a senior level manager type with fiduciary responsibilities. That was news to me, because had I actually had that type of role, I probably wouldn't have left in the first place.

Like the blog author says, the truth is probably somewhere in the middle.

<comment><USER4> Very good point. Somehow everyone is skipping the fact that Ted was a CO-OP STUDENT during his work at RIM.</comment></comment></comment>


Apple Response to Hey - <AUTHOR> https://twitter.com/DylanByers/status/1273718506287099904 <comment><USER2> _Thank you for being an iOS app developer. We understand that Basecamp has developed a number of apps and many subsequent versions for the App Store for many years, and that the App Store has distributed millions of these apps to iOS users. These apps do not offer in-app purchase — and, consequently, have not contributed any revenue to the App Store over the last eight years._

I dont know about others. To me that is _very_ rude.

Edit: It turns out Fastmail is getting the same treatment [1], so Apple isn't selectively enforcing their rules. That is at least one good tick in my book. But that sentence above still reeks of foul smells to me.

[1] [https://twitter.com/Fastmail/status/1273782718053187589](https://twitter.com/Fastmail/status/1273782718053187589)

</comment><comment><USER3> "Thank you for being an iOS app developer. We understand that Basecamp has developed a number of apps and many subsequent versions for the App Store for many years, and that the App Store has distributed millions of these apps to iOS users. These apps do not offer in-app purchase — and, consequently, have not contributed any revenue to the App Store over the last eight years."

To me it is very very rude. And free apps do contribute to app store. And they do charge 99$ so APPLE should stop saying they have not contributed to revenue for 8 years they do have paid 99$.

</comment><comment><USER4> Apple continues to pretend that it applies these rules to all developers when it does not:

[https://twitter.com/dhh/status/1273720080291950593?s=20](https://twitter.com/dhh/status/1273720080291950593?s=20)

<comment><AUTHOR> I respect DHH a lot, but I think he's got it completely wrong here, drawing false similarities between other apps which are clearly very different in their nature and I also don't think his slightly aggressive approach to "fight" with so much bad language and accusations in the public before trying a more civil and less inflammatory approach in private. It comes across that he thinks using his online clout can help him to be treated differently and pressuring Apple to his will, rather than play by the same rules than everyone else.

I think both is possible, play by the rules to get your app approved AND at the same time challenge the existence of those rules in parallel via a legal and civil way. What he's doing instead though is playing the stroppy revolutionary kid who doesn't want to play by the rules and wants to put everything on fire and at the same time get their toy out whilst shit is burning. Not the best approach from my limited life experience.</comment></comment>


Turn a form into chat - <AUTHOR> http://chatform.ai/ <comment><USER2> Is it possible to create a user registration page using chatform?</comment>


NYT Personals - <AUTHOR> http://www.aaronsw.com/weblog/pacer <comment><USER2> Just another reminder that success is not transitive - e.g. he was arguably involved in RSS 1.0/Reddit's formative days (though he was fired), it does not translate to being successful at confidently meeting women.

A classic blog post of his from his Stanford days.

"Although I have not even seen her face nor had time to recognize her, somehow my body knows she is The Girl In Question (hereafter TGIQ). She turns back for just a moment to make sure her friend his behind her and while I don't even have time to recognize her face, my heart explodes again. I later realize it must be her by going over the image in my mind and seeing her trademark stylish brown coat."

<http://www.aaronsw.com/weblog/001448>

<http://www.aaronsw.com/weblog/001449>

I also think that liberating government documents is not really a 'bad boy/alpha male' action the type and quality of woman I assume (maybe) he is seeking is seeking..

"It's not even about a $200 dinner,Ms. Petrus said. It's that he's an alpha male, he's aggressive, he's a go-getter, he doesn't take no for an answer, he's confident, people respect him and that creates the whole mystique of who he is."

<http://www.nytimes.com/2009/01/28/nyregion/28daba.html>

<comment><USER3> _...though he was fired..._

Are you referring about his leaving Condé Nast after they bought reddit? That seems more of a failure of their corporate structure than Aaron.

 _I also think that liberating government documents is not really a 'bad boy/alpha male' action (the type and quality of woman I assume (maybe) he is seeking) is seeking_

I don't think this post is as serious as you take it to be... and although I don't really know him aside from his writings, I can't imagine Aaron liking a girl who doesn't appreciate his political work.

<comment><USER2> OK, just re-read it. It is not-caring-what-people-think/humorous. It takes a certain amount of confidence to put yourself out there. I think that might be attractive to the attractive, poly-math chick he may be seeking.

Recall the story of a guy who saw his dream girl on the train in NYC: [http://abcnews.go.com/technology/Story?id=3828525&page=1](http://abcnews.go.com/technology/Story?id=3828525&page=1)

<http://www.nygirlofmydreams.com/>

<comment><USER4> I don't really think that Aaron was actually trying to get chicks. I think he might have had tongue firmly planted in cheek.

</comment></comment></comment></comment><comment><USER5> The only thing interesting about that was the photo. Michael Francis McElroy did a fantastic job of capturing what I would think Aaron is--a man behind a computer, in a dimly lit room.

</comment><comment><USER6> Here's the NYT piece: [http://www.nytimes.com/2009/02/13/us/13records.html?scp=1...](http://www.nytimes.com/2009/02/13/us/13records.html?scp=1&sq=aaron%20swartz&st=cse)

</comment><comment><USER7> does this guy ever do anything else but talk about himself? HN is going downhill when narcissists are now on the front page.

</comment><comment><USER8> Dating seems like a good way to make use of having a NYT article written about you.

The thing is, if you just get out and hang out with fun people (girls) you won't need the NYT coverage.

On the other hand, if fame is your primary attractant, you might not like what gets attracted.

</comment><comment><USER9> Is he ruining it for everyone by abusing the service?

I once requested my FBI record (I'm British). There was no file on me.

More interesting, I also asked for deceased film producer Don Simpson's file - to my surprise, he has no record.

<comment><USER10> >I once requested my FBI record (I'm British). There was no file on me.

Congratulations. There is now. They start a file on you when you request information from them.

<comment><USER11> If true, I find this more amusing than anything else.

I'm considering sending a letter once a year, requesting my file. I'll randomly include odd references, and maybe the occasional Haiku. Sometimes I'll type using all caps, other times I'll hand write in my admittedly poor cursive. Should be amusing to someone 20 years from now, or if I ever commit some interstate bank robbery. Its very important to plan for potential conspiracy theories.

</comment></comment></comment><comment><USER12> transparency is crucial to a free market and democracy.

that said, there are times when privacy should be considered, such as health records (as long as insurance is private) and criminal records.

fortunately, privacy isn't always at odds with transparency (eg, anonyminity)

</comment><comment><USER13> Speaking from some experience with the whole New York Times / government computer security thing ([http://query.nytimes.com/gst/fullpage.html?res=9C07E5DB173FF...](http://query.nytimes.com/gst/fullpage.html?res=9C07E5DB173FF930A25752C0A9609C8B63&sec=&spon=&pagewanted=all)), it sadly doesn't make for the best pickup lines. Talking about whichever federal agency (or agencies) ended up coming after you might make for a good story once you already have a date, though.

Either way, what's really important is that Congress reforms 18 USC 1030 to make it safe for people who know something about computer security to report problems without the threat of being investigated by the FBI, USAO, etc.</comment>


Cybernetics - <AUTHOR> http://en.wikipedia.org/wiki/Cybernetics <comment><USER2> Cybernetics is a catch-all term for using multiple fields to study any system involving feedback loops or state changes, usually with the goal of optimization. Since the term "system" is loosely defined as just about anything and many disciplines can be used to study them, in very general terms cybernetics can be considered the study of cause and effect.

Some promote the scientific approach of repeatable experiments with data, but others promote the interpretive "arts" approach since repeatable experiments are impossible in some situations. One of the more distinctive qualities of cybernetics is the attempt of using multiple disciplines to achieve both depth and breadth of analysis. Of course, the trouble is there are always more fields and methods available, so the depth and breadth can always be increased.

A recent discussion on HN involved an article that _might_ be classified as cybernetics:

"Cognitive Overhead, Or Why Your Product Isn't As Simple As You Think (techcrunch.com) " <https://news.ycombinator.com/item?id=5583759>

The article did a good job of explaining the feedback loop caused by "Cognitive Load" and providing solid examples. On the other hand, it lacked breadth. They missed the important difference between "start load" and "run load" as well as the effects of continued load over time. They made a good point about how reducing _initial_ cognitive load is good for growth due to reducing friction. They missed how _continuing_ load results in people gaining experience and familiarity (e.g. learning more uses, learning additional features, etc.). They also missed how these slowly trained users result in an effective form of vendor lock-in by becoming an impediment to competition (resistance to change). It might seem odd and obvious, but both time and experience are important state changes worth understanding and measuring.

DISCLAIMER: I hate to let anyone down, but I'm actually not very well versed in cybernetics. The only reason why I know about this stuff is due to my dad (in his mid 70's) having his masters degree in cybernetics (communications in business environments).</comment>


New jaanix lets you "tune" on people. Feedback? - <AUTHOR> http://jaanix.com/?yc

<comment><AUTHOR> How would you expand on this? Should it let you do the same on your RSS feeds? Should it be a an aggregator like friendfeed? Or be a twitter client? How would you use it?

<comment><USER2> as a reddit, hacker news, digg clone, jaanix really is better, but unfortunately it doesn't have the community behind it (at least when I visit). I think I would rather it be an RSS reader, or something similar to that... It's obviously good at filtering, and I think that applies really well to doing things with RSS.

EDIT (adding more): What about a big giant pool of people's RSS feeds to get content? You could then filter on users (by filtering on which feeds they subscribe too). You like @rms and @pg for instance, but aren't so interested in @apgwoz's feeds... Though, I'm not sure, that seems like it'd be of limited value.

<comment><AUTHOR> Thanks for the idea, that would be a great way to discover new feeds! Instead of blind recommendations like in google reader here you would know who and why is recommending you feeds.

</comment></comment></comment><comment><USER3> New again? <http://news.ycombinator.com/item?id=128627>

I do like the site, though. Not a big fan of the name.

<comment><AUTHOR> It got a new look, a new core feature.

Should we just re-launch it under a different name?</comment></comment>


Lagrangian Neural Networks - <AUTHOR> https://greydanus.github.io/2020/03/10/lagrangian-nns/ <comment><USER2> On a personal note, I consider the university class where I learned about Lagrangians for the first time to be a pivotal moment in my life. It was the first time I experienced a fundamental sense of awe and beauty about a mathematical construct, in physics or otherwise. I'd thought physics was useful and interesting before that, but seeing derivation of and application the Lagrangian formulation to mechanical systems was, and is, simply gorgeous to me. And as someone who recently began dipping their toe into neural networks, this is really very cool.

<comment><USER3> Chris, glad you like it. I can relate to that feeling, which I also had as an undergrad. It was a big motivation for this work -- and I think the analogy can go even further. For example, there's a really cool lecun paper about NN training dynamics actually being a lagrangian system: [http://yann.lecun.com/exdb/publis/pdf/lecun-88.pdf](http://yann.lecun.com/exdb/publis/pdf/lecun-88.pdf). Another thing I want to try is literally write down a learning problem where S (the action) is the cost function and then optimize it...

<comment><USER2> That does seem interesting! After skimming that paper, I think I'm going to need to sit down with it in order to really parse through things, though. Some of the operator combinations seem to be things I haven't worked with jointly before. I'd definitely be interested to see the results of using the action as the cost function, though!

</comment></comment></comment><comment><USER4> I found the previous Hamiltonian Neural Networks [0]. If the authors are here, I'd be interested to use [1] for a version with dissipation.

[0] [https://greydanus.github.io/2019/05/15/hamiltonian- nns/](https://greydanus.github.io/2019/05/15/hamiltonian-nns/)

[1] [https://arxiv.org/abs/1902.04598](https://arxiv.org/abs/1902.04598)

</comment><comment><USER5> This is a neat idea, and it's interesting to see how well it handles a chaotic system like the double pendulum.

I'd love to see a plot of the analytic Lagrangian vs the numerical one over the two parameter space of the double pendulum. How uniform is the approximation? Since the double pendulum isn't ergodic, I'd be curious to see if there's a correlation between probability of occupying a state and precision there. If there were it could be used as a hint of where to look for non-ergodic behavior in experimental systems.

Another possible fun thing to do with it: imagine you have a chain hanging from two points in the presence of an uneven mass distribution producing gravity. Since you've got the machinery in place for the calculus of variations more generally than just Lagrangian mechanics, you might be able to get the neural net to produce an estimate of the mass distribution from the shape of the chain, which is a toy example of something that might be usable in mineral exploration.

</comment><comment><USER6> Hi, I work in a highly related field and I'd like to ask a few questions if you wouldn't mind. I found the work very interesting. My understanding is that essentially, because of the way you have formulated the problem, you're able to add a loss to encourage the NN to learn the invarience rather than enforce it strictly. Is this correct?

I've tried implementing something somewhat related where I had a rotationally invariant learning target but was trying to use a feature vector which wasn't. I would randomly rotate my samples and add a loss function on the gradient of the rotation parameters to encourage the gradient w.r.t. rotation to be 0. Maybe in 2D this would have worked but in 3D it seemed to be too difficult for the NN to learn well enough for conservation of energy. It seems your examples use relatively simple model systems as examples. Do you have any insight into how this might work with more complex invariences?

<comment><USER7> No, in this paper we enforced the Lagrangian structure is enforced as a hard constraint, via the model architecture. It's not just a loss term.

Soft constraints via loss functions can also help, but in my experience they are much less effective than hard constraints. My impression is that this is pretty broadly consistent with the experience of others working in this field.

For neural nets with 3D invariance, I would strongly recommend looking into the literature on "group equivariant convolutions". This has been very active area of research over the past few years, e.g., see the work of Taco Cohen: [https://arxiv.org/abs/1902.04615](https://arxiv.org/abs/1902.04615)

<comment><USER6> Hmm, I must be misunderstanding the implementation somehow. Thanks for the tip. I'll have to dig a bit deeper to understand this work here.

</comment></comment></comment><comment><USER8> Since you found a way to model a Lagrangian without an analytical solution, wouldn't it be interesting to throw data from systems we don't _usually_ assume to be, and find out if they could be modelled as one by looking at the error?

</comment><comment><USER9> I'm a lattice field theorist, exploring how to leverage NN in algorithms for quantum field theory that remain exact even with NNs in them, so that the NNs just provide acceleration.

One annoying thing I've encountered is that I have some symmetries that I cannot figure out how to enforce. For example, if I have two degrees of freedom a and b and know that my physical system has a symmetry under exchange of a and b. Suppose I want to train a network to compute something in my system. For each configuration of my system I can train on (a,b) and (b,a). But the order in which I feed those as training matters, so that the network only has _approximate_ exchange symmetry, rather than exact.

Is there a way around this inexactness?

<comment><USER7> You can enforce exact symmetry in neural networks with the right sort of model structure. For permutation invariance in particular, take a look at Deep Sets: [https://arxiv.org/abs/1703.06114](https://arxiv.org/abs/1703.06114)

</comment></comment><comment><USER10> Interesting, coming from physics rather than an ML background what does it mean "practically" to learn a symmetry of a system? Is it the quantity <=> Noether's theorem being constant?

<comment><USER11> Having skimmed the research paper and done some work with both dynamics and ML, my interpretation of their statement is the following:

You want to learn a function that represents the dynamics of your system, either as a function of the system state or some output like a picture of the system. If you just apply some NN technique directly, this is possible but will require a lot of data since the NN doesn't have any knowledge of physics. If you use their system, you are trying to learn the Lagrangian of the system, which contains information on e.g. its symmetries, and bakes in physical knowledge into the learning problem at hand. As a result, less data is needed to learn the system dynamics.

<comment><USER12> I don't know why symmetries related with physics or Lagrangian of the system? Could you give me more specific instructions or some reading materials?

</comment></comment></comment><comment><USER13> As a high school student with an admiration of mathematics (and therefore of physics, ML, and whatnot :D) I must thank the author for this.

Glancing over the paper I understand little, there's too much math I don't know (yet— starting uni this year— I promise I'll get there) but the application is absolutely beatiful, as I have taken physics for almost two years now, Appendix B made my day.

</comment><comment><USER14> Excerpt:

The Principle of Least Action

[...]

At first glance, S seems like an arbitrary combination of energies. But it has one remarkable property.

 _It turns out that for all possible paths between x0 and x1, there is only one path that gives a stationary value of S. Moreover, that path is the one that nature always takes._

</comment><comment><USER15> Why aren't all scientific papers written this simply?

</comment><comment><USER16> Great post. This is why I love hacker news

</comment><comment><USER17> For God's sake please use another font. I don't understand this minimalism trend that emphasizes on _thin_ fonts. Stop it.

<comment><USER18> Counterpoint: I think the typography is wonderful and highly readable as is.

<comment><USER19> I think it may be an issue with font rendering on different operating systems, screen sizes, resolutions, etc.. The webpage looks quite different on my phone vs. tablet vs. laptop. It's least readable on my tablet (Microsoft Surface 2) which has an insanely high dpi.

<comment><USER3> Author with the edgy fonts here. I think you're right ben. This gives me motivation support mobile/tablets/etc., so that'll happen soon</comment></comment></comment></comment>


There's No Such Thing as a Protest Vote - <AUTHOR> https://medium.com/@cshirky/theres-no-such-thing-as-a-protest-vote-c2fdacabd704#.p45fxdiwg <comment><USER2> My favorite quote:

> In multi-party systems, voters get the satisfaction of voting for smaller, > ideologically purer factions — environmental parties, anti-immigrant > parties, and so on. The impure compromises come when those factions are > forced to form coalitions large enough to govern. The inevitable tradeoffs > are part of the governing process, not the electoral process. In America, by > contrast, the coalitions are the parties. Our system also produces > alternation of power, and requires compromises among competing interests, > but those compromises happen within long-standing caucuses; issues come and > go, but the two parties remain. This forces the citizens themselves to get > involved in the disappointing tradeoffs, rather than learning about them > after the fact. No one gets what they want in a democracy; two-party systems > simply rub voters' noses in that fact.

I've been wishing for IVR precisely because I want third parties to be viable, but this is an interesting point. You still have to have coalitions within government.

Although maybe if there were more single-issue parties, they could push through change on issues that the other parties care less about.

<comment><USER3> That's a great quote. Interestingly, it strongly conflicts with the first several paragraphs of the article:

> For all the eloquence and passion and rage in these arguments, however, they > suffer from a common flaw: there is no such thing as a protest vote.

> In 2016, that system will offer 130 million or so voters just three options:

> A. I prefer Donald Trump be President, rather than Hillary Clinton.

> B. I prefer Hillary Clinton be President, rather than Donald Trump.

> C. Whatever everybody else decides is OK with me.

> That's it. Those are the choices. All strategies other than a preference for > Trump over Clinton or vice-versa reduce to Option C.

> People who believe in protest votes do so because they confuse sending a > message with receiving one.

> But it doesn't matter what message you think you are sending, because no one > will receive it. No one is listening. The system is set up so that every > choice other than 'R' or 'D' boils down to "I defer to the judgement of my > fellow citizens."

Those paragraphs of invective are accurate _as to the election_ , but they are not accurate at all _as to US policy_ \-- for the reasons described in your quote! The R and D policy platforms shift over time, as the vote share associated with the existing platforms moves away from 50%. Those "meaningless" protest votes are watched carefully by party operatives, because they are signals that guide what policies the parties shift _to_.</comment></comment>


My journey with Rust in 2017 — The good, the bad, the weird - <AUTHOR> https://medium.com/@fschutt/my-journey-with-rust-in-2017-the-good-the-bad-the-weird-f07aa918f4f8 <comment><USER2> 1\. Why are you're learning a language at the same time you're trying to launch an MVP? And a fairly involved language such as rust.

2\. You're complaining about windows32 API being slow, but blaming it on .NET ("I don't know if it was attributed to Windows or the application programmers, but I attributed Windows' built-in functions with being slow and having shitty PDF output, which is why I refused to use anything related to Win32 or .NET").

Windows API is C (or internally C++).

3\. Is display a bottleneck? I never developed GIS applications, but your display is 2D and doesn't have to be real-time. I would assume that the "back end" of the program is doing most of the calculations, and the display just outputs it (not like, say, a 3D game where the rendering engine does a significant chunk of its own work).

<comment><USER3> I did not get that as well.

Windows does not have PDF generation, its support has been recently introduced in Windows 10.

So most likely it was a third party library.

EDIT: It was actually introduced in Windows 10, not 8.

<comment><USER4> Where's the Win8 PDF generation? I can't find it on MSDN. Unless we're talking about GDI print -> target "print to PDF"?

<comment><USER3> I was wrong. Actually it was only introduced in Windows 10.

[https://docs.microsoft.com/en- us/uwp/api/windows.data.pdf](https://docs.microsoft.com/en- us/uwp/api/windows.data.pdf)

</comment></comment></comment></comment><comment><USER5> Software taking half an hour to generate a PDF probably has nothing to do with the performance differences between bare metal and garbage collected languages.

<comment><AUTHOR> Very probably, but I feared that it was the fault of some framework they were using, so I wanted to stay clear of whatever they were doing. My library can export even huge PDFs in less than 500ms - but I have heard this "half an hour for a PDF" from other applications, too. I have no idea what these frameworks are doing. They seem to be accessing the disk a lot, like a lot. I noticed that the time for exporting a PDF went down (in my old company) when we switched to Macs that had an SSD. In my library, this wouldn't make much of a difference, since the document is first generated in-memory and then written out to the disk with buffered IO.

Users usually just blame their computer ("it's slow, let's grab a coffee"), but to me this performance is unacceptable.

</comment></comment><comment><USER6> I am wondering why the author didn't opt for a language/platform with a mature PDF and GUI library?

If I read the article correctly, it would have halved his development time...

<comment><USER4> Which one would that be, then?

<comment><USER7> Java? If it got one thing going for it, it is maturity.

<comment><USER8> Yeah, I would have recommended Kotlin. Runs on the JVM, so benefits from the matureness of Java, but is a more modern, and better designed language. A reason to choose Rust over this is if you actually have reason to believe you will need some extra bare metal performance over a garbage collected language, or you will need multiple threads. From what I can tell, the author did not really have good reason to believe any of those things, they just wanted to stay clear of whatever was wrong with the software they used at work, which a JMV based solution should have done. I am glad it worked out for them though, and knowing Rust is a good asset to fall back on, whereas learning Kotlin should be pretty easy for them. Even so, I like that with Kotlin you can take advantage of the most mature IDE ever made InjelliJ IDEA. I think they would have completed their project faster with this. That being said, the program they ended up with sounds very fast and it probably is faster than if they wrote it in Kotlin. It was the "right" move in the sense that it seems to have worked out well for them. Was it the "best" move? Most moves are not, and they don't need to be. Whether or not Kotlin would have been better probably depends on if it was better to finish faster or have an even more blazingly fast program at the end. I don't think a Kotlin version would have been slow or had any of that wait for 30 seconds nonsense, but it probably would have been a little slower. Would that a "little slower" have mattered? It depends on who is using the program and how they are using it. It always feels nicer to have a program that feels like instantly responds to your every whim.

</comment></comment></comment></comment><comment><USER9> I started a reading the article expecting a critique of Rust, and I'm halfway through and it feels like I'm reading 2014-esque React philosophies on UI management.

<comment><AUTHOR> Well, as I said in the first sentence, the article is not only about Rust. I didn't want to write the next "memory safety is great" post, there are enough of those. I just wanted to present interesting problems and pitfalls I came across in 2017 and how I solved them using Rust.

</comment></comment><comment><USER10> He didn't link to the product he's building. So I looked up the company he's listing himself as working at at found this: [http://maps4print.com/](http://maps4print.com/)

</comment><comment><USER11> I often dream about doing what the author is currently doing: Tooling around, writing software in a language I want to learn full-time. If I could get a patreon going...

ANYWHO, I didn't come here to malign the author. I came here to ask a question.

( For clarity, I'm an experience dev, computer science degree, been a developer full time for 6 years out of college and two years while in college )

I see a lot of discussion in here about developing GUIs in Rust. Writing native GUIs with Rust sounds awesome to me, and I'm drawn to it for the obvious benefits.

One of the things I want to do in 2018 is learn a new programming language. Last year I learned groovy, which is terrible, and Elixir, which is great and I highly recommend it.

I'm currently tore between three languages: Rust, Reasonml, and Scala

They have the following requirements:

\- EXCELLENT type system \- Functional \- Productive \- Portable

My goal is to write GUI applications that help me design my board games.

* Scala

Scala has a nice type system, runs on the JVM so we get all of that sweet sweet Java interop, is functional with a mutable escape hatch, and is a "boring" language that is used extensively.

Additionally, the story for writing GUI applications for Java isn't as slick as web technologies.

Listen, I'm a millennial. We don't believe in anything. I don't mind opening up a web browser to interact with a graphical user interface, so languages with a better web technologies story is more attractive to me.

Scala is not much of a departure from my previous languages, so I fear I wouldn't learn much.

I already have Elixir for writing restful APIs and GoLang/Hugo for static sites, so Scala over-laps with these use cases making it less productive.

* Reasonml

Reasonml is a newer language from Facebook that compiles to the OCaml syntax tree, and then uses the OCaml compiler to produce the machine code.

Currently, Reason's only target is Javascript, but the community has already written a bunch of back-ends to have reason output to other formats.

There is a Facebook-developed React library called ReactReason, so targeting web technologies is Reasons JAM. A lot of Messenger.com has already been re- written using reason.

Reason has a language server implementation that hooks up to my Emacs config quite nicely, so I'm efficient in my development environment.

Reason uses OCaml's type system, which has 25 years of development and is extremely effective.

Reason has a compiler. After working with dynamic languages for so long, I have learned to love my compiler.

Reason is designed for productive Javascript interop, so I have access to the gigantic nodejs ecosystem.

The humans who are d

Reason ticks a LOT of my boxes, but it has some warts:

\- Not a perfect story for async programming. \- Does not have a swagger- codegen back-end for stubbing out types based on my API docs. \- Special little snowflake language with a small community \- Really only good for front-end development \- Is the type system and other language primitives THAT MUCH BETTER than Typescript + ImmutableJS?

* Rust

Rust is the language I WANT to learn and use, but I am hesitant for a number of reasons.

I want to learn rust because:

\- Aside from a teeny bit of C / C++ usage in college, I've not written in a low level language that requires me to think about garbage collection and I think it would be a useful exercise. \- It's extremely fast. \- It has some excellent concepts, like the borrow checker, that will expose me to new ways of programming. \- Will be nice to have a low-level language in my tool belt. \- Quickly growing community, a good opportunity to contribute FOSS.

I'm hesitant because:

\- I'm concerned it doesn't fit my use case of writing GUIs. \- I want it to be a PRODUCTIVE langauge, and MAKE STUFF, not writing glue to get the stuff I want to work.

<comment><USER12> _Scala has a nice type system, runs on the JVM so we get all of that sweet sweet Java interop, is functional with a mutable escape hatch, and is a "boring" language that is used extensively._

I did a bit of Scala in a previous job. I'm not sure i'd call it boring. Not because it's exciting - because it's infuriating. Way too many features, way too much overthinking, way too many clever-dicks in the community. If you want to learn an excellently-typed, functionally-inflected, productive, portable language on the JVM, i'd look at Kotlin. It's like the 20% of Scala that gives you 80% of the power.

Rust is pretty great. I came to Rust from a 95% Java background, and picked it up fairly quickly. I wouldn't say i've mastered it, but i can get things done. I have no idea what it's like for writing GUI apps, though.

<comment><USER10> My impression of Scala is that it has no taste, design, direction, or style. It's just a huge pot of poorly integrated features. It's like PHP 4 in this regard.

I'll take a language with some resemblance of a coherent design like e.g. Kotlin any day over it.</comment></comment></comment>


Elon Musk is pushing the human race forward - <AUTHOR> http://murtza.org/2011/12/27/elon-musk-pushing-human-race-forward/ <comment><USER2> Elon Musk is my ultimate role model as an entrepreneur.

This article, for me, is somewhat bittersweet. I look up to Elon Musk and what he's doing, because it's really making a difference in the world. That's what I aspire to do someday. But my day to day job is as the first engineer of an advertising startup, where we make boatloads of money helping compagnies better monetize and promote crappy mobile games. Sometimes I wonder if I'm creating any value in the world.

Hopefully this'll be a stepping stone towards financing a startup that'll be a little more meaningful.

<comment><USER3> > Sometimes I wonder if I'm creating any value in the world. ... Hopefully > this'll be a stepping stone towards financing a startup that'll be a little > more meaningful.

I think almost everyone thinks this, but y'know what?

It's a lie. People keep saying they'll do what really motivates and engages them real, real soon... just as soon as this obviously-must-be-done thing is done.

But life, life is a series of obviously-must-be-done things. At some point, you need to stop doing them and start doing what actually matters to you.

You can break away from the grinding routine in a responsible, steady way. Easiest way to start? Wake up 1-3 hours earlier, and spend your peak creative time on something incredibly meaningful to you. Could you do that?

I don't trust the future. Everyone says they're going to do things in the future, and most people don't do 90% of them. If you're really serious about changing the world, the best time to start is yesterday, but the second best time to start is right now.

<comment><USER4> Although I am probably not the intended audience of your message, I can't agree with the sentiment. Akrasia has to have a reason, even if it makes no rational sense, and all my believing in "stop doing [unimportant things] and start doing what actually matters" seems to do is make me feel guilty and worthless for being unable to find the motivation to do what actually matters to me. I know what I'd like to be doing, but I also know I'm not motivated to do it. What's a _real_ solution?

<comment><USER5> > I know what I'd like to be doing, but I also know I'm not motivated to do > it.

You just contradicted yourself. Being motivated to do something _means_ wanting to do it.

The problem is that "What do I want to do" actually has two meanings. It means "What would I like to be doing each day" and it means "What do I want to have done". These are very different questions, and they have different answers. I'd like to have fed the poor, but I would not enjoy standing on the street asking for donations from passers-by. I want to be designing computer games, but I won't be particularly proud of writing Battlefield N+1.

I've spent years optimizing for how my life will look in retrospect. This came as a revelation to me, but if I look back at my fondest memories over the past few years, none of them have involved big goals. Instead, they've all been things that were fun to do, like gamejam and trapeze lessons. This year I've got a new plan: -Ofun. I might not change the world, but maybe if I'm enjoying myself a lot more that'll be ok.

</comment></comment></comment></comment><comment><USER6> I think SpaceX's success had more to do with the military and space business needing a new public face. SpaceX's executive bios read like a who's who of the space industry. I think people seem to think that Musk reinvented rocketry in three years, which is unrealistic. It's a nice made for TV story, but most corporations probably couldn't swing hundreds of millions in fed contracts without some serious connections.

<comment><USER7> He hasn't reinvented rocketry, he's reinvented rocket manufacturing.

<comment><USER8> A lot of reinventing seems to be done due to ITAR and monosponies.

</comment></comment></comment><comment><USER9> While not anyone has the luxury of bootstrapping a space company in their 20's.. I still think most startups have lots of other opportunities to tackle bigger problems. The problem is we hang out in tech, and aren't exposed to those problems. But if we hang out with biologists, doctors, teachers, etc.. they'll all tell you problems that need solving. Technology can't solve everything, but paired with the insight of someone from those other fields, it can make a dent.

</comment><comment><USER10> Nissan and Chevy are already shipping electric cars. There are other private companies pursuing private space flight. Elon gets the love from the Valley because he's from here, but he's an entrepreneur just trying to make money on what's hot. There's nothing wrong with that, but let's hold off on the deification.

<comment><USER11> I'm in the space business, and there are no other organizations in the world doing space the way Elon is with SpaceX. The framework is entirely different, which is far more important than you might give credit. None of his competitors are doing business in a way that will credibly open up space as an entrepreneurial frontier like we have here in the valley.

<comment><USER12> Can you elaborate? I used to work in the space industry, but it's been some time.

I spent some time at Orbital at a time when they were trying to launch ORBCOMM. What they were doing seems similar in feel to SpaceX. I also noted that ORBCOMM is one of the first scheduled launches for SpaceX.

Interestingly, Orbital was started by an entrepreneur with a vision of small launch vehicles and he managed to actually pull it off- it was not some huge spinoff of an existing giant. I wonder how much the two are talking.

Friends of mine who worked on the early days of Orbital's Pegasus described a situation that sounded very startup-like to me. (I worked there in the late 90's, but on Hubble, not Orbital's commercial projects).

Orbital had modest success (if an IPO can be considered modest). So it seems not only plausible, but likely that a new approach is what is needed here. Perhaps SpaceX is the next iteration of a leaner approach that will actually scale to the meet the grand vision.

<comment><USER11> In the quickest summary, SpaceX is structuring their business in such a way as to grow fast, get profitable, and remove the need for external funding. They are using COTS (government funding) in much the same way as a silicon valley company would use a VC to provide capital needed for rapid growth. They've been using that money coming in the door to create a non-government market and to make their technology very cost effective in order to grow the space market. Orbital has structured their COTS approach in such a way that they will be able to meet objectives and stay profitable, but it is not an evolutionary path towards a general space architecture.

</comment></comment></comment></comment><comment><USER13> I've been reading about intrinsic vs extrinsic motivation. I don't know if that's a bunch of pop-psychology but I would bet he has much of the former. I wish I could summon those kinds of energies.

</comment><comment><USER14> Elon Musk will be one of the most influential people in the world for the next 20-30 years, not just directly from his companies but also from others in the industries he's pushing.

Let's not forget Elon is also Chairman of the Board for SolarCity as well, which is leading the distributed solar PV market.

He's pushing the human race forward in many areas, all at the same time. Pretty remarkable

</comment><comment><USER15> The problem with Elon Musk is this... no one will ever live on mars for extended periods of time because mars is not suitable for human life for the following reasons: 1\. weak magnetic field 2\. 1/3 of earth's gravity 3\. about 100 other reasons that just make the first 2 harder to deal with.

Mars is not somewhere to live, it's somewhere to explore.

</comment><comment><USER16> What I'm most looking forward to is Tesla's third and fourth generation platform. I'm really curious to see how low they can bring the prices and how high the driving range will be at those mainstream prices.

As for SpaceX, I think they're doing amazing work and it was about time the private sector got into this field with ambitious goals.

</comment><comment><USER17> If I dare ask, why does the human race want to leave the earth? There's no reason or benefit. There are more interesting, more pressing issues having mostly to do with our biology.

<comment><USER18> tldr; To mitigate existential risks.

There are at least a couple reasons: 1) A lot of the conflict that destroys so many lives is motivated by limited resources such as land. Getting off this planet could make that kind of conflict disappear (eventually). 2) Diversification. If climate change/oil scarcity/nano/GE get out of hand, it'd be good to have someplace else to go. Even if you're sceptical about the environmental risks from climate change and oil scarcity, GE and nano pose big risks. The easier nano and GE get, the more likely some bio-/nano-hacker somewhere creates an irreversible problem for us (whether accidentally or intentionally).

<comment><USER17> But none of these scenarios seem particularly pressing. 1) Population growth rates fall as living standards improve, the UN predicts a rise up to 9 billion humans followed by a drop to more or less back to 7bil. 2) It would be easier to work on reversing climate change than finding a planet that supports life.

The way i see it we 're still in 'space exploration' not colonization. Perhaps if we master biology, life and intelligence first, we 'll have our drones do that for us.

</comment></comment></comment><comment><USER19> Tesla has yet to accomplish anything notable except for getting a half billion dollars from the government. Hopefully they are successful in producing and supporting their Model S.

<comment><USER20> I believe they have quite some involvement with Toyota with regard to transmissions / battery packs or something along those lines. Commercially it seemed a successful deal for them.

<comment><USER21> Tesla is building the drivetrain and batteries for Toyota's new all-electric Rav4.

</comment></comment></comment><comment><USER22> The article says "in addition to reducing carbon emissions" in regard to the Tesla. I can't see how electric cars actually reduce pollution/emissions of any kind.

Typical coal -> electricity is 33% efficient, but can be up to 50% [1], electricty to battery is 75% [2], and electric motors are about 92% [3]. The typical efficiency will be .33 * .75 * .92 = 23%, with a maximum of 35%. Gasoline engine efficiency is 25 - 30% [4], so we aren't really improving pollution much with electric cars, until wind/solar makes up a substantial part of our grid.

Now it will certainly _move_ the pollution from the cars in the cities to the power plants elsewhere (which is a good thing), but it really isn't preventing pollution.

[1] [http://en.wikipedia.org/wiki/Fossil- fuel_power_station#Basic...](http://en.wikipedia.org/wiki/Fossil- fuel_power_station#Basic_concepts)

[2] <http://www.futurepundit.com/archives/006554.html>

[3] [http://www.engineeringtoolbox.com/electrical-motor- efficienc...](http://www.engineeringtoolbox.com/electrical-motor-efficiency- d_655.html)

[4] <http://en.wikipedia.org/wiki/Engine_efficiency>

<comment><USER23> You're counting all the deficiencies of electricity through the life cycle of how it gets into your car, but not for how oil gets turned into gas and then into your tank.

Less than half of electricity in the US is from coal. Also, because of how power plants / grids work, there is excess capacity available that electric cars can use (overnight charging) without increasing power generation.

<comment><USER24> > _Less than half of electricity in the US is from coal._

And the rest is from Canada :)

</comment></comment></comment><comment><USER25> "This car will be able to go 160 miles on one charge of its battery pack." Meh: <http://www.rimac-automobili.com/concept_one/battery-system-9>

<comment><USER26> I was going to simply counter your "meh" with another "meh" regarding battery vaporware, but unless that site is straight up lying those are some impressive stats. I've always been more a fan of battery replacement stations instead of batter charging, but with a 20min charge and 150km range who cares.

<comment><USER27> From their performance page [0]:

        POWER: 1088 hp
        MOTOR TORQUE: 3.800 Nm

        BATTERY CAPACITY: 92 kWh
        RANGE: 600 km

        ACCELERATION 0-100 kph: 2,8 sec.
        TOP SPEED: 305 kph

The battery capacity for the Tesla Roadster is 53kWh, weights 450kg and is advertised to last 350km on a charge (and Roadster's world record at 500km). 92x350/53 magically gives us 600km. It also gives us a little short of 800kg of batteries (although they're LiPo instead of Li-ion as in the Roadster, but that should not change the weight much) and the x-ray renderings indeed show batteries take a good deal of the volume of the car. Note that weight, critical for a sports car, is not mentioned. The complete car will probably end up around 2t, and with 1000hp this makes a contender for Veyron class cars.

For reference the one in Model S is 42kWh and the Nissan Leaf has a 24kWh unit. This is expected given the audience, which requires a practical car, so volume has to be surrendered by the batteries to the passengers and the boot.

All in all it's not _groundbreaking_ by any stretch of the imagination and you can safely "meh" the GP on the distance-on-a-charge ground. By saying so I'm not downplaying the most important fact here and that's each one of those cars show a nascent market expanding both ends, and I'm looking forward to that.

[0] <http://www.rimac-automobili.com/concept_one/performance-10>

<comment><USER25> I agree with your last statement completely.

Here are two more tidbits about the Concept One:

1\. You may see it in (very limited) action here: <http://www.youtube.com/watch?v=zkpetEjePUo>

2\. The company is from Croatia, where Nikola Tesla was born. ;)

</comment></comment></comment></comment><comment><USER28> Elon Musk does seem to be pretty good at going for it. It is nice to see people executing on big ideas.

</comment><comment><USER29> The sheepish feeling about app development made me think of Buckminster Fuller's _Operating Manual for Spaceship Earth_ :

"For every 100,000 employed in research and development, or just plain thinking, one probably will make a breakthrough that will more than pay for the other 99,999 fellowships".

</comment><comment><USER30> "Musk recently said that he will put humans on Mars within ten to twenty years."

Uh-huh. I said it before, got downvoted, and will say it again, because I think it's important.

<http://news.ycombinator.com/item?id=3389824>

<comment><USER31> Your original comment should read:

> The number of dead people whose ashes _got a known-to-be small but definite > odds at being put into space_ by Elon Musk? 208.

It's well known that new launch platforms fail a lot initially. Soyuz still fails after 757+ launches, and the fatality rate for _humans_ is still 2%.

So, when you get on launch #3 of a new platform for which launch #1 & #2 failed, you've got no excuse for to complain about failure.

Links:

<http://www.spacelaunchreport.com/log2011.html#rate>

[http://en.wikipedia.org/wiki/List_of_spaceflight- related_acc...](http://en.wikipedia.org/wiki/List_of_spaceflight- related_accidents_and_incidents#Percentage_of_fatal_spaceflights)

<http://en.wikipedia.org/wiki/Falcon_1#Launch_history>

<comment><USER30> What does "definite" mean? Greater than zero? That's useless here. Either you made it to orbit or you didn't. Either you're pregnant or you're not. Either you are alive or you are dead. There is quite a lot of binary stuff happening in the universe, and none of it relies on things like "0.24% likelihood". SpaceX's record is abysmal, and you forgot a few facts.

1) Soyuz is a government project with the pride of a nation at stake. SpaceX is a personal project with the pride of an egomaniac at stake. If SpaceX fails, it's merely another startup gone bad. If Soyuz fails, it's quite a lot more.

2) Did Musk spend any of his billions on purchasing any of that hard-earned Soyuz flight data from Russia? If not, then he does not care to learn from history, which means that the long-term failure rate of SpaceX vehicles will likely be higher than that of Soyuz.

3) If I am right about #2, then the fatality rate for humans under SpaceX will be higher than 2%, and even 2% of a million people is already quite high, especially when you consider that most of them will not be trained to the levels of the people who have already gone up.

4) If Musk was grounded in reality, he would shoot for the moon, then Mars. Risking fewer people, closer to Earth, is certainly a much better strategy than what he has announced. If something goes wrong on the moon, help is a few days away. That might still not be good enough, but it's far better than the stretch of time required to wait for help on Mars.

5) Musk has very little experience building rockets, and none at all when it comes to building habitats for extreme environments. Take the full documentation (parts, computers, software, maintenance, and whatnot) of the latest Boeing jet, multiply that by about 100, and you might have what it takes to successfully fly to Mars and live there. This kind of endeavor will require a deep rethink of how we handle big projects. SpaceX does not have this ability.

A few years ago, we had the era when Google could do no wrong, and any criticism of Google would not be tolerated by its many fans. Now, that same mindset applies to Musk, except this time, people will die.

<comment><USER12> If you don't try to do things differently, there will be no innovation. The current system (NASA, et. al.) does not scale up to what is needed, so different strategies are required. It's really as simple as that.

Will he succeed? Highly unlikely. But I'm glad he's trying, and anyone who kills themselves on one of his rockets will know what they're getting into. Flying in space is inherently dangerous.

<comment><USER30> Musk is in a unique position of responsibility. If he fails, and particularly if he does so in a spectacular fashion, public sentiment may turn and go in the other direction, saying that such big projects really should be done by governments, because they are the only entities powerful enough to make grand goals happen. I am not against him or SpaceX or settling Mars, but it is quite irresponsible for him to say that he will put 10,000 people on Mars in only 10 to 20 years. Anyone with two neurons to rub together should be alarmed at such a statement, and should think twice about getting into a rocket built by him. Put 10 people on the moon, and have them survive for a year. Then, and only then, make some cautious, speculative statements about Mars. A space entrepreneur grounded in reality is more likely to succeed, but if he fails, said grounding will give those who follow a greater likelihood of success, rather than having their opportunity snatched away by a government riding on a new-found wave of public fear.

</comment></comment></comment></comment></comment><comment><USER32> Elon Musk is pretty badass. It's awesome that he takes such a big role in the technical design and development at Tesla and SpaceX rather than just "running the company" like most CEOs.</comment>


Tech's Damaging Myth of the Loner Genius Nerd - <AUTHOR> https://www.nytimes.com/2017/08/12/upshot/techs-damaging-myth-of-the-loner-genius-nerd.html <comment><USER2> I really agree that social skills are the biggest missing component in effective engineering collaboration (because there are so many Loner Genius Nerds who refuse to use each others software but would rather rebuild a monument to themselves).

But I wish they wouldn't conflate this with the google memo though. That topic is already too muddled.

The three _entirely distinct_ questions are:

1\. Is lack of interest on average (due to genetics) a potential contributing factor to the male/female ratio in engineering?

2\. Is asking that question (or expressing an opinion on it) a punishable offense? If so, when and why, and are both sides equally punishable, or only the conservative side?

3\. Are social skills an undervalued in technology?

The reason the google memo instigated such a shitstorm is that it (and the ensuing debate) conflated questions 1 and 2.

One side was largely arguing that presenting gender-based-patterns in a scientific light (true or not) has negative psychological effects.

The other side was railing against the fact that a debate couldn't even happen because one side was being socially punished for even bringing up the question.

</comment><comment><USER3> > Silicon Valley culture encourages it. Google calls engineers who aren't > managers "individual contributors." Technical skills are valued above soft > skills or business skills. "Anyone who deals with a human being is > considered less intelligent," said Ellen Ullman, a software programmer and > author of a new book, "Life in Code." "You would think it would be the other > way around, but the more your work is just talking to the machine, the more > valuable it is."

While I clearly don't think one should go to the extreme of undervaluing soft skills, can we at least keep one industry that primarily values technical competence? There is absolutely no shortage of other fields (most of them) where the main/only way to advance is through management, and I don't think this has to be treated as a flaw that needs to be fixed.

<comment><USER4> The essence of the problem is this: 'tech' is now simply too big and too important to our culture and society to be only about the technology.

Now, decisions made at Google don't just change how we search the internet.

Now, decisions made at Uber don't just change car hire.

Now, decisions made at Amazon don't just change online book selling.

Technical competence is essential for competition and innovation, but social competence (and conscience) are essential to growth and longevity.

</comment></comment><comment><USER5> I feel the writer is either being disingenuous or isn't a professional in the field.

As a software engineer myself I do agree that collaboration is essential for the product development cycle, specifically it's important for training hires and for project planning, including breaking down features into tasks. That said, once we make it into the task level, where coding gets done, the job is absolutely a solo task. That's what the whole process is designed to do; to break down any requirements into tasks that can be worked on solo by one team member, at that level collaboration or anything other than technical skills don't offer much.

<comment><USER6> It varies from day to day and person to person, but "the task level, where coding gets done" is not really where I spend much of my working time. Much more of my time is figuring out how things work and then getting agreement on changes.

So that consideration elevates the value of social skills, but it's not obvious what that means in practice. Nerds with poor social skills can fail for all the usual reasons, #1 being big ego. But if we respect our colleagues' intelligence, then it can be helpful when we nerds are socially "naive" enough to take comments at face value without the usual human instinct of treating them as moves in a complex game.

Another social skill is clear communication, and that is rare. But I've found it uncorrelated with nerdiness -- maths and engineering types are occasionally good at it, because they are good at pinning down concepts. But artsy types can also be good at it. I'd say lawyers are the best overall.

</comment></comment><comment><USER7> Maybe there's no direct causal link between "Loner Genius Nerd's" and "being a great developer" but I think there's an indirect correlation.

"Loner's" have lots of alone time. One way to use alone time is to use and learn technology.

Technology is a new, complex and fast-changing field. There were always professional benefits to having thousands of hours invested in it.

There is a correlation between "loner nerds" and "good developers" in the same way that there is a correlation between "drinking orange juice" and "testing well on the SAT." One doesn't cause the other, there's a underlying thing that causes both.

Nowadays, technology is so broad and pervasive that there are also ways to channel thousands of hours invested in socializing, understanding people, drawing, writing letters, farming, helping old people into being a good developer.

</comment><comment><USER8> Yes and no. It's true that collaboration is important when working on a team, and that social skills are underrated in engineering. On the other hand, the job is fundamentally not very social. Collaboration in engineering means breaking a large problem down into smaller pieces, and assigning those pieces to individual engineers to work on by themselves for hours or days at a time.

</comment><comment> kyle-rb >Empathy also affects which products are built in the first place — why, for example, Silicon Valley has spent more time building apps for expensive food delivery than for decreasing hunger.

>"There's no cool technology toy that teaches that there are different religions around the world and it's O.K. to be tolerant."

I think the author is confusing "problems that exist" with "markets that exist", since both of those are more philanthropic endeavors than they are profitable businesses.

</comment><comment><USER9> How about let's get rid of the idea of prescribing how people should program. Different situations call for different approaches.

> Some people in the industry say computer science students would benefit from > more liberal arts courses.

The sentiment is nice but I can't see this having an actual impact. How does taking interpretative dance help me with anything?

<comment><USER10> > Different situations call for different approaches.

This leads to a situation of growing chaos where not everybody can understand what everybody else does. Your engineers are no longer easily replaceable and creating interacting systems gets growingly complicated.

Mix this in with limited time and resources of management, it's easier to give out guidelines than to deal with the mess that'll be created when loosening the leashes.

(It all totally depends on the situation, though.)

<comment><USER9> The alternative is a situation where you have many meetings for every decision and nothing gets done due to analysis paralysis.

In Finland, there's a concept of management by perkele which I like [https://m.youtube.com/watch?v=N2S_Gm78SLs](https://m.youtube.com/watch?v=N2S_Gm78SLs)

<comment><USER10> Analysis paralysis goes well with bikeshedding when people who are not into the technical details are involved in the decision making process and start arguing about not-so-relevant details.

I'd like a situation where the affected people give input and management decides who shall be involved in the decision making and delegates the decision and parts of the execution to those people.

</comment></comment></comment></comment><comment><USER11> > The Google engineer who was fired last week over his memo wrote that most > women were biologically unsuited to working in tech because they were more > focused on "feelings and aesthetics than ideas" and had "a stronger interest > in people rather than things." Many scientists have said he got the biology > wrong. But the job requirements of today's programmers show he was also > wrong about working in tech.

But... he didn't get it wrong. Collaboration and social skills are extremely valuable in tech, sure. But they aren't the primary focus of the job. If I were someone more interested in people than things (not saying that women are), I wouldn't want to work in an industry where the primary objective is to make a thing, regardless of how cooperatively the thing was made.

</comment><comment><USER10> Good engineers solve problems well.

Excellent engineers solve better problems.

Usually it's a long path from something a customer wants (or actually needs) to finding an appropriate implementation (if there even exists one). Many things can go wrong along the way and miscommunication happens in both directions.

</comment><comment><USER12> As a successful 'loner genius', I am a little bit conflicted about being in the same category as an unicorn.

</comment><comment><USER13> The first sentence already states, that fired guy said women "unfit". Stopped reading right there.

<comment><USER14> If you put the word "unfit" in quotes then you are quoting the article. The first paragraph of the article says:

> The Google engineer who was fired last week over his memo wrote that most > women were biologically unsuited to working in tech because they were more > focused on "feelings and aesthetics than ideas" and had "a stronger interest > in people rather than things."

The article does not use the word _unfit_ in the first or in any of the remaining paragraphs. Since you got that simple fact wrong I stopped reading your in-depth analysis right there.

<comment><USER15> I vouched for the story (which I didn't flag) just so I could reply: "unfit" and "unsuited" mean exactly the same thing. Are you being this intellectually dishonest on purpose?

> Since you got that wrong I stopped reading your analysis right there.

That's great, because the analysis is concluded: hack fraud journalism. Next.

<comment><USER14> Unfit and unsuited do _not_ mean exactly the same thing. In particular, I can't say that the manifesto said that women are unfit to work in tech. Damore didn't say and he didn't mean that. I can and will say that the manifesto said (not quoting here) that women are unsuited for tech. There's sufficient difference between the two words to drive that truck between them.

      Unfit: not of the necessary quality or standard to meet a particular purpose
      Unsuited: not right or appropriate.

When you quote, quote accurately, especially if you put your quotes in quotation marks.

<comment><USER15> > In particular, I can't say that the manifesto said that women are unfit to > work in tech.

You can't say it said they're unsuitable to work in tech either.

> I can and will say that the manifesto said (not quoting here)

You can't make this shit up.. well, as long as you're not quoting I don't care so much what you "can and will say". It's just hot air and saying nothing. But with the way I hobble around in the uncanny valley of the English language, I'm always happy to teach bits of it to a native speaker: [http://www.thesaurus.com/browse/unfit](http://www.thesaurus.com/browse/unfit)

unsuited is one of the synonyms. Though not vice versa, but then again, that's just some random site: [http://www.thesaurus.com/browse/unsuited](http://www.thesaurus.com/browse/unsuited)

Here's another random site: [https://www.merriam- webster.com/dictionary/unfit](https://www.merriam- webster.com/dictionary/unfit)

        a :  not adapted to a purpose :  unsuitable

But what really gets me that rather than correcting that, you just add something even more silly:

      Unfit: not of the necessary quality or standard to meet a particular purpose
      Unsuited: not right or appropriate.

Do you notice something? "Unsuited" without a qualifier such as "to meet a particular purpose" makes no sense, and cannot be used that way. If anything, unfit can be used that way, though the purpose (being a mother, or standing up without wheezing) is usually implied. You might as well spell the definition of one word with capital letters and the other with lower ones and say "that's not _exactly_ the same".

I agree that unfit _can_ be used to mean a value statement, a "not good enough", where unsuitable is more neutral. But even the Oxford Dictionary which defines the individual words in such a way then has this:

[https://en.oxforddictionaries.com/thesaurus/unfit](https://en.oxforddictionaries.com/thesaurus/unfit)

Drive a truck between them? Heh.

Language is too nice an invention to play games with it like this.

> When you quote, quote accurately, especially if you put your quotes in > quotation marks.

If you get hung up on this, and actually defend it, you would otherwise have ignored it or found something else. I'll just claim that -- I can, and I will! -- to save us both time.

<comment><USER14> When you quote, quote accurately, especially if you put your quotes in quotation marks. Full stop.

<comment><USER15> Do you mistake yourself for someone who can give me orders? "Full stop" is code for you not having the honesty nor courtesy to just say "thanks for the correction". Your comment stands corrected, you're welcome.</comment></comment></comment></comment></comment></comment></comment>


Ballmer Peak - Programming + Alcohol - <AUTHOR> http://xkcd.com/323/

<comment><USER2> I've written production code in that peak zone.

One rule though: don't touch the production servers when you're in this zone. Don't ask how I know...

<comment><AUTHOR> Haha. True. Never hit the production zone! Can anyone tell me how to exactly touch that zone? :/ (The quantity to intake)</comment></comment>


Gmail is Down (as well as other services) - <AUTHOR> http://www.google.com/enterprise/apps/business/products.html?section=gmail

<comment><USER2> No issues here I'm afraid (UK).

</comment><comment><USER3> Not for me</comment>


Transloadit wants to fix broken file uploads - <AUTHOR> http://tech.eu/features/6672/transloadit-tus-protocol-vimeo/ <comment><USER2> Haha cool, my company has been doing big, resumable uploads/downloads for a number of years now. I guess B2B software doesn't get the attention like Vimeo does.

No secrets really, just appropriate use of Content-Range headers.

<comment><USER3> Indeed, resumable uploads are not a thing we invented. Nevertheless, we think it's handy to have a document describing the approach and client and server implementations.

We also considered the use of the Content-Range headers for resuming uploads but dropped this idea in favour of custom headers since the purpose written down in the HTTP specification was not compatible with the way we wanted to use it.

</comment></comment><comment><USER4> love it, would love to hear the pros/cons from people in the know...

<comment><USER3> Great to hear, you enjoy it. I am Marius, the current project lead of the tus project and I guess I can provide some answers for you.

The biggest benefit and the main reason of its origin is the ability to resume an interrupted upload at any time resulting in more efficient resource usage and user experience. In addition the fact that it's developed openly and by a community is also noticeable. You do not have to reinvent the wheel since others have already spend time, efforts and thoughts building a working system you can use for free. The tus project already offers a growing list of client and server-side implementations. Last but not least, optional features such as parallel uploading and checksums are available.

On the other hand, you have the overhead of adapting an external system. Whenever you want to build software, you can choose between doing it yourself or using an existing solution, where latter can be tough to achieve depending on your architecture. Furthermore, tus introduces a small overhead in terms of numbers of requests needed for an upload. Usually, you need one to create the upload and another one to transfer the actual data (excluding eventual CORS requests in a browser), in contrast to the traditional model of uploading where a single request is used. Normally, this overhead is negligible, especially when the files are getting bigger.</comment></comment>


DIB Guide: Detecting Agile BS (2018) [pdf] - <AUTHOR> https://media.defense.gov/2018/Oct/09/2002049591/-1/-1/0/DIB_DETECTING_AGILE_BS_2018.10.05.PDF <comment><USER2> Great document overall!

> The purpose of this document is to provide guidance to DoD program > executives and acquisition professionals on how to detect software projects > that are really using agile development versus those that are simply > waterfall or spiral development in agile clothing ("agile-scrum-fall").

Actually doing 'waterfall' properly would probably be fine? Or at least not the bogeyman it's made out to be.

The real danger is that the project would just be managed badly, independent of professed approach. Just muddling through badly.

(I am not even sure if waterfall was ever actually a thing, I mostly ever only hear about it as a thing to avoid?)

<comment><USER3> > Actually doing 'waterfall' properly would probably be fine? Or at least not > the bogeyman it's made out to be.

Doing waterfall in the exact sense that is usually described will almost certainly never work well. People usually focus on the design phase, but I think the much more catastrophic part of 'waterfall' is doing testing only once development is complete.

Now, you absolutely can successfully run software projects that are design heavy, that more or less freeze requirements and designs early on, and that seek to execute on the design, instead of iterating. However, if you truly develop for 6 months before any kind of external QA, as described in most Agile talks about what Waterfall means, that is a recipe for disaster. If you do test things by feature, invest in component testing and practice that all along the way, you can succeed.

This essentially describes a 2-stage waterfall: design and execute, where the execute phase includes both development and testing all along the way. Is this 'doing waterfall properly'? Or is it a hybrid methodology? That's a matter of definitions in the end.

It's also important to note that the extent to which this works depends a lot on the project itself. If the requirements are volatile (e.g. when developing a new product with an uncertain market), or if the project is too large (e.g. if the design phase suggests it will take 5 years to finish given the current team), then it's likely that the project would benefit a lot more from an Agile style of development, where you deliver smaller chunks of the project to its end users to gather early feedback on the actual usefullness.

<comment><USER4> I think the parent post has, but for the reader who is a software engineer take 15 minutes out of your life to read WW Royce's "Managing the Development of Large Software Systems."

In this brief and engaging paper you will find the diagram used by many agile enthusiasts to describe the "waterfall method" and will be shocked to discover that it is held up as an example of a process that never actually works in reality.

You will then read quotes like this, which could have come out of an agile book:

"For some reason what a software design is going to do is subject to wide interpretation even after previous agreement. It is important to involve the customer in a formal way so that he has committed himself at earlier points before final delivery. To give the contractor free rein between requirement definition and operation is inviting trouble."

[http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970...](http://www- scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf)

<comment><USER5> [http://beza1e1.tuxen.de/waterfall.html](http://beza1e1.tuxen.de/waterfall.html)

Incremental and iterative development is not an invention of Agile either. It was used before "Waterfall" existed.

<comment><USER6> I've used incremental and iterative processes in R&D for many years before "agile" became the current goto. Unfortunately, the obsession in tech with following trends has pushed many to try and modify, IMHO, a better refined process for the domain where agile just doesn't quite work. In R&D, prototyping work is quite challenging and doesn't lend itself well to full-out agile pipelines. CI/CD can actually hamstring you far more than help you, as can other typical PM tools. You need to be more _agile_ than "agile."

For larger projects with adequate resources, agile _can_ make sense, although it's typically modeled after quarterly focused business models and can miss long term opportunities. The core issue with agile is that its structure is ripe for abuse by everyone involved except the actual developer(s). Instead, developers have to reconcile all sorts of poor choices together in a fairly formal environment, leading to headache after headache.

</comment></comment></comment></comment></comment><comment><USER7> Interesting that all these issues are completely different from my own experiences with Agile BS. We would have 10 hours of exhausting meetings every 2 weeks in order to plan our sprints. Unconsciously, we just ended up hyper inflating estimates so our team would joke about how the only thing we did each sprint was "slap a box on it" (in CSS, or some similarly simple task).

I left that job when all the developers completed their tasks a few hours before the end of the sprint, giving me (QA) just a few hours to test, merge, and deploy their code, which because of our terribly clunky and manual deploy system, just wasn't possible. I was placed under an internal investigation for not being productive because I held up the sprint of the "most productive team in the company" and made us look bad to out of state executives.

<comment><USER8> testing should have been part of the estimates and you should have thrown that right back at the rest of the team during retro

<comment><USER7> Exactly. But my team didn't think it was a problem, we just forgave ourselves and moved on and I finished testing and deploying early in the next sprint. The problem came when external executives noticed how little we completed compared to our usual throughput and insisted that I be punished for it since I was the bottleneck. My team was just as confused as I was, but I had been meaning to move from QA/Test automation to being a developer for some time, so that just hurried me along and I left within a couple weeks.

</comment></comment></comment><comment><USER9> I love the document and will distribute to my co-workers. The short story, however, is not really that there's a checklist to determine BS Agile, but rather that all/most Agile is BS.

In my career I've seen "Agile" throw a wrench in the works for so many projects. Embedded systems; data center distributed systems that are air- gapped; aerospace safety systems; R&D work. Agile in these cases just isn't the thing to do, but unfortunately the culture these days is that everyone MUST be Agile, and so it creates another bureaucratic nightmare of dysfunction.

The funny thing is, people will always go to bat for Agile (MUCH more so on Reddit than HN).. and I don't understand why. I think furthermore the discourse around this has become so weird. For example, I asked someone kindly what is "Not-Agile"? There's no answer, other than "bad ways of making software". The discourse has become caveman-like "Agile good. Not-Agile bad."

At the end of the day, Agile is probably great if you're making a mobile app or a web app with a small team for a client with a small-to-medium budget, which accounts for most work software developers do, which is why its so popular. But is inherently too short-sighted and unable to address technical challenges that go more than superficially deep.

<comment><USER10> I love this document as well for very similar reasons. It's interesting how attached people become to the ritual of doing things instead of thinking about why they are doing it.

In my experience it seems like a ton of things that people want to do with agile is get to skip the writing and design work that has to happen to make deep technical projects happen. There is a really strong desire to just start implementing and then be able to refactor to working code. Of course there is always pressure to deliver faster so the refactor only ever gets half done and then there is an architectural mess.

</comment></comment><comment><USER11> What's DIB? Just trying to understand who is the target audience of this guide.

It's a practical set of traits to spot. But inevitably a question comes up "what to do next?" Re-educate, enforce, hire/fire, disband?

One needs to remember how the Agile processes were being "installed" back in the day in organisations/teams of various degree of dysfunction. Lots of those teams went through trials of "templates", including waterfall, just with the same outcomes.

Too often, the failure is not at the team but on org-level. The base tenet of Agile success is buy-in on all levels. Yet it's easier for the management to "buy-into" a structure and attributes, not into actually empowering and trusting the teams.

So, this detection approach may find all right attributes, tools, lingo, roles... but not the actual practices. A beaten down example is a morning stand-up, which disguises the dreaded subordinate reports - best indicator of such theater is a presence of a "clip-board" or note-taker person.

I'd think for such guide to be of better practical value, there should be a section which would outline ways to detect the constraints and obstacles for adoption of a proccess which would be effective in a given team's case. It does not have to be Agile-or-wrong.

<comment><USER12> DIB = Defense Innovation Board, [https://innovation.defense.gov](https://innovation.defense.gov)

Made up of various tech industry leaders (mainly CEOs, it seems). The purpose was to try and modernize the way, or present a path to modernization, defense software systems are developed and maintained. Because it's presently a cluster fuck.

</comment></comment><comment><USER13> My current problem : customers who don't want to participate in the agile process and do want to have a "simple" pre-agreed specification to use to determine project success/failure. Of course they can't write such a spec and want me to do it - and of course I can't without doing large parts of the work to implement it (because if I'm wrong I'm on the hook for a large sum of money wasted).

<comment><USER14> Why can't they write it? Conduct a user story workshop, slice out an MVP release, and that's your "spec."

You can't force customers to "get" Agile. You can force them to understand the risks of not participating in the process.

<comment><USER13> >Why can't they write it? Conduct a user story workshop, slice out an MVP release, and that's your "spec."

Well - yes, this (variations) is what we do, but guess what the outcome is.... "I'm not convinced that we've got this right...", "I was never fully signed up to that...", "I think we have invested a lot of effort in a process that isn't generating business value..."

The problem with Agile is that it doesn't account for politics, if people play nice and are all signed up to get the best done with the tools and people available it's brilliant. If you've got to deal with corporate politics it leaves those with good intent exposed in 100's of ways.

</comment></comment></comment><comment><USER15> Discussed at the time: [https://news.ycombinator.com/item?id=18910608](https://news.ycombinator.com/item?id=18910608)

</comment><comment><USER16> It started well, then it completely fell on the corporate bullshit side.

For example: "Some current, common tools in use by teams using agile development".

This is the kind of reason why a lot of people are required by management to use useless overkill stacks for their needs like docker or kubernetes.

Also the "questions to ask" are typical ridiculous agile corporate bullshit like "have you a product charter", or common forced process oriented questions.

<comment><USER17> I don't think that listing some example tools is a problem. Especially for the audience of a primer like this, a categorized vocabulary list like this can be indispensable for giving people a quick lay of the land and a preview of some names they'll encounter.

My complaint would be that, "Tools listed/shown here are for illustration only: no endorsement implied," should have been inline instead of buried in a footnote.

</comment></comment><comment><USER18> I interviewed recently at a defense contractor and experienced something like this. I know you're supposed to ask questions during an interview but I usually only really come up with two: what is your git/hg workflow and what does your automated test coverage look like.

Usually the second one has an answer along the lines of "not good but we're working on it" which is fine. This place though tried pretty hard to convince me they were using git to manage their code right up until I asked the second question. The senior engineer sort of mumbled a few things ending with something along the lines of "we're still figuring out exactly what the transition from svn will look like."

I'm not sure why they didn't decide to hire me but I feel like that interaction really upset someone and may have been a big part of it.

</comment><comment><USER19> For me the biggest clue is always a fixed "agile" process. By definition any notion of fixing a process is anti-agile.

In my current team the only thing that I have asked to do when "going agile" was biweekly retro to discuss what to improve. Seems to be going pretty well even if most problems have solutions from various described "agile" process templates.</comment>


MySQL to Redis in One Step - <AUTHOR> http://dcw.ca/blog/2013/01/02/mysql-to-redis-in-one-step/

<comment><USER2> Does anyone else wish that Redis had a disk-based version? Other key/value stores like Riak are nice, but I want the simplicity, commands, and raw data types of Redis in a version that could handle terabytes of data. But maybe I'm the only one that wants that.

<comment><USER3> <http://redis.io/topics/virtual-memory>

It used to exist but has since then be deprecated. You can read Salvatore's thoughts on this exact topic here: [https://groups.google.com/forum/#!msg/redis- db/IiJU0COilYc/Q...](https://groups.google.com/forum/#!msg/redis- db/IiJU0COilYc/Q5efrbbiZu8J)

</comment></comment><comment><USER4> I believe this could all be done with a single CONCAT. Looks like author is unaware that you can CONCAT(param1, param2, param3, ..., paramN)

<comment><USER3> It could also be done without a sub-table either

        select concat("*4\r\n$4\r\nHSET\r\n$15\r\nevents_all_time\r\n$", length(action), "\r\n", action, "\r\n$", length(`count`), "\r\n", `count`, "\r") from events_all_time

</comment></comment><comment><USER5> This does not seem like a good idea. Redis does not serve the same use-cases that MySQL aims to.

<comment><USER6> Isn't that a supremely plausible reason for wanting to move data from one to the other? If everything was working out just great in MySQL there'd probably be no reason to move it :)</comment></comment>


The banjo: A hacker's instrument - <AUTHOR> http://thedailyt.com/2010/07/the-banjo-a-hackers-instrument/

<comment><USER2> The banjo is no more a "hackers's" instrument than any other instrument. All of the article's points apply to musical instruments in general.</comment>


Practical Cryptography for Developers - <AUTHOR> https://cryptobook.nakov.com/ <comment><USER2> Opened the book, read first random page ([https://cryptobook.nakov.com/key- exchange/diffie-hellman-key...](https://cryptobook.nakov.com/key- exchange/diffie-hellman-key-exchange.html)), closed the book.

If this is what "developers need to know", then explaining why anonymous key exchange is susceptible to MiTM and what can we do about it (PKI/CA/prior key exchange) would be way more useful than providing background of how DHKE actually works (there are way better explanations than repeating copybook examples anyway).

Upd: out of sheer curiosity, opened second page. [https://cryptobook.nakov.com/symmetric-key-ciphers/cipher- bl...](https://cryptobook.nakov.com/symmetric-key-ciphers/cipher-block- modes.html). Can we at least teach developers about nonce/IV challenges in GCM before saying it's "is highly recommended in the general case"? Perhaps, spending some page length on encrypt-then-sign, sign-then-encrypt and sign- encrypt-MAC merits would be more helpful to developers than CTR block scheme?

<comment><USER3> Sigh. Yep, I also ran into trouble on my first jump in a few pages from the start:

> "asymmetric encryption uses a public-key cryptosystem (like RSA or ECC) and > a key-pair: private key (encryption key) and corresponding public key > (decryption key)"

Ummm.... when using RSA to encrypt something (e.g., a DEK) you use the other party's _public_ key, and of course the other party uses its _private_ key to decrypt.

How do you get stuff like this so wrong??? Sheesh, even flipping a coin gives you a 50-50 chance.

<comment><USER4> Sections like this too:

>DHKE was one of the first public-key protocols, which allows two parties to exchange data securely, so that is someone sniffs the communication between the parties, the information exchanged can be revealed.

I don't think that information being revealed through passive observation is a selling point of DHKE.

<comment><USER5> The point they are trying to make is that you can sniff the exchanged information during key setup, but knowing this does nothing for the attacker. That information is not required to be secret. So " the information exchanged can be revealed." means 'it can be revealed without concern for security of the key generated by the process'. The author doesnt mean that the eventual messages will be revealed.

</comment></comment></comment></comment><comment><USER6> Without offering any other commentary on this book, I'd recommend not using the Python libraries it uses for examples, and instead using pyca/cryptography.

</comment><comment><USER7> Thank you everyone for the comments about this very early draft of my book. Thank you for reporting these technical bugs. It is important to fix them before the official release. I would be highly misleading for the readers to publish inaccurate information.

I am not sure how this early draft has leaked from my GitHub. Maybe I need to move it to private repo + password-protected Web site, until I finish this work. I am sorry that this unfinished early draft has reached you. I will announce the book in my blog when it is officially published and available in Amazon. It is too early now.

I plan to proof read the book to fix the obvious mechanical mistakes (like the mentioned above), to have an English language editor, technical editor and to fix all bugs reported in the GitHub issue tracker.

Thank you again for your time to report the bugs. I will definitely fix them.

\-- Nakov

</comment><comment><USER8> added cover, generated ebook files - [https://unglue.it/work/378964/](https://unglue.it/work/378964/)

<comment><USER9> thanks</comment></comment>


Can I turn a PhD into a startup? - <AUTHOR> I've been working on an ambitious side project focused on a cheminformatics app that I eventually want to turn into synthetic biology workflows/ circuits. This will take time and scientific know-how.
If I were to get accepted into a PhD program that allows me to focus on this area:
[1] Would I be able to retain the intellectual property of my software?
[2] Would I be able to commercialize it?
Ideally, I would open source as much a possible. <comment><USER2> > Would I be able to retain the intellectual property of my software?

If your research received funding from a government agency such as NSF, they might have a claim to your IP.

If you're funded by the university as a teaching or research assistant, there would be an employer/employee relationship, and your work could be owned by the university under a "work for hire" contract clause.

> Would I be able to commercialize it?

If someone other than you owned the IP, you'd need their permission to commercialize it (they might want a big chunk of the company, or they may refuse and contract with someone else to commercialize it).

If you really care about this, you should talk to a lawyer (who specializes in IP) before doing anything that might jeopardize your plans. They might advise you to do a PhD on a different but related topic and not start developing the software until you left the university.

Also, different universities may have different policies on IP ownership/licensing. Some may be more startup-friendly than others.</comment>


Breakthrough: US Military Files Patent for Room-Temperature Superconductor - sahin-boydas https://futurism.com/room-temperature-superconductor-patent/ <comment><AUTHOR> Another patent from the same guy is a gravitational wave generator. Maybe I missed something but I don't think that was possible. So I would take that new patent with some good dose of skepticism.

</comment><comment> sahin-boydas [https://m.phys.org/news/2019-02-navy-patent-room- temperature...](https://m.phys.org/news/2019-02-navy-patent-room-temperature- superconductor.html)</comment>