skysight-inc/HackerNews huggingface dataset:
Github has traditionally been a Ruby shop and once you are a Ruby shop, you can use Ruby to do anything that you could use Python for so there is no need to touch Python other than may be data science. That means they would have built a lot of expertise in Ruby and comparatively very little with Python. So it's understandable that they are able to add support for Ruby before python. It must have been easier to do for them and also been much easier to "dog-food".

That said, I'm sure Python, Go, Rust and other languages will be supported very soon.
> emphasize governance standards like sustainability, executive pay, and diversity

What would a company gain by choosing to list on here (over other far more established options) while having to commit to these additional rules? Access to a group of investors who don't complain too much about quarterly profit objectives?
Can that handle column renames? Most schema-to-schema diff tools can't tell the difference between a rename and a delete/add.
Not in Virginia State govt service. It impacted PTO, but not base pay.
It's the social network for...

function Ballmer() {
while (true) {
print("Developers!");
}
}
One problem would be that we don't have syncing that works ACROSS browsers from different vendors. That might be easy to implement technically, but getting competitors to coordinate is going to be a tough battle.

Then there would be little UX issues such as not knowing the name of the user for using in messaging within the apps. You'd need a "Complete your profile" form instead of a "Register" form. However, I do concede that even that would be an improvement over current systems.
Right, both have sort of C-style syntax. That’s pretty much the beginning and end of their similarities.
For what it’s worth I did this for years, without issue. It’s perhaps a little slower, but not much when you are just cleaning up. It takes a little practice to get good at maintaining the line, and you do need to care for the blade (not a lot of time, but required).

At first you will be slow, as worried about cutting yourself. You probably won’t actually cut yourself until you relax about it after while...
Uber is totally banking on driverless cars to lower to cost per mile to near nothing.
Exactly. Go is benefiting from years of hard lessons learned in other stacks such as Java. Having super experienced GC builders involved early on resulted in a language and libraries that work much more synergisticaly with the GC.

It's better to dodge a problem, than to have a baked in problem that requires lots of really smart people to make work arounds.
most people don't know how to debug prolog because they never got taught her. it has debugging facilities, even GUI debuggers.

http://www.swi-prolog.org/pldoc/man?section=debugger

here's an example of a trace from a CLI section.

[trace] ?- animal(X).
Call: (7) animal(_G1588) ? creep
Call: (8) is_true('has fur') ? creep
^ Call: (9) format("~w?\n", ['has fur']) ? creep
has fur?
^ Exit: (9) format("~w?\n", ['has fur']) ? creep
Call: (9) read(yes) ? creep
|:

Most don't understand the standard 4-port prolog (call, exit, redo, and fail.) making it hard to grok what's going on.

http://www.swi-prolog.org/pldoc/doc_for?object=section(2,%27...)
Curious, how do you deal with renaming fields or tables?

This is a (minor) pain point for traditional migration systems.
> By comparison, in the public sector & military, everyone's is public, and on top of that there is no salary negotiation.

There is some salary negotiation in the public sector, especially at the executive level; now, even those positions that are negotiable may often (but not always) have narrower constraints than a private employer would have in practice, but not all positions in public service have strict salary bands with objective rules for placement within the bands.
>However passengers are never trained.

That depends on the aircraft type though. Helicopter passengers that are traveling over large bodies of water (e.g. offshore platform workers) are usually required to go through emergency training. In many jurisdictions that includes escaping a sinking helicopter in a (physical) simulator, and that's a rather unpleasant procedure, to put it mildly.
I stayed in an AirBnB recently and the owner installed a smart lock while I was there. Assigning a unique code for each user is the entire point; you can invalidate the code once their lease is up, rather than worrying about the keys getting returned or copied.
> eliminated the majority of HN darlings (JS, Python, and Ruby)

Those were the darlings ten years ago (along with CoffeeScript and Clojure). The pendulum has swung back towards types and now the hip ones are Go, Kotlin, Swift, TypeScript, and (to a lesser extent) Haskell, Hack, Reason, and OCaml.

