GoodRx is coming for subscription prescription - <AUTHOR> https://techcrunch.com/2019/09/26/goodrx-is-coming-for-subscription-prescription-services-with-the-launch-of-goodrx-care/ <comment><USER3> For those wondering, here's how GoodRx works and makes money:

1\. GoodRx obtains prices of drugs at all pharmacies through contracts it has with PBMs (middleman that determines insurance payouts to pharmacies).

2\. Pharmacies have wildly different prices from one another - going to one pharmacy over another can save you and your insurance a lot of money.

3\. When you use a GoodRx coupon, the insurance company pays GoodRx a small amount as they had to spend less on their patient thanks to the coupon (i.e they didn't use a super expensive pharmacy).

4\. The pharmacy pays GoodRx a referral fee (kind of like a restaurant pays yelp a referral fee when you use a yelp coupon).

Over the last 5 years, insurance companies are increasingly pushing high deductible plans on to employers. As a result, patients are way more price sensitive than they used to be. If you had no deductible, you probably wouldn't care too much about drug price differences because the copays wouldn't be that different. However, due to these new plans you care a lot more and hence services like GoodRx and Blink become a lot more important.

<comment><USER4> but it works even if you have no insurance. plus it doesn't know what insurance you have. isn't that incompatible with what you are describing?

</comment></comment><comment><USER5> I'm confused as to what value GoodRx adds in the payer - provider - <USER2> chain?

Is this another data harvesting play? Why would insurance companies give GoodRx a piece of their revenue? They all have their own PBMs.

Why would a pharmacy give them a piece of their revenue? They can just charge $0.01 less to the patient and not have to pay a commission to GoodRx.

<comment><USER6> I don't know how goodRx makes money, but it's a great tool for doctors. I use it every shift to pick affordable antibiotics, blood thinners, eye drops, etc for my patients. Yesterday I accidentally prescribed an ear drop that cost $320 for the bottle, when there was a $15 option that was just as effective. Only way for me to know that was GoodRx

<comment><USER7> It seems crazy to me that as a professional who's diagnoses basically has to be followed there's no other means to know how your treatment plan will financially affect a patient.

Imagine if your car mechanic recommended a fix but had no idea what the parts would cost. And the difference between two perfectly suitable parts could be the equivalent of half of someone's paycheck.

<comment><USER8> Doctors know generics are cheaper (or at least they used to be) but that's about it for their price awareness. This is not their fault. Doctors are inundated by drug salespeople "educating" them to prescribe the most expensive drugs. And drug salespeople never--ever--push aspirin.

<comment><USER6> Every script I write is for a generic. I have never met a drug rep.

For many ailments there are five or six different drugs suited for the job. Goodrx helps me pick the most affordable.

<comment><USER8> > I have never met a drug rep.

Interesting. I wonder if this is because you're an ER doc and work in a hospital? Every doctor I know who sees patients in an office has to deal with sales reps.

</comment></comment></comment></comment></comment></comment><comment><USER9> A 90 day supply of my 3 generic drugs using GoodRx is cheaper than 30 day supply using insurance.

<comment><USER10> 90 day supply of prescription drugs has always been cheaper than 30 supply. It is also cheaper if you it get mail-delivered.

Prescription benefit managers like Medco/ExpressScript have offered such options for years...Not sure what the GoodRX angle is.

<comment><USER9> Using GoodRx, $120 for 90 day supply of 3 generics. Using insurance, $180 for 3 generics 30 day supply.

<comment><USER11> Using GoodRx is still "using insurance", isn't it? My insurer offers 90 day supplies with a cheaper copay via Express Scripts already.

(Their customer service blows, though.)

<comment><USER9> >cheaper copay

I'm not talking about copays. My insurance doesn't have a coppay until I hit the deductible. I'm paying cash for the drugs.

<comment><USER11> Copay, coinsurance, deductible, whatever.

If you're paying cash _outside_ of insurance coverage, it's not counting towards the deductible or annual out-of-pocket max, which screws you if you have significant other healthcare costs.

<comment><USER9> I have a $7900 deductible.

<comment><USER11> Yeah, so imagine spending $3k on GoodRx prescriptions, then winding up in the hospital and finding out you've still got all $7900 of it left to cover before insurance kicks in.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I have used GoodRx when I did not have insurance. I believe that is a very significant part of its business model.

Adding "prescription services" now, essentially GoodRx is becoming a health insurance company that doesn't actually do the insurance part. I mean, it's really offering virtual doctor visits.

So the next step would be "emergency coverage" for an "additional monthly service fee" with an optional "self-pay threshold" for lower monthly fees and higher "emergency assurance".

I think it would be a good thing if they could take it all the way. The thing that is not clear is whether any company could actually make that profitable without excluding people who had certain expensive conditions.</comment>


Police Barged into My Room While I Was Covering Fujian Chemical Spill - <AUTHOR> https://www.caixinglobal.com/2018-11-20/police-barged-into-my-room-while-i-was-covering-fujian-chemical-spill-101349591.html <comment><USER2> Pro-tip: look for small, cash only hotels. Those "uncly Liu inn" style lodgings are easy to find in rural areas.

If they are cash only, and not issuing fapiaos, it means that they have no formal registration.

For travel, mopeds are not required to have number plates, and are not triggering number plate scanners.

Cash only intercity buses also likely running informally. Tickets for regular rail are also available for cash, but lately there are reports of police doing ID checks on trains.

Telling this as helpful tips to avoid excess attention from police as a foreigner in China. Living in a big city with sizeable foreigner population is relatively easy. The only "minor" inconvenience you encounter are occasional 4am police visits to check your ID, and a broken door if you happened to be out during them. While in smaller towns, you can easily be one of, say, 20 foreigners in town, and the police attention to you will be much more "personalised." Also, get a Chinese name. It is said that foreigners with Chinese names get way less attention than people with non-Chinese names.

<comment><USER3> This comment is unfortunately so wrong on many levels. I live for 12 years in China and work in systems security.

For the hotels, "easy to find" for you -> easy to find for the police. China is actively resisting people moving around without tracing them, so please rest assured those "spy" hotels are the first ones to file everything about you to the local police unit. I know of several anecdotal cases.

For years and years, all mopeds and scooters require plates. You can buy fake plates on Taobao, but it's a great way to get into a very big trouble, especially if you're a foreigner.

Every train and every long-distance bus are ticketed with original ID only. Maybe in some small rural train station, you can buy with a photoshopped passport copy, but certainly not in Tier-3+ cities.

In 12 years I've never ever heard of "4am" police checks. They come sometimes, they're very polite. You don't even have to open the door for them, and they will never break the door unless there is a fire or a distress call. Chinese police are lazy and wrong on many levels, but they're very very far from the Western media portrayal.

Chinese name tip is a joke. You will be registered everywhere with your passport name, and nobody ever asks for a Chinese name.

<comment><USER2> Quite surprised to heard that. That's interesting.

I travelled few times from Shenzhen to Heihe and back without having to produce my ID even once. Just a year ago, I went Beijing to Heihe by bus, and again I only needed cash. And you can for sure travel around Guangdong on regular rail (non CRH,) and buy plain paper tickets without any barcodes for cash at few remaining standalone ticket departments. And access to the train platform on regular rail is way laxer than on CRH.

I don't have a specific need to travel without paper trail, nevertheless, sometimes, I have a need to travel with 4+ huge bags full on electronics, maotai, clothes, and other mass consumption items whenever relatives on the other side of the border request provisions from the land plenty. And that attracts a lot of unapproving looks and solicitation of humanitarian aid by impoverished officials, security personnel, and town Bubbas.

As for moped number plates, I know that individual cities require them, and issue them themselves. There are no nationwide moped number plate system as I know. On what is Chinese interstate network, and even on toll roads, I do frequently see people riding without number plates. And if you travel on smaller roads, and not on a highway, there is close to no control, and no random ID checks.

As for 4am checks, quite a number of people in Shenzhen did get them. The famous South African youtuber SerpentZA living in Shenzhen had a number. So did few of my coworkers. And it all times, the guys coming are not your chill policemen posted at streets, but Teqin, other Chinese three letter agencies who are totally not against manhandling you face to the floor.

As for Chinese name, you know that you have a full legal right to use your legal Chinese name if you have such?

<comment><USER3> Seriously doubt that. The relevant law for bus travel is in effect since March 1st, 2017. Source: [http://www.gd.gov.cn/gzhd/zcjd/snzcsd/201703/t20170301_24804...](http://www.gd.gov.cn/gzhd/zcjd/snzcsd/201703/t20170301_248047.htm) For train travel is in effect since Jan 1st, 2012. Source: [http://www.gov.cn/jrzg/2012-01/01/content_2035488.htm](http://www.gov.cn/jrzg/2012-01/01/content_2035488.htm) I also travel around China for work, sometimes by non-CRH train, sometimes by bus, and was always asked for original ID.

<comment><USER2> I never meant that it is easy to ride paper trail free in China, or if you can get ID free tickets on a golden platter.

With busses it is still hit and miss. Bigger bus companies, which allow you to reserve tickets online tend to require it, and smaller "Uncle Liu Bus" type companies more than likely not.

As for train tickers, you will always be asked for an ID and given a regular blue ticket if you buy them right at the railway station these days. To get an old type pink ticket, you have to look for standalone ticket offices ran by agents. There are very, very few remaining, but they do sell legit tickets. One or two in Foshan, one in Shunde, one in Meizhou. And there is always a risky option to buy them from grannies.

[https://imgur.com/a/xlB2sX4](https://imgur.com/a/xlB2sX4)

And one even lesser known way is to find stations with very, very old ticket vending machines that are from 2008 or so. Those don't require IDs, and take cash. Only single digits of them are remaining in Guangdong, and whom ever knows of them don't blabber around about that.

</comment></comment></comment></comment></comment><comment><USER4> _Chinese police apologise after Caixin reporter's 'prostitution bust' hotel room inspection_

[https://www.scmp.com/news/china/society/article/2174190/chin...](https://www.scmp.com/news/china/society/article/2174190/chinese- police-apologise-after-caixin-reporters-prostitution-bust)

</comment><comment><USER5> this is sad, but I find that fact that the harassment level was so mild the more surprising aspect

<comment><USER6> I don't. This person is a journalist. If you want to stop a journalist from writing a story, you kill them or you intimidate them.

China's already under intense public scrutiny. Killing a journalist, especially one who has already published the story in question, would be incredibly unwise!

One could rough her up but in most of these encounters she was in public. Many times they tried to get her alone. But she refused and had already published the story when they entered her hotel room. A beating would have been equally as unwise as killing her. Anything more intimidating than barging into her hotel room would have been a huge disaster for the Chinese government.

</comment></comment><comment><USER7> It sounds like the police suspected something beyond what she was actually doing. I mean, I'm aware of "the TV drama cliche of police nabbing suspects in hotel rooms" \- but in this they just searched the rooms of her hotel room - _including the window ledge_ \- but they didn't confiscate her photos or search her belongings?

It seems more like they were looking for a specific person, instead of trying to intimidate directly. I'm aware of how intimidating this must have been, but they didn't say things like "show us the photos you took", or "don't discuss what you saw or else", or anything like that. She was _already_ going to be leaving the town...

Or did they maybe want to catch her in the act of having sex with someone so they could blackmail her?

There's a strong implication that she suspected something else nefarious was being planned, which is why she kept turning down "too obvious" offers of exactly what she was in town for- but based on the behavior of the police who presumably did whatever they intended to do, it's not clear to me exactly _what_ nefarious plan she wound up avoiding.

All in all, this is more confusing to me than anything else.

<comment><USER8> Why do you feel the need to manufacture theories that are unsupported by facts when the reality, intimidation by police, is bad enough?

<comment><USER7> I'm trying to manufacture a theory that better fits all the facts. Intimidation is a simple theory, and acceptable as a fallback, but if that's all that was going on, then it raises some questions.

<comment><USER9> > I'm trying to manufacture a theory that better fits all the facts. > Intimidation is a simple theory, and acceptable as a fallback, but if that's > all that was going on, then it raises some questions.

You definitely seem like you're trying to manufacture a theory, but nothing you've written "better fits all the facts."

At best, I think you're operating under a set of faulty assumptions that's causing you to mistakenly reject most likely explanation.

</comment></comment></comment></comment><comment><USER10> This sounds unpleasant...but I don't know why she rejected their offers so many times. If you don't seem suspicious at first, why shun all attempts at "official" contact? I'm not saying that it's her fault or anything of that nature, just that it might have went a bit smoother if she had been more forthcoming(whether or not she was compelled to). That must have been frightening though to suddenly have the fuzz at the foot of your bed though - very uncool of law enforcement to behave that way. Perhaps that's not as out of the norm as it seems to me(someone from the West).

<comment><USER11> Uhhh! She had every right. Free will. No other reasons need to be given. I'm not debating with you I'm just shocked that you would posit such a silly statement "but I don't know why she rejected their offers so many times."

<comment><USER12> Of course she had the right and doesn't have to explain herself, but it would certainly have been informative if she'd done so.

Maybe she thought that listening to the official story would be a waste of time and that they would only try to pressure her. But knowing where the official story differs from what she personally observed, and what kind of changes in her reporting they'd have demanded, would have been interesting in itself.</comment></comment></comment>


Docker Registry experiencing full service disruption - <AUTHOR> http://status.docker.com/ <comment><USER2> ... and again we see that decentralization or elimination of single points of failure (SPOF) is critical in the design of all manner of systems.

What's stopping open source infrastructure supporting magnet URLs? :)

<comment><AUTHOR> I think in this case it should be even easier. The whole docker registry is just a REST HTTP server that supports CRUD operations (PUT, GET, etc).

I wonder what the reason for the outage is. I am pretty sure the Docker team is qualified enough to prevent failures caused by a SPOF.

<comment><USER3> Hi everyone, sorry about the outage (which appears to be now fixed). I don't know what caused it but I'm sure the Hub team will post a post-mortem soon.

My educated guess is that it has something to do with our recent move off of Dotcloud as part as the sale to Cloud Control [1]. In my experience, migrations always introduce unexpected moving parts which can lead to service disruption in spite of thorough preparation.

Note on the registry being "just a crud server". That's true, I suppose. But at very large scale everything gets harder to do reliably.

About decentralization: there is a major development thread underway to make images self-describing. Once that is implemented, the naming of images will be decorrelated from their method of delivery, there is already talk of a bittorrent and ipfs plugin :)

[1] [http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to- cl...](http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to-cloudcontrol- to-focus-on-core-container-business/)

<comment><USER4> Solomon, where can we read more about the decentralization plans ?

<comment><USER5> Google search results in this:

[https://github.com/docker/docker/issues/6805](https://github.com/docker/docker/issues/6805)

</comment></comment></comment></comment></comment><comment><USER6> Sorry to sound dumb here, but, I haven't used docker yet... thought it is something you install locally?

What does Docker to centrally that requires a third party service?

<comment><USER7> It's the registry, not Docker itself.

This analogy might help: Docker Registry is to Docker as Github is to Git.

<comment><USER6> Makes perfect sense!

Thanks

</comment></comment></comment><comment><AUTHOR> ... and it's back. Hope they will post a post-mortem.</comment>


10th Anniversary of JQuery - <AUTHOR> http://ejohn.org/blog/10th-anniversary-of-jquery/ <comment><USER2> I would argue jquery has been more instrumental to the success of the web than javascript. It was the stroke of pragmatic genius riding the back of a half- baked language ( a prototype-based language trying to ape the style/name of Java, solely as a cheap cash in of its popularity).

<comment><USER3> I don't think that's accurate (or fair, really). Jquery was one in a list of dozens of libraries that did similar things at that time, but ajax/interactivity had been part of the web mindset for years before jquery existed. Jquery just won the library war.

<comment><USER4> jQuery was important not just because of the feature set, but because it completely dominated the industry. jQuery and its ecosystem of plugins created a single community for JS developers. A lot of subsequent work wouldn't have been as successful without that strong community in place to spread ideas.

The other thing it did well was change the thinking about how JavaScript should interact with the DOM. In the past you'd have libraries that made DOM access easier, but they largely followed the same conventions as the underling APIs. jQuery broke from that and completely re-envisioned the API layer. The underlying APIs were treated as an implementation detail; this approach is something that subsequent libraries have adopted too.

<comment><USER5> Exactly. Method chaining was a novel feature back then

</comment></comment></comment></comment><comment><USER6> JQuery is a brilliant library. No, really. It's designed to make DOM manipulations easy, and it does that REALLY well. I'd go so far as to say that it probably has one the the best interfaces of any library ever.

<comment><USER7> Completely agree. Strong evidence for this too when you view his link to his annotations on one of the first versions. The API hardly changed.

<comment><USER6> Also, JQuery is monadic ([https://importantshock.wordpress.com/2009/01/18/jquery- is-a-...](https://importantshock.wordpress.com/2009/01/18/jquery-is-a-monad/))

<comment><USER6> Okay, apparently I'm wrong about that.

</comment></comment></comment></comment><comment><USER8> Happy birthday jQuery!

It is currently my 3rd most endorsed linkedin skill after 'dressing himself' and 'marking recruiters as spam'. My friends suck.

<comment><USER9> Then we have some great opportunities requiring 15+ years of JQuery experience in your area. As you're able to dress yourself these are not remote roles. =)

</spam>

</comment></comment><comment><USER10> Slightly unrelated -- John Resig's "Secrets of the JavaScript Ninja" is such a well-written book. It allowed me to not only understand but also appreciate JavaScript. I believe understanding JavaScript as a functional language is key to being a good JS developer.

<comment><USER11> And there's a second edition coming out soon:

[https://www.manning.com/books/secrets-of-the-javascript- ninj...](https://www.manning.com/books/secrets-of-the-javascript-ninja-second- edition)

</comment></comment><comment><USER12> So it's been 10 years of jQuery being a preferred way of interacting with the DOM API...where are the changes to the DOM API to make the DOM easier like jQuery? Sure we got a few new things like querySelectorAll(), etc but nothing that makes things quite as elegant to create as jQuery's API.

Why wouldn't the HTML standards committees follow the trend and improve the API?

Edit: removed 'chainable' as a descriptor of jQuery's API as I didn't mean to focus on it; was simply just calling its API chainable but it's led to confusion.

<comment><USER13> Actually, I don't think the chainable API is terribly important.

The things that keep jquery alive and well in mind are:

* A convenient way to add to the DOM. While SELECTING elements has gotten way better than the Bad Old Days, ADDING elements is still painful. (one element isn't bad, but if you're trying to add, say, a UL with a number of LI elements, it's...tedious.)

* A good wrapper for Ajax calls. Not that there aren't better, but jquery has a perfectly good one. Heck, I've jqueryified a page to test calls I'm making outside of jquery because doing a call via console is...tedious.

* Promises. We'll soon have them native (and better), but for a long time jquery has been super convenient for this.

<comment><USER14> for HTTP calls from the console, you might appreciate the relatively new fetch api:

[https://developer.mozilla.org/en/docs/Web/API/Fetch_API](https://developer.mozilla.org/en/docs/Web/API/Fetch_API)

if you ask me, it's impressively well designed. it looks so boring and straight forward yet somehow nearly all "simple" http libraries (not to mention builtins) in nearly all popular languages are more convoluted.

<comment><USER15> I'm really greatfull for the new Fetch API. For now we need to use a pollyfill for it which just uses XHR underneath. Safari and modern versions of IE/Edge are lacking support.

</comment></comment></comment></comment><comment><USER16> I remember sitting in a tiny conference room at Monster.com during the first Boston BarCamp in 2006 and listening to this kid from RIT give a talk to maybe 15 of us about his new library called jQuery. I think I asked some dumb question about if method chaining allowed for conditionals.

<comment><USER17> Awesome! Resig was a few years after my time there, but it's always good hearing RIT associated with someone so game changing.

</comment></comment><comment><USER18> Somewhat unrelated but reminds me of this: I enjoyed skimming through Resig's personally-annotated version of the first public release of jQuery (annotated April 2015 of the release in 2006 [!]).

[http://ejohn.org/blog/annotated-version-of-the-original- jque...](http://ejohn.org/blog/annotated-version-of-the-original-jquery- release/)

<comment><USER19> Not so unrelated since he links to it right in the second paragraph :)

</comment></comment><comment><USER20> jQuery is the BMW M3 of libraries. It handles all the hard stuff for you in such a way that when you use it, you look like a superhero capable of anything. It's one of those rare tools that makes almost everyone better at what they do just by the fact that they're using it. And everyone can find a way to use it in their own style. Just a completely brilliant piece of software that has inspired me (and many others) for a decade.

I'm still waiting to meet John in real life and thank him out loud for jQuery. One of these days.

</comment><comment><USER21> I personally got into web development with jQuery. Some years I go it was a must, now a days, I find it unnecessary and I don't use it any more. Is this just me or is transition people is doing ??

<comment><USER22> I can think of two main areas that jQuery is useful in which have diminished in importance over the years

a) smoothed over differences between browsers. With the web being taken more seriously by everyone, the browser implementers are much more careful about all following the same standard so with every year that goes by there are fewer cross browser quirks to worry about (it's still a major pain today though)

b) providing convenience methods for manipulating the dom and working with data etc. I think jQuery has less of a role to play since ES5 and ES6 are how javascript is written nowadays and have more advanced features than js did in jquery's heyday. Also, for advanced client side apps, frameworks like angular and ember also provide such features.

<comment><USER23> Google Closure also satisfies these, no?

</comment></comment></comment><comment><USER24> From the perspective of a passionate user of Ember, jQuery is still relevant. The DOM API may be more consistent between browsers today than it was in 2006, but it is still needlessly verbose:

document.getElementById(id)

vs.

$('#' \+ id)

Let's not forget the lack of chainability in DOM element method calls:

el = document.getElementById(id)

el.method1()

el.method2()

vs.

$('#' \+ id).method1().method2()

Yes--to me at least--conciseness and elegance matter, now more than ever. A better DOM API does not mean the end of jQuery. In a similar vein, ES6 does not spell the end for CoffeeScript.

<comment><USER25> On the other hand, `$('#'+id)` fails when the ID contains dot or other characters that have special meaning in a CSS selector, and `$(selector)` is overloaded with `$(html)` causing common XSS injection issues in apps misusing it. jQuery's "Do What I Mean" philosophy jas introduced as many of its own bugs as it ever fixed in browsers; I wish there were a happy medium.

</comment></comment><comment><USER26> I'm still looking forward for programmatically generating custom jQuery builds from the download page. We Inertially include the whole build for minor things sometimes. Say I want to just use Events, Selector, or Utilities and Ajax.

<comment><USER27> I used this when I only needed the $.ajax part of jQuery: [http://projects.jga.me/jquery-builder/](http://projects.jga.me/jquery- builder/)

</comment></comment><comment><USER28> a) jQuery is a great piece of beautiful, battleproven code!

b) jQuery was necessary for a long time to have (efficent) fun with the DOM (i.e.: my contribution [http://www.fullstackoptimization.com/box2d-jquery/](http://www.fullstackoptimization.com/box2d-jquery/) )

c) Damn, I'm glad that the days of jQuery necessity are (nearly) over. It's a ghetto.

</comment><comment><USER29> I started using JQuery in 2007 or 2008, and it helped me put bread on my table for years. Thanks John!

</comment><comment><USER30> I remember when it was announced - I just happened to be in the right place at the right time. It was announced in a smallish room, maybe about 25 people. At BarCamp, if I remember how it worked, everyone who showed up was required to talk about a subject. It was as community-driven an event as any I've ever been to. Lots of amateur presenters.

There was a guy there that John Resig had shown jQuery to the night before, and the guy was just raving about it. And when John showed off jQuery, it just was damn impressive.

Wish I could remember more, its a bit of a hazy memory now! :)

<comment><USER31> Sounds like you weren't the only person in that room who is posting here today: [https://news.ycombinator.com/item?id=10903725](https://news.ycombinator.com/item?id=10903725)

:)

</comment></comment><comment><USER32> I do love that John's blog doesn't actually use jQuery itself (likely because it's not needed in this instance). Or any javascript for that matter, other than analytics...

</comment><comment><USER33> There's a lot of nifty front-end JS frameworks these days, or popular front- end and back-end JS implementations, so I can see how it's easy to miss what made/makes jQuery great.

I think that it's hard to truly appreciate jQuery unless you were actually attempting to write code for web applications that dealt with a lot of JavaScript at the time. 2005 and 2006 was a nightmare for writing front-end behavior on web-based applications.

This wasn't because JS was particularly awful to write code in. Internet Explorer, the king of browsers at the time, routinely exhibited totally unexpected behavior with little to no tools to discover how to fix things. While this may sound like a personal attack against Internet Explorer, it's the truth of the matter. Other browsers had quirks, but none were as important as the quirks discovered in the most popular browser at the time.

The things that you wanted to start doing to make your app "Web 2.0" like transitions, CSS animations, AJAX behavior, big DOM manipulations, and so on, were totally _possible_ with JS. You just had to write a _lot_ of it and pray to whoever you wanted when you went to test it in IE.

One of the big catalysts for getting something better than vanilla JS to play with wasn't just to make writing the code more pleasurable, it was to make it easier to GSD. Two camps came out in this regard. You had folks who were abstracting away the JS a lot more, creating more of their own syntax and language for everything; a framework built in JS. Then there were folks like jQuery who were creating what a lot of people considered a library, in that it felt like you were utilizing a lot of the same vanilla JS you knew and loved, but with some wrappers and helpers.

I mean, AJAX was a big and cool "aha" moment when you first saw it and played with it. But the first time you got to do things like:

* Identify an element without verbosity like document.getElementById()

* Attach an onclick to elements _reliably_ and in a cross-browser safe way

* Change the color, replace some text, and fade in or shake or whatever was cool at the time in a _single_ line of code that worked everywhere

... things like these were also very, very cool.

And because jQuery was well-documented, and didn't change the language and feeling of using a lot of JavaScript too tremendously, it was, and continues to be, an invaluable tool in so many belts. There are tons of good libraries built on top of jQuery that continue to evolve with standards and trends.

Overall it's stood the test of time well, and has saved countless hours of development time; two important qualities in great software.

<comment><USER34> I strongly believe that jQuery by itself is almost always easier to use than any JS framework or combo of libraries. The fact that these frameworks often are incompatible or at least look down upon jQuery is odd and dare I say disrespectful.

<comment><USER35> I think what a lot of folks frown upon about "jQuery" (sometimes without realizing) is using the DOM as your data model. I.e. state is only stored in text, attributes, tags, etc. - and apps quickly turn to crap due to the complexities of back and forth data binding, etc. It's not really about jQuery, just that style of coding.

<comment><USER34> Yeah for sure, I think it's mainly a lack of structure which has also been solved in various forms, none of which necessarily prevail.

</comment></comment></comment></comment><comment><USER36> jQuery is great and conceptually quite simple - select an element of your page and do something to it in a line or two. It's a shame that the React/Angular stuff doesn't have that kind of simplicity. I'm not sure if that's inherent to the problems they deal with or not.

</comment><comment><USER37> It is incredible that it has "only" been ten years. It somehow feels that it has been around forever.

<comment><USER38> I find the relativity of time so interesting. To me it feels like JQuery came out yesterday.

</comment></comment><comment><USER39> Same day as my birthday!

</comment><comment><USER40> Suggestion: read his book "Pro JavaScript Techniques" (2006), it explains how JQuery works. Even if you don't use JQuery, one can find several good code snips and advises.

<comment><USER41> this is how i learnt javascript. Has to be the most underrated javascript book ever.

</comment></comment><comment><USER42> Hmm, is there any reason to use jQuery if you handle your DOM with React?

I might be missing something. I used to use it for animations and manipulating DOM, but there are decent lighter alternatives now.

</comment><comment><USER43> JQuery got created about 10 months before I started doing professional web- development so it was there for my whole career, but I never used it, I just read a book written by its maker.

Till 2011 I had to use a framework that was a bit like GWT in PHP, because the company just had PHP and C coders and no one wanted to pay a switch.

2011 I started with JS and read stuff like "The Good Parts" and "Professional JavaScript". I wrote a JSON-HTTP-API and rewrote the whole UI in ExtJS.

Then I took a sabbatical in 2014 where I played around with Crafty, Phaser, D3 and continued my masters degree where I had to use Ember for a few projects.

Last year I dropped in a young project that was using React.

Funny thing is, all the time JQuery felt really old to me, so I never considered using it.

<comment><USER34> You never considered using jQuery, but you had to use Ember for a few projects? Do you realize what you're saying?

<comment><USER43> I probably used a bunch of libraries that had a JQuery dependency in my life.

Maybe I should have been clearer?

I never called its API "personally" ;)</comment></comment></comment>


Show HN: Video Summarizer – detect if is someone speaking and speed up video - <AUTHOR> https://github.com/SoptikHa2/video-summarizer <comment><AUTHOR> I made a tool and browser extensions that determines if people in video are currently talking or not, and speeds up the video accordingly. Great for long lecture videos for skipping time spent writing on a whiteboard.

My use case are corona-time lectures. I don't want to just watch the teacher write something while saying nothing, so I speed up the video 1.5x when teacher is talking, and 4x otherwise.

So this extension analyses sound in the video, and determines which parts are loud or silent. And depending on that, it changes playback rate of the video. Technically, this is javascript extension that downloads video information (when it's loud or silent) from server (which is btw written entirely in shell & gnu coreutils) and tells the videoplayer what to do. So only videos explicitely indexed by my server are managed by this extension. User has to click a button in the extension menu to index a video (as the data about videos are stored on my server and it has very small disk size, so I don't want to do this for every video).</comment>


Reproducible bioinformatics pipelines using Make - <AUTHOR> https://bsmith89.github.io/make-bml/ <comment><USER2> Chris Mungall did a presentation in 2004 on "BioMake: Functional Logical Task Management for Bioinformatics" [http://open- bio.org/bosc2004/accepted_abstracts.html#mungall](http://open- bio.org/bosc2004/accepted_abstracts.html#mungall) :

> For our in-house task management we required something similar to Makefiles > in terms of level of abstraction and simplicity, yet without the limitations > of Makefiles and related systems (ant, scons, build, etc). In particular we > needed:

      - Asynchrnonous task management on compute farms
      - Choice of either relational database or filesystem for storing build targets
      - A cleaner specification language
      - Fully programmable logic within the Makefile specification

That's about the time I stopped following bioinformatics, and I don't know what happened with it. (It's also the same conference where I discovered some whiskeys I liked. Coincidence?)</comment>


Tell HN: I am starting an HN related podcast. Need suggestions & co-host. - <AUTHOR>

So I have been thinking about this for a while, and have decided to take the plunge.
The structure will be a general discussion of select news stories that appear on HN during the week - and anything else that comes up that might be of interest during that week.
I am trying to come up with a name. Thinking about 'dHN' (i.e. derivative of HN). Thoughts?
Would you guys be interested in hearing/watching something like this? What is an ideal length? Any ideas on things I can cover and a structure?
The topics I love are: Economics, startups, finance, business, web, political news, current events.
Also looking for one co-host that has Skype, a broadband connection, and can be available at least once per week. Has to be a member of HN also.
If you are interested in potentially co-hosting, email me: marcamillion {at} gmail.com <comment><AUTHOR> So based on the feedback so far, I have decided to do a rotating co-host every week - starting off with HN users.

I have three HN users that have said they want to co-host, so that takes care of the first three weeks (provided we can get our schedules to mesh).

Let me know if anyone else is interested.

</comment><comment><USER2> I'd be interested to do some guest appearances if my background and experience might be relevant to any topics you're doing.

</comment><comment><USER3> Can you call it reHN? reverse engineering Hacker News.

<comment><AUTHOR> Interesting.

I like that concept.

Keep them coming.</comment></comment>


Using Twitter OAuth Properly - <AUTHOR> http://www.travisswicegood.com/index.php/2010/07/07/using-twitter-oauth-properly <comment><USER2> I completely disagree. I think the burden of having to authorize two applications is much higher than having to authorize one that will have a little extra power that I may or may not use.</comment>


Frontier will charge up to $89 for social distancing on flights - <AUTHOR> https://arstechnica.com/information-technology/2020/05/frontier-will-charge-up-to-89-for-social-distancing-on-flights/ <comment><USER2> If social distancing is deemed a public health necessity then it should be made compulsory on flights. It makes no sense to let people decide what they prefer.

But it should be obvious that if planes lose one third of their seats then the cost of flying will increase in proportion, and perhaps more because of the state of the market.

</comment><comment><AUTHOR> > The extra fee for a guaranteed empty middle seat will be between $39 and > $89, depending on the route. It will be in effect starting this Friday and > run at least through the end of August, if not later.</comment>


RTX 3080: It Never Was in Stock - <AUTHOR> https://www.reddit.com/r/pcmasterrace/comments/iujhh9/rtx_3080_it_never_was_in_stock/ <comment><USER2> Rumors of bad samsung yields, fake low stock to increase MSRP of cards, Nvidia providing 50-100 dollar rebate to AIB's for cards sold in September, super expensive cooling solutions for FE...I can't admit I was around for previous GPU releases but jeez.. Hopefully AMD has good stock because I know they are going to kill it on efficiency and price and I would rather loose 5-7 percent of fps attainable than give money to Jensen's annoying marketing over hype.

</comment><comment><USER3> The lack of transparency here has been awful as a consumer. Not only did the first wave of cards sell out between refreshes, but Nvidia failed to inform us that they would continually restock the site throughout the day.

I managed to snag myself a FE card, but dozens of friends and coworkers were not so lucky. There are relatively simple solutions like a preorder queue or allowing backstock orders that are fulfilled sequentially, but it doesn't seem like Nvidia is concerned at all with the customer experience; they know they aren't losing customers as long as they continue to provide best in class performance.

<comment><USER4> I have no idea why this sale wasn't locked down to existing customers with long standing history only.

</comment></comment><comment><USER5> links i've been watching & set to notify

[https://wccftech.com/nvidia-geforce-rtx-3080-graphics- card-n...](https://wccftech.com/nvidia-geforce-rtx-3080-graphics-card-now- available-699-us-where-to-buy/)

[https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_...](https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html)

</comment><comment><USER6> What is the big deal with waiting a little bit?

<comment><USER7> It's unlikely FE cards will become more available. Unlike previous generations, the FE is both likely superior to the AIB models and being sold for less. This created insatiable demand which many suspect Nvidia would rather not fulfill. Instead, the rumor is the FE cards were underpriced for marketing reasons while pushing buyers to the higher margin AIB cards.

<comment><USER4> Agreed. On a 1080TI, I'm 100% turned off by this launch. Waiting to see what AMD will bring, and/or if things shape up by around then.</comment></comment></comment>


Journey to the Microcosmos - <AUTHOR> https://www.youtube.com/channel/UCBbnbBWJtwsf0jLGUwX5Q3g <comment><AUTHOR> Thank you JshWright [1] for making me aware of this series.

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


Economics Is Not A Natural Science - <AUTHOR> http://edge.org/3rd_culture/rushkoff09/rushkoff09_index.html

<comment><USER2> Whenever I see arguments like this it makes me wonder if the author just doesn't like the laws of economics as we understand them and then proceeds to suggest that we should disregard them because they're inconvenient. For now there is a lot of scarcity and until that changes we're bound to our fate that we have to work hard to build a future for ourselves, our families, and our community. We've tried printing a lot of money to build prosperity to give us a short cut and now we're paying the price for that. We've also tried centralized planning on a massive scale (e.g. in the Soviet Union) and that didn't end well either. It seems like we need to get over the fact that we all need to work hard.

The notion that the market isn't reflecting our values is silly it seems to be the only reflection of our values. The title of this article is correct in that economics is not a science on the level of physics or chemistry but it's not exactly something you can just disregard entirely either.

<comment><USER3> While economics can't be disregarded, modern Keynsian economics bears as much resemblance to science as it does to religion. Its "Laws" are not laws in the sense that the Laws of Thermodynamics are laws, and the scientific method is not employed in developing them, because the scientific method is ill-suited to the subject.

The issue here is one of vocabulary, but it's an important issue nonetheless. Perhaps if we stop treating calling non-sciences "sciences," the credibility of real science will be improved, and the formerly unassailable opinions of economists will come under more scrutiny. I think that would be a good thing.

<comment><USER4> That's true, but Keynesians are just one school of thought. Austrians try to derive their understanding from pure logic; this isn't such a religion, but still isn't directly susceptible to the scientific method.

On the other hand, the Chicago school is certainly empirical, and to this extent, theories can (frequently) be investigated for proof or disproof.

<comment><USER3> I almost agree with you, but assert that "frequently" isn't good enough; the Chicago school's attempt to rely on empirical evidence is necessarily incomplete, just due to the sheer volume of data.

That said, I tend to subscribe to the Austrian school, which I believe we can agree does not qualify as a science.

<comment><USER4> Actually, I agree with your disagreement :)

It's simply not possible for Chicagoans (is that the word?) to test all their ideas. There are plenty of theories for which no real-world data exists, so they must remain as speculation for now.

And I'm extremely sympathetic to the Austrian ideas. I love Mises' _Human Action_ (at least the parts of it I've been able to get through so far). At the same time, I must acknowledge that the deeper one goes into such reasoning, the greater the chance for failing to notice that you made an assumption, one that may be wrong. So there's a necessity to get back to a touchstone of the real world occasionally.

It may not seem so, but it's easy for pure logic to go astray. Mathematicians pride themselves on logical rigor, but the fact is that many modern-day mathematical proofs are so complex that no one is _really_ sure that they're correct.

And I'm dismayed that the Keynesians have been crowing about multipliers of late, when all of our experience during the 70s has shown us fundamental flaws in the Keynesian philosophy (yes, you can easily have high inflation _and_ high employment at the same time!).

</comment></comment></comment></comment></comment><comment><USER5> This struck me as a ranting collection of unsupported claims.

Unfortunately, scarcity is, and always will be, a reality. And that is a fact hard-wired to natural science. Sure it may be possible to create an economic system that delivers "free software to everybody," but it could never go much further than that. We still need to live in houses and wear clothes and even build the computers that will be used to write all this software. All of these goods are made from scarce natural resources and no amount of tinkering with the rules of the economy will change that fact.

<comment><USER6> > Unfortunately, scarcity is, and always will be, a reality.

It's true that scarcity is a reality. It is far from certain that scarcity always will be a reality. Unless of course you define scarcity to mean that not everyone in the solar system can have exclusive use of more than 50% of the mass of the sun.

<comment><USER7> Scarcity will indeed always be a reality. Physical resources will always be limited compared to what we could use them for, so they will always be scarce. Time to do things will always be limited compared to what we may want to do, so we will always have to prioritize and take into account opportunity costs, time will always be scarce. And similarly for other "resources" you may consider (energy, attention, etc).

</comment></comment></comment><comment><USER8> "...with a set of underlying assumptions that have little to do with anything resembling genetics, neurology, evolution, or natural systems."

There are some fascinating studies that have come out in the past few years demonstrating that many of our economic intuitions and biases as humans actually have an evolutionary basis--basically, that the same behavior can be reliably elicited from chimps, birds, etc. Another thing that comes to mind is Tversky & Kanheman's work on prospect theory, which showed that humans are irrational in very predictable ways. Anyways, my point is that the essay's main argument, which is that the laws of economics are not universal or immutable, is only true in a limited sense. There is no universal truth about economics, but as long as it's us humans who are doing the creating and spending of wealth, we're going to continue to act according to some very deep-seated principles. It's these patterns of behavior that have resulted in markets, selfishness, and all the rest. So things are going to continue to look very much the same. It's sort of like the way a few axioms can give rise to an entire geometry.

</comment><comment><USER9> Economics is not a science at all, in its current mainstream form.

It is based on a set of hopelessly outdated assumptions about the world, and its current toolset is easier to throw away than to modernize. Especially since the economic academic establishment is focused more on self-defence and self-support than on the pursuit of knowledge.

Here is the list of things that are central to modern mainstream economics but are proven wrong.

\- the concept of equilibrium

\- efficient market hypothesis

\- modern portfolio theory

None of core economic concepts is supported by experimental evidence, so it is as much a science, as the "scientific Marxism" was.

<comment><USER10> Whether or not these concepts are really proven wrong, I would claim they're not that centeal to economics. The most central idea of economics is that there aren't enough goods for everybody to have what they want. Therefore, you have to distribute the goods somehow.

Some (more or less) fair ways to do that would be to give the goods to those that pay more, or work harder, or wait longer. There are other ways - stealing, cheating, haveing influential friends.

In any case, the scarcity simply won't go away by declaring economics unscientific.

<comment><USER7> Yes, scarcity, opportunity costs, and tradeoffs are the real core economic principles.

</comment></comment></comment><comment><USER11> So I see the title. I glance at the picture of the guy, and immediately my eye drops down to his bio

 _DOUGLAS RUSHKOFF is a media analyst; documentary filmmaker, and author. His latest book is Life Inc.: How the World Became a Corporation and How to Take It Back._

How the world became a corporation? WTF?

They lost me as a reader right there.

</comment><comment><USER12> Economics, business, finance is not a natural science. there is a youtube video where george soros explains why that is the case.</comment>


Raspberry Pi: A £15/$25 computer to inspire young programmers - <AUTHOR> http://www.bbc.co.uk/blogs/thereporters/rorycellanjones/2011/05/a_15_computer_to_inspire_young.html

<comment><USER2> With the built in 1080p h.264 high profile decode[1] for £15 this could be the world's cheapest media centre. It might not be enough to run boxee, but should this go to market at that price, a lightweight media centre distro would definitely make this something else.

I think I'd probably buy two or three for hacking on.

</comment><comment><USER3> I'm confused - he said its good for children who might not have a computer at home, but there is only an HDMI connection. What is the likelihood of a family not owning a PC - but does own a TV advanced enough for HDMI?

<comment><USER4> I think you'd be surprised how advanced and expensive some people's home entertainment systems are compared with some other parts of their lifestyle.

<comment><USER5> Absolutely agree. I help move some of the poorer families at our church, and I'm always astounded at where their money is spent. One family wore hand me down clothes and had little else in their house, but they had a 60"+ TV in their living room.

Most families have a TV, and just about every TV you can purchase these days has HDMI. I'm incredibly sad when my teacher friends describe how few of their students have computers at home to do their work.

</comment></comment></comment><comment><AUTHOR> The official site: <http://www.raspberrypi.org/>

</comment><comment><USER6> "In some ways, the project resembles the One Laptop Per Child (OLPC) scheme,"

"The volunteer team has to produce a better working prototype, has to show that it really can be manufactured for around £15,"

So yeah, it really IS like it... Especially in that their stated price won't end up being what they sell for in the end.

At the $25 stated on their homepage, I'd buy a few of them for playing with... Well, if it had an ethernet port, anyhow. A computer without an ethernet port isn't much of a computer these days.

<comment><USER7> Fortunately, URB-to-Ethernet adapters aren't very expensive.

<comment><USER8> Or USB->WiFi.

The mini-USB bluetooth adaptor that they currently have stock of in my local pound shop (for, not surprisingly, £1) (they look very like <http://cgi.ebay.co.uk//300388440707> so may be the same thing) work perfectly will under Ubuntu (at least on 10.04 and 11.04). So as long as the bluetooth stack doesn't eat too much of that small chunk of RAM and network speed is not a big issue you could use the PAN or DUN profiles for networking on the cheap, tethering to a phone or a desktop/laptop with bt and PAN/DUN support.

The official site doesn't say anything about power but as the image only shows USB and screen connections I assume it runs off the power a USB connection can provide, so it could probably run nicely off a pair of AA or AAA batteries. I can think of a number of play projects for monitoring (attach a cam, mic, temperature probe, and so on via USB) or display (attach a small LCD screen and/or a beeper and you've got a portable status monitor for some other project).

Something like this could be great fun for a nerd like me to spend a bit of time playing with. A bit like an Arduino for a software-only person. If they do hit the market at the £15 estimated or there abouts I'd certainly buy a couple, as I'm sure would a couple of my friends.

<comment><USER9> I assumed (from the video of Braben) that it was the other way around; it's powered by the HDMI connection to a TV. This makes kind of sense, since it's a USB _host_. It allows you to connect stuff like keyboards and mice, which a USB device wouldn't do.

What's ... interesting about that reasoning is that according the Wikipedia, HDMI sources at most 50 mA at 5 V, which is 10% of what a USB root port is expected to deliver (500 mA).

Perhaps it will require a power supply, unless you can find a power-efficient keyboard. Shouldn't be impossible I guess, keyboards are fairly passive.

<comment><USER8> But it also supports composite out - if you were connecting the display that way it would need power from somewhere else.

Perhaps the connections seen at the top of it in <http://www.raspberrypi.org/pcb.jpg> are providing the power - it looks like they end up plugging into the USB hub (if that is the case then it must be a powered hub, but a passive hub could presumably be used if the board were getting power from elsewhere like a battery connected to those contacts).

I've not watched the video yet (no speakers/headphones handy) so I could be missing something they show/say in there.

<comment><USER9> True, for composite you'd need a different power supply.

I agree that the wires in the picture look like they're coming off of the USB hub, and also that the hub looks like the powered variety.

So, probably they'll go with at least one, preferably many, ways to power the machine externally. I hope they leave HDMI only as an option though, since it's incredibly neat.

Oh, and I agree with others that they should look hard at integrating WiFi onboard.

</comment></comment></comment></comment></comment></comment><comment><USER10> I had a few vague thoughts:

* How is it powered? I assume neither composite video or HDMI can provide power to it (which would be cool), in the photo it looks like some it's probably powered from that ribbon cable that's soldered to the through-holes on the side. Would be neat if you could power it from (say) common older mobile phone chargers.

* I wonder which ARM SoC (system-on-a-chip) it's using,and what their open source support is like.

* Neat it has GPIO (general purpose input-output pins), I wonder where they are broken out? The row of 6 full-size through-holes in the photo look good, but it doesn't look there is much additional board real-estate for making other easy-to-solder additions.

* I know from working w/ WM8505 devices that ARM9 + 128Mb RAM is a fairly sorry combination for Ubuntu. I'd be surprised if they final device isn't built on something like Debian, they still support ARM9 (Ubuntu stopped after partial support in 9.04), have lower spec requirements overall, and their 'armel' package repository is huge.

<comment><USER11>
      How is it powered?

USB port. No, wait, that doesn't make sense, if it's supposed to be a USB _host_. And you certainly can't draw power from HDMI.

If only their site wasn't so uselessly spartan!

</comment></comment><comment><USER12> This would be ridiculously awesome. Gumstix sell similar form-factor ARM boards for $130. You can get cheaper ARM boards (pico-SAM9G45 for $70: <http://www.mini-box.com/pico-SAM9G45-X>) but they are much larger. This is only somewhat larger than a Teensy++ (<http://www.pjrc.com/teensy/>), which is $24 but is powered by a diminutive AVR chip.

</comment><comment><USER13> When you factor in the cost of a monitor or TV, keyboard, and mouse (plus any other peripherals required for your curriculum and the USB hub you would need to use them), I think that this $200 laptop is probably a more cost-effective solution: <http://www.norhtec.com/products/gecko/index.html>

</comment><comment><USER14> \--- it's similar (but very much different) to <http://www.MyLowCostPC.com> project, that, unfortunately, hasn't raised, so far, the founds to develop it \--- but the Raspberry Pi is much close to this one <http://humaneinfo.com/pc.html> \---

</comment><comment><USER15> Looking back at the computing lessons I had in secondary school, I learnt a lot but I think that having access to something like this would have been much more beneficial than using Access and VB6 for coursework (in 2007).

I hope they can actually get the cost down to something close to the £15 they say. Good luck to them.

</comment><comment><USER16> I've been wondering when this generation's Commodore 64 or Atari 800 would show up. It seems like it is the smartphone / iPod touch, but those just don't seem to do the trick for this type of stuff.

I do wonder what could be built while keeping the price under £60 / $100.

</comment><comment><USER17> Wow. This looks amazing! Have contacted them and said I'd like to buy some, and I wouldn't mind writing or porting some educational open-source games on them. Great, great idea.

</comment><comment><USER18> If you look at the specs. This doesn't include the cost of storage (SD card etc) which would push the price beyond the $25.

Still I am blown away by the size

</comment><comment><USER19> I want two or three. No kidding. Any possibility to upgrade RAM? When will this be avaliable?

At 20€ they're going to sell like crazy.

<comment><USER20> > Any possibility to upgrade RAM?

Probably not; they're likely using a SOC with integrated memory.

</comment></comment><comment><USER21> Why don't they do a Kickstarter for this? Or do they already have the funding lined up?

</comment><comment><USER22> Does anyone know if this could be made to run iOS?

<comment><USER21> If not iOS, then I'd expect Android. The XDAers would be all over it, I think.

<comment><USER23> I doubt that - Android is a memory hog, even my phone has more memory than that.</comment></comment></comment>


Tekuti: Blog publishing for GNU Guile - <AUTHOR> http://wingolog.org/archives/2010/12/13/meta-data

<comment><AUTHOR> Thought this might be interesting for those who are looking for Wordpress alternatives for their blogs, but don't have the time to roll their own.</comment>


'It Can't Be True' – Inside the Semiconductor Industry's Meltdown - <AUTHOR> https://www.bloomberg.com/news/articles/2018-01-08/-it-can-t-be-true-inside-the-semiconductor-industry-s-meltdown <comment><AUTHOR> This article made it easier for me to understand how various independent researchers could have arrived at the same discovery around the same time. It seems like Fogh was informally pushing the idea in private discussions, and then after Horn found the first PoC and notified Intel, other researchers got suspicious by the patches being submitted and put 2 and 2 together.

</comment><comment><USER2> "Last week, his worst fears were proved right when Intel, one of the world's largest chipmakers, said all modern processors can be attacked by techniques dubbed Meltdown and Spectre".

Seems like a sneaky reporting by Bloomberg - has Intel actually said that "all modern processors can be attacked by ... Meltdown"?

<comment><USER3> They're basically just regurgitating the sneakiness of Intel's official press release, which just said that all modern processors were affected and it wasn't an Intel-specific problem without clarifying in any way that the most serious problem was Intel-specific.

</comment></comment><comment><USER4> > Spectre fools the processor into running speculative operations -- ones it > wouldn't normally perform -- and then uses information about how long the > hardware takes to retrieve the data to infer the details of that > information.

After reading several in-depth analysis of this vulnerability and then trying to explain my non-tech friends what this is all is about (disclaimer: I'm just a developer and don't work with assembly, processors or security), I have to admit that it's a pretty awesome executive summary of the issue for a non- technical reader.

<comment><USER5> It's slightly wrong, proposal for improvement:

Spectre fools the processor into running speculative operations -- ones that it usually executes "just in case" and then throws the result away if it is not needed -- and then uses information about how long the hardware takes to retrieve the data to infer the details of that information.

</comment></comment><comment><USER6> > _Last week, his worst fears were proved right when Intel, one of the world's > largest chipmakers, said all modern processors can be attacked by techniques > dubbed Meltdown and Spectre, exposing crucial data, such as passwords and > encryption keys._

Intel was extremely lucky that Spectre was discovered at the same time as Meltdown, otherwise Intel would've been standing alone facing the industry.

</comment><comment><USER7> Having read the tech reports myself, the interviewee on the Bloomberg report seemed to be most sensible talking head I've yet seen in the media. While most of the press are shouting that we're all pwned and it's Intel's fault or Apple's fault, or whoever, I'm of the opinion that this is one _seriously_ difficult bug to exploit.

The speculative branch predication vulnerability seems to basically depend on finding a specific instruction sequence in the target code and then going to some extraordinary lengths to exploit it via a highly convoluted side-channel.

My first thought when I started to appreciate the technical details were that this was a Bletchley Park level of exploit, or "nation state" as the man in the interview said. And whilst it's completely possible that the exploit could be packaged up for script kiddies, it seems to me unlikely that someone with the necessary skills would do that, because the return would be too low. But states spying on each other: that seems a much more likely scenario for this.

<comment><USER8> I am not an expert in these matters in any way, but most vulnerabilities appear fairly difficult to exploit to me (as an application developer).

Isn't it usually the case that someone scripts (difficult parts of) the process and then it is a lot easier to exploit?

<comment><USER7> Yes, but my point is I think the exploit would be extremely difficult, and any agent capable of doing it would not be too interested in making it available to anyone else. Perhaps I'm naive, but it feels like the kind of thing government agencies would keep in their own armouries.

<comment><USER9> This

>I think the exploit would be extremely difficult,

and this

>The idea nagged at Prescher, so when he got home he fired up his desktop computer and set about putting the theory into practice. At 2 a.m., a breakthrough: he'd strung together code that reinforced Fogh's idea and suggested there was something seriously wrong.

Don't seem to match up. It may be hard, but even a security researcher doesn't bust a hard to exploit hole open in a few hours overnight. I believe that this was an area where no one was looking and now that its out in the open it will be much easier for others to exploit.

<comment><USER7> Yes, but again, proving there's an exploit is different to implementing it and actually stealing someone's banking details (which is the media definition of a scary hack). And you say "even a security researcher"... surely they are the guys most likely to be able to perform the exploit, in real life?

<comment><USER10> To prove the vulnerability is exploitable I'd ideally do ahead and do it. Has this not been done?

</comment></comment></comment></comment></comment></comment><comment><USER11> Is this Brian White for real?

Host: Who could exploit this vulnerability...? White: Those that have significant resources, for instance, Google... (mentions nation-states much later)

Nice FUD there.

White: what is important here, there are no known attacks ongoing right now...

Nice argument from ignorance there.

White: there is a lot of things we don't know but it reinforces two things to me, one is that increasingly the software we are operating is quite secure, coz now we are looking at kernel level problems...

Nice false cause fallacy.

<comment><USER12> You should argue the points, not label the fallacies. Would you rather White say "well there's probably attacks, but no one knows!"? This is just as incorrect as his statement, the problem being that /no one knows./

The FUD is real though.

<comment><USER13> Arguing logical fallacies is a waste of time and effort.

They are things that never should have been said in the first place because they're only made to deflect, detract, or support a nonsensical argument.

If you get caught up in trying to defend against these things you've already fallen into their trap.

<comment><USER14> People frequently use logical fallacies in good faith, usually because they're falling for one of the many permutations of the law of averages, using associative logic/magical thinking, or just have some axiomatic beliefs that they believe are somehow sinful/wrong to scrutinize due to their religion/loyalty.

<comment><USER13> Very true, I think the point still stands though that the best thing to do is to point them out rather than to try and argue them.. otherwise you end up legitimizing the discussion and going off on some irrelevant tangent rather than debating something worthwhile.

</comment></comment></comment></comment></comment><comment><USER15> Is it just me who now thinks there should be some gigantic holes in processor security, which were just never stumbled upon before, but now will?

Similarly how there was a long and happy life of flash plugin before it was recognized as a massive vulnerability surface?

<comment><USER16> I'm finding it hard to escape the suspicion that Spectre and (to a lesser extent) Meltdown is another failure of expertise on the same rough scale as the run-up to the financial crisis, the decades of bad or poorly-justified dietary advice, and the statistical problems in experimental psychology. On the face of it, it seems obvious that speculation + cache + protected mode was a combination likely ripe for exploitation, but the response seems to have been "nah, it'll be fine, probably"? And even if it for some reason wasn't obvious, it's now clear that it actually was the case. So the academic _and_ industrial _and_ bad-boy "security community" collectively more or less let the CPU manufacturers take a flyer on this for, what, a decade?

<comment><USER17> Speculative execution, out of order execution, branch prediction have been in processor designs at least back to the 1980s.

<comment><USER16> Sure. I had Meltdown specifically on the brain when I wrote that, sorry. It hardly needs saying that the preconditions for Spectre-like attacks being around for _several_ decades doesn't make the situation any less embarrassing. (That said, I don't know whether things like eg. increasing pipeline depths only made actual attacks feasible relatively recently.)

</comment></comment></comment></comment><comment><USER18> I didn't see any mention of weather Linus et al were on the inside of this. The impression I get from the article is that they weren't. But that must be wrong, right?

<comment><USER19> He does live less than 20 miles from Intel. They could have just driven to his house to let him know.

<comment><USER20> I can imagine Linus Torvalds happily working one bright California afternoon and gets a knock at the door. Two men say they are from Intel and need to discuss a serious bug with him. Wondering what could be so bad that Intel pays him a personal visit, he invites them into the sitting room, gets them some tea/coffee. Then they describe the problem.

What I want to know is what happens next? Is Linus (or "Mr. Torvolds" to me) silently shocked? Does he go on a LKML-style rant? Immediately whip out his laptop and code up an exploit just to see if it's actually true? All of them?

(Mostly I just want to hear him rant, I love his well-informed, opinionated take-downs of lousy ideas. Although it's probably a toxic environment to work it.)

<comment><USER19> One problem. Linus Torvalds lives in Oregon.

<comment><USER21> Which is where Intel is located...

</comment></comment></comment></comment></comment><comment><USER22> Headline hyperbole. Applications of high end CPU suffer. That AVR-equipped light bulb doesn't, nor do voltage regulators or DRAMs (though they could suffer if fewer devices are built...which won't happen)

<comment><USER23> That's actually an interesting accidental point.

How many embedded CPU's with speculation might be affected? You may say "none" but there are Cortex CPUs embedded into FPGAs (either directly or form of IP cores). What if enterprise routers have them? What if TVs have them?

I know many Cortex's aren't affected. The point is, anything that needs a "fast enough" CPU to benefit from OoO scheduling is possibly at risk, right? So while most embedded devices use cheaper, less complex CPUs, there are plenty that don't--as more powerful CPUs (which offer speculation) are becoming cheaper and cheaper.

A Raspberry Pi 3 has a Cortex-A53 (because they're cheap). They're luckily not affected, but those CPUs and faster are cheap enough to throw onto a $35 retail price computer. What's running in your $800 internet-connected 4K TV?

Per the Pi 3 explaination page:

>Examples of out-of-order processors include the Intel Pentium 2 (and most subsequent Intel and AMD x86 processors with the exception of some Atom and Quark devices), and many recent ARM cores, including Cortex-A9, -A15, -A17, and -A57.

[https://www.raspberrypi.org/blog/why-raspberry-pi-isnt- vulne...](https://www.raspberrypi.org/blog/why-raspberry-pi-isnt-vulnerable- to-spectre-or-meltdown/)

The A9, 15, 17, and A57 are all affected and used across TONS of devices in the world. They're very popular not just in chip form (as the primary CPU), but also in IP cores (inside an FPGA), as well as "secondary CPU" systems attached to FPGAs or other CPU's.

And that's just one brand of one type of CPU. Who knows what else is out there. PowerPCs are in everything. Even your dust-covered Gamecube has out-of- order speculation!

Here's a link mentioning that PowerPC CPUs are affected:

[http://tenfourfox.blogspot.com/2018/01/is-powerpc- susceptibl...](http://tenfourfox.blogspot.com/2018/01/is-powerpc-susceptible- to-spectre-yep.html)

So there goes all your PowerMacs. (And likely the Gamecube and Wii too!)

<comment><USER24> Unless these embedded CPU run third party code, they aren't really vulnerable. This is more of a general computing problem.

<comment><USER9> Many of these devices can run 3rd party code in user context (java script in browser). The big issue is they rarely have updates and many if not most are impossible to do a good security audit on.

<comment><USER25> Not many embedded devices run browsers. That leaves you no place to run the javascript.

</comment></comment></comment></comment></comment><comment><USER26> Not really a semiconductor issue. I doubt the guys working on analogue ICs are working overtime on this.

<comment><USER27> It's Bloomberg. They view things in terms of economic sectors. To them, integrated circuit design and manufacturing is all part of one sector.

<comment><USER28> Well said. I think that applies to any journalist by extension. Little do they know about the difference between analog and digital.

</comment></comment></comment><comment><USER29> The narrative sounds a bit like the story of Chernobyl. Except with less (for now) human suffering.</comment>


Live Closer – Cut the Commute - <AUTHOR> https://www.live-closer.com/ <comment><AUTHOR> Hi all!

I have released a new Android app to help people live closer to their interests. It's called Live Closer - Cut the Commute.

Please check it out and let me know what you think?

Google Play Store - [https://play.google.com/store/apps/details?id=com.niel.flutt...](https://play.google.com/store/apps/details?id=com.niel.flutter_material)

Website - [https://www.live-closer.com/](https://www.live-closer.com/)

Thanks</comment>


Jason Fried interview at Big Think - <AUTHOR> http://bigthink.com/jasonfried <comment><USER2> Good interview. He makes some good points on the cloud versus local security. Also, agree with his thought on interruptions and roles managers play in most companies.

I like that he sticks to his guns, he doesn't seem willing to compromise quality to make easy money.

</comment><comment><USER3> Very interesting interview. Completely agree about the whole interruptions and meeting segment. I do believe, though, that he's a bit wrong about advertising. Nerds don't like advertising; however, it works well for the masses. Your grandma, mom and sister aint paying for api access to a phone-- they'll click on a Godiva Chocolate ad, though. Sad, but true.

Overall, good interview.</comment>


The Universe's Ultimate Complexity Revealed by Simple Quantum Games - <AUTHOR> https://www.quantamagazine.org/the-universes-ultimate-complexity-revealed-by-simple-quantum-games-20190305/ <comment><USER2> > There are barriers to actually carrying out Slofstra's experiment. For one > thing, it's impossible to certify any laboratory result as occurring 100 > percent of the time.

Hmm, yeah, I thought there will be, like with all of those quantum tests trying to say if space is continuous.

> "In the real world you're limited by your experimental setup," Yuen said. > "How do you distinguish between 100 percent and 99.9999 percent?"

And that is exactly the problem with idea of discrete space. Once you try to pin-down those pixels, it appears universe is blurry before you can go down to that resolution. "In the real world, you are limited by real world".

</comment><comment><USER3> As a layperson, this feels like it's just passing the buck of infinity, doesn't it? "Given infinite time you could prove whether or not the universe is infinite" is almost a tautology. Is there some non-experimental way this could be used instead?

</comment><comment><USER4> I don't understand what they mean by N-dimensional state space. There are bijections between R^n and R for any n. What does it even mean, then, that state-space is N-dimensional?

If you can transmit 1 real number you can transmit any number of real numbers.

<comment><USER5> Where did they use the term "N-dimensional"? When you say _N-dimensional_ are you talking about what the article refers to as "finite dimensional"? If so, I think you're touching on something about the distinction between finite- dimensional and infinite-dimensional spaces.

For any finite n, the cardinality of R^n and R are the same.

I'm guessing that those bijections break down once you step into infinite dimensional spaces, but I haven't found a simple reference for this. Can someone verify this?

<comment><USER4> > Where did they use the term "N-dimensional"?

From the article:

> Researchers talk about a state space as having a certain number of > dimensions, reflecting the number of independent characteristics you can > adjust in the underlying system.

> For example, even a sock drawer has a state space. Any sock might be > described by its color, its length, its material, and how raggedy and worn > it is. In this case, the dimension of the sock drawer's state space is four.

That's meaningless IMHO, 4 is the same as 1.

<comment><USER6> Dimensionality is a type of structure that can be applied to quantities. Dimensionality refers to being able to find independent bases within a vector space. The study of vector spaces is a richer language than set theory. By allowing only cardinality to be meaningful, you are denying the value of dimensionality as an organizing principle. Therefore, its meaninglessness is tautological.

Your mistake is to think that 4 is the same as 1. It is not. You are putting a hand up to one eye and complaining that stereoscopy is meaningless. You are pretending that only set theory exists, and claiming that therefore linear algebra is meaningless. It is rhetorical nonsense!

<comment><USER4> > It is not.

Why? If I can describe a system with 1 number why invent 4 parameters to describe it? And why not 100? The choice seems arbitrary.

<comment><USER7> Because dimension is about the connectivity structure of a set of objects, not the size of the set of objects.

Sets with the same cardinality can have wildly different topologies, which describe the possible paths through the space, which in turn describes the nature of functions into and out of that space, as well as transformations and relationships within that space.

A line through the center of a sphere doesn't necessarily touch the sphere in a "4 dimensional" connectivity structure, _must_ touch the sphere in a "3 dimensional" connectivity structure, while a sphere doesn't even exist in a "1 dimensional" connectivity structure.

The main reason that we use "4 dimensional" spacetimes for particle physics is that there are three independent components of motion with respect to time, and so it makes the math simpler to allow for independent variation of those parameters to functions, instead of compressing them into a single encoded number, eg, derivatives wouldn't function correctly (or likely even be defined) on a single parameter model. An additional reason that we don't use a "1 dimensional" spacetime is because the product of a "1 dimensional" time and a "1 dimensional" space is a "2 dimensional" spacetime -- and we don't have any models of reality that lack either space or time. (Which is good: any model needs to explain both, if only as an emergent feature.)

Topology is about connectivity, not scale; dimension is a topological fact.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is a pretty good video describing Bell's Inequality - [https://www.youtube.com/watch?v=5_0o2fJhtSc](https://www.youtube.com/watch?v=5_0o2fJhtSc)

</comment><comment><USER9> Maybe a more concise model of the universe and physics can be bred via a genetic algorithm and other AI techniques. A couple of decades ago one researcher would bred algorithms written in lisp: trial and error programming. Lisp is good for that because you can slice and dice it and still get a runnable program (if the interpreter ignores/forgives missing parentheses).

Start with a simulation using the best known but complex formulas. Then use the genetic algorithm (mutation and cross breeding) to find the most compact formulas/algorithms that can mirror/predict the complex one. Who knows, the whole shebang may be reducible to something as simple as E = mc^2 or Newton's F=ma.

<comment><USER10> The whole shebang may be reducible to something as simple as 42, as we all know.

<comment><USER11> Isn't that the argument of Stephen Wolfram? That infinite complexity can arise from deterministic processes? The details may be wrong but I think that's the gist of it.

Many consider him to be wrong.

<comment><USER9> If and when the Grand Formula(s) is found, we'll know.</comment></comment></comment></comment>


An offline desktop app for WorkFlowy - <AUTHOR> http://blog.workflowy.com/2013/12/18/an-offline-desktop-app-for-workflowy/

<comment><USER2> I really enjoy using workflowy and have suggested others use it. What I'd like is an Android app instead of using the mobile browser.

Possible in the future?

For all those who don't know, workflowy is lists of lists of lists of lists. This is pretty much how I think.

<comment><USER3> Workflowy Agent does a decent job of being a 3rd party solution.

[https://play.google.com/store/apps/details?id=cz.karelklima....](https://play.google.com/store/apps/details?id=cz.karelklima.workflowy.agent)

<comment><USER4> Ugh. Really? It feels slow and is painful to use.

<comment><USER3> Faster than using the mobile browser for me.

</comment></comment></comment></comment><comment><USER5> Workflowy is one of the most useful and interesting products created lately. I was honored to have had dinner with the founders a while back ago, and they are an awesome team and I really wish them the best.

I've found sometimes, especially when introducing Workflowy to non-English speakers, the UI is a bit hard to learn, but once I show them the basics they figure it out pretty quick. The daily email diff is also invaluable.

My tip to you guys: lower the number of free items per month to get more users to pay!

</comment><comment><USER6> I love Work Flowy and I'm glad to see offline available although I always thought it worked offline and just synced when reconnected. How did it behave before?

I would pay for a pro account if they had a better iOS experience. Right now their web app wrapper type app ain't cutting it, they need something native. That's pro-worthy.

<comment><AUTHOR> It does sync if you go online, but if you close the page, you lose the data. Yeah, iOS app could use a lot of love.

<comment><USER7> What are you guys using to sync the app? I am creating an app as well and thinking of going with Chrome Package App.

<comment><AUTHOR> It is a Chrome Packaged App. This is nice, because it has built in auto- update.

The way to do a desktop app using web technologies that feels more "real" is with node-webkit: [https://github.com/rogerwang/node- webkit](https://github.com/rogerwang/node-webkit)

We did this project in collaboration with Google, and they were great. We wouldn't have done it at all otherwise. But, I still do want to create a node- webkit app, because I think that's what users want, a normal app, not some weird hybrid thing.

<comment><USER7> Yeah, I looked at node-webkit as well. The reason I was thinking of going with Chrome was because it's easier to push updates and to receive payments instead of rolling my own. I went for PouchDB to sync my data which will probably give me a few issues with the Packaged Apps since it uses eval in some places but I'll deal with that later.

</comment></comment></comment></comment></comment><comment><AUTHOR> This was built as a Chrome Packaged App. There are some plusses and minuses with them. The fact that you have most of a desktop experience, with auto- updating, is really nice. The fact that there are some critical differences, that are confusing to the user. I wish Chrome wasn't trying to invent a new category of app :/

</comment><comment><AUTHOR> We released this a while ago, but were waiting to announce it until Chrome released Mac support for its apps.</comment>


Mergedroid: a bot to reduce manual conflict resolution on GitHub pull requests - <AUTHOR> http://blog.gmaster.io/2018/02/mergedroid-bot-to-solve-conflicts-in-pull-requests.html <comment><AUTHOR> Tested with the Git repo itself, about 26% less merges need manual intervention: [https://gmaster.io/mergedroid/analyze/report/gmasterscm/git](https://gmaster.io/mergedroid/analyze/report/gmasterscm/git)

Still _alpha_.</comment>


The National Security Letter spy tool has been uncloaked - <AUTHOR> http://arstechnica.com/tech-policy/2015/11/the-national-security-letter-spy-tool-has-been-uncloaked-and-its-bad/ <comment><USER2> Quote from the article:

 _... the most intimate details of our lives, including our political activities, religious affiliations, private relationships, and even our private thoughts and beliefs ..._

Now that everything is digital, we as technologists need to raise the awareness and let people know the things that we know about data. There are ways to build products that don't require this unfettered information (FB login, for real? you need my FB account to use your silly web app?) or do not store unnecessary information.

"Freedom from tyranny" <\-- Please bake that into your digital products and services.</comment>


Ask HN: Which hand written diagram software do you use? - steve-rodrigue

I'm currently trying to make graphical explanations on how a software works and would like to make it look good.  6-8 months ago, I discovered an online app that was making it easy to create diagrams with a "hand written feel".  However, I can't find it anymore.<p>Is anyone here using that kind of software?  If not hand-written, what tool do you use to create graphical explanations, if any? <comment><AUTHOR> Not sure what type of diagrams you are looking for, but PlantUML has a handwritten 'skin' for the usual UML diagrams.

[http://plantuml.com/handwritten.html](http://plantuml.com/handwritten.html)

</comment><comment><USER2> Was it [https://www.websequencediagrams.com/](https://www.websequencediagrams.com/) ?

<comment> steve-rodrigue Yes, that's exactly what I needed. Thanks for sharing!

</comment></comment><comment><USER3> balsamiq ?</comment>


Pattern Matching in Ruby 2.7 (2019) - <AUTHOR> https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7 <comment><USER2> I personally love pattern matching (one of the best features of Elixir and Erlang for my taste) and would be screaming in enjoyment if something similar would be introduced to Ruby but I'm kind of meh about the whole ordeal.

This is experimental. Even when we upgrade production systems to 2.7 I'm still going to refute usage of pattern matching in the code (and it still boggles my mind why add experimental feature to a public release of such mature language as Ruby) since there is no guarantee we won't have to rewrite everything back in 2.7.4 or 2.8

The other issue I'm having with it is that it is connected to a case statement. It might be just me, but I'd dream of having this in function header definition instead of a statement which I rarely see in code and am not too comfortable to use as well (this might be connected to the crowd I'm usually working with).

<comment><USER3> Refinements was also at some point marked as "experimental", and jruby maintainers have at some point declared not wanting to support it. It's 2020, refinements are still here, and jruby supports them, even with all its imperfections.

I'm wondering: how would you showcase an experimental feature to the community? Cuz if you're saying "3rd party library", there were already 3/ 4 different pattern matching libraries.

<comment><USER4> > how would you showcase an experimental feature to the community?

How do other languages do it? Python has the PEP process for discussing design on paper, but I don't know how they handle experimental implementations.

<comment><USER5> Standard library packages can be declared "provisional": [https://www.python.org/dev/peps/pep-0411/](https://www.python.org/dev/peps/pep-0411/)

The PEP says "A provisional package is one which has been deliberately excluded from the standard library's backwards compatibility guarantees."

But there's no equivalent for language features, AFAIR.

</comment></comment></comment></comment><comment><USER6> I hope... this is not another feature that is added to Ruby at the sake of the functional programming trend.

Rubycop's author criticized[0] Ruby 2.7 for losing a direction/vision where Ruby should go (which sparked controversial operators that were quickly removed).

Most of them looks like, at least to me, trying to fit a functional programming features in an inherently object-oriented language to be 'hip'. Like... the pipeline operator which had strange semantics.

I hope this isn't one.

[0] Ruby, Where do We Go Now?: [https://metaredux.com/posts/2019/12/06/ruby- where-do-we-go-n...](https://metaredux.com/posts/2019/12/06/ruby-where-do-we- go-now.html)

<comment><USER7> Why can't pattern matching fit in OOP? It's not really functional, despite being in most functional languages. It's just sugar for more lengthy imperative conditionals and unpacking.

<comment><USER8> Indeed, Objective Caml is a multi-paradigm language with pattern matching.

<comment><USER9> And Scala. The poster child of oop + functional

</comment></comment></comment></comment><comment><USER10> Yes! This is fantastic! And, in typical Ruby fashion, I've learned more about pattern matching from these slides than anything else trying to explain it that I've encountered before.

I'd definitely vote in favor of the pinned expressions. One of the things I like about Ruby is how pretty much everything is an expression, and you can replace pretty much any symbol with an expression.

</comment><comment><USER11> I mean I get it - but, it doesn't feel like ruby to me. It lacks clarity. Maybe it's just me, but i'm not psyched to see this. It feels like a scope creep of some sort.

<comment><USER12> The ^ operator is maybe a bit confusing, and that Hashes need to use symbol keys to work here is just another example that symbols are a mess. But did you see the JSON-matching example in the slides? That made it totally clear to me how this is supposed to work and what the advantage of having this would be. Very powerful, very useful, and the code in that scenario is much clearer.

</comment></comment><comment><USER13> Is it just me or does the syntax seem very confusing? Compared to other languages with pattern matching (ex OCaml) it seems a little clunky. I'm not familiar with Ruby though, does this syntax mesh with the rest of the language though?

<comment><USER14> It mostly does, but they talk about part of that actually, and why they had to use and extend `case` rather than introducing a new reserved word (like match).

And to your point, I think... Some of these features like pipes are really cool to see in languages like Ruby or JavaScript, but holy shit without true immutability some of this seems like a nightmare to emulate (like not being able to match on method calls if I remember correctly) in an traditional OOP runtime/vm.

Fuck my life, and this is strictly IMHO, but pipes seem totally worthless when you have to worry about the object and not the data...

<comment><USER15> In a language like Ruby and most imperative mutable ones pipelines could be a nice syntactic sugar for constructs like this

      a = f1()
      a = f2(a)
      a = f3(a, b)
      a = f4(a, c)

It becomes (let me use Unix pipes)

      a = f1()
        | f2()
        | f3(b)
        | f4(c)

OO idiomatically handles that by making each method return an object with the status and at least the next method to be called

      a = f1().f2().f3(b).f4(c)

However unless the class of that object is something standard and already available like (example) Ruby's Enum, it's a pain to code it (and understand it later on) and people go for the shortcut of writing the code at the beginning of my reply.

</comment></comment></comment><comment><USER16> ...semi off-topic, but man, _how I wish Ruby had won the hearts of data- science and machine-learning practitioners instead of Python or R!_ It looks like such a wonderful and extensible and programmer friendly language compared to all the others in the "multi-purpose dynamic 'scripting' languages class". Every time I read Ruby code it almost puts a smile on my face, it seems such a joy to write and think in, _so sad it didn 't break out of its niche much :(_

<comment><USER17> Same! I never used Rails much but did learn Ruby and used it a lot for the kind of stuff people tend to use Python for nowadays. Data crunching, prototyping, sciency stuff.. It's excellent for that.

I mean, Ruby is so much more elegant and consistent than Python, I'll never understand how Python became the more widely appreciated language of the two, especially with the effective head start that Ruby had through Rails' popularity.

<comment><USER4> > I'll never understand how Python became the more widely appreciated language

IMO syntax is a major factor. Python looks like pseudocode, while Ruby looks like Perl.

<comment><USER18> Genuinely curious, what makes Python look more like pseudocode? The use of colons?

Regardless, I've always thought that Ruby is more like pseudocode because with Ruby, I'm able to worry less about syntax and more about what I'm trying to do. Maybe it's just me?

<comment><USER4> > Genuinely curious, what makes Python look more like pseudocode? The use of > colons?

I used to think it was significant indentation, but if you look at the pseudocode on e.g. Wikipedia, there is no significant preference for either whitespace or begin/end.

Therefore, it's probably things like `if value in my_map` vs `if my_map.contains(value)` and `[x * 2 for x in my_list]` vs `my_list.map(x -> x * 2)`.

<comment><USER16> \- `if value in my_map` is a one off special case - ugly, nasty, hard to figure out how to extend it (what if I invented my_map to have special logic for `in` ...I need to search the docs for a magic method called for that operator ...if I even know for what keywords to search, ugh)

\- `if my_map.contains(value)` is nice and consistent, easy to search for the code of the .contains method and figure out what it does

\- `[x * 2 for x in my_list]` another ugly special case syntax, instead of general purpose higher order functions, even in Python while a `.map` method could've been easily added to dictionaries too, we had to wait years (decades?) for dictionary comprehensions to land in the language, and it's another damn special syntax one has to remember. ugh! - a sane solution not involving higher order functions usage would've been to make everything in the language an expression and have `for ...` expressions return lists or dictionaries or sets, still better than the fugly "list comprehension", I really can't comprehend why people like them

\- `my_list.map(x -> x * 2)` nice, clean, and general. If I work with a weirder list like thingy and want to see the logic of mapping, I can easily jump to the definition of it's `.map` method

Most pseudocode is _ugly_ and _ambiguous_ and _actually hard to read without special context from the text around it_ because you're never sure what something _actually_ means, can't easily "jump to its implementation code and read it". Same like natural language, hard to non-ambiguously understand and _ugly as hell_ in technical context where math and diagrams work 1000x times better.

I can't understand _why people who are trained in math, physics and /or other sciences would ever choose something just because it "looks more like pseudocode"..._ To me _pseudocode_ rhymes with... _pseudoscience!_ It's never what you want when you can choose something better.

</comment></comment></comment></comment></comment></comment><comment><USER19> I'm 80% in favour of this change. JSON parsing is tedious and this looks like it will help pretty cleanly on something that rubyists do quite frequently. I could also see myself using this pretty frequently elsewhere.

That said, I do see some minor drawbacks:

1\. I personally find the case statement in ruby confusing. It uses === which I find hard to use without stopping and thinking.

2\. I don't understand why the bitwise or operator is being used for the pattern matcher or. Was it not possible to just use `or` itself?

3\. Deconstruct keys reads a bit weird. Easy enough to understand and remember, but I can imagine being new to ruby or programming and finding the pattern matching pretty hard to follow.

</comment><comment><USER20> Do we have something similar in python, if not I am going to make one.

<comment><USER21> There is this: [https://github.com/grantjenks/python-pattern- matching](https://github.com/grantjenks/python-pattern-matching)

<comment><USER22> This project is just someone wrote a proposal or something. Here is actually implemented pattern matching as a library [https://github.com/santinic/pampy](https://github.com/santinic/pampy)

</comment></comment></comment><comment><USER23> I used both Python and Ruby extensively for a while, love both, but Ruby was just nicer to code in. The problem for me was the much smaller ecosystem, especially for anything numerical/data related. Numpy was, pre Pandas days, the killer library for the type of work I do.

</comment><comment><USER24> Is pattern matching implemented sequentially in order of declaration in other languages? My naive brain took the pattern resolution to be based on some kind of map of types and values to implementation.

<comment><USER25> It is, from top to bottom.

</comment></comment><comment><USER26> ML is changing the world.

<comment><USER27> Wrong thread?</comment></comment>