<havenwood>
weaksauce: Nothing jumps out to me. It took me some stabs to get it working.
Linux_Kerio has joined #ruby
Vonter has joined #ruby
ap4y has quit [Remote host closed the connection]
jmcantrell has quit [Ping timeout: 260 seconds]
teardown has quit [Remote host closed the connection]
teardown has joined #ruby
ih8u2 has joined #ruby
ih8u has quit [Ping timeout: 276 seconds]
ih8u2 is now known as ih8u
ih8u2 has joined #ruby
ih8u has quit [Ping timeout: 252 seconds]
ih8u2 is now known as ih8u
teardown has quit [Remote host closed the connection]
teardown has joined #ruby
brw has quit [Remote host closed the connection]
brw has joined #ruby
infinityfye has joined #ruby
grenierm has joined #ruby
schne1der has joined #ruby
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ruby
inline has quit [Ping timeout: 268 seconds]
Vonter has quit [Ping timeout: 276 seconds]
Vonter has joined #ruby
henk has left #ruby [#ruby]
dionysus69 has joined #ruby
TomyWork has joined #ruby
grenierm has quit [Ping timeout: 272 seconds]
gr33n7007h has quit [Ping timeout: 260 seconds]
sunyour has quit [Quit: sunyour]
sunyour has joined #ruby
gr33n7007h has joined #ruby
gr33n7007h has quit [Ping timeout: 268 seconds]
gr33n7007h has joined #ruby
ua_ has quit [Ping timeout: 252 seconds]
Linux_Kerio has quit [Ping timeout: 244 seconds]
rvalue- has joined #ruby
rvalue has quit [Ping timeout: 260 seconds]
ua_ has joined #ruby
rvalue- is now known as rvalue
gr33n7007h has quit [Quit: WeeChat 4.6.3]
gizmo has joined #ruby
gizmo is now known as gr33n7007h
sleetdro| has joined #ruby
sleetdrop has quit [Ping timeout: 268 seconds]
pastelowl has quit [Ping timeout: 276 seconds]
gr33n7007h has quit [Quit: WeeChat 4.6.3]
gizmo has joined #ruby
gizmo is now known as gr33n7007h
pastelowl has joined #ruby
Linux_Kerio has joined #ruby
gr33n7007h has quit [Quit: WeeChat 4.6.3]
inline has joined #ruby
inline has quit [Remote host closed the connection]
gr33n7007h has joined #ruby
szkl has joined #ruby
schn31d3r has joined #ruby
schne1der has quit [Ping timeout: 245 seconds]
<ih8u>
it's always something
<ih8u>
how am i supposed to install the pg gem
<ih8u>
i know it's possible because i've done it before
<ih8u>
but i'll be damned if i can remember the incantation
<ih8u>
i've already pointed bundler and gem install to the appropriate pg_config and libpq-fe.h paths
<ih8u>
and i know they exist where i say they exist
<ih8u>
but the bundler and gem install both still say they can't find libpq-fe.h
<ih8u>
so wtf
<ih8u>
not only have i installed this stupid gem, i've done it before *on this same exact system* under a different user
wbooze has joined #ruby
<ih8u>
right, well, apparently installing pg gem requires an empty double-flag `--` before the rest of the options but `budle` doesn't respect this?
<ih8u>
like it just straight up skips the empty flag even though it's required to install the gem with options?
<ih8u>
am i going crazy?
<ih8u>
i guess last time i just took the easy way out and `gem install`ed it, but that well and truly defeats the purpose of bundler
<ih8u>
so can someone please tell me what i'm supposed to do?
schn31d3r has quit [Ping timeout: 252 seconds]
pastelow1 has joined #ruby
pastelow2 has joined #ruby
pastelowl has quit [Ping timeout: 252 seconds]
pastelowl has joined #ruby
<ih8u>
in the bundler docs itself it has an example of what i'm talking about
<ih8u>
yet it fails
<ih8u>
so again i ask: wtf
<ih8u>
`gem install pg -- --with-pg-config=/usr/pgsql-17/bin/pg_config` installs the gem like i want
<ih8u>
now how the hell do i get bundler to do it?
pastelow1 has quit [Ping timeout: 268 seconds]
pastelow2 has quit [Ping timeout: 272 seconds]
GreenResponse has joined #ruby
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 268 seconds]
<ih8u>
ugh
<ih8u>
for fuck's sake
<ih8u>
even when i decide i don't care anymore, i hit an insurmountable roadblock with sequel_pg which will just straight up not install under any incantation
<ih8u>
god i hate this so much
<havenwood>
ih8u: Already installed the Postgres dep? You have `libpq-dev` locally?
<ih8u>
yes, or else i wouldn't have been able to install it before, or just now
<havenwood>
Use SQLite? :P
<ih8u>
pg, that is, not sequel_pg
<ih8u>
havenwood: not feasible
<ih8u>
though with the enormous pain in the ass that installing psql is, i'm mighty mighty tempted
<havenwood>
Been playing with WAL2 build and looking forward to its release. Could be month. Could be years.
<havenwood>
ih8u: It can indeed be a pain.
<ih8u>
i fucking know this is possible because i've done it on this exact same machine
<ih8u>
and on other machines multiple times
<ih8u>
excuse my language but i am at my wit's end
<ih8u>
i love ruby the language but the really, really hate deploying it
<ih8u>
compound that frustration with the fact that i'm on an rhel-like, which i loathe, and i'm ready to tear my hair out
<ih8u>
but seriously, whiat's up with the bundler thing?
<havenwood>
ih8u: Try setting a bundler config to match your gem one.
<havenwood>
bundle config set build.pg --with-pg-config=/usr/pgsql-17/bin/pg_config
<havenwood>
ih8u: If it's not a Rails app, maybe just bypass bundler.
<havenwood>
gem install -g
<havenwood>
If it is a Rails app, hardcoded to Bundler...
pastelow1 has quit [Ping timeout: 260 seconds]
schn31d3r has joined #ruby
<havenwood>
When they said they were merging Bundler and RubyGems I always assumed Bundler differences would be resolved in favor of RubyGems conventions and `bundle` would be turned into the `gem install -g` feature that was in the works.
<havenwood>
Instead, they just smushed 'em together and unified funding rather than tooling.
<havenwood>
It was a mistake to start Bundler apart from RubyGems in the first place.
<havenwood>
The RubyGems folk didn't like it from the start. Bundler folk didn't really have a reason other than couldn't be bothered. Now we have a two tools, one job.
<ih8u>
i already confirmed i can install it without bundler
<ih8u>
but that's beside the point
<havenwood>
ih8u: I'm suggesting build your Gemfile.lock without Bundler.
<ih8u>
it completely defeats the purpose of bundler
<havenwood>
ih8u: A `gem install -g` does the same job (just does not work for Rails).
<havenwood>
It takes a Gemfile, and produces a Gemfile.lock.
<havenwood>
Then you: export RUBYGEMS_GEMDEPS=~
<ih8u>
and even if i decide i don't care, my problem now is that sequel_pg will not install in any case
<havenwood>
Was being worked on back at the "merger" but still works outside Rails environment.
<ih8u>
for reasons i cannot humanly fathom
<ih8u>
it's not a rails app, but rather roda
<kjetilho>
naïve question - how does this interact with rbenv? I've always used bundler inside my rbenv's
<havenwood>
ih8u: Just curious, but `gem i -g` works?
<ih8u>
i'm inside rbenv myself
<havenwood>
kjetilho: rbenv just creates shims (and is a facade for ruby-build). should just work with RubyGems and Bundler.
pastelow1 has joined #ruby
<ih8u>
no it doesn't work
<ih8u>
it returns the same error for sequel_pg
<havenwood>
ih8u: So it's not a Bundler-specific issue, at least. It's a Gemfile.lock problem.
<havenwood>
ih8u: So pg installs but not sequel_pg or neither work?
<havenwood>
I know sequel_pg depends on pg, so assuming it's pg not building causing sequel_pg to fail?
pastelowl has quit [Ping timeout: 260 seconds]
<havenwood>
Does just a pg without a sequel_pg in your Gemfile build? Assuming no?
<ih8u>
pg is installed now via `gem install`
<ih8u>
but sequel_pg is having none of it
<ih8u>
sorry i've just been banging my head against this wall
<ih8u>
it is absolutely maddening
<havenwood>
Does a `gem install sequel_pg` succeed?
<ih8u>
no
<ih8u>
that's what's maddening about it
<ih8u>
and pg is not in my gemfile, only sequel_pg, which depends upon it
pastelowl has joined #ruby
<ih8u>
i'm so past caring anymore about what's "correct", i just want shit to work
<ih8u>
i like ruby, but seriously, my heart cannot handle the rage this shit fills me with
pastelow1 has quit [Ping timeout: 272 seconds]
<ih8u>
the doc makes it sound pretty as you please
<ih8u>
fucking computers are just not doing what i want them to today
<ih8u>
anyway, the INSTALLING THE GEM< section reads `Make sure the pg_config binary is in your PATH so the installation can find the PostgreSQL shared library and header files`
<ih8u>
which i've gone out of my way to do as to find the happy path
<ih8u>
also something about exporting env vars
<ih8u>
which i've also done
<ih8u>
please someone just tell me i'm doing something wrong
<ih8u>
that you know i've done something wrong because you just successfully installed the sequel_pg gem so i'm stupid and should die because i can't do it even though you have verified it's possible
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 260 seconds]
<havenwood>
ih8u: The only front and center sequel_pg installation caveat is:
<havenwood>
ih8u: Maybe `-Wl,--no-as-needed` is an issue?
<havenwood>
ih8u: But yeah, no `--no-undefined` so not that at least.
pastelow1 has quit [Ping timeout: 265 seconds]
<ih8u>
i definitely didn't dive this deep getting the gem to install before
<ih8u>
there's some fundamental thing i'm missing
<havenwood>
I've not seen this particular thing before.
<ih8u>
something so incredibly stupid that my eyes will roll out of their sockets when it is revealed to me
<ih8u>
so just to be clear:
<ih8u>
`gem install sequel_pg` does not work with pg_config on the path
<ih8u>
`gem install sequel_pg -- --with-pg-config=/usr/pgsql-17/bin/pg_config` also does not work
<ih8u>
`export POSTGRES_INCLUDE=/usr/pgsql-17/include/libpq-fe.h; export POSTGRES_LIB=/usr/pgsql-17/lib/libpq.so; gem install sequel_pg` also does not work
<ih8u>
i think it's time to find a new job
<havenwood>
ih8u: How about?: CFLAGS="" LDFLAGS="" gem install sequel_pg
<havenwood>
I'm kinda suspicious of an LDFLAGS issue but don't have a good reason.
<ih8u>
no
<ih8u>
same error as always
<ih8u>
`Could not find PostgreSQL build environment (libraries & headers): Makefile not created`
<havenwood>
ih8u: I might double check env vars and packages are identical between the machines.
<ih8u>
no change
<ih8u>
and anyway, i know the stupid pg_config works and is on my path because not only have i already set this dev environment up under a different user, but i've installed the pg gem with the current user
<ih8u>
i thought there must be some conflict in the latest version of sequel_pg gem
<ih8u>
but installing the specific version per my gemfile makes no difference
BSaboia has quit [Ping timeout: 268 seconds]
<ih8u>
"rebuild your dev environment with a dedicated user to match the app user in production", i thought
<ih8u>
"it will eliminate all those silly headaches about rsync not preserving file ownership across machines", i thought
<ih8u>
"life will be so much easier for you," i thought
<ih8u>
now it's three hours later and i want to kill something
pastelowl has joined #ruby
<ih8u>
namely, myself, but i thought that might set off some bot or something if i said that
<ih8u>
i was just supposed to supply the directories
<ih8u>
well, now the question is, how the hell do i make that work with bundler?
<ih8u>
pg will install with bundler if pg_config is on the path
<havenwood>
One is 17 and the other 14? Or typo?
cappy has joined #ruby
pastelow1 has joined #ruby
<ih8u>
typo
<ih8u>
but that apparently means that only the POSTGRES_INCLUDE is necessary
pastelowl has quit [Ping timeout: 260 seconds]
<ih8u>
i'm sorry all of you had to witness my descent into insanity
<ih8u>
i've documented this whole shebang now, so hopefully that will be the last of it
<ih8u>
i still think ruby's deployment story sucks
miah has quit [Remote host closed the connection]
msv has quit [Remote host closed the connection]
miah has joined #ruby
pastelowl has joined #ruby
msv has joined #ruby
msv has quit [Remote host closed the connection]
msv has joined #ruby
pastelow1 has quit [Ping timeout: 245 seconds]
miah has quit [Remote host closed the connection]
miah has joined #ruby
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 248 seconds]
pastelowl has joined #ruby
pastelow1 has quit [Ping timeout: 248 seconds]
<ih8u>
okay, this is more of a linux question
<ih8u>
but say i have myapp running in a vm on port 9292
<ih8u>
and i can ssh into that vm
<ih8u>
at `vm.local`
<ih8u>
how do i view `vm.local:9292`
pastelow1 has joined #ruby
<ih8u>
does that makes sense?
pastelowl has quit [Ping timeout: 252 seconds]
<kjetilho>
typically you use either port forwarding (ssh -L) or use ssh as a SOCKS proxy (-D).
pastelowl has joined #ruby
pastelow1 has quit [Ping timeout: 244 seconds]
brokkoli_origin has quit [Remote host closed the connection]
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 260 seconds]
user71 has joined #ruby
BSaboia has joined #ruby
pastelowl has joined #ruby
brokkoli_origin has joined #ruby
pastelow1 has quit [Ping timeout: 260 seconds]
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 265 seconds]
oznek has joined #ruby
pastelowl has joined #ruby
pastelow1 has quit [Ping timeout: 248 seconds]
<The_Camel>
it's lame that sinatra comes with a non-ssl compiled puma webserver.
pastelow1 has joined #ruby
pastelowl has quit [Ping timeout: 252 seconds]
<The_Camel>
Also, I wanna punch windows for ever having a file path limit.
<The_Camel>
of only 260 characters.
<The_Camel>
at least make it 2048.
<The_Camel>
or 4096.
<The_Camel>
my backups aren't backing up. and I don't know if "enabling" long file paths on windows will actually make the software back up long file names.
<The_Camel>
because if it doesn't, I'm fucked.
pastelow1 has quit [Ping timeout: 268 seconds]
pastelowl has joined #ruby
Vonter has quit [Ping timeout: 260 seconds]
Vonter has joined #ruby
cappy has quit [Quit: Leaving]
pastelowl has quit [Ping timeout: 260 seconds]
pastelowl has joined #ruby
ua_ has quit [Ping timeout: 276 seconds]
<havenwood>
The_Camel: You can use Falcon or Itsi with Puma.
<havenwood>
I mean, with Sinatra.
<havenwood>
Or port your Sinatra app over to Roda. ;)
<havenwood>
I mean, *and* port. Gosh, I need more coffee.
pastelow1 has joined #ruby
<havenwood>
Falcon offers HTTP/2 support in pure Ruby and Itsi provides it with Rust libraries.
<havenwood>
Nice to check the GNU standards when considering an option flag.
<havenwood>
The cat tool's -E is probably the most prominent -E flag.
<havenwood>
And BSD cat doesn't support it. ;)
<havenwood>
GNU only!
<elmetah>
I need a editor where 'unction buttons emit string.add( "echo " ), string.add( " echo" ),,,
pastelowl has joined #ruby
<havenwood>
elmetah: Your name make me think you hate elm.
pastelow1 has quit [Ping timeout: 245 seconds]
<havenwood>
I guess it could be a helmet, the meal or the male.
<havenwood>
And an e-hamlet.
<havenwood>
elmetah: Let us know if you ever have any Ruby questions.
<havenwood>
The_Camel: Roda really is nice. I'd highly recommend it over Sinatra as someone who used to use Sinatra avidly.
<havenwood>
Cherry pick some of the plugins it ships with and off to the races.
<havenwood>
Itsi is quite new but Falcon has been around a while.
<havenwood>
Both made out of New Zealand.
<havenwood>
🇳🇿
<The_Camel>
havenwood, it will require some effort to switch framework right now
<havenwood>
The_Camel: A Sinatra-to-Roda port is one of the easiest, but I hear ya!
<The_Camel>
havenwood, main concern is front end to be honest.
<The_Camel>
it bothers me
<elmetah>
How can I use Ruby to write a source editing journal under 2 minutes while using serialized non-directory as storage?
<elmetah>
Done
pastelow1 has joined #ruby
johnjaye has joined #ruby
<elmetah>
2002: Ruby making blog under 16 minutes, 2010: Ruby making blog under 16 minutes, 2020: Ruby making blog under 16 minutes, what is going on here?
jmcantrell has joined #ruby
<havenwood>
elmetah: The modern variant is creating a chat with Action Cable.
pastelowl has quit [Ping timeout: 260 seconds]
<elmetah>
Are you saying I'm useless like a chainsaw while no woods to clear?
<havenwood>
elmetah: Fun fact, "Nokogiri" is "chainsaw" in Japanese.
<havenwood>
鋸
<The_Camel>
under 16 minutes?
<The_Camel>
bro. i measure my projects in weeks.
<The_Camel>
lol
<elmetah>
Thank you mr dude, und mr awesome, you guys get real_time award, but our "under 16 minutes along Ruby" imagery is still hitting us hard as a community
pastelowl has joined #ruby
<elmetah>
It's two zero two two human-hand (iiiii -- at case you can't remember) : we build our blogs as weeks, 2003 built blogs as hours
<The_Camel>
i have no idea what the fuck you're on about.
<elmetah>
I'm done
<The_Camel>
You want a blog in 16 minutes? Use Google Blog creator.
<elmetah>
Is it written as Ruby?
pastelow1 has quit [Ping timeout: 248 seconds]
<The_Camel>
You want a superficial blog that you will start writing things in immediately and grow later? use jekyll.
wbooze has quit [Quit: Leaving]
<elmetah>
I want answers as non-answers, eureka! bingo!
<elmetah>
Got a good idea
schn31d3r has quit [Ping timeout: 248 seconds]
oznek has quit [Quit: Leaving]
<The_Camel>
I still don't know what you're on about.
Linux_Kerio has quit [Read error: Connection reset by peer]
Linux_Kerio has joined #ruby
pastelow1 has joined #ruby
<havenwood>
!spam elmetah
<ruby[bot]>
havenwood: Could not process command, usage: !spam nick [channel]
<The_Camel>
kinda sucks how implementing pagination on a filesystem technically "doesn't work"
<The_Camel>
I could "restrict" the list_files() function to only list "files starting with A, B, C..."
fantazo has joined #ruby
<The_Camel>
but now I've got an A-Z pagination. which, to be fair, isn't so bad.
<The_Camel>
but basically, it will always be Pages 1-26.
jmcantrell has joined #ruby
<The_Camel>
win32, underneath has a nice mechanism for triggering an event on "every newly enumerated file"
<The_Camel>
which means you can then cap it and say - "list me the first 20 files. ... next 40... next 60..."
<The_Camel>
but ah well
<The_Camel>
havenwood, have you ever told the difference between regular sinatra and modular sinatra?
<The_Camel>
is the latter basically a "more protected" scope space?
<The_Camel>
or is it, ultimately, just, OOP sinatra..
<kmad>
The_Camel: Why can't you list files in groups of e.g. 20?
<The_Camel>
kmad, don't think there's a ruby function in the Dir class for that.
<The_Camel>
unless I may have omitted it.
<o0x1eef>
With modular Sinatra you can group your routes in logical units, each class can be something like a controller, and each class is its own application you could mount at a given path
<The_Camel>
o0x1eef, yeah, it's that last bit I don't quite get. "each class is it's own application".
<weaksauce>
The_Camel use lazy enumerators perhaps
<The_Camel>
and what do you mean by mount?
<o0x1eef>
In terms of Rack. Each class is its own Rack application, and you can mount / map a Rack application to a given URL in a file like config.ru.
<The_Camel>
never used rack but I think the only analogy I can assign that to might be the possibility of having multiple websites under the same server.
<The_Camel>
is that it?
<o0x1eef>
You could also introduce your own superclass that other classes would inherit from. So you can organize your code a bit better.
<o0x1eef>
A rack application is an object that implements #call and returns an array with [status, headers, body]. It can also use middleware, which can filter a request before or after an application has handled a request.
<The_Camel>
I also presume it creates a process/thread for each "application" too
<o0x1eef>
Rack is worth learning about because its the foundation of modern ruby web frameworks, all of them use it
wbooze has quit [Quit: Leaving]
<The_Camel>
just asked chagpt what rack is, i thought it was a webserver but it seems it's like some sort of WSGI interface.
<havenwood>
The_Camel: +1 to weaksauce's suggestion. Just iterate.
<havenwood>
Or for most pagination libraries, you can just pass it directly and it'll handle.
<o0x1eef>
In the case of Sinatra, each class is its own application that can have its own middleware, its own configuration, etc. There could also be a common superclass. So it is really useful if your app is going to be big. Otherwise classic sinatra can be fine.
<The_Camel>
yeah, ok, so it's essentially another "webapp" on the same server.
<havenwood>
The_Camel: Rack is a standard. Sinatra, Roda, Rails, Hanami are all Rack apps. You can also write a Rack app directly in Rack. Roda adds a nice routing tree on top of Rack and plugin to cherry pick.
<kmad>
Yeah, I mean, at the end of the day, you're just slicing a list, so why not a list of files?
<havenwood>
Any Rack app can run on any Rack webserver, since it's the Rack webserver implementing the spec.
<The_Camel>
havenwood, would that lazy filter work on an already "enumerated" list of files or does it actually force the OS to be lazy?
<The_Camel>
because I'd assume it lists all files first, then does the work. my goal was kinda not to do that lol
<havenwood>
With Pagy or whatever can take the enumerator directly and it handles the pagination rather than slicing.
<havenwood>
The_Camel: No, Dir.each_child provides an Enumerator.
<The_Camel>
ah. right
<The_Camel>
i'm dumb. now i see it. sweet.
<havenwood>
It's probably a nice idea to create a little pure Rack app. You can run it with Puma, Falcon, Itsi, whatever.
<havenwood>
Then you see why Roda's routing tree is nice!
<havenwood>
And exploring Roda plugins is worthwhile in its own right.
<o0x1eef>
Agree. Also check out rack middleware.
<havenwood>
Highly recommend porting to Roda when you get a chance.
<havenwood>
+1 middleware
<The_Camel>
lacking so much web knowledge. all because I spent so much of my time in win32 :(
<havenwood>
Understanding a Rack app and middleware is clutch.
<The_Camel>
right, I'll make a note to look into rack and make an app. cheers guys.
<havenwood>
Then port it to Roda. :)
<havenwood>
Simple and elegant.
<The_Camel>
well, in my current project, I thought modular sinatra was just OOP sinatra
<havenwood>
class SimpleStringApp def call(env) = [200, { "Content-Type" => "text/plain" }, %w[xoxo]] end
<havenwood>
run SimpleStringApp.new
<The_Camel>
wrote my project in that style. didn't really need it -_-
<The_Camel>
i mean....
<havenwood>
That's ^ a rack app, for example. Save it as `config.ru` and run it with `puma` or whatever.r
<The_Camel>
I do like oop
<The_Camel>
so I guess it wasn't all for naught.
<The_Camel>
I like controllers being separate files
<o0x1eef>
I think it is a little weird because it is a DSL inside a class body
<The_Camel>
havenwood, so if I have 9 controllers, I have 9 rack apps?
<The_Camel>
9 classes.
<o0x1eef>
It depends if each class inherits from Sinatra::Base or a common superclass, you can build one applicatio this way too, but organize the application into classes.
<The_Camel>
I see. yes it does inherit from Sinatra::Base
<The_Camel>
and it's 14 controllers **
<o0x1eef>
If you have one class that inherits from Sinatra::Base and all other controllers inherit from that common superclass you have one application organized across multiple classes, with the same middleware + config
<The_Camel>
oh. oh nice. well, that means my code sucks because all my controllers inherit from Sinatra::Base
<The_Camel>
and I was forced to provide a path to /view each time. which I didn't really want but meh
<o0x1eef>
Right, that could be set on the superclass and inherited by all the other controllers
<The_Camel>
mhm....
<The_Camel>
I can change it when I get into the mood I guess. but that's useful to know, thanks.
<o0x1eef>
Yep, and then as you might expect a subclass can add middleware that's unique to it, or override config settings set by the common superclass. So it provides some useful patterns for bigger apps.
<The_Camel>
havenwood, I opened the site. I'll have a look.
<havenwood>
And maintains Rack and is a member of Ruby Core.
<havenwood>
The_Camel: It's quite, quite nice. And modern and maintained.
<o0x1eef>
I'm not sure languages like Ruby are good for desktop apps. Usually you want something compiled for that.
<havenwood>
o0x1eef: I concur.
<The_Camel>
o0x1eef, you mean search_parser? it's for web.
<The_Camel>
I take in a search string and it may look like "I want dresses && hats && shoes but no shoes that are black."
<The_Camel>
so while search_parser creates a nice AND and NOT tree
<The_Camel>
parsing is afterwards is messy. requires
<The_Camel>
map() and reduce()
<The_Camel>
which I'm not so used to.
<o0x1eef>
You mentioned building something similar to qt for ruby, and I think you'd have limited success with that. At least commercially. Ruby would have to be distributed to the customer somehow, so it requires a third party runtime, and the source code is going to be plain to see, which is not great for commercial purposes
<The_Camel>
o0x1eef, well, that was hypothetical. I'm not going to build it. at least not until I end up rich and can hire an army of devs :)
<havenwood>
The_Camel: MRuby would make more sense. See DragonRuby as an example of the portability.
<The_Camel>
but I avoided it because I presume not everything available in ruby gems is going to work on it
<The_Camel>
which just ticks me off real bad
<o0x1eef>
Yeah, it is its own language in its own right. Ruby-like at best.
<The_Camel>
o0x1eef, you see, the way I see ruby and python and all these VHLLs
<The_Camel>
is like a giant. cookie. (bruce almighty reference)
<The_Camel>
i chew and I see bits raw
<The_Camel>
some parts of said cookie are burnt
<The_Camel>
some are already chewed by someone else
<The_Camel>
and I just don't fucking enjoy a goddamn, own, cookie
<havenwood>
You can't use Ruby gem in MRuby either. Gotta use mgems.
<The_Camel>
which is why I sometimes return to C#
<havenwood>
And build MRuby with the mgems you need.
<havenwood>
The_Camel: Rust or Zig. Pick your poison.
<The_Camel>
havenwood, oh, right. so I can't chew my cookie now in some areas because I need special teeth because of the baked in walnut shells
<The_Camel>
havenwood, C# and .NET
<The_Camel>
because it feels more complete in all honesty :)
<The_Camel>
but even then
<havenwood>
At least J#.
<The_Camel>
I encounter situations
<havenwood>
|>
<The_Camel>
where I must rely on the bloody NuGet
<The_Camel>
repo
<havenwood>
Rust and Zig are nice.
<o0x1eef>
Each language has its strengths and weaknesses, I'd prefer to use Ruby for web stuff than say Rust but then if I wanted to target a desktop I'd probably rather to use Rust. So it depends what you want to do. CRuby is a strong web | cloud language.
<havenwood>
o0x1eef: Yeah, I'd want to use Ruby or Elixir rather than Rust for web.
<The_Camel>
CRuby? So now my cookie has maple syrup inside?
<havenwood>
We call MRI "CRuby" these days.
<havenwood>
It's YARV, ("yet another VM") rather than MRI ("Matz' Ruby Interpreter") since it's a VM now rather than simple interpreter.
<The_Camel>
Yaaarrrrr...v.
<havenwood>
CRuby, JRuby, MRuby, TruffleRuby, Artichoke, Natalie, et al.
<o0x1eef>
MRI <= 1.8
<havenwood>
Back in those days there was IronRuby for .NET too.
<The_Camel>
And when I win the lottery, make room for QRuby.
<havenwood>
Maglev was cool. That's the one I miss.
<havenwood>
We went from YJIT to ZJIT so I think A JIT is next.
<o0x1eef>
Those were exciting times for Ruby
<o0x1eef>
Rubinius too
<havenwood>
ZJIT is interesting, but so early. It'll be interesting to see how far it gets by Christmas.
<havenwood>
I suspect it'll be ready to replace YJIT as the default by Christmas of 2026.
<The_Camel>
so many ruby related projects but still no opensource IDE
<havenwood>
neovim
<user71>
+1
* The_Camel
grabs backscratcher.
<The_Camel>
that's not an IDE.
* The_Camel
scratches back.
<havenwood>
helix
* The_Camel
scratches havenwood's back
<The_Camel>
that's not an IDE.
<havenwood>
Everything short of nano is an IDE these days.
<havenwood>
The_Camel: Has LSPs, debugger, formatter, tree-sitter parser, highlight, textobject and indent queries. Seems like an IDE.
<o0x1eef>
Plugin system too
<The_Camel>
it has them. but it doesn't come with them.
<The_Camel>
So as I sit there, scratching my back, I open up neovim for the first time and I'm like
<o0x1eef>
I think VS Code wouldn't disappoint if you're looking for something IDE-like, with minimal effort
<havenwood>
The_Camel: helix kinda does
<The_Camel>
sigh. this IDE needs plugins.
<The_Camel>
so I spend 30 minutes going around looking for ruby plugins
<havenwood>
The_Camel: helix just works
<havenwood>
modal editor akin to neovim
<havenwood>
neovim is also quite popular and has great ruby support
<havenwood>
Or Zed is done by one of the Pry folk (cirwin) if you're into that llm stuff.
<The_Camel>
do I have to download the neovim-for-ruby version of neovim to have it "just work" ?
<kmad>
+1 for (neo)vim, I use it for _everything_, Ruby, Elixir, Go, C, assembly, markdown, as a hexeditor, etc.
<The_Camel>
because if I do, I'll be scratching my back a few more times.
<havenwood>
The_Camel: Maybe grab neovim, helix and zed and see what fits.
<o0x1eef>
+1 zed
<o0x1eef>
That's a modern choice worth a shot
<The_Camel>
havenwood, got something that actually uses the xorg/wpf manager instead of being a TUI?
<The_Camel>
wayland nowadays **
<The_Camel>
zed seems to be one.
<The_Camel>
neat
<The_Camel>
is it... an electron app?
<The_Camel>
oh. seems it's not. even neater.
<The_Camel>
there's pricing?!
schn31d3r has quit [Ping timeout: 276 seconds]
<The_Camel>
50 prompts per month free.
<The_Camel>
I'm gonna
<The_Camel>
kill myself.
infinityfye has quit [Read error: Connection reset by peer]
eddof13 has joined #ruby
* The_Camel
notes to self. When I win the lottery, have an army of devs in one company to build a ruby IDE, not just a qt-like framework for ruby.
<fantazo>
The_Camel: you forgot the hookers.
<The_Camel>
fantazo, thanks for reminding me. I also need blackjack.
<fantazo>
The_Camel: yeah.
eddof13 has quit [Client Quit]
<The_Camel>
in all honesty though, I think what o0x1eef said about being "multilingual" makes sense nowadays in such a bad ecosystem
<The_Camel>
want desktop? just go rust or c#
<The_Camel>
want web? just go ruby or python
<havenwood>
Zed is written in Rust.
<The_Camel>
want ai? just go python
<havenwood>
So is Helix.
<havenwood>
Elixir is starting to develop a nice distributed AI ecosystem.
<The_Camel>
havenwood, yeah but that's like saying "(me) I want a hammer. (storekeeper) here's a plier. (me) I guess I can hammer things with this... (storekeeper) It's made of aluminium and oak wood."
<The_Camel>
at which point I just stare at the storekeeper.
<The_Camel>
I wonder if the electronic industry is like the software world
<The_Camel>
"I need a chip with these specs"
<The_Camel>
"Here's a hammer"
user71 has quit [Quit: Leaving]
<The_Camel>
And then the guy who actually has a chip with the specs I need built an IC as large as a tablet on a breadboard and sells it on amazon for 12$
<The_Camel>
"I need that."
<kmad>
I don't know... I think it's more akin to saying "I want a hammer specifically for this kind of nail and nothing else" when offered a perfectly capable hammer for most kinds of nails.
<The_Camel>
and then it's out of stock because the dude who sold it died.
<The_Camel>
kmad, naw, an IDE is like, the most natural thing to ask for.
<The_Camel>
being told to "lego build an IDE" is, well, avoiding the real issue. there not being an IDE!
<The_Camel>
sure. if I ever need to, I will go build that ide on some editor. i'm not that lazy
<The_Camel>
but _there is no IDE_
<havenwood>
I don't really want an IDE.
<The_Camel>
I really want an IDE :)
<havenwood>
I just set up the LSP so I can feel accomplished then disable it to type.
<kmad>
The_Camel: Most people seem to be doing perfectly well without an IDE specifically for Ruby, and have been for some 30-ish years.
hombrelaser has joined #ruby
<The_Camel>
kmad, but the matter of fact is
<The_Camel>
__there is no IDE__ !
<havenwood>
RubyMine, etc.
<weaksauce>
use rubymine if you need one
<The_Camel>
havenwood, HAHAHAHAHH, funny video. wish they had subtitles for what they actually said.
<kmad>
Some would argue that, if there needed to be, there would be...
<The_Camel>
rubymine isn't opensource.
<havenwood>
Plain 'ole VS Code is more capable than an old-school IDE these days with an LSP.
<The_Camel>
you know what. fuck it. i'll just grab a torrent.
<The_Camel>
and keep my complains to myself lol
<havenwood>
Just get colored pencils, write your code by hand, then have an LLM transcribe it.
<kmad>
lol, it's a Norwegian video about Danish language. The "Danish" is just sounds that sound vaguely like Danish.
<havenwood>
I really don't like autocompletion.
<The_Camel>
I normally need an IDE for 3 primary reasons.
<havenwood>
Is one an off by one error?
<The_Camel>
debugger. tests. project management.
<kmad>
Same. I'll Ctrl-x ctrl-{f,p,o,...} if I need to autocomplete, otherwise it just needs to stay out of my way.
<weaksauce>
vscode can do all of that
<havenwood>
^
<The_Camel>
I know it can but I have to "build" an IDE by... nevermind.
<The_Camel>
where's the torrent list
<The_Camel>
someone has to have rubymine somewhere
fantazo has quit [Quit: leaving]
<havenwood>
I really don't think it's worth it.
<weaksauce>
lol installing an extension is "building" an IDE now?
<The_Camel>
weaksauce, it kinda is if I must reach the same level of an IDE by keeping track of at least 13-15 plugins
<The_Camel>
really don't like that form of development.
<weaksauce>
ruby-lsp plugin is one that does it all
<weaksauce>
but you're set in your ways
<weaksauce>
go forth and torrent
<The_Camel>
yeah, I expect what should be there naturally, as it has been for decades.
hombrelaser has quit [Quit: Adiós!]
hombrelaser has joined #ruby
<The_Camel>
weaksauce, ever went scubadiving? when I ask for a scubba-suit, I don't like being told "you can buy a helmet from amazon" and "flip flops, ask the captain", and for a harpoon I'm told "they're in norway, buy a ticket there first."
<The_Camel>
that's not how it goes!
<The_Camel>
"but people have been doing that for 30 years" is not an answer ;/
<kmad>
Wtf kind of scuba diving do you do where suit, goggles and fins are molded together?!
<kmad>
Those 3 things notoriously are acquired separately.
<The_Camel>
kmad, in a submarine.
<kmad>
That's not really scuba diving then, is it?
<kmad>
Remember to AV-scan the crap out of that...
<The_Camel>
kmad, sure. see bottom of page. they already do it.
<The_Camel>
and comments.
wbooze has joined #ruby
<havenwood>
The_Camel: I'm an advanced open water diver and scuba is terrifying. Just like IDEs.
<The_Camel>
havenwood, that's fine
<The_Camel>
I've got nothing against people doing whatever they like.
<The_Camel>
I got something against me not finding things that should be there :D
<havenwood>
If you're going to RubyMine without a license, do just try VS Code with ruby-lsp since I suspect it's more nimble.
<havenwood>
And more used.
<havenwood>
Nothing against RubyMine folk. Just seems... big.
<kmad>
The_Camel: VirusTotal does not catch everything --- by a long shot, and unless you're verifying the hashes, then those links are pretty moot.
<The_Camel>
havenwood, I've tried it before. years ago. hell, I've used plugins with editors in the past. i found the experience rather disappointing and, frankly, "peasant poor" lol
<havenwood>
When I was at Square it was cool to see them engaging with Steep. Gotta respect that, but too hefty for me.
<The_Camel>
havenwood, a few GB is fine. less than 5GB? all good.
<The_Camel>
havenwood, unlike visual studio which is at least 23GB
<The_Camel>
kmad, in the nodejs world, it's more common to come with the tool.
<The_Camel>
like vuejs
<kmad>
Hmm. Mix (Elixir) has some scaffolding capabilities --- even more with Phoenix installed, IIRC --- and I think there was something in Ruby/Rails back in the days too. But yeah, maybe it comes with the tools.
<The_Camel>
rails does come with scaffold tools
<The_Camel>
yes
<kmad>
But my point remains, it can usually be done from the CLI, so why would you need an IDE for it?
<The_Camel>
I like one solution fits all sizes.
<The_Camel>
and this goes not just for development, but for a lot of things.