skysight-inc/HackerNews huggingface dataset:
At work, I setup the build system to use Apache Archiva to cache Java dependencies, along with other services like apt-cacher, devpi, and squid, for Debian, Python, and general HTTP caching, respectively. We build all of our images atop the "bitnami/minideb" base, and split the Dockerfiles into "partials" that source a dynamic parent image via a build argument. For example, the partial that sets up Debian package and HTTP caching:

ARG base
FROM ${base}
ARG apt_cacher_host
ARG http_proxy
ARG https_proxy
ARG no_proxy
ENV HTTP_PROXY="${http_proxy}"
ENV HTTPS_PROXY="${https_proxy}"
ENV NO_PROXY="${no_proxy}"
ENV http_proxy="${http_proxy}"
ENV https_proxy="${https_proxy}"
ENV no_proxy="${no_proxy}"
RUN set -ex; \
if [ ! -z "${apt_cacher_host}" ]; then \
echo "Acquire::http::Proxy \"${apt_cacher_host}\";Acquire::https::Proxy \"false\";" >/etc/apt/apt.conf.d/01proxy; \
fi; \

For Java, another partial creates a Maven settings file with the Apache Archiva URL:

ARG base
FROM ${base}
ARG maven_mirror
COPY devops/image-partials/java-artifacts/settings.xml /tmp/settings.xml
RUN set -ex; \
env; \
if [ ! -z "${maven_mirror}" ]; then \
sed -r "s!%%MAVEN_MIRROR%%!${maven_mirror}!g;" /tmp/settings.xml >/usr/share/maven/conf/settings.xml; \
fi;

The important part of settings.xml is this section:

<mirrors>
<mirror>
<id>archiva.default</id>
<url>%%MAVEN_MIRROR%%</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
</mirrors>

And voila, Maven will go through Archiva for all its dependencies, which are transparently cached so that subsequent builds don't need to re-download everything again.
Then I think we have a misunderstanding of terms. To me "multicore" == "single process, many threads". Apologies for the confusion.

It seems that now we are both on the same page. Single process & many threads are problematic for GIL languages and that's why I gave up using Ruby for scrapers. GIL languages can work very well for the URL downloading part though.
yeah, but now they've signed a deal. the negativity on hackernews nowadays is hilarious. are you all depressed or something?
Nuclear weapons work great to keep the peace... until they don’t. The notion that they greatly reduce the occurrence of war seems to be spot on... but you’re trading an ongoing problem for an ongoing small chance of a complete catastrophe.

Your proposal to promote peace through nuclear proliferation would probably work great for a while. Then twenty or fifty or a hundred years down the line, something will go wrong and civilization will die. That doesn’t seem like a good tradeoff to me.
No, although they do help a lot. I tend to make heavy use of virtual desktops when I'm away from my big monitors.
That's what I used.
Much needed reply to the parent.
> but isn't that how Nature works

It might be how the nature works, but it is definitely not how Nature works. Capitalisation matters.
Bummer, I preferred it in some ways.
Some execs aren't coachable. Don't be one
yup. basically Hegel's dialectic: https://en.wikipedia.org/wiki/Dialectic#Hegelian_dialectic

Thesis --> Antithesis --> Synthesis
I'd wager that microservices, a lot of the time, are basically used as a management structure rather than for their benefits as pure tech

A lot of software is used to control or impose someone's will on others organizationally.
And they can be a right mess to wrangle because upstream gets into some artistic frenzy, and shouts down anyone that worries about the ensuing breakages as luddites and haters.
It's not exactly clear if patents help or harm the drug industry.

It's clear they play some very important roles, and the entire industry is structured around them. So, I sympathize with people that think it's too risky to change them. But I can't agree with that certainty on your comment.
I beat them to that by a considerable amount of time:

https://jacquesmattheij.com/deadbook-the-long-term-facebook/
> what happened to just building a JAR

(1) JARs don't have native code (unless you package that in an extract it at runtime)

(2) JARs don't have the Java runtime (unless you package that in to an executable and extract it at runtime)

(3) JARs can't be easily isolated or managed, at least not to the extent of Docker
This is true of Mona Lisa, where you wait in a huge line to get 3 meters away from the portrait, and have maybe a couple minutes to look at best. Reproductions win out there.

But for Van Gogh, they do a terrible job a capturing the heavy texture of the paint. On flat paper he's a decent artist, cool expressionist style. But the real things feel alive; they have physical depth and draw the viewer into the painting. It's like night and day.
Computer Science... Now there's an oxymoron. At most institutions the subject matter is not really about computers nor is it science, at least not in the physics or chemistry sense.
It was a ritual for those kids to go into the cave. We're talking about 12 sets of parents and associates that knew this.
also Mickens https://www.usenix.org/system/files/1401_08-12_mickens.pdf
I had to look it up too. Just two people who each follow each other on social media.
> This of course completely false - which is why we use filesytems and files, more than we use databases ;-)

