HN user

mindB

827 karma

Chemical Engineer by day, hobbyist programmer by night.

https://github.com/non-Jedi

https://matrix.to/#/@adam:thebeckmeyers.xyz

Posts63
Comments114
View on HN
stlrecord.com 2y ago

Bailey says IBM violated Missouri Human Rights Act by enforcing diversity quotas

mindB
2pts0
arxiv.org 2y ago

A Comparative Study of Code Generation using ChatGPT 3.5 across 10 Languages

mindB
2pts0
arcan-fe.com 2y ago

The quest for a secure and accessible desktop

mindB
1pts0
julialang.org 3y ago

PSA: Thread-local state is no longer recommended

mindB
4pts0
mikeinnes.io 3y ago

Finding Your Mojo

mindB
2pts0
web.archive.org 3y ago

XML/Unix Processing Tools

mindB
3pts1
blog.joinmastodon.org 3y ago

A new onboarding experience on Mastodon

mindB
3pts1
mikeinnes.io 3y ago

Adventures in Face Space (2022)

mindB
3pts0
www.davisr.me 3y ago

Making Books Better Through Digitization

mindB
1pts0
karl-voit.at 3y ago

Orgdown – The Interesting Feedback Phase So Far (2021)

mindB
2pts0
support.mozilla.org 3y ago

Sponsored shortcuts on the New Tab page

mindB
3pts0
www.draketo.de 4y ago

Why Wisp? (2014)

mindB
2pts0
www.mgmarlow.com 4y ago

What happened to proper tail calls in JavaScript? (2021)

mindB
130pts144
discourse.julialang.org 4y ago

On the Arbitrariness of Truth(iness)

mindB
3pts0
pedestrianobservations.com 4y ago

Providence Should Use In-Motion Charging for Buses

mindB
1pts0
scholar.harvard.edu 4y ago

This World of Ours (2014) [pdf]

mindB
1pts0
www.arp242.net 4y ago

The problem with hard wrapping email body text

mindB
4pts0
blog.mfriess.xyz 4y ago

How Numworks (calculator) killed third-party development – a technical approach

mindB
2pts0
uglyduck.ca 4y ago

A Reality Where CSS and JavaScript Don't Exist

mindB
4pts1
dm13450.github.io 4y ago

Optimising a Taskmaster Task with Python

mindB
1pts0
junglecoder.com 4y ago

My Janet Story

mindB
1pts0
www.stochasticlifestyle.com 4y ago

ModelingToolkit, Modelica, and Modia: The Composable Modeling Future in Julia

mindB
66pts10
dpc.pw 4y ago

Growing object-oriented software vs. what I would do

mindB
2pts1
intuitiveexplanations.com 5y ago

How did Replit respond to this blog post?

mindB
300pts115
mgsloan.com 5y ago

Supine Computing

mindB
2pts0
www.youtube.com 5y ago

Interactive Notebooks – Pluto.jl [video]

mindB
1pts0
nbviewer.jupyter.org 6y ago

Calysto Scene: scheme with Python libraries

mindB
2pts0
bkamins.github.io 6y ago

Comparing (R) dplyr vs. (Julia) DataFrames.jl

mindB
2pts2
www.domluna.com 6y ago

What's SSA?

mindB
2pts0
www.lua.org 6y ago

The evolution of an extension language: a history of Lua (2001)

mindB
6pts0

I think you have a typo mixing up AGPL and GPL. I agree that it would be hard to imagine a company being okay with the AGPL but not the GPL. On the off-chance that it isn't a typo, could you explain why a company might be okay with AGPL but not GPL?

Hi wryl. I'm interested in hearing your follow-up to this post, so I tried to add your log to my feed reader, but I couldn't find an rss/atom feed, which is the only way I'll remember to check back in. Do you have a feed I can follow?

Literally nothing has changed

This is super disingenuous in a world where things like the GPL exist and any other license that prevents you from putting further restrictions on the combined product.

If you'd like to try these tools, someone has copied the source onto github[1] from the now defunct homepage. I've only been playing with this for a few minutes, but the only "problem" I've run into so far is that 2html omits the <!DOCTYPE> declaration, but that isn't really a problem for me since I was piping the output through tidy anyway.

I've been looking for a nice way of batch-editing html using some sort of sed-like tool, and this is the best option I've seen yet. Beyond that I just find it a neat idea.

[1] https://github.com/clone/xml2

[dead] 3 years ago

I'm a very happy Julia user, but what's the point of this blog post? It seems to just be regurgitating a bunch of points from the official 1.9 announcement[1]. There was also significant discussion of the 1.9 announcement on hacker news only a couple of days ago, so posting it here for discussion seems silly.

[1] https://julialang.org/blog/2023/04/julia-1.9-highlights/

The title undersells the magnitude of the change a bit in my opinion. By default, mastodon now encourages new users to sign-up on https://mastodon.social which has caused a bit of a kerfuffle in the fediverse.

Personally, I'm largely ambivalent to the change; I understand the reasoning, and it's what https://element.io has been doing for https://matrix.org since the beginning. It is more than a bit of a sea-change though given the fediverse's prevailing culture.

I tend to agree that Julia and other modern programming languages with hygenic macros aren't "homoiconic". Maybe GP is making a point about the title of this presentation? Read generously, maybe he's criticizing calling this homoiconicity by comparing it to Julia which originally claimed to be homoiconic but removed the claim from its website because of contentiousness[1]?

[1] https://groups.google.com/g/julia-users/c/iKxqn-J9frI/m/QzaS...

