skysight-inc/HackerNews huggingface dataset:
Ask HN: Can anyone help me find this swipe/gesture recognition algorithm?
Hi HN!

I wonder if someone can help me track down a paper or article I read a long time ago, but haven't been able to find searching google.

The paper was very simple and had some pseudo code that was really easy to implement. I remember it was a really satisfying project to get running but I can't find my old project or the paper now, and want to share it with my brother who is learning to program so he can experience the same joy in getting it working as I did!

The paper described a way of detecting drawn shapes through a simple algorithm that was something like the below:

- User draws a shape in a single 'swipe' on a touch screen.

- You place 10 points along the shape so that they are equidistant across the line they have drawn.

- You adjust the size of those points so they are in a standard 'box' (i.e. make them larger or smaller so that it fits exactly within a standard 100x100 box or similar).

- You compare each of those 10 points against a pre-set list of shapes which each have 10 points (i.e. from a previous recording). Each point on the shape you have drawn is compared against the corresponding point on the pre-set list, and the distance between the points is noted.

- You keep track of which shape has the lowest total distance between points.

- The users shape can be rotated to test if that results in a closer match in a different orientation.

- The shape that has the smallest total distance between all points is the closest-fit gesture and that shape is selected.

Thanks in advance for any help you can give.
Sounds like you haven't seen the cloud costs for processing units handling these workloads, then... They're severely overpriced compared to normal CPU loads.
One thing, TUIs are MUCH MUCH worse for screen readers than (well made) websites.

TUIs (as currently designed) have no structure, so it's very difficult to move around from section to section. A website with headers and auto-wrapping text is much easier to move around and read with a screen reader.
The RP2040 (Raspberry Pi Pico) meets LoRaWAN
SRE hasn't really got anything to do with scale.
Just because Google literally wrote the book on it, doesn't mean you need Google sized problems, to adopt the philosophy.

My take away is the switch to focussing on reliability from a customer perspective, infrastructure failure is inevitable, impact to the end user doesn't have to be.

To understand how any failures do impact your users, it's usually very important to pick some good metrics and make informed decisions on what level of reliability you want and how you are doing.

That then feeds decisions on where you may want to improve your own tooling/processes to improve these metrics/end user reliability.

The dev focus is because you need the skills to automate and fill gaps in your tooling and you need to be able to understand the software you want to measure.
I'd expect shipments across the Pacific to be aggregated into the smallest possible number of containers and only subdivided into batches for individual customers at the last possible moment, in order to minimize both transportation cost and the risk that any single customer loses their entire order when a container falls off the ship.

Is that not how it works? If so, I'd like to know why.
If you have only five you are already lucky.
That there is no skin in the game for anyone is not a fault of online reviews per se in my opinion.

Brands were invented to enable a trust relationship between manufacturer and consumer. Brands are an anchor of trust. There is no such anchor for sellers.

As you wrote, your neighbor won't recommend you a bad lawnmower because they have an interest in a continued good relationship. If your neighbor is secretly exchanged for a almost, but not quite identical one, willy-nilly and all the time you would not be able to build a trusting relationship in real life too.

But that is exactly what happens on Amazon. What good are seller reviews if sellers change and disappear all the time. What good are they if I can't click "Buy again" and then rely on buying not only the same product but also from the same seller I already trust?

I wish seller brands were as prominent as manufacturer brands but I can understand why neither Amazon nor traditional brand have an interest in such a system.
Appears to be in the same repository: https://github.com/essej/sonobus/tree/main/Builds/Android

https://github.com/essej/sonobus/tree/main/Source/android
Austrian startups to watch in 2021 and beyond
Acyutally, according to TFA, it's the whole ecology of supply chains in one place (an infrastructure) that is difficult to replicate.

Perhaps similar to silicon valley, with investors and many kinds of skilled labour, all in one place.
Your comments may be absurd, but mine are based on my actual investment strategy. You’re just yelling at a guy who is doing his thing.
Is this a reference to the old Ark II show, which featured an advanced camper driving around a post-apocalyptic world doing good?
The uncertainty principles are inequalities, not equations. And that is something you can write with multiple forms.

As for equations, notice that many equations in Physics have a constant which turns a proportion to an equation. This is where you have leeway in constructing more or less arbitrary equations based on the variables you think are important enough to observe.

Coming to your example, Newton's f = ma equation is really f/m proportional to a. The units are chosen carefully to make the constant 1. This works under the assumption that mass is constant and acceleration is measured measured from a non accelerating frame of reference with non relativistic speeds. So, yes there are several other ways to write that equation.
> Maybe philosophical free will is a solution in search of a non-theological problem.

I don't think it's a theological problem; I think it's the way we think about things every day.

Consider four situations:

1. You walk into the kitchen and a pan which you'd placed on top of the fridge at a precarious angle falls on your head.

