skysight-inc/HackerNews huggingface dataset:
> With Firebase, when doing complex calculations, not only does the data have to leave the database, it often reaches end users

Any time sensitive data reaches untrusted users it is a bad practice, but this needn't be the case on Firebase just because it is serverless.

Firebase cloud functions can be triggered as a response to document saves (or authentications, or a plethora of other things) and run outside userspace, and are available for exactly this sort of work -- keeping the minutiae of upkeep away from the client.

That said, I agree that it's easy to make this kind of mistake with serverless development, but mostly due to lack of existing domain knowledge. It's trivially easy to make similar (or worse) mistakes without a serverless environment by untrained developers, too. It's just a matter of becoming familiar with the toolset, and because serverless tech is newer, fewer are as familiar with them as they are the old things (and there are fewer people to catch those mistakes when they see them.)
Thanks for the feedback, I'll take a look at the README. Does http://hledger.org/download, prominently linked on the front page, have the right info ? My intention was for you to find that, so I'm curious how you travelled from this HN post to the README.

PS: "make" prints its help, a summary of all targets. I agree it's more than a screenful and will need to be viewed with a pager (I'm used to viewing things in an emacs shell). The Makefile is assumed to be used mainly by contributors and does a lot. What would you recommend "make" to do ?
Richard Wolof speaks of this and suggests the answer lies in democracy in the workplace via worker owned co-ops.