> Java, UML, SQL, and everything else that was used in 199x.

There was the whole no-SQL fad, but lately, even here, I see a lot of people re-discovering and advocating the relational model. Postgres seems to be hotter than MongoDB today.

Much of what is good about Java lives on in Kotlin and Swift. I agree it is unappreciated with today's eyes. Few remember that it was Java that introduced much of the world to garbage collection, memory safety (!), optimizing JIT compilation, runtime reflection, dynamic loading, high quality static analysis IDEs, etc.

UML is garbage. A visual language designed by non-artists with no aesthetic expertise. It deserves to be forgotten.
Prolog is not a good language for querying databases (if that's what you mean by "query language"). Foe one thing, it lacks a SELECT statement or list comprehensions and the like. If you want all results of a goal, you have to use one of the bagof/setof/findall predicates, or roll your own.

On the other hand, Prolog programs are logic theories (as are Prolog queries) and their executio is a proof. The range of programs that can be expressed in Prolog is the set of programs that are computable by a Turing machine. So yes, Prolog is a programming language. Whether it's "terrible" or not is up to personal taste.

I mean, I don't konw of an objective measure of what makes a programming language "terrible".
I'm convinced most cats know a lot, they just don't feel the need to let you know they know.
We use Rails migrations, which means incremental deltas rather than automatic derivation of the result. Usually, our more interesting migrations include data transformation, and not merely adding / removing tables, columns and indexes. For example, perhaps a field needs to be denormalized on one of its associations to speed up queries, or a 1:1 relationship now needs to become 1:n. I think it's less easy to build declarative tooling around this.

We have a tenanted architecture, so we need to run the same migrations on lots of different databases of wildly different sizes and data complexity. We test migrations by restoring a snapshot of a sample of customers and running the migration through, and some smoke tests before and after that can be compared.

More recently, migrations are becoming a release bottleneck. That is, they take too long to run within a downtime window (fintech, so Sunday afternoon is when releases go out). We're looking at building tooling around Percona OSC, and using triggers to maintain data invariants for data migrations until code is able to catch up.

Migrations aren't what really slows us down though. Instead, it's data volume, and the difficulty in writing efficient queries while also providing a flexible UI experience.
I'm not convinced this means the death of Maven Central, but I'll start publishing to both either way.
There is absolutely public documentation [1] and has been for years. I've used it extensively to help maintain a Go connector [2]. It's a binary protocol and it's just a matter of spraying your network with broadcast UDP packets.

1. https://lan.developer.lifx.com/

2. https://github.com/2tvenom/golifx
actually, if you ripped a CD with iTunes, it would turn into a format that almost no software other than iTunes could read. The same thing was true about Windows media player. So you COULD rip stuff, but you would get from one kind of vendor lock-in into another kind of vendor lock-in. If you wanted MP3, you had to put a fair amount of thought into it, download special software, etc, i.e. you had to be a power user, and you had to put a lot of work into it if you had a couple hundred CDs on the shelf and wanted your collection to go on a hard disc. Besides myself I know only one other person who did that.

iTunes has never ripped music from CDs into a DRMd format. By default it used (and popularized) AAC after the iTunes Music Store, but you could change the preference to MP3. AAC was never owned or controlled by Apple. It was just another format that was licensable to anyone just like MP3. Within two years of the iPod, most players supported DRM free AAC.

Don’t forget that the whole “Rip,Mix, Burn” commercials that Apple used for advertising iMacs came out two years before the iTunes Music Store. Before the iTunes Music Store, the iPod could only play MP3 files.

They required a firmware update to play AAC files.

It also wasn’t the “tech industry” that introduced anti copying measures to video. The video industry did that during the analog days with Macrovision.

That made YOU a 1-percenter when it comes to technology. Most people I knew in the late 90s could have never figured out how to hook up a record player to a computer, record a WAV file, and burn it back to a CD. -- You're not representative for how that industry works/worked at any point in history.

That maybe true. But when Apple introduced iMacs with CD-RWs, it was already behind. PCs had started coming with CD burners and Roxio software by 2000.
Terrible programmers often get defeated by Prolog. If you can't bend Prolog, don't blame prolog, blame yourself. :D
You might look at how datomic or datascript use a limited subset of prolog (datalog, with a lispy syntax) to express queries: you end up doing things like:

[[?person :name “Bob”]
[?person :state :tx]]

To query for “the person named Bob who lives in Texas”
I don't think I've missed much.

> ANY UI application uses DOM tree in either form. And so ANY application uses some sort of markup language.

You are conflating DOM and markup language with heirarchy/dependencies. It isn't necessary to have a text language with lots of different overlapping rules and syntax.

> And HTML parsing is not significantly slower

It's not about speed, it's about unnecessary complexity just to get a layout heirarchy and dependencies.

> UI where components are nailed down to pixel grids and colors

That's a false dichotomy. UIs have been laying out their components without parsing text for almost half a century.
I think it's part of a broader trend of Chinese brands competing on equal terms.

Xiaomi and Huawei make phones that are quite comparable in quality to any of the established western and Korean brands; Xiaomi also apply their brand to a lot of very good electronic stuff that's very good value - electric scooters, air purifiers, smart home equipment etc. Rigol and Aneng make consistently good test equipment at a fraction of the price of western equivalents. Japanese brands used to dominate the radio control hobby industry, but they have been almost completely displaced by Chinese brands.
Ah interesting. I didn't think anyone who owned stock before IPO could sell it that soon.

Yeah I could see myself bailing out if I had knowledge of what Uber was like from the inside.
Here in Finland all personal tax records are public so we don't even need to contemplate on this question.
Cats are definitively smart. I was once training my dog how to sit and rewarding him with food. A stray cat caught on the action and come a bit close and sat/stood up as I said the words. At first I didn't get what was up but then I gave him food like the dog. His behavior definitively surprised me.

I have a friendly cat now that lives in my garden. He/She was astray but figured out how to extract resources at my will from kitchen. It is interesting how quickly he learned to respect boundaries, learn my schedule and sense my presence when I'm back home.
Right. Our epistemological process is primarily scientific reasoning: hypothesis, attempt to falsify, fail/succeed and loop.

But if we have better ways we should load that into the process.

Perhaps we need a Web of Trust model for data, for instance. That's a thing oral traditions naturally build in.
Personally I have only used Prolog in an academic context. I'd be curious to hear stories of people using it beyond that context.
This also affects crowdfunding platforms like Indiegogo - a lot of "new products" there is just rebranded junk from Alibaba, that's often already sold on Amazon for half of what they ask for it.
That's not the fault of the language though. If you get taught, say, C# and you 're never taught how to debug it you'd have the same problem.

The four-port debugger takes some explaining, but it's not the end of the world. It's actually a very conceptually simple way to understand Prolog's execution model. It's a shame that it's not taught more often.
Was Shakespeare a Woman?
Chinese people are equally upset with those criminals who looted and parked money overseas. Please consider supporting Australia-China extradition treaty.
If you give parents absolute control over their kids on something as fundamental as education, the kids themselves live in a what you call a "totalitarian government". That is why the UN convention lists education as one of the basic rights for children.

I live in the US. And even though I don't agree with all the laws here, I respect them because that is what this society agreed too. Even though it makes this country, again according to your definition, a lot less free than Germany on plenty of issues. Except the right to homeschool.

Btw, I do prefer restrictions that are justified to protect myself and others. Like stop lights, or the right of way, or the fact that the people treating me at the hospital have to pass a medical exam to do that. By the law that is enforced by the government.

You can change that law in Germany if you want. You just have to convince enough people that your way is better. Good luck doing that. I won't support it, and I don't have to. That's the kind of freedom I like.
Hash indexes can't be used for primary keys:

postgres[7878][1]=# SELECT amname, pg_indexam_has_property(oid, 'can_unique') FROM pg_am WHERE amtype = 'i';
┌────────┬─────────────────────────┐
│ amname │ pg_indexam_has_property │
├────────┼─────────────────────────┤
│ btree │ t │
│ hash │ f │
│ gist │ f │
│ gin │ f │
│ spgist │ f │
│ brin │ f │
└────────┴─────────────────────────┘
(6 rows)

And postgres' btree indexes definitely are affected by the randomness in many UUID generation schemes.
Data migrations? Denormalizing columns from one table to one or more child tables, possibly more than one relation away? Switching one set of fields in a single table to be in a different table via a relation, converting something from 1:1 to 1:n?

The concept appeals to me, but it only seems to work for trivial migrations.
The Clojurescript web framework fulcro uses this also for the sorts of things graphql is used for.
They have Actions which can function as a basic CI.
All current collision attacks assume you know the intermediate hash values (IHVs). With a typical HMAC forgery scenario, you don’t know the secret key so you don’t know the IHV corresponding to the inner hash application, which means existing collision attacks are not applicable.

If you do know the secret key, collisions are easy, but probably pointless since you can already forge HMAC signatures for anything you want.

Still, even if there’s no way to break HMAC-SHA1 (or even HMAC-MD5) faster than the birthday attack, you should still prefer to pick a better hash algorithm for safety.
That's too bad. I've used them a lot but never had need to contact support.
I shave in the shower and I wouldn't consider a full shave without soap or cream. Some people's beards are just too thick for that to work.
Microsoft: The Open Source Company
IMHO, only Evernote stands out in this list. Most of the other companies seem to have trivial user interfaces requirements. The GUI for an antivirus product could be built with just about any framework.
I've used Datalog (which is essentially a stripped down version of Prolog) in the past for a pointer analysis. Essentially, you literally print out the inference rules and then the basic facts to a text stream, and then you use interactive queries on the text stream.
... there is salary negotiation in the public sector ...

And even if every pay grade was fixed, a salary negotiation can take the form of "I deserve to be moved to a higher pay grade because XYZ." People don't get promoted on a fixed schedule.
did i understand right that instead of a google account you need a /e/ account to access stuff? so that instead of trusting google, i need to trust /e/?
.NET/MSSQL shop here:

Our source controlled files contain the database definition:

- a dacpac file generated by SSDT for the schema

- sql scripts for seed data (which changes a lot in our case), generated by a custom CLI tool (uses bcp.exe).

We have a "dev" database that is basically the "master".
We have a CLI tool to generate the database definition files from the dev database.
When someone make/need changes in the database, he makes them in the dev DB then call the CLI tool to update the source files.

When publishing a version the dacpac and data script are included.
Migrations are created on demand (no need to go through each version, skipping versions is common).
Our migration tool create reference databases of the source and target versions, then generate a schema diff script with SSDT and a data diff script with ApexSQL Data Compare.
We can review/editthe migrations scripts before applying migrations.

It works well enough that we run automated migrations at night (with backup before/restore after in case of issue).
Hah, I had forgotten about that. Now they just have to integrate all the services and provide opt-in public traceability for source -> action(s) -> registry.
Thank god I'm not the only one who is annoyed by that. I remember 1 or 2 years ago when I first installed KDE I thought I messed up the installation because the padding/margins looked so jarring, I was convinced there was something wrong with the UI theme.
Uber offers a single app that works in most major cities in the world, which is fantastic as a regular traveler.

Versus having to find, download, and set up a new app for every new city... maybe on roaming data or dodgy airport WiFi... when you've just flown in...
Parts of Tunisia are definitely doing as bad or worse. I don't know about the average guy. I'm neither one; nor there is any reliable data.
The nice thing is that Harry's sells through Target stores. I stopped the subscription and now I can buy them on my schedule.
Thank goodness for competitionAAAAAAAND it's gone.
I've started going to a barber for a full trim/shape once a month or so. Then any trimming I do is kind of as-needed. I think this kind of depends on how your beard grows in and how particular you are about stray hairs. I find that with beard oil/balm, my fly-aways are manageable enough between trims.
Precisely why I wear one - it's my natural state. I've finally broken down and just get a beard trim at the barber, it makes for a nice experience, I look far better than taking matters into my own hands, and I don't have to deal with this stuff (the mess, time spent in the bathroom, etc.)
How do you go to an inhabited island for a prolonged period of time? Any anecdotes?
> I think it's fair to argue that any country that has fewer restrictions on what you can do is more free than another.

It's less free for the children, who are human and have their own rights, and deserve to have those rights enforced.
No, this is the kind of comment that appeals to people who understand that making simple things more complicated is not always desirable, needed or beneficial. If you want to buy a robot that can pick up your beer, twist off the cap, and pour it into your glass, more power to you! If you want to pretend that having such a robot is at any way optimal then you deserve to be ridiculed.
I'm worried about the resiliency of code distribution as we continue the trend of centralizing distribution in a few large companies. GitHub has had service outages in the past, so what happens when not just our repositories but also now packages are not accessible the next time that happens? It would be great if they'd implement it using an open/decentralized protocol such as IPFS, so that even if GitHub went down the content would still be accessible.
Great. This looks like another feature for AMP, but disguis.. I mean packaged as something generic. I’m really not fond of how Google is driving AMP as the go-to way to get better visibility on Google. This is going to introduce more headaches and very little to no upside. I don’t understand why they keep building things without talking to the user. There are other users than Google developers out there, and very little demand for AMP.
It's designed for long term investing. Not a place for day traders, high frequency trading and all sorts of sharks and piranhas that like to eat up pensions and 401k funds...
The stack at SO is heavy on MS tech too. I believe they run a lot of SQLServer.
What you notice is a really subjective argument. I notice ads, even "small" ones; they distract my attention, and annoy me.

I'd wish I had your ability to "rarely notice banner ads", but I don't, so I complain.
Exactly right.

Sites like HN and Reddit are aggregators in the literal sense. They take a large volume of data points and reduce it to a select few that get shown to most users. that aggregation function is "most interesting", not "most representative". Those are direct opposites of each other: interesting is almost by definition unusual.

I always find the subreddits that try to explicitly not target polar extremes the most fascinating from a sociology perspective. For example, this photo of a sink faucet is the most mildly interesting submission of the past year:

https://www.reddit.com/r/mildlyinteresting/comments/9ykoe4/t...

Does that mean all other submissions were less interesting, or less mild?
Most Americans could use that extra trip up and down the stairs.
> Arguably, the imperative programming paradigm is a more natural fit with the von Neumann computer architecture

Prolog's lack of popularity suggests that viewing a computer program as a pure (first order predicate) logic construct isn't a powerful way of thinking in general. That is a bit of a blow to all the programmers who seem to secretly want to be mathematicians because that in turn suggests that the logical aspects of programming are subordinate to hardware realities.

I've gotten a lot of joy out of the Neural Networking fad similarly eclipsing the logic-based AI people. Logic is important and it isn't going away, but reality has too much uncertainty for simple logic to work in practice. The statistically grounded approach makes me happier, and again computer hardware's power is overwhelming the efforts of the logicians to tie everything down to certainties.

Great language though, everyone should take a look at it to see what a different programming model might be.
Slapping a random name on a cheap product from the Yiwu market[1] is far quicker and easier than building a brand. There are a lot of Chinese middlemen who have the skills to ship boxes profitably, but don't yet have the skills to establish a brand name in the Western market. Dollar stores and big-box retailers are full of cheap no-name products of indifferent quality, because there's a sustained market demand for literally the cheapest option.

Chinese manufacturers and retailers are moving up the value chain as fast as they can, but it's not an overnight process and no-brand goods aren't going away.

[1] https://www.youtube.com/watch?v=RDd10-poMm8