2. You walk into the kitchen, and your spouse, who honestly thinks you're a burglar who has broken into the house, hits you on the head with a pan. When they realizes it's you, they apologize.

3. You're standing in the kitchen, having an argument with your spouse. They get very angry, grab a pan, and smack you in the head with it.

4. You're standing in the kitchen, having an argument with your spouse. They get very angry, and you see their eyes briefly flit to the pan; but instead they calm themselves down and refrain from hitting you with it.

Although the injury to your body may be the same in cases 1-3, our attitudes towards these things are completely different. In the case of #1, the pan indeed had no choice but to fall on your head; it cannot be blamed in the least. In the case of #2, a human being did it, but they had a good justification for it. In the case of #3, we say your spouse is at fault and blame them. In the case of #4, we recognize that your spouse resisted the temptation to hit you, and honor them for their restraint (or at least say they were doing what they should have).

And if that was you whose eyes flitted over to the pan, you are aware of a struggle, and of making a choice to lash out or show restraint.

But if the universe is a combination of determinism and randomness, then what's the actual difference between #1 and #3? All of them are physical processes which, given the circumstances, really couldn't have been any different.

In other words, free will is not some arcane theological concept: a description both of our daily experience of making moral choices ourselves, and our expectations and attitudes towards others.
https://nestjs.com/ is nice, although I'm not sure about your front-end expectations.
How to have better arguments online
A social platform with music in focus. Syncc app download
This is very similar in Rails.

Only in Rails it is far easier to accidentally introduce interfaces that do this: the downside of having a very easy DSL to quickly add relations between records/tables is that people very quickly add relations between records/tables: introduce spaghetti.

And in Rails it is very hard to debug, because ActiveRecord tries hard to be smart, but this "smart" quickly degrades into "black magic" when stuff gets complex (mostly caused by: see above, in my experience).

Edit: currently working on a codebase where 3000ms queries to get 200 items is no exception, where 500+ queries to build a page is common and where, if you change a foo on a bar, suddenly at the other end of the app, your blargs and blazzes start blurping out SQL that used to run 200ms but now adds some wheres and limits and group-bys that make it run over 2000ms. Yay for Rails trying to help!/s
This would be logical, but due to some business practices, Windows bundles often costed less than the alternatives.

https://en.wikipedia.org/wiki/Bundling_of_Microsoft_Windows#...
I have asked it in this thread already, but I am really interested in your answer to this as well:

> Is there some truth to the “reverse” though —- that is, is the emerging patterns similar for similarish problems? What comes to mind is the similar first-layers in the human vision and google’s vision AI, with vertical/horizontal lines being “matched”.

I don’t know much about NNs, but in the big picture isn’t it sort of similar? Instead of discrete on-off signals where multiple firings in a short succession result in higher activation, in NNs we sort of take the integral over time of said discrete signals.
Of course things like neuron fatigue are not accounted for in this model, but does the base idea differ all that much?

Or perhaps I misunderstood the whole topic and only the learning process’s difference is the question now?
> One assumes the Cold War made this crossing no more physically difficult, but politically impossible due to the mutual suspicion

Exactly so. While there's reluctance to admit it (even now) there are stories that some Alaska Natives maintained contact with their friends and relatives in Siberia, even during the Cold War. I can certainly believe it. There's a lot of lonely coastline in that area, and not much monitoring -- certainly not back then.

But yeah, the main thrust of what I was saying was that the indigenous people had boats capable of making the crossing long before Europeans arrived on the scene, so the "land bridge" idea is not the pat explanation that many seem to think it is. The "land bridge" may have existed, and was probably used when it did exist, but it's clearly not the whole story.

We know that Alaska Natives were making this trip, and even longer ones, regularly before the arrival of Europeans. Heck, the Tlingit in Southeast Alaska were running water-based slave raids as far afield as California before the Europeans arrived.
Keeping in mind that I needed to write code against node 0.13 because it was the last version of node supporting floating point emulation when there is no hardware fpu, I was surprised to learn what kind of trash is out there running the internet. There is list of supported architectures of the software in question and though I don't remember it in details, I'm sure that there were items in it that I couldn't find in the rust tables.
Thankfully it is not "OOP all the way".

You can write a lot of functional, or at least simply procedural (modular) without ever needing to define your own class. Sure, you'll be instantiating some objects implicitly or explicitly at times, but you don't have to make your code be class-based.

You can write pure functions, although you do have to be aware of space/time concerns depending on the situation. Obviously you want to avoid copying huge data structures frequently. But in a lot of cases, the performance cost is low, so you can respect your inputs by not mutating them and just return some value/collection.
Same here, but it was an understandable solution, and it is also the approach taken by other platforms that provide Linux like compatibility.
The docker experience on Linux is vastly superior to that on Windows or macOS though
I think for a personal project that you use for your own ends, you can use whatever you like:)