https://www.rdwolff.com/socialism_and_workers_coops
Man, I am sorry and my thoughts are with you :(, such a hard thing to have to both process while picking up the pieces of what sounds to be a budding company.

Take some time and just make sure you want to go forward with this on your own or with someone new. That might mean that you are going to go in and do the busy work needed to keep everything running and give the team the support you need. Just make sure you get the support you need as you also need the space/time to make sure you want to keep it going.

If you want to talk there is a contact link in my profile. I'd be happy to chat and help you think through the process.
I see lots of engineers who argue that queues are bad and cause more problems than they solve. "Queues don't have backpressure" is a common complaint. It wouldn't be a difficult thing to add to a queue interface, but people don't do it despite the relative ease of the task. It is pretty easy to get a cardinality estimate on the queue size of any given queue even as it's rapidly increasing and decreasing in value.

The reason why is that it's probably a bad idea in the first place to mix your control and data interfaces into an inextricable knot. Since you're not going to be able to institute rate limiting at a sub-millisecond latency in a distributed system anyways, why isn't your control plane separate and instrumented?

Once you have a separate control plane, you can introduce back-pressure in many different ways and do so with a better understanding of the dissemination of those throttling values throughout your system.

So what I see are engineers who are actually ignoring the the architectural decision with at least as many implications as "queue vs diffuse interface," namely "control and data or just one monolithic system."
Message fanout isn’t really solved there. Also probably quite expensive for the task
Good points, I basically use the same strategy with a few exceptions:

Re: #2 I don't like to focus on conversations related to occupation, I've found people start to open up much more if you focus on who they are/what they actually enjoy doing outside of work, since most people don't like to be defined by their occupation. The random outlier being they work full-time on something they are really passionate/care about, but that is fairly easy to figure out if they mention it as how they spend their free time, or in rare cases they mention it due to the position being (in their eyes) a status symbol e.g. my college friends on Wall Street in IB/PE.

Re: House/car values, I've found people get real weird discussing values and it's sort of 50/50 on commiserating with you/being annoyed about high living costs. Some people love humble-bragging that they can afford to live in/own property in a location 2x * U.S. Avg CoL, others get annoyed you are apparently bragging about your affordable location. One of those things you'd have to play close to the chest. I think it all comes down to if they mention hating the high CoL where they are and their desire to move.
1. try to build the whole thing for yourself in your free time

2. if 1. fails, see if investors are interested with what you were able to build

3. if 2. fails, pivot to something you can build, if 2 succeeds, hire 1-2 trusted employees who fill the gaps you are missing
Great reminder that old does not equal bad!
Glorious - how I wish I’d kept mine!
> Three days ago, the company announced it raised $70 million in a Series-D funding round, and is now valued at a whopping $2.5 billion.

Were the investors made aware of the hack? I also wonder for how long they've known about it, but decided to keep it secret until they get new investment money.
There are highly appraised games like "Papers, Please" or "That Dragon, Cancer" that give their players similar experiences.
15%-20% might be huge for Verizon’s CFO and shareholders, but it’s inconsequential for consumers who are currently being sold some terabit-IoT-self-driving-car-VR-surgery yarn in an effort to get governments to give handouts of property and spectrum to anyone waving the magical 5g sauce.
FIFO queues should fix that issue...

FIFO (First-In-First-Out) queues are designed to enhance messaging between applications when the order of operations and events is critical, or where duplicates can't be tolerated
loudly so the rights holders can hear

Yes that's right, clicking 15 times for every single file is easier than having a script automatically download a series. ;)
From most employers' perspective, probably yes.
They own IP but there are lots of valuable things you can do for a startup that don't involve important IP.

For b2b you can start talking to potential clients in the space. They don't own your network.

For b2c you can start finding communities and building an email list. They don't own your audience.

This is great because as a dev it forces you to do the hard stuff first that has the biggest impact on your success or failure. Not coding which is the fun easy part(for coders).
Duplicate of https://news.ycombinator.com/item?id=20019206
Hmm. It seems a bit awkward if you have a variable number of consumers?
No. That's ridiculous. To some extent I want the fun of the retro machine without the hassle or $30k price tags of the days of old that helped inculcate that reverence in me.

I can't help but compare this to the Nvidia Jetson I just bought that can run SBCL just fine, costs 1/3 as much for the entire feature kit sans laser cut Labo-style keyboard, and uh... I could actually do things with. I don't expect to get exactly the same value from a limited run retrocomputing platform, but I at least expect full transparency on the source before I buy, and an emulator so if I do make something I like and the board faults out I'm not SOL.
I hope everything they claim comes to pass. Though with Intel's new 10 nm process, I don't know how much that's going to buy them - hopefully enough to really put the heat on.
Practice. You are a human. You've seen someone comment on the weather before. Small talk helps people learn enough about each other to feel comfortable communicating more freely. When you initially meet you do not know what sort of person you're speaking with and what they may like or dislike. Providing some training data for interacting with this particular person to your brain can help it become more comfortable treading into "big talk" territory.

What you can do to best move things in that direction should depend almost entirely on your unique self as well as the situation and whoever else is in the conversation. Start with whatever common ground you know you have, get a lay of the surrounding land, and then you can more safely prospect out for more stimulating topics.

It may be tempting to codify the process of small talk, but you'd really be codifying the process of getting to know other people and letting yourself be known. This can be a valid strategy, but loses some degree of humanity. People are endlessly unique, and no amount of hard steps can account for the full set of factors at play. The human brain is an amazing machine for exactly this problem.

Practice. It will feel risky, but you will survive, you will learn, and you will improve.
Mother Nature’s Target List
1) Do this analysis for your own user base, universal stats may not be relevant.

2) It's more helpful to look at aggregations on cuts that will impact your product and codebase. e.g. % of devices above API level 19, % of users with each screen size grouping, what % of our users are on tablets, etc. These answer questions when you should drop support for an API, when you should start using new features, how many different UI mocks you need. Those are the relevant questions.

3) Do test your UX across a couple different phones categories. Samsung & vanilla Android have different button placements and icons.

4) There are plenty of libraries and tools available to handle this problem. I won't say it's not something to think about, but it's usually pretty low on my list.
I personally prefer what you just outlined over jQuery.

