HNHacker News
TopNewBestAskShowJobs

lastofus

711 karma · joined January 14, 2014

submissionscomments
lastofus··on Clojure 1.13 adds support for checked keys
Snarkiness aside, this is hardly a static type check. This appears to be a runtime argument check, somewhat akin to the following python:

  def foo(*, a, b): return a+b
which errors out at runtime if `a` or `b` are omitted, despite being keyword arguments which are usually optional.
lastofus··on Comparing Python Type Checkers: Typing Spec Conformance
As a long time Django user that wants to start using typing, can you elaborate on why mypy is still the way to go?
lastofus··on Modern JavaScript for Django developers
Decoupled Django usually means that you are providing a client SPA with a API, such as a DRF powered REST API.

If you are using something like token auth (you mentioned JWT), then you are not using cookies, at which point CSRF is not needed. This is because the user's browser isn't automatically sending the cooking containing a session ID on every request to the server.

That said, you can implement session auth with DRF REST APIs, which accept a session cookie on requests. For this, I believe you would receive/send CSRF tokens via HTTP headers.

XSS is not something you would worry too much about in an API endpoint. It is something you should worry a lot about in your client side SPA though. If using something like React, your templates will be auto-escaped, and thus you have to go out of your way to make it a problem.

lastofus··on U.S. women are outpacing men in college completion in every major group
It's a bit apples to oranges to compare mean to median? Or at least Honeycrisp to Gala...
lastofus··on 99 Bottles of OOP now available in Python
This is one of my favorite software development books of all time. It's the book that finally offered straight forward guidance and wisdom on how to properly utilize OOP language features.

I'm very happy to see it out for Python!

lastofus··on How simultaneous multithreading works under the hood
Other languages do sometimes implement this at the library level. Clojure's core.async comes to mind (though there are subtle differences). There's downsides to this approach though.

The data going into each "mailbox" either needs to be immutable, or deep copied to be thread safe. This obviously comes at a cost. Sometimes you just have a huge amount of state that different threads need to work on, and the above solution isn't viable. Erlang has ets/dets to help deal with this. You will notice ets/dets looks nothing like the mailbox/process pattern.

Erlang is great, but it is hardly the "one true way". As with most things, tradeoffs are a thing, and usually the right solution comes down to "it depends".

lastofus··on Ask HN: What are your favorite index ETFs for Investing?
QQQ has done great the last decade, but that's no guarantee it will outperform the next decade. Make sure you understand what you are getting yourself into by overweighting in the tech sector, and that it's a plan you can stick with during the hard times.
lastofus··on Anti-patterns in event-driven architecture
I don't quite see what the outbox pattern has to do with the two generals problem.

The point of the outbox pattern is that a durable record of the need to send an event is stored in the DB as part of the DB txn, taking advantage of ACID guarantees.

