HNHacker News
TopNewBestAskShowJobs

djhaskin987

1,604 karma · joined March 1, 2017

https://about.djha.skin New username @ djha-skin
submissionscomments
djhaskin987··on Decipad – Like Notion with problem-solving capabilities
Yes, but then you would end up with, well, Confluence.
djhaskin987··on Pliant language and FullPliant operating system
I had to look at the overview[1] which I found to be super interesting.

The author focuses on metaprogramming (something like hygienic macros that are more efficient) as the only real needed extra feature over C. He says that with this other stuff can be built at need using libraries.

The upside is that new language features are just libraries that gain or lose popularity as time goes on, allowing the core language to be more or less the same as it was at its inception while still staying alive. This advantage is shared by Common Lisp for the same reasons.

The disadvantage is that since anybody can make a new sublanguage simply by writing a library, you're left with a fight between libraries on what language features are important for the whole group, splintering the group into different sub language dialect camps. This is part of the curse of lisp. The upside might be that it's still probably pretty difficult to write meta programming in Pliant relative to lisp because of its focus on efficiency. Perhaps this will save it from most of the curse. Time will tell.

I have never yet seen a "C++ Replacement" language's more carefully argued or justified using simpler arguments than this language. That the core language will probably endure easily is very exciting to me, especially after seeing the evolution that C and C++ has gone through over the years and how hard changing the language is nowadays. In the language overview the author makes some very good points about why he chose what he chose in his design decisions.

Other replacement languages try to simply make design decisions based on taste. This is not a bad thing; some language designers have excellent taste. But it is nice to have a plain explanation as to why specific features were included in a language.

One last thought I did have was that if language features are libraries, there had better be a very good dependency manager and packaging solution for this language from day one if it is to be usable.

1: http://www.fullpliant.org/page/pliant/3SR6QMB8/0EEMUVD

djhaskin987··on Russia switching all government systems to Linux
Who knows, maybe they'll go with SuSE.
djhaskin987··on Analogies for Git (2016)
It is precisely because git stores a graph of snapshots that is so hard to scale it to be able to store large monorepos with thousands of files. Every single commit stores a reference to the content in every single file. Using The duality mentioned in the article of storing change sets instead is an interesting trade-off. Instead of having to compute the diffs, you have to compute the snapshots. This is a good trade-off if you want a small portion of the snapshot checked out to your machine. This is why perforce does better with mono repos.

Storing changesets can handle very very large sets of files much more easily, but you pay the price with having to compute what file is stored whem which lengthens check out time even in the small. It is not a good trade off if you have to check out the entire thing anyways. This is why get is more popular with the open source community which is more like a bazaar than a cathedral

djhaskin987··on Color fonts on Google Fonts
Never thought I'd see WordArt coming back 20 years later but here we are.
djhaskin987··on Galène Videoconference Server
This is a fantastic idea not simply because of saving money, but also to keep work at work. Too often people slack after hours expecting an immediate response. Someone where I work recently went so far as to uninstall slack from their phone so they could have a proper vacation.
djhaskin987··on Movim – A decentralized social platform built on XMPP
Decentralized networks are very resistant to moderation. Don't like my rules? Go to someone else's server. Also blacklisting specific people from specific servers or whole servers in general is an uphill battle a lot like the email spam battle. It's very difficult to keep unwanted content out.

That was my experience when looking at Matrix and Mastodon. So I am skeptical of projects like this.

That said the UI looks very nice and the idea very promising.

djhaskin987··on Questions you need to answer before you quit your job
Reminds me of Rich Hickey's sabbatical he went on to make Clojure. It cost him this retirement but he was able to improve much more than just his own development experience. That's probably the real reason for entrepreneurship. Why go after "spiky", unstable cash flow and burn savings? It's got to matter for other reasons too.
djhaskin987··on With Queen Elizabeth's death, republicans sense their chance
How sad that at a death, many think, "how can I profit from this"?

It happens in my family and I'm sure everyone else's, it's why there's always drama when someone dies. Who gets Grandpa's estate, who gets Grandma's money, Grandpa loved me more but he's not here to defend himself so I can just say whatever I want about Grandpa and you just have to believe it. Using their legacy to improve our status in the family, or their money.

A great deal of heartache has come from how this has happened in my family when my grandpa passed some 20 years ago. It's all behind me now but only recently, it took a long time to settle the affairs of his prior belongings.

djhaskin987··on Show HN: 31,102 verses of the Bible drawn by Stable Diffusion
My favorite one might be this one, the picture painted by the AI for the verse where John the beloved describes what the resurrected Jesus Christ looks like: https://bAIble.com/bible.html?book=Revelation&chapter=1&vers...
djhaskin987··on My VM is lighter (and safer) than your container (2017)
Not surprising that VMs running unikernels are as nimble as containers, but not quite useful either, at least in general. Much easier to just use a stock docker image.
djhaskin987··on Paths with Spaces, I Give Up (2013)
Got bitten by this this morning trying to run a `clj` Clojure command, nearly ten years after this piece was written.
djhaskin987··on From Common Lisp to Julia
Probably what the guix[1] folks are trying to do, use a "more sophisticated" package manager for OS.