It's more explicit—that will almost always win with me.
Maybe so. :) It's also code reuse, actually working, and quite common for non-trivial end-user apps, particularly in the Haskell world. I'm not sure what kind of software you're used to. It's interesting to imagine how hledger would be different if I wrote everything myself, but I have to think it would be far less further along.
>First though: some people are simply hard to talk to. They just don’t give you anything back

Lol, you can talk to anyone whenever they are talking back or not is not your problem.
A whole slew of AWS services went down that day. Tim's not wrong when he indicates that almost every service in AWS has a dependency on it (Amazon has services split up in to tiers based on how much they can rely on other services for critical components, SQS is pretty high up in the tiering.)

I was on-call that day for an AWS service. There wasn't much I could do but sit muted on the conference call and watch some TV, waiting for the outage to be over.
I've seen a few apps that began as vanilla JS or jQuery updated to use react as the requirements grew and the "simple" JS started crumbling under its own weight. So I'm sympathetic to the idea of just starting with a framework from the get-go.

That's why I'm excited to see how Phoenix's LiveView turns out. It gives the "server side rendered, sprinkling of JS" approach more room to go in. It won't replace something like Google Maps, but there's a whole class of applications that would previously be on the border of the decision between react and server side that can be pushed into server side.
Was Stephen Hawking's Illness Psychosomatic? (No.)
GPUs are the 1980s style SIMD compute system. A GPU is designed to run many, many, many threads. A Vega64 for example, can run 163,840 threads at the same time (4096 shaders x 10-way SMT x 4-threads per unit)... while a CPU Threadripper 2950x can "only" run 32 threads at once (16 cores x 2-way SMT).

However, the GPU-shader is far more constrained than a CPU-thread. A GPU-shader is "locked" to performing the same tasks as other cores. That is to say: 64 "GPU threads" on AMD systems have the same program counter / instruction pointer.

32 "GPU threads" on NVidia systems have the same program counter.

This means that if one thread loops 10,000 times in a program, then that will force 32 other threads (on NVidia) or 64 other threads (on AMD) to loop 10,000 times (even if those threads individually only need to loop 500 times).

This restriction doesn't really matter in cases of matrix multiplication: where all threads would loop the same number of times. But in cases of like, Chess Minimax algorithm, the "thread divergence" makes it difficult to actually port Chess Minimax to a GPU.

-------

Machine learning... (EDIT: or more specifically, Convolutional Neural Networks) is almost purely a matrix multiplication problem, making it ideal for the SIMD GPU architecture.

CPUs have SIMD units by the way (SSE, AVX, etc. etc.), but GPUs are specialized systems that can only do SIMD. So a GPU's SIMD unit is inevitably going to be bigger, more parallel, and more efficient than a CPU's SIMD unit.

-------

EDIT: Google's TPU goes beyond the GPU-model (SIMD architecture) and has dedicated matrix-multiplication units. These units can only perform matrix multiplication, nothing else, and are designed to do it as quickly and power-efficiently as possible.

NVidia's "Turing" line of GPUs have dedicated matrix multiplication units called "tensor units". NVidia basically grafted a dedicated FP16 matrix multiplication unit onto their GPUs.
What I always wonder is that AI requires data to learn from. When Google sends everything to their servers, they have that data from all over the world. So they can build better AI. If their competitors implement privacy-respecting solutions, they are doomed to be behind Google, because they don't have data to learn their AI. My personal anecdote: my speaking English is quite bad and Apple Siri does not understand me well. But Google Assistant does wonders, it's fascinating how well its speech recognition works.

I have a feeling that AI technology is inherently anti-privacy.
There are still more idiomatic methods you can use, ie:

[...document.querySelectorAll(selector)].filter(filterFn);
AFAIK the rangefinder on the targeting system is pretty good, with that data and the data of the plane (direction, altitude, velocity, etc...) getting the speed of an object is pretty trivial.

