<Spooner>
context: I agree that it sort of makes sense to default compressions, apart from the fact that compressing is entirely optional (I imagine not everyone will want to do it anyway, because people are odd). I'm relying on 7z, so I don't have a way to make .dmg (7z works on a lot of formats, is free, open source, efficient and cross-platform - more so than I imagine other stuff could be). That said, it is easy to expand with your ow
<Spooner>
n archive formats (just need to provide a command line and extenstion really).
<drbrain>
.dmg has built-in compression (but you probably know that)
<Spooner>
drbrain: I have no idea, drbrain. I've never used a mac.
tommyvyo [tommyvyo!~tommyvyo@38.123.129.115] has joined #ruby-lang
SuperTaz_work [SuperTaz_work!~supertaz_@c-24-130-115-179.hsd1.ca.comcast.net] has joined #ruby-lang
<drbrain>
Spooner: well, now you know, so if you see dmg.zip or whatever you know you're doing it wrong
<Spooner>
Do you mean it is inbuilt to OS X to compress to dmg? I don't care about decompression, since that isn't something I need to do.
<drbrain>
or they're doing it wrong
rpowell [rpowell!~rpowell@101.161.61.71] has joined #ruby-lang
<drbrain>
when you create the dmg there's an option you can set to enable compression of the contents
<drbrain>
the OS automatically handles it so there's nothing for the user to do
yfeldblum [yfeldblum!~Jay@c-98-218-48-253.hsd1.md.comcast.net] has joined #ruby-lang
<slyphon>
drbrain: it's like people that rar divx files
<drbrain>
slyphon: some packagers don't know you have to enable it
<slyphon>
ah
<drbrain>
looks like newer OS X lets you pick a different file format with built-in compression
<erikh>
rake git:manifest
<erikh>
ahem
<erikh>
related: hoe-git rules
<drbrain>
oh, uh, one project had pkg/ checked in
<drbrain>
so be careful with your `git add`
<Spooner>
Everyone: Thanks for the thoughts on that.
jarib_ [jarib_!~jarib@109.74.192.179] has joined #ruby-lang
<Spooner>
I've added a dmg archiver (untested, of course) and fixed that dumb string[0] error. I'll certainly consider a default archiver (but only if none are specified at all). Still, I am not sure what I should be telling users to do to manage their #files=.
<drbrain>
Spooner: most of the time users won't check in the wrong things
<drbrain>
They mostly come out at night … mostly
tomzx [tomzx!~tomzx@dsl-156-157.aei.ca] has joined #ruby-lang
<Spooner>
drbrain: Indeed, but if you can't trust them not to check in /pkg/ you can't trust them to check a manifest :D
<drbrain>
Spooner: yeah ☹
<Spooner>
How do you feel about a DSL for it though? I looked at confstruct, but it is too open (that is, it is as open as a yaml doc) where I need to expose only the commands I want to.
<drbrain>
Spooner: from RubyGems I've learned you can never be restrictive enough
<Spooner>
drbrain: Yeah, absolutely.
takaokouji [takaokouji!~takaokouj@nat35.mable.ne.jp] has joined #ruby-lang
dreinull [dreinull!dreieins@217.18.70.225] has joined #ruby-lang
<slyphon>
drbrain: most of my software, where i know *anyone* is gonna use it besides me, i try to make sure the cork is FIRMLY on the fork
<drbrain>
haha
<drbrain>
yeah
flowerpot [flowerpot!~flower@ec2-50-112-22-115.us-west-2.compute.amazonaws.com] has joined #ruby-lang
<Spooner>
I need to go back and make Relapse bomb-proof, because it is certainly not right now :D
<Spooner>
Well, at least you haven't all jumped up and down and said it is fundamentally a dumb idea, so there is hope.
<erikh>
that doesn't happen often in here
<erikh>
I mean, saying things are fundamentally dumb
<erikh>
which is one of the more attractive things about this place :)
<Spooner>
That takes away my hopes that I'm not wasting my time then :D
<erikh>
that wasn't my intention
<injekt>
:)
<shevy>
beer
<erikh>
yes beer
<erikh>
Time to go get some
<shevy>
some fundamental principles should always be right
<shevy>
things like ... cool beer is refreshing ... pythonista write email headers starting with 'zzSs ssZzsshh szshss' ... and ruby is slow
drdr [drdr!d059b08f@gateway/web/freenode/ip.208.89.176.143] has joined #ruby-lang
<shevy>
hmm do you guys know a gem command ... that tells me the latest (remote) version of package "foobar", to the commandline?
<workmad3>
shevy: you mean like 'gem list -r foobar' ?
<shevy>
hmm basically I have a gem version here, like foobar-1.0.0 and I just want to use a command that would output the latest remote version ... like foobar-1.0.1
<Spooner>
%x[gem list --remote #{gem}][/\d\.+/]+
<Spooner>
%x[gem list --remote #{gem}][/[\d\.]+/] # typing fail
<shevy>
hmm
<injekt>
wow I work with a serial commenter, this is painful
fayimora [fayimora!~fayimora@109.175.187.141] has joined #ruby-lang
<erikh>
injekt: you forgot to end that statement in a comment # reminding injekt to end his statements with a comment
<injekt>
:D
<injekt>
erikh: comments after 'end' keywords, too :(
<injekt>
SADFACE
<erikh>
I do that on long end strings
<erikh>
like: end # if foo
<injekt>
yeah this was method defs
<erikh>
also, wow, this coffee porter is shamazing
<injekt>
im so hungry tapas did not fill me up
<erikh>
the perfect time for beer; when the stomach's nice and empty
<erikh>
that way if it comes up later it's short and sweet
<slyphon>
erikh: thinkin ahead!
<erikh>
I'm a planner
<Spooner>
Hmm, you reminded me that I needed to test in 1.8.7 again (hadn't since much earlier in the project). Not sure why, but I have latest Rake installed but 1.8.7 complains that it can't load rake/testtask (which works perfectly fine in 1.9.3).
<slyphon>
god *dammit*
<erikh>
I'm a programmer, not a doctor
<slyphon>
:)
<erikh>
also I'm very bored. is that obvious or what?
<slyphon>
well, you're in irc
<slyphon>
"first clue"
<erikh>
ha
<slyphon>
drbrain: so, what's .rz ?
<slyphon>
just gzip?
<erikh>
compress IIRC
<slyphon>
gah, ffs
<slyphon>
what do you use on compress
<slyphon>
isn't that .Z ?
<erikh>
uncompress
<erikh>
yes
<slyphon>
like Old Skool Solaris
<erikh>
yes
<erikh>
file it
<erikh>
`file` it rather
<slyphon>
quick/Marshal.4.8/diff-lcs-1.1.2.gemspec.rz: data
<erikh>
oh yay
<erikh>
gg file
<slyphon>
yeah
<slyphon>
"Pfffft, i don't fuckin' know" - file
<slyphon>
"some kinda data or somethin"
<erikh>
I always chuckle a little bit when I see a /data or something similar on a server
<erikh>
it just says, "hey guys, I really thought about this hard"
<robgleeson>
FRIDAY, YEAH!
cconstantine [cconstantine!~cconstant@173.247.200.5] has joined #ruby-lang
Jarred [Jarred!~Administr@c-71-198-139-210.hsd1.ca.comcast.net] has joined #ruby-lang
<Jarred>
Hi all
<Jarred>
I'm trying to deploy two different Rails 3.2 apps under different domains with Passenger and Nginx on the same machine (installed via passenger-install-nginx-module). My Nginx config file is at https://gist.github.com/9f712813b32b6b34d049. The issue I'm having is that it just shows the "Welcome to Nginx" page, which probably means it's configuration issue. Is there anything glaringly wrong in that configuration file?
<drdr>
can ngnix see the file?
<cconstantine>
Jarred: you might start by making sure the config file is being used. inject a syntax error and see if nginx complains about it
looopy [looopy!~looopy@pool-141-156-60-19.washdc.btas.verizon.net] has joined #ruby-lang
<Jarred>
drdr and cconstantine You're right. WinSCP wasn't saving the config file from my editor
<drdr>
whoo
<cconstantine>
i like being right!
<slyphon>
sonofa
<chris2>
^^
<Jarred>
cconstantine: The only issue now is that tamefiles.com is going to jarredsumner.com
<Jarred>
oh wait
<Jarred>
there's a reason for that
<Jarred>
hold oin
<cconstantine>
holding oin
<slyphon>
jesus
<slyphon>
where the fuck did this come from?
<cconstantine>
slyphon: I'm guessing the internet
<slyphon>
probably
<drdr>
or canada if its mapley in flavor
* slyphon
is very confused by this rubygems issue
<drbrain>
slyphon: .rz is deflate encoding
<drbrain>
I have no idea why I didn't make them gzip
<slyphon>
ah
<slyphon>
drbrain: so, i'm trying to compare ~/.gem/specs/rubygems%80/quick/Marshal.4.8/diff-lcs-1.1.2.gemspec with what's on the disk on my private gem host
<drbrain>
ok
<slyphon>
if i just cat ^^ that file i can see:
<slyphon>
diff-lcs;TU:Gem::Version[I"
<slyphon>
Rational
<slyphon>
and a bunch of garbage
<drbrain>
it's Marshal format
<slyphon>
k, and it doesn't load when i try it in jruby "undefined class/module Rational"
<slyphon>
but
<slyphon>
i'm trying to figure out how i even get this file
<slyphon>
i'm less "trying to get to the bottom of it" and "jus ttrying to make it go away"
newbold [newbold!u5179@gateway/web/irccloud.com/x-diisnxqdjgwdfban] has joined #ruby-lang
<drbrain>
sure
<drbrain>
let's go to #rubygems
<slyphon>
kk
takaokouji [takaokouji!~takaokouj@220.110.223.220] has joined #ruby-lang
ap3mantus [ap3mantus!~ap3mantus@c-98-217-179-108.hsd1.ma.comcast.net] has joined #ruby-lang
lightcap [lightcap!~lightcap@97-115-90-91.ptld.qwest.net] has joined #ruby-lang
ricardovaleriano [ricardovaleriano!~ricardova@186.220.217.229] has joined #ruby-lang
rpowell [rpowell!~rpowell@CPE-138-130-100-237.lns2.cht.bigpond.net.au] has joined #ruby-lang
jaisoares [jaisoares!~jsoares@92.250.30.106] has joined #ruby-lang
darkf_ [darkf_!~darkf_dix@unaffiliated/darkf] has joined #ruby-lang
igotnolegs [igotnolegs!~igotnoleg@75-162-83-166.slkc.qwest.net] has joined #ruby-lang
tommyvyo [tommyvyo!~tommyvyo@38.123.129.115] has joined #ruby-lang
Sailias [Sailias!~jonathan@CPE0018f85e576d-CM001bd7aaaf96.cpe.net.cable.rogers.com] has joined #ruby-lang
<hackeron>
hmm, I'm not sure what's gone wrong, but my ruby stopped working :/ -- if I run rails or bundle, all I get is: "/usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)" -- any ideas what could be causing the problem?
<robgleeson>
rbenv, and ruby-build, two tools you can put together to get RVM-like features
<robgleeson>
I use it, works fine
<drbrain>
I just ./configure; make; make install
<drbrain>
way easier
<hackeron>
robgleeson: why 2 tools? - isn't there an easier way? :(
<robgleeson>
you left the wget part out, and finding the links :>
<drbrain>
robgleeson: what wget?
<robgleeson>
drbrain: to fetch the src
<drbrain>
robgleeson: I already have the source
<drbrain>
in my ruby checkout
<drbrain>
I found it once and kept it!
<robgleeson>
hackeron: check out the README of rbenv on why there is two tools
<robgleeson>
it adds 'rbenv install' command if you have ruby-build, its easy
<robgleeson>
drbrain: hah
<drbrain>
robgleeson: I hope you realize I'm not being serious :D
<hackeron>
robgleeson: why not just have it included in rbenv?
<robgleeson>
hackeron: README tells you that, no point in me trying to quote the author when he explains why already
<hackeron>
robgleeson: I'm reading the readme - where does it tell you that?
<robgleeson>
'UNIX design philosophy' part, one tool for one job, etc
<robgleeson>
unless he's changed it, it should still be there
looopy_ [looopy_!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
<hackeron>
robgleeson: nope, not in there
<robgleeson>
rbenv for is managing ruby versions (they could come from anywhere), and ruby-build is for building
<robgleeson>
you can combine both to get what RVM essentially is
<hackeron>
seems like a pointless separation to me -- I want to have multiple ruby versions - why would I have one tool that installs the different versions and then another tool that lets me use the installed versions installed by the first tool?
<robgleeson>
im not being rude, but im giving up
<hackeron>
especially when all the first tool does is add a command to rbenv and is useless without the second tool :/
<robgleeson>
i already told you they can integrate together
<robgleeson>
'rbenv install …'
<fleas>
robgleeson seriously. You can lead a horse to water..
<fleas>
you know the rest. :)
<hackeron>
robgleeson: I understand that, just seems like a horrible design decision to me - I'll stick with rvm and the occasional weird behaviour :) - rbenv is a step backwards, not forwards
<robgleeson>
I'd disagree, but yep, alright
<fleas>
BTW if you look at the RVM source code, it's a bunch of shell scripts combined for different tasks. It's only hidden by the fact that the command is "RVM" to use it.
<fleas>
in fact, there is even a seperate installed script with RVM called rvm-install.
<hackeron>
robgleeson: what are the advantages of rbenv?
yakko [yakko!~quassel@189.27.57.132.dynamic.adsl.gvt.net.br] has joined #ruby-lang
<slyphon>
rvm is pretty fucking brilliant
<bougyman>
+1
<slyphon>
hackeron: its author spreads FUD about rvm
antinitro_ [antinitro_!~adam@cpc1-stap4-0-0-cust418.12-2.cable.virginmedia.com] has joined #ruby-lang
<hackeron>
fleas: great, I want all the details hidden from me, couldn't care less what it does behind the scenes as long as I don't have to do it manually :)
<hackeron>
slyphon: heh, indeed
<robgleeson>
if you're happy, no reason to change
<robgleeson>
but at least understand a tool before you beat it up
<slyphon>
i happen to really like wayneeseguin, and he's been nothing but amazingly helpful, so the rbenv guy kinda pissed me off
<robgleeson>
you only discovered rbenv less than 5 minutes ago
<slyphon>
that is not a statement, however about rbenv's quality
<hackeron>
robgleeson: no, I knew about rbenv for a while but I never tried it because I don't want to go through a 5 step process for every box I put ruby on
<hackeron>
robgleeson: why would I? - please tell me what you prefer about it personally
<robgleeson>
I've had a lot of issues with RVM, and how it works, it'd take me a long time to explain.
<robgleeson>
I'll pick the shortest.
<bougyman>
there have been issues in rvm
<fleas>
yeah, lots of these newer developers are used to everything being done for them, a lot think they know a lot more than they actually do. (not directed at anyone here).
<bougyman>
i bet there've been issues in rbenv, too.
<bougyman>
use what works _for you_
<robgleeson>
switch branch in a git repository, change ruby on branch change: solution for RVM, write a shell function called 'git' that does it for me. solution in rbenv: do nothing, just works.
<fleas>
I find the newer generation of developers are quit different from even the 90's generation. Shit, the majority would know the difference between a socket and a stream.
<drbrain>
I know how all the parts of ruby work together, and I don't want them hidden behind an abstraction
<bougyman>
robgleeson: i've never ever needed that feature.
<bougyman>
but: neat.
<slyphon>
i fucking hate ubuntu's ssl CA maintainer
<fleas>
one "rails developer" told me recently that he uses campfire and never used IRC.
* fleas
palms forehead.
<bougyman>
yeah that's ass.
<slyphon>
those people come and go
<bougyman>
i try not to say anything about something if I can't say something positive.
<bougyman>
i haven't said anything about rails in 5 years.
<slyphon>
bougyman: what's the fun in that?
<robgleeson>
bougyman: it's a edge case feature but around that time rbenv was announced, so I decided to try it, haven't changed back because I'm lazy and it works fine.
<robgleeson>
I feel like rbenv/ruby-build is a lot more transparent, though
rpowell [rpowell!~rpowell@CPE-138-130-100-237.lns2.cht.bigpond.net.au] has joined #ruby-lang
<bougyman>
robgleeson: i'm of the kiss mindset, too.
<fleas>
i liked the internet better when it was smaller, and people actually liked to learn about implementation.
<bougyman>
problem for us: we've become very dependent on rvm
<bougyman>
so any change in process means hitting a lot of codepoints.
<bougyman>
i'll check it out here locally though.
huhu_ [huhu_!~huhu@unaffiliated/huhu-/x-6122598] has joined #ruby-lang
<fleas>
bougyman why, you can accomplish the same thing with a simple shell script that add/remoevd symlinks to the ruby version you want to use.
<bougyman>
fleas: sure i could.
<bougyman>
i can do that in rvm, too
<bougyman>
i can even make the hook for the feature robgleason jsut talked about
<fleas>
would take a whole 5m.
<bougyman>
yes, and it would be a silo
<bougyman>
community-project better than me-have-to-maintain silo
<bougyman>
so long as they're doing it right. and I think for the most part deryl and wayne get it right.
<bougyman>
i was glad to see rvm-test hit.
igotnolegs [igotnolegs!~igotnoleg@75-162-83-166.slkc.qwest.net] has joined #ruby-lang
datanoise [datanoise!~datanoise@24-145-66-018-dhcp.mia.fl.atlanticbb.net] has joined #ruby-lang
datanoise [datanoise!~datanoise@24-145-66-018-dhcp.mia.fl.atlanticbb.net] has joined #ruby-lang
<huhu_>
What the hell is rbenv now?
<huhu_>
Can't we just use rvm?
<robgleeson>
what's wrong with choice?
<huhu_>
Or does rbenv play well with llvm?
<robgleeson>
hackeron: btw, when I want a new ruby: rbenv install whatever … no big deal
<robgleeson>
and before`rbenv install`, it was: `ruby-build 1.9.2-p0 ~/.rbenv/versions` - not a big deal for me personally
<slyphon>
there's nothing wrong with choice, it's just the rbenv guy was *such* a dick about the shit that he didn't like in rvm
<slyphon>
IT'S A SECURITY HOLE, OMFG!
<robgleeson>
why was he a dick?
<robgleeson>
he can have an opinion, right? :)
<slyphon>
he just stirred up such a shitstorm about 'cd'
<robgleeson>
wayne acted like a immature child over that whole thing
<robgleeson>
but that's just my opinion
jbsan [jbsan!~jbsan@host86-147-222-73.range86-147.btcentralplus.com] has joined #ruby-lang
<slyphon>
yes, and i'm saying it was a really dickish opinion
<slyphon>
DJB is also a huge penis
<robgleeson>
i guess so, he saw flaws, and he spoke vocally about them
<slyphon>
no
<slyphon>
he had opinions about *features*
<robgleeson>
if you can't talk about software without fear of upsetting somebody, you've attached your ego to your work
<robgleeson>
which is no good
<robgleeson>
i'd prefer to see a better solution, and take some criticism
ilyam [ilyam!~ilyam@eng.nat.mtv.ooyala.com] has joined #ruby-lang
<robgleeson>
because i care about building good software
<robgleeson>
that's the way i look at it
<hackeron>
slyphon: 60ms is a long time to cd, it really stopped wayne from being able to effectively develop :P
<slyphon>
i've never had that problem
<slyphon>
even in prod w/ NFS shared homedirs
<hackeron>
slyphon: that was sarcasm, heh - don't think a normal person can spot 60ms latency
<slyphon>
gah
<slyphon>
hackeron: sorry, friday, head-cold
wallerdev [wallerdev!~wallerdev@72.44.102.30] has joined #ruby-lang
<hackeron>
slyphon: we're talking 1/17th of a second here :P - I guess a person can see a difference between 17fps and 25fps, but meh, it's a cd command, not a movie
<slyphon>
:)
S2kx [S2kx!~S1kx@ip-95-223-80-198.unitymediagroup.de] has joined #ruby-lang
<slyphon>
my ping time to the ssh gw box at work i need to jump through to get to my servers is 64ms
<robgleeson>
'cd' was just an example but yeah ok
<robgleeson>
I've personally seen RVM be a huge source of confusion, and even segfaults
<hackeron>
robgleeson: segfaults?
<slyphon>
segfaults?
<robgleeson>
yup
<wallerdev>
segfaults?
<slyphon>
what?
<robgleeson>
yeah
<slyphon>
bullshit
<slyphon>
tits or GTFO
<robgleeson>
not bullshit, no
<robgleeson>
hang on
<robgleeson>
it is expect of how it sets $GEM_HOME, & $GEM_PATH for a different ruby
<wallerdev>
btw ruby is awesome
jmontross [jmontross!~Adium@rrcs-24-43-253-210.west.biz.rr.com] has joined #ruby-lang
<hackeron>
slyphon: nice, heh
<slyphon>
hah
<robgleeson>
so apps built against 1.8 may load 1.9 C extensions
<slyphon>
:)
<robgleeson>
then you'll see seg faults
<robgleeson>
s/expect/because/
<slyphon>
uh
<robgleeson>
rbenv doesn't have that problem
<slyphon>
i've never had that problem w/ rvm
<robgleeson>
it is just an example of how two tools solve the same problem, and the side effects the other tool has
<robgleeson>
of course, there is a solution to the RVM problem
<robgleeson>
write a shell function, which unsets the variables, before it launches the app
<slyphon>
what?
<robgleeson>
that is the solution proposed by wayne himself
spuk [spuk!~spuk@189.6.30.65] has joined #ruby-lang
<robgleeson>
so yes
<slyphon>
or you use rvm ruby-1.9.2 exec .....
<robgleeson>
no
<robgleeson>
you dont get it
<robgleeson>
hang on
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
<slyphon>
i mean, i've also had issues w/ bundler's GEM_BUNDLER env var
<robgleeson>
there is at least 3 other issues like that
<slyphon>
oh, dude
<robgleeson>
anyway, same point with the 'cd' command. the two tools solve the problem in different ways, and rbenv is less instrusive
<slyphon>
c'mon
<slyphon>
you're loading up an embedded ruby
<robgleeson>
vim is in that example, yes
<slyphon>
yeah
<cirwin>
robgleeson: I had that problem — I just recompiled vim with no ruby :)
<slyphon>
and the vim guys should clean their environment
<robgleeson>
clean their environment?
<robgleeson>
is that a joke? :D
<slyphon>
no, it's not, if you're gonna start up an embedded interpreter, you should make sure it's not gonna do wacky shit like that
<robgleeson>
the source of the whacky shit is RVM.
<slyphon>
no
<cirwin>
yes
<slyphon>
dude
<slyphon>
that's how rubygems works
<slyphon>
it's using a feature of rubygems
<cirwin>
which vim would break if it "cleaned" the environment
<robgleeson>
slyphon: ok, so, rbenv: solves the same problem, provides the same features
<hackeron>
robgleeson: how is that different from say vim being compiled against the system version of ruby and you running an rvm version of ruby? -- you'd need to recompile vim to use the same version of ruby as you use in your plugins, or am I missing something?
<robgleeson>
hackeron: yeah you dont get it
<slyphon>
hackeron: no, you don't see it robgleeson's way
<slyphon>
when i start a server process, or a build process, or anything, I launch it with a specific env
<hackeron>
robgleeson: well, I just don't understand how you would do it differently then
<slyphon>
if you launch vim telling it "Your gems are *over here*" then it's gonna do what you say
<robgleeson>
slyphon: okay, so you're asking vim to never respect GEM_HOME or GEM_PATH (even when it may be valid to do so) because RVM decides to solves its problems using those shell environment variables.
<robgleeson>
and its the fault of vim
<robgleeson>
got it
<slyphon>
why would vim respect it if it's clearly wrong?
<robgleeson>
oh
<hackeron>
slyphon: yeh, rvm changes the env paths to use the version of ruby you want -- but I'm guessing vim is compiled against a different version of ruby so when it looks for C extensions in the env, it segfaults - isn't that expected really?
<slyphon>
it shouldn't respect it if it's pointing to a ruby that it wasn't built againt
<slyphon>
that's just common sense
<robgleeson>
slyphon: how does Vim know if it is wrong
<cirwin>
slyphon: how can it possibly know?
<slyphon>
it was linked against it
<robgleeson>
eh
<robgleeson>
its loading files
<cirwin>
gem should maybe check that
<slyphon>
you know that at ./configure
<robgleeson>
plain ruby at times
<robgleeson>
no
<robgleeson>
you dont get it
<cirwin>
vim is just doing what rvm told it to
<robgleeson>
because you're not making any sense
<slyphon>
no i just disagree with you
<slyphon>
you're saying "RVM is at fault for breaking vim"
<robgleeson>
vim cannot know, so that's why it makes no sense
<robgleeson>
it can load pure ruby
<robgleeson>
forget C
<robgleeson>
so how it can it know from pure ruby
<robgleeson>
please do tell
<hackeron>
robgleeson: ok, lets say it's RVMs fault - how does rbenv work without changing any env paths? - how would your gem know where to look for stuff?
<robgleeson>
rbenv doesn't use GEM_HOME or GEM_PATH
<robgleeson>
it installs gems system wide
headius [headius!~headius@71-210-154-45.mpls.qwest.net] has joined #ruby-lang
<slyphon>
well, that sucks
<robgleeson>
which happens to be ~/.rbenv/versions/
<hackeron>
robgleeson: what if you have multiple versions?
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
<robgleeson>
why does it suck
<slyphon>
what about isolation?
<robgleeson>
"system wide" is your $HOME/.rbenv/versions
<robgleeson>
gems are already isolated
<robgleeson>
jesus
<robgleeson>
they're installed for ruby X
<slyphon>
what?
<slyphon>
you can get conflicts still
<robgleeson>
each ruby has its own gems
<hackeron>
robgleeson: huh? - how is that different from rvm?
<robgleeson>
they install separately
<robgleeson>
oh man
<slyphon>
whatever
<hackeron>
robgleeson: if gems go in ~/.rbenv/versions/1.9.2/gems/... -- how does gem know to look for them without setting GEM_HOME or GEM_PATH?
<robgleeson>
hackeron: because it does not set $GEM_HOME or $GEM_PATH, RVM does
<robgleeson>
hackeron: because that's the "system wide" install directory
<robgleeson>
that's how
<cirwin>
robgleeson: is the gem path is configured at compile time by rbenv per-ruby?
<hackeron>
robgleeson: what env variable is set for "system wide"?
<robgleeson>
hackeron: NONE
<robgleeson>
it doesnt need one
<hackeron>
robgleeson: so how does ruby/gem know where to look, I don't get it
<slyphon>
hackeron: it puts them in the "system wide" rubygems location
<slyphon>
hackeron: like if you were to go gem install 'blah'
<hackeron>
slyphon: where's that?
<slyphon>
you don't get to use gemsets then
<robgleeson>
cirwin: yeah, each ruby install has its own install of rubygems.
<cirwin>
neat :)
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
<hackeron>
hmm, and rvm can't be told to use "system wide" rubygems location?
<slyphon>
hackeron: on ubuntu, using the rubygems deb, it's /var/lib/gems/1.8
<robgleeson>
it could, but it is not designed that way
<robgleeson>
that's my point
<robgleeson>
when you switch a ruby in RVM, it adjusts $GEM_HOME, $GEM_PATH
<robgleeson>
that's how it works
<robgleeson>
they're designed differently, and that's the whole point
<hackeron>
robgleeson: hang on, where is GEM_HOME and GEM_PATH set? -- I'm doing env | grep -i gem -- only thing that is coming up is: PATH=/usr/local/rvm/gems/ruby-1.9.3-p0/bin:/usr/local/rvm/gems/ruby-1.9.3-p0@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p0/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
<robgleeson>
hackeron: that's a system install
<robgleeson>
hackeron: RVM for a per-user sets GEM_HOME, GEM_PATH
<hackeron>
robgleeson: oh, who cares about that - it's all about system installs :)
<slyphon>
ha
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
<hackeron>
robgleeson: so assuming I'm doing a system install, that's a non issue?
<robgleeson>
looks like it
<robgleeson>
bbl
<hackeron>
robgleeson: install rvm, it's just better ;)
<slyphon>
robgleeson: RbConfig is how it'd know
<MistyM>
Hmmmm. What is making this C library segfault... :(
<hackeron>
MistyM: robgleeson would say rvm
<slyphon>
:)
<MistyM>
;o
<robgleeson>
MistyM: nevermind him, troll
<hackeron>
MistyM: maybe give us some more details?
jkprg [jkprg!~jarda@ip-62-245-93-150.net.upcbroadband.cz] has joined #ruby-lang
<MistyM>
Kinda talking out loud. Basically I've got this C library which plays chiptunes. I'm reimplementing my old proof-of-concept player for the new plugin-based music player backend I'm working on. Unfortunately, it's segfaulting the second time the 'mdx_open' function (which opens a song) is called.
<MistyM>
Trying to track down what I did different between this and my old player, which can do multiple songs without segfaults.
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
<MistyM>
...and apparently my old player is now reliably segfaulting in the same way. What the hell. I am quite sure it didn't do that before.
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
<slyphon>
MistyM: so it's not rvm is what you're saying
<slyphon>
robgleeson: sorry! sorry! it was too good to resist
Indian_ [Indian_!~Indian@unaffiliated/londonmet050] has joined #ruby-lang
<MistyM>
I blame Wayne for slipping bugs in my code.
<robgleeson>
slyphon: it's alright, you can make yourself look like an idiot all you want
<slyphon>
jeez, dude, take a joke
<Banistergalaxy>
robgleeson: yo yo yo
<robgleeson>
yo
<MistyM>
ANYway.
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
<MistyM>
So this throws a wrench into things. I don't get why it's not working now, when the same library was working another time... at least I verified it's not breaking with the other C library I'm using right now.
Mon_Ouie [Mon_Ouie!~Mon_Ouie@subtle/user/MonOuie] has joined #ruby-lang
<MistyM>
Argh. Silent API change. So the problem was (sort of) on my end all along.
Mon_Ouie [Mon_Ouie!~Mon_Ouie@subtle/user/MonOuie] has joined #ruby-lang
livinded [livinded!~lolwut@pool-108-23-242-132.lsanca.fios.verizon.net] has joined #ruby-lang
imperator [imperator!~djberg96@184-96-109-96.hlrn.qwest.net] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
<huhu_>
Is there a way to pass around pointers to variables, as per boxes in Scheme?
<imperator>
variables are already references in ruby
<MistyM>
And more than one variable can point to the same object. Try str1 = 'foo'; str2 = str1; str2 << 'bar'; puts str1
<huhu_>
Interesting.
Sailias [Sailias!~jonathan@CPE0018f85e576d-CM001bd7aaaf96.cpe.net.cable.rogers.com] has joined #ruby-lang
darkf [darkf!~darkf_dix@unaffiliated/darkf] has joined #ruby-lang
<MistyM>
Would anyone be willing to give opinions/critique on a bit of code?
<huhu_>
I don't know Ruby, so I can't give an opinion.
<MistyM>
Fair enough.
<huhu_>
What's the preferred primer book?
<MistyM>
Depends on who you ask. I liked Pickaxe (Programming Ruby); saw other people in here recommending The Ruby Programming Language instead.
savage- [savage-!~savage-@c-67-180-11-89.hsd1.ca.comcast.net] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
<Sailias>
MistyM, did you still want criticism on your code?
<MistyM>
Sailias: Yeah, please!
<Sailias>
gist
<MistyM>
Gisting.
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
headius [headius!~headius@71-210-154-45.mpls.qwest.net] has joined #ruby-lang
<MistyM>
Short summary: this is a gem which interfaces with various C libraries for playing chiptunes and abstracts the individual interfaces.
ryanf [ryanf!~rfitz@adsl-71-141-90-67.dsl.snfc21.sbcglobal.net] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
<huhu_>
newbold: What book did you read?
<Sailias>
MistyM, doesn't look like you're having any problems with it
<newbold>
huhu_: haven't read a book yet
<Sailias>
MistyM, if you wanted to show it off, i agree with newbold, it does look awesome
<huhu_>
That looks like semi-readable perl.
<MistyM>
Thanks! :D
<newbold>
huhu_: I've been fooling around in PHP for the last few years :P
<huhu_>
Always wondered how the mind of one that writes php works.
<huhu_>
Never got into webdev.
<huhu_>
MistyM: You're a new rubyist?
<MistyM>
Sailias: I'm still relatively new to programming, so I wanted to be sure I wasn't implementing things in a wrong/inefficient way and wasn't seeing it.
headius [headius!~headius@71-210-154-45.mpls.qwest.net] has joined #ruby-lang
<MistyM>
New programmer. I started learning... ~6 or 8 months ago, I guess.
slaytanic [slaytanic!~slaytanic@host226.190-31-167.telecom.net.ar] has joined #ruby-lang
wmoxam [wmoxam!~wmoxam@pdpc/supporter/active/wmoxam] has joined #ruby-lang
<newbold>
it's obviously not a very good wiki but it was handy for learning some basic stuff
<huhu_>
I got rvm, so I'm going to play around with irb and this book (pickaxe)
<MistyM>
Starting with a wiki's a good idea.
<Sailias>
MistyM, when you load a song file, some will get buffered right? if you kill the program does it stop playing right away or will it hang around in the buffer before GC finds it?
<Sailias>
MistyM, as it's playing i mean
<newbold>
MistyM: I thought so too... learned how to work with form data, strings, arrays, conditionals, files... :)
<MistyM>
Sailias: By "stop playing", do you mean the actual audio output? Or stopping the playback loop?
<Sailias>
well you have a def stop; would a finalizer that does the same thing help at all with GC?
<MistyM>
`def stop` is intended as a wrapper around the C API's `stop` function, if it has one. It's a no-op otherwise. It's used to free any C pointers that live outside the Ruby code. Audio buffers in the Ruby are FFI::MemoryPointers, which are subject to GC.
<Sailias>
MistyM, ok cool, was just wondering how you were accounting for that
<Sailias>
MistyM, good stuff :)
<MistyM>
I ignored freeing C stuff for awhile and then realized it was a terrible idea. ;)
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
jkprg [jkprg!~jarda@ip-62-245-93-150.net.upcbroadband.cz] has joined #ruby-lang
bludimnd [bludimnd!~amichai@178-83-34-252.dynamic.hispeed.ch] has joined #ruby-lang
jalljo [jalljo!jalljo@im.a.noo-b.com] has joined #ruby-lang
indeterminate [indeterminate!sei@user-3c2h3m6.cable.mindspring.com] has joined #ruby-lang
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
foca [foca!~foca@li25-211.members.linode.com] has joined #ruby-lang
twittard [twittard!~twittard@cpe-76-169-74-39.socal.res.rr.com] has joined #ruby-lang
prsimp [prsimp!~prs@manifestland.com] has joined #ruby-lang
stderr- [stderr-!~stderr@truedat.org] has joined #ruby-lang
Weems [Weems!~the@nat.resnet.mc.edu] has joined #ruby-lang
Weems [Weems!~the@unaffiliated/weems] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
dnjaramba [dnjaramba!~dnjaramba@41.72.193.86] has joined #ruby-lang
huhu_ [huhu_!~huhu@94.79.112.41] has joined #ruby-lang
Guest44828 [Guest44828!~huhu@unaffiliated/huhu-/x-6122598] has joined #ruby-lang
bludimnd [bludimnd!~amichai@178-83-34-252.dynamic.hispeed.ch] has joined #ruby-lang
bludimnd [bludimnd!~amichai@178-83-34-252.dynamic.hispeed.ch] has quit [#ruby-lang]
bludimnd [bludimnd!~amichai@178-83-34-252.dynamic.hispeed.ch] has joined #ruby-lang
fullsailor [fullsailor!~fullsailo@97.102.236.118] has joined #ruby-lang
brianpWins [brianpWins!~brianpWin@S01060014bf8930ea.vc.shawcable.net] has joined #ruby-lang
dnjaramba [dnjaramba!~dnjaramba@41.72.193.86] has joined #ruby-lang
queequeg1 [queequeg1!~chatzilla@c-71-202-152-67.hsd1.ca.comcast.net] has joined #ruby-lang
ryanf [ryanf!~rfitz@adsl-69-111-192-194.dsl.snfc21.sbcglobal.net] has joined #ruby-lang
mfournier [mfournier!~marc@2001:4b98:dc0:51:216:3eff:feac:7652] has quit ["WeeChat 0.3.6"]
lsegal [lsegal!jinx@modemcable249.109-177-173.mc.videotron.ca] has joined #ruby-lang
<shevy>
hmm when I want to include a module into a class, at runtime... I can use a method like def foo; extend Bla ?
<robgleeson>
shevy: yup
<shevy>
cool
<robgleeson>
shevy: if you mean, def foo; extend Bar; end; foo -
amerine [amerine!~mturner@bc171197.bendcable.com] has joined #ruby-lang
jkprg [jkprg!~jarda@ip-62-245-93-150.net.upcbroadband.cz] has joined #ruby-lang
<context>
or you can Model.send(:extend, ModuleName) i am pretty sure
<TTilus>
context: that would actually be Model.send(:include ... ) or model_instance.send(:extend ... )
<context>
ttilus: ahh yeah. i misread what he said a little :x
<shevy>
yeah, this I needed for a method "enable_colours" in my class, and determine whether I will just use puts, to output text, or also use a version with ansii colour codes
<shevy>
so now the class can do both
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
thone_ [thone_!~thone@g226049084.adsl.alicedsl.de] has joined #ruby-lang
toretore [toretore!~toretore@crr06-3-82-231-12-81.fbx.proxad.net] has joined #ruby-lang
brmouzone [brmouzone!~brmouzone@108-90-18-133.lightspeed.cicril.sbcglobal.net] has joined #ruby-lang
TvL2386 [TvL2386!~tom@ip5452a95e.adsl-surfen.hetnet.nl] has joined #ruby-lang
<erikh>
programming makes me type
dfr|mac [dfr|mac!~dfr|work@ool-18baf7e7.dyn.optonline.net] has joined #ruby-lang
tjgillies [tjgillies!~tyler@204-232-205-180.static.cloud-ips.com] has joined #ruby-lang
tla [tla!~tla@toelboell-lund.dk] has joined #ruby-lang
tbuehlmann [tbuehlmann!~Tobias@unaffiliated/tovias] has joined #ruby-lang
solars [solars!~solars@194.208.132.118] has joined #ruby-lang
rippa [rippa!~rippa@109-161-78-165.pppoe.yaroslavl.ru] has joined #ruby-lang
<Asher>
i program without typing
<Asher>
i just stare until the code shows up
ThatDudeGuy_ [ThatDudeGuy_!~ThatDudeG@99-66-8-185.lightspeed.mssnks.sbcglobal.net] has joined #ruby-lang
dnjaramba_ [dnjaramba_!~dnjaramba@41.72.193.86] has joined #ruby-lang
<erikh>
works for me
<erikh>
how do I get started?
<erikh>
also 0mq is amazing.
<erikh>
even dumb programmers like me can use it
<erikh>
this. is. so. awesome.
<shevy>
that would be cool... to program just by thinking alone
queequeg1_ [queequeg1_!~chatzilla@c-71-202-152-67.hsd1.ca.comcast.net] has joined #ruby-lang
<erikh>
1001001
<erikh>
SOS
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
<erikh>
IPC where the server hasn't even started yet
<erikh>
this is so fucking amazing
<robgleeson>
IPC is just awesome :D
yxhuvud [yxhuvud!mongo@h-49-31.a212.priv.bahnhof.se] has joined #ruby-lang
<erikh>
no, it is most certainly not
<erikh>
but this is awesome
<erikh>
IPC is a horrible pain in the ass to get right, and this makes it trivial
<erikh>
this is for a larger project so forgive the verbosity
lele [lele!~lele@fangorn.windmill.it] has joined #ruby-lang
<erikh>
the selects wouldn't be necessary if I didn't want a message everytime
<Asher>
cool
yfeldblum [yfeldblum!~Jay@c-98-218-48-253.hsd1.md.comcast.net] has joined #ruby-lang
<erikh>
but that's a fully functioning queueing server
<erikh>
pretty awesome how simple it is
<Asher>
what is ZMQ.select?
<shevy>
hmm
<erikh>
it's like IO.select, but for zmq sockets.
<erikh>
select(2)
<erikh>
basically, it watches sockets for awaiting activity
<erikh>
ZMQ.select(read, write, error, timeout) - returns an array of arrays on finding activity
<erikh>
nil otherwise.
<Asher>
cool
<erikh>
err, activity is the wrong word -- "ready state" is more accurate
<erikh>
basically if any of the sockets you provide fulfill that in the states you provided it to, it returns them in the a of a
<erikh>
for more complicated servers you'd have hundreds of them, and it would return just the ones you need to worry about at any given moment
<erikh>
zmq ::REP and ::REQ sockets though just route to the last peer, so this server works because you're always sending a pair at a time
<erikh>
err, always communicating in pairs.
<erikh>
so as it's dumping the queue it's also tracking what socket sent the queue item that is being received, so future send calls route back to it
<Asher>
neat
<erikh>
yeah. :)
<erikh>
sorry to talk endlessly about this, it's just a really nice system
<Asher>
no i appreciate the details
<Asher>
i've been thinking about embedded interfaces to the web/data backend i've been working on
<erikh>
lua
<Asher>
where any language/framework can access a ruby-managed back-end on my server
<Asher>
and request data elements or html output
<Asher>
as well as querying available interfaces
<erikh>
embedded in what sense?
<Asher>
in another program
<erikh>
so IPC
<Asher>
sure
benanne [benanne!~rijdier@137.7-241-81.adsl-dyn.isp.belgacom.be] has joined #ruby-lang
niklasb [niklasb!~codeslay0@p5B3115F4.dip0.t-ipconnect.de] has joined #ruby-lang
workmad3 [workmad3!~workmad3@cpc1-bagu10-2-0-cust81.1-3.cable.virginmedia.com] has joined #ruby-lang
Defusal [Defusal!DeFi@196-209-19-33.dynamic.isadsl.co.za] has joined #ruby-lang
Defusal [Defusal!DeFi@unaffiliated/ecnerifed] has joined #ruby-lang
oddmunds [oddmunds!~oddmunds@s21-04214.dsl.no.powertech.net] has joined #ruby-lang
flowerpot [flowerpot!~flower@ec2-50-112-22-115.us-west-2.compute.amazonaws.com] has joined #ruby-lang
S1kx [S1kx!~S1kx@pdpc/supporter/monthlybyte/s1kx] has joined #ruby-lang
denysonique_ [denysonique_!u484@gateway/web/irccloud.com/x-qubwqlvwpldcxkwa] has joined #ruby-lang
Carnage\ [Carnage\!~carnage@84-75-163-211.dclient.hispeed.ch] has joined #ruby-lang
savage-_ [savage-_!~savage-@c-67-180-11-89.hsd1.ca.comcast.net] has joined #ruby-lang
beiter [beiter!~beit@mnhm-590c35a2.pool.mediaWays.net] has joined #ruby-lang
gix [gix!~gix@e180033235.adsl.alicedsl.de] has joined #ruby-lang
<rue>
erikh: I've been thinking about a rack-zmq thing as a learning exercise
robotmay [robotmay!~robotmay@5ad8f1da.bb.sky.com] has joined #ruby-lang
<rue>
Wonder if pub/sub would be better in your case, too
<erikh>
well for this case the client needs to just get a message and GTFO
<erikh>
but I'm actually going to make the core react over control messages
<erikh>
so that's going to be what zmq calls pipeline
<erikh>
moving over to lourens' lib -- the zmq gem has some serious corruption issues
<erikh>
(crashy mc crashalot)
<erikh>
sending a shitton of messages really exposes it
<erikh>
the server crashes, the clients crash, it's not any specific code yielding it
<rue>
Which lib?
<erikh>
gem install zmq
nofxx [nofxx!~nofxx@187.23.26.139] has joined #ruby-lang
<erikh>
lourens's lib is in the github link above -- not published yet
<erikh>
you'll need to use bundler or do it live
<rue>
Ah, rbczmq
<rue>
Any idea about the FFI one?
<erikh>
yeah, lourens is pretty much a badass (I work with him) so I have a lot of confidence in that lib
<erikh>
no, no idea.
<erikh>
FFI just ... well I don't have any professional opinion but the idea just seems very foreign (heh) to me.
<erikh>
so I tend to avoid those libs.
<apeiros_>
funny, I very much like the idea of ffi
spinagon [spinagon!~rippa@87-253-25-66.pppoe.yaroslavl.ru] has joined #ruby-lang
<erikh>
I don't mind foreign function interfaces
<apeiros_>
but then again, I love the *idea* of ffi. I don't have any real experience with ffi.
<erikh>
I've just been burned by swig
<rue>
It does have the advantage of not introducing extra extension logic
<rue>
Swig's sorta the opposite of FFI, unless I am missing some use case :)
<apeiros_>
reminds me that I want to check again whether fuse + ruby finally work usably on OSX…
<erikh>
they both solve the same problem in a different way
<rue>
Of course successful usage of FFI means that the FFI layer itself must be solid.
<erikh>
generic abstraction to foreign function interfaces
<erikh>
swig generates, FFI presents a call interface
jbsan [jbsan!~jbsan@host86-147-222-73.range86-147.btcentralplus.com] has joined #ruby-lang
<erikh>
at least in the swig case, the native FFI tends to yield something much closer to the metal and quite a bit easier to debug
<erikh>
but I'll leave it there, I didn't mean to start another FFI argument.
bglusman [bglusman!~bglusman@c-71-224-192-35.hsd1.pa.comcast.net] has joined #ruby-lang
<Asher>
i just don't get why FFI is worth a 20% performance hit
<lianj>
no compilation?
<manveru>
well, you have to compile FFI once
<Asher>
and you have to hook into a compiled lib
<manveru>
but it ships with rbx and jruby... so not there
<manveru>
but you don't have to recompile your binding just because the lib changed
<manveru>
also... how else do you get easy segfaults in ruby?
<erikh>
I think it ships with 1.9.3 as well
<manveru>
yeah
<manveru>
well, in disguise
<manveru>
DL now uses libffi i htink
<erikh>
ah, neat.
<erikh>
DL is pretty brilliant, really
<manveru>
there's also fiddle
<manveru>
that wraps DL to make it more FFI alike
<manveru>
speaking of which
dRbiG [dRbiG!drbig@unhallowed.pl] has joined #ruby-lang
<erikh>
wow it's 4am
<manveru>
1pm here :)
<manveru>
6am on the server i'm on
<erikh>
yeah I just got hacking and lost track of time I guess
<manveru>
sleep well
<manveru>
i gotta get started
<erikh>
ah, I'm not tired, I have a lot of code left in these fingers
<erikh>
enjoy
<manveru>
:)
<manveru>
bbl
rushed [rushed!~rushed@cpe-70-116-11-35.austin.res.rr.com] has joined #ruby-lang
tychobrailleur [tychobrailleur!~sebastien@176.61.72.130] has joined #ruby-lang
<rue>
Youuu aaaree tiiiiireeeeed
<erikh>
yeah, so a quick port to rbczmq
<rue>
Feeeliiing sleeeeeepyyy
<erikh>
this is a *lot* faster
<erikh>
and a lot more stable
<rue>
Cool
<rue>
What kinda numbers are you running /s ?
<erikh>
3 clients pushing screenfulls of messages faster than I can see them scroll by? :)
<erikh>
let me see if I can add a small timer
<rue>
Ah, you're using the SI unit of “faster than I can read” or F?
reasonedink [reasonedink!~donnie@adsl-067-034-186-046.sip.mco.bellsouth.net] has joined #ruby-lang
<reasonedink>
Is it better to have a single table containing roughly 700k records, or is splitting them into ~30k separate tables and then doing some relationship magic more efficient?
<rue>
Table as in a database?
<reasonedink>
Mm-hmm.
<erikh>
with 3 clients around 11k/s
<erikh>
let me see how far I can push this with 8 cores
<rue>
reasonedink: Use the correct schema and let the DB worry about efficiency
<reasonedink>
"Correct schema" strikes me as a relative term.
<rue>
If you have, say, Texts, they should all be in the same table.
<rue>
Not split up into identical separate tables
<reasonedink>
NBA box scores.
<reasonedink>
At present, I'm stuffing them all into a box_scores table and then giving them a game_id.
<reasonedink>
But I considered that perhaps having a separate table for each game that contains only that game's box scores might somehow be a more effective approach.
<erikh>
26k with 5 clients
<rue>
It's possible, though then we're in normalization territory rather than just splitting which I uncharitably assumed you were talking about
<erikh>
yeah, found one failed assertion but it's definitely rare
lele [lele!~lele@fangorn.windmill.it] has joined #ruby-lang
workmad3 [workmad3!~workmad3@cpc1-bagu10-2-0-cust81.1-3.cable.virginmedia.com] has joined #ruby-lang
<reasonedink>
How do you mean?
<rue>
reasonedink: Normally (he he), you'd split the entity of box scores into its own table, as you have done
<reasonedink>
I mean, it's certainly "efficient enough".
<rue>
Good
<reasonedink>
Getting specific records takes no time at all.
<reasonedink>
But a 700k-record table just /feels/ unwieldy.
<rue>
If you did have performance issues, you could consider denormalizing them into the game tables. Only if the box scores have no meaning on their own, though
<reasonedink>
Naturally, they do.
<reasonedink>
And after voicing the approach, I am realizing it's a terrible idea.
<rue>
I dunno what a box score is so I can't help there :)
<rue>
700 k is nothing, though
<erikh>
700k records ... yeah
<erikh>
what he said
<reasonedink>
Excellent news.
<rue>
Perhaps another denormalization mechanism could be archiving old results
<reasonedink>
So, do you suppose Facebook stores every single user in a single table?
<rue>
(But, again, since you're not having problems, no need to change shit)
<reasonedink>
I don't really subscribe to "if it ain't broke, don't fix it", though.
<reasonedink>
I always try to find the most effective approach to a problem.
<rue>
YAGNI
<erikh>
so you subscribe to "if isn't broken, fix it anyway"
<erikh>
be careful what you wish for :)
<rue>
Try subscribing to ‘you're several orders of magnitude away from real problems still’
<reasonedink>
But yeah, splitting every game into its own table would be a nightmare for retrieving the scores of a single player, so I'll be sticking with the current approach.
<erikh>
there are pretty solid database design patterns for something so simple
<reasonedink>
I have the relationships down just fine.
<reasonedink>
I mean, I imagine I'm doing it the "correct" way, just figured I'd get a few second opinions.
<rue>
What I meant by archiving is e.g. splitting the data by season
<erikh>
actually in database systems, doing it the "correct" way usually makes it slower
<reasonedink>
Season has n games, Game has n box_scores, Player has n box_scores through player_id.
<erikh>
if you want the correct way, you write through sql functions and procedures, and use triggers and foreign keys to maintain relationships
<reasonedink>
Precisely what I'm doing.
takaokouji [takaokouji!~takaokouj@nat35.mable.ne.jp] has joined #ruby-lang
<reasonedink>
Though only in a very basic way.
<erikh>
enjoy your performance draught
<rue>
Hmmmmm, I'm not sure about stored procedures
<reasonedink>
It's... possible to relate tables without foreign keys?
<erikh>
in code you can
<erikh>
and relationship is a fairly relative term
michael_mbp [michael_mbp!~Marin@149.147.167.108] has joined #ruby-lang
<reasonedink>
One table accessing the data of another?
<erikh>
you're not talking about proper foreign keys.
<erikh>
you're talking about keys.
<erikh>
foreign key constraints can really slow a database down
gregmoreno [gregmoreno!~gregmoren@S01067444012f4469.vc.shawcable.net] has joined #ruby-lang
antinitro_ [antinitro_!~adam@cpc1-stap4-0-0-cust418.12-2.cable.virginmedia.com] has joined #ruby-lang
fserb [fserb!~fserb@178-83-225-18.dynamic.hispeed.ch] has joined #ruby-lang
hzlocky [hzlocky!~me@dynamic-vpdn-46-53-165-24.telecom.by] has joined #ruby-lang
dreinull [dreinull!~dreieins@217.18.70.225] has joined #ruby-lang
publicvoid__ [publicvoid__!~publicvoi@p5DC15B5B.dip.t-dialin.net] has joined #ruby-lang
banistergalaxy [banistergalaxy!~baniseter@115.189.60.152] has joined #ruby-lang
<banistergalaxy>
injekt: can i ask u a quick q about slop?
<banistergalaxy>
or anyone else here familiar with slop?
reasonedink [reasonedink!~donnie@adsl-067-034-186-046.sip.mco.bellsouth.net] has quit [#ruby-lang]
spinagon [spinagon!~rippa@93-181-237-218.adsl.yaroslavl.ru] has joined #ruby-lang
rippa [rippa!~rippa@93-181-237-218.adsl.yaroslavl.ru] has joined #ruby-lang
futurechimp [futurechimp!~futurechi@87-194-37-29.bethere.co.uk] has joined #ruby-lang
gianlucadv [gianlucadv!~user@host78-84-dynamic.44-79-r.retail.telecomitalia.it] has joined #ruby-lang
<banistergalaxy>
rue: help me
Spooner [Spooner!~Miranda@host-78-144-139-130.as13285.net] has joined #ruby-lang
<erikh>
%w[-m hello] maybe?
<erikh>
ARGV would present that as two args, at least.
<andrewvos>
Sounds about right
<banistergalaxy>
erikh: still no output
<erikh>
phooey
<erikh>
no idea then
spinagon [spinagon!~rippa@93.181.237.218] has joined #ruby-lang
spleeze [spleeze!~Spleeze@173-15-131-114-BusName-Philadelphia.hfc.comcastbusiness.net] has joined #ruby-lang
fayimora [fayimora!~fayimora@95.175.159.58] has joined #ruby-lang
Weems [Weems!~the@nat.resnet.mc.edu] has joined #ruby-lang
Weems [Weems!~the@unaffiliated/weems] has joined #ruby-lang
<rue>
It's :argument => true
spinagon [spinagon!~rippa@95-86-249-112.pppoe.yaroslavl.ru] has joined #ruby-lang
cyri_ [cyri_!~cyri_@jem75-1-87-88-118-80.dsl.sta.abo.bbox.fr] has joined #ruby-lang
burgestrand [burgestrand!~burgestra@h-45-63.a155.priv.bahnhof.se] has joined #ruby-lang
neuro_damage [neuro_damage!~neuro@c-98-234-184-142.hsd1.ca.comcast.net] has joined #ruby-lang
Indian [Indian!~Indian@unaffiliated/londonmet050] has joined #ruby-lang
workmad3 [workmad3!~workmad3@cpc1-bagu10-2-0-cust81.1-3.cable.virginmedia.com] has joined #ruby-lang
fayimora [fayimora!~fayimora@95.175.159.58] has joined #ruby-lang
niklasb_ [niklasb_!~codeslay0@p5B3115F4.dip0.t-ipconnect.de] has joined #ruby-lang
retro|cz [retro|cz!~retro@106.142.broadband6.iol.cz] has joined #ruby-lang
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
dv310p3r [dv310p3r!~dv310p3r@c-98-203-41-91.hsd1.fl.comcast.net] has joined #ruby-lang
toretore [toretore!~toretore@crr06-3-82-231-12-81.fbx.proxad.net] has joined #ruby-lang
piglop [piglop!~piglop@del63-1-82-243-95-115.fbx.proxad.net] has joined #ruby-lang
pilf [pilf!~pilf@client-86-25-199-193.cht-bng-011.adsl.virginmedia.net] has joined #ruby-lang
Sailias [Sailias!~jonathan@CPE0018f85e576d-CM001bd7aaaf96.cpe.net.cable.rogers.com] has joined #ruby-lang
frangiz [frangiz!~frangiz@user26.77-105-206.netatonce.net] has joined #ruby-lang
vladalive [vladalive!~vladalive@176.52.57.216] has joined #ruby-lang
dejongge [dejongge!~jonke@pD9E0C112.dip0.t-ipconnect.de] has joined #ruby-lang
jensn [jensn!~Jens@ip231-178.wireless.lu.se] has joined #ruby-lang
codewrangler [codewrangler!~codewrang@pool-72-66-12-100.washdc.fios.verizon.net] has joined #ruby-lang
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
cruyps [cruyps!~cruyps@83.101.41.197] has joined #ruby-lang
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
wmoxam [wmoxam!~wmoxam@pdpc/supporter/active/wmoxam] has joined #ruby-lang
Jake232 [Jake232!~textual@5e021a35.bb.sky.com] has joined #ruby-lang
mkscrg [mkscrg!~mkscrg@ool-18e4f9d6.dyn.optonline.net] has joined #ruby-lang
huhu_ [huhu_!~huhu@unaffiliated/huhu-/x-6122598] has joined #ruby-lang
<newbold>
heya huhu_
<huhu_>
newbold: Hello.
<newbold>
huhu_: so are you fairly early on in learning Ruby too?
<huhu_>
newbold: Hatched last night.
<newbold>
pretty much the same here, heh :)
<huhu_>
Great.
<newbold>
I did think a lot about your commentary on webdev
<newbold>
I realized that just about every 'programming' thing I've done in the last 15 years has been for the web, and that seems kind of wrong
<newbold>
It'd be like buying a hammer and never using it to drive nails, ever, but instead to use it to open jars or something
<newbold>
It works, but it's not quite right
<newbold>
So I'm trying to openmy mind a little more to doing non-web stuff too. :)
<rippa>
I never used scalpel to cut humans
<rippa>
but i drived nails with it
<huhu_>
newbold: Cool.
<newbold>
rippa: Sure, that's... kind of what I'm getting at.
vladalive [vladalive!~vladalive@176.52.57.216] has joined #ruby-lang
jaisoares [jaisoares!~jsoares@109.48.57.8] has joined #ruby-lang
ricardovaleriano [ricardovaleriano!~ricardova@186.220.217.229] has joined #ruby-lang
<vereteran>
i'm doing that: module MyModule; ... end; module Enumerable; include MyModule;end but none of the objects including Enumerable get my methods. why so?
darkf [darkf!~darkf_dix@unaffiliated/darkf] has joined #ruby-lang
<manveru>
vereteran: because they included enumerable before that
<vereteran>
manveru, so change in Enumerable won't propagate to classes that included it? that sux :(
adambeynon [adambeynon!~adambeyno@82-69-1-211.dsl.in-addr.zen.co.uk] has joined #ruby-lang
<manveru>
why do you need that?
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
<vereteran>
manveru, watching ruby midwest conference and Ola Bini (guy talks about interesting ruby tricks) told that it doesn't work. according to what i've read in Metaprogramming Ruby (at least as i've understood it) it should work. so i'm tried to find out why so
<manveru>
you might wanna ask in #rubinius then
<manveru>
they crawl in all the dark and dusty corners of ruby :)
<manveru>
probably even have a spec for that
<vereteran>
manveru, i've just did couple of test cases and found out what's going on
<shevy>
hmm
<shevy>
if I append vereteran to manveru I would have ... a manveruvereteran !!!
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
<vereteran>
shevy, wtf? 0o
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has quit [#ruby-lang]
[zaf]-Coral [[zaf]-Coral!~quassel@41-133-238-54.dsl.mweb.co.za] has joined #ruby-lang
jaimef [jaimef!jaimef@dns.mauthesis.com] has joined #ruby-lang
wmoxam [wmoxam!~wmoxam@pdpc/supporter/active/wmoxam] has joined #ruby-lang
vladalive [vladalive!~vladalive@176.52.57.216] has joined #ruby-lang
SkramX [SkramX!~SkramX@pool-173-73-134-143.washdc.east.verizon.net] has joined #ruby-lang
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
ejwilliams [ejwilliams!~ejwilliam@bzq-82-81-6-188.red.bezeqint.net] has joined #ruby-lang
<ejwilliams>
hey guys, wondering if anyone can share some deduping techniques, given html articles / rss feeds ?
spleeze [spleeze!~Spleeze@173-15-131-114-BusName-Philadelphia.hfc.comcastbusiness.net] has joined #ruby-lang
enikar [enikar!~gil@cl-140.mrs-01.fr.sixxs.net] has joined #ruby-lang
_dustin [_dustin!~anonymous@99-7-24-156.lightspeed.iplsin.sbcglobal.net] has joined #ruby-lang
<andrewvos>
ejwilliams: What?
RegEchse [RegEchse!~regechse@h1985974.stratoserver.net] has joined #ruby-lang
<whitequark>
ejwilliams: why do you need that, in first place?
RomyRomy [RomyRomy!~stickycak@cpe-74-66-9-106.nyc.res.rr.com] has joined #ruby-lang
<ejwilliams>
initially for streaming content
<ejwilliams>
such as tweets, and RSS entries
<ejwilliams>
for example, if i'm looking at 3 different RSS feeds related to ruby, and more than one of them report a topic, i would like to remove the duplication.
<ejwilliams>
i've come up with several methods to do that, some textbook deduplication and some more creative. i wonder, if anyone do deduplication in production, how its done. (since this is just a hobby side project)
<andrewvos>
ejwilliams: Well, you could just check if the title is the same
<ejwilliams>
andrewvos, yes, i can check title, link, and id. these however are too weak for me.
<andrewvos>
ejwilliams: Well in RSS feeds there is no better
<andrewvos>
ejwilliams: I mean, in RSS feeds from different sources, there is nothing better.
<ejwilliams>
my current (most creative) solution, is to run a this workflow: boilerplate extraction -> text summization algorithm -> extract a feature (TFIDF). then i can examine by comparing the incoming article's feature vector.
<ejwilliams>
andrewvos, i'm not ruling out fetching the original RSS article's text
<andrewvos>
ejwilliams: Ok well use some sort of algorithm. Something like Levenshtein distance perhaps.
<andrewvos>
ejwilliams: Doesn't sound too important though. Unless it's a big feature of your product.
<ejwilliams>
well, a duplicate entry would ruin the idea.
<andrewvos>
ejwilliams: Ok well use some sort of strategy(?) pattern to check link/title/body are close enough matches. If they are, remove one.
<andrewvos>
In that order
<andrewvos>
Perhaps "link | title && body"
<ejwilliams>
sure, thats easy
<andrewvos>
ejwilliams: What's the probelm then?
<ejwilliams>
i kinda am referring to the hard part. here is an example. take an RSS from CNN world news, and BBC world news.
<andrewvos>
Chances are, if an article is 99% the same as another article body and they have different urls, then your source is shit.
<ejwilliams>
the titles will not be the same.
<andrewvos>
Yeah the BBC on will be better :)
<andrewvos>
s/on/one
<ejwilliams>
thats a matter of taste (of which i agree)
<ejwilliams>
but yet, the news are the same.
<andrewvos>
I may be biased :)
<andrewvos>
But fair enough
<ejwilliams>
what will be the same is the most important words in the article.
<andrewvos>
So any sort of measurement between the two articles would be very hard.
enikar [enikar!~gil@cl-140.mrs-01.fr.sixxs.net] has quit ["WeeChat 0.3.6"]
<ejwilliams>
in any case, there is plenty more meat and theory here. just wanted to see if i can grab someone who already use such a thing in production
<andrewvos>
There is a gem that uses a c library to do summaries
<ejwilliams>
yep, based on the open summary lib
<ejwilliams>
ots IIRC
<andrewvos>
summarizer
workmad3 [workmad3!~workmad3@cpc1-bagu10-2-0-cust81.1-3.cable.virginmedia.com] has joined #ruby-lang
<andrewvos>
No not that
<andrewvos>
Can't remember
<ejwilliams>
its ok, i've used what you're reffering to in one of my experiments
<andrewvos>
So what are you doing with this data and is it only for news companies?
<ejwilliams>
well ideally i'm trying to build an automatic aggregator
<ejwilliams>
hopefully, it can easily feed on multiple ruby blog sources and generate news on itself.
<andrewvos>
ejwilliams: So how do you choose newscompany1 > newscompany2?
pxjorge [pxjorge!~pxjorge@a79-169-113-23.cpe.netcabo.pt] has joined #ruby-lang
<ejwilliams>
andrewvos, thats a different problem / question. if you want a quick answer - i'd say get a rank from users. then feed back the rank on the chosen item, directly as the rank of the source.
<andrewvos>
ejwilliams: So this is for ruby blogs?
<ejwilliams>
initially yes. i did say its a hobby project :)
burgestrand [burgestrand!~burgestra@h-45-63.a155.priv.bahnhof.se] has joined #ruby-lang
tomzx [tomzx!~tomzx@dsl-156-157.aei.ca] has joined #ruby-lang
jxie [jxie!~jxie@218.64.24.90] has joined #ruby-lang
txus [txus!u2342@gateway/web/irccloud.com/x-tjwryvuejdlsuddm] has joined #ruby-lang
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
adambeynon [adambeynon!~adambeyno@82-69-1-211.dsl.in-addr.zen.co.uk] has joined #ruby-lang
<andrewvos>
We wrote some code in a code dojo recently. We used sinatra. We didn't directly write unit tests against the "controllers" but we did have cucumber/capybara feature files testing that sort of stuff.
<andrewvos>
Do people find this to be normal? Do you test your sinatra "controllers"?
<andrewvos>
I've heard even in rails some people avoid this.
Karmaon [Karmaon!~john@gateway/tor-sasl/karmaon] has joined #ruby-lang
<rue>
Functional tests?
<andrewvos>
rue: Unit tests
<rue>
Sure. For best testability, you'll want to factor your code so that most of it can be covered by units
<rue>
I thought Capybara was strictly functional testing?
curtism [curtism!~curtis@bas11-montreal02-1128531121.dsl.bell.ca] has joined #ruby-lang
<andrewvos>
In sinatra it's hard to unit test controller methods
<andrewvos>
rue: It is
<andrewvos>
But for the controllers I'm talking about avoiding unit tests
<andrewvos>
Because it feels like you're just writing the exact same tests as what is covered by cucumber
<rue>
I don't really understand the scenario here, I think.
<andrewvos>
I'm talking about *not* writing a unit test for: get "/" do; end
<andrewvos>
Because I think that's covered well enough by features
<rue>
OK
<andrewvos>
What are your thoughts on this?
huhu_ [huhu_!~huhu@unaffiliated/huhu-/x-6122598] has joined #ruby-lang
<andrewvos>
Could argue that my cucumber features should be at a higher level, and shouldn't be testing (for example) http status codes returned.
<burgestrand>
andrewvos: we don’t test our controllers explicitly, nor do we test our views
<andrewvos>
burgestrand: So you manually test your application?
havenn [havenn!~skipper@pool-71-189-127-105.lsanca.fios.verizon.net] has joined #ruby-lang
<burgestrand>
andrewvos: we write cukes (or raw capybara tests with rspec) that runs on rack::test or selenium (or similar), and we also write specs for our models, and unit tests for our javascript with evergreen
<burgestrand>
andrewvos: if we write an API, we use rack test to test responses and status codes, but that’s only for APIs
<andrewvos>
burgestrand: How is using capybara different from "testing your views"?
<burgestrand>
andrewvos: some people actually render their views with a bunch of different objects and then make sure their output matches exactly with some arbitrary markup
<andrewvos>
burgestrand: Those people are assholes :)
<burgestrand>
andrewvos: (and as you might imagine, it’s a huge pain in the ass for them when the views naturally change just a tiny bit)
<andrewvos>
Most brittle tests ever
<andrewvos>
Ok well your coding style matches mine pretty much
<andrewvos>
I lately only don't test the controller. Models and other classes get unit tested.
<andrewvos>
But that's it
<burgestrand>
andrewvos: and, well, our cukes are not so much about the markup (views) but the content, we try to make it as non-dependent on the markup as possible
<andrewvos>
burgestrand: Yeah for sure
<andrewvos>
Don't use ID's, use labels etc.
<andrewvos>
I'm all for that stuff
bl00dshooter [bl00dshooter!~bl00dshoo@201.76.213.131] has joined #ruby-lang
RomyRomy [RomyRomy!~stickycak@cpe-74-66-9-106.nyc.res.rr.com] has joined #ruby-lang
fserb [fserb!~fserb@178-83-225-18.dynamic.hispeed.ch] has joined #ruby-lang
_inc [_inc!~inc@unaffiliated/-inc/x-0498339] has joined #ruby-lang
Sailias [Sailias!~jonathan@CPE0018f85e576d-CM001bd7aaaf96.cpe.net.cable.rogers.com] has joined #ruby-lang
headius [headius!~headius@71-210-154-45.mpls.qwest.net] has joined #ruby-lang
* TTilus
covers models, lib code and apis with units and full-stack with cukes
<rue>
I really just viscerally do not like Cucumber
<andrewvos>
rue: That's just sad
<andrewvos>
rue: It's really helpful
<rue>
It's obnoxious to repeat yourself
<andrewvos>
rue: Though step definitions are fucking painful
<burgestrand>
andrewvos: check out turnip
<andrewvos>
burgestrand: Yeah had a look at that
<andrewvos>
rue: Sorry I wasn't trying to be obnoxious
<rue>
andrewvos: No, I mean I find the repetition in Cucumber to be obnoxious :)
<andrewvos>
rue: Oh ok good :)
<andrewvos>
rue: Yeah and in a big project it can get very painful. Refactoring is near impossible.
<erikh>
I find the verbosity of cukes deplorable
<andrewvos>
rue: Though it's generally because I'm writing shitty code somewhere.
<andrewvos>
s/generally/always
<rue>
I'm also extremely sceptical that they offer value to “stakeholders” over just (well-written) steps, but I concede I've not had to deal with that much
<rue>
Er, well-written specs
<TTilus>
rue: it really depends
<andrewvos>
rue: I've seen the process of writing feature files with product owners save LOTS of money.
<TTilus>
rue: ive seen cukes both being really helpfull and only a burden
<andrewvos>
rue: Sometimes saving many sprints of wasted work. Not a developer problem maybe. PRobably more a "siloing" problem.
<rue>
andrewvos: I don't see how cucumber, specifically, helps there
<erikh>
$rvm_path (/usr/local/rvm) does not exist.bash: __rvm_teardown: command not found
<erikh>
bash: cd: /Volumes/Time: No such file or directory
<erikh>
jesus, really rvm?
<rue>
I guess it may help with the process
<andrewvos>
rue: It helps because sometimes product owners and business analysts forget they need to talk to developers.
<rue>
I'd see more value if the cucumber when given DSL crap actually generated the tests directly, but it doesn't. You still have to write it
hagabaka [hagabaka!~hagabaka@unaffiliated/hagabaka] has joined #ruby-lang
<TTilus>
rue: it really boils down to the communication process and chemistry between customer and dev side
<andrewvos>
Mostly because business analysts are a useless bunch.
<burgestrand>
Cukes are awesome documentation.
gianlucadv [gianlucadv!~user@host78-84-dynamic.44-79-r.retail.telecomitalia.it] has joined #ruby-lang
<rue>
burgestrand: I can't really be bothered to read all that noise
<burgestrand>
rue: okay, well-written cukes are awesome documentation
<TTilus>
rue: can't blame you for that ;)
<rue>
As a developer, when I want to figure out what something does, I want to have a summary, and then code.
<andrewvos>
rue: Also very helpful when you have legal obligations to meet. The product owners go over the cukes and see if what we're doing is "legal"
<rue>
Only because they don't understand that it's meaningless what the cukes say
jxie [jxie!~jxie@218.64.24.90] has joined #ruby-lang
<rue>
Technically speaking.
<andrewvos>
So I guess what I'm saying is, I see product owners reading cukes a lot.
<TTilus>
rue: well, they need to trust the devs anyway ;)
<andrewvos>
rue: Well nobody said the product owners were smart :)
<rue>
But maybe it's helpful to have some kind of a template for their requirements, otherwise they just end up nonsense
<rue>
It really just chafes me, the duplication :)
<andrewvos>
rue: Yeah me too. Trust me my job is basically the "cucumber guy" so I've seen more cukes than any man should have to.
<andrewvos>
rue: They're unfucking refactorable if you don't tread *very* carefulll.y
<andrewvos>
*carefully.
macmartine [macmartine!~macmartin@c-24-21-112-60.hsd1.or.comcast.net] has joined #ruby-lang
<burgestrand>
I’m beginning to wonder what your cukes look like to need refactoring
<burgestrand>
(that sounded awfully… don’t take it the wrong way :))
<rue>
Refactoring the cukes, or refactoring the app?
<erikh>
show us your cukes
<andrewvos>
rue: The step definitions I mean
<burgestrand>
Cuke all over
<andrewvos>
erikh: Not allowed to sadly
<erikh>
cukes or gtfo
<erikh>
andrewvos: just joking around.
<burgestrand>
andrewvos: I think I see your point now, it’s a huge pain in the ass to write reusable steps that’s also readable
<andrewvos>
burgestrand: Yes. I wrote some code with a colleague recently and he pointed out that I should be creating a dsl right from the start.
<andrewvos>
So in the "I visit the home page" step I just call "visit_home_page"
<andrewvos>
None of this "visit "/"" shit
<andrewvos>
And that sounded like it might help with all the duplication
<andrewvos>
You know, only call a single method in your step definition
<burgestrand>
It’s not uncommon for us to write steps á "I visit the (.+)" and then have the step derive the path from what’s written
<andrewvos>
And that method is in a mixed in module or whatever.
jaisoares [jaisoares!~jsoares@bl14-91-167.dsl.telepac.pt] has joined #ruby-lang
<burgestrand>
Same for some crazy kind of meta-steps, /(.+) within the results/ do |scoped_step|… and then the step itself is within('.results') do … step(scoped_step)… end
spleeze [spleeze!~Spleeze@173-15-131-114-BusName-Philadelphia.hfc.comcastbusiness.net] has joined #ruby-lang
whatasunnyday [whatasunnyday!~sunny@c-24-130-81-47.hsd1.ca.comcast.net] has joined #ruby-lang
<crankharder>
is there a method on enumerable like detect but also removes the element?
<burgestrand>
crankharder: reject?
<crankharder>
I need the removed element returned
<crankharder>
remove and return the first matched element
spleeze [spleeze!~Spleeze@173-15-131-114-BusName-Philadelphia.hfc.comcastbusiness.net] has joined #ruby-lang
<wallerdev>
if you have an array you can use delete_if
<wallerdev>
you can't change an enumerable and return the deleted elements since you wouldn't have the changed enumerable anymore
<wallerdev>
i guess it could return both
jaisoares [jaisoares!~jsoares@bl14-91-167.dsl.telepac.pt] has joined #ruby-lang
Indian [Indian!~Indian@unaffiliated/londonmet050] has joined #ruby-lang
jaisoares [jaisoares!~jsoares@92.250.2.116] has joined #ruby-lang
RomyRomy [RomyRomy!~stickycak@cpe-66-108-59-110.nyc.res.rr.com] has joined #ruby-lang
ricardovaleriano [ricardovaleriano!~ricardova@186.220.217.229] has joined #ruby-lang
<rue>
crankharder: You probably want find + remove; #reject! works, but iterates
<rue>
Or maybe you really need a priority queue instead
<rue>
(Or whatever)
ricardovaleriano [ricardovaleriano!~ricardova@186.220.217.229] has joined #ruby-lang
wlbentley [wlbentley!~wlbentley@207.212.155.143] has joined #ruby-lang
queequeg1 [queequeg1!~chatzilla@c-71-202-152-67.hsd1.ca.comcast.net] has joined #ruby-lang
Karmaon [Karmaon!~john@gateway/tor-sasl/karmaon] has joined #ruby-lang
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
pankajdoharey [pankajdoharey!~pankajdoh@49.213.35.178] has joined #ruby-lang
pankajdoharey [pankajdoharey!~pankajdoh@49.213.35.178] has quit [#ruby-lang]
Axsuul [Axsuul!~Axsuul@75-140-75-52.dhcp.mtpk.ca.charter.com] has joined #ruby-lang
Axsuul [Axsuul!~Axsuul@75-140-75-52.dhcp.mtpk.ca.charter.com] has joined #ruby-lang
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
slaytanic [slaytanic!~slaytanic@200-55-77-14.dsl.prima.net.ar] has joined #ruby-lang
csherin [csherin!~csherin@61.11.47.238] has joined #ruby-lang
csherin [csherin!~csherin@61.11.47.238] has joined #ruby-lang
wlbentley [wlbentley!~wlbentley@207.212.155.143] has joined #ruby-lang
bl00dsho_ [bl00dsho_!~bl00dshoo@201.76.213.131] has joined #ruby-lang
looopy [looopy!~looopy@c-68-34-92-100.hsd1.md.comcast.net] has joined #ruby-lang
deanh [deanh!~deanh@ool-4578a276.dyn.optonline.net] has joined #ruby-lang
kain [kain!~kain@93-62-245-140.ip25.fastwebnet.it] has joined #ruby-lang
dejongge [dejongge!~jonke@seattle245.riseup.net] has joined #ruby-lang
frode15243 [frode15243!~frode1524@pdpc/supporter/active/frode15243] has joined #ruby-lang
timepilot [timepilot!~timepilot@66.71.231.174] has joined #ruby-lang
adambeynon [adambeynon!~adambeyno@82-69-1-211.dsl.in-addr.zen.co.uk] has joined #ruby-lang
mkscrg [mkscrg!~mkscrg@ool-18e4f9d6.dyn.optonline.net] has joined #ruby-lang
kyrylo [kyrylo!~kyrylo@subtle/user/kyrylo] has joined #ruby-lang
rdeshpande [rdeshpande!~rdeshpand@unaffiliated/rdeshpande] has joined #ruby-lang
<rdeshpande>
im building a troubleshooting app (e.g. user is asked two questions, pick 1 and you go down a certain path, etc.). i'm trying to figure out the appropriate data structure for this. does anyone have any tips on how to set this up (and perhaps a ruby lib to go with it)?
<rdeshpande>
basically questions lead to more questions until you hit a leaf node of some kind and arrive at an answer (or set of answers)
<rue>
State machine?
mkscrg [mkscrg!~mkscrg@ool-18e4f9d6.dyn.optonline.net] has joined #ruby-lang
<rue>
Though maybe a simple tree would work just as well
ricardovaleriano [ricardovaleriano!~ricardova@186.220.217.229] has joined #ruby-lang
<rdeshpande>
i was thinking a tree, but the problem is that a lot of the paths can be interwoven. i.e. you can go down a certain path but after answering question 4 you may end up on a totally different path
<rdeshpande>
so they aren't mutually distinct
<rdeshpande>
im thinking some sort of setup where each question has a set of source nodes and destination nodes
Heimidal [Heimidal!~heimidal@c-67-165-197-126.hsd1.co.comcast.net] has joined #ruby-lang
<jaafar>
a graph :)
<rdeshpande>
jaafar: any suggestions on libraries to look at or places to start? my CS background in such topics is pretty limited
<jaafar>
rdeshpande: sorry, it was a somewhat trite observation, but a tree is a connected graph without reconvergence, so it sounds like using a graph for generality would suit your needs. Here's one: http://rgl.rubyforge.org/rgl/index.html
<jaafar>
may be a bit too much CS-ish, I don't know, but it ought to be sufficiently general
<jaafar>
anyway graphs are cool, it's good to learn about them
<rdeshpande>
sweet, thanks
<jaafar>
np, gotta reboot
spuk [spuk!~spuk@189.6.30.65] has joined #ruby-lang
<andrewvos>
I think I'm going to stop using cucumber for a while
<rue>
Damn it, I knew I forgot to import a dotfile
<andrewvos>
hah
spuk [spuk!~spuk@189.6.30.65] has joined #ruby-lang
SuperTaz_work [SuperTaz_work!~supertaz_@c-24-130-115-179.hsd1.ca.comcast.net] has joined #ruby-lang
bcardarella [bcardarella!u1539@gateway/web/irccloud.com/x-uewcmedtkxpjyqmi] has joined #ruby-lang
darkf [darkf!~darkf_dix@unaffiliated/darkf] has joined #ruby-lang
<bcardarella>
There is a gem that has a file that is not in the lib directory but in a vendor directory. How would I access the file in that gem?
workmad3 [workmad3!~workmad3@cpc1-bagu10-2-0-cust81.1-3.cable.virginmedia.com] has joined #ruby-lang
<rue>
You probably shouldn't?
<rue>
You can unpack the gem yourself, but if it's not in the lib, you're not meant to use it in the course of regular gem utilization
<burgestrand>
bcardarella: what gem is it?
<queequeg1>
So I'm learning ruby, but I don't know C. If I want to look at the source code for the String object does that mean I will have to look at C code?
S2kx [S2kx!~S1kx@ip-95-223-80-198.unitymediagroup.de] has joined #ruby-lang
<rue>
queequeg1: Well, it depends
<bcardarella>
burgestrand: it includes assets meant for Rails' asset pipeline. I want to access them outside of this context
<rue>
queequeg1: You could read the source in Rubinius, most of it's in Ruby
<rue>
queequeg1: But if your goal is to find out something about the MRI implementation in particular, then that's not a solution.
<burgestrand>
bcardarella: ah, alright
<queequeg1>
rue: I was just trying to do an exercise where I extend the String class. But I don't know certain things about it like what are its instance variables.