Once you have that durable record in your DB, you can essentially treat your DB as a queue (there's lot of great articles on how to do this with Postgres for instance) for some worker processes to later process the queue records, and send the events.

The worker processes in turn can decide if they want to attempt at least once, or at most once delivery of the message. Of course if you choose the later, then maybe your event is never sent, and perhaps that was the point you were trying to make to the interviewer.

They key takeaway though is that you are no longer reliant on the original process that stores the DB txn to also send the event, which can fail for any number of reasons, and may have no path to recovery. In other words, at least once delivery is now an option on the table.

lastofus··on Slack or Discord?
The killer feature for me that Slack has over Discord is the ability to hide images, so I'm not stuck being distracted by some random person's obnoxious animated meme.
lastofus··on Ask HN: Why is senior care so expensive?
Not judging here, but that’s some serious consequence tax fraud if caught.
lastofus··on YouTube dominates TV streaming in US, per Nielsen's latest report
There are extensions to hide the Shorts. I’ve been using one for a month now and it’s been great.
lastofus··on George Carlin's "Soft Language" (2019)
There's some arguments behind why you might want to not lay blame plainly (and especially publicly) on an individual, within a business team setting.

- Laying direct blame on someone may lead them to trying to hide problems to avoid the pain/shame in the future.

- Related - everyone makes honest mistakes. Creating and environment where people feel ok admitting to these is a lot more ideal than the alternative.

- Teams should be encouraged to take collective ownership, such that if someone who works with xyzelement sees them failing to prioritize, they need to do something about it, even if it's just raising a concern early in the project with those who need to hear said concern.

That all said, sometimes people do need direct feedback (in private), especially when they are struggling in general with their job.

lastofus··on Notes from building a blog in Django
Wagtail first shipped 9 years ago in 2014. It's already old/boring, and great!
lastofus··on Ask HN: Best books to learn web development?
One of my favorite free online books is https://internetingishard.netlify.app/

It does a great job at explaining intermediate/advanced caveats and gotchas along the way.

lastofus··on Securing Your PostgreSQL DB with Roles and Privileges
Doesn't encrypting your data before insertion make your data unable to be indexed/searched easily?
lastofus··on Ask HN: Anybody running a maxed out MacBook Air with 24GB RAM as a dev machine?
2020 m1 Air w/ 16GB user here.

For web development, it's more than powerful enough for anything I need (Python/Django/PostgreSQL work).

I'd probably be annoyed if doing anything CPU intensive (e.g. compiling C++ all day, ML, etc). Memory has never been a limiting factor as I don't run VMs.

lastofus··on The hometown of San Francisco’s drug dealers
Drug use was decriminalized in Portland OR by ballot measure, and it is not going well. Open air drug use, coupled with an increase in violence and crime have made being in large parts of downtown quite unbearable.

Filling prisons with drug users is probably not the answer, but just letting people do as they please because they are addicts with issues doesn't guarantee great outcomes either.

lastofus··on Ask HN: Which job boards are you using?
Outside of my personal network and own business, LinkedIn + recruiters have found me all of the work I've done in the past decade.
lastofus··on Writing a chat application in Django 4.2 using async StreamingHttpResponse
>Also, what was the reason not to go with Gevent?

The biggest downside of Gevent IMO is that it enables the magic of turning sync code into async code via monkey patching things like the socket lib. This lack of explicitness can make things a bit difficult to reason about, without a good mental model of what Gevent is doing underneath the hood.

lastofus··on Ask HN: Would you pay for a SaaS even if its open source and can be selfhosted?
I’m not sure if it is still an option today, but I have chosen paid SaaS Sentry over self hosted Sentry in the past.
lastofus··on Roger Penrose claims our Universe has been through multiple Big Bangs
> I've started in the last year or so to turn to the church (Roman Catholic) and theism, both to find answers to some of life's mysteries, such as the origin of the Universe...

Accepting God created the universe just moves the big questions one level of indirection upward: Why does God exist? Why does God exist with the characteristics that he does (e.g. why is God X instead of Y)?

It's unclear how this is more satisfying on an intellectual level. It's only more satisfying on an emotional level, as it usually comes with the belief of a personal God that loves and wants the best for you, not to mention an afterlife.

lastofus··on Ask HN: Can any Hetzner user please explain your workflow on Hetzner?
In my experience, Ansible is fantastic for provisioning a machine from bare Linux VM to running service.

OTOH it's quite slow when used for deployments. There's no way you would be getting 5 second deployments with it.

My favorite middle ground between shell scripts and Ansible is Fabric (https://www.fabfile.org/).

lastofus··on Ask HN: Feeling Pretty Empty Tonight
I've been fully remote on and off since 2010. I've never been able to really connect with coworkers without in-person time spent, and usually lots of it. This has led me to taking in-office jobs on occasion just to fulfill that need for human connection.

Human's are social creatures - do whatever it takes to get some face time in with someone near by.

Something which may or may not apply to you, is that in the past, I also felt quite empty, simply because software development had become my entire life from sunrise to sundown. Once you realize your entire identity is based around one thing, specifically work, it's quite jarring to realize and hollow that is.

lastofus··on Loneliness reshapes the brain
Out of curiosity, which cultures have this strong sense of informal community? It sounds kind of great.
lastofus··on Record levels of sadness in teen girls, CDC reports
I don't think it was that long ago that communities of humans were quite small, and the number of peers your age around you would easily fall into the 20-750 range.
lastofus··on Ask HN: How do I get better at figuring things out myself?
https://en.m.wikipedia.org/wiki/How_to_Solve_It
lastofus··on 1.2M-Year-Old Obsidian Axe Factory Found in Ethiopia
> ...a team of researchers has described the discovery of an obsidian handaxe workshop within a layer of sediment dated to 1.2 million years ago.

What kind of radiometric dating is used for sediment? Is it not possible for older sediment to shift around and cover newer stuff?

lastofus··on Ask HN: End-of-life planning while young?
Life insurance is probably silly with no dependents like OP, but long term disability insurance not tied to your employer is a good idea for peace of mind. There's a lot of unpleasant states between healthy and deceased.
lastofus··on U.S. stock market returns – a history from the 1870s to 2022
> The question is whether the power and influence of the U.S. will grow similarly over the next 150 years as it has over the last 150.

> To invest mechanically without thinking about what’s actually happening in the world is cargo cult behavior.

This is why it's suggested that unthinking mechanical investors invest globally, not just in the US. For example, VT, a single set and forget index fund has 40% international exposure. That's to speak nothing of the S&P 500 companies that do business internationally.

https://www.morningstar.com/etfs/arcx/vt/portfolio

lastofus··on Ask HN: What is your favorite front end state management solution?
I've recently started working with React Query (now Tanstack Query since is supports Vue and others) and I absolutely love it. Coupled with a sprinkling of `useState` and context, I'm all set.

Of all of the SPAs I've worked on, 90%+ of the "state" is just server side data, pulled down via APIs, to display to the user. Other state libs don't bother to take into account common things like cache invalidation, or loading states, but it's all built in to React Query.

Page 1 of 11Next →