But in general, I agree!
I like Lem and think he succeeded in his mission, I see Tarkovsky as intellectually inferior (he is a mere intellectual, while Lem is a philosopher and it shows in the depth of concepts).
Maybe I misunderstand your use of the word "function" here, but in addition to Proc/lambda you can certainly reference a method, pass that around, return it, call it?

See:

* https://ruby-doc.org/core-2.7.1/Method.html
* https://ruby-doc.org/core-2.7.1/Object.html#method-i-method

$ irb
2.3.3 :001 > p = Kernel.method(:puts)
=> #<Method: Kernel.puts>
2.3.3 :002 > p.call "Hello"
Hello
=> nil
2.3.3 :003 > def run_a_method(meth, *args)
2.3.3 :004?> meth.call(*args)
2.3.3 :005?> end
=> :run_a_method
2.3.3 :006 > run_a_method(p, "Hi!")
Hi!
=> nil
2.3.3 :007 >

ps. this also works with the "to_proc" operator (&) so you can do this:

[1, 2, 3].each(&Kernel.method(:puts))

(but I wouldn't necessarily recommend this since it's not very readable, at least to my eyes).
NASA Perseverance to Land on Mars on Feb 18, to Look for Signs of Ancient Life
Promising startups from freezing Finland to watch in 2021
One of the thing that bothers me about the Western environmental movement is its short-sightedness. Literally "out of sight, out of mind".

A lot of polluting industries have been moved overseas, recyclation of waste was in practice done by poorly paid third worlders, palm oil and wood from former pristine wilderness counts as "renewable", ugh. Germans dump their waste to Poland or Czechia to burn. Etc. etc.

And both batteries and electricity production come with a huge environmental impact. To sell electric cars as green plays into the already bad shortsightedness.

When capitalists do the same and mine some strip of land bare, they are rightfully pilloried and accused of reckless greed. But the same happens out of putatively good intentions and is nowhere near as criticized.
Hey, the Brooks range is not populated with tourists! But you are right about the damp.
A second Linux installation would do the same for you. The insurance is less Windows, and more having redundancy. Especially true if the situation is time critical - a default Linux installation won't stall you with a mandatory update.
> Lacking specific power "to take on the big guys" (whatever that means)

If you knew the history of SEC you would know what that meant. Look up Steve Cohen. Big guys just get a slap on the wrist.

SEC missed the $18 billion Madoff fraud and yet you think SEC has the awareness of market manipulation, they dont.

> Are you implying that there is a lack of awareness for any individual interested in this topic?

Isnt that why the politicians want to know more about this topic.

> I feel like I'm talking to someone who participates in a different reality.

That we can agree, the reality is that SEC is incompetent yet you chose to believe it is not.

GL with whatever.
I am working on an app that needs some GIS features. Spatialite and GDAL cover my use case. You can even eliminate GDAL if you don't retrieve data as binary but it is useful in other places too.
China recently arrested Bloomberg editor Haze Fan, so robust criticism of China could adversely affect her case.

In the past I have found Bloomberg pretty impartial on China, with good criticism and analysis of China's policies.
Not the parent, but mine is not a theoretical argument. I work on an highly threaded application. Many components spawn threads, send messages to other components running on other threads and wait for messages or events from other components. When you have base classes and members all blocking in their destructors is very easy to end up with deadlocks or race conditions just by changing the order of members or base classes and things like that.

By having an explicit (asynchronous) shutdown phase this can be avoided.

There have been some talk in the committee about having async destructors. That might be the solution to the problem.
There is a difference between changing internals by doing things outside the system (OS level, hardware level) and changing things with perfectly legal and correct code.
https://www.reviewmeta.com is even better, sadly the owner seems to be on course to sell it.
No worries, just get a nice Samsung SSD and repla... oh.
Mental Health and Free Software (FOSDEM 2021)
> million concurrent users

sure, but 99% of sysadmins/devops/SRE/whatever will never work on anything that has million concurrent users.

Most startup will never reach million concurrent users. And if they do, investors will happily shuffle as much money as you need to make your site work at that scale.

Hell even million monthly users is a nice milestone that most projects never reach, and that usually translates to couple of thousand concurrent request (peak), that average laptop could handle.
This looks nice. I esp like that it runs fully offline.

I wonder, for offline apps like this, how would you organize the data, like e.g. backing it up, synchronize to other PCs, just making sure that you don't accidentally loose it? I wouldn't quite trust localstorage. Maybe only temporarily.
My point is that if they need this "safer", why not pop out XML instead.

The largest benefit of JSON is that is not XML. That it doesn't get bogged down in schema's, strong typing, interfaces, contracts and so on. You loose all that by turning JSON into XML-written-in-a-different-syntax.
I will give you an example. Say, everything at Tn is based on the function at Tn-1, which means Tn-1 is based on Tn-2 and so on and so forth to the beginning of the universe.