1: https://guix.gnu.org/en/download/

djhaskin987··on From Common Lisp to Julia
Sorry for all the edits, just want to write all my thoughts down in one place.

1. Various interactions I frequently have:

- `va(C-cC-c`. Select the current parentheses text object (s-expression) and send it to the repl.

-`C-aC-a`, switch to repl to view output, interact with debugger, etc.

- `ggVGC-cC-c`, select the entire file and send it to the repl.

- I've never done this one but since you mentioned it as useful to you: `?^(<CR>va(C-cC-c`, evaluate a top level form. Not perfect, but probably good enough especially if a line formatter is used to enforce sane indenting like this one for Clojure[6]. If a line formatter does not exist, the usual `ggVG=` built-in vim indenting works just fine.

- `:set makeprg=<command to run unit tests with line numbers>:make`. Batch error reporting and fixing, very useful[1]. In Clojure, e.g. `lein test` with some additions to set error format might be the `make` program.

vim-slime does not have an understanding of s expressions but vim itself does, using the parentheses object. See `:help text-objects`. I like that vim-slime does not have this understanding because what if I'm using it with Ruby or something. But vim support of text objects is good enough that it's never a problem. While I'm on the subject, `])` and `[(` searching for parens in vim is awesome.

Vim operates using an entirely different set of values than emacs. Selecting and searching for text should not be the purview of a plug-in, it should be built into the editor. Compiling code should be delegated to compilers. Vim does a great job of this kind of separation of concerns, it is the Zen of vim, its core philosophy. Emacs is great and it works fantastically, it just operates using a different philosophy.

2. I work more in Clojure but I'm trying to get more into common lisp. Clojure has suggestions in neovim via language server protocol[2]. The suggestions are very good[3]. This is not as developed for the common lisp story[4] but I'll try it out and see how good it is.

I've never had much patience for autocompletion. I don't even like it when the editor puts in pairs of parentheses when I've only typed the first left parentheses. Vim does have autocomplete through the language server protocol, but I don't use it.

Regarding suggestions as I type, there's ale[5], but I think I would find suggestions as I type a little too distracting and might slow me down. I find the normal LSP stuff to be good enough.

1: https://vim.fandom.com/wiki/Errorformat_and_makeprg

2: https://blog.inkdrop.app/how-to-set-up-neovim-0-5-modern-plu...

3: https://github.com/clojure-lsp/clojure-lsp

4: https://github.com/cxxxr/cl-lsp

5: https://github.com/dense-analysis/ale

6: https://github.com/venantius/vim-cljfmt

djhaskin987··on Don't Pay UK
If only nuclear energy weren't so unpopular. Certainly it's unpopular in the states, though I can't speak to the UK.
djhaskin987··on Don't Pay UK
Actually the video I watched directly talks about this being a major problem for Germany specifically.

Transcript: http://backreaction.blogspot.com/2022/08/no-sun-no-wind-now-...

djhaskin987··on Don't Pay UK
I can still cut off their revenue stream (canceling my service) and fight back without stealing.
djhaskin987··on Don't Pay UK
This kind of campaign would not be possible in the US because the provider can simply turn your service off with no questions asked, where from their FAQ it sounds like turning it off is heavily regulated in the UK.

On the one hand, solar panels will not fix this problem. Sun and wind both die down in the UK in the winter. You need hydrocarbons.

Honestly, if it were me, I'd ask them to turn my gas off and just heat a few rooms with electric heaters, and buy lots of blankets. It's not very convenient, but wearing a coat indoors is free. That feels more honest than stealing their gas and then not paying for it. Sure, they're probably ripping me off. Doesn't mean I should do the same.

djhaskin987··on Please just tell me what you do
This article is not your typical HN fare consisting of a diatribe against anything advocated for by the marketing team. It covers real reasons why you should be clear about what you're selling. My favorite excerpt is the last paragraph:

> If someone can't understand what your product does, then it can't fail! If someone critiques your product, you can always say to yourself that "they just don't understand". Which is true! They don't!

djhaskin987··on From Common Lisp to Julia
If we're talking about server operating systems, yes, I commiserate with you. But the same principle is applied with Arch Linux, and I've never felt more joy interacting with a packaging system (or Linux community for that matter). Everything is packaged and up-to-date (again, sometimes too up to date). I use Fedora at home and it's at most months behind, but certainly not years, and usually strikes that sweet spot between stability and annoyance.
djhaskin987··on From Common Lisp to Julia
> As mentioned in the article, the debugger and inspector are key parts of this workflow.

Which you can use from the commandline inside of the multiplexor. Like I said it's fully featured because it's just you firing up Steel Bank. The debugger and inspector are still there.

> Since there is no versioning dependency management for Quicklisp to leverage, all it can do is try to build your software in isolation, not check compatibility with dependencies, and certainly not runtime compatibility.

