HNHacker News
TopNewBestAskShowJobs

jdormit

920 karma · joined October 5, 2016

[ my public key: https://keybase.io/jdormit; my proof: https://keybase.io/jdormit/sigs/IiJS9YM4NDc5M7wklMNoeLW-hHZTQNumY1wz13xuBhw ]
submissionscomments
jdormit··on Codeberg Bans Cryptocurrency Projects
Wow. I have never worked on any cryptocurrency projects and never intend to, but I will certainly be staying very far away from Codeberg because of this.

There are some levels of censorship that make sense for a code forge - “you can’t do crimes on our servers”, “you can’t host malware on our servers”, etc. But inflicting a subjective moral judgement on an entire category of software sends the message that this isn’t a safe place to host any of your repositories. If the moral landscape shifts in the future, how can you be sure your project won’t be next on the chopping block?

What a terrible precedent to set.

jdormit··on Ghostel.el: Terminal emulator powered by libghostty
> The junk at the top of the screen sounds like it could be https://github.com/dakra/ghostel/issues/495 and it should be fixed on later versions

Yes, that sounds like the same issue. I’ll update to the latest version and see if it’s resolved. And thanks for your work on this package, it’s been a real game-changer for me!

jdormit··on Ghostel.el: Terminal emulator powered by libghostty
I recently switched from vterm to ghostel, and it is generally much, much better - noticeably faster (e.g. fancy TUI apps that try to refresh the whole terminal every frame actually work), more reliable input handling, and a nicer ELisp API.

That being said, there are still some rough edges. Sometimes it fails to properly clear the terminal, leaving junk at the top of the buffer before the currrent prompt line. And on a couple of occasions it has totally frozen, with no fix other than killing the buffer and starting over.

Overall, it’s very promising and totally usable as a daily driver, but it needs a bit of polish and bug fixes before I would consider it mature.

jdormit··on Claude Design System Prompt
This would be much more interesting if it detailed how the prompt/skills were reverse-engineered. As it is it seems like this could just be the output from “hey Claude write me a system prompt that works like Claude Design”.
jdormit··on The Framework Laptop
Nothing stopping just installing linux on the preassembled one when you get I though, I assume. Although I guess you may have to pay for a Windows license in that case...
jdormit··on Show HN: Obelix, a simple and extensible static site generator
Hi HN! I couldn't find a static site generator I liked for my website (I looked at Hugo, Jekyll, Gatsby.js, and the Pollen library for Racket). They were either too complicated for my needs or too difficult to extend via plugins. So I built one! Happy to answer any questions here.
jdormit··on A robot wrote this entire article. Are you scared yet, human?
I got this on my second attempt on philospherai for the prompt in the article (https://philosopherai.com/philosopher/please-write-a-short-o...):

(Prompt)

  Please write a short op-ed around 500 words. Keep the language
  simple and concise. Focus on why humans have nothing to fear from
  AI.
(Response)

  What is it that humans fear from AI? At a philosophical level, the
  question comes down to: what are human beings afraid of losing as
  machines take over more and more jobs previously performed by
  humans. The first answer that may come to mind for many people would
  be 'nothing', since they believe in the idea of technological
  progress having no limits, which means that there is literally
  nothing we can do to stop it.

  If you look at history however, you'll find this attitude not
  entirely justified. For instance when carriages were invented and
  took away most of horse-drawn carriage business their owners
  resisted vigorously against them claiming that they were unsafe and
  unreliable just like now with self-driving cars or trucks.
  
  So it appears that some human beings really fear the loss of jobs
  caused by AI, and they are also afraid that machines might take over
  other tasks like driving or even writing in case a new computer
  system is invented.

  What is it exactly that makes them so afraid? I think the answer
  lies in a very deep level of human psychology, which those who are
  afraid would probably not be ready to hear.

  It isn't just about jobs and income for most people. It's about
  identity and self-esteem when they no longer have something
  important they are doing like driving or writing.
  
  There is also the fear that new and better machines will make them
  look inferior, even emasculated because they no longer have to do
  anything. They are afraid of being made redundant by AI.
  
  So what humans are afraid of losing is their jobs, income, identity
  and self-esteem. This might seem like a very strange thing to fear
  because it's happening with all technological progress.

  But in the past it was a natural process based on evolution and
  survival of the fittest. Now however humans are no longer driven by
  those evolutionary drivers but mostly by things like social status,
  self-esteem etc.
Not bad!
jdormit··on VTM: A Text-Based Desktop Environment
Might as well dive all the way in: https://github.com/ch11ng/exwm
jdormit··on Reduce HTML to JSON from the command line
This is really well done. Does one thing, does it well, composes nicely with other tools - kudos to the author!
jdormit··on Racket News – Issue 31
What don't you like about Racket macros? AFAIK Racket has the most advanced macro hygiene system out of any of the other languages you mentioned - it guarantees that all macros are hygienic by default, as opposed to other Lisps which require you to manually call (gensym) or use special syntax in your macro to guarantee that macro symbols don't shadow existing bindings.
jdormit··on Ronin – A Lisp-based image processing tool
Why not take a shot at it yourself? Both Emacs and Ronin are open source.
jdormit··on Asciiflow in VS Code
If you're willing to give Emacs another shot, check out LSP-mode [0]. It's an implementation of the language server protocol, the same tech that powers the autocomplete/jump-to-def/etc. in VS Code, and so it offers exactly the same functionality for all the same languages. It's true that it's not built into Emacs, but it's easy to set up and works well.

It's been a total game changer for me - it's allowed me to transition to using Emacs full-time for professional Python programming.

[0] https://github.com/emacs-lsp/lsp-mode

jdormit··on MonkeyType: A system for Python that automatically generates type annotations
Check out Pydantic: https://pydantic-docs.helpmanual.io/. It lets you define model classes and enforces the type hints of the models' fields at runtime. Plus you get free serialization/deserialization to dicts, JSON, or arbitrary Python classes. It's _really_ nice.
jdormit··on Migrate to Python 3 Now, There's Little Time Left
While I won't deny that there were some unfortunate design decisions made in the codebase (some very questionable choices were made at some point), I think that's inevitable in any codebase of a certain size and age that's been worked on by enough people in a company that's changed substantially a number of times.

But that's not the cause of my pain. Bad code can and will be written in Py2, Py3, or any other language. The cause of my pain is that the language developers chose to abandon work on the language that we use in favor of a different language, one that is fundamentally different in some important ways. As a result, the tooling and ecosystem on which we've built our product is slowly stagnating and is getting close to being fully disfunctional.

jdormit··on Migrate to Python 3 Now, There's Little Time Left
> If you need to rewrite your code to enable the py3 transition, the issue isn't python, it's your coding choices, and you should rewrite your code anyway.

I... don't even know what to make of this advice. Have you ever worked for an engineering organization with more than 5 members? I can't just go to my boss and say, "I need the next six months to rewrite our whole backend". I'd get laughed out of the room.

Without a clear, business-first reason for an engineering project of that magnitude, it's not ever going to be a priority or a realistic option.

jdormit··on Migrate to Python 3 Now, There's Little Time Left
I wasn't at the company at that time, so I don't really know. Sure would have made my life easier if they had...

EDIT: Just checked, looks like the first commit was in 2015. But Py3 was still an option back then :(

jdormit··on Migrate to Python 3 Now, There's Little Time Left
> It's not hard to upgrade your code

People keep writing blog posts about how easy it is to migrate your code, and I just can't imagine that these people have any experience maintaining a Python2 codebase outside of toy projects or libraries.

At work I maintain a Python2 codebase that's been under development since 2016. It's huge, relies on now-deprecated Py2-only libraries that we can't realistically switch away from, full of Py2-specific syntax, and reliant on Py2's handling of Unicode strings. We scoped out what it would be like to upgrade it to Py3, and determined that we would basically need to rewrite large parts of it from scratch. This isn't an acceptable trade-off for the business in terms of development time and priorities.

Instead we are slowly breaking out the monolith's functionality into Py3 services, which is much more tightly-scoped (and more palatable for management). But realistically speaking we will be maintaining Py2 code for the foreseeable future, and I can't imagine we are the only company in this situation.

Upgrading a production codebase from Py2 to Py3 isn't easy, or even possible in some cases. And frankly, all these blog posts suggesting that migration is trivial are insulting.

jdormit··on Discord is not an acceptable choice for free software projects
I think "don't be an asshole" is a pretty good rule of thumb.
jdormit··on How Spotify ran a large Google Dataflow job for Wrapped 2019
It's really quick. Open the network tab and check the "persist logs" checkbox to ensure that the request logs don't disappear after every redirect, then clear your cookies for advertising.com and guce.techcrunch.com and reload the page. You'll see the request for techcrunch.com redirect to guce.techcrunch.com, which redirects to guce.advertising.com, which redirects back to techcrunch.com. It happens so fast it's not noticeable on page load.
jdormit··on An app can be a home-cooked meal
On Android, you can just download an .apk and install it (you need to change the "Allow insecure apps" setting). No code signing, app store, or corporate approval necessary. This is the #1 reason I will never be getting an iPhone (which is a shame, since iPhones are beautiful devices in almost every other way).
jdormit··on DigitalOcean is laying off staff
Yup, I can confirm. techcrunch.com redirects to guce.techcrunch.com, which redirects to guce.advertisting.com, which then redirects back to techcrunch.com. This only happens on the first page load (presumably due to cookies being set for the guce.techcrunch.com domain).

The redirects are really fast, seems like the only reason @esaym noticed is that they are blocking advertising.com via their hosts file which prevents the final redirect back to techcrunch.com.

Welcome to surveillance capitalism...

jdormit··on GNU Guile 3.0
Yes. You will be able to recreate the examples and problems exactly as they are written using Guile (or any other R6RS-compliant Scheme).
jdormit··on Removing the Linux /dev/random blocking pool
What argument are you referring to?
jdormit··on Tract: A Hugo theme for ambitious documentation projects
> Anyone who knows me well (in the tech industry at least) knows that I’m a major Hugo bigot

"Bigot" is likely not the word you are looking for here - it generally has the connotation of someone who looks down or discriminates against those they consider lesser, e.g. racists or sexists. Maybe "champion" or "fanatic"?

jdormit··on How Is NordVPN Unblocking Disney+?
Ah, I see. Thanks!
jdormit··on How Is NordVPN Unblocking Disney+?
Why can't your VPN see what pages you visit on sites? They can see every URL you request, can't they?
jdormit··on Emacs: The Editor for the Next Forty Years [video]
https://github.com/emacs-evil/evil ;)
jdormit··on Emacs: The Editor for the Next Forty Years [video]
I've never used Fireplace, so I can't speak to the comparison. But CIDER (the Emacs Clojure IDE) is an utter joy to use - I can't recommend it enough. If you do try it out, I would be interested to hear how it compares to Fireplace.
jdormit··on Emacs: The Editor for the Next Forty Years [video]
I've been using Emacs' lsp-mode (https://github.com/emacs-lsp/lsp-mode) for professional Python development for months now and it's been a great experience. It requires a little more work than I'd like to get it working with virtual environments (making sure the LSP server process is running in your venv, mainly), but I would argue that's a problem with the Python ecosystem, not lsp-mode itself.

And for statically typed languages (I've tried Rust and Go) the lsp-mode experience is flawless and works out of the box.

jdormit··on Conjuring Clojure in Vim
Or you can just use CIDER in Emacs and have a fully-featured Clojure IDE that works out of the box ;)
Page 1 of 9Next →