If this is indeed a bird, then you can definitely trust the sensor's data. If it's a smoke plume, something ethereal, ball lighting or anything not quite solid, the rangefinder will give false values.
If you need that array you could just embed a script tag in your html template.
previous discussions:

2016: https://news.ycombinator.com/item?id=11886318

2017: https://news.ycombinator.com/item?id=15413377
> You are right, but it's kind of beside the point given the context is web libraries.

I don't think it is.

> so it's a library on top of an abstraction. It is just as simple to learn, so why not learn the core abstraction, with which all other DOM based abstractions are built from?

DOM APIs are not as easy to learn. They are verbose, cumbersome, inconsistent in behaviour and capabilities. Even the staunchest evangelists of the "use the platform" movement run head over heels to anything that frees them from DOM APIs [1].

There's nothing wrong with learning jQuery (or any of the other libraries or frameworks) first, and then learn the core APIs to see how stuff works (and run away in horror). However, they are not a prerequisite for "vanilla js" or "core JavaScript".

> jQuery will eventually go away while the DOM API is part of the web's core stack.

That's the end goal of jQuery: to become the disappearing library. That is, to become irrelevant when the capabilities it offers appear in the browsers themselves. However, this will never happen as long as w3c goes out of its way not to offer any APIs with a sensible developer experience.

----

[1] You can see it in Web Components where "use the platform" is immediately abandoned the moment lit-html hits the scene or Template Instantiation is proposed.
I'm really sorry, but this is naive. It may be true that in your case you have complete control over your laptop and there is no possibility of logging, but this is not broadly the case, and it is not a good litmus test of an employer. If you start working for a company with lots of employees and valuable proprietary data, they will have access to take a look at what you've done with your company computer. And not because they're evil, but because "insider risk" is a real problem that scales with a company's size and success. An employee could be looking up private information of an ex-partner, or sending a zip file of customer credit card data to their private email account, the company could be sued and need to provide information on those acts during discovery, etc. I think good employers should assume good faith by their employees and should not employ the sort of active monitoring and productivity tracking stuff that exists, but I think having the ability to reactively look at backups and system logs is important.
They have been forced.

Unless the executives want to go to jail, they will comply with export restrictions.

If this gets extended to GitHub (potentially likely), then that would be a disaster both for China and for open source.
+1 for Au Pied du Cochon. It has the perfect blend of unassuming, slightly chaotic environment and high quality, indulgent food.
Even if you are legally in the clear, your company’s lawyers could still try to fight for it anyways.

Make sure you Never use company resources, and next time, consider getting a copyright assignment exemption before beginning work.

The reality is that it probably isn’t really likely all companies are out to steal your personal work through dubious copyright assignment agreements, but that doesn’t mean you shouldn’t be super aggressive.
That's fine so long as nobody claims it's an even playing field.
I don't think it's hacky - it's using documented Postgres functionality in the way it's intended. Engineers tend to react that way to anything unfamiliar, until they decide it's a good idea then they evangelise.

What does "hacky" even mean? If it means using side effects for a primary purpose then no, SKIP LOCKED is not a side effect.

I researched alot of alternative queues to SQS and tried several of them but all of them were complex, heavyweight, with questionable library support and more trouble than they were worth.

The good thing about using a database as a queue is that you get to easily customise queue behaviour to implement things like ordering and priority and whatever other stuff you want and its all as easy as SQL.

As you say, using Postgres as a queue cut out alot of complexity associated with using a standalone queueing system.

I think MySQL/Oracle/SQL server might also support SKIP LOCKED.
Four of the Top Five Mobile Apps Feature AR
Read your employment contract, see if it contains this Sex Tape Clause
Sure, but that's not the issue I'm addressing here. If a project insists on github no matter what, and github gets blocked, and the project keeps insisting on github, obviously that's a problem. Nobody is denying that. It's obvious.