But consider: there is no application in existence that attempts to work with the contents of every kind of file that can possibly exist on a filesystem. The only kinds of information that any application can reasonably aggregate across all files are those which conform to the standard metadata schema the filesystem applies to all files. Creating an application that aggregated anything else across all files is essentially impossible -- no sane human would attempt to write an application whose functionality depended on them writing parsers for every single file format that could possibly be found in a filesystem.

And yet, for most uses of MongoDB it is acting as the datastore for a single application, which in order to do any number of things normally demanded of applications (queries, aggregations, CRUD, etc) must be able to read every variety of document that anyone has ever thrown into the datastore, whether those variations were planned (lets add the following fields to all new Comment documents) or accidental (whoops, a bug led to 3 days worth of Comments missing one or more of the following fields).

In the latter scenario, the "it's like a filesystem, store whatever you want!" actively works against the controlling the complexity of the application, to the programmer's great detriment.
Common theme in Science is showing how gut bacteria etc... is affecting inflammation and alzheimers.
If we "knew" that eating refined sugars/processed foods in our diets was contributing to our chance of getting alzheimers. How many people would actually stop eating refined sugar... probably not as many as we hope
Yeey another blogspam
A small laptop with an Xbox controller is a notably less portable setup than a Switch, especially when you want to use it on something like public transit.
To be fair, Docker is not somehow magic. It's "_something_" is a Linux kernel + Docker daemon. That's just a rather small/common dependency.

To actually have no "_something_", you need unikernels.
It's because of the snark. People don't like sarcasm because it's negative.
Scaling up molecular pattern recognition
Bob Martin said in one of his lectures that Software Engineering is the only field where people can't even agree on one thing.
Synner–A TCP SYN Client Written in Rust
Microsoft July 2018 Patch Tuesday Fixes 53 Security Bugs Across 15 Products
I am entirely put off of the usefulness of this script by the manner in which the source was written. Oh well.
More importantly, what cultural influences lead to this style of communication?

It normalizes a non-deterministic software universe with lowered expectations of correctness.
In the US, a credit card company doesn't generally have any claim on the merchandise, credit cards are an unsecured loan, and the claim is on dollars from the account holder and/or card holder or their estates. In case of fraud or bankruptcy, there may be some clawback opportunities on transactions though.
Hey, would you be up for a skills exchange? I'm pretty good at fine art, both traditional and 3d stuff. It's definitely stuff you can learn.
The area that I know about is the challenge of asynchronous communication.

That is, when a web application makes a request to the server, the response is not returned to the caller but is instead to delivered to a callback function which may or may not get called later.

Because you don't know what order callback functions get called in there is plenty of room for "race conditions" but you don't have the tools that you would use to manage these in a multithreaded environment or multiprocess environment.

It is simple to autocomplete form results without a framework, but if you have some kind of GUI where doing something somewhere might have effects on other parts of the screen you have to route information from the callbacks to all the stuff that has to be updated it will drive you crazy, not to mind the relationship between initializing UI components vs updating their content, how to implement caching (tricky when returning directly with a cached result as opposed to a callback causes a "race condition"), etc.

All of this is pretty manageable if you have a systematic approach to how communication updates the UI, and that is something most front end frameworks provide.

There are other issues such as cross-platform, configuration management, build (cut away junk and compress to speed up the site) and working around performance problems with web browsers, etc. that frameworks also address, somebody else can give you a better answer for that.
Shutting Down the BGP Hijack Factory
How CockroachDB Helps Solve GDPR Compliance
For Mozilla to be successful they have to appeal to the largest demographic possible. I'd only ask that Mozilla make additional technical information easy to find and well laid out.

This is LastPass's page:

https://lastpass.com/support.php?cmd=showfaq&id=1096

But that too you won't find when you use the app/extension normally.
For text (and drawings, figures) I'd prefer 600 to 1200 dpi - as in print. But realistically today, I'd like to stay close to at least 300 dpi.

Scaling issues and glitches really ought to be things we can get around soon enough.

Battery/power is likely to remain a trade-off for a while though (although there were some efforts on hybrid eink/lcd screens that could trade refresh for power - for certain use cases).

All that said, and somewhat more pragmatic: 1080p on a 13" really isn't near high enough dpi for the nice immediacy of drawing with a proper pen on something like a surface pro.

It's one of those cases where a difference in magnitude becomes a difference in kind.
You can encrypt a text file on your computer as well. Doesn't change the fact that once decoded in memory or sent via the web browser it's all clear what your password are (here are the true security threats)...
Or you can just mock your death.
I'm thinking it's more of a software business life cycle. Microservices are somewhat easier to deploy, which makes it easy for developers to add capabilities to be used by UX developers. Once the eye candy and rough functionality is in place, the sales team signs up new clients. The company draws down investment in developers and puts more money into infrastructure. The product moves from developer land to system land which is monolithic and can handle heavier loads.
Commands and events
A battery pack in a Tesla car has much more to it than the cells themselves. There are cooling systems, monitoring systems etc. Tesla's battery packs are way ahead of anyone elses and produced at a lower cost per kWh

E.g. https://www.forbes.com/sites/greatspeculations/2017/08/18/ho...
They do. After the cold start, things are just run in memory.

Java for example will keep your static variables and such in memory, and keep /tmp until you haven't called the lambda for a while.

With GoLang, they call start your program, and just call the handler method as required.
Almost all software development tools sacrifice some speed to gain some ease of development, otherwise we would all write Assembly.

Whether the tradeoff is worthwhile depends on your needs, including your team size, product complexity, and user preferences.

For most of us, writing vanilla JS will eventually waste more time than it's worth.

(Nitpick: React is a library, not a framework, that ideally replaces boilerplate/reptitive code with a simple API. In practice, it doesn't always work that way, though.)
Show HN: LiveJam – A new way to listen to music on YouTube
Starzelius Verily?
System.IO.Pipelines – High Performance IO in .NET
Rails was never really a major leap forward in anything, more so an evolution with convention-over-configuration and a strong community presence that established best practices early. It also hasn't been "cool" for years, it's an entrenched player that "just works". One could argue with all the Rubyists going to Elixir that's part of the cycle, but for many people that's been a net positive.

And then there's those altogether dropping Elixir for Go...
With every destination living in one service, our developer productivity substantially improved. We no longer had to deploy 140+ services for a change to one of the shared libraries.

I say this as someone who worked in an environment widely castigated for its "monolithic" nature: It sounds like trying to have "modularity" hurt you, because you didn't actually have it in the first place. When you stopped pretending, the pain went away.
Advice on finding more clients
We recently (accidentally) received a request for an ERP implementation using Odoo. We had played with it in the past, so we got to work, and implemented a manufacturing, inventory workflow for them.
Our client was very happy with the results and has started using it.

We want to replicate this success with more clients, but have to idea on how to find more clients.

I wanted to seek advice from you guys here to see how I can find an adviser / Growth Hacker(?) or if you had tips on how we could do this ourselves ?

Thanks in advance.
Firefox Lockbox architect here. Thank you for the feedback. Your comment is fair; we can, and will, do better on the details. The language we have today is the balance marketing, security reviewers, and engineering could reach for the masses to feel informed without being overwhelmed and confused.

As you found, Firefox Accounts derives the encryption key from your username and password on the client-side; the server is never aware of your password. That encryption key protects your data on your device using AES-256-GCM, and is stored in its security enclave behind Touch ID or Face ID wherever possible.
We either have different definitions of proprietary, or I'm misunderstanding something. The format appears to be open and documented. https://github.com/mozilla-lockbox/lockbox-datastore
Hi, I'm the author of the post, thanks for sharing your thoughts!

You're absolutely right we don't know how Lambda works. We have read what we could find that's publicly available, and done a bunch of testing, but Amazon doesn't share all that much about their architecture.

I agree that the cold-start times of Lambda are slow, particularly with languages like Java and with VPCs. My plan at the moment is to write a blog post focused on cold-start times specifically, when I can figure out how to accurately test that around the world.

I'm not entirely sure why API Gateway would add hundreds of ms of latency. We also do authentication processing with our Access product, for example, and it certainly doesn't add anywhere near that. I also don't have any of those API Gateway features enabled to begin with. If you would very much like it, I'm happy to test a Lambda by hitting the Invoke API directly, but I doubt you'll see much of a difference. As the post says, Lambda is granting us a much smaller quantity of CPU time, there's not much you can do to get around that.

I apologize if the transitions between global and region-specific tests are unclear. The majority of the tests are being done from DC, specifically to focus the comparison around execution time, not global latency. I did my best in the post to specify where I was running the test from. If you have an idea of how that can be better expressed please share and I'll do my best to incorporate it in the future.
It is also held back by its implicit stuff, and counter-intuitive internal logic. Jekyll is infinitely more intuitive. I tried both: went from Jekyll to Hugo, and back and I'd never touch Hugo again.

I would also mention that sometimes the Go internals leak and it is also not convenient.
It's as if these people just take a buzz-word and start applying without ANY consideration about basic stuff about distributed systems. Are there any adults around in these firms or what is going on?
In my experience, there's a lot of cargo culting around microservices. The benefits are conferred by having a strong team that pays attention to architecture and good engineering practices.

Regardless of whether you are a monolith or a large zoo of services, it works when the team is rigorous about separation of concerns and carefully testing both the happy path and the failure modes.

Where I've seen monoliths fail, it was developers not being rigorous/conscientious/intentional enough at the module boundaries. With microservices... same thing.
One example I'm familiar with that sounds like microservices is the Robot Operating System (ROS). At its heart it's just a framework for pub/sub over IP, it just happens to be targeted towards robotics. A ROS system comprises of 'nodes' for each logical operation e.g. image acquisition -> camera calibration -> analysis -> output.

The system is defined by a graph of these nodes, since you can pipe messages wherever they're needed; all nodes can be many-many. Each node is a self-contained application which communicates to a master node via tcp/ip (like most pub/sub systems a master node is requried to tell nodes where to send messages). So you can do cool stuff like have lots of seprate networked computers all talking to each other (fairly) easily.

It works pretty well and once you've got a particular node stable - e.g. the node that acquires images - you don't need to touch it. If you need to refactor or bugfix, you only edit that code. If you need to test new things, you can just drop them into an existing system because there's separation between the code (e.g. you just tell the system what your new node will publish/subscribe and it'll do the rest).

There is definitely a feeling of duct tape and glue, since you're often using nodes made by lots of different people, some of which are maintainted, others aren't, different naming conventions, etc. However, I think that's just because ROS is designed to be as generic as possible, rather than a side effect of it running like a microservice.
I agree with most of the other criticisms except the identity stuff, because I'm disappointed by our industry. We were going to open up the world and make it a better place but it seems to have gone off the rails and become much more like the finance industry or other grim husks. The pretense remains but the reality is pretty cancerous. The platforms that are supposed to bring us together gave us depression, massive political division and put us under constant surveillance. The innovative ideas gave way to chasing fads for that sweet vc cash. The decentralised experimental currency is now penny stocks on steroids (although you could argue that was inevitable). I guess you could say the utopian vision died a sad death and not everyone wanted to see it go.
Balloonfest'86 Disaster
Now hackers only need to focus on such application like password manager and they can impersonate you
The oils on my fingers attack the print on my keyboard. After a few years the "home row" is very faded. Fortunately my password is not something I type enough other things that you can figure out passwords out based on this.
I run https://www.scraperapi.com which does this!
Our security history is pretty good, and we provide a wide variety of security features like 2FA, TLS with Let's Encrypt certificates, various password and login policy options, etc.

I would argue that non-technical users are safer using Virtualmin (I can't speak to the security history or features of any other panels) than doing it themselves, because it's easy to make security mistakes when doing it yourself if you don't have a lot of time to research all the options. If someone can invest the time to learn how to manage all of their own services, and can invest the time to build out all of the security features included in a default Virtualmin installation, then absolutely removing the GUI is removing one vector of potential attack; you should always turn off services you don't need. But, based on history, I can say with reasonable confidence that Virtualmin is probably not going to be the way an attacker gets in (it's probably going to be weak passwords, old software, poorly designed custom web apps, etc.).

Disclaimer: I work on Virtualmin.
I tried and in my case it was 2x times slower. Probably, because of extensive use of reflection or something like this.
... step back and embraced an approach that aligned well with our product requirements and needs of the team.

This ^^^. Everyone has an opinion on the Internet... frontend, backend, no-end. It's probably not going to align perfectly with your needs (are you Google/Facebook?) . There are a lot of tools & specs out there. If your blindly following someone else's opinion without truly understanding your users, product, & team you'll probably accrue debt.

Also, devs often forget the team. If your choice of tech cuts the team's velocity in half then it probably wasn't a good choice... even if it had some other technical benefits.
China, IIRC, only has 300 nukes. The US and Russia have ~2000 each. The US and Russia could go to 1000 each without feeling any need to wait for anyone else to disarm. (They'd probably want to do it in lockstep with each other, though...)
agreed that Angular and React are more trouble than is needed

Vue provides the right amount of helpfulness vs. flexibility. As simple as jQuery but with the power of a full framework
EFF Dice-Generated Passphrases
When you die with a debt and the heirs wave their rights to the estate the debt dies with you.
Arpadyne – The New Internet (no DNS and no web servers)
what happens when the java code breaks the c code? Or does everyone roll-their-own everything in each language?
Is that so? So by this amazing reasoning, we should refer to both types of camps using the same term. Since the correct term is evidently "extermination camps" (see surrounding thread), that's what they should be called.

"Historically incorrect" is just a way of saying "presently correct". For instance "sensibility" is not a historically correct way of referring to a rational disposition. Historically, it meant what we today call "sensitivity".

Fuck historically correct; I live today, not in history.
I’d suggest this one instead:

http://www.mrmoneymustache.com/2012/03/16/get-rich-with-blog...