skysight-inc/HackerNews huggingface dataset:
When talking about public pieces of information, being able to refer to them by their identity is useful and any hashing would be counterproductive (just wasting power), also, I'm sure any database can operate on unique, incrementing numbers more quickly than uuids. If we're talking about private information, it should be transferred in another way than the url in the first place, yes, the chance of "guessing" a hash is lower than an incrementing number, but there are other ways it could be intercepted, a screenshot, accidential copy/paste for example.
This argument seems backwards.

As far as I know, no database has ever had any of the problems he mentions with IDs not round-tripping properly during backup/restore. (Please correct me if I'm wrong! But why do I think this is true? Because any database that doesn't roundtrip primary keys would break all foreign keys on backup/restore. Databases with broken backup/restore tend to either fix it real fast, or go away.)

On the contrary, it's much easier to keep IDs stable over time, than any other field. The problem with using a different field as an identifier (e.g. a URL component) is that almost any property with an objective meaning, might change over time or become non-unique. This is why it's a best practice not to use, e.g., user email as a primary key.

For instance, Stack Overflow allows users to edit the title of a post. Right now when that happens, the canonical URL changes (to include the new slug), but the old URL is easily 301'd to the new one because it includes the ID. If the numeric ID was not in the URL, you'd be stuck with either a misleading slug, or having to maintain a list of former slugs/redirects for each post. Plus, you'd have to hack your slug-generation algorithm to ensure the generated slugs to be unique, and the easiest way to do that is... by appending an incrementing ID to the end of the slug.

The point about avoiding cruft like .aspx in URLs is well taken, but unfortunately it's in direct tension with the point about keeping them stable given that "meaningful" non-cruft tends to change over time!

