skysight-inc/HackerNews huggingface dataset:
So when I read this, "Later, however, the business needs to start tracking the royalty paid to the author of a book separately from the rest of the price." I felt the author is conflating "inheritance" with "requirements".

I don't think anyone would argue that if you design system, and then change the requirements of what the system should do. You have two choices; build a new system that meets both the old and new requirements or patch the old system to kind of meet the new requirements.

And I get that this critique is looking at the example perhaps more literally than the message, which is that it is hard to make systemic changes to object oriented systems, but that criticism of OOP is well trodden. Bjarne and others will tell you that it is easy to make reliable and testable additions to an OO system and that is its strength. Refactoring such systems in the face of new requirements will always be hard, and yet the argument goes that if you do so correctly you will be able to re-use tests from the previous system to verify it still works the way it did and write new tests to show that it works the new way as well.

The example of books and movies is a good one because shows how initially the thinking that every item has a price, but what should have been considered is that some items are of a type 'media' that has other attributes that regular items don't. If you are familiar with the joke[1], it is the dichotomy between a toaster and a "cooker of breakfast foods".

[1] http://www.danielsen.com/jokes/objecttoaster.txt
src: http://www.heise.de/newsticker/meldung/Robotik-DRU-der-auton...
The headline can be misleading, these are not active real-world socket connections. According to the article they are mostly idle, with pings every five minutes.

For comparison, Chris McCord (the creator of the Phoenix framework) did some work on getting 2M concurrent connections with real-world(ish) data being broadcast across all nodes: http://www.phoenixframework.org/blog/the-road-to-2-million-w...
Uh… no? Unless you really customize all the options I guess. There's no reason to rebuild the exact same package you'll get from the repo.

E.g. I install all firefox's dependencies from pkg, then I build firefox from ports with the GTK3 option. Same with packages that use openssl (I use libressl). Never had any problems with that.
For talking about arXiv papers and recommending them to others, there is also: https://scirate.com/
Your website is interesting but a tad hard to follow due to the "organization" scheme. ;) So, what OS project did you work on in that first sentence and do you have a link to it?
Scala.js does a much better dce than Webpack, or any other JavaScript optimizer (including Closure). It does it at the method level (not top-level function/class level), and can also leverage the type system to do a better job at it. So yes, it needs to be solved at the Scala.js level.

Scala.js also performs whole-program optimizations of the code, besides "simple" dead cole elimination.
The libertarian worldview obviously exists, but it exists to inform the traditional oppression-based (left) or barbarism-based (right) fear-sets.

It doesn't seem sustainable as a politics. Liberty as a value is not a thing competitive with fear. There are generally much (many?) fewer narratives that illustrate why liberty is important than why oppression or barbarism is. But there will be synthesis of libertarian concepts into those ideas.
Do you want Skynet? This sounds like the start of Skynet...
This is really interesting.

I've been turning this idea over in my head every now then as a mental exercise (bus ride material). One, it validates my reasoning that rigid single-inheritance trees are a bad representation.

What my mind kept turning to was the possibility of Neanderthals and early humans interbreeding yet being different species that had a common ancestor. It isn't really a tree in that case.

Two, this comment gives my past time more food for thought!
Any functional language? Certainly Erlang works this way, but I'm less sure about others.
If the attacker can modify the kernel then I think you have already lost the battle. This script, as it says in README, checks that the files in /boot have not been altered between reboots.
AAAAAAAAAAAAAAAA

Chris is referring to this: http://rationalwiki.blogspot.co.uk/2016/03/mysql-database-pr... which I eventually resolved by carefully hand-exporting the corrupt table to CSV and reimporting it. I think we lost one revision from 2008. I HATE MYSQL SO MUCH.

(unfortunately, MediaWiki is one of those things where MySQL or preferably MariaDB is the only realistic option - other DBs are hypothetically supported, but in practice not well enough unless you want to do the heavy lifting yourself.)
Very interesting presentation, thanks for sharing it.
Yeah it looks good for realtime, but i'd like to use rust and gnu/linux/posix utilities. Do you know much abt filesystems on freertos?
Subclassing isn't evil. Subclassing which violates Liskov Substitution, now I'm listening.
Interesting. So will this for anyone brave enough to use SPARK and Rust:

http://ironsides.martincarlisle.com/

IRONSIDES uses SPARK to show freedom of exceptions or single-packet DOS. A translation to Rust would probably preserve most of those properties. I also thought a parallel development between Ada2012/SPARK and Rust would be interesting to see if one set of checkers catch something another misses in same piece of software.
I think it can be rationally traded off, so long as everyone is clear about how to measure and what the decision criteria are.

I think that for products with long release latency (ie the kind of shrink-wrapped software Microsoft specialises in), the accounting very much works against TDD on these findings, because the incentives are to front-load features and catch up on bugs with service patches. If you miss your release window, your feature will be bumped by years.

