HNHacker News
TopNewBestAskShowJobs

jsmeaton

3,857 karma · joined December 16, 2012

Head of Engineering at Kraken Technologies (Australia) https://kraken.tech/

Former Django core developer.

josh.smeaton@kraken.tech

submissionscomments
jsmeaton··on Show HN: Hatchet – Open-source distributed task queue
https://cloud.google.com/tasks is such a good model and I really want an open source version of it (or to finally bite the bullet and write my own).

Having http targets means you get things like rate limiting, middleware, and observability that your regular application uses, and you aren’t tied to whatever backend the task system supports.

Set up a separate scaling group and away you go.

jsmeaton··on Show HN: I made a HTMX Playground 100% in the browser
Unless you’re writing raw sql, Django does not make it easy to build reporting type queries with the ORM so I’d suggest you’re probably doing the optimal thing here.

Fun fact (and a bit of a brag, apologies), I was the contributor that added the “new” Expressions API with the intent of building a reporting platform on top of it. That platform never eventuated but I’ve still got lots of use out of those APIs.

jsmeaton··on Sentry new TOS to use data to train AI with no opt-out
How? Which part is a violation?
jsmeaton··on An Open Letter to the Python Software Foundation
The open letter states it was a single individual that was able to stonewall the process. It wasn’t about the PSF group as a whole that didn’t want to touch the decision. One person. I think the letter has a fairly good point that processes are broken if this is possible.
jsmeaton··on Advent of Code 2023 is nigh
Some folks on the subreddit will stream and then post their solutions so you can see their process. I usually enjoy watching Jonathon Paulson solve a problem after I’ve got my solution submitted. He features quite high on the leaderboard each year.

https://youtu.be/rnidYOt9m2o?si=ND_FyUJTIe-dBNrT

jsmeaton··on HashiCorp switching to BSL shows a need for open charter companies
I don’t really get this angle. You can use the tools within your business. You can’t host the tools and ask for money for other businesses to use the tool.

It creates a moat around monetising the tool, not using it. I certainly see the argument around free loaders.

jsmeaton··on Ask HN: Is anyone using PyPy for real work?
Second this - no psycopg2 support and to a lesser extent lxml is a nonstarter and makes it pretty difficult to experiment with on production code bases. I could see a lot of adoption from Django deployments otherwise.
jsmeaton··on If PEP 703 is accepted, Meta can commit three engineer-years to no-GIL CPython
Why weird? The request was made there. The discussion on the PEP is there. And the person answering is a core Python dev and part of the Python team at meta/insta.

Their team wants it, and is offering hours to help get it done. Is this not what everyone wants from businesses using OSS?

jsmeaton··on GitHub pull requests are not updating
https://www.githubstatus.com/ is all green though, surprise surprise.
jsmeaton··on Exciting SQLite Improvements Since 2020
I assume you’re asking about concurrent writes and yes, if you use WAL mode you can have that too.

https://www.sqlite.org/wal.html

jsmeaton··on Keyboard tricks from a macOS app dev
One of the best things I’ve configured with BTT is to remove the global Quit application (cmd+Q) and global Hide application (cmd+H) keybindings. I use cmd+W all the time to shut tabs and a slight miss click would close the entire app.
jsmeaton··on Pydantic V2 rewritten in Rust is 5-50x faster than Pydantic V1
Wheels will be provided for most platforms, no? Most folks won’t need rust tool chains.
jsmeaton··on Epic Games to pay $245M for tricking users into making unwanted charges
Hah. A few years ago my young child (6) racked up an $800 bill on consmetics playing on the Wii. It was my fault - I didn’t require a password to make purchases and he spammed the buy button.

To his credit he came straight to me and told me he got all of the items “for free”.

After a huge muck around I finally got a refund (dealing with a combination of Nintendo and Epic) but the outcome was that I could no longer use a credit card to make purchase on my account ever again.

They’ve known for a long long time that accidental purchases happen and avoided having a decent path to refund (up until somewhat recently according to TFA) so I’m glad they’re being slapped with regulations.

jsmeaton··on I hired 5 people to sit behind me and make me productive for a month
Any plans to start dedicating more time to cooking for yourself? You seem to think that working out is productive time would you consider eating well and spending time cooking to be productive?
jsmeaton··on Ask HN: What would be your stack if you are building an MVP today?
Fair. I'd probably reach for it too if I had any kind of frontend required, even if that were just HTML and forms. For server-only applications I'd probably go with FastAPI these days and I'm actually looking forward to an all-in-one framework that encompasses FastAPI as the core.
jsmeaton··on Ask HN: What would be your stack if you are building an MVP today?
This is unlikely to ever happen though since so much is tied to it like the permissions system and the admin. The ORM itself is central. I wouldn’t use Django unless your project depends on an RDBMS.
jsmeaton··on Just: A Command Runner
My biggest pet peeve with pyinvoke is that you can’t pass arbitrary arguments through to the underlying task. For something like invoking pytest you need to replicate the arguments you use in the task definition.
jsmeaton··on Dotfiles Management
I moved away from using a dotfiles repo a few years ago because I kept forgetting to add/commit files as I changed them.