(And if you don't want someone to guess your metrics from IDs, you can use a random non-numeric ID instead!)
There’s No Such Thing as Anonymous Data (2015)
Making Elections Safe
Level 5: You've downloaded Droid4X extra because of it, installed Java and everything and then you come back on HN to look if somebody is already on the next challenge (in order to save time) and then you start again, but with the new challenge :)
Why? I agree some of the actions are taking it too far, but this part is not that far-fetched. It happens.
You realize that "money laundering" usually isn't about tax evasion, right? it's about figuring out how to take money gotten from an illegal venture and figuring out how to make that money come from a trackably legitimate source, which means paying taxes on it

So, having a lower tax rate, all other things equal, is going to make your state a more attractive destination for money laundering.
Nothing at all. Paid on time every time and basically decorated the place. Went on the market for £100/month more the moment the tenancy expired and he evicted us.

The guy ran umbrella companies to hide his assets and address and to rip people off, got caught going through our stuff.

He’s still a landlord and has been the director of about 12 companies now in the last 20 years all dissolved.

Who’s the bad one? Hmm

Edit: also the place we had after that I rented for 11 years with no problems direct from landlord and they were excellent and we were excellent back.
I agree that imperative programming is important to learn but java is in my opinion shouldn't be the language to do so. I think learning should be fun and java is the exact opposite of fun. It's wordy, full of boilerplate and enterprise code. Java, in contrast to other major languages, doesn't have an inspiring narative or a reason to be.
Sure, but that was just an example to illustrate my point. Some of these languages are viewed as hard to learn simply because they are unfamiliar. But to someone who's never programmed before, all languages are unfamiliar, and it turned out, at least in Jane Street's case, that OCaml was easier for the business people to understand than Java or C#, or even Excel macros.
‘Unhackable’ eyeDisk flash drive exposes passwords in clear text
Nest, the company, died at Google I/O 2019
Pianist and Coder Dan Tepfer Composes Music with the Help of AI
This is why I always obfuscate IDs using Hashids: https://hashids.org
Yeah, it is amazing to see how one can really rethink a core mathematical library with new tools and ideas. My mind continues to be blown every time I hear Chris talk about Measurements.jl and DifferentialEquations.jl just work, and you get sensitivity analysis for free (and neither package had planned for the other).
Sure it is. We must never forget that one of Microsoft's biggest selling points for UWP, and by extension the Microsoft Store, was to port apps to a platform that was, frankly, dead on arrival, at a time when the vast majority of Windows users were using mouses and keyboards.
>where concise sequential identifiers are an advantage

For example, certain kinds of attacks are helped with sequential IDs. Wasn't there an AT&T "hack" where the attackers iterated URLs over sequential account numbers to grab nearly all data? Would've been nigh impossible to perform with UUIDs as identifiers.

About the only use case I can think of where sequential IDs are helpful is using MAX(PRIMARY KEY) to roughly estimate total number of records. And that's only relevant where there's special cased support for MAX(PRIMARY KEY). Think MySQL, but not PostgreSQL. And that's also subject to the over-estimation due to holes left in the sequence, whether due to deleted records, or backed off transactions.
Next Generation KDE Plasma Notifications
Content Reload from Headless CMS in React Apps
Mudlarking on the River Thames
I don’t agree it’s slower in a practical sense. If your service is backed by a relational database like PostgreSQL then you’d have an index on the column you’re looking up. So a request involves network round-trip latency, parsing the request and preparing the response, and searching for the object in the database using the index, most likely a tree with a depth of 3 or 4 levels. I don’t think the number of characters in the key, or the data type, will play a big role here. Happy to see evidence to the contrary though if I’m wrong!

The algorithm flexibility might not be a big problem either. The old slugs are stored in the database. Update the algorithm, new slugs adhere to the new algorithm, old ones unchanged, everything still works.
It doesn’t matter because most of the players are losing money — the social connections allows you to burn billions and make no money at all.

The consolidation / concentration issue applies more to normal businesses. Regional banking, for example is dead, and that has all sorts of negative impacts on places that aren’t the biggest cities. Not only are the workers gone, but there’s no commercial banking available anymore.
If you want a real-world example: I struggle with my SAT solver, gophersat[1].

I have different kinds of constraints, mainly propositional clauses (a or b or c) and pseudo-boolean constraints (2a + b + c >= 2). Long story short, a propositional clause is a special kind of pseudo-boolean constraint, so I can process my clauses as if they were regular pseudo-boolean constraints, but this is slower than using dedicated code.

Lots of problems only deal with propositional clauses, so they take longer to solve than they should, because I cannot say "this is a problem with only propositional clauses", vs "this is a problem with all kinds of clauses". I could use interfaces, and tried, but this is way slower, to the point it doesn't make sense to use them.

And I can't use C++ or rust for this problem: there are already tons of very good c++ SAT solvers, but my goal was to provide a SAT solver I can use in my go programs without resorting to cgo black magic.

[1]https://github.com/crillab/gophersat
Staff Software Engineer- WebAssembly VM/Runtime- Mozilla
The first thing is, the Neural Networks are not golden ML algorithm that is working always the best. I'm not surprised to see GBDT methods working better than NN. The NNs are very powerful because they can accept the wide-range of data types (tabular, images, voice) which is not possible with GBDT (maybe not yet).

The second, I think architecture search fo NNs is very inefficient right now. Most of the methods are training new NN in every attempt. There is a lack for method that can start with any NN architecture and grow/prune it dynamically. Take a look at this poster, with dynamic topology adjustemnt for MLP http://www.ire.pw.edu.pl/~rsulej/NetMaker/icaisc/icaisc_post...
i'm not even sure what the answer to this is other than to say -- it's a completely contrived example and there's no way you would answer such a question let alone be asked about it. getting on the stand isn't some grand fishing expedition -- you're asked relevant questions and if they're not relevant then your lawyer / opposing lawyer is going to challenge relevance
> There is a role for a non-profit here to test products, publicise the results

Does Consumers' Union still do stuff like this?
You're neither competing with them nor are they charging you money.
They're wanting an assessment from a trusted company, to ensure that you don't mess around on their service.
Yes, it costs money, but from their standpoint it's simply an insurance against exploitation on their service/platform.
Harry’s Acquired for $1.37B
well openmp or openacc are still simpler.
Not strictly a democracy of people, though, is it? There are opaque algorithms behind the scenes doing their magic, and moderators who step in and distort the "democratic" process; it isn't just about upvotes.

(In the case of HN, I'm not criticising this; in general I think it's probably MUCH better than it would be if it didn't have these non-democratic mechanisms helping to manage the site. I don't actually trust that "a democracy of people" can be relied on to make good decisions, in general.)
it does in europe and china
Google Nest Kin
Definitely look at the whole JuliaGPU ecosystem, and the CUDAnative.jl package. There are two big questions. First, how do you get code generation for targets such as GPUs from a dynamic high level language such as Julia, and that is what CUDAnative.jl achieves. The second question is what abstractions should Julia present to programmers so that increasingly larger codebases can automatically leverage GPUs. Packages such as CuArrays.jl are early answers, but there is much work to be done here.
direct link https://info.codility.com/hubfs/Research/Codility%20Gender%2...
Can't speak to Vancouver specifically unfortunately, but I'm dealing with "Her Majesty's Royal Water ownership" while trying to rebuild an old breakwater on my property.

Or if you look at US corporate tax law, until it was updated last year, hundreds of "America companies" were parking their money in Ireland because it was too expensive to bring it back to the US.

I imagine Canada's marijuana legalization will take a bite out of the drug laundering at the casinos.
I have no idea why you are being downvoted. I submitted the article and even I admit in hindsight that neither the title nor the article is clear to someone who isn’t steeped in the Apple ecosystem.
That's precisely what Marzipan proposes: additional APIs that allow iOS apps to be good Mac apps without needing to port to AppKit. Looking at how it behaves now, it seems to either bridge some UIKit concepts to AppKit directly or replicate AppKit functionality within this macOS-specific version of UIKit.
You'll need to examine the binary generated for a particular architecture by the driver. It may work on one driver+GPU combination, but be slower on another. Also, the semantics for floating-point math are somewhat looser in GLSL so the driver is given more power to reorder expressions and might exploit this trick on its own. As usual, you should profile and benchmark.
Please file issues when you find something is less than perfect. That's the first step towards making it better!
Hashids are slow though
>Did I say something factually incorrect?

Sort of. The capacity for self defense is not evenly distributed and many (I would guess most) HNers live in states and have social circles where gun ownership is not nearly as common, not considered acceptable or is at the very least not talked about. In these states a home invader is much less likely to eat hot lead. People don't realize that in other states there is a near 100% chance of encountering someone who is armed if you break into an occupied home.

>you can legally blow someone away if you feel threatened

"Feel threatened" is the low bar cops have to meet. Us proles actually have to be threatened.
CLOS code:

(defclass foo (superfoo1 superfoo2)
((some-slot :type bar)))

(defmethod baz ((some-foo foo) (some-bar bar))
...)

(defmethod foobar ((some-foo foo))
(baz foo (make-bar)))

What would you need to do refactoring operations on such code?
Given that there are classes, arguments are specialized over classes, slots have types, ...
Tweet: Learn how to share UI components between apps
I've used that in the past to retrofit an old database and move away from the id=123 in a URL to a UUID. You can keep all the old relationships triggers ect... Just add an index for the new col... UUIDs are not perfect but for most applications they are good enough (I think)
Yes, it has created value for its customers and investors. It has also generated enormous externalities. Those two things are not mutually exclusive, and the point is one of the main points of my argument. The other being, this is just uninspired and unoriginal. It’s a presentation by an ex-hedge fund guy on a profit play, that feels more like my know-it-all uncle lecturing the family during Thanksgiving about how we all finally see that his warnings about climate change are being proven true and that means we all have to buy Soylent Green from him. And everyone around the table just stays quiet because we are afraid he is serious and just want him to stop talking.

Amazon’s unconstrained growth relies on a model that allows for limitless externalities and this requires limitless resources both as direct inputs to production and cheap or free pricing of waste handling and social costs, in order to capture the value creation and offload the costs for its customers and investors.
Consonance: Open-source implementation of the WhatsApp handshake using noise
I stepped over human feces yet again this morning, how about some infrastructure to deal with that? "Incredible civilization" you say? For who?
Gitlab-CI. But only for Dev, not for actually controlling the production.
Genuine question:
What's the proposal for items in an API which have no concept of a "slug"?
We could generate a separate mapping of "public ids" to the database internal ones, but I don't even see how that would solve any of the issues here.
Most but not all American cities have less people now then in the 1950s. But household sizes are much smaller and the amount of Housing units in most cities is actually higher then the 50s as a result of smaller household sizes. However many of these cities still have a housing affordability problem even though they have less people now.
#3 was a huge problem for my company when we had an offshore job in process. My manager liked to speak in colloquialisms and slang, and he also had a bad habit of covering his mouth with his hand while talking. This all combined for lots and lots of misunderstanding during phone conferences.
I've see cases where a whole team from Southeast Asia shifted work time so there was some overlap, but that also takes a toll.
There are folks working on the AMDgpu target for Julia, and I see that some early work has already happened in terms of building LLVM and such. I suspect the AMD toolchains are not as strong - but with the right contributors, it should be possible to leverage the work done on the Nvidia GPUs for the AMD GPUs and even other accelerators.
The kind of article I started writing ! Only in much better than my draft :-)
Nulls, dumb syntax, bugs, my high blood pressure...