For products with continuous deployment, the economics shift and invert. Blasting out code willy-nilly will eventually cause engineering to steadily be diverted to firefighting. Eventually forward progress stalls.
If they're smart they'll just find a legal reason to fire you. Ever surf the web for personal reasons at work? Every use your personal mobile on work time? There are so many rules that people violate every day without repercussion until the company needs a reason to get rid of them.
We have a London office. Email me and I can probably ask if they'll let you visit.

(They'll try to recruit you, but TANSTAAFL).
http://www.quotes.net/mquote/128463

[Charlie Brown picks up a rock from the beach, and throws it into the water]

Linus:
Nice going, Charlie Brown. It took that rock 4,000 years to get to shore, and now you've thrown it back.

Charlie Brown:
Everything I do makes me feel guilty.
For those who don't recognize the name, the author, David Gelernter, was one of biggest AI theorists during the PC era. He published a 1991 book Mirror Worlds which basically suggested the now uncontroversial idea that "software is eating the world". At that time software was just for accounting and video games so no one paid attention.

However a math PhD and former Berkeley professor named Ted Kaczynski was one of the few people to take those ideas seriously. He thought the idea of computers controlling everything was terrifying, thought we were already too absorbed in technology and that as a group we need to make an intentional move away from otherwise innocuous-seeming technological advancements.

He tried to publicized these ideas by mailing live bombs to Gelernter and other researchers, and was nicknamed the "Unabomber" (UNiversity BOMber). The public decided he was looney and we like our Windows 95 just fine and we're mostly OK with slowly becoming cyborgs.

Interesting to see Gelernter tapping the brakes.
I'd say it's less 'smart' and more due diligence. I agree that you should know at least SOME alternative options to things. We're seeing more tech Managers/Directors/VPs/whatever that used to be engineers or architects and I think we'll have more people that fairly recently (or still do) had their hands dirty in project work. The new wave of leaders are much more technical than the previous wave of leaders. But the problem still remains that once you've been away from the daily low level work, things move on without you. There will always be some disconnect. I think the new wave of leadership will better know that and hopefully respond a little better by having people propose alternatives to them, personally finding alternatives, etc.

I know that when I don't have the knowledge in a particular area, say payment processing, and I can only think of a vendor or two off the top of my head, it becomes someone's assignment to bring me the pros and cons of the major vendors and maybe a couple of the upstarts- including getting on the phone with them if necessary. The ultimate decision will be a combination of that person's recommendation vs. any business problems that may prevent a relationship (say some certification or SLA forced on us by the client).

There is also the psychology aspect of a well known name. They must be a well known giant because they are good, provide the best, or provide something the others can't- right? Now, WE know that mostly Oracle doesn't do these things. There are a few cases where they have kind of engineered a way to be the only one who does the thing (then got someone to make it a requirement in their project). We know they're generally abusive, and awful to work with. A not very technical decision maker just knows Oracle is a big name. Just like SAP. I'm not saying it's an excuse, it just is.
And they are completely correct. Even if people aren't able to bypass the HDMI encryption (which they will), a camera recording at 60fps at the screen will produce a near perfect copy, certainly 'good enough' for most people.

I do still see movies in theatre on occasion if the movie is better experienced in a group. Movie theatres need to start showing live events and offering better concessions, and alcohol. essentially become sports bars but with exceptional viewing quality.

And bars are currently eating their lunch, expanding in to other markets than sport that would be well suited to cinema venues. A number of bars in my area offer nights where they stream pro video games and they are regularly filled completely. Same thing with live streams of plays/operas which repertory theatres in my area have started to do, albeit with projectors that aren't nearly as good as your local cineplex.
> Oracle DBAs are very expensive, compared to how much you can pay an equivalent skilled DBA who knows Postgres or even SQL Server.

Note that sensible Oracle consultancies are openly offering similar support for Postgres. This can occasionally be useful ... assuming they can realistically supply that level of support e.g. when a PG fills its disk or various other disasters happen. (We've been testing our PG clusters at work with various test disasters and making sure we can recover from any of them with as little faff as possible.)
http-kit comes to mind as well: http://www.http-kit.org/600k-concurrent-connection-http-kit....
Facebook Has Failed Artists and Music Fans Alike
Show HN: Golden Phone, answer questions on voicemail
There's always something to interact with. If you had a conscious being made out of star systems, it wouldn't meaningfully interact with anything within our lifetime, but over billions of billions of years, it would presumably shift entire galaxies. The rockputer just needs inputs that operate at its own scale, like the shape of the coastlines it's expanding into, information about geological processes, another rockputer competing for territory, and so on. Alternatively you could simulate a whole universe using these rocks, and feed simulated inputs to the being.

Of course, part of the difficulty of imagining a conscious rockputer is that it's also pretty hard to imagine its inputs :)
Agreed, I've had similar difficulty. I ended up using http://makeitpersonal.co since it appeared to have decent coverage of most of the songs I searched on.
Why not just bake the various Price components right into Item, besides the get_price action? Every Item should have a price (ie the get_price stub), so I don't think it would be bad design to include it.

If Item includes a Price object that has all the possible Price properties, it could be easily modified as specs change.
We have more employed people than ever, yet we have regressed in terms of %of population between ages 25-54 participating in the workforce. We have lost 4,000,000 manufacturing jobs in 15 years, despite wages languishing (in real dollars) and productivity increasing.

We have gained jobs in health -- this is to be expected with the aging boomer population.

We have gained jobs in transportation/logistics -- this is to be expected given all the stuff made in Chinese factories we buy from Amazon. Very soon these jobs will be automated, trucks will drive themselves and warehouses will stock themselves.

Worshippers at the altar of Free Market Economics (A Real Science) can wave around normalized, adjusted graphs all they want but if society doesn't figure out what to do with the people we graduate from high schools and colleges or layoff to pad quarterly earnings, we are going to have some serious issues on our hands in the next decade -- if not sooner.
A little OT...but does anyone have insight into the historical reasons of why inheritance seems to be the default entry point into teaching/explaining OOP and classes? I remember learning all about inheritance in school but only tangentially about interfaces. And looking at explainers/tutorials in the wild, it seems that many/most start out with the classic Duck > Animal or Thing > Car examples.

I want to chalk it up to inheritance being an inherently easier thing to think about in real world terms, with a name that has easily-understandable connotations, even if some of those connotations are probably harmful in the way they muddle up via leaky abstraction when thinking computationally. Whereas with mixins/interfaces...those terms have never made immediate sense to me.

And yet when it comes to implementing OOP, mixins/interfaces seem so profoundly more suitable as the go-to strategy that I wish I had learned exclusively about them, with inheritance being left for edge cases. Maybe I just had a bad curriculum or bad memory when it came to the lessons about interfaces. But if there is a stronger focus on inheritance when it comes to teaching OOP, is it due to the design of C++/Java? Or just the practicalities of teaching OOP? Teaching about classes seems like a good first step in teaching OOP, and teaching about inheritance requires fewer new concepts/syntax from defining a class. Whereas mixins/interfaces require introducing the concepts of modules.
The problem is that the "worse off" parts tend to depend heavily on perception and the "better off" parts are acutely measurable. It's quite difficult to even frame a comparison of living now and living 50 years ago. It's impossible to even explain how food alone has improved in 50 years.

Part of what Anthony Bourdain does is "food archaeology" with traditional dishes that are now coming back into cuisine. So maybe 250 years ago , food was better if you had it.

A thousand tiny torts over status-based "microagressions"* don't add up easily to equal severe food uncertainty.

*lousy word choice if there ever was one... I depend on you as a reader to pick your own replacement.

Part of me thinks people are bloody-minded animals and most of this lives only in their head. But it's based in "is this all there is" and that's quite real.
His example is bad.

class Item
def add_to_cart(cart)
cart.increase_total(this.price)

The fault is really that Item.price isn't defined, so it can't be assumed to exist in Item.add_to_cart. When he later adds get_price to all subclasses, he is really just fixing that bug.

In a language like Java, this problem could never have arisen in the first place, since the compiler would know that Item.price didn't exist.

In a language like Ruby, it isn't a problem. Ruby doesn't expose "fields" and methods differently, so the consumer of Book doesn't need to know that the price "field" is now a method that computes the price. That's proper abstraction.

His interface-based solution solves nothing, because exactly the same sequence of events would have unfolded if he'd originally been using an implicitly defined price field. If he then needed to make that a method, he'd then need to define an interface for get_price and then make all the things that should be Priceable implement that interface[1].

[1] And this bypasses one of the principle advantages of Go's interfaces. You don't say that a type implements an interface; types automatically implement an interface simply by having the appropriate methods.
I'm in finance. As a developer, I get hugely variable company performance dependent bonuses (10-30% of salary). Executives get a similar deal, but the percent bonus doubled or higher.
> The League of Nations had that as it's primary function [1]. Aside from some initial (heaveily criticized and somewhat dubious) successes, it failed.

One reason it failed and the UN has succeeded is that one of the most powerful countries, the United States, didn't participate in the LoN.
That's a pretty neat approach, maybe I should do something similar. Originally I color-coded the words (based on frequency) but having a gradual spectrum applied to the edges feels a lot more intuitive.
Touch is spatially lo-fi, but the numbers show that humans favor the obviousness of touch over pointing device precision. And then you have the dominance of laptops, where most users are relying on a touchpad to hit tiny targets, the worst of both worlds.
Then you're a minority of one. Most people living in cities these days are irrationally pouring typically between 50% to sometimes as much as 75% of their income into rent, paying for the privilege of holding onto expensive real-estate they will never be able to afford rather than save money... they'll never be able to retire or have anything else more permanent.

You're making some very broad, self-centered assumptions about quality of life and perception of other people. Not everyone needs lattés or 3500 sq ft / 325 m^2.

No one cares to live in the Saskatchewan boondocks apart to get away from the city, so why did you bring that up irrelevant strawman?

Some people also value independence more than being perpetually-indebted to a company (non-single-payer health insurance / rent).
> short, generic function names

fit the length of the functions. Long names might be indicative of some deeper problem with coding style.
>but Scala still has subclassing

C++ has goto and labels, and although they are not needed for the most part in modern C++, they are still there. The key here is the programmer does not need to use them.
To elaborate slightly further, char in Rust is four bytes, as it represents a Unicode Scalar Value. So the chars iterator isn't yet stable because it's not clear what should be done in the case of a read of a partial char. This is, of course, fixable, there's just a lot to do, and that's the question for this specific API.
I think the problem is that, typically, all the various Price components are not known a priori when Item is first implemented. They become known or realized as more Item subclasses are created. If a software dev group actually knew all of their future requirements before implementing a framework...well, a whole lot of software engineering problems would be mitigated :)
> If the attacker can modify the kernel then I think you have already lost the battle.

By that argument, if the attacker can modify the contents of /boot then you've lost and this doesn't buy you anything.
Create your own app for online business
So... I'm biased because I did a bootcamp.

I think the comparison of bootcamp vs 4years CS degree is not very apple to apple, because well, you compare on 1 side people who almost "discovered" programming 3 months earlier to people who have been studying it for 4 years + most of the time have had internships etc.

What I can say tho, is that, for junior positions (I guess one of the points of the article) those bootcampers can be 1. very good and productive, and because of the nature of the bootcamps, 2. usually very motivated and eager to learn, get feedback etc.

So if you are willing (and have resources) for some extra mentoring, bootcamps can be a very good additional pool for hiring (since hiring engineers is very hard is most places) and can be very good long term for your company.

I joined a YC startup after my bootcamp and continued to work my ass off there for a year (during work, and after work to continue to learn CS concepts etc.) and I think I can say I was successful there. I had good mentoring despite our size (3-4 engineers at most) but I eventually became a good asset to the company.

After 1 years, the company was sold and I needed to find a new job. I did well on multiple interviews, both startups and big cos (facebook and co) and am now very successful at a top startup in the bay.

You just need to expect what is expectable - I remember when I did my bootcamp, I was never promised to get a CS degree in 3 months - I was promised to learn the basics I would need to 1. be hirable at a junior level and 2. learn how to learn, to be able to figure things myself and continue growing.
That's what I got from it.

I think everything's the same - if you are motivated and driven to be successful, you'll be successful, if not, cruising through both a CS degree or a bootcamp won't do it.
I've interviewed hundreds of people, from bootcamps, new grads, masters, phds, experienced people, and people from each background have done from bad to great.
An interesting aspect of Haskell is that it tries really really hard to avoid subtyping, relying instead on other mechanisms. This talk by Simon Peyton Jones touches on it from minute 40 onwards: https://imperial.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?...

"In a language with generics & constrained polymorphism, do you really need subtyping too?"
Visual maybe just due to screen size, but audio? No way. 5.1 on a even modestly specced surround receiver is at least as good as any theater.

There are fewer and fewer reasons to go to the theater. Why would you pay upwards of $10 for a ticket, $20 for a popcorn and soda to sit in someone else's filthy chairs to be advertised to for 30 minutes straight and listen to people chatting and children screaming?

Unless you're there for the social aspect, i.e. with friends, the value just ian't there.
> I'm all for solid negotiating tactics, but if you consider telling an untruth, you are not welcome on my team.

Do you seriously think your team is made of 100% people who only ever tell the truth?

Let's get realistic, we all tell lies here and there. What matters is what you lie about and why you do it.

I couldn't care less if a developer joins my team and lied to get a higher compensation. All I care about is whether they are a good hire and if they'll do good work.
Do these theater chains not realize that another company has been doing this for several years?

http://www.primacinema.com/
The first implementation was weak from the start. By exposing the instance variable directly, you threw away all the power of inheritance and guaranteed a future meltdown. If you had correctly implemented setters and getters from the beginning, you would have been perfectly prepared for what would have been a minor and appropriate change to the pricing scheme that are the whole point of encapsulation. You wrote procedural code using an object-oriented language. Don't blame a fundamental design approach for your lack of good implementation.

"a lot more code" - Really?