Software authors have professional discipline of cute puppy compared to aviation - <AUTHOR> https://threadreaderapp.com/thread/1027539289750429696.html <comment><USER2> I highly suspect software industry has such a reliability record because of the market.

In other words, I think software can be way better in terms of quality, but nobody's interested to pay for incurred costs.

Does it mean programming should be regulated like aviation was regulated? Not sure about that at all.

<comment><USER3> Absolutely. The stakes for aviation is life and death. Software generally does not have life and death stakes that necessitates the additional discipline cost.

<comment><USER4> One thing about aviation is accidents likely require high management level attention by manufacturers and operators.

Compare with automobiles, the CEO of GM doesn't get a phone call every time a car kills someone. And you can see the behavior of CEO's when things become an issue, they're annoyed and totally unprepared for it. Vs aviation managers who see this stuff as a fact of life.

Notable management of internet companies act exactly like auto exec's being called on the carpet for failures. Downplay and redirect blame.

Quote from the CEO of BP during the Deep Water Horizon accident: 'I want to get my life back'

</comment></comment></comment><comment><USER5> On one hand, yes. On the other, given different stakes between what most software companies produce and planes/elevators/medicine it is fine that we don't have same level of safeguards. Text editor failing without loosing too much data is already failsafe.

We could do much better at data safety, privacy etc. But if you worry about particular data abuses by Facebook, that won't get better without regulation - the issue is not tech maverick, the issue is that the company earns money on that. Aviation became more safe only after regulations too.

And desinformation on Facebook is yet another entirely different issue. First, Facebook dont really care which is why there is no report. Second, I am not yet convinced that they have to care nor that asking sociopathic corporation to safeguard discussion is good idea.