In 2013 I tried darn hard to get a job doing Clojure but it never panned out. The world just isn't ready, it seems.
Use k3s, you have the equivalent of docker-compose spinning in less then 5s.
This is kind of how I've always built applications - the standard ID is viewable to admins, but every public facing utilisation is a random string (with a uniqueness validator).

Access to resources is either locked down by an authorisation policy, or sometimes you need open resources (like a public share link), in which case, security through obscurity (with perhaps a secondary string on the record acting as an additional key for non-logged in users).
The author forgot to mention that you can have immutable collections in Java but then praises Clojure's immutable collections. The Java coded provided will produce warnings due to the mixing of generics and raw types and actually I had no idea about what the output of the Clojure code would be because the author assumes that you have no questions "once a Clojure learner gets used to Clojure syntax". Once you learn that there's a difference between primitives and objects then the Java example becomes just as clear. Moot article.
This is precisely correct. You just have to make sure in the thousands of lines of code that you only use higher level building blocks and make no assumptions greater than what a GPU-based array allows. GPU-based arrays don't even want to allow you to do scalar indexing for example, since every scalar indexing operation is a data transfer back to the CPU. So, with those rules in mind, getting the stiff ODE solvers to automatically work with GPU-based arrays amounted to:

1. Making sure every operation in the solvers used a higher level building block (@..) that automatically built fused broadcast kernels, and CuArrays.jl then supplies the broadcast overloads. That makes all of the non-stiff methods work.