I don't remember C-c being broken in the past year. Could it have just been a specific program you were running with a tight loop that didn't have any yield points? If so, that's not really unique to Julia.

I'd also be interested in your workload that was generating lots of seg faults (oom makes some sense if working with large data since Julia's runtime does add an unfortunate amount of memory overhead.

JET.jl does a surprisingly good job of statically checking julia type errors as well as other classes of errors using only type-level code analysis.

https://github.com/aviatesk/JET.jl

It does catch method ambiguities like those shown in this blog post:

  julia> using JET
  
  julia> f(x, y::Int) = x + y
  f (generic function with 2 methods)
  
  julia> f(x::Int, y) = x - y
  f (generic function with 2 methods)
  
  julia> g(x, y) = f(x, y)
  g (generic function with 1 method)
  
  julia> @test_call g(1, 2)
  JET-test failed at REPL[13]:1
    Expression: #= REPL[13]:1 =# JET.@test_call g(1, 2)
    ═════ 1 possible error found ═════
    ┌ @ REPL[12]:1 Main.f(x, y)
    │ no matching method found for call signature (Tuple{typeof(f), Int64, Int64}): Main.f(x::Int64, y::Int64)
    └──────────────
  
  ERROR: There was an error during testing

One alternative you could use is nix. It works as a package manager even when not running NixOS, and the software is generally up-to-date in the unstable channel (which most people use as far as I can tell).

This is especially egregious as the whole idea of the language server protocol was proposed by Microsoft as a means of solving the problem wherein each editor has to independently implement IDE features for every language it supports (changes the number of implementations from n*m to n+m where n is the number of languages and m is the number of IDEs). Microsoft is now making it so that their product defaults to using a language server which cannot be used by any other IDE (without some owner of that IDE paying Microsft; the gnu project is not going to be paying Microsoft to allow using pylance with emacs).

There's significant dissonance here even by Microsoft's standard.

The author says he's happy with the performance improvements he made, but--even at the size where the Rust version performs best--he gets much less than a 2x speedup. After a couple months of effort, that's not a whole lot to show. This reads like a case study in why it's probably a bad idea to rewrite even when you think you have compelling reason for it.

I'm 100% in agreement with you. Laws and ethics are only tenuously linked, and we must expect companies (made up of people) to act ethically first and foremost.

It's interesting watching you expressing that opinion in opposition to the Chinese government/Zoom getting a very positive reaction. When I expressed a similar sentiment about the Spanish government/Github a few months ago, the reaction was much more mixed[1]. I wonder if it has more to do with the parties involved or just changing opinions.

[1] https://news.ycombinator.com/item?id=21398271

EDIT: scrolling further down, the reaction to your comment is far more negative than I had originally thought.

I'm aware. To a large extent both regex-redux and pidigits are measures of the overhead of FFI for all non-C/C++/Rust languages. Rust is very cool in that one for actually using a regex engine implemented in Rust; definitely has my admiration.

I would love it if Isaac included LuaJit and pypy in the benchmarks game, but ultimately I get it; it's just one guy's project, and he doesn't want to spend the time to maintain it across the entire incredible diversity of programming languages/implementations[1].

To a great extent any "language" benchmark (for languages that don't compile to efficient machine code) is certainly a benchmark of the language's standard library. I'm not sure there's a way around that reality. Are there external Lua libraries that allow shared-memory concurrency? If so, it's probably worth opening an issue asking whether those libraries could be allowed[2]; it might just be that nobody has submitted a program making use of Lua shared concurrency.

[1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

[2] https://salsa.debian.org/benchmarksgame-team/benchmarksgame/...

The computer language benchmarks game[1][2][3] may be of interest here. It benchmarks C, Python, Javascript, and Julia, in several tasks involving FASTA input (regex-redux, k-nucleotide, and reverse-complement), but implementations are bespoke rather than relying on libraries. Relative timing is much more favorable for Julia in these benchmarks. Looks worse for Python outside regex-redux.

[1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

[2] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

[3] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

In 2016 I lost access to some repos on bitbucket after a similar occurrence. I made the mistake of using my (student) university email account to register with bitbucket (it was the primary email account I used for everything at the time). At some point, my university apparently decided to use Atlassian services which completely disabled any ability I had to login to that account. I don't know if linking together all accounts under a domain is just the default behavior from Atlassian or if both this former employer and my university decided to screw people over, but either way it's a stupid situation and unsurprising at this point.

To be honest, I've never found the need for delegating a huge number of methods in my own work, but then I've never wanted to add a feature or field to something as complex and featureful as e.g. a DataFrame. What issues have you run into when using method-forwarding/delegation macros?

The nice thing about the Julia ecosystem is that people tend to be pretty willing to step back and define their methods in terms of an interface (Tables.jl in this case) which then allows code reuse without brittle delegation. Having to put so much effort into changing the structure of upstream doesn't seem ideal from a composability perspective though.

If using meta-programming to get "basic" features rubs you the wrong way, the language might just not be for you. In general, the Julia philosophy (as well as the lisp philosophy from which Julia descends) is that things which can be done efficiently using macros instead of being built-in should be done with macros. Language features are only for things that cannot be accomplished via metaprogramming. As far as actual implementations of method-forwarding macros, there's an implementation in Lazy.jl[1], and TypedDelegation.jl[2].

[1] https://github.com/MikeInnes/Lazy.jl/blob/0de1643f37555396d6...

[2] https://github.com/JeffreySarnoff/TypedDelegation.jl