Charles Oliver Nutter

70.7K posts

Charles Oliver Nutter banner
Charles Oliver Nutter

Charles Oliver Nutter

@headius

JRuby guy, Java, Ruby, OSS business liaison. Find me: @[email protected] or @headius.bsky.social Sponsor me: https://t.co/G5oUTdTJqA

Minneapolis, MN Katılım Kasım 2007
213 Takip Edilen14.5K Takipçiler
Charles Oliver Nutter
@talios And I would love to give such a talk more often! As it is, only RubyKaigi seems to be interested in that kind of technical deep dive these days.
English
0
0
2
212
@talios@mastodon.nz
@headius I for one would love to see updated talks in the history, and evolution of JRuby (esp. in regards to modern java/jpms etc - and tackling any ruby language improvements along the way). It may not be core ruby focused, but dayam it'd be worthy and interesting!
English
1
0
1
243
Charles Oliver Nutter
It's still shocking to me that after 20 years working on JRuby I won't be speaking at RubyConf. The conference that got me started on this whole crazy journey doesn't think I'm worth a talk. Really disappointing. I'll still be in Vegas to meet up, but I won't be at the event.
English
7
0
85
20.3K
Charles Oliver Nutter
@jwkicklighter I submitted a couple of talks for @railsworld, really hoping I can speak about my 20 years of work on making JRuby on Rails a reality. This is a big year for us and I know it would be a good fit for the event!
English
0
0
9
975
Bryan Steele 🦋
Bryan Steele 🦋@canadianbryan·
@headius OpenBSD's had JDK 21 since at least 7.5/7.6. No reason to use ports, install the package for it. # pkg_add jdk--%21 # or just 'jdk' and interactively select it You can verify what mirror site is being used in /etc/installurl and a full list here. openbsd.org/ftp.html
English
2
0
1
60
Charles Oliver Nutter
Charles Oliver Nutter@headius·
My pre-breakfast project: adding FreeBSD and OpenBSD to JRuby's CI. FreeBSD largely works, but some specs fail that maybe never worked on FreeBSD to begin with. The OpenBSD image I'm using doesn't have JDK 21 in ports. It's a start... feel free to help! buff.ly/ZEYxlE2
English
1
0
9
1.4K
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@nateberkopec We are instituting a policy that you may only submit AI generated pull requests if you can explain what the changes are and why they were made. You must take responsibility for the PR and personally answer follow-up questions without proxying the conversation through an agent.
English
2
1
3
388
Nate Berkopec
Nate Berkopec@nateberkopec·
Almost every team I work with right now is drowning in pull requests. The bottleneck is not code generation.
English
62
14
464
42K
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@canadianbryan Thanks! Documentation on how to do this is surprisingly difficult to find but I'll give those suggestions a try.
English
0
0
0
26
Charles Oliver Nutter
Charles Oliver Nutter@headius·
Still deep in Japan withdrawal, now back in the US. It's a real shock to the system coming home to the American suburbs after seeing the beauty and efficiency of Japanese daily life. I'll just try to incorporate as much of what I learned into my routine.
English
0
0
24
1.1K
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@Shpigford @aviflombaum I would have paid for Intuit Mint but they killed it without even trying. From what I understand, several of the folks from Intuit left to do Monarch. Very excited to see them adding business features. Ready to switch if they ever build an accounting suite.
English
0
0
0
27
Josh Pigford
Josh Pigford@Shpigford·
@aviflombaum @headius yup. my wife and i use it. they're doing incredible work and basically nailing the vision we had for maybe.
English
1
0
1
57
Charles Oliver Nutter
Charles Oliver Nutter@headius·
I've posted about this before, but if you're frustrated with tools like Intuit's Mint going away, the absolute best option for personal budget tracking is Monarch. They've recently added a "Plus" version for biz expenses. Referral code gets you 50% off. buff.ly/WLzGAhc
English
1
0
0
708
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@eregontp @RaySong19184922 @apeiros The bottom line is that C extensions have been a performance crutch for too long and despite my best efforts, ruby-core never saw the value of FFI until now. I'm glad it's finally happening, but this should have been done a decade ago.
English
0
0
0
53
Benoit Daloze
Benoit Daloze@eregontp·
@headius @RaySong19184922 @apeiros A main pitfall with C extensions is it's easy to call back to Ruby, which makes it tempting but that's in many cases a performance problem, even on CRuby. FFI makes it more difficult so native code rarely calls to Ruby when using FFI.
English
1
0
0
201
Charles Oliver Nutter
Charles Oliver Nutter@headius·
So frustrating watching the Ruby community reinvent what JRuby and the JVM already do. Why don't they just use JRuby? Because we don't support the C extension API. Now they are realizing they can't do what JVM does and also support C extensions. 🤦 Seriously... just use JRuby!
English
10
9
63
16.3K
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@eregontp @RaySong19184922 @apeiros I don't think it would be that difficult. I've done similar in the past. Calling native for things that can't otherwise be done is obviously hard to avoid. Calling native code for things that could/should be optimized at the Ruby level needs to go away.
English
0
0
1
30
Benoit Daloze
Benoit Daloze@eregontp·
@headius @RaySong19184922 @apeiros Ah a bit like asm.js? It would be quite some work for Ruby implementations to support that efficiently. I'm thinking it's fine to call to native and some things are only available as native anyway (e.g. libc). It needs to be big enough chunks to avoid too much overhead though.
English
2
0
0
44
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@eregontp @RaySong19184922 @apeiros A Ruby-like language that's statically typed with strict numeric primitives and a reduced feature set that can compile to to ZJIT IR or JVM bytecode would be a good compromise. The truth is that Ruby is a poor language for expressing optimized algorithms. Spinel?
English
1
0
0
69
Benoit Daloze
Benoit Daloze@eregontp·
@headius @RaySong19184922 @apeiros I agree more in Ruby is good but it's not always possible. In the Java world some libraries like database adapters are reimplemented from C to Java, that seems a bit much (implementing a protocol N times). FFI is a nice compromise, but it's also a hard barrier for optimization.
English
2
0
0
57
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@eregontp @RaySong19184922 @apeiros Regardless, even with the best tricks in the world, C extensions remain a hard barrier for optimization and a black hole for efficient GC and memory management. They are still the biggest problem with moving Ruby forward. You know this.
English
1
0
0
50
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@eregontp @RaySong19184922 @apeiros Rather different from Java handles in that there's no explicit control over life cycle. You don't have a way to specify scoped access to VALUE pointers and they may be passed arbitrarily around C code and must remain active for indefinite amounts of time.
English
1
0
0
51
Charles Oliver Nutter
Charles Oliver Nutter@headius·
@sur3shg @Cufe_Haco I also still have concerns about whether it can handle the number of classes needed by lambda forms. There's tons of little tiny classes generated along the way.
English
0
0
1
13
Troy Mallory
Troy Mallory@Cufe_Haco·
If we can reduce object size to 16 bytes, my Dual-Encoded Bit-Mapping could potentially allow us to store relational numeric values directly in the header, eliminating the need for heap allocation entirely for complex math. @headius the builtins work is loosely based on these experiments ive kept to myself. I've been prototyping a method for relational arithmetic that treats a 64-bit word as a phase-rotated vector. It’s showing sub-microsecond stability on an ARM quad-core for deep recursive operations with Cruby. I haven't given it a shot on Jruby....yet @yukihiro_matz, I'm looking at a way to implement 'Field-Based Arithmetic' in the Ruby core. By utilizing bi-symmetric bit-encoding (where 0 carries relational value), we can perform 16-bit operations with a near-zero instruction carry. It effectively turns a recursive loop into a 3 phase-rotation of the CPU clock.
English
2
0
0
290
JSR
JSR@JSRavencroft·
@headius I'm in that area sometimes and had no idea this place existed. I'll have to try it.
English
1
0
0
59
Charles Oliver Nutter
Charles Oliver Nutter@headius·
Managed to get back to Kikanbo for my double-oni ramen of the trip (demon level spice, demon level szechuan). Evil stuff. Earned my special Oni candy as a result. Definitely one of my top five restaurants in the world.
Charles Oliver Nutter tweet mediaCharles Oliver Nutter tweet media
English
1
0
15
1.2K
Charles Oliver Nutter retweetledi
もとつねの日常
もとつねの日常@daily_mototsune·
JRuby folks! Can’t believe we’re meeting again, and in Japan this time! #rubyfriends
もとつねの日常 tweet media
English
1
1
24
978
Charles Oliver Nutter
Charles Oliver Nutter@headius·
There's a disturbing trend of developers I've known for years now suddenly being unable to discuss even basic aspects of software development. They have become so dependent on LLMs, they can't even describe how to design a system anymore. Feels like losing friends to dementia. 😢
English
17
26
384
12.9K