Instead I use mackup[0] which automatically manages symlinks to your Dropbox/Drive/Share and has support for a huge amount of software by default. You can also manually add “extra” files you wish to track if you like.

[0] https://github.com/lra/mackup

jsmeaton··on Things they didn’t teach you about software engineering
It can be taught and there has to be general agreement. Building trust with early feedback as scope/complexity changes is crucial.

Wishing is indeed a terrible plan. Teams that treat estimates as commitments are dysfunctional. Estimates are a tool for budgeting in an agile-like world, and need to be refined as progress is made.

jsmeaton··on Things they didn’t teach you about software engineering
This can be a cultural thing but it needs to permeate down from the very top of engineering. Celebrate and promote cleanups. Track metrics you want to improve. Create burn down tickets that’ll help others to incrementally improve some system.

I’ve only seen this work in one company I’ve worked for and will carry those lessons with me.

jsmeaton··on Things they didn’t teach you about software engineering
Estimates are not commitments. More people need to understand and accept this.

You’re on the money about time and/or scope needing to be flexible. Estimates improve as you gather more information and complete parts of a project. Providing early feedback that relates to the original estimate is key!

“This is more complex because of X, and will likely add Y time. Do we want to proceed?”

Nothing worse than getting to the end of an original estimate and only then letting a project owner know it’s going to be twice as long.

jsmeaton··on Python 2 removed from Debian
Could they have at least minimised the blast radius? For example, make all of the text/Unicode changes for Python 3 and thats it.

Python 3.1 could then have introduced some of the other minor changes, perhaps behind a future import.

I had a hand in moving from 2.7 to 3.6 for a 1M LOC repo and it was not pleasant. So many backward compatible changes that that all had to be accounted for rather than being able to focus on the major breaking change of a particular version. We couldn’t have done it without six.

It seems that a bunch of changes were made all at once because it was already going to be incompatible so let’s take the opportunity to clean up as much as possible. I think that was the big mistake.

jsmeaton··on The infrastructure behind ATMs
In Australia quite a lot of stores place an additional fee for using any kind of card (but they must be capped to actual fee, though some smaller vendors will add a minimum 50c fee).
jsmeaton··on The infrastructure behind ATMs
Do the fees imposed for “credit” or “debit” differ for the consumer? The article seemed to imply that it did, otherwise, regulations being the same, why would it matter?

It’s fun to know what the actual difference is though. I had always just assumed that if I select credit when using a debit card the transaction would just fail “silly customer we know, you told us to check the wrong vault”.

jsmeaton··on Pyright: Static Type Checker for Python
I don’t know if this helps with your actual problem but if you use vscode you can enable inline typehints and all variables will show their inferred types right in the editor. I personally find it too noisy but it sounds almost like what you want to build so thought I’d mention it.
jsmeaton··on Boring Python: Code quality
I don't have anything specific but here's something I quickly threw together demonstrating what I mean https://gist.github.com/jarshwah/1e683416d2ed2df28f254fc787d...
jsmeaton··on Boring Python: Code quality
I’m working in a Python code base with multiple millions of files and not for the first time. It’s not the problem you make it out to be. The changes between black versions have been almost unnoticeable for years.
jsmeaton··on Boring Python: Code quality
This is mostly nonsense and FUD. We have virtualenvironments, requirements files, setup.py with extra_requires that can all be used to manage versions without relying on the particular packages installed on an OS. Most people contributing to open source would be familiar with at least some of these methods and if they are not it’s a good opportunity for learning.

And if they are not, then maintainers can pull, run black over the diff, and commit.

CI prevents poorly formatted code from entering main.

The actual changes between black versions of late have been minor at best. You’re making a mountain out of a molehill.

Having a tool that dictates formatting is a lot less oppressive to new developers than 100 comments nitpicking style choices.

jsmeaton··on Boring Python: Code quality
You can annotate the manager and get some typing help in the editor. And there’s django-stubs which helps a little when running mypy. It’s not as good as pycharm though.

https://github.com/typeddjango/django-stubs/tree/master

jsmeaton··on Ask HN: What is the cheapest, easiest way to host a cronjob in 2022?
https://simonwillison.net/2020/Oct/9/git-scraping/

Simon Willison has a bunch of examples of scraping sites with GHA and storing the results in a repo. But you can use the same technique without the storing part if need be.

← PreviousPage 2 of 34Next →