That would mean that my next steps are predetermined. If I choose to fight the idea, or resist the idea, that would also be predetermined on factors such as upbringing, and even the upbringing of an ancestor living 2000 years ago, and the geometry of space-time a million years ago, and the thermal gradient of a billion years ago and so on and so forth.

> What is the difference between rational and irrational in a deterministic universe?

I would argue that irrational, in a deterministic Universe, would be living your life as if the universe were random and probabilistic; imagining you are a nugget of free spirit and energy; considering your individuality and power.
E.g., play the next episode of a show. Or, curated lists. The point is that the ethics aren't just in the algorithm.
Billionaires See VR as a Way to Avoid Radical Social Change
you do not have a chance to cleanup if you are application is killed anyway. So either don't make a mess, make sure that you can clean up no matter what or live with it.
I don't have a recommendation, but here is a quick test I use when looking for a replacement for Rails:

How quick can I create a minimum simple SaaS like application that has the following functionalities:

- User management (Signup/Login/Reset password/Confirmation...)

- Simple payment processing (like have on single plan, one time fee, and after paying the user will see some other default page then not paying)

- Sending emails in HTML and plain text (for user management and after payment is processed)

- Use slugged/permalink like URLs

- Processing some task in async queue

And so far there are a lot of alternatives out there but for me Rails provides the easiest experience to have this up and running quickly as there are already battle-tested gems for almost all these functionalities.
you can still easily do that on a smaller remote server with a big GPU, there is not really much time overheard in doing that when setup correctly.
> unethical maths, whatever that means

Are you suggesting that it would be strange to believe that ethics can be applied to mathematics?
Twitter Could Launch the First Decentralized Social Network
Any OS that shipped OpenSSH earlier than June 2002 could get infected within minutes of being connected to the network, which is basically a set of all Linuxes or their parents.
the function that will be affected by the thread blocking might not be the one that has created the thread so it might not have a chance to set the flag.

Of course you can handle it by declaring and documenting preconditions and so on, but, when possible, enforcing these sort of things at the type level is better.
c.f. http://buttflare.com/
Can confirm, its a shame they stopped delivering to the EU :/
It's been a few years but I also found Walter Isaacson's Steve Jobs biography to be terrible.

I was looking for deeper analysis of what made Steve Jobs' tick, and how he approached building products. Walter Isaacson didn't have a technological understanding of Apple's products of the time, so I found his history pretty superficial.

I learned much more about Steve Jobs approach from listening to the interviews he did over the years.
When it comes to showing off with Ruby, I think that only occurs in two cases: creating unnecessary DSLs (cough Rspec) when plain Ruby was already adequate, and doing as many chained collection operations in one line as possible.

The former adds a layer of abstraction which is often unnecessary, and the latter can go from succinct to slightly-too-clever to fully obfuscated.

As others have mentioned, Rubocop can help keep some uniformity (although some of the default rules suck, imo). And beyond that, the company just has to have people who agree to be decent. It will happen that developers of different skill levels will write more or less readable code depending on the perspective of the viewer, but that's true in all languages. You _could_ write Ruby code like you would write Basic.
What are the restrictions on passing around a ruby `Method` object?

(Please see my sibling comment for example).
> you do not have a chance to cleanup if you are application is killed anyway.

Then you live with it in that case. That doesn't mean you should litter when the application is terminating gracefully. You clean up on shutdown when you are able. I don't see what's contentious about this.
Dragon Daemon – IP Camera Streaming Server
Yes, doing things fast is the unremarkable part. Doing things fast and synchronously over the network is the trickier one.
Stackoverflow.com Is Unavailable
The key word here is "could".
Maskinson: A Tool for Exploring Hashmasks
> No giant gaps between elements or wasted pixels. No fads which do silly things like hide scrollbars or other interactive elements

I call bullshit on this.

Using fixed character cell grid for UI absolutely wastes ton of space. First of all just basic text takes more space in fixed-width than variable width. But the biggest offender is any layout or ui elements that would not need whole cell. Even basic 1px horizontal line takes 10px of height or whatever. Places where 1 or 2 px padding could do will use full cell instead.

And then there is of course the space waste from forcing all text to be same size. For tons of applications the UI elements could do with smaller font than content, but none of that is possible with TUI.

I find your example of hiding scrollbars hilarious, considering that TUIs are in general far worse offenders in that area specifically. For example none of the examples for Rich here show scrollbars..

I do also believe that in terms of performance TUIs leave lot on the table, because they are forced to go through all sort of weird legacy layers. Pushing pixels on screen and receiving key events directly almost certainly should be faster/more efficient than going through tty layer and terminal emulation.