The lack of versioning and dependency management is pretty dumb I'm not going to lie. I didn't expect that from a package manager.

> It's not that software is released too far apart, it's that the release of software is out of the hands of developers, and packaged by a third party with dependencies that may not even be API compatible with the developer's software.

Perhaps there are some cases where this is a problem, but in general, I firmly believe that having separate packagers is a good thing[1]. It can be annoying at times, but much more comfortable for the end user.

1: https://drewdevault.com/2019/12/09/Developers-shouldnt-distr...

djhaskin987··on From Common Lisp to Julia
Boiling down some of his points on the problems with common lisp that made him switch away from it:

1. Editor support. The original poster bemoans that the only fully supported editor is emacs and that there is not sufficient support for neovim. I have used emacs and slime, but I had to stop because of the ulnar tunnel syndrome it was causing. But I knew vim before I learned emacs and I am a neovimmer myself. I have used jpalardy's plugin[1] for many years and couldn't be happier with it. There's a visible repl built in, so by definition it's fully featured. The reason emacs is the only editor for lispers is that it tries to be the whole operating system. It turns out using a terminal multiplexer along with an editor gives you everything you need. I like GNU screen on Linux and ConEmu on windows.

2. Community. The original poster speaks of toxicity and a community full of people who are not welcoming to newcomers who ask simple questions. I'm just barely starting my Common Lisp journey so I can't speak to that. But I don't know if I'm discouraged by a community that values members who are capable of doing their own research and not needing their hands held. I'm often surprised by developers who need YouTube videos to explain to them how to do their job as if they can't read their own code. Maybe that's why the documentation is so poor in the Common Lisp community: the expectation is that you can read their code and figure out what it does. The original poster says that the community is full of people who do not wish to work with others. That makes me feel like if I write in this language I'll be able to be productive even if no one else wants to work with me. I'm not hugely popular and don't have a ton of stars on my GitHub pages, so the idea of a language that allows me to be productive even if no one else wants to help sounds pretty good to me.

3. Packaging. The original poster speaks against packagers who take responsibility for the cleanliness of code before it gets packaged up for the quicklisp dist. He complains that packages are released on a monthly basis and that this is not fast enough for him. As a DevOps engineer, I think this is fantastic. I hate it when developers release code too frequently because the new releases often break things even when they are not intended to, and reacting to those changes takes time. A little bit of time before each release is easier on your consumers. I feel like the best sweet spot is 90 days. I'm getting killed at work right now because of the breakneck speed of helm chart packages and how fast they release completely breaking changes. I also consider that the absolute best packaging community on this planet is Fedora and Debian operating system packages. The idea of having a separate packager from the actual software making sure that the software lands well and plays nice with its neighbors is a huge feature of those communities. Those operating systems wouldn't be possible without them. The original poster also complains that there is not any versioning. If this is the case it is very sad to me and I hope that somebody can refute this claim.

1: https://GitHub.com/jpalardy/vim-slime

djhaskin987··on Github.com Down Again?
It happened to me and I was also confused. I saw it wasn't on the status page, and I thought, GitHub must be like Amazon, unwilling to admit fault on the status page.
djhaskin987··on Clasp: A Common Lisp implementation using LLVM for compilation to native code
How is the performance story coming on this, anyone know?
djhaskin987··on Common Lisp vs Racket
The only other equal I've seen to scribble around is Python's Sphinx. I use Sphinx for all my projects no matter what language they're in because it's so good.
djhaskin987··on The OK? Programming Language
Exactly what it reminded me of, thanks for the link.
djhaskin987··on The OK? Programming Language
I don't know, I think maybe the merging of iteration and concurrency is an interesting idea.
djhaskin987··on Common Lisp Wiki: Naming Conventions
As I've been slowly learning Common Lisp, I'm fascinated by how much Rich Hickey took from the CL community in making Clojure. For example, the names in embedded languages starting with `?`. He uses this naming convention all the time in the datomic docs[1] showing how to query the database.

1: https://docs.datomic.com/on-prem/query/query.html

djhaskin987··on Day ahead electricity prices for EU
Current price in Utah, USA is $106.30 per megawatt hour, easily four times less than many of the prices I'm seeing in the EU. About 14% of our electricity comes from renewables[1], I'm pretty sure the rest is coal. My wife's cousin works in a coal mine that's owned by one of the power plants in the state. It's fun to hear stories from him seeing dinosaur tracks and other fossils down in the coal mines where he works.

1: https://www.google.com/url?q=https://www.eia.gov/state/analy...

djhaskin987··on Why do some humans love chili peppers?
I have a deviated septum and allergies. My nose gets plugged up pretty quickly.

Peppers make it much easier to keep things clear up there. It gets to the point where I start to crave peppers.

I rarely eat a meal without some kind of hot sauce. I've been leaning more towards Sriracha until this year's shortage, then reverted to Tabasco.

Page 1 of 9Next →