Hacker News new | past | comments | ask | show | jobs | submit | bb1234's comments login

Same here. I have the same issue with realtime services. They are either free (and, hence very limited), or over $50 per month. I wish the usage-pricing step function had smaller jumps.


My websites run on https because how easy Caddy makes it. Caddy made it possible for me. Cannot thank Matt Holt enough for creating Caddy and making it available to all of us.


I haven't used Caddy and I'm sure it's great, but you could have used nginx or anything else as well also. Offering https is honestly pretty easy these days.


I've been using nginx for years and switched to Caddy just because I was so fed up with configuring nginx to automatically renew TLS certs issued by Let's Encrypt. This is so much easier and reliable with Caddy.


I recently found certbot and it makes TLS with nginx a breeze. I like Caddy as well, but if you're forced to use nginx, try certbot!


I know about certbot and have considered it, but our customers can use their own custom domain name, which means we need to be able to select the certificate depending on the SNI hostname, which is a bit tricky in nginx. It's possible to use the $ssl_server_name variable in the ssl_certificate and ssl_certificate_key directives, but then the certificate will be loaded for each TLS handshake. And also need to be careful with race conditions when refreshing the certificate, to ensure that the certificate and they key are matching. Overall, it's doable, and people do it, but it's not as straightforward as just using Caddy.


Thousands of Caddy users beg to differ -- nginx won't scale HTTPS automation as well as Caddy can.


It's the idea that Caddy alone made it possible that I am skeptical of. I'm sure it's hyperbole but still.


We definitely couldn’t have done it without the community rallying around free encryption and let’s encrypt.


That is a good practice for any statistical software you are using. You should validate your R code with Python or Julia.


Agreed. Whenever I'm using new statistical software, I validate it against one I know.


Vocal minority might be one of them. But I think that is not the only reason. I think it also because a lot of very useful and performant tools are being written in it. Also, the fact that so many programs are being created likely suggests to newcomers (like me) is that it is not unreasonably difficult to write code in it.


This has been said many times, but I think it is because of not having AOT compilation as an option. Due to this, not only do we have the "Time to first plot" problem, but apparently the memory used by the process is also large. I love Julia and use it for my data and computational work. But for CLI apps and for web apps I am learning Rust because the start up speed and memory usage for CLI and webapps matters.


I'm confused by this statement because AOT compilation is an option, and it's getting better over time.

https://julialang.github.io/PackageCompiler.jl/stable/sysima...

In Julia 1.9 and beyond, this process now also becomes modular with a native library being produced per package.

The difficulty is determining what exactly must be compiled since Julia's methods are polymorphic. There's are tools that exist to help with this. One of the latest that is SnoopPrecompile.jl.


If interested in benchmarks comparing different dataframe implementations, here is one:

https://h2oai.github.io/db-benchmark/


> 2. No language server (apparently it's just impossible due to the way the language works). Tbh, I'd be happy with just "Go to definition" but alas, no-can-do!

This works on Doom Emacs!


I used Crystal to create a web application a 2-3 years ago. It is running great without any problems. There are not that many users (only about 300-400) at any time. Anyhow, I did not touch the application in the last two years, and did not use Crystal in the last two years for anything else. I used Rust to write some simple personal CLI apps, which was fun but also hard. For some reason, couple of days back I returned to Crystal for a CLI app that I am making. I will say this: Crystal is a lot of fun to program in, easy to use and performant all at the same time. I cannot explain the reasons objectively, but it is really a joy to use Crystal. I think I will be using it from now on. I just wish it had a bigger community and as a result more libraries.


Probably because of the Ruby inspired syntax which just brings joy. Hopefully the ecosystem can grow and partially catch up as well


i've seen that said so many times, and fail to understand why Ruby syntax brings joy.

Personally, I thought the muddled Proc, block, and lambda situation a mess, coming from Scheme 30 years ago to Ruby 20 years ago.


Well it would seem very messy coming from Scheme!

Scheme is a small language which achieves expressiveness by allowing you great freedom to push the language into bold new forms.

Ruby (especially with Rails which should almost be considered a separate language) is a big language where simplicity is maintained by informal convention.

Ruby has lots of muddles and messy features, good Ruby code bypasses them.


Ruby was among the first languages I learned, back when there was the possibility of Ruby being a general purpose language and not just Rails. My joy was the result of being able to guess syntax and be right. Nowadays I value reading documentation and IDE level support, so guessing syntax is no longer a joy.


When I saw it, I felt the same way (also using Scheme a lot) and I still feel it is messy. However, what I think might be the reason for it, is that it is difficult to store a lambda in Scheme including its whole environment in an object and send that over the wire somewhere else, on a different machine to run. Perhaps distinguishing between Proc, block and lambda gives Ruby a possibility to treat one of them specially, so that it can do these things easily?


I can gladly point out that Crystal has a much cleaned up syntax for blocks and procs (compared to Ruby): https://crystal-lang.org/reference/1.5/syntax_and_semantics/...


> Personally, I thought the muddled Proc, block, and lambda situation a mess

Why not use one (probably just block) for everything? Coming from ruby 10 years ago.


Blocks can't be stored in variables.


Yes, I don't store them in variables, but I can expand them in generators and yield them. To me, that is much more useful than storing them.


I guess those things are a compromise. Being able to use that concept easily is a joy. The implementation prioritises developer convenience over syntactic purity. It’s a shame we can’t have both, but I accept the trade-off.


That's quite a minor nitpick on an entire language that's been around for over 25 years.


I guess beauty is in the eye of the beholder because I look at that syntax and cringe.


What about it makes you cringe?


This kind of thing

            End
          End
        End
      End
    End


While it is not completely impossible to end up (pun intended) with something like this, you usually follow a coding style that avoids it. Kind of like in Ruby.

You have the option to define named methods that yield or to use the short one-parameter syntax where this:

  method do |param|
    param.some_method
  end
becomes

  method &.some_method


I get no joy from Ruby syntax. Haskell syntax on the other hand I love...


Same argument that I keep on having with people who like 1. gray and darker gray buildings of a tree-less megacity beautiful, with a dash of color vs 2. those who find small cities/villages mixed with art, trees & colourfully dressed people beautiful.


That means chew your food thoroughly so that it becomes almost liquid and you “drink” it. Also, don’t gulp your drinks down quickly. Drink slowly, as if you are chewing each sip.


Ooh, that's solid advice. I've always been chewing my smoothies instinctually, even thoroughly blended.


Yes, Caddy is awesome! About 3-4 years ago it made it super-easy (and possible) for me to serve my websites with `https`. Before that, I was using nginx, and the process of obtaining certificates seemed quite complicated. Matt Holt, thank you for creating Caddy.


You're welcome ^_^ Thanks for the nice comment


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: