HNHacker News
TopNewBestAskShowJobs

TomBombadildoze

216 karma · joined December 11, 2015

submissionscomments
TomBombadildoze··on Alpine makes Python Docker builds slower, and images larger
Assuming it's even possible (there are cases where it isn't), unless you're doing the entire operation in a single RUN instruction (install dependencies, compile, remove dependencies), deleting dependencies isn't enough because they'll exist in an ancestor layer before you delete them. That leads to image bloat.

This is why multi-stage builds are a thing, which the author advocates against doing.

TomBombadildoze··on AI Dungeon 2 costing over $10k/day to run on GCS/Colab
Someone, probably: People who don't know how their services work are doomed to spend lots of money on them.

From the GCS pricing page:

  Network egress within Google Cloud applies when you move or copy data from one bucket in Cloud Storage to another or when another Google Cloud service accesses data in your bucket.

  Within the same location (for example, US-EAST1 to US-EAST1 or EU to EU) -- Free
From the original tweet (not the linked reply):

  For reference most of the fees are from transferring from NA to EU and ACAP
It's costing them assloads of money because they're moving data between regions. AWS works the same way. Azure is probably also the same but their pricing page is incomprehensible so who knows.

Lesson: if you're going to use data in a given location, you need to host data in the same location.

TomBombadildoze··on Richard Stallman steps down as as head of the GNU Project, effective immediately
I must admit... I chuckled when I went looking for clarity and a wild Stallman appeared.
TomBombadildoze··on Richard Stallman steps down as as head of the GNU Project, effective immediately
If you consider Wikipedia and its citations to be reliable sources, it would generally be considered bad form to expect others to address you as Doctor.

https://en.wikipedia.org/wiki/Honorary_degree#Use_of_title_a...

TomBombadildoze··on How Apple Kills Indie Developers
> This is just the reality of a faceless bureaucracy which isn't accountable to anyone or anything.

Please. They're accountable to their one billion plus customers who depend on them to keep as much riff raff as possible out of the app store. They're likewise accountable to the developers who created this market.

Apple's process is imperfect. They certainly raise a lot of false negatives. The requirements are sometimes onerous and nebulous. However, the alternative is knowingly peddling hot garbage and harming their customers, partners, third-party developers, and thus, their own business.

TomBombadildoze··on WeWork’s Adam Neumann Steps Down as CEO
> I almost took a job at WeWork just 2 months ago with a recruiter working very hard to convince me I'd be rich when they IPO.

Independently of what you read here, you saw right through this as total bullshit, right?

Right?

TomBombadildoze··on What's Coming in Python 3.8
> Not to mention the (ongoing) Python 2->3 debacle.

When will this talking point die? It's not "ongoing". There's an overwhelming majority who have adopted Python 3 and a small population of laggards.

TomBombadildoze··on Trump Signs Executive Order Compelling Disclosure of Prices in Health Care
> The government has no money. So you're saying the tax payers should be paying $2000/mo/recipient.

The government is able to achieve economies of scale that the private sector can't. I think you know damn well "the government should be giving this away for free" is just a simplified way to describe the economics.

> You could argue this is for my/public good, but you didn't ask me, you didn't get a representative vote from me. In your scenario you've just decided how to spend my money.

Right, you got yours, so you're rationalizing away your part of the cost burden.

You're participating in a society. The consent is implied. If you don't like the terms of the contract, feel free to stop enjoying all the fruits of civilization.

TomBombadildoze··on PEP 594 – Removing dead batteries from Python's standard library
> Tests are not automatically run and centrally reported as part of the installation process.

I _hate_ this working on Java/Maven projects. Why do I need to run all the tests in order to install dependencies? The tests should have been run at _packaging_ time. I'm installing binary dependencies, why should I not trust that they have been tested?

These are fundamentally separate concerns. If you're worried about the robustness of your dependencies, review them first.

> There is no good heuristic for picking one package over the other when they occupy a similar problem space. This is mostly a cultural problem, the community's efforts are lackluster.

Stars on Github? Issues opened vs closed? Stack Overflow? The community is active in all sorts of places and it's not that hard to get a feel for the prevailing best tool for a given job. It just takes a little effort. The community's responsibility is to maintain those parts which they have created, not give you recommendations.

> virtualenv is not installed by default

python -m venv

> Semiautomatic packaging tools (e.g. pypi into rpm)

If you want to package your application and its dependencies as an OS package, that's fine. Do it as a single unit and isolate it from the rest of the system. We have venv (or pyenv if you need a different version of Python) to solve this.

I've experienced every headache there is with Python packaging. It's been bad, it is now better but still rather quirky, but it does require some domain knowledge. If you know how to use it, you will rarely experience serious problems.

TomBombadildoze··on Maybe You Don't Need Kubernetes
> Nomad is not a cheap imitation of Kubernetes

Nomad isn't a cheap imitation of Kubernetes but all these components taped together are. Kubernetes is no less composable than a system built on Nomad, it just includes more functionality from day one.

If you're running containers with a orchestrator like Nomad, at some point, you'll need DNS. So you do it yourself and then you're managing Nomad and DNS. Then (we'll assume, because you're using a container orchestrator to manage multiple services) you'll need service discovery, so you write some jobs and event handlers to glue together Nomad and your DNS solution. And then, because you're a team of responsible people, you'll want to store secrets securely, so you graft in Vault. And then, you realize zero-downtime config changes would be great, so you slap Consul in there and write some sidecars or library code to handle config updates. Then metrics. Then logs. Then rolling deployments. And it continues, indefinitely, as you add features.

If you started doing this five years ago, fine. If you start doing this today, you're out of your mind. You're just doing work for the sake of "but it's composable". There's a reason why teams still build applications on frameworks like Rails and Django even though they don't need half the features--it's more important to them to get something functional up and running than it is to satisfy delicate sensibilities about only using what's needed. Kubernetes is the analogue in the world of systems and operations.

TomBombadildoze··on Maybe You Don't Need Kubernetes
This starts with a lot of "you don't need Kubernetes" and then concludes with a pretty compelling argument in favor of using Kubernetes.

From the "The Nomad ecosystem of loosely coupled components" section:

> It integrates very well with other - completely optional - products like Consul (a key-value store) or Vault (for secrets handling).

> At trivago, we tag all services, which expose metrics, with trv-metrics. This way, Prometheus finds the services via Consul and periodically scrapes the /metrics endpoint for new data.

> The same can be done for logs by integrating Loki for example.

> Trigger a Jenkins job using a webhook and Consul watches to redeploy your Nomad job on service config changes.

shudder

> Use Ceph to add a distributed file system to Nomad.

> Use fabio for load balancing.

And the icing on the cake:

> All of this allowed us to grow our infrastructure organically without too much up-front commitment.

So if I understand correctly, the author (and his team) preferred to do all the work of integrating/testing/debugging those components, rather than using a tool that provides every single on of those features, and more, out of the box.

Kubernetes isn't a trivial lift but it's a damn sight easier than trying to roll a cheap imitation yourself.

TomBombadildoze··on Quake II RTX: Re-Engineering a Classic with Ray Tracing Effects on Vulkan
> Basically you still drew in 2d but you could overlap rooms with other lines that wouldn't intersect with any already existing lines, and that would configure 'a room above/below the current room'.

Elaborating a bit -- the Build engine had a feature called "sector effectors" that, when triggered, would teleport the player to a completely different sector in the map. The transition was seamless and permitted interesting effects like the illusion of having stacked floors.

The designers used this feature to most profound effect in the level Lunatic Fringe. In order to complete a full circuit of the central ring room, the player had to move through a 720-degree circle to return to the entrance. It was _extremely_ confusing playing that level for the first time.

https://dukenukem.fandom.com/wiki/Lunatic_Fringe

Fabian Sanglard wrote an excellent series about the engine here: https://fabiensanglard.net/duke3d/

TomBombadildoze··on Quake II RTX: Re-Engineering a Classic with Ray Tracing Effects on Vulkan
If you consider a slide show "managing it", then sure.
TomBombadildoze··on Ruby in Twenty Minutes (2006)
pipenv is still a mess.

Definitely give poetry a shot, it's really good. In particular, I enjoy how the maintainer engages with the community and is receptive to feedback. He's pretty good about adding features to satisfy the users, rather than handwaving legitimate concerns in one-line responses.

TomBombadildoze··on WeWork’s CEO Makes Millions as Landlord to WeWork
> WeWork’s CEO Makes Millions as Landlord to WeWork

What risk? He's already pocketed the profits. If WeWork defaults, his property management company takes the loss, possibly sells the property, and perhaps files for bankruptcy. It doesn't affect his personal finances.

"Risk" has become cognitive poison. There can be, and often is, a huge divide between _financial risk_ and _risk of grave personal consequences_.

TomBombadildoze··on How to Eliminate the Dreaded “Blind Spot”
> The article diagrams clearly shows a blind spot

The diagrams in the article are terrible. The only weakness in the author's argument is the poor quality of the visual aids.

Draw your own on a piece of paper with sight lines originating from the driver's position, then projected/reflected to the mirrors. You'll find there's total overlap.

TomBombadildoze··on How to Grow Software Architecture out of Jupyter Notebooks
> nailgun (JVM startup accelerator) for Python someday

It's not an exact corollary but pypy sort of fills that niche. Unfortunately, it's two major versions behind and it's not a 100% drop-in replacement.

TomBombadildoze··on How to Grow Software Architecture out of Jupyter Notebooks
A thousand times this. Jupyter notebooks are an antipattern. They encourage bad habits and yield copy-pasted, hacked-together, unmaintainable code. The REPL is a tool for exploration, not for full-blown development.

> barring some barriers (e.g. use caching where appropriate)

Fixtures.

TomBombadildoze··on Python Environment
pipenv doesn't solve any problems well, especially if you require multiple versions of Python, which is _always_ a problem if you're developing libraries. You still need something like pyenv to manage multiple versions of Python.

If you're using pyenv, it's easy to do virtualenv with the pyenv-virtualenv plugin, at which point you don't need Pipenv because it doesn't solve anything (except locking, see blow) that you can't do with requirements files. Furthermore, if you're testing under multiple versions of Python, you'd use tox to manage your test environments anyway.

_Further_ furthermore, they authors recommend _against_ use pipenv to manage dependencies for anything but development, so it's on you to have a copy of runtime dependencies isolated from Pipfile. And since you have to put your runtime requirements in setup.py anyway, there was never any way around the issue of duplicating requirements to begin with.

The one thing Pipenv does that pip and requirements files can't is lock dependencies down the entire tree... except it's abominably slow at that because it has to download dependencies and walk the entire tree. There's a debate ongoing about using pip's cache to solve the problem but there's no end in sight.

If you're really sensitive to having the entire dependency tree frozen to exact versions of you requirements, just `pip freeze` them occasionally. It's way less hassle.

Packaging in Python is far better than it was a few years ago. There's still a lot to improve but pipenv shouldn't be part of the solution.

TomBombadildoze··on The hidden costs of serverless
> This isn't a conflict of interest. It's developer marketing.

> The article is basically marketing copy devoid of technical details.

So since you agree with OP that it's marketing, _perhaps_ it's not a stretch to suggest that it's a bit shady for the CEO of Super Cheap Cloud Product to author a marketing piece decrying the hidden costs of OMG So Expensive Cloud Products as though it's just helpful advice?

> I think a huge part of the value of HN is lowering the barrier to entry to build great companies by providing a platform to announce and promote your product / team / etc. as well as educate people with quality content. We celebrate "Launch HN" and funding events, and are going to criticize a founder for building something awesome and talking about it?

Apples and oranges. There's a big difference between "check out this thing I made" and "these products all have somewhat opaque problems _by the way I'm CEO of a competitor_".

TomBombadildoze··on Protected Branches Improvements
AAAARRRHGGHGRHRRRHGHGH FINALLY

I was crushed when they added support for protected branches but didn't include per-user permissions.

TomBombadildoze··on I switched to Android after 7 years of iOS
> Apple is the laggard left behind

citation needed

TomBombadildoze··on Free Transactional Email Services – The Best Alternatives to Mandrill and Co
> some of us

truly, these are challenging times for spammers

TomBombadildoze··on Free Transactional Email Services – The Best Alternatives to Mandrill and Co
Not only is it dirt cheap, it's so easy to do everything right to maintain a good reputation. If you're using Route 53, it's one click to set up DKIM. It's also painless (and cheap) to handle bounce notifications programmatically.
TomBombadildoze··on An open letter of gratitude to GitHub
No, but I did notice that it's almost entirely individual contributors rather than maintainers
TomBombadildoze··on Apple Eyeing Time Warner Acquisition
bzzzzt

Install uBlock.

TomBombadildoze··on Throttle – Control who can send you email
Not only are they new, they're missing a bit of polish on the site. I'd like to know how it works but the "how it works" link doesn't go anywhere. Their browser extension also failed to install for me.

I like the idea but given the obvious problems and the fact that they want four bucks a month and no trial, I'm inclined to avoid. Shame because I would use something like this.

e: seems like "how it works" is meant to link to the video

TomBombadildoze··on Hard Truths about Equity
> Overly cynical. The two times I worked for a startup more than 3 months

So how many have you actually worked for? "2 for 2 [out of the experiences I cherry-picked to rationalize my bias]" really doesn't support your claim that the author is overly cynical.

> The problem is not equity, the problem is picking the right startup.

If only we could predict the outcome of the lottery, we wouldn't even need startups.

TomBombadildoze··on Everyone’s been rejected – these are our stories
> I recently interviewed at very hot container startup. I had 1 phone screen, 6 on-sites, and 2 follow up phone calls.

Seems to me like you dodged a bullet.

> But, the last phone call was set up with the SVP who determined that I was not a good "culture fit" after 30 mins on the phone.

Why is an SVP spending 30 minutes on the phone with candidates that have already done eight interviews with the troops on the ground? You definitely dodged a bullet.

← PreviousPage 2 of 2