</comment><comment><USER6> it's too bad the ACM isn't wider spread in the industry itself among private companies: [https://ethics.acm.org/2018-code- draft-1/](https://ethics.acm.org/2018-code-draft-1/)

</comment><comment><USER7> This may not be a bad thing.

Aviation as an industry has been very carefully managed by the US and UK (and maybe other) governments. This has led to a very, very low accident rate, but it's also led to a very, very low innovation rate.

Maybe this is a good thing, maybe it's a necessary thing, but you can't just take one facet of a complicated issue in isolation. Tradeoffs exist on industry- or nation-wide scales.

</comment><comment><USER8> Ironically, software is replacing pilots and their checklists. Check lists are essential in planes because they are complex machines with traditionally low levels of automation. This creates extremely high workloads for pilots. The only way to deal with that is checklists.

The solution is automation. Compare a modern fadec engine with a 50 year old piston engine. The engine manages itself. You basically turn it on and it regulates itself. There are still checklists of course but they are a lot shorter. Similarly fly by wire, auto pilots, etc. have reduced workloads. There is still plenty of opportunity to fix things.

Software could do with a lot more checks and balances. But you have to balance the workload, overhead with the added value. Also, you need to think about automation. Continuous deployment is basically doing exactly that. It can only be done if you have automated tests and deployments.

<comment><AUTHOR> This gets to the problems of excessive automation: forgetting, skill loss, and detraining, among experienced operators, and a lack of experience gain amongst new entrants.

We're starting to see this in particular in areas without entrance barriers or continuous training requirements, noteably automobile operation. This is compounded by novel and nonuniform interfaces.

<comment><USER8> It's sad at a sentimental level but at the same time, the aviation industry provides plenty of statistical material on safety.

The general trend of getting humans out of the way through automation is a good one. Checklists are critical to make sure humans don't fail to do something. Anything they don't have to do is an item less on the checklist and one less thing that can go wrong. With many modern planes the startup check list is "push the start button". Of course you still have the pre-flight checklists and other checklists but engine management is typically fully automated. That means no more complex failure modes because of cowl flap management, wrong mixture or prop settings, over torquing the engine, etc.

<comment><AUTHOR> Aviation controlls the operator class.

Automotive does not.

</comment></comment></comment></comment><comment><AUTHOR> Related:

Computing's Hippocratic oath is here

[https://www.fastcompany.com/90215922/why-we-spent-two- years-...](https://www.fastcompany.com/90215922/why-we-spent-two-years- rewriting-the-code-of-ethics-for-computing)</comment>


Advanced Deep Learning and Reinforcement Learning - <AUTHOR> https://www.youtube.com/playlist?list=PLqYmG7hTraZDNJre23vqCGIVpfZ_K2RZs <comment><USER2> After a review of the course materials I'm not sure what makes this course 'Advanced'.

<comment><USER3> Agreed. After looking at the a few videos it seems to go a bit beyond the basics, I don't think that means it's "advanced."

This got me thinking: what would an "advanced" Deep Learning/RL course even look like? The field is so immature it's hard to identify topics that are advanced. Maybe an advanced course could be a chronological paper survey? Certainly not a class that spends a lecture on optimization of a deep network.

</comment></comment><comment><USER4> Here is the course website [http://www.cs.ucl.ac.uk/current_students/syllabus/undergrad/...](http://www.cs.ucl.ac.uk/current_students/syllabus/undergrad/compmi22_advanced_deep_learning_and_reinforcement_learning/)

Are the slides or assignments available?

</comment><comment><USER5> "Today we are excited to release video recordings of lectures from "Advanced Deep Learning and Reinforcement Learning", a course on deep RL taught at @UCL earlier this year by DeepMind researchers:

[https://t.co/znsWtTxQcN](https://t.co/znsWtTxQcN)

Enjoy!"

[https://twitter.com/DeepMindAI/status/1065930524634558466?s=...](https://twitter.com/DeepMindAI/status/1065930524634558466?s=19)

</comment><comment><USER6> Is the RL part very different from David Silver's UCL lectures?

<comment><USER7> I've watched the David S. course, not this so I don't know, but: the last RL lecture in this course is by David S.</comment></comment>


Impressions from the European Lisp Symposium, Goldsmith University April 2015 - <AUTHOR> http://google-opensource.blogspot.com/2015/06/impressions-from-european-lisp.html

<comment><USER2> I can recommend to watch Schafmeister's Clasp talk[1] at Google. Its quite impressive.

[1] [https://www.youtube.com/watch?v=8X69_42Mj-g](https://www.youtube.com/watch?v=8X69_42Mj-g)

<comment><USER3> And here's the HN discussion of that video, [https://news.ycombinator.com/item?id=9721801](https://news.ycombinator.com/item?id=9721801) with a fair number of comments from Schafmeister.</comment></comment>


Developer Saved Years Later by His Own Hardware - <AUTHOR> http://hackaday.com/2015/02/06/developer-saved-years-later-by-his-own-hardware/

<comment><USER2> This is a great story about the power of AEDs to save lives. I lost a younger cousin almost 15 years ago [1] but since then my aunt and uncle have worked tirelessly to have them put in public places around our state (and others). My sister's place-of-employment installed several and two people have been saved just there.

There are hundreds of stories like this one and you can help. Take an AED training class - Make sure they're installed in public places in your area - Donate to make sure they're installed in other places.

The life you save might be your own!

[1] [http://gregaed.org/](http://gregaed.org/)

<comment><USER3> Yeah, I found Chris' mention of having to deal with different regulations from state to state (which only allowed an MD to administer shocks to a patient) an interesting tidbit that went along with bringing this to market. I understand why those were in place and am glad that the tech has become reliable enough to loosen those restrictions.

<comment><USER4> Such regs are costing lives.

There have been studies where AEDs were put in airports and such and lay persons successfully followed the directions and saved lives with them. They're very dummy proof at this point: place sticky pads where a picture shows you, turn it on, and follow the voice prompts. Even if you don't know CPR, you can help by trying this.

As further safety, the DSP software has a bunch of safeguards to only shock the types of bad rhythms it knows how to correct, so it can't hurt a normal person if the AED is mistakenly applied; it can only help a v-fib one.

Training won't hurt; the Red Cross course for combined CPR and AED is only a few hours. But there is benefit from none at all.

I've personally brought someone back with an AED and the experience changed my life.

<comment><USER5> In the UK the Resucitation Council issued a statement in 2009 recommending that they can be used by anyone, even without training:

[https://www.resus.org.uk/pages/AEDtrnst.htm](https://www.resus.org.uk/pages/AEDtrnst.htm)

They are still few and far between, outside of big railway stations I haven't seen any in public. I think one of the issues is people are unfamiliar with how easy they are to use.

All workplaces (above a certain, fairly low, level) are required to have first aid trained staff around at all times. The training only includes CPR though; adding AED training seems like an easy way to make people a lot more aware of them.

<comment><USER4> They're getting pretty common in US workplaces, especially health clubs, airports, liability-aware offices, etc.

Some here are in a cabinet that phones emergency services when the AED is removed; that's an especially good feature.

</comment></comment></comment></comment></comment><comment><USER6> For those wondering just what's inside, Mike (of Mike's Electric Stuff[0]) has some excellent teardowns with commentary on a few[1][2]. The engineering constraints (high reliability with low maintenance, instructing the user how to operate it, etc) make them very interesting machines.

[0] [http://electricstuff.co.uk/](http://electricstuff.co.uk/)

[1] [https://www.youtube.com/watch?v=pn- Wv9YAfv0](https://www.youtube.com/watch?v=pn-Wv9YAfv0)

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

</comment><comment><USER7> Go Green!

No but really, this is like, every engineer's dream that his creation would someday save him

<comment><USER8> Go Green indeed!

Amazingly enough, I programmed on the same CDC 6500 at MSU in the '70s. By the time I got there, the school had lost its EE credentials, and I was torn between a music degree at MSU and EE somewhere else.

Technically, I guess I'm still deciding.

So as not to be too OT, I've taken the AED training course, and it's really simple. Doing it when there's a guy (or gal) on the floor in front of you is probably tougher.

</comment></comment><comment><USER9> I guess this is some good instant karma!

<comment><USER10> Arguably "years later" isn't instant.

<comment><USER11> Karma came from a culture that believes in reincarnation. It is payback for your behavior in past lives. "Instant karma" is therefore payback for your behavior in your current lifetime, without an intervening turn of the samsara cycle.

If you kicked a puppy right before you died, and got slapped too hard just as you were born into your next life, that's regular karma. If you stole someone's car for a joyride when you were 16, and your car was stolen by a joyrider when you were 90, that's instant karma. The number of intervening years is not the important factor, but the number of intervening rebirths.

<comment><USER12> It seems that there are various interpretations of karma. Dogen, founder of the Soto Zen school, taught that karma can be experienced in this same life. I swear I've read far earlier sources discuss karma in a manner outside of rebirth in samsara, but I can't find those sources at this time.

<comment><USER13> I can't help you on the religious origins of this, but the concept got introduced to me by a game by this dude named Richard Garfield in the early 90s. If I recall correctly, the term that that dude and a bunch of other WotC folks used was "mana".

It took a while before I learned that it was apparently a term in hawaiian slang, but it usually seems appropriate, especially when you're discussing this with folks old enough to remember alpha, beta, and unlimited Magic: the Gathering.</comment></comment></comment></comment></comment>


Pamir Highway: An epic drive on the roof of the world - <AUTHOR> http://www.bbc.com/travel/story/20190102-pamir-highway-a-wild-ride-across-central-asia <comment><USER2> I did this trip in my own car this year, from the UK and back.

The article is a bit dishonest about what the highway is like. The majority of the Pamir Highway (the M41) is actually in quite good condition. There are just occasional unpaved stretches, notably the mountain passes and the stretch down to Khorog. The flat bits have good, wide tarmac that you can do 60mph on.

Still - it was a good lesson in being prepared. There are not many people passing by, so you really don't want to be breaking down. Winter was drawing in when we were there, making it extra dicey.

The real adventure is getting off the Pamir Highway. The Wakhan Valley, Zorkul Lake, the Bartang Valley. That is where my best memories are from, and where most of the photos in the article seem to be from.

Apart from the landscapes, my other fond memory is of the Pamiri people. They are such kind, warm people. It is engrained in their culture to care for travellers. When you live in such a hostile environment, you have to look after each other out of necessity.

It was also interesting seeing how their quality of life has changed recently. There is no cell service, and electricity only in the two large towns. But most of the places we visited without electricity now have cheap solar panels from China. The influx of tourism means that everyone runs a homestay and can start to afford things like that.

I have been meaning to write up the trip in more detail. I haven't recorded it particularly well yet. A few photos are on Instagram: [https://www.instagram.com/bfirsh/](https://www.instagram.com/bfirsh/)

<comment><USER3> Did the trip also with my own car, a shitty 1998 VW Passat, starting from Germany in 2016. IIRC we passed Wakhan Valley (not sure about bartang) and I have to agree: the most awesome parts were the detours from the M41. Did a write up on the whole trip (german only, sorry: [https://www.purplepower.de/](https://www.purplepower.de/) )

</comment></comment><comment><USER4> I did the journey in early September, starting in Dushanbe, as part of my backpacking trip throughout Central Asia. Highlight of my trip.

Surprisingly easy to travel as a lone backpacker nowadays as you can arrange transport on the day on all the major stops of the main route. (Dushanbe -> Khrough -> Murghab -> Osh). Cost of the main route was something like $70 in shared taxi costs.

<comment><USER5> Awesome, glad to hear. I plan on going this summer. The shared costs - did you find other travelers yourself, or the drivers just fill up their 4x4 like a shuttle would anywhere else? Any other tips or thoughts that I might not find in Lonely Planet etc?

<comment><USER4> I arranged everything on day I needed to move on (except in Dushanbe where I arranged the transport to Khrough via the hostel, who I just told the night before). Worked even on the Monday after Tajikistan's Independence day (when I needed to head to Murghab), so you shouldn't have many problems.

Just go to whatever the local meeting point early enough and you'll get a ride. Tend to leave by 10-11am IIRC. Try to get the front seat as they'll overpack the cars to an extreme.

I only did the main route and didn't head down to the Wakhan valley, where I gather you need to find people to travel with to cover the costs.

Random tips / things to be aware of:

* Breakdowns seems to be pretty normal. They do know how to fix their cars though so you shouldn't panic. Had this happen twice on the Khrough -> Mughrab section.

* There are some lovely villages on the road to Roshtqala. I did a homestay in Tusen and the scenery around there is amazing. The place marked as "Shokhdara Bus Station" in Khrough on OSM is where you go to get transport here.

* Public transport between closer villages and around Khrough is pretty reliable but it doesn't run on Sundays. Bit of an adventure to get though.

* ATMs exist in Khrough and do accept Visa, but none as far as I'm aware in Mughrab (And the banks weren't open in Mughrab while I was there due to the time of year)

* No accommodation in the Pamirs has persistent internet connectivity, even if they advertise it. It's all 3G/4G connections they leave on only for a few hours a day (if that). This becomes an issue when you need to figure out where to stay in the next place on your route.

* The GBAO permit is cheaper if you do it in Dushanbe and don't get it with your evisa.

* Caravanistan and its forum has so much useful information. Planned my whole trip around the site.

</comment></comment></comment><comment><USER6> A little (!) closer to home (for me) [https://en.wikipedia.org/wiki/Dempster_Highway](https://en.wikipedia.org/wiki/Dempster_Highway) is on my bucket list. With the opening of the [https://en.wikipedia.org/wiki/Inuvik%E2%80%93Tuktoyaktuk_Hig...](https://en.wikipedia.org/wiki/Inuvik%E2%80%93Tuktoyaktuk_Highway) I can drive all the way from the Lower Mainland to the Arctic Ocean.

<comment><USER7> I've driven that as far as the Ogilvie Mountains. Tombstone valley there is hands down in the top 5 most beautiful places I've been. And I have been to many mountain ranges on four continents.

<comment><USER6> Just took a look at wikipedia for both and looks very nice.

</comment></comment></comment><comment><USER8> If you want a really deserted road in the lower 48 U.S, try the road from Mexican Hat, UT near Monument Valley to Torrey, UT near Bryce Canyon. When I drove that one for many hours, I saw almost nobody. It had plenty of nice scenery, but hardly anyone lives in Southeast Utah.

</comment><comment><USER9> I wonder about highway safety. Say I travel with a local tourist guide and would I be expecting him to carry weapons in the car for protection, granted tourists can't just go and "rent" guns and sickles there? From the pictures as epic as it seems to be it also gives the notion of wilderness.

<comment><USER10> I wonder if the Taliban who are across what looks like an easily fjorded stream knew Westerners were travelling that highway might they cross the border and kidnap and hold a few for ransom?

Still it looks like a very challenging drive with very beautiful scenery.

<comment><USER11> There's some info here about the current situation, after last years attack in Tajikistan. Seems to still be considered somewhat safe.

[https://www.washingtonpost.com/lifestyle/travel/were-the- ame...](https://www.washingtonpost.com/lifestyle/travel/were-the-american- cyclists-killed-in-tajikistan-naive-for-traveling- there/2018/08/14/f8212ca8-9b36-11e8-b60b-1c897f17e185_story.html)

</comment></comment></comment><comment><USER12> I did the Kyrgyz part of this by bicycle back in 2008. [http://daxfohl.blogspot.com/2008/08/stuck-in-bishkek- blues.h...](http://daxfohl.blogspot.com/2008/08/stuck-in-bishkek-blues.html). It was incredible, definitely the best part of the best trip I'd ever taken, but from these photos the Tajik part looks even better! (I diverted East to lake Song Kol and on toward Torugart pass instead -- I think Tajik visas were difficult back then or something). Now if I can only convince my kids to grow up and move out before I'm too old to do the Tajik part!

</comment><comment><USER13> There was a motorcycle touring forum thread posted here some time ago, with photos of a trek to the same region. If I recall correctly, the motorcyclists actually crossed into Afghanistan. It was a pretty spectacular story.

</comment><comment><USER14> Honestly... it doesn't seem that pretty :). Sure its a wild, dangerous road. But there are certainly prettier places to drive.

I do still like the historical attributes of the path, as the ancient silk road etc.

<comment><USER15> I disagree, but it would look better on pictures if haze was not so strong which admittedly it often is.

I've been to many places around the world, but east Tajikistan was one of the most breath-taking.

Some pictures from that trip (not taken by me): [https://www.flickr.com/photos/29022619@N03/albums/7215766398...](https://www.flickr.com/photos/29022619@N03/albums/72157663984958460)

<comment><USER16> These photos are astounding! What time of the year was your visit?

<comment><USER15> We were in Tajikistan in July and August, but the hiking trip happened in July.

</comment></comment></comment></comment><comment><USER17> Reminds me of the roads in Bolivian Andes

<comment><USER15> I agree, but it is amazing how many places around the world do. I recently went to Madagascar and the same thought came to us (my wife and I) on few occasions. Although it was triggered more by nature than roads.

</comment></comment><comment><USER18> I'm sure it's a fun drive, but IMO "epic" should be saved for people through hiking or cycling the route. There are lots of helpful trip reports and route descriptions for Pamir Highway around the web, too.

Cycling would definitely be my preference. It's just a great way to see the scenery, appreciate the terrain, and interact with locals. Probably quite a bit safer, too.

<comment><USER19> I feel like we're watering down the word epic, because even hiking or cycling can't compare to traversing it on a hang glider you built yourself, as I once did.

A lot of westerners think they can find epic adventure, but they can't. Not when they have a first world family or nest to return to. A true epic adventurer has no safety net, much like me on my homemade glider.

<comment><USER20> This has to be sarcastic

<comment><USER21> Of course it is, he's critizing the OP for gatekeeping an adventure to only hiking or cycling rather than experiencing the journey on whatever means you find exciting such a car or motorcycle.

<comment><USER20> I couldn't tell</comment></comment></comment></comment></comment>


BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding - <AUTHOR> https://arxiv.org/abs/1810.04805 <comment><USER2> Fantastic!

> The code and pre-trained model will be available at > [https://goo.gl/language/bert](https://goo.gl/language/bert). Will be > released before the end of October 2018.

</comment><comment><USER3> "We demonstrate the importance of bidirectional pre-training for language representations". can some one help me understand what bidirectional and pre- trained means?

<comment><USER4> * bidirectional - build representations of the current word by looking into both the future and the past

* pre-trained - train on lots of language modelling data (e.g. billions of words of wikipedia) and then train on the task you really care about but starting from the parameters learnt from the language modelling task.

</comment></comment><comment><USER5> Is this comparable to fast.ai's ULMfit, which also promises an unsupervised pretrained model, that can be tuned to best state-of-the-art NLP tasks?

<comment><USER6> The big picture is similar. But ULMfit uses amd-lstm for the language modeling, bert uses masked LM instead. Bert has some other tricks like sentence prediction as well.</comment></comment>


The iPad on Group Sale (demo) - <AUTHOR> http://www.syncfu.com/ipad.html This is the autotrigger url:<p>http://www.syncfu.com/ipad.html#dosyncfu <comment><USER2> If I understand the model: I make a reservation, but nothing happens until the end of a designated time period. Once that time is up, I get it for the lowest price.

Could work. I really like the Groupon.com model though, where the price is specified, but it only activates after a certain number of people agree to buy.

<comment><AUTHOR> Yes, that is exactly how it should work. Here the price is/should be always guaranteed, as it drops with each reservation. So, there is no price for 1-10, 10-20. It always decreases proportionally.

Groupon and buywithme are cool, but centralization, just because of the purchasing model is not right iMHO. It would be much better that you have the option at the website of purchase, whether to buy now for the full price, or get in the group to buy later for a lower price. It's segmentation of the market.

</comment></comment><comment><AUTHOR> This is the autotrigger url:

<http://www.syncfu.com/ipad.html#dosyncfu></comment>


pg_rewind in PostgreSQL 9.5 - <AUTHOR> http://hlinnaka.iki.fi/2015/03/23/pg_rewind-in-postgresql-9-5/

<comment><USER2> This looks like a great tool, but it's also a sour reminder that replication still feels a lot like open heart surgery on postgresql.

Why can't we just type "enslave 10.0.0.2" into psql and have the computer do the hard work? The machinery is "almost there" for a half a decade now. Who do we have to bribe (wink wink, nudge) to bring the UX into a state where crutches like pg_rewind are not needed?

<comment><USER3> > enslave "10.0.0.2"

I know it is functionally immaterial, but boy howdy do I ever wish we'd chosen a better convention for how to refer to the relationship between these system components.

<comment><USER2> _I know it is functionally immaterial_

There's nothing wrong with Master/slave. We also read man pages, shove male plugs into female ports, fork and kill children, and use dozens of other odd _words_ to describe perfectly harmless things.

<comment><USER4> "man" is at least short for "manual".

There's nothing _essential_ about master/slave so why not just switch to primary/replica?

<comment><USER5> Because the master forces the slave to do it's bidding.

<comment><USER4> But ... so what? For one thing, the metaphor doesn't _have_ to go that way. For another, "leader/follower" captures that too.

</comment></comment></comment></comment></comment></comment><comment><USER6> ActorDB is an interesting project that operates on distributed SQLite database. It tries to provide clustering between instances and it does it by continuously replicating the WAL between nodes.

I am not affiliated with the project, but just saw it the other day and thought it was a pretty cool pattern:

[http://www.actordb.com/](http://www.actordb.com/)

Here is the excerpt from their description page:

\---

Actors are replicated using the Raft distributed consensus protocol. The way we have integrated Raft with the database engine is by replicating the WAL (write-ahead log). Every write to the database is an append to WAL. For every append we send that data to the entire cluster to be replicated. Pages are simply inserted to WAL on all nodes. This means the master executes the SQL, but the slaves just append to WAL.

If a server is very stale or is added new, ActorDB will first send the base actor file to the new server, then it will send the WAL pages (if there are any).

We use a combined WAL file for all actors. This means even with potentially thousands of actors doing writes at the same time, the server will not be appending to thousands of files at once. All writes are appends to the same file and that performs very well.

\---

Would this work for PG replication as well I wonder?

<comment><USER7> I hope something like BDR project evolves in a UX-centric (too!) direction.

[0] [http://blog.2ndquadrant.com/dynamic-sql-level- configuration-...](http://blog.2ndquadrant.com/dynamic-sql-level- configuration-for-bdr-0-9-0/)

[1] [https://wiki.postgresql.org/wiki/BDR_User_Guide](https://wiki.postgresql.org/wiki/BDR_User_Guide)

</comment></comment><comment><USER8> If you are performing a planned failover then the old master can be turned into a slave without extra tools or steps. Simply shut down the master first. As part of this process it waits until the slave has the necessary wal.

pg_rewind will be great for remastering under other scenarios (unexpected failovers, etc.)

</comment><comment><USER9> have to say - "pg_rewind" is nice and meta here on HN.

need to convince a postgres contributor to add easter egg "pg_essay".

</comment><comment><USER10> It's nice to see a lot of work being put into mirroring replication in the PostgreSQL 9.0 line, but until better admin tools are there I'll probably just keep using corosync and pacemaker with a shared fiber channel volume for clustering. Sure, it's cold standby, but it only takes a couple seconds for a standby node to come up and I just have to keep my WAL backups like normal for recovery.

</comment><comment><USER11> One pain point we have run into is the inability to fail over to a previous master that only has access to other WAL logs. That is, we have nodes that can see each other's WAL logs, but not each other's full database. Last master can come back alone, a previous slave can come back alone, but a node that went down as master and came back after having missed transactions apparently cannot.

</comment><comment><USER12> Nice, definitely something that is a pain for mirroring in SQL Server, though if you have a good runbook its just time consuming and boring.

<comment><USER13> ? MSSQL mirroring failover is very easy and painless( arguably one of best compared to other rdbms), just make sure not to do automatic failover as that can cause false failover with spotty network between nodes and witness.

<comment><USER12> Sorry about that, I was referencing failing back over to the primary after failing over to the secondary. Specifically from the post:

\- Cool. And how do I fail back to the old master?

\- Umm, well, you have to take a new base backup from the new master, and re- build the node from scratch..

<comment><USER13> The post is about Postgres, you were referring to MSSQL mirroring, which can fail back from primary to secondary and back to primary almost seamlessly, depending on type of failure and log catchup.

Postgres has been a pain as described in the article.......

</comment></comment></comment></comment><comment><USER14> I don't get it. Why is it a problem taking a pg_basebackup of the new master to re-seed the old master (which is now a slave) and then promoting it to master again?

Or does pg_rewind offer a way to do this that doesn't require taking the current master offline when you promote a slave?

</comment><comment><USER15> Can anyone comment on how this compares to postgres-BDR?

I'm in the market for an asynchronous multi-master RDBMS to cope with a dozen masters and huge (~800ms) latencies - i think my best bets are either BDR or maybe the Cassandra storage engine for MariaDB.

</comment><comment><USER16> how does mysql failover compare in this regard?

<comment><USER17> MySQL in master/master mode is fairly painless. Set the secondary site to readonly mode, and when failing over, ensure the primary site is definitely down before enabling writes on the secondary site.

When failing back, bring the primary site back up in readonly mode, give it some time to catch up, make secondary site readonly again, verify if you want to be sure (Percona tools help here), and finally make primary site read- write.

The initial setup in MySQL is a bit fiddly, but overall it's been fairly problem-free as far as I've seen. It's not automatic, but the cost of manual intervention is far lower than the headache of split brain and write divergence.

(Disclaimer: I far prefer postgres as a development target, but hassle-free failover and failback is a hard requirement where I work, and our business model includes giving every customer (banks etc.) a completely separate database instance, including multiple VMs on a separate vlan; per-CPU costs don't work out, it's pretty much MySQL or nothing, until postgres makes it just as pain-free.)

</comment></comment><comment><USER18> every step forward in modern relational DBs for reliability is a step backwards for operations and the simplicity of the model. If you're steeped in the ecosystem and know how things "used to be" you don't see how insane things actually are. Forrest, trees, etc.

<comment><USER19> Can you please expand?

<comment><USER20> he's scared of the increasing complexity of individual systems.

personally, I see where he's coming from with things like systemd.

complexity != usability.

simple things work well and work reliably.

however, I like the increasing features surrounding postgresql- and I'm playing devils advocate. (and anyway, it's not like it's part of the core build, the postgresql binary is untouched!)</comment></comment></comment>


Is it Worthwhile to Improve the Dvorak Layout? - <AUTHOR> https://groups.google.com/forum/#!topic/comp.emacs/_zqbDdpBYac/discussion

<comment><USER2> No, as neither programming nor book writing is about typing.

<comment><USER3> I think you are correct when you say that programming is not about typing, however I would disagree with your statement about writing.

Much of writing is just typing, albeit stuff that is later refined and edited. You need to get the words onto the page before that though.</comment></comment>


Cats rival dogs on many tests of social smarts - <AUTHOR> https://www.sciencemag.org/news/2019/05/cats-rival-dogs-many-tests-social-smarts-anyone-brave-enough-study-them <comment><USER2> > _That is, if the cats themselves deign to participate._</comment>


Ask HN: How to develop a font for experimental punctuation project? - <AUTHOR>

I need to find a way to create custom glyphs and ligatures for a new system of punctuation I've been working on. Is there an option readily available for private use, or do you suggest I publish graphics and invite collaborators?<p>Are there any dominant sites where people open their artistic and conceptual projects for volunteer input? Like GitHub perhaps but supporting a greater variety of media. <comment><USER2> If you need something free/opensource, there's not many options. When you like it old-school, you can give Knuth's companion to TeX MetaFont¹ a try.

Then there's FontForge², which is by far the most evolved, feature-heavy project, but until recently had bad UX/UI and was a pain to install and run on OSX. It seems, that's changed, though.

FontLab³ still is the type design "industry"'s de facto standard font editor, but development lags behind, and it's quite expensive for a hobby project.

There are a few other proprietary offerings, notably the DTL FontMaster⁴ tool suite. But Glyphs⁵ seems to be going the winner, steadily taking over market share from FontLab.

If you like scripting your designs (esp. in Python) you should definitely try RoboFont⁶.

When you're looking for volunteers/collaborators on your project, then do check in at Typophile⁷. For over a decade, it's the principal outlet for all things type and type design: on the fora you'll meet some very knowledgable experts always willing to help.

Since you mentioned punctuation, I suppose you're familiar already with the _Shady Characters_⁸ project (and its companion book⁹). As for a detailed history, I can highly recommend Malcolm B. Parkes† authoritative monograph on the subject, too.

¹ [http://en.wikipedia.org/wiki/Metafont](http://en.wikipedia.org/wiki/Metafont) ² [http://fontforge.github.io](http://fontforge.github.io) ³ [http://www.fontlab.com/font-editor/fontlab- studio](http://www.fontlab.com/font-editor/fontlab-studio) ⁴ [http://www.fontmaster.nl](http://www.fontmaster.nl) ⁵ [http://www.glyphsapp.com](http://www.glyphsapp.com) ⁶ [http://doc.robofont.com](http://doc.robofont.com) ⁷ [http://typophile.com](http://typophile.com) ⁸ [http://www.shadycharacters.co.uk](http://www.shadycharacters.co.uk) ⁹ Keith Houston, Shady Characters: The Secret Life of Punctuation, Symbols, and Other Typographical Marks. W. W. Norton, 2013. † Malcolm B. Parkes, Pause and Effect: Punctuation in the West. University of California Press, 1993.

</comment><comment><USER3> FontForge [1] is available in most Linux distro package repositories and is very powerful for creating and editing fonts. There are Private Use Areas (PUA) in Unicode [2] where you could create custom glyphs as needed.

[1] [https://fontforge.github.io/en-US/](https://fontforge.github.io/en-US/)

[2] [https://en.wikipedia.org/wiki/Private_Use_Areas](https://en.wikipedia.org/wiki/Private_Use_Areas)

</comment><comment><USER4> A great place to start (and it's free) is [http://fontstruct.com/](http://fontstruct.com/).

It's a grid-based system that gives you predefined shapes to build with. It's very easy to get started and you can create some really amazing fonts with it.

<comment><AUTHOR> Nice! Thank you

</comment></comment><comment><USER5> im sorry i cant help you, but the "experimental punctuation" got my attention. can you give out some more info about that?

<comment><AUTHOR> Sure. I've been developing it mostly in journals, as I do a ton of writing, and I've been interested in the concept of constructed language since high- school.

Currently I have just a big collection of symbols and ideas, but they are beginning to cohere into sets I would like to refine and publish as examples of the kind of work I wish there were more of.

Example of an older idea that I'm still using in journals...

(One parenthesis opens an unspoken span or comment to the reader. These may appear in published texts. If reading aloud, I would pause and read quietly in this span of text.)

((Two parenthese introduce comments on the text. Editors should take heed. These are stage directions if the work is ever carried further.))

(((Three parenthese capture my private thoughts, especially my disappointments when I fail to capture a full idea. These should not usually be published.)))

</comment></comment><comment><USER6> Collaborative Unicode prototyping revision history would speed language evolution.

<comment><USER7> Collaborative language prototyping speeds evolution.

<comment><AUTHOR> I am still waiting for the GitHub of language construction. I don't expect it'll look much like GitHub. ;P</comment></comment></comment>


Hillary Clinton wants "Manhattan-like project" to break encryption - <AUTHOR> http://arstechnica.com/tech-policy/2015/12/hillary-clinton-wants-manhattan-like-project-to-break-encryption/ <comment><USER2> We have a Manhattan-like project already, is it called the NSA. They have had pretty much a mirror image budget to NASA over the same lifetime. Encryption is a red herring. Terrorism is a red herring. We are spending ourselves into a depression chasing ghosts.

</comment><comment><USER3> Coming from someone who while Secretary of State willingly breached security policies to ensure her privacy, this rhetoric carries no water at all.

Who are the Halliburton and Blackwater of the information security fields, or is it them all over again?

They are obviously superpac'g Clinton's campaign

</comment><comment><USER4> She suggested that there be a "Manhattan-like project" where the government and industry collaborate to solve the issue of law enforcement not being able to decrypt messages of suspected terrorists even after following due process. This article is totally misleading.

<comment><USER5> _She suggested that there be a "Manhattan-like project"_

This is the sort of pointy-haired-boss thinking that gets parodied in Dilbert. Anything is possible, if you just throw enough money at it. Actual understanding of science and first principles is unnecessary if you understand that!

</comment></comment><comment><USER6> Putting aside the question of "should we break encryption" to look at the Manhattan analogy. We did not get atomic bombs because the government asked physicists to invent a method of building bombs orders of magnitude larger than what we had before.

Instead, physicists hypothesized that atoms might undergo fission, which would lead to a release of energy and neutrons. Then they did further research into this matter and observed fission occur. Once this foundational research happened, not before, Openheimer drew a picture of a bomb.

It was only later, that the US spent about 0.2% of GDP on the research and development necessary to construct an atomic bomb.[0]

At this point in time, we have no hypotheses that are analogies to fission from which we can build the type of system that Clinton is suggesting. In fact, a solution to this problem would also be a solution to many of the problems that cryptographers have been researching for decades. Consider that under the proposed system, the Government has legitimate access to the encrypted data[1]. Additionally, we would like the system to prevent access to people without legitimate access. It will be a good day for crypto when we solve this weakened version of the problem at scale.

At the moment, the best solution to this problem we have is to decentralize all key material, so that any breach is localized. However, this solution is fundamentally contradictory to the proposed system.

Additionally, when we say that the Government is an honest actor, we really mean that the Government computer systems are honest actors. We know that this is not the case, because we have seen these systems be compromised by malicious actors.

[0] Total cost of the Manhatten project was about 2% of GDP but about ~90% went to construction, which would likely be far more expensive for a bomb than for crypto.

[1] With judicial approval, which I will ignore. For the purposes of this security definition, assume that the Government is an honest actor.

</comment><comment><USER7> Seems pretty rough, as it seems like she's trying to solve NP hard problems. And once it's solved for a small number, just a small adjustment again would render them useless.

Anyone who wants the government not to see anything would just encrypt with the larger key as a standard (unless _someone_ does a timing cheat in the decryption implementation itself).

There could be dirty tricks deployed, but truly breaking an encryption is a serious waste of time and money. It sounds to me that Clinton's tech team needs to get more than just policy wonks in there if we are to trust her with truly understanding technology.

Like the fact that H1 Visas are really a ploy to get cheap labor, and not that we are 'deficient' in tech know-how.

<comment><USER5> I expect this level of technology cluelessness and obliviousness to unintended consequence from Diane Feinstein. Now that Hilary is exhibiting it, that's another strong point in favor of Bernie Sanders for me.

</comment></comment><comment><USER8> I just can't believe anyone would say they "trust the tech experts" immediately before dismissing what the experts are telling them.

<comment><USER9> Given article context she said that there must be a way of cracking encryption without installing backdoors which tech experts advise agaist. Where she dissmised what they say?

I think with quantum computing and possibilities that breaking encryption brings to the table goverments will have this in near future.

<comment><USER8> The tech experts are telling her that you can't break encryption without ruining it for everyone. She is turning around and basically saying they aren't trying hard enough.

It's possible that quantum computing will offer a temporary way around this, but unless governments ban the sale of quantum computing, it's only a matter of time until quantum computing allows criminals the same ability. Also consider that if the government can use quantum computing to break encryption, what's to stop other governments like China from doing the same thing?

</comment></comment></comment><comment><USER10> Recommended reading, if you haven't already: Crypto[1]. It covers a lot of history in a readable format (especially if you're not a mathematician) and deals with a lot of the shrouded history of cryptography in America, the NSA, etc.

[1] [http://www.stevenlevy.com/index.php/books/crypto](http://www.stevenlevy.com/index.php/books/crypto)

</comment><comment><USER11> In a way it isn't insane to try and break current RSA encryption. We know if you throw enough cpu cycles at it you will eventually succeed. What is more interesting is if we come up with a new method to break it and I would totally be behind that.

<comment><USER12> The NSA is already working on this. So is every other government with a halfway competent intelligence agency. So are researchers.

</comment></comment><comment><USER13> Guess what the NSA is already doing.

</comment><comment><USER14> Actually less idiotic than what Martin O'Malley said right afterwards, that we should never give up liberty for the promise of safety (paraphrased). Except that's exactly what a stop sign does... trade liberty to drive without stopping for the reduced risk of crashing at every intersection. Our democracy is based on compromise, not ideology.</comment>


Daring Fireball: Apple Needs a Nikon - <AUTHOR> http://daringfireball.net/2007/11/apple_needs_a_nikon <comment><USER2> He got it wrong; Apple is Nikon of course. Apple needs a Cannon :-)

</comment><comment><USER3> Apple. Sony. There.</comment>


Almost One Million Vulnerable to BlueKeep Vuln (CVE-2019-0708) - <AUTHOR> https://blog.erratasec.com/2019/05/almost-one-million-vulnerable-to.html <comment><USER2> I am surprised I haven't seen any news about this being exploited already.</comment>


Facebook valued at highest ever: $50 billion - <AUTHOR> http://vator.tv/news/2010-11-30-facebook-valued-at-highest-ever-50-billion

<comment><USER2> While I can't comment specifically on the accuracy of this valuation as I don't really know shit about that world (although, based on the numbers they present, it looks pretty accurate...I guess?), I can say that commonly people see Facebook's valuations and say "That's absurd!" I disagree with that -- I think it's pretty much in line. Facebook is fast approaching -- or might already be -- a huge player in the software world, as huge as Google or Microsoft; as in, they are slowly building a platform that you soon _won't be able to live without._

Right now they're just a social networking site...but their poised to take their business to a new level and become your actual online identity.

</comment><comment><USER3> Not sure I trust anything from these folks. They are the ones that said "an unnamed source" said Groupon sold to Google for $2.5B last week.

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

</comment><comment><USER4> hmmm. 1999 2.0?</comment>


After Years in the BSDs, TTY Keyboard Status Request Feature Proposed for Linux - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=TTY-Keyboard-Status-Request-RFC <comment><USER2> And the BSDs took it from VMS where ^T dumps a nice little bit of text that shows your CPU usage and memory usage, like such:

        $
        NODE1::NIKKI 19:56:12   (DCL)   CPU=00:00:00.01 PF=611 IO=91 MEM=453
        $</comment>


My favorite things that are coming with Julia 1.0 - <AUTHOR> https://white.ucc.asn.au/2018/06/01/Julia-Favourite-New-Things.html <comment><USER2> The creators of Julia have been focusing on technical, numerical, scientific computing first, however, the language was always intended to also be a good general purpose programming language (which it is) [I was lucky enough to attend Jeff Bezanson's Ph.D. thesis defense at M.I.T. 3 years ago - and was able to ask him that question there]. I used to be a full-time C/C++ programmer, focused on performance of large systems, however, since learning Julia I haven't had to go back to writing C or C++ even once in over 3 years, since I can write even the sort of low-level code I typically do in Julia, faster and easier than in other languages, and get the same performance.

<comment><USER3> I'm strongly considering Julia as an alternative for C/C++. A few questions if you don't mind: * How does Julia's GC play into the performance characteristics of these systems? * What tools does Julia offer for fine- grained control of memory? * It appears that Julia uses a rich runtime, do you notice it "weighing down" on performance? * Do you ever feel the need to drop down to C/C++ for hot code paths?

<comment><USER2> I do have to be aware of the GC, and try to use techniques to avoid lots of allocation. I haven't needed much in the way of fine-grained control of memory, what sorts of things were you looking for? A lot of that "rich runtime" (i.e. including the kitchen sink for linear algebra stuff) has been moved to stdlib, but still packaged with Julia, but even before, it really didn't seem to affect performance except for slowing down the time to build julia (esp. on the Raspberry Pi!). In over 3 years, I've never needed to write anything in C/C++ (except a couple of times I wrote something out in C just to demonstrate the Julia was generating as good or better code (and I mostly write rather low-level stuff). I have it in mind to learn Rust, which I think would be much better than either C or C++ for that sort of stuff (to make a small robust library of functions for some hot code paths), and it integrates well with Julia (using ccall), but the day that Julia's performance hasn't been good enough as not yet come, at least not for me.

<comment><USER3> Thank you! I was not looking for anything in particular. Julia's design is everything I've been craving from a language; good performance seemed too good to be true. Due to never having worked on large systems, my judgement is of limited use. Your feedback convinced me to take a serious look at Julia. Looking into the discussions regarding Julia's implementation (so cool that they are easily accessible on GitHub/Discourse) convinced me to commit to learning it.

EDIT: grammar

</comment></comment></comment></comment><comment><USER4> > It will be interesting to see exactly how _nothing_ and _missing_ play out > in-practice. I feel like if all things go well, then in most circumstances > operating with a _missing_ should return a missing (i.e. properation), and > operating with a _nothing_ should throw an error (Much like a > NullReferenceError).

We all know that having a null value in your language is a mistake, but i have to admit that it had not occurred to me that the fix was to have _two_ null values.

<comment><USER5> > We all know that having a null value in your language is a mistake, but i > have to admit that it had not occurred to me that the fix was to have two > null values.

Javascript is even better as it has 3 (null, undefined and NaN, and while NaN is available in most every language it is pretty common in JS as its conversion APIs tend to return NaN instead of error).

<comment><USER6> How is 3 null values better than one? Fortunately Dart has fixed this nonsense.

<comment><USER7> (That's the joke.)

</comment></comment></comment></comment><comment><USER8> What is the target market or prime use case for Julia? What makes it better than alternatives? I've _heard_ of this language but haven't studied it; I'm trying to understand if this is more of a niche language or something which could see more mainstream adoption like Go or Rust.

<comment><USER9> It's for high-performance numerical work. The language of choice in scientific computing is still Fortran, and for good reason. Julia has become my go-to language for new codes, but Fortran still has its place. In particular, Julia is slow to be adopted by supercomputers.

<comment><USER10> Slow but not non-existent:

[https://juliacomputing.com/case- studies/celeste.html](https://juliacomputing.com/case-studies/celeste.html)

It's tough to crack the old school high-performance computing world, which is very slow to change programming tools, but Julia is the first and only high- level dynamic programming language to do it. Now that it's been shown to be possible to exceed a petaflop/second in Julia without having to write any gnarly, low-level C++ code, I suspect we'll start to see it happening more in the future.

<comment><USER11> Did Celeste rely on pure Julia code to achieve its petafloppiness or were there other libraries at play, say Intel MPI, OFED and IB drivers, RDMA functionality, any custom C++ at all, etc? How much in the way of low-level distributed bit twiddling was part of the development of that application? Would anyone not named Keno be able to write a similar application?

<comment><USER10> Libraries like LAPACK and MPI were standard C/Fortran ones wrapped from Julia but all of the custom application code was written in Julia. No doubt the application would not have been so successful without the extremely talented team that worked on it—including Keno, who was described by the project PI as a "one man army"—but that's true of any record-setting supercomputing project.

</comment></comment></comment></comment></comment><comment><USER12> I'm surprised the author didn't touch on the massive changes to Pkg. Now Pkg is a lot more like npm, allowing for "project" level packages rather than requiring global packages.

<comment><AUTHOR> Good point, that is _huge_ , I was intending to mention it as the start (and have done so now).

It like the getfield overloading and a few other things really deserve a post of their own, so I wasn't going to try and push them into this one.

</comment></comment><comment> dyu- Great ffi perf too! From the benchmark over at github.com/dyu/ffi-overhead, julia is on par with luajit.

<comment><USER13> Wow! Thanks for sharing! Julia and LuaJIT's JITing strategy really shine here, calling shared libraries faster than C itself!

</comment></comment><comment><USER14> Phenomenal language. compiles applications to a single binary which makes it super convenient to move around environments

<comment><USER15> How? Everything I've read about Julia seems to show that you're supposed to pass the source code files around.

[https://medium.com/@sdanisch/compiling-julia-binaries- ddd6d4...](https://medium.com/@sdanisch/compiling-julia-binaries-ddd6d4e0caf4) -> notice that's a third party package.

<comment><USER16> Indeed, which comes with its own advantages and disadvantages. As someone that has to always care about performance, Machine Learning, I am very happy not to have to worry about dependencies not being compiled to take advantage of the latest and greatest CPU instructions on a specific box in a very heterogeneous cluster. Now, you could just compile it all on each deployment, but something as large as say TensorFlow takes ages and not everyone gets to enjoy having great devops at your beck and call.

<comment><USER15> I'm not sure I understand what you mean: you prefer compilation on the target machines or you prefer a static binary?

<comment><USER16> Compilation on the target machine, in my case. Performance trumps portability for me, but I can totally see why this is not the case for everyone.

<comment><USER15> In theory that can be solved with the best of both worlds: have the runtime and JIT in the final binary. That way you still get easy deployment with 1 big file and high performance after the JIT warms up, which should be fast.

I think it's just a problem of manpower on the Julia developer side.

<comment><USER16> I wholeheartedly agree, one could also note how this is Java-esque. My hope is that someone far more well-versed than me in this area will find the time and push for it. On that note, one wonderful thing about Julia is how easy it is to contribute to the core language since it is written in Julia. It really is amazing to see people from so many disciplines come together to push a "language for science as a whole".

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I had a look at Julia like 2-3 years ago and thought it seemed really nice to use.

The performance is of course also awesome.

So I hope we get more traction for Julia as a general purpose language. But for now I'm sticking with Node.

</comment><comment> a-dub Can you run it with the plotting libraries loaded and have whos() return in less than 10 seconds yet?

I was excited about v0.6 but then when I learned it took >15s to do whos(), I completely gave up...

<comment><USER18> Depending on which plotting package you use. Plots.jl itself is pretty slow to get started still, though there are ideas on how to improve that.

That said, once you're up and running, plots (and everything else) are super snappy. When I'm doing plotting stuff, I'm usually doing it interactively, and when I'm scripting it, it's because I'm plotting hundreds or thousands of things (and then the startup time is vanishingly small).

<comment> a-dub I first thought the whos() issue was some JIT thing... but no, after multiple runs it was still taking 10s of seconds.

For context, I come from using MATLAB interactively. When doing that kind of work, the MATLAB 'whos' command is like /bin/ls, it's hard to do much without it.

Is there a different command in julia for showing all numerical arrays/matrices/tensors in memory and their dimensions from the repl? whos() seems like another direct analog of MATLAB, but maybe there's something better that isn't unreasonably slow?

<comment><USER19> I'm a little late to the party, but I think something like this should do the trick:

      [names(Main) typeof.(eval.(names(Main)))]

<comment> a-dub _runs crying back to MATLAB_

</comment></comment></comment></comment></comment><comment><USER20> And we are struggling to connect Julia to Postgres DB.

<comment><USER10> Have you looked at [https://github.com/invenia/LibPQ.jl](https://github.com/invenia/LibPQ.jl)? The folks at Invenia are very sharp and generally produce excellent, reliable packages, so I would expect this to be of high quality. The primary author, Eric Davies, in particular, is a well known high caliber Julia contributor :)

<comment><USER20> I am using it, but it's quite inconvenient. The return types are wrong. Documentation is sparse. I would like contribute to it.

<comment><USER21> Please do! Not only are the folks at Invenia technically talented, they're also really kind and wonderful. I'm sure I'm not speaking out of turn to say that I think they would very much appreciate bug reports, API feedback, and especially doc and code contributions!

<comment><USER20> I have started with documentation and coffee samples that I m trying. Let's see where it goes with code contribution. I am especially trying to efficiently convert the hideous NamedTuples to DataFrames.

</comment></comment></comment></comment></comment><comment><USER22> Would anyone recommend using Julia for things like web servers? Python is used for web servers, and is slow. But Julia doesn't really seem marketed to that application domain, despite that I would expect it to do a better job with the demands on a server due to its performance.

I know web frameworks exist for Julia, but I'm wondering how practical it is to actually use this language for that purpose?

<comment><USER23> If your only requirement is performance, then you'd probably be better off using Go or Node. My guess is you would use Julia for a web server when it ties into other things you're using Julia for.

But maybe I'm wrong here. It seems that "use the right tool" turns into use Python or JS or Excel for all the things.

<comment><USER15> I guess you're not up to date: Excel is getting JS scripting soon and most likely Python scripting not long after that :D

<comment><USER23> Haha, well then! World conquest is surely right around the corner with that combo. Maybe allow for some Rust plugins and have it run on blockchain, just to be on safe side.

</comment></comment></comment></comment><comment><USER22> Honest question, just how fast is Julia anyway? Because performance is typically the main reason anyone would want to use it over alternatives. A lot of people justify Julia because, as noted in other comments, it is both high- level yet claims to be nearly as fast as C:

> "Julia is the fastest modern open-source language for data science, machine > learning and scientific computing...with the speed, capacity and performance > of C, C++..." [4]

That's a bold claim! And there is much evidence to the contrary. I often find that the language falls into a similar trap of many other languages where the creators are evangelists not quite sharing the whole picture. Writing fast Julia code is not always a pleasant experience as you often need to fight the easier idioms. It is marketed as fast, but really, how fast is it?

[0] [http://www.zverovich.net/2016/05/13/giving-up-on- julia.html](http://www.zverovich.net/2016/05/13/giving-up-on-julia.html)

"What's disappointing is the striking difference between the claimed performance and the observed one. For example, a trivial hello world program in Julia runs ~27x slower than Python's version and ~187x slower than the one in C."

[1] [https://www.ibm.com/developerworks/community/blogs/jfp/entry...](https://www.ibm.com/developerworks/community/blogs/jfp/entry/A_Comparison_Of_C_Julia_Python_Numba_Cython_Scipy_and_BLAS_on_LU_Factorization?lang=en)

"We can code in Julia in a way similar to Python's code. However, that code is slower than it should. One way to speed Julia is to take into account the Fortran ordering it uses by looping on j before looping on i in the second loop. We also add decorators to speed up the code."

[2] [https://www.codementor.io/zhuojiadai/julia-vs-r-vs-python- st...](https://www.codementor.io/zhuojiadai/julia-vs-r-vs-python-string-sort- performance-an-unfinished-journey-to-optimizing-julia-s-performance-f57tf9f8s)

"...comparing R's sorting speeds to Julia's is not the complete story, even though on the surface R appears faster, and from a users' perspective, (once the data is loaded) R is still the king of speed."

Stackoverflow has quite a few user posts [3] from folks trying to get their code to perform at the advertised speed vs popular alternative languages. It's not so easy.

[3] [https://stackoverflow.com/questions/20613817/julia-julia- lan...](https://stackoverflow.com/questions/20613817/julia-julia-lang- performance-compared-to-fortran-and-python)

[4] [https://juliacomputing.com/](https://juliacomputing.com/)

<comment><USER24> This is absolutely correct. The benchmarks they claim are misleading, and under fair conditions, Julia simply isn't the speed/efficiency solution they market themselves to be.

I think that the ML community's decision to write core operations in C or C++ and provide Python wrappers is the way to go about it if you want the flexibility of scripting.

<comment><USER25> That is absolutley false. Look closely at the 'benchmarks' shown in the above article and tell me if they are at all compelling. They measure Julia's startup time and compilation time. IF you wanted to compare Julia to C there, you'd want to include the time it takes to compile your hello_world script.

Julia's performance optimizations have to far been mostly focused on intensive numerical computations where the startup time and compilation time are merely a constant overhead that are irrelevant to high performance numerics.

<comment><USER24> No, it's not. My comment is unrelated to startup and the issue in this article but more generally about Julia as a language of failed promises.

The biggest issue with the standard Julia benchmarks is that they're not using what would be optimal C code to compare against.

In addition, if you look at the Julia issues on GitHub, you'll find hundreds of performance regressions where code performs more than 10 times as slow as what they expected/claimed at one point. It's not reliably fast, even when written by Julia experts/developers.

<comment><USER26> This is ridiculous. On top of eigenspaces comment, the promise was never that any odd Julia code would be fast. You can write untyped/dynamic code and that will be faster than Python but not near C, or you can put a little work into ensuring type stability (from experience this is easier than writing in C from the start, especially as you already have a working prototype that you are iterating in the same language) and you get excellent results.

<comment><USER24> I was very careful to state this the people writing the code I was talking about were Julia experts/developers, not just anyone writing arbitrary Julia code.

When you're doing that much typing, you might as well write C or C++.

<comment><USER16> Okay, with this comment your comment on preferring C++(11?) and pybind11 [1] I think I am finally getting your angle. Let's see if I can bridge the perspectives.

If I am reading you correctly, you are a library builder, an infrastructure creator, and comfortable caring about the bottom line when it comes to performance. You most likely prototype an algorithm in some high-level language, ensuring that it works, then push it down into C++ in order to make it scale to cool problems, lastly you may create bindings to a higher level programming language so that others without your C++ acumen can benefit from your labour. A lot of great code is written this way, some that I rely on in my day-to-day work would be OpenBLAS, TensorFlow, and PyTorch.

I can only really speak for myself, but I know that there are many like me, we are researchers and to us code is only incidental. We are judged based on our ability to churn out as many papers and results as possible, in as little time as is humanly possible (ever wondered why academic code can be absolutely awful?). We rarely know the structure of the solution a-priori, rather, we start throwing techniques at things and try to make the experiments run. At some point, a (wild?) performance bottleneck appears and we just want to get around it as soon as possible. Now, some like myself have been in the Python/Cython world for years and you can get around a lot of bottlenecks this way. However, it comes at the expense of additional boilerplate and mastering which parts of the Python programming model you must throw overboard, not to mention how you make your Cython code interact with pure Python code from libraries that others have written. This is where Julia shines, it allows you to much easier go between this "productive" and "performance" mode, to me, this is worth its weight in gold. It is not for everyone, but if I ever have a law named after me I would be happy if it was "Nothing is for everyone".

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

<comment><USER24> You're exactly right. Thank you for bridging the gap in perspectives. I used to do a lot in cython but found that the glue code was taking more effort than writing the whole application in C++.

<comment><USER26> Glad that someone managed the translation. Another note: I'm a trained mathematician, I'm not afraid of a type system (nor are the physicists I work with). In fact I was missing one dearly in Python. If that was all that was needed to write C++ instead of Python we all would.

Yet that's how Julia looks to us: Python + a sensible Type system.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> d--b Where are we compared to then ([http://www.zverovich.net/2016/05/13/giving-up- on-julia.html](http://www.zverovich.net/2016/05/13/giving-up-on-julia.html))?

<comment><USER25> Theres a discussion on that post in another thread below, but suffice to say the julia community is pretty exasparated with the constant need to respond to that post when its main source of the speed claims was to measure the perofrmance of a hello world program in julia and included the compilation and startup time in the benchmark.

Thats a deceptive and unhelpful 'benchmark', especially when the C++ compilation time was not included in its benchmark. Julia compilation and statup times are slow if you are expecting the feel of the Python interpreter, however, julia's compilation and statup time add a finite, constant overhead to its preformance and so are completely irrelevant for high performance numrical computing.

If you were wanting to spawn many julia instances and make them execute a single command then exit, yes julia would be a terrible choice of that (unless you turn of compilation and use its interpreter or statically compile your program) but for the most part measuring startup time just isn't relevant unless it takes a minute or something absurd.

In julia the only libraries I know of that take a minute to load are plotting libraries (once you make your first plot the library is blazing fast again) and thats been considered such a big issue that a new plotting library Makie is well under way which is supposed to be fully statically compiled in julia in order to slash the first time to plot.

</comment></comment><comment><USER27> One thing I always dislike about julia is the .+ .* .< ... all those dots for element-wise operations. It is inherited from Matlab, but is a bad design because more common usage should have shorter operators.

<comment><USER28> Whether elementwise or linear algebra operations are more common depends on your use case. I'm personally super happy not to need to write np.dot(A, b) when I could just write A*b, or a'b for an inner product, which matches the math and will do the right thing with complex numbers.

</comment></comment><comment><USER29> Ooo, it must be zero-based indexing! Right?!

<comment><AUTHOR> Zero-based indexing was kinda mentioned in the post. About indexing with `begin`

</comment></comment><comment><USER30> Upvote because I think this is the 1st time a posting from the ucc website has made the HN front page.

</comment><comment><USER31> Julia always was one of the languages I wondered whether I should have a closer look at (do python data-science stuff mostly, so it is an interesting project). However, reading Dan Luu writing about his experiences with members of the Julia community [https://danluu.com/julialang/](https://danluu.com/julialang/) I try my best to not get anywhere near it. Directly cited:

        Update: this post was edited a bit to remove a sentence about how friendly
        the Julia community is since that no longer seemed appropriate in light of
        recent private and semi-private communications from one of the co-creators
        of Julia. They were, by far, the nastiest and most dishonest responses I've
        ever gotten to any blog post. Some of those responses were on a private
        discussion channel; multiple people later talked to me about how shocked
        they were at the sheer meanness and dishonesty of the responses. Oh, and
        there's also the public mailing list. The responses there weren't in the
        same league, but even so, I didn't stick around long since I unsubscribed
        when one the Julia co-creators responded with something bad enough that it
        prompted someone else to to suggest sticking to the facts and avoiding
        attacks.  That wasn't the first attack, or even the first one to prompt
        someone to respond and ask that people stay on topic; it just happened to
        be the one that made me think that we weren't going to have a productive
        discussion. I extended an olive branch before leaving, but who knows what
        happened there?

        Update 2, 1 year later: The same person who previously attacked me in
        private is now posting heavily edited and misleading excerpts in an attempt
        to discredit this post. I'm not going to post the full content in part
        because it's extremely long, but mostly because it's a gross violation of
        that community's norms to post internal content publicly. If you know
        anyone in the RC community who was there for the discussion before the
        edits and you want the truth, ask your RC buddy for their take. If you
        don't know any RC folks, consider that my debate partner's behavior was so
        egregious that multiple people asked him to stop, and many more people
        messaged me privately to talk about how inappropriate his behavior was. If
        you compare that to what's been publicly dredged up, you can get an idea of
        both how representative the public excerpts are and of how honest the other
        person is being._

<comment><USER22> I've seen that post as well, and often wondered if it was fair characterization of overall Julia community (maybe it is), or is the result of a single bad apple at the top that overshadowed an otherwise pleasant community.

Unfortunately, it doesn't take much negative energy to spoil a community, even if it comes from just one person. That it was a language co-creator is troubling but not necessarily a reason to avoid the language if the rest of the community is nice (which maybe it is, maybe it isn't).

However one thing I have noticed is that most language communities do tend to follow an attitude set by the language creator(s). This seems to have played out quite a bit for Clojure, Python, Elm, Elixir, and other languages where, at least to me, the overall shared perspective of the community is closely aligned to the personal attitudes and opinions of the language author(s).

<comment><USER2> I don't feel at all that it's a fair characterization of the overall community. I'm sure I've been the target of more of what Dan Luu experienced than anyone else in the Julia community, from the same source, but I haven't let that stop me from contributing as best I can to the community, by answering questions (on Gitter and Discourse), helping with code, and by contributing my own packages to help out in areas where I felt Julia needed some extra attention. I also think that most of the community is more aligned with the example set by Jeff and Viral. Both show great civility, patience, and a willingness to listen to others, in my experience. Finally, with regards to the person that both Dan and I have had problems with (and I have no personal knowledge of that feud, that happened before I had discovered Julia), I respect him a lot (even if he feels I "attack" him when I try to bring up technical issues with code / designs that he's been involved with), I will always be grateful for his role in creating Julia, I think he's a great promoter of Julia, at conferences, etc., and he often has quite a lot of good, well-thought out things to say on GitHub and Discourse.

<comment><USER31> Don't you ever wonder how many excellent contributions to Julia were not made, because that person overstepping boundaries?</comment></comment></comment></comment>


Functional Tests As A Tree Of Continuations (Erlang) - <AUTHOR> http://www.evanmiller.org/functional-tests-as-a-tree-of-continuations.html

<comment><USER3> One good thing about killing the state each time is that... you kill the state. I'd be worried about testing an external service through http in this style. Is it completely stateless? What happens with the session? Can I test "cancel" on the same step if I already did "continue" on it? What if the order is different? What information do I have to rollback after trying each branch? etc.

I know he addresses it in the database example (<<For modern web applications, all the state is stored in a database. Therefore to make a "copy of the universe," we just need a way to make a copy of the database to pass down to the child tests>>), but then he follows with testing over http, where he doesn't save the state in any way. It's just a bit confusing this way.

If you do testing in the wrecking ball approach, at least those things are in plain view. Just kill the state every time. If it doesn't take more than a couple of min. to run all the tests, everything's all right.

<comment><USER4> The state is being saved in the http example, but you can't see it because it's a functional test at the http client level. Think of the test code as a script controlling a browser. boss_test:get_request and boss_test:follow_link are hitting the http server where all the state saving action occurs.

<comment><USER3> Yes, but after get_request, you've got some data saved in your session (I'd assume that's the case for any multi-step flow over http). Now how do I guarantee that when I "continue" from step 2 and then "cancel" from step 2, I still have the correct session state to act on step 3?

<comment><USER4> That depends on the integration between the web server and the test framework. In this case the framework is rolling back some in-memory database. If the session state is in that database, you're good to go. Otherwise the framework needs to track whatever else you're using for session state and roll it back like it does the database.

</comment></comment></comment></comment><comment><USER5> Cool idea.

In my job we are working on business process engine, and we have implemented many long business processes that involves user interactions and calling plSQL code.

Testing these processes manually is pain, we have tests using soapui, but writing tests in linear fashion is repetative and tedious, our test suite is lagging us. Also we use big databases and our tests unfortunately aren't isolated - we have to prepare data manually for tests to run.

This tree-like approach looks great. One problem is - the only way I see to create "stack of databases" is to use savepoint - rollback to savepoint around every node in tests tree.

We use hibernate, so rollback to savepoint won't be enough - we'll need to disable second level cache, and to do sth about first level cache - <USER2> flushing after each rollback to savepoint will do.

Anybody has experience with hibernate and rolling back to savepoint?

</comment><comment><USER6> This reminds me a lot of "context blocks" as implemented in the Ruby testing libraries Shoulda and RSpec (and probably elsewhere). A context is a named code block which can contain a number of tests, along with some common setup and teardown that's run for each test. Contexts can contain contexts, and tests in nested contexts get all the setup and teardown from their own context and its parent contexts, in the order you'd expect.

I've used nested contexts to achieve much the same sort of thing as Evan talks about here: high-coverage functional testing of a sequence of actions. They have the same advantage that the length of the test stays linear with the number of actions, although unlike Evan's callback-style tests, they didn't stop the test tree as soon as a step failed.

</comment><comment><USER7> I realize the bad example wasn't actually doing anything and the tree example does, but the tree looks like it takes a great deal more effort to actually use.

I have a better idea: Erlang already handles green threads extremely well, how about providing a "test mode" switch in the VM. When a branch is encountered in execution the VM spawns new threads as needed and just takes them all. If spawning a new thread would put us over some thread count threshold then just put it on some queue for when there is space for a new thread. Then you can just put pre and post conditions on all your functions and you'll find out if any possible branch traversal causes one of these conditions to fail.</comment>


Mac Pro Technology Overview [pdf] - <AUTHOR> https://www.apple.com/mac-pro/pdf/Mac_Pro_White_Paper_Feb_2020.pdf <comment><USER2> Whoever wrote up that specification list for the Developer machine deserves a raise. You can hear the MBAs already talking about how much more needs to be raised next round in order to pay for these.

</comment><comment><USER3> This is usually what is known, but it also talks about the PCI-e router that is sort of exotic.</comment>


Google's hidden message to Android App publishers? - <AUTHOR> https://medium.com/@deepakabbot/googles-hidden-message-to-android-app-publishers-5e7658698af

<comment><USER2> A quibble but Android phones have multi-user sharing turned off, and there is no user accessible setting to turn that on. So the metrics for multi-user devices is only for tablets, and presumably new non-phone devices like cameras and TVs.</comment>


Trump says the U.S. will cut ties with World Health Organization - <AUTHOR> https://www.cnbc.com/2020/05/29/trump-says-the-us-will-cut-ties-with-world-health-organization.html <comment><USER2> Does the president even have the ability to unilaterally eliminate WHO funding? Considering this and the conflict with Twitter, I wonder how other countries perceive the US during the midst of all of this turmoil.

<comment><USER3> Since you asked >"... I wonder how other countries perceive the US..."

Well, recently spoke to somebody in Canada.

They are so happy to see a world class leader, US President Trump fighting the western form of Thought police and the obamagate propaganda arm (Twitter leadership).

They are also relieved to learn that US, finally, withdraws funding from China's health propaganda ministry (WHO).

They are also embarrassed of Trudeau.

I guess they represent minority in Canada, since Trudeau was re-elected (or elections there, were interfered in, and influenced by China).

<comment><USER2> >obamagate propaganda arm (Twitter leadership)

>China's health propaganda ministry (WHO).

Jfc. Who are these conspiracy theorists that you are interviewing?</comment></comment></comment>


The Psychopharmacology of Everyday Life - <AUTHOR> https://www.nybooks.com/daily/2018/11/19/the-psychopharmacology-of-everyday-life/ <comment><USER2> This is a good article, if a little long. I mostly skimmed the sections on specific classes of medications.

There are two quotes that I especially want to 'bookmark' with a comment here. This was on medicating "schizophrenics" with tranquilizers:

"[...] from what I have learned, we are trading more humane treatments for a solution that superficially seems effective, but on closer examination is not helping patients in any long-term way and may actually be killing them."

Robert Whitaker discusses the old "humane" treatments for the mentally ill in his book, Mad in America [0]. The Quakers had "asylums" where patients were kept safe and provided 4 meals a day. Most patients recovered well enough to leave the asylum after a while.

[0] [https://books.google.com/books?id=Cw6MlCXhN5MC](https://books.google.com/books?id=Cw6MlCXhN5MC)

This quote alludes to the corruption of the psychiatric diagnostic manual (DSM) to justify the modern mental health industry's medication-centered practices:

"Modern psychopharmacology goes hand in hand with a psychiatric diagnostic system that has, over time, been redefined _to rely on medicating symptoms away_ rather than looking at the structure of the mind and its complex permutations in order to work with a patient in a deeply engaged way over the long haul."

(emphasis added). My recent comment [1] discussed medication strategies that address causes rather than treat symptoms. Very few patients get such rational medication strategies, they just get patent medicines that are FDA-approved to treat their symptoms.

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

The author's fixation on Freud's body of work is interesting. Certainly there are more current insights that [s]he could have drawn upon.

(edit1: minor edits & changed book link)

</comment><comment><USER3> "Moving from induced mania to depression, it's been twenty-four years since Prozac Nation was published; I never read it but practically everyone I know has been on a modern antidepressant Selective Serotonin Reuptake Inhibitor (SSRI) like Prozac at one point or another. Do antidepressants help with depression? It's a touchy subject; they have clearly helped many through periods of depression, saving the lives of some who have struggled with suicidal feelings. One thing I will say is that I prefer my patients not to be on them if possible, or eventually to get off them. True, the lows aren't as low, but neither are the highs high, and pleasure is limited to some medial zone."

Well, what if the truth is that all these drugs allow us human beings to function better according to how society expects us to (being financially independent for starters)?

I don't use Prozac as anti depression aid. I use Prozac because I have autism, and it makes me less sensitive. I get triggered less therefore it allows me to function better as someone who has autism. I didn't make this assessment myself; people around me told me that I am easier ever since I use it.

Yet in statistics I will count as "SSRI user" and "Prozac user" and "antidepressant user".

I'm very curious how common such off the record subscriptions actually are. Heck, there might even be people who are undiagnosed on the spectrum yet successfully use Prozac (or an other drug).

FWIW, what I very much like about the drug is its high half life. If I forget to take it in the morning, I only start to notion that in the afternoon (and I am sensitive to drugs). The drug has its downsides, for example gotta be careful with alcohol. Then again, only need very little alcohol to notice an effect. It also lowers the fear for needles I have, and therefore I might be able to not use oxazepam if I require a needle injection.

<comment><USER4> Agree, this article reads, whilst historically interesting from perspective of the breakthroughs in psychopharmacology, much like a grand conspiracy theory about the industry itself. SSRI (and its descendants, ie SNRI) is an incredibly effective class of drugs that has helped a lot of people function well. Without it, many of them would likely have resorted to drugs or alcohol. Doctors don't prescribe it because they are evil; they do it because it is proven to work and helps the majority of people that take it.</comment></comment>


The Manly Guide to Menstruation - <AUTHOR> https://medium.com/clued-in/the-manly-guide-to-menstruation-833d97d811ea#.efh0a4xco <comment><USER2> > Tip: Keep a small number of high absorbency pads and tampons on hand for the > 1 in 7 women you encounter. Ask a pharmacist or female friend for advice and > ideas on which brands to buy.

I can't imagine how this will go: _sniff sniff_ , oh having your period? Here, have a tampon.

Also, I don't have the feeling talking about menstruation and sex is a taboo, but that might just be me.</comment>


Does anyone have an alternative link to a Hacker News RSS feed that works correctly? - <AUTHOR>

This one seems to be generating URLs incorrectly when referencing this site (for example, the comments link shows up as http://news.ycombinator.comitem/?id=102876). Just one that has the comments issue fixed would be fine. <comment><USER2> I used feedity.com, inserted news.ycombinator.com and edited it to only display titles. This can probably be done with any RSS feed generator. [http://www.feedity.com/?xccH2xIG%252bIhCywXfu149J8ltp3V3aMhk...](http://www.feedity.com/?xccH2xIG%252bIhCywXfu149J8ltp3V3aMhkhttp://news.ycombinator.com%40%40%40CAT%40%40%406)</comment>