2. Change the default choice of Jacobian to "dense array of size NxN" to "zero'd outer product of input array defined via broadcast". This translates to `J = false .* z .* z'` as a trick to make a Jacobian match whatever array type the array type library thinks is best, so J will be a GPUArray while DiffEq knows nothing about GPUs (also works for things like MPI, but GPUs is easier for people to reason about these days). So a one line change to the stiff ODE solvers made them all GPU compatible! But...

3. There's a small bug, or at least missing feature, in the GPU libraries that their QR doesn't implement backsolve. Technically the user can work around that because we allow someone to pass a linear solver routine with the `linsolve` argument, but it's easier to just handle it for everyone in the defaults. So using Requires.jl, if you have CuArrays installed, then we add a linsolve routine to the defaults for you, defined by https://github.com/JuliaDiffEq/DiffEqBase.jl/blob/master/src... . Technically this can get upstreamed to CuArrays.jl and get deleted from DiffEqBase, but for now it'll live there so that everything is easier on users.

So yes, make it high level, avoid assuming things like the Jacobian live on the CPU, and add one missing method to the GPU array library, and now when the user passes `u0 = CuArray(...)` for the initial condition, the algorithm compiles a version which does all state operations on the GPU (and all logic on the CPU, so it's a pretty good mix!).
Feels like an overly dressed article for what amounts to "Google now allows haircuts for emojis". Also I had a laugh at the swimmer emoji. I guess they could have a different hair style under their swim cap.

Tangentially related, Does anyone else have a problem seeing these graphically dense emojis? I find myself always squinting for anything other than the iconic emojis. It's pretty telling that even the article itself has to blow them up to show the details.
It’s just “You don’t get high on your supply”.
> this post is very misinformed.

This. The answer to 3 question in article is always "YES".

> The slug itself can easily be automatically generated when a new question is saved. Then you can simply retrieve a question by its slug.

And that was just pure ignorance. What happens to slug when question(or product) is edited?
Everything that's wrong with your behavior and why
Just use GUIDs instead.

And if you want to keep using integer IDs internally, put the GUIDs into an alternate key.
in the article you'll note that his log tedious rant on the state of the 'gig economy' is one of his better paying articles he's gotten.
India orders anti-trust probe of Google for alleged Android abuses
Note that there is a legitimate reason to set the initial sequence in this way: oftentimes the system works fine with 31/32-bit numbers but not with larger ones. Starting with the large sequence number (we have frequently used 10 billion) proactively eliminates this problem.
We do that. Treating the API key as distinct from DB id also helps with loosely coupled microservices, in which the key for a given item may have come from any of several source systems.
Without tangible personal damages, would you have standing to sue?
>And yet, everyday, we give more and more power to governments...

I think we should be careful about blaming government itself. But instead focus on the _people_ that make up the government. It seems there is a serious lack of equal representation throughout our government. For the most part, it has become a matter of who has the larger bank roll.

It would be interesting to see a government with forced equal representation across the entire socioeconomic spectrum.
Detective Pikachu: in real life the cohabitation between humans and Pokémon
While there might be some edge cases (e.g. startups associated with a high profile brand/person), in most cases there are usually better things for a startup to do than obfuscate the number of users they're gaining.
If I wanted to read or talk to someone, why on earth would I have the television on?

If it's on, it's because there is something I feel is worth my time and attention.

(One reason I broke up with an otherwise-potentially-serious partner some years ago was that she -- and her family, it was a familial trait -- seemed unable to be in a room for more than a minute without turning on a TV.)
So what's the problem here? BC is making money.
I'd suspect it's more about the state being pragmatic concerning the chances you or I would lie to protect a family member - assuming we have no axe to grind with said family member...
Apple has a precedent. The Carbon API was so named because "all lifeforms will be based on it". The Cocoa API was so named as an alternative to the Java API, at one point a major pillar for Mac OS X before Apple discovered people preferred to learn Carbon/Cocoa than bother with Java.

Marzipan, if the name does stick, could be "the icing on the cake" that brings iOS developers to the Mac. It seems as though Apple has been spending the past twenty or so years preparing a small bakery.

We patiently await for an updated version of discoveryd to be reintroduced into macOS, codename Tea-and-Biscuits.