Show HN: Dendron – a roam like open source markdown note taking app - <AUTHOR> https://www.dendron.so/ <comment><USER2> The folks over at Athens Research [1] (open-source Roam alternative) have made an exhaustive comparison [2] of current notetaking apps with bidirectional link support.

[1] [https://github.com/athensresearch/athens](https://github.com/athensresearch/athens)

[2] [https://www.notion.so/db13644f08144495ad9877f217a161a1?v=ff6...](https://www.notion.so/db13644f08144495ad9877f217a161a1?v=ff6777802811416ba08dc114e0b11837)

</comment><comment><USER3> Looks really similar to [https://github.com/foambubble/foam](https://github.com/foambubble/foam)

<comment> m-localhost And then there was VSCode Memo[1] on Show HN 2 weeks ago (but got no love[2]) - what's the reason that these similar tools are showing up?

[1] [https://github.com/svsool/vscode-memo](https://github.com/svsool/vscode- memo) [2] [https://news.ycombinator.com/item?id=23752195](https://news.ycombinator.com/item?id=23752195)

<comment><USER4> I think it's because they are useful tools that a lot of webdevs see and can see themselves reasonably implementing by themselves. (Like todo lists & habit trackers)

<comment><USER5> Also, quite a lot of tutorials are to-do lists, habit trackers and note taking apps.

</comment></comment></comment></comment><comment><USER6> I love how this is shared a few hours after the post ([https://news.ycombinator.com/item?id=23888799](https://news.ycombinator.com/item?id=23888799)) shared by someone who is tired of note taking apps.

In all seriousness though, this looks dope. I'm installing VSCode just to try this out.

<comment><AUTHOR> the internet has quite the sense of irony :)

also, author of dendron here. if you run into any issues or questions, feel free to message me directly at email@example.com or leave an issue on the github: [https://github.com/dendronhq/dendron](https://github.com/dendronhq/dendron)

</comment></comment><comment><USER7> This is interesting and so is Foam[1]. I've a dumb question. Can I use VSCodium[2] instead of VSCode? (I tried it super-quick with foam on VSCodium and I gave up.)

1\. [https://github.com/foambubble/foam](https://github.com/foambubble/foam)

2\. [https://vscodium.com](https://vscodium.com)

<comment><USER8> I manually cloned it into ~/.vscode-oss/extensions and it works just fine.

</comment></comment><comment><USER9> This looks dope! I was never able to fully get into Roam so hopefully this is a bit easier and worth playing around with.

On an unrelated note, seeing this and "Tired of note-taking apps" on the front-page at the same time made me lol.

</comment><comment><USER10> My biggest issue with many of these solutions is mobile support. I don't know for sure, but I don't think VS Code runs on iOS.

I have my phone everywhere and am on my phone much more often than I am on a laptop or desktop machine.

My ideal solution would be one that stores my notes in a private git repository. It should allow me to edit and read on mobile or desktop devices.

<comment><USER11> GitJournal ([https://gitjournal.io/](https://gitjournal.io/)) on a phone and Obsidian ([https://obsidian.md/](https://obsidian.md/)) on a desktop will get you 90% there. They both do some modifications to the Markdown format (for example, internal linking [[goes like this]]), but they're compatible as of recently.

Obsidian doesn't currently have a built-in Git support, so you'll have to do the push manually from time to time or create a script that will do that every hour or so.

</comment></comment><comment><USER12> These tools (this, foam, obsidian, remnote, supernote, etc.) seem interesting but I've been hesitant to try any. This HN comment[0] on a Foam post a few weeks ago resonated with me. I feel like my ideas and personal knowledge base in my mind is really dynamic and that the constant addition of information and rearranging or establishing of new relationships between entities will be too much effort.

I think, at least for my use, a more simply knowledge base (e.g. zotero, are.na, etc.) where I'm able to store, categorize, and search for things is the best option, and I'll leave the establishment of relationships to my mind.

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

<comment><USER13> Its a good point. The counter point is the process of reviewing your notes to formalize these connections helps cement those connections into your brain. Basically when you have a thought _these two things are connected_ the system lets you document that thought with minimal friction.

The connections between notes ideally provide an element of surprise. The process is geared towards the long term while minimizing immediate friction.

</comment></comment><comment><USER14> It points to all this research in support of hierarchical storage, but based off of skimming it it seems like all that research merely only supports directed vs undirected, not tree vs graph. Meaning, a DAG still seems superior to a Tree - does this allow children to have multiple parents?

<comment><USER15> I found myself wanting a graph based approach too, with multiple parents, so I created Very Nested [1] to find out what it was like.

It's open source, outline focused (like workflowy) and uses GitHub for storage and hosting. It also supports files and images.

So far, I've enjoyed organising my recipes [2] with it.

Feedback welcome, it's very new.

[1] [https://verynested.cadell.dev/](https://verynested.cadell.dev/)

[2] [https://cooking.cadell.dev/](https://cooking.cadell.dev/)

</comment></comment><comment><USER16> LET ME JUST SAY, a pox on these things that depend on VSCode. I don't use VSCode, I never have, and I don't anticipate doing so any time soon for coding, much less taking notes.

EDIT:

I did not say a pox on such applications; on the contrary. I'm actually trying to find one that does everything I want, and am being brought up short on the VSCode dependency just about every time I come up on a good candidate.

</comment><comment><USER17> Hmm, being built on top of an extendable code editor is very appealing. The ability to write TS/JS to extend Notion is something I've wanted. I haven't really used VS Code (I'm deep in the Jetbrains ecosystem) but maybe I need to give it another shot even if just for this. I loved Sublime Text before I moved to IDEA.

<comment><AUTHOR> vscode is pretty close to the jetbrains system. and its ecosystem of extensions is probably the best out of any IDE

</comment></comment><comment><USER18> This looks cool. I've long wanted a note app where I can make a web of notes, draw visual links between either entire documents or chunks of text to sort, organise and create connections.

Best I've found so far are post-it notes, a big wall and lots of printouts.

Stuff like this look like amazing interesting digital-first alternative.

<comment><USER19> I've found Supernotes ([https://supernotes.app](https://supernotes.app)) to be quite useful for this

</comment></comment><comment><USER20> > CRM to keep track of clients, friends and enemies

I found that bit funny.

Seriously, though, I like that it seems to use front matter for metadata, which makes it a lot more interesting than just relying on filenames (although schemas are cute, I don't think they're that useful when you can use metadata).

</comment><comment><USER21> This looks complementary to my nested hierarchy kanban board kanception.io

Would you be interested in collaborating?

</comment><comment><USER22> This would be much easier to understand if you set the gif's to repeat (I'm viewing on my iPhone and need to refresh the page to view each gif before it completes)

<comment><AUTHOR> didn't know that was a thing. just converted it to loop. thanks for the tip!

</comment></comment><comment><USER22> Is there a tree view component for exploring the hierarchy or is there only text-based search of the hierarchy?

<comment><AUTHOR> no tree view yet but we do have a graph view: [https://github.com/dendronhq/dendron- template/blob/master/va...](https://github.com/dendronhq/dendron- template/blob/master/vault/pro.dendron.topic.graph-view.md)

</comment></comment><comment><USER23> My reaction to this; a journey.

Hey I've been looking for something like this.

Ahh local first, and markdown. I might like this.

Fuzzy search? I've gotta try this!

Wait, is this electron?

Please don't be electron, please don't be electron, please don't be electron!

> Made ontop of VS Code

Well, shit I'm out. Damnit!

~fin~

I miss real applications...

<comment><USER24> I'm a very vocal critic of Electron, but giving credit where credit is due, VSCode doesn't really feel like an Electron app at all. It's very snappy and modest with its memory usage, so I'm quite certain the folks at Microsoft had to sign a deal with the Devil to optimize it like that.

<comment><USER25> VSCode really is a strange counter-example, in a good way. I have 3 IDEs open at the moment, and it is the most lightweight of them, by a factor of three. (And yes, with all its extensions and features, I would say it's more of an IDE than a text editor.) Comparisons to VS itself do not end favourably for the native app.

It's also worth noting that while the overhead of Electron can be considered incredibly wasteful for a note taking app, the ratio becomes much more reasonable for something as resource intensive as an IDE. In this case, I imagine most of the target audience would already be running VSCode for dev work.</comment></comment></comment>


"Mindless Eating," or how to send an entire life of research into question - <AUTHOR> https://arstechnica.com/science/2017/04/the-peer-reviewed-saga-of-mindless-eating-mindless-research-is-bad-too/ <comment><USER2> I'll say this, my friends with/getting psych PhDs didn't even blink when I emailed this to them. What a mess.....</comment>


What F. Scott Fitzgerald's tax returns reveal about his life and times (2009) - <AUTHOR> https://theamericanscholar.org/living-on-500000-a-year/ <comment><USER2> _Before World War II, the government did not know what anyone made. Only the wealthy and upper-middle class filed returns—less than 10 percent of the population. The system was based on what the irs called "self-assessment," which meant that the taxpayer told the government what he or she earned the prior year and then sent a check on March 15. Some information returns were sent to the government, but the government had no capacity to match the return to the taxpayer and the returns piled up in warehouses. Not until 1962 did the government's computer system begin to efficiently match the information returns to the taxpayer. During the 1920s and 1930s, the tax system relied almost entirely on the honesty of taxpayers._

It's amazing to think that there was once a time in US history when the government could sustain itself through the honesty and goodwill of the richest 10% of its citizens.

I wonder what would happen if we returned to the goodwill tax model. If we had a simple tax code with self-reported earnings where we spent far less on hunting down and punishing cheaters and freeloaders, and instead left it as a matter of conscience for those who had amassed their wealth and raised their families through the good grace and fortune of living in the US.

Do you think our collective social fabric would be strong enough to fund an effective government? Or are we too far down the path of the self-centered, get mine at all costs, cheat the system if possible mindset?

<comment><USER3> The top 10% of earners paid 68% of federal income taxes, so in terms of dollars we could probably get rid of federal income taxes for the bottom 90% without too much trouble.

Of course, the bottom 90% pays most of the FICA taxes. But it's kind of illusory to say that's different from what the system was like in the 1920's and 1930's. The first Social Security check wasn't cut until 1940, and Medicare didn't exist until the 1960's. Prior to that the bottom 90% paid for old age and disabled care directly by supporting their elderly parents or disabled family members directly instead of indirectly funding social security and medicare. A lot of the "growth" in government tax burden is those programs moving what was previously a household economy onto the government ledger.

And note that the article talks about federal tax receipts, not state taxes. Direct state tax burden isn't all that different from what it was in the 1930's: [http://taxfoundation.org/sites/taxfoundation.org/files/docs/...](http://taxfoundation.org/sites/taxfoundation.org/files/docs/Chart2_1.jpg). And I assure you state property tax collectors were not on the honor system even back then.

It's really interesting to look at where the money goes. Total federal + state spending was about 10% of GDP in 1930. It's now almost 35% of GDP. That's almost entirely attributable to two things: defense spending (3-5% of GDP) and transfer payments (20% of GDP): [http://fortune.com/2012/08/27/wheres-all- that-government-spe...](http://fortune.com/2012/08/27/wheres-all-that- government-spending-really-going). In other words, almost all of the increase is government programs to move money around in the economy.

<comment><USER4> There are certain states whose employees are exempt from FICA. This makes for some interesting double-dipping case studies cf. [http://www.governing.com/columns/public-money/FICA-free- lunc...](http://www.governing.com/columns/public-money/FICA-free-lunch- crowd.html)

<comment><USER5> This is somewhat misleading: It's not exempt statewide for all employees in those locales, only for certain employees like teachers and firefighters who are paying into alternate pension systems.

The headline number is 6MM people aren't paying in, but the combined population of those states is almost 112MM and the total population is 319MM. It's a substantial number, I suppose, but not like 30% of the workforce.

</comment></comment></comment></comment><comment><USER6> It's interesting how this article conflicts the narrative (and indeed, Fitzgerald's own narrative) about his life. The narrative was that they lived fabulously until the simultaneous stresses of the the stock market crash and Zelda's mental breakdown in 1929. Turns out that at least from an _income_ perspective, he was doing quite well up until the moment he died. But Zelda's healthcare costs ruined him anyway, and he cognitively backed himself in a corner in terms of making adjustments.

It reminds me of a quote from another famous author, one Charles Dickens:

 _" Annual income twenty pounds, annual expenditure nineteen [pounds] nineteen [shillings] and six [pence], result happiness. Annual income twenty pounds, annual expenditure twenty pounds ought and six, result misery."_

<comment><USER7> He gave that line to Mr. Micawber and of course was intimately acquainted with poverty, but by the time Dickens wrote that he was as rich as a 19th century rock star. Indeed he made piles of money by touring—writers used to moonlight as performing artists. Once movies came out, that dried up, so they wrote screenplays instead, like Fitzgerald.

</comment></comment><comment><USER8> Remarkable to think that in those days one could become so wealthy off short stories, of all things. Business models keep changing, in literature as elsewhere.

</comment><comment><USER9> To me, the most fascinating thing about this story is the starkly different picture it paints of wealth in America. We're currently debating how much of a middle class there even IS anymore, and they're talking about how upper-middle class families had servants.

There's a lot going into the difference, for sure, but its quite a different world.

<comment><USER3> That's the wrong takeaway from that point. It's a good thing that upper middle class people today can't afford to have lower class people do domestic services for them. It's an indication that lower class people can make a lot more money doing non-domestic work.

Although the task rabbit economy is pushing us back in that (wrong) direction.

<comment><USER10> It's actually an indication that lower class people can consume quite a bit regardless of whether they work. It's hardly clear that this is a good thing.

[http://www.bls.gov/cex/2011/Standard/income.pdf](http://www.bls.gov/cex/2011/Standard/income.pdf)

It's hardly clear how task rabbit is pushing is in that "wrong" direction - it's not as if task rabbit has somehow eliminated other good options (such as not working and receiving wealth transfers, or perhaps those unsustainably overpaid factory jobs politicians like to talk about).

<comment><USER3> TaskRabbit is pushing things in the wrong direction because people should work together for institutions, not work for other people as personal servants. That's not how you build an equal society.

</comment></comment></comment></comment><comment><USER11> What I don't understand is how in the US in the 1920s the tax rate was in the single digits while deficit was negative (!) and debt was low [1], while today tax rates are at 40%, deficit is about 17% (!) of budget and debt is over 100% GDP. What on earth went wrong?

[1] [http://www.usgovernmentspending.com/debt_deficit_brief.php](http://www.usgovernmentspending.com/debt_deficit_brief.php)

<comment><USER12> _" What on earth went wrong?"_

Immediately thereafter? The Great Depression.

<comment><USER11> Well that one wouldn't have lasted until today, would it?

<comment><USER13> The govt. began to care for people that had previously been cared for by family members or religious groups. This includes the very poor, the elderly, the disabled, etc. That makes the bulk of it.

<comment><USER14> In exchange for votes from such people. Before, many of those people were disenfranchised.

<comment><USER15> Family system used to take care of elderly and the disabled, which ultimately meant housewives were supposed to do that, unless you could afford a caretaker (which was socially frowned upon in middle class).

Then women got voting power and family system broke down, replaced by social structure. In a way today's capitalist Europe is closer to what Marx suggested than USSR.</comment></comment></comment></comment></comment></comment>


Web Framework Benchmarks Round 9 - <AUTHOR> http://www.techempower.com/benchmarks/#section=data-r9 <comment><USER2> Disclaimer: I'm the author of Nawak, so I'm pretty excited about this.

The Nimrod programming language is finally featured for the db tests (at least on i7. Not sure what happened with ec2 and peak, as neither jester nor nawak seem to appears in the results).

It fares pretty well when the database is involved.

Look for the nawak micro-framework, in the top 10 both for fortunes:

[http://www.techempower.com/benchmarks/#section=data-r9&hw=i7...](http://www.techempower.com/benchmarks/#section=data-r9&hw=i7&test=fortune)

and updates:

[http://www.techempower.com/benchmarks/#section=data-r9&hw=i7...](http://www.techempower.com/benchmarks/#section=data-r9&hw=i7&test=update) )

And there is room to grow. That micro-framework will not be the best for the json or plaintext tests, but once the database needs to be involved, it is trivial to add more concurrency: firing up more workers (1-3meg each in RAM) acts as an effective database connection pool (1 database connection per worker).

edit: Why should you care? Nawak ([https://github.com/idlewan/nawak](https://github.com/idlewan/nawak)) is a clean micro-framework:

      import nawak_mongrel, strutils

      get "/":
          return response("Hello World!")

      get "/user/@username/?":
          return response("Hello $1!" % url_params.username)

      run()

Benchmark implementation in 100 lines here: [https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...](https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/nawak/nawak_app.nim)

<comment><USER3> (Author of Jester here)

It's nice to see Nimrod making it high up on the list of the fortunes benchmark. I still have not had the time to properly optimise my framework, or to even write code for the other tests, but I am currently working on a new async module which will be a lot more competitive (an experimental version of it already made it into the latest Nimrod release, see [http://nimrod- lang.org/news.html](http://nimrod-lang.org/news.html)). In any case it's nice to see that others are creating their own Nimrod frameworks to compete with mine (thanks idlewan :) ).

</comment></comment><comment><USER4> We're very happy to have Round 9 completed. The 10-gigabit 40-HT core hardware has been quite amusing to work with. In most respects, these servers utterly humble our in-house workstations that we've been using for previous rounds.

If anyone has any questions about this round or thoughts for future rounds, please let me know!

<comment><USER5> I'm curious, would you be interested in microbenchmarks for things like concurrency models? I'm thinking about preforking vs. thread-per-request vs. events for C++, NIO vs InputStreams vs. Fibers for Java, etc. The idea would be to measure how much overhead is coming from the OS vs. the language vs. the framework so that framework authors could make informed choices for their framework architecture. Or would that be out of scope?

<comment><USER4> We are comfortable accepting and including what we call _permutations_.

Clearly, our project is about testing web application frameworks and platforms (we just say "frameworks" for conservation of typing). Testing NIO vs. InputStreams, for example, in isolation is a different project.

But as part of a web framework—let's say you had a framework that provided support for both NIO and InputStreams—we'd be happy to include the multiple permutations.

Obviously, this is within reason. If you submitted 512 permutations, I might have a small heart attack. Also, a general principal that we ask all participants to bear in mind is that each test should represent a viable production-grade configuration. This guideline might rule out a great number of wilder permutations.

</comment></comment></comment><comment><USER6> These web framework tests have been really interesting to look at, and each time I've been saddened to see that Rails/Ruby, the framework/language I program with most days, is consistently near the bottom. With Adequate Record now being merged into master, I'm hoping we start climbing the speed test records.

But a question that keeps coming up in my mind is that there are metrics that would be much harder to compare, but might be more useful in my book.

For example, I'd love to see a "framework olympics" where different developers build an agreed upon application/website on an agreed upon server using their favorite framework. The application has to be of some decent complexity, and using tools that an average developer using the framework might use.

In the end, you could compare the complexity of the code, the average page response time, maintainability/flexibility, and the time it took to actually develop the app and the results could let developers know what they sacrifice or what they gain by using one framework over the other. I know a lot of these metrics could reflect the developer themselves vs the actual framework, but it might also be a tool to let you know what an average developer, given a weekend, might be able to produce. It would also help me to see an application written a ton of different ways -- so I can make good decisions about what framework to choose based on my needs.

In the end, speed only tells us so much -- and speed is not the only metric that we consider when we write applications -- otherwise it looks like most developers would be coding their web apps in Gemini.

<comment><USER4> Readers should definitely evaluate the complexity of the code necessary to implement the tests. To that end, I plan to eventually enhance the results web site to allow you to readily view the related source for each test implementation (perhaps using an iframe pointing at GitHub).

For the very first round, we included the relevant code snippets in the blog entry, and I think that added a lot to the context. With nearly 100 frameworks, the volume of code has become too large to simply embed all of that code directly into the blog entry, but we've put too much burden on the reader to sift through the GitHub repo to compare code complexity.

Things we aim to do:

* Pop-up iframe with relevant code from GitHub.

* Use a source lines of code (sloc) counter to render sloc alongside each result in the charts.

* Render the number of GitHub commits each test implementation has seen at our repository. At the very least, this would show whether a test has seen a lot of review.

* Introduce more complex test types [1].

And as the other reply has mentioned, we have also discussed the possibility of a larger test type that might include a multi-step process. I'd love to eventually get to that point.

[1] [https://github.com/TechEmpower/FrameworkBenchmarks/issues/13...](https://github.com/TechEmpower/FrameworkBenchmarks/issues/133)

<comment><USER7> a matrix rank calculator might be helpful as well to filters results for users, though I am impressed with the present and new(ish) filtering available.

</comment></comment></comment><comment><USER8> Interesting to see Go benchmarks fall right out of the top 10 on the 10GbE machines while Java/JVM and even Javascript do amazingly well. My guess at 10GbE you are now testing how much the framework spends on the CPU.

<comment><USER9> there's something funny - for the multiply queries benchmark [1], Go is performing worse than codeigniter, kohana. But cpoll_cppsp-postgres is performing worse than codeigniter-raw .

anybody know what's going on .. is a full PHP framework performing better than raw c++ under certain conditions?

[1] [http://www.techempower.com/benchmarks/#section=data-r9&hw=pe...](http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=query)

<comment><USER10> PHP is for these tests, nginx and 256 to 512 PHP processes under PHP-FPM. Not a single process. If you put 40 Go processes behind nginx, each one allowed to use only 2 to 4 processors, you will get notably different results.

Anyway, the tests show how hard it is to scale to many processors with a single process. It shows that the Java VM is really good at it (to be expected, Sun always had systems with insane numbers of cores).

</comment></comment></comment><comment><USER11> Couple notes:

They have a blog post about the results here: [http://www.techempower.com/blog/2014/05/01/framework- benchma...](http://www.techempower.com/blog/2014/05/01/framework-benchmarks- round-9/)

If you're running on EC2 and not dedicated hardware (probably most people reading this), be sure to toggle to the EC2 results at the top right of the benchmark.

</comment><comment><USER12> It is great to see my beloved Ninja framework (fullstack, Java) in standalone mode to be the one of the best performers in multiple queries benchmark (better than 81% of 93 known frameworks) and data updates (better than 77% of 93 known frameworks).

These are the most realistic scenarios for the web app in my opinion.

</comment><comment><USER13> And Ruby on Rails is...... at the bottom of the chart again.

It is quite disheartening to see it being 20 - 50x slower on the best. Or 2 - 5x Slower to other similar framework.

</comment><comment><USER14> How is this data useful to someone building a web application? I have used several of these frameworks ,alteast the jvm based ones, and I can tell you that it is like comparing apples to oranges. Case in point, Wicket, which I have been using for several years, is a component oriented framework with a rich ready to use pre-built components. If on the other hand you are using netty, you are left to reinvent pretty much everything . Based on your configuration, it may be that wicket is returning the response from cache. Compojure and wicket serve different business use cases.

<comment><USER15> Like any set of benchmarks, using the raw number without taking into account externalities such as those you listed would be a poor indicator of the best framework for your needs.

That said, if you need serving power, the fact that some some solutions can literally serve 100x more requests than others, and for likely less than 100x slowdown in development time and effort, may matter.

</comment></comment><comment><USER16> I was hoping that Snap & Yesod would be run on GHC 7.8. It'll be nice to see what sort of improvements MIO will make, especially on the 40 core machine.

<comment><USER17> Yeah, I am currently learning Haskell and was surprised by the apparent low performance of Yesod and Snap in comparison to the faster frameworks.

I am wondering if I should spend more time on Clojure instead, as it seems to be significantly higher in the ratings.

<comment><USER18> The next version of GHC should improve those numbers significantly, but I would also note that there are much more significant reasons to consider using Haskell than the difference between 37k and 43k req/s.

</comment></comment></comment><comment><USER19> I am surprised that NodeJS on Mysql is much faster than on MongoDB. Is this expected?

[http://www.techempower.com/benchmarks/#section=data-r9&hw=pe...](http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=query)

</comment><comment><USER20> There are many frameworks showing as "did not complete". I was interested to see the results for Spray since it did really well in previous rounds, but there are no results for Spray in the latest round.

<comment><USER4> "Did not complete" indicates that a framework's test implementation does not pass validation. Spray is somewhat exceptional because the Spray community asked for it to be pulled until they have the time necessary to re-implement its test case. See the PR below:

[https://github.com/TechEmpower/FrameworkBenchmarks/pull/842](https://github.com/TechEmpower/FrameworkBenchmarks/pull/842)

</comment></comment><comment><USER21> Could you make the error log accessible? Some of the frameworks appear to just bleed errors left and right. Be interesting to see if they are real errors or just misconfiguration

<comment><USER4> We still need to post the final logs, but you can find logs from the preview of Round 9 at the following GitHub repository:

[https://github.com/TechEmpower/TFB- Round-9/tree/master/peak/...](https://github.com/TechEmpower/TFB- Round-9/tree/master/peak/linux/preview-1/latest/logs)

<comment><USER4> I can't edit the above message. The final logs are posted now:

[https://github.com/TechEmpower/TFB- Round-9/tree/master/peak/...](https://github.com/TechEmpower/TFB- Round-9/tree/master/peak/linux/final/latest/logs)

<comment><USER21> thank you!

</comment></comment></comment></comment><comment><USER22> Does anyone know why Ur/Web has far better performance on EC2 than other platforms?

Also can anyone share their experience using cpoll_cppsp?

</comment><comment><USER23> I would love to so Varnish in here for some of the tests.

For a typically webpage with multiple queries there appears to be around 5-10x performance disadvantage between slow and fast languages.Things like serving a plaintext or json response, where the slow languages are much much slower, Varnish is a good match for.

<comment><USER24> I would be intrigued just in general to compare against nginx or something serving a static file of the same size. Obviously that's "cheating" but in some sense it's a better benchmark for me to judge against than "what happened to be the fastest framework this time".

<comment><USER4> We are focused on testing without reverse proxy caches such as Varnish and the caches provided by nginx and Apache HTTPD. This is because we want to measure the performance of dynamic requests—requests that for whatever reason are not cached.

That said, we have considered including a measure of, say, nginx delivering the same content statically as a high-water mark. That could be interesting to see how well a framework compares to what might be an ideal case.

<comment><USER24> I mean your second paragraph, and for that reason.

</comment></comment></comment></comment><comment><USER25> I may have overlooked it but I cannot find ASP.Net MVC5 there. Is that framework version being tested?

<comment><USER26> I think they were trying to run it under Mono, and it failed to complete most of the tests. Setting up IIS for a "real" test of ASP.NET MVC might be out of their intended scope.

<comment><USER4> We do have Windows tests (run exclusively on the Peak environment for Round 9), but most of the ASP.NET tests are not starting and passing validation correctly as-is. We'd like to get these fixed up along with all of the other tests that are not passing validation and running correctly. As you might expect, we have a never-ending game of whack-a-mole with so many frameworks in play, so we lean heavily on the community to assist. We'd love to get pull requests to help validate the existing .NET tests.

</comment></comment></comment><comment><USER27> It's disappointing to see Laravel at the bottom, showing 47,135 errors and a 51% succes rate.

<comment><USER28> Given that the Laravel tests completed fine in all previous benchmarks, I'm guessing that there is something else amiss here.

</comment></comment><comment><USER29> Nice to see how great PHP is doing. It is still my favorite language.

One thing is strange: The HHVM result on the "plaintext" test. How can HHVM only do 938 requests/sec if it can do 70,471 in the much more complicated "singly query" test?

<comment><USER4> Yes, something is presumably wrong with the hhvm plaintext test. Some test implementations enter a failure state after the warm-up and never recover. That type of failure is distinct from the "did not complete" failures where the validation checks do not pass.

</comment></comment><comment><USER30> Still scratching my head at the C#/httplistener results. Ostensibly it should be pretty close to what a native C++ implementation should look like performance-wise, as a good chuck of the work on the raw text results is done by http.sys.

<comment><USER11> Just because it's written in native c++ does not mean all native c++ code will perform the same. Just look at the difference between the top java framework and bottom java framework - huge difference, even though it is the same language. Same likely applies to the difference between http.sys and something like cpoll

<comment><USER30> So normally, I agree that there is a difference between projects in the same language.

However, http.sys is kernel mode in windows, and should have advantages that other programs don't have.

</comment></comment></comment><comment><USER31> Interesting how the various Scala frameworks have been slipping down the charts from round to round -- an effect of changing methodology?

<comment><USER20> Spray was one of the leading contenders in previous rounds, but didn't complete in the latest round. I wonder why that is.

<comment><USER32> May be because Spray was merged into the playframework,also I think it plays a bit in the akka http layer as well, not to sure.

<comment><USER33> Spray has not been merged into Play, it's just a Typesafe project and will eventually be merged into Akka.

</comment></comment></comment></comment><comment><USER34> Hmmm. No Python-gevent? Still? Good showing of http-kit, though. Love that lib.

<comment><USER21> It's open source benchmarking. There are instructions on how to submit a language-framework of your choosing.

[https://github.com/TechEmpower/FrameworkBenchmarks](https://github.com/TechEmpower/FrameworkBenchmarks)

</comment></comment><comment><USER35> Wow HHVM on top for Data Updates! Congrats to Facebook!</comment>


The Russians made a bomb 1,400x as poweful as Hiroshima and Nagasaki Combined - <AUTHOR> http://gizmodo.com/5977824/the-biggest-bomb-in-the-history-of-the-world <comment><USER2> They didn't just make it, they also set it off o_O

<comment><USER3> The version used was only half as powerful as it could have been, thanks to the ethics of the designer, who feared the environmental risks and fudged the math to halve its effects.

<comment><USER2> I feel weird for cheering the ethics of a designer of nuclear weaponry for a despotic power like the USSR, but yay him :)</comment></comment></comment>


Ask HN: What are examples of good technical documentation that has aged well? - <AUTHOR> <comment><USER2> django's documentation let's you easily flip between versions in the bottom right.

</comment><comment><USER3> [https://doc.qt.io/qt-5/](https://doc.qt.io/qt-5/)</comment>


Another 34000 People Are About to Put Their Future in the Hands of an Algorithm - <AUTHOR> http://fivethirtyeight.com/features/another-34000-people-are-about-to-put-their-future-in-the-hands-of-an-algorithm/ <comment><USER2> An algorithm is still an algorithm if a human is running it. Therefore, humans put their futures in the hands of algorithms being run by impartial humans all the time; partiality is only nice when it's acting in your favor, after all, and we don't want to be at the mercy of people who might not like us for some undefinable reason.

<comment><USER3> > we don't want to be at the mercy of people who might not like us for some > undefinable reason

I keep restating this, but people still hate bureaucracy. Go figure.

</comment></comment><comment><USER4> This is the kind of title that I would edit. The article is about how the National Resident Matching Program will use an implementation of the Gale- Shapley algorithm for matching medical students and residencies. The title makes it sound much more significant than it is; virtually all of us "put our future in the hands of an algorithm" countless times every day. Everything we do that leaves a trace in a database somewhere will affect our future to varying degrees.

<comment> dj-wonk The article does not overstate the significance. Have you known people going through Match? It is quite significant for those 34,000 people.

I don't follow your argument. The match process has very little in common with people leaving traces of information in a database.

I'll compare the NRMP with something in the same ballpark: a credit score. There are three services (last I checked) involved there. You might have a mix-up, but a credit score can be disputed and corrected. To my knowledge, for all practical purposes, there is little recourse if the Match does not go as you hoped other than trying again the following year.

One might also compare the NRMP with the standardized tests for college admissions; that would make for an interesting discussion.

</comment></comment><comment><USER5> Numberphile has an episode on the Stable Marriage Problem: [https://www.youtube.com/watch?v=Qcv1IqHWAzg](https://www.youtube.com/watch?v=Qcv1IqHWAzg)

</comment><comment><USER6> The "matching program" isn't new--goes back to the 60's if not further. Sounds like the idea hasn't changed even if the "algorithm" is machine-implemented in recent times, no surprise there.

Used to be the student would put on his/her list the residencies in order of priority, and so would the institutions rank the candidates. Let the matching begin!

A thing to note is that not all residencies were in the mix and there were always a good number of students who weren't selected or maybe didn't even participate. That left room for students to find vacancies to fill.

AFAIK there weren't any students who couldn't get into a residency somewhere even if not among their top choices. Besides by the end of the first year of training there were always plenty of residents shifting to other programs so "holes" migrated around to an extent.

Chances are the situation is not at all dire for the current crop of graduating medical students. It tends to all work out.

</comment><comment><USER7> >where the students will do their residencies — three to seven years or more of supervised training, usually in a hospital. Since you can't get a license to practice medicine in the United States without completing a residency, this is a high-stakes game.

at least in CA (and majority of other states) the requirement is only 1 year of post-med-school training:

[http://www.mbc.ca.gov/Applicants/Physicians_and_Surgeons/](http://www.mbc.ca.gov/Applicants/Physicians_and_Surgeons/)

" How much training must I complete before I am eligible for licensure?

A US/Can must complete 12 continuous months of training in a single program to be eligible for licensure. Further, a US/Can must be licensed by the end of the 24th month of training. "

So going into 3rd year of residency one must already be licensed.

The rest of states:

[http://www.fsmb.org/policy/public- resources/state_specific](http://www.fsmb.org/policy/public- resources/state_specific)

Note: That is not to dismiss the importance of residency. As one can see from the above, its importance goes way beyond of just getting the license.

</comment><comment><USER8> The last section of the article was really interesting to me. Some points from it:

1) Students need a residency to become a Doctor. 2) Residencies are funded by congress. 3) More doctors -> cheaper healthcare

So why don't we fund more residencies? And why is the government the one funding them?

<comment><USER9> I'm on my way out, so this'll be quick, but a few other restrictions on supply:

* There can notionally only be as many fill-able residencies as there are graduating medical students -- this number would probably be the most easy to increase (since schools are fine with making more money), but it's actually quite difficult to find enough instructors to teach the students because the job pays so poorly compared to many other avenues a physician can take (and you need a certain instructor/student ratio for both accreditation and to attract students).

* Each residency program can only admit as many students as they are licensed to do, and this licensing generally is tied to the program volume (so a program seeing X patients per year would be granted Y residency spots). This gets tied to the professional organizations for the individual specialties (an oversimplification), who actually have an incentive to restrict the number of residency spots in order to maintain their own job security.

* There are plenty of available residency spots in the fields we need most, such as primary care -- it's just that unless people feel particularly compelled, they don't go into those specialties, because compensation and work/life balance are so poor compared to many specializations.

<comment><USER10> ? Primary care is the easiest work-life balance outside of radiology. 0 stress 28-hr weeks.

<comment><USER11> Zero stress? 28 hour weeks? Where are you getting this from?

[http://medicaleconomics.modernmedicine.com/medical- economics...](http://medicaleconomics.modernmedicine.com/medical- economics/content/tags/2013-salary-survey/productivity-primary-care-geared- revival?page=full)

> Median hours per week remained unchanged from 2011 to 2012 for > family/general practitioners at 50 hours, though visits per week increased > slightly from 98 in 2011 to 99 in 2012.

</comment></comment></comment></comment><comment><USER12> Why is this an article anyway? They use matching algorithms here in Canada for university co-op (intern) jobs as well. Lots of people don't get jobs, but that's no fault of the matching algorithm.

</comment><comment> dj-wonk My hunch is that a lot of value could be added -- and perhaps money made -- by rethinking the resident matching process. This would be much more than an algorithm redesign.

</comment><comment><USER13> There are, for the record, often _unfilled_ residencies in infectious diseases. This specialty tends to end up on the bottom of physician pay scales however.

</comment><comment><USER14> Based on work of "Lloyd Shapley and David Gale". Can somebody explain why is it better than just solving good old "Assignment Problem"?

</comment><comment> dj-wonk I'd be interested to know if the algorithm can be audited, and if so, by whom and why what process.

</comment><comment><USER15> A bit click-baity. The "algorithm" is the same vein as the "algorithm" that runs our voting system. (add up the votes and choose the winner).

I don't think the "matchmaking algorithm" in the blog post actually matches the colloquial meaning of the word "Algorithm".

<comment><USER16> [http://en.wikipedia.org/wiki/Stable_marriage_problem](http://en.wikipedia.org/wiki/Stable_marriage_problem)

Actually a relatively interesting algorithm, but I don't think the author explains it fully. The men must also rank the females. The key point is that for a match between people A and B, A has no person ranked higher than B who also ranks A higher than their current partner. it is optimal for every participant.

I'm not too familiar with residency- I wonder if hospitals submit a list of potential students they accept? How does the length of a hospital's acceptable candidates list compare to the number of hospitals a student will apply to? In the Stable Marriage Problem, each set member must rank every member of the other set.

<comment><USER17> > I'm not too familiar with residency- I wonder if hospitals submit a list of > potential students they accept?

The article does mention that, "Med students and hospitals are currently ranking their top choices from these interviews." I would assume that the hospital only ranks students they interview and would consider acceptable for the program.

> Each set member must rank every member of the other set.

I would assume that they just fill in the blanks with some value that prevents matching. I don't think a hospital or a resident would be very happy with what would amount to random assignment of the leftovers.

<comment><USER18> Yes, they only rank students they interview. Those students who don't match before the rankings are exhausted "scramble"; they speed-date programs that still have openings in the hope of matching, so the leftovers are not randomly assigned. (Whether the outcome for them is better than random is hard to say.)</comment></comment></comment></comment>


Cloud-Based Bio Lab Transcriptic (YC W15) Lands $8.5M in Series A Funding - <AUTHOR> http://techcrunch.com/2015/02/19/cloud-based-bio-lab-startup-transcriptic-lands-8-5-million-in-series-a-funding-to-help-it-scale/

<comment><USER2> I've been a supporter (and small backer) of Transcriptic for a good while.

Max is awesome and he's been ruthlessly executing for 3 years on this now - really impressive to see all of the progress.

Congrats!

Also, awesome news for future YC bio-med companies!

</comment><comment><USER3> Great to see this -- much needed infrastructure for bio research.

</comment><comment><USER4> This is an impressive trajectory these guys have been on -- congratulations to Max and the team, and I hope they have a great year ahead.

</comment><comment><USER5> Congrats Max, great seeing your team do so well!</comment>


Global hangouts outage? - <AUTHOR> sure doesn't seem to be working for me (and lots of other people). and since gvoice is linked to hangouts, well, I'm in the shadows. finally. <comment><USER2> [http://downdetector.com/status/google- hangouts](http://downdetector.com/status/google-hangouts) shows many users reporting it. [https://www.google.com/appsstatus#hl=en&v=status](https://www.google.com/appsstatus#hl=en&v=status) doesn't list anything (yet, currently).

</comment><comment><USER3> I'm using Google Fi and I havent been able to send messages through hangouts or SMS for 20 minutes or so now.</comment>


This is our responsibility - <AUTHOR> http://www.strategy-business.com/press/16635507/05410 <comment><AUTHOR> Read this article over a year ago and I revisit it every couple of months to remind me of why I stay up late researching the ideas in my head. Some look good, some don't but at the end of the day, opportunity is around us all. Read it, it's worth the time.</comment>


James Randi comes out of the closet at 81 - <AUTHOR> http://www.randi.org/site/index.php/swift-blog/914-how-to-say-it.html

<comment><USER2> I had to "come out" as straight live on BBC Radio Manchester when I was running the Alan Turing apology campaign. The interviewer assumed I was gay and asked me a question about the gay community. Didn't have any clue and figured the best thing was to "admit" that I was straight.

During the campaign I received hate email suggesting that I was gay, the Prime Minister told me that I was "brave", and many, many people assume I'm gay because of Turing.

It's such a shame that people think that way, after all, it couldn't possibly be the case that a straight man thought that treating a gay man badly was the wrong thing to do.

Good on Randi for coming out. Now let's move on to other things that are more important.

<comment><USER3> That's funny - I simply assumed you were a geek. Whether or not you were gay didn't even cross my mind.

<comment><USER4> It is very brave to come out as a geek.

<comment><USER5> What would a closet geek be like?

<comment><USER6> IDE has a boss key that replaces a page of code with a spreadsheet of shipping manifests.

<comment><USER7> Or ed having a bosskey that showed an IDE.

</comment></comment></comment></comment></comment></comment><comment><USER8> I really debated whether or not to upvote this. I'm guessing that HN has a higher percentage of people who like (or at least know of) Randi than the general public, so it certainly fits the "general interest" guideline. But I'd also (like to) think that we're getting to a point (at least in this community) where this is so acceptable as to not warrant mention. I also worried that I'd be contributing to the "Look Who's Gay Now!" style of news that plagues conventional outlets (well, at least entertainment news).

That being said, I don't mean to take away from Randi's personal decision to come out and the hardships he had to endure for the last 70 years. This comment is my own little part of the "murmur of acceptance" he expected and I hope that he would appreciate me asking (as an honest question for the purpose of social insight), why did you, as an HN reader find this newsworthy?

<comment><USER9> Even if HN might be past the point where anyone would care (I wouldn't count on the % being as good as you'd hope), _society_ isn't, so it's still interesting that he's one more person coming out and helping the general public realize that homosexuality is common and that plenty of "great" people are gay.

</comment></comment><comment><USER4> _Fatal error: Non-static method (null)::Q() cannot be called statically in /home/jamesran/public_html/site/libraries/joomla/utilities/simplexml.php on line 607_

That's a pretty serious thing to admit in public. He uses Joomla. PHP. Damn. Another idol crumbles.

</comment><comment><USER10> This surprised the hell out of me and now his choice of work makes sense to me.

Born in that period and being promised hell after death for being gay must have triggered a whole lot rationalizing process in him which definitely helped made him a crusader against the paranormal and brought logic and exposed so many of the hoaxes.

If only Alan Turing didn't commit suicide.... sigh

</comment><comment><USER11> On a related note - the Milk film that he references is fantastic. Possibly it was because I saw it knowing _nothing_ about the story (I've got no idea about SF/gay politics) and so it was all new to me. Well worth watching.

</comment><comment><USER12> Good for him. It's sad that he felt he had to wait this long.

<comment><USER5> I agree. I also find it interesting that someone hiding something so big about himself was so interested in exposing other people's secrets.

<comment><USER13> Unless he claimed to be straight (and tried to rip people off with "going straight" seminars), it's not an issue. He wasn't exposing secrets. He was exposing deliberate deceptions which were used to manipulate other people into changing their behavior and beliefs.

He claims that miracle workers should put their claims up against a rigorous test. Fair enough. I wouldn't care if he was secretly (say) a Buddhist, as long as he didn't claim he (or anyone else) could work miracles. Faith in a higher power has a wonderful placebo effect - it's empirical. It doesn't mean you have to rationally accept it.

<comment><USER5> I don't think it is an issue -- more like a plot twist.

<comment><USER14> one more illusion dismissed

</comment></comment></comment></comment></comment><comment><USER15> Who cares?

Does his sexuality erase or amplify the work he has done? _No._

Let's move on.

<comment><USER16> It's important for him to mention in that he is 81 years old and is probably contemplating a shorter future than any of us. It's a good thing for him to tell everyone rather than have it wind up in post-mortem articles that make it out to be some dark secret that could be used to cast his life's work in a bad light.

<comment><USER17> I agree with your suggestion that he ought to have written this post. I also suggest that there are many types of blog posts that ought to be written. That doesn't mean they ought to be on the front page of Hacker News.

<comment><USER16> People voted to put it there. I've submitted things that people haven't voted on at all, which surprised me, but that's how it goes. Some things get votes, some things don't.

</comment></comment></comment></comment><comment><USER16> OK, this surprises me. Rock Hudson was shocking. So was George Takei. Right, so who else from my 1960s childhood will announce? Just end the damned suspense. Statute of limitations and all that. And it's a new age too.

<comment><USER16> OK, I don't see why this got downvoted unless you misunderstood. If you grew up in the 1960s -- which I did -- there was _no_ mention of homosexuality at all in the general culture and especially not to us kids. So it's naturally surprising to wind up in adulthood and to see who has been gay all along.

Anyone who thinks there is any hint of disapproval in this should go read two of my other posts elsewhere: [http://mikecane.wordpress.com/2006/11/18/the- homo-fag-queer-...](http://mikecane.wordpress.com/2006/11/18/the-homo-fag- queer-we-all-owe/) [http://mikecane.wordpress.com/2006/11/17/that-funny-that- nas...](http://mikecane.wordpress.com/2006/11/17/that-funny-that-nasty-that- charming-man/)

And for those who dismiss what Randi did -- it was important for _him_.

</comment></comment><comment><USER18> This is not at all surprising to me, as someone who has been subscribing to the magazine that includes his column for years. As he points out, the connection between his personal life and his work is primarily that he desires people to apply rationality to their decisions about how they view other people's choices in their personal lives. He belongs to a generation with such different experiences that he may have been habituated to staying "in the closet" long after when he needed to.

</comment><comment><USER19> This is incredibly surprising. Whatever the case, I wish the man the best of luck; this can't go over well what with all of the combative kooks out there.

</comment><comment><USER20> Strangely, this is the first article about or by Randi that I've seen on Hacker News. I'd never heard of him until now.

</comment><comment><USER21> Skeptics have debunked his claim.

<comment><USER22> Can they collect $1 million if they prove Randi is heterosexual?

<comment><USER7> No.

</comment></comment></comment><comment><USER23> To be honest when someone working on wall street commodities market floor can come out as gay, THEN I will accept that the culture finally accepted gays.

My friend has to pretend that he is straight and tell stories of him and his gf, because if found out that he was gay, not only would be lose most business, his life would be put through hell.

Congrats Randi!

<comment><USER7> Professional footballers in Germany (soccer players for you Americans) also still have to be straight for social reasons.

Contrast that with a gay mayor in Berlin and a gay foreign minister.</comment></comment>


OlegDB 0.1.5 released: More Go, less Erlang - <AUTHOR> https://olegdb.org/blog/0006_OlegDB_0.1.5_Release.html <comment><USER2> I thought (hoped!) this would be a full text database of Oleg's papers ([http://okmij.org/ftp/](http://okmij.org/ftp/)), though of course the irony of constructing such a beast in Go would be overwhelming. As it was I found the website only a marginally less enjoyable read than "Finally Tagless".

I assume this is getting up-votes by appealing to HN's current infatuation with Go, but would be genuinely be interested to know other salient points of the project beyond its laugh value.

<comment><USER3> You should email the authors. From their contact page:

firstname.lastname@example.com

EDIT: link to contacts: [https://olegdb.org/](https://olegdb.org/)

scroll to the bottom

<comment><USER4> That email address alone just convinced me to take a closer look at this DB.

</comment></comment></comment><comment><USER5> If you take five minutes and read through their website you can tell this is a rather complex troll and also funny how people on HN mindlessly upvote anything related to Go.

<comment><USER6> It started as a troll (with RAR compression and all other weird things planned), it's becoming more serious as we develop it further.

<comment><USER7> It's definitely still the best mayonnaise-themed database out there.

</comment></comment></comment><comment><USER8> Interesting to see how a language that is barely out of the egg is already supplanting one that has been around for decades because of the 'bus-factor'.

If you're wondering why FP hasn't caught on in the mainstream I think this is one of the hints: if it's hard to find programmers then the language/ecosystem may have unique and desirable traits but people will still switch just to gain easy access to developers. And that switch wasn't exactly free in this case (they already did a bunch of stuff in Erlang).

That said, olegdb does not seem to be the most seriously run software project, [https://olegdb.org/faq.html](https://olegdb.org/faq.html) is not going to inspire confidence in anybody in a position to decide whether to use it or a competitor.

<comment><USER9> I helped build a new team of elixir programmers up to about 8 people in 6 months all in a third tier tech city. Most of that hiring was done before Elixir hit 1.0.

I don't buy the bus factor argument.

In fact, it's quite the contrary. If you want good programmers, "limiting" yourself to something like erlang or elixir (vs a "popular" language like go) works in your favor.

The best engineers know why to choose erlang or elixir over go and will come to you. It works as a filter and makes hiring easier.

Seeking the most popular language is the method of PHBs who want to see programmers as a commodity and want to get the cheapest labor pool from which to work with.

You increase your value by going tup the spectrum into more esoteric and better languages.

<comment><USER10> That's good and all but you miss a point: Go isn't (still) a popular language (either quoted or not and in the context of Java or C++ being popular languages with vast pools of programmers), it's just slightly more popular than Erlang.

</comment></comment></comment><comment><USER3> They're really going for the long troll here.</comment>


Sign This Label Deal or We'll Shoot the Dog - <AUTHOR> http://thisweekinmusictech.tumblr.com/post/109394824267/sign-this-label-deal-or-well-shoot-the-dog

<comment><USER2> Why she should NOT sign - with actual argumentation ;-)

[http://stratechery.com/2015/niches-problem-subscription- serv...](http://stratechery.com/2015/niches-problem-subscription-services/)</comment>


Ask HN: What is your favourite programming language?  Why? - <AUTHOR> <comment><USER2> For fun, Scheme/Lisp. Once you have macros it really feels like the sky is the limit in terms of what you can express.

I've also been liking Go quite a bit recently. I know it's a language HN loves to hate. It's not as expressive as some other languages. But I feel like creativity within constraints can also be rewarding (kind of like writing a haiku). If I can find a way to reformulate my problem so that it can be expressed easily in Go, I'm often happy with the result. And because the abstractions Go provides are not very costly, it usually executes efficiently too.

It's hard to find a language that combines high level features with the lower level features that performance-sensitive apps often need (like value types, control of memory layout, etc). Also GC simplifies a lot of things, and Go makes it practical for a wider class of applications with sub-ms pauses and making it easy to minimize allocations. C++/Rust involve more programmer effort around ownership, and C# can also involve more programmer effort since minimizing allocations is trickier and GC impact is greater. It's not a big language but the combination of features / trade offs seems really practical.

Go's also widely used enough where you don't need to worry about having a robust library if you need HTTP2 or something.

</comment><comment><USER3> Probably javascript. With the caveat that all of the work I've done in javascript has been of the old school "write it in a text editor and FTP it to the server" variety, and I have little real exposure to the modern ecosystem or the problems people seem to have with javascript at scale.

I like the simplicity of the syntax. Arrays and objects are easy, closures are easy, and I like prototypal inheritance as a concept, although you're not supposed to actually use it in practice.

Lua is probably a close second, though. If I were to design a programming language, it would probably be somewhere between the two, with some C++ features tossed in for flavor (operator and function overloading, maybe generics.)

<comment><USER4> I second this. I love ES5. It was a beautiful, simple language. And it runs just the same on literally every device.

The JavaScript community has taken a horrible turn towards complexity. I've been planning a fork of the npm tree, to return to ES5. But it's a big project and I want to be ready with a good modern, modular web toolkit before I do.

(The plan is not just to fork an ES5-compatible tree, but to allow people to rewind the npm tree to an arbitrary branch mask based on any linting rule they like and append from there. If you want to narrow to only typescript+react packages with named exports for tree shaking, you could. I'm gonna do good old fashioned ES5 though, no promises allowed and no assignment in global scope)

<comment><USER5> i understand your love for javascript... but i dont understand the hate for es6 & upwards. ive rewritten all my code to atleast es2015 and lost so much overhead while doing it wich makes my projects alot easier to maintain. (and alot more predictable)

the only thing wich is lacking right now is native support for it in the browsers

<comment><USER4> Promises introduce declarative control structures basically between every function call in an async application, which is a nightmare for debugging.

ES6 introduces way more syntax, making it much harder for beginners to learn.

Arrow functions make scope much harder to reason about, which makes closures more of an anti-pattern. In ES6 closures are one of a tiny number of scope patterns so you can actually use them.

Arrow functions cause bind to break in unpredictable ways.

Most other ES6 features are just syntactic sugar which offer no software engineering benefit and add a whole layer of conflicting code styles that one must constantly switch between, or else deal with constant pointless linting fixes if you are adhering to a consistent standard.

ES6 demands you use a transpiler which makes debugging flakier, and adds another place for bugs and maintenance work, in addition to often slowing he build down.

If I wanted deal with that much headache I'd just use typescript and at least get type checking in exchange for the syntax change and transpile step.

ES6 exists because some programmers never understood prototype and bind. And felt naming a function that is only called once was icky. Mostly former Ruby programmers. So they bolted a shitty Ruby onto JavaScript in order to get people to stop using prototype and bind, which are the heart of JavaScript's control flow.

Basically the chest burster from Alien.

</comment></comment></comment></comment><comment><USER6> I think I subconsciously fell in love with Python because of something a bit silly... the bias towards keywords over symbols.

I think there's some pattern recognition routine in my head that convinces itself we're reading prose, based on the ratio of words to symbols, so it feels comfortable for a amateur hobbyist like me.

I know "bias towards keywords" isn't a functional language feature, but I think it is a nice UX.

Of course, then I learned about generators and decorators in Python... Those are fun too.

<comment><USER7> "Thinking in Python" is a thing -- kinda. It's like "thinking in Lisp" or "thinking in Haskel." Each of these makes you a better programmer, in my opinion!

Generators are certainly "thinking in Python."

</comment></comment><comment><USER8> At the moment, Go. I like the focus on features that make programmers happy, like `gofmt`. I love that most of the things I want to be able to do are already available as a library - it feels like Python in that regard. I really love how easy it is to cross compile for different platforms. I think they still have some issues with dependency management, but `dep` has made my life much better already.

I love Rust as well, though I love it more as a concept than as an actual useful language. If only it weren't so freaking hard to get anything done in that language!

</comment><comment><USER9> C# is my favorite language as long as we're only talking about the language. It gets out of my way - I can write it without thinking consciously about the programming language. If the run-time didn't have garbage collection, it would be my ideal language. The GC never gets out of my way, ever.

<comment><USER10> Try autohotkey. One of the few scripting languages that doesn't have a gc. Also good for lurker types in my opinion.

</comment></comment><comment><USER11> Important not to mistake fluency for favourite. I code mostly in python but I am attracted to lisp and Haskell.

Because they have beautiful simplicity in the first case and interesting outcomes in the second. I continue to struggle to achieve expressiveness in either. Maybe before I die.

But my real favourite is awk. Because it was the first language I used with a hash structure and so let me explore writing code which did content addressed things like count uniques over stdin string streams from logs. All kinds of languages had functions and procedures and fancy schmancy if then else but having dynamically sized data which indexed off data.. that was electrifying. Perl had them after and I suspect that in part accounted for it's popularity. Every scripting language since has too.

<comment><USER7> There is this oddness between how programming in Haskell feels and programming in Python. Each time I go back to Haskell to try and learn a bit more about that environment, I find the mindset carrying over to what I write in Python.

<comment><USER12> I spent a few years as a Python developer followed by a few years working with Haskell. Now I've gone back to Python and I'm a _much_ better Python developer because of my Haskell experience. In fact I think I'm even better than I would have been if I'd swapped my Haskell time for more Python time.

</comment></comment></comment><comment><USER13> Let me earn myself a -4. I do my hobby code in VB .NET. VB6 was the first thing I learned, and whether I'm doing C++, C#, or PHP, whatever else I've ever used, I'm usually translating in my head what I want to do... from VB.

So I've ended up back at VB after several years in other languages because it cuts out the cognitive load.

<comment><USER11> It has a good ide.

</comment></comment><comment><USER14> Elm! (Currently.)

I might have said Haskell, except I have very little hands on experience with Haskell.

Elm is such a joy. Here are some reasons!

1\. In the end, all your code is either functions or data!

2\. There are only a few core concepts, and very little extra language features. There is zero implicit indirection. (E.g. macros or class inheritance.) As a result, it's incredibly easy to reason about what the code is doing.

3\. It's incredibly straightforward to reason about what code is doing. Function bodies are just a single expression saying what the function returns. Functions are 100% "pure"; they don't perform side effects, and when you pass in the same input you always _always_ get the same output.

I work in Elixir day-to-day. Elixir's great, but just today I spent hours digging through internals of Phoenix (the prevailing web framework) to implement a "low level" abstraction in our application. Trying to understand the flow of code in Phoenix was painful! (Because a lot of advanced language features are used that bring more layers of indirection.) Not so in Elm. There's no objects, no classes, no inheritance hierarchies. Everything is way more concrete and clear from the get go.

<comment><USER15> i'm just starting to learn elm.

are there any cases where elm was not the ideal solution but js was?

</comment></comment><comment><USER16> Python. I'm an "infrequent" programmer, and I find the syntax sticks with me between projects, which is a huge time-saver. It's also the cleanest, most readable language I've ever programmed in, though I realize that's an extremely personal preference. Like brownbat, I have a bias for keywords over symbols. I'm also a huge fan of "explicit over implicit" and "there should be one right way to do it," which is why I favor Python over Ruby. The biggest win, though, as I've gotten more experienced with the language, is the ease and simplicity of "pythonic" programming--using iterators, generators and list comprehensions, favoring built-in data types (dictionaries, tuples and sets) over custom classes, and so on. My Python programs tend to be much, much shorter than what I'd write in C++ or C#, easier to read and quicker to write. Win, win, win for my purposes as I mostly don't care about speed ...

</comment><comment><USER17> Kotlin. Less verbose than java, functional and modern features when I want them but doesn't implement every programming idea like scala. My second favorite language is python, but I like getting the type safety while writing way less code.

<comment><USER18> Another vote for Kotlin - it strikes just the right balances for me in the functional vs. objective and verbosity vs. readability ranges.

Its connection to Java brings a huge ecosystem of tools and libraries to the table, but if you don't need those, today Kotlin can also be used without Java or the JVM.

It has been my main language for work projects for over a year now and I still love the language.

</comment></comment><comment><USER19> F#: the syntactic power and delicious type system of OCaml combined with the coding ease of Python, all the best of modern C#, a runtime that's essentially a first rate JVM clone, all wrapped up an packaged by one of the better dev tool suppliers...

It hits a real sweet spot for Enterprise coding, domain modeling, scientific computing, and cloud computing. It's the only way I'll touch legacy MS- ecosystem projects. The community is driven by open source and highly cross platform. It's also got type-checked scripting that makes 'plumbing languages' and utility scripts look second rate, for pragmatic day to day stuff, while maintaining complete access to the libraries and models of any of your systems.

Potent stuff for people whose technical decisions are regulated (or even just subject to Enterprise Thinking by Important People).

</comment><comment><USER7> Python. Just because of the community. There are amazing developers involved in every bit of the Python community, from machine learning libraries to web frameworks :)

It's hard to find a problem that only has one Python library that solves it. Most of the time you have a dozen, and half of those are maintained better than I'd ever expect.

</comment><comment><USER20> Julia lover here. I love having math at my fingertips and the ease of writing x'x\x'y. I like writing numerical code, knowing I can change types later and it will likely work. Still, I miss tab-tab from ipython for method completion from time to time and I work all day in mostly C++.

</comment><comment><USER21> Elixir - 20 years of solid engineering design choices, battle tested to scale, with a nice new rails-like lick of paint.

</comment><comment> nils-m-holm Klong and T3X, both invented by myself. Klong is a K-like array programming language that I use for all kinds of computations, statistics, and data analysis. T3X is a super-simple typeless low-level language that looks a bit like a cross between Pascal and BCPL. I have also written an awful lot of C code, but it gives me headaches way too often.

See [http://t3x.org](http://t3x.org) if you want to have a look at Klong, T3X, and all the other languages I have implemented or invented.

</comment><comment><USER22> Haskell. For programming with immutable values and pure functions, beautiful succinct syntax and strong types. Strong types ensure correctness, but in Haskell, they also help me reason about where and when my effects (such as IO) are happening,

Haskell is now the current inspiration for many object-oriented languages like C# and Java:

[http://wadler.blogspot.co.uk/2012/09/brian-goetz-on- future-o...](http://wadler.blogspot.co.uk/2012/09/brian-goetz-on-future-of- java.html?m=1)

</comment><comment><USER23> Haskell. I like the power of using a powerful type system to get more guarantees when you compile your program. It's like getting additional unit tests with 100% code coverage for free.

</comment><comment><USER24> Racket: it has the feeling of having been constructed by people much smarter than me, who are eager to help me get smarter myself. The docs and guide are a joy.

</comment><comment><USER25> Python - because I suck at programming and it's easy - also because I don't do it professionally it's more of a hobby for me

<comment><USER7> Don't be too hard on yourself!

</comment></comment><comment><USER26> I've used a lot of languages in my career, and Clojure is easily my favorite. I have never found anything else that comes close to being fun to use, getting the heck out of my way, and allowing me to solve real problems fast. The combination of generic data programming, sane state management, and access to host platforms with reach is a killer combo.

<comment><USER27> If you have to choose second best, which one would that be ?

</comment></comment><comment><USER28> I've got two: I write and prefer to write code in Go. But when I'm in my thinking mode, I like and use Haskell a lot.

I find Haskell clears up your thinking a lot, but it's really not great for production work. Go on the other hand is extremely great for prod work

</comment><comment><USER29> Okay, okay... I'll be the lone Swift user. I really enjoy the type safety and in line parameter names on function calls. Of the type safe languages it feels like it has the minimal about of scaffolding needed to run some code.

<comment><USER30> The only issue I have is having to use Xcode.. has that changed since the last time I looked into it?

</comment></comment><comment><USER31> I'm having a ton of fun with Elixir these days. Primarily focused on utilizing Nerves and deploying sensors in agricultural environments monitoring irrigation, temperature and humidity.

</comment><comment><USER32> When I was a student, I learnt OCaml and loved it. Unfortunately there are very few opportunities to work with these kind of languages. So I tried my best to use some functional featured to the languages I work with, mainly JavaScript, and more recently Typescript which I really like.

I started to look into Elm and might fall in love with it soon enough, if so I'll try my best to make my coworker love it too :)

Tldr: OCaml in my dreams, Typescript in reality, probably soon to be replaced by Elm

</comment><comment><USER33> Python is my favourite by far, mainly because when I first read over the syntax I typed in an ultra simple program and it worked first time. Normally, you would wrestle with constructors, imports / includes and semi colons in the appropriate places, but the fact that this program _worked first time_ really impressed me.

It has a beautiful clean syntax, which is as concise as I can imagine that a human readable language could get to giving instructions to a computer.

</comment><comment><USER34> Clojure. Lisps in general are beautiful.

</comment><comment><USER5> i absolutely love D! its such a nice mixture of both worlds, you have the good things of a compiled language, the extensebility of C/C++ and the really handy things scripting languages provide :D it feels like a scripting language with the power of native speed and compability

</comment><comment><USER35> My fave lang to implement is Forth. Get hold of an old FIG listing and you'll find a tiny number of hand coded primitives in asm at the core. The threaded interpreter is simple and elegant. The resulting system is fast and extensible.

</comment><comment><USER36> Python professionally. Use it every day at work and for side projects.

My favorite "for fun" languages are TCL and Ada. TCL because of its simplicity and elegance, Ada because of its type system, oop model, and compiler.

</comment><comment><USER37> My favorite programming language is Zero (yes it is my invention). If you have not heard of it then I am not surprised because the language is very new (theoretical actually). You develop programs in it by defining new infinite sequences from existing ones.

All begins with the primitive infinite sequences and the language's means of combination (specified with decimal digits)

\---universe begin---

sequence 01: 0 1 2 3 4 5 ...

sequence 03: 1 2 3 4 5 6 ...

sequence 05: 2 3 4 5 6 7 ...

sequence 07: 3 4 5 6 7 8 ...

...

\---universe end---

0105: count by two

\---universe begin---

sequence 01: 0 1 2 3 4 5 ...

sequence 02: 0 2 4 6 8 10...

sequence 03: 1 2 3 4 5 6 ...

sequence 05: 2 3 4 5 6 7 ...

sequence 06: 1 3 5 7 9 11 ...

sequence 07: 3 4 5 6 7 8 ...

...

\---universe end---

01030501: set up some cycles

\---universe begin---

sequence 01: 0 1 2 3 4 5 ...

sequence 02: 0 2 4 6 8 10...

sequence 03: 1 2 3 4 5 6 ...

sequence 04: 0 1 2 0 1 2 ...

sequence 05: 2 3 4 5 6 7 ...

sequence 06: 1 3 5 7 9 11 ...

sequence 07: 3 4 5 6 7 8 ...

...

\---universe end---

Please note that as the universe grows we always leave space for more sequences by skipping every other sequence designation.

What makes this language useful is that with very little effort any two arbitrary infinite sequences can be defined. As a consequence any mathematical relation is easily defined as a mapping from members of one sequence to the corresponding members of the other sequence.

I will briefly describe the language's means of combination. Writing a sequence designation one next to another will form new sequences by pulling out corresponding members. But all sequences are infinite so after the last designated sequence is visited the member value is used to select the possibly new member in the first designated sequence. Digits that are not able to be confused with sequence designations specify the three other primary means of combination. They are "cons", "car", "cdr". With a proper understanding of their use one can build arbitrary sequences. I will just say that "cons", "car", and "cdr" are used to combine entire sequences which is logically equivalent to combining corresponding members of those sequences.

In the code above I write "0105". The "01" is a sequence designation. The "05" is a sequence designation.

<comment><AUTHOR> How do you define new sequences? What is the 'purpose' of this language -- that is, what can I do with it?

<comment><USER37> Thank you for asking.

I define an infinite number of new sequences twice over in the example above. Between "\---universe begin---" and "\---universe end---" is listed the state of the universe. After inspecting the current state of the universe one can add new sequences with numeric codes as I have attempted to describe. The example above shows two iterations of this process. In each case an infinite number of sequences is added. So really your program will describe an infinite sequence of infinite sequences. And, if you never stop programming, then you are actively directing an infinite sequence of infinite sequences of infinite sequences!

The purpose of the language is to be "general purpose". Any programming problem can be modeled with this language. Because a number represents anything _at_ _all_ , I would not hesitate to use the language anywhere I have need for an _algorithm_. Input transformed to number is manipulated by algorithm then presented to the user as output. A gui is typically used to control this process.

Impressively, it is possible to write relations with very little knowledge of specific algorithms. For instance, you may know how to square a number but be totally ignorant of methods to find the inverse function (the square root). Not a problem - you already know enough to direct the computer to take square roots. This might seem magical. It certainly is magnificent, but there is no magic involved. It all has to do with the design of the language.

<comment><AUTHOR> Do you have a link to it?

</comment></comment></comment></comment><comment><USER38> I still like sql. It's just so intuitive:

select this from that where something is true

That's the core of everything you do.

I could write all day about what a mess it can become, and how awful debugging is. But I still enjoy it

</comment><comment><USER39> Work in project using grovy.

I'm still amazed how much stuff is build in and don't need a plug-in or extension or need you to write your own function...

</comment><comment><USER40> Kotlin. Have been using it for a couple of years in production code. It does almost everything Java does, but with much less characters.

</comment><comment><USER41> swift, because it has a high level syntax with a really nice Generics implementation, but can still interface relatively easily with low level API's. Also because it uses reference counting for memory management instead of mark and sweep garbage collection so has more predictable performance and low memory overhead.

<comment><USER42> I've just started doing some Swift, I've been really impressed so far.

</comment></comment><comment><USER43> Clojure, because of Datomic.

<comment><USER44> I have been meaning to try datomic for a while but love every minute of my current job doing Clojure. My company has been converting everything to it at every reasonable time, from web servers to massive ETL jobs to our Clojurescript React Native mobile apps. We've always been very happy with the conciseness of the code, the clarity gained from immutability and pure functions, the performance switching off Rails to the JVM and far easier parallel programming tools, and the ability to utilize the vast Java/JavaScript ecosystem if someone hasn't written something in Clojure itself. No ecosystem is perfect, but it has been the most charming environment I've worked with ever. Cursive rocks too!

</comment></comment><comment><USER45> Brainfuck - because of it's name.</comment>


Ask HN: Linux for Windows Devs - <AUTHOR> Hi,
I'm new to Linux and just setup my Ubuntu desktop for software development. Need suggestions on how to make use of Linux, tools that are available for administration, how things are typically setup in the Linux world, tools and utilities available. Are there any resources, best practices that I can make use of?
Thanks! <comment><USER2> Get a copy of "UNIX and Linux System Administration Handbook" by Evi Nemeth, et al. to get you up to speed on the basics.

As for development, depends on exactly what kind of development you want to do. You're going to have to be more specific.

<comment><AUTHOR> Thanks. .Net Core, Docker, K8s.

</comment></comment><comment><USER3> [https://neilkakkar.com/unix.html](https://neilkakkar.com/unix.html)</comment>


Keyboard Ghosting - <AUTHOR> http://www.microsoft.com/appliedsciences/content/projects/AntiGhostingExplained.aspx <comment><USER2> Most mechanical keyboards have N-Key Rollover or Anti-Ghosting to handle the situation of multiple simultaneous key-presses. USB supports up to ten keys, while only PS/2 has full N-Key Rollover support.

Here's a good explanation of the issue with an interactive typing test showing the issue: [http://blog.controlspace.org/2010/08/n-key-rollover-what- it-...](http://blog.controlspace.org/2010/08/n-key-rollover-what-it-is-and- how-to.html)

<comment><USER3> USB keyboards can get around the ten key limitation by presenting themselves as multiple devices.

<comment><USER4> Or by using a passive USB to PS/2 adapter. USB and PS/2 are both serial protocols with similar wiring, so a USB keyboard that supports passive adapters can detect what kind of port it is plugged into when powered on, then send unmodified PS/2 through the USB cable. For this reason, there are a few mechanical keyboards that only support N-key rollover in PS/2 mode, dropping down to 10-key rollover in USB-HID mode (it's cheaper and less likely to cause bugs than presenting as multiple HIDs, and anyone that cares about N-key rollover probably has a PS/2 port anyway).

</comment></comment></comment><comment><USER5> I never got why keyboards don't just use a demux / output selector.

Tie each switch through a diode, toggle one column to high, read the rows. Repeat, scanning through all columns.

But then again, it's kind of pointless, what with USB limitations (!) and all.

<comment><USER6> Because of historical expectations about the semantics of the "Escape" key, IIRC.

<comment><USER5> Elaborate?

</comment></comment></comment><comment><USER7> FYI, this was posted a couple times before and once with some discussion associated.

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

</comment><comment><USER8> They never actually say what they do.

<comment><USER9> To counter ghosting over USB? They use a different protocol than the HID keyboard protocol. If you're not constrained by that protocol, you can send as many key combinations as your keyboard is capable of generating.

Of course, this means that you need custom keyboard drivers, either installed via a package or by default, and the keyboard needs to be capable of switching protocols, based on if its talking to a OS with compatible drivers or a BIOS without.

</comment></comment><comment> zupa-hu Anyone knows about such keyboard but in smaller size, as in whatever those left column keys are? Also this looks like an "amazing artwork" I just want a damn keyboard that is small, works and looks boring.

<comment><USER10> Take a look at either the Vortex Poker (POK3R as the current iteration) or the Atomic/Planck.

<comment> zupa-hu I totally fall in love with Pok3r, thx again for the reference!

Funnily the main reason I was interested in that anti-ghosting was that I have a keyboard rewriting script that maps the CAPS to be a function key, I'm using IJKL as arrows for example. And now I have to realize I'm not the first person who thought about that. Pok3r ships with that by default.. Really?! I feel like in wonderland... :D

</comment></comment></comment><comment><USER11> Hmm, on rMBP the S-D-C combo does not work, who would have thunk it, never wondered about this. Educational :)

</comment><comment><USER12> Since the Microsoft Mouse I've always thought MS a better hardware company than software one.

<comment> zupa-hu How odd I have a MS mouse and I thought, hmm, if their mouse is so good I'm going to try their keyboard.</comment></comment>


Zinc Ionophores Block Replication of Coronavirus and Arterivirus in Cell Culture - <AUTHOR> https://journals.plos.org/plospathogens/article?id=10.1371/journal.ppat.1001176 <comment><USER2> There are so many drugs which inhibit virus replication in the lab but do nothing in a real body, unfortunately.

<comment><AUTHOR> True. This one's shown to treat for SARS-coronavirus on newborn mice, delivered through the mother's breastmilk, as well. [https://aac.asm.org/content/53/8/3416](https://aac.asm.org/content/53/8/3416)</comment></comment>


Followup to "Not as SPDY as You Thought" - <AUTHOR> http://www.belshe.com/2012/06/24/followup-to-not-as-spdy-as-you-thought/

<comment><USER2> Basically the whole post can be summed up via these choice quotes:

 _Overall, I disagree with his title, but I don't disagree with his results_ ... _his methodology, it's mostly fine_

 _Guy tested partial SPDY page loads, not full SPDY page loads. More specifically, he tested this case: if you upgrade your primary domain, but few of your other domains, your CDN, etc, how does SPDY perform?_

(followed up with a table showing that this is a very realistic test scenario)

<comment><USER3> Well, not entirely. He also explained that the original test counted sub- domains that the primary page owner also controls as non-upgraded third-party ones, whereas someone performing a SPDY roll-out would most likely also upgrade them. The table then showed exactly how many resources that were counted as "non-upgradeable" were in fact most likely upgradeable (most or even almost all of them).

</comment></comment><comment><USER4> Is the site down?

<comment><USER5> Seems to be down here too :(

Google cache: [http://webcache.googleusercontent.com/search?q=cache:www.bel...](http://webcache.googleusercontent.com/search?q=cache:www.belshe.com/2012/06/24/followup- to-not-as-spdy-as-you-thought/&hl=en&prmd=imvns&strip=1)</comment></comment>


Double Pendulum in fewer than 100 lines of JavaScript - <AUTHOR> http://www.physicsandbox.com/projects/double-pendulum.html <comment><USER2> This pendulum will lose energy because Euler is not a good integration scheme if you value accuracy. RK4 is almost as easy to implement but dramatically higher accuracy. Fixed step sizes will either be inefficient or lose energy around around critical points in the dynamic system.

RK with adaptive stepping solve all these problems and leads to a more efficient use of computational resources. You will probably be able to leave the simulation undisturbed for days, and it will still be swinging merrily.

[https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods](https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods)

Such methods are already wrapped up in the ODE solver of numerics.js

[http://www.numericjs.com/documentation.html](http://www.numericjs.com/documentation.html)

(see dopri)

<comment><USER3> Would it somewhat work to store the initial potential energy, and when running each step, correct one (or more?) of the values so as to make the energy of the system correct, while making the smallest change?

I mean, I figure that would make it so it doesn't lose energy, but I don't know if that would make the simulation significantly worse in other ways.

<comment><USER4> Where would you put the accumulated error? Ultimately you end up creating something like the 4th order Runge-Kutta mentioned mentioned above, which in a sense 'correct' the Euler solution by including the effects of higher-order terms.

[https://en.wikipedia.org/wiki/Numerical_methods_for_ordinary...](https://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations#Generalizations)

<comment><USER3> I was thinking that, instead of ensuring that the corrections are in the right direction, that they just be as small as possible such that the total energy remains constant.

So, I was thinking that it would make the results worse in some ways, but keep the total energy constant by just constraining the total energy, and using that to e.g. change the angle or rate of rotation of one of the two parts.

So, e.g., calculating the values as this does, and then from the initial energy, and all the values except for the rate of rotation of the lower part, calculate the rate of rotation for the lower part (if multiple values for the rate of rotation would give the same KE , choose the one which is closest to the the one calculated at first).

It wouldn't really be 'correct' in the differential equations thing, it would just be forcing the total energy to be correct?

So, I figure it would make it so it doesn't eventually slow down, but might make the other bits be quite inaccurate?

</comment></comment></comment></comment><comment><USER5> This is good work, and _should_ be within the capability of any upper-division physics major. I think that the important point is using the Euler method for the DEs, rather than attempt to find some closed-form theta(t).

<comment><USER4> Usually these types of simulations require that you _don 't_ use Euler approximation.</comment></comment>


CLPython—an implementation of Python in Common Lisp - <AUTHOR> http://common-lisp.net/project/clpython/index.html

<comment><AUTHOR> The manual (<http://common-lisp.net/project/clpython/manual.html>) is probably the best place to see it in action.

If this works well with libraries, it'd be a very cool way to use python libraries in common lisp.</comment>


These 12 startups died in Q2. Here's why and how - <AUTHOR> http://venturebeat.com/2015/07/17/these-12-startups-died-in-q2-heres-why-and-how/

<comment><USER2> GuGo described its service as a "group-centric social intelligence platform."

isn't this the worst kind of pitch, I can't make sense of any word of it.</comment>


Should you give advisors equity? - <AUTHOR> https://medium.com/@jason/should-you-give-advisors-equity-in-your-startup-f9aff03c5f18

<comment><AUTHOR> PS I've not had great success with advisors. I've ended up doing more free favors for advisors than anything that would justify their equity. My suggestion: unless they're blue chip, offer them a negligible amount of shares and then if they're good increase the number.</comment>