My point is to underscore the point of the ancestor of this thread: that you (the project) don't need github. You can use all the strength of git without github.
it is not supposed to be gambling
Agree, that part is indeed super annoying.
I’m happy I’ve been able to convince myself that I can live with it.
See also http://hledger.alhur.es/, hledger compiled for the web in a playground (you can also save your stuff to remoteStorage).

Source: https://github.com/fiatjaf/hledger-web
Yes and No. Every library is different. A university library may be better stocked, but my local library's computer section is mostly old books on outlook, Excel, and Photoshop. There are some coding books, but they're mostly old books on VB and the like that might be difficult for someone new to programming to setup. The topics on loops and branching and variables are probably all relevant, but it's harder to learn just by paper.
Rust core dev Brian Anderson joined Pingcap, a Chinese company created TiDB https://github.com/pingcap/tidb
To initiate a small talk you just open a mouth and make some sounds. If the other person is lucky to understand your language - you have initiated a small talk, congratulations xD

I'm waiting for questions on how to initiate breathing or blood flow. Hint: you don't need to do anything, it just happens.
That was simplified code to create just one element and add it to the DOM.

Once you write it not once, but twice, or five times, you will either switch to a lib/framework, or to jQuery, or will write your own wrapper not that different from jQuery.
Ask HN: Does Passion ever come back?
The last time I felt "passionate" was way back in grade school. I want that jump-out-of-bed, work-all-night feeling again.

Does it ever come back? Should I even be pursuing passion? The reason I ask the latter question was a previous HN post that concluded the average person justifies taking advantage of people who claim they are passionate. If that is the case, how can I be comfortable being a jack-of-all-trades master of none?

Finally, I got diagnosed with depression (take it with a grain of salt). People who consider themselves struggling with depression, how do you find that energy/joy again?
Microsoft builds Anechoic chamber to test Surface tablets
When I was in elementary/middle school I would become familiar with entire racks of books in the library, starting with the Tom Swift and Hardy Boy sections and then moving onto the adult scifi section.

Surprisingly, you can duplicate a lot of the "see similar stuff" functionality through Amazon's recommendation engine (for new books anyway). The other things people have viewed/purchased for any given item are usually quite useful, and aren't limited by physical proximity, e.g. the Band of Brothers DVD listing on Amazon includes in its related items many nonfiction books, which you would never get from the strict categorization scheme in the library.

I wish online library catalogs would do a better job of replicating this recommendation/similarity engine, because on Amazon things tend to be limited just to things that are still in print and for sale.
Toastmasters meetings tend to include a section called "Table Topics", where people get to practice their small talk skills. It's also the one section where guests get to talk, so you can try it without joining.

TM Clubs can vary quite a bit in their quality and philosophy, and in places like the Silicon Valley, there are tons of them, so it might be worth exploring a few of them before joining one (or deciding it's not for you).
This all seems exciting for the custom builds market but is this a big enough market to even put a significant dent in Intel's revenue? I assume most of the Intel revenue comes from their laptop and server chips; but somehow most of the laptops I end up seeing are Intel and most data centres use Intel predominantly.
Google revives controversial cold-fusion experiments
I can't see how that would break it either, hence the low confidence percentage!
The article makes it clear that the library still has enormous utility for students and researchers in the form of providing a focused space for study and collaboration. Those needs aren't going away anytime soon, and no other place fulfills them nearly as well as a library.
Depending on the project a database (Postgres) can make a nice database, queue and cache. You get transactions among all three which which makes life much simpler in the beginning and it will happily march along processing thousands or tens of thousands of TPS. You can scale by adding read replicas and eventually moving to separate databases for each purpose.

If you're on the JVM then ActiveMQ (and other Java queues) will usually run embedded and have options to use a database for persistence.
Apple's Top Secret Testing Facilities
As with all things just having the option would be nice, but it does not mean it is useful or a good idea for everyone to use it.

For personal stuff I would much rather a kill switch than a nasty surprise. For _some_ businesses, that is probably the wrong decision though.