Posts by galdor@emacs.ch
(DIR) Post #Ahr0qgKtqei9sS1G6K by galdor@emacs.ch
2024-05-13T16:21:45Z
1 likes, 0 repeats
@khinsen @akkartik There is, at leaste in the space of text editors. And a lot of people moved to editors that they perceived as more modern.But not everyone is operating under the belief that you have to somehow beat all your competitors in order to survive. I'm fine with Emacs being a niche (even though I'd prefer it its fundamental issues were fixed).
(DIR) Post #AhwyYdAVquOpsgBY0m by galdor@emacs.ch
2024-05-15T14:51:52Z
0 likes, 0 repeats
In #Go, you cannot call the String method on a literal URL struct ("cannot call pointer method String on url.URL") because the String method has a pointer receiver. String does not modify the object, but it uses a pointer receiver to avoid copying the object for each call.This is what you get when 1/ you design a language with pointers (why would you do that in 2009?) and 2/ you do not have "const".Just bad design.
(DIR) Post #AhwyYgeksvNChLMF4C by galdor@emacs.ch
2024-05-15T23:11:28Z
0 likes, 0 repeats
@holgerschurig And yet I use C libraries just fine in Common Lisp, a language which does not use pointers as a language mechanism. No intermediate C. A pointer is just an address, as long as your language has integers and the necessary primitives to call C code, you can use C libraries directly. Ruby FFI does the same thing.
(DIR) Post #AhwyYjANYJrEU0AWdU by galdor@emacs.ch
2024-05-16T07:14:52Z
0 likes, 0 repeats
@holgerschurig You do realize that pointers are memory addresses, which are simply integers no matter what the language is, right?
(DIR) Post #AhymTT4l8hrXzsBZsu by galdor@emacs.ch
2024-05-05T19:55:10Z
0 likes, 0 repeats
Three steps to make your Sunday look like it never happened:1. Start a long playlist with lots of movie soundtracks.2. Work on implementing arbitrary-precision arithmetic (bigints) in C.3. Realize there is no step 3, it's already 10pm and you forgot to eat.
(DIR) Post #Ai7GskT2AP6f45Bqxk by galdor@emacs.ch
2024-05-21T11:12:39Z
1 likes, 1 repeats
In a culture where even slightly negative comments are perceived as rude, good luck learning anything. The well known orange tech website is a good example. I feel bad for developers posting about their software and hoping to learn from comments.
(DIR) Post #Ai7L04jhbcLflsjghM by galdor@emacs.ch
2024-05-21T13:33:00Z
1 likes, 0 repeats
@amerika Correct.
(DIR) Post #AiBbqjroIrkUIFVAuG by galdor@emacs.ch
2024-05-23T10:10:22Z
0 likes, 0 repeats
If you are complaining about the `if err != nil { return err }` pattern in #Go, you are doing it wrong. You are almost always supposed to wrap errors (`return fmt.Errorf("cannot do X: %w", err)`). This is how you get these precise error messages that are so useful.
(DIR) Post #AiBbqoAOJizLd2E4QK by galdor@emacs.ch
2024-05-23T12:42:21Z
0 likes, 0 repeats
@veer66 @pkw Yes Go is verbose, no argument here. Never said I loved the language. But I liked getting things done.As for the library linked above, it's idiomatic to avoid piling up non-standard libraries ;) But as usual, your code, your choices; who cares if it's idiomatic or not?
(DIR) Post #AiLZvxrlQPQEpcRYeW by galdor@emacs.ch
2024-05-28T09:27:57Z
0 likes, 0 repeats
@louis Most of it from LLVM right?
(DIR) Post #AiYmWk6bxkZGztQnqa by galdor@emacs.ch
2024-06-03T09:44:15Z
0 likes, 1 repeats
Forget the hype, these are 3 languages that existed 30 years ago and will still exist in 30 years: C, SQL, POSIX sh. If you are learning software engineering, knowing these will help in so many ways and will make you stand out of the crowd.
(DIR) Post #AiZS1YzFRqhRbvno6S by galdor@emacs.ch
2024-06-03T10:54:44Z
0 likes, 0 repeats
@vikingkong I love Common Lisp, but learning it is useless for the vast majority of developers out there. Worse than useless actually: it will make you hate almost everything that is currently popular in the tech industry.
(DIR) Post #AiZS1aZ5a4xmVNZwbg by galdor@emacs.ch
2024-06-03T14:49:11Z
0 likes, 1 repeats
@mapcar @vikingkong Common Lisp exists, but no one ("so very few people that the number can be rounded down to zero") uses it.C is still the language used for various software and libraries everywhere. In particular it is used for modules in other languages, for example for OpenSSL, SQLite, libyaml, or even librdkafka bindings.Being able to dive into the source code of Curl, SQLite or NGINX to figure out what is going on is a superpower.
(DIR) Post #AjQ77V42c2BgTrVLf6 by galdor@emacs.ch
2024-06-29T12:27:49Z
0 likes, 1 repeats
I've spent most of the week testing an SCIM implementation, and Trurl (written by @bagder, the author of Curl) has been quite useful to generate correct URIs:curl -i $(trurl --url https://[…]/scim/Users -a 'query=filter=username eq "bob"')This way I do not have to think about query parameter encoding, it just works.
(DIR) Post #AjqryloQilVxm1V3RI by galdor@emacs.ch
2024-07-12T09:50:57Z
0 likes, 0 repeats
So many people are shopping around for the cheapest plans at dozens of SaaS companies, this is insane. Multiple hosting companies will give you a small VPS for $10/month and you can run multiples servers, databases, tools… FreeBSD, NGINX, PostgreSQL, you can do so much with so little.
(DIR) Post #AkpnkQTjh7GL0cWnJ2 by galdor@emacs.ch
2024-08-08T13:29:19Z
1 likes, 2 repeats
One of the many infortunate consequences of the success of GitHub is that lots of developers are now convinced that development has to be a public, social activity.You do not have to release everything you build. You do not have to accept patches. You do not have to answer to emails or to issues. You do not have to fix bugs or implement features. You do not even have to continue working on your projects.If any aspect of your public work stresses you, remember that.
(DIR) Post #AlLflxSHzXiYzzmwKG by galdor@emacs.ch
2024-08-22T12:10:42Z
1 likes, 0 repeats
ACME is much better than managing TLS certificates manually, but the DNS challenge is a serious wart:- Propagation time is painful (yes it only applies to the first startup, but no there is no way to know how much time it is going to take and yes it might not be fast enough for Let's Encrypt).- It makes you store credentials for your DNS provider on your server. Most of them are not zone-specific, making it a serious security issue.- Oh also if you have your own DNS servers (e.g. NSD), good luck automating the creation/deletion of the TXT records (I hope you like regular expressions).Infortunately it is the only way to generate wildcard certificates.I only support HTTP challenges for the time being, will get to DNS when someone comes at me with a real use case (hint: those usually come with a budget).
(DIR) Post #AlLfxlSGR0dhFtPFui by galdor@emacs.ch
2024-08-24T14:26:51Z
0 likes, 1 repeats
I spent a good part of the week working on a concrete use case for my go.n16f.net/acme module, and releasing early is good, so here we go. I've been using NGINX for years but I'm fed up with managing TLS certificates manually or dealing with the inintuitive location system. So I'm building Boulevard to replace NGINX on my servers.It can currently act as an HTTP server (multiple listeners, multiple handlers, direct responses, filesystem serving) and as a TCP reverse proxy. Automated TLS certificate provisioning already working of course.First experimental release coming when I'm happy with the basic feature set. Ideas welcome: if I'm not the only one interested, I will grow it into something bigger (and yes I can sell support, enterprise builds, anything really).https://github.com/galdor/boulevard
(DIR) Post #AlgdhbIqIAWbY0K4My by galdor@emacs.ch
2024-09-05T07:33:38Z
0 likes, 1 repeats
How to fail at learning software engineering:- Skip the fundamental and use pre-developed high level components.- Copy code from Stack Overflow & co instead of solving problems yourself.- Focus on solutions instead of learning to work from first principles.Nobody said it was easy.
(DIR) Post #AljN1yyuqjyX1x0zse by galdor@emacs.ch
2024-09-06T12:31:53Z
1 likes, 1 repeats
A common problem in tech discussions is that criticizing software often gets you labelled as a hater. You cannot explain that a program or platform is slow, buggy or badly designed: it's rude! Think about these poor developers, they did their best!As a result, you cannot trust most online opinion about software.