RubyPanther

Activity Graph

Page 1 of 32 | Next »

2014-07-06

[05:33:43] RubyPanther: "won't rejoin if kicked" usually indicates a bot
[06:31:24] RubyPanther: DivineEntity: http://stuff.rubypanther.com/perl.rb (1.8)
[18:14:01] RubyPanther: maximski: self
[18:14:58] RubyPanther: If the answer isn't self, then no, you don't need to know. Rather, you need to not know.
[18:15:43] RubyPanther: Ruby lets of fiddle everything from everywhere, so can be no excuse not to use proper OO

2014-07-02

[07:51:16] RubyPanther: gcc-4.8.3-1.fc20.x86_64

2014-07-01

[00:55:00] RubyPanther: <3 <3 <3 Monkeys!
[00:56:04] RubyPanther: Never take your slippers off
[00:57:57] RubyPanther: That's what mRuby is for
[01:01:28] RubyPanther: Between C and mRuby you can make it through most jobs
[01:01:48] RubyPanther: COBOL extension? No problem!
[02:08:50] RubyPanther: They say you need to write tests so that you can change code without fear. I say, just let go of the fear. Learn to take chances with confidence.
[02:10:44] RubyPanther: boom: frameworks don't deliver much of what they claim
[02:11:49] RubyPanther: boom: http://www.rubyinside.com/dhh-offended-by-rspec-debate-4610.html
[02:12:03] RubyPanther: boom: They probably are
[02:12:18] RubyPanther: Unless you invented a new type of sensor, you probably don't have any "new" code except for the bugs
[02:14:07] RubyPanther: boom: it is a ways in, but Uncle Bob talks about what he thinks you should write tests for http://confreaks.com/videos/759-rubymidwest2011-keynote-architecture-the-lost-years
[02:14:18] RubyPanther: You have to watch the whole thing for the context, though
[18:55:19] RubyPanther: Never assume your package maintainers have a better idea than upstream (unless they're a *BSD, then maybe)
[18:55:53] RubyPanther: Upstream is always supposed to know more

2014-06-30

[19:16:27] RubyPanther: ehlovader: You have to open a new shell because rvm works by fiddling the shell environment, for example it replaces the cd command
[19:17:49] RubyPanther: my opinion, its features bit you and the other options don't have that "feature"
[20:18:18] RubyPanther: C++ existing is no problem unless you use it. Just say no.
[20:20:45] RubyPanther: Even C++ programmers agree it is an awful language unless you only use certain parts. Only problem, they don't agree which parts to use.
[20:21:27] RubyPanther: At least in C there is a lot of agreement about how to use it safely these days
[20:21:54] RubyPanther: You can't stop there from being a lot of agreement, though. ;)
[20:22:26] RubyPanther: Carefully hedged statements are nearly bulletproof.
[20:30:05] RubyPanther: mtsmith85: there are lots of solutions for that, look there for the best practices. There are at least half a dozen popular solutions for worker queues.
[20:31:15] RubyPanther: You don't have to "pull in" a gem. It is nonsense-speak. You can distribute the gem with your app, or even paste the code from the gem into your app.
[20:32:07] RubyPanther: mtsmith85: Just go backwards from the "there" you're wondering about to whatever place or subject was mentioned immediately beforehand.
[20:35:11] RubyPanther: It makes sense to roll your own when it is something small. Why introduce dependencies for a couple lines of code? Or for security where you have arbitrary needs, and plan to have different arbitrary needs in the future. But workers queues are a very technical thing that requires an exacting solution.
[20:35:37] RubyPanther: It is not really an area where there are any category of gains to be had by avoiding existing wheels
[20:36:52] RubyPanther: mtsmith85: I would say that increases the benefit of using an existing queue
[21:00:56] RubyPanther: mtsmith85: If you daemonize following the normal unix pattern it works fine portably, though often a binmode (no-op on *nix) is added. fork, setsid, cd, etc
[21:01:38] RubyPanther: The relevant Ruby stdlib just wraps the C calls of the same names
[21:02:09] RubyPanther: So there are no surprises
[21:06:12] RubyPanther: I didn't switch to linux until common windows apps stopped running with Win 3.11 + Win32s extensions. There was no way I was going to run Win95/98. I actually liked DOS, because I didn't even imagine the quality of shells *nix had. DOS was as good as Pro-DOS on the Apple ][, after all.
[21:07:19] RubyPanther: it amazes me that the modern windows cmd shell still has no features.
[21:08:04] RubyPanther: presumably command history and tab completion are still considered "power" tools to somebody out there.
[21:09:08] RubyPanther: I'm not convinced they have any idea how they want me to think. Just look at Win 8
[21:10:04] RubyPanther: To know which way MS is trying to manipulate you, you have to know how much Balmer had to drink on a Monday in October, and you have to know which Monday too
[21:11:27] RubyPanther: hashes are ordered now
[21:13:01] RubyPanther: Previously they would be ordered on a hash that small anyways
[21:14:56] RubyPanther: I think even before you needed a hash over the page size to have a chance at the order changing, but it might have been a different (large) threshold
[21:19:44] RubyPanther: for 1.8 people used dictionary from facets
[21:20:21] RubyPanther: Everything from facets has to be included in the language because it is the only way to keep people from using the author's code :o
[21:21:08] RubyPanther: And the mailing list hates him that much, regardless of him having been ahead of even rails at adding most of the modern Ruby features
[21:21:14] RubyPanther: shevy: It can already
[21:22:10] RubyPanther: Same as with Ruby, there is no goal of taking over the world or being "#1," the goal of mRuby is make Ruby more available for embedding
[21:22:39] RubyPanther: Matz had Lua envy, not Lua hate :)
[21:24:09] RubyPanther: atmosx: Lego Mindstorms is a good example
[21:24:46] RubyPanther: Apparently Lua is extensively used already in embedded robotics controllers in factories, and those are the companies that invested in mRuby
[21:25:16] RubyPanther: There was a Japanese industrial group that co-sponsored mRuby along with the Japanese government as a Lua competitor for robotics
[21:26:10] RubyPanther: Well, Lua isn't for writing apps, it is for embedded scripting _and_ embedded apps on SBCs
[21:27:04] RubyPanther: If you don't have access to proprietary robotics controllers, then of course you wouldn't matter to Lua developers, or they wouldn't matter to you, or something
[21:27:53] RubyPanther: There is supposed to be a higher entry barrier because you're expected to be buying hardware dev kits just to get started
[21:28:39] RubyPanther: And for game scripting, there isn't really anything outside of the Ruby stdlib that you'd want to be standard, because you don't want bloat
[21:29:38] RubyPanther: shevy: One is for common use, the other is for pedantic GNU-style command parsing
[21:31:25] RubyPanther: katlogic: If you think Ruby is slow, you think too much for your own good.
[21:31:43] RubyPanther: It isn't, but your code probably is. Your code being slow, that part I believe.
[21:32:01] RubyPanther: katlogic: Would like a side of derp with your derp?
[21:32:33] RubyPanther: Ruby is written in C, and runs at _exactly_the_same_speed_ as other C code.
[21:33:40] RubyPanther: Nilium: I dunno, we tried for years to burn them in a fire whenever they said "herp-a-derp, Ruby slow" but they kept coming
[21:34:05] RubyPanther: CSS isn't slow either, that would be an equally stupid claim.

2014-06-29

[19:23:42] RubyPanther: fnando: Often it is caused by the parent directory not having +x
[19:25:00] RubyPanther: depending on platform, of course. +x on the directory is also needed if there is any wildcard in the filename, or if you're trying to check if a file exists in the directory before executing it
[19:25:41] RubyPanther: fnando: Generally apache enforces the +x requirement pretty far up the tree, not just the immediate parent
[19:26:25] RubyPanther: fnando: in that case the ruby itself might not be runable as the apache user
[19:27:59] RubyPanther: fnando: generally you would want a per-app system user that is used instead of *nix groups, and then to install the ruby in that user's dir, and then have apache run the app as that user. or per-team in some cases.

2014-06-27

[05:39:38] RubyPanther: cantonic: I make sure to always use BigDecimal when I care about exact numbers
[05:40:27] RubyPanther: cantonic: in my dec_number gem I use a backwards #coerce method so that if either side is a decnumber, then it returns a decnumber. Normally if the types don't match you get floats back
[05:40:54] RubyPanther: You can use the same trick if you monkeypatch BigDecimal's coerce method to be backwards
[05:41:14] RubyPanther: or, just be careful to initialize all your values...
[17:03:26] RubyPanther: Of course you can have original content, for values of "original content" that match real "original content."
[17:03:59] RubyPanther: None of that was entirely "original" anyways, except the wild mumblings of bat boy
[17:04:37] RubyPanther: If you can figure out what "original content" even means, it would be trivial to write a bot to generate it
[17:05:11] RubyPanther: The state of that art is more about teaching an expert system what "good" literature is, rather than some hang-up about being "original."
[17:06:05] RubyPanther: That is nonsense, systems that fail are poorly programmed
[17:06:45] RubyPanther: Software can and does write decent literature. The state of the art is not failure. Nor is it a "brain simulator."
[17:07:17] RubyPanther: It has no meaning, it is like complaining that jets are fake because they don't have feathers
[17:07:40] RubyPanther: You'd have to read it and realize that there is nothing different about _the_creative_content_ than content created by humans.
[17:08:24] RubyPanther: The supposed difference is in the creative _process_ which isn't even the same for different humans, isn't understood, and isn't attempted to be measured in computers the way it is measured in humans
[17:08:39] RubyPanther: skmp: That's a dodge
[17:08:55] RubyPanther: A weak one, too. No human artist would meet the standard.
[17:09:23] RubyPanther: Right, but that is not the computer failing, that is just you not reading. ;)
[17:10:17] RubyPanther: My advice, read more journals, ponder less
[17:11:08] RubyPanther: diegoviola: #+ and #& are my first 2 ideas depending on what "merge" means
[17:14:03] RubyPanther: skmp: I start at New Scientist magazine and mostly read things referenced there.
[17:15:15] RubyPanther: Journals aren't necessary, I was just being snooty, the important thing is to read first and then integrate, instead of ponder and integrate
[17:17:14] RubyPanther: diegoviola: Why don't you just create an OO object that holds your data, then parse it in.
[17:19:10] RubyPanther: skmp: No, most of the great ideas have come from directed pondering by people well educated in the field who get a surprising (not random) epiphany while working on a problem. Often it is about a different problem than they were working on, but that is part of the process.
[17:19:45] RubyPanther: Just grab at any great idea from history
[17:20:10] RubyPanther: A great symphony isn't a random batch of ideas, it is a master work that was created with intention
[17:20:46] RubyPanther: Well, that is you misusing words
[17:21:10] RubyPanther: The word is wrong, and so it shelters the difference in ideas from analysis.
[17:22:01] RubyPanther: Because the internet is made of cats, and adding captions is an old idea
[17:22:25] RubyPanther: Yeah, so is a used bike
[17:23:43] RubyPanther: No, it is _exactly_the_same_ and claims of "true" originality are all fake
[17:25:00] RubyPanther: I normally avoid blanket terms, but in this case I will defend "all." The egg comes before the chicken because that is where the mutation is first expressed.
[17:25:17] RubyPanther: An original idea would be completely useless to a human brain.
[17:25:34] RubyPanther: Mutations are not, and _can_not_ be random!
[17:26:18] RubyPanther: because you can only have coding errors in the specific ways that the gene transfers can fail, and the new value is derived from the old values
[17:26:34] RubyPanther: We can't predict a mutation, but it is not, can not be, random
[17:27:32] RubyPanther: Almost nothing can be random, things simply "appear random" because they're distributed in a way that was don't have more information about
[17:28:30] RubyPanther: When physicists talk about things being "random" they're not talking about things being creatively new, they're talking about not having information other than some known distribution
[17:29:22] RubyPanther: Entropy is just disorder, it isn't a thing that can be new, it is just a distribution
[17:29:37] RubyPanther: and the distribution is never the same as in the past, but plagiarism can still exist
[17:30:25] RubyPanther: https://www.youtube.com/watch?v=2knWCuzcdJo
[17:31:05] RubyPanther: katlogic: Yeah, thankfully they stopped asking most of those questions. Praise the logical positivists! lol
[17:42:03] RubyPanther: cosmic rays can only "knock" DNA from the current position into one of a few known possible other conditions. The case for randomness would fall on splitting hairs specifically within the cases of complete DNA failure, but those are not useful cases and won't instruct much
[17:42:40] RubyPanther: cj: beware of placing the words "system call" next to each other, because then it means something extra
[17:43:23] RubyPanther: which is to say, calling #system is not a system call :P
[17:44:36] RubyPanther: skmp: "true" in "true randomness" has no meaning. If there is hidden complexity is a known unknown that is widely believed to be unknowable.
[17:45:48] RubyPanther: Well, that is nonsense, if there is hidden complexity that is unknown, we won't be able to make any claims about if modeling it is easy or hard until/unless it is a known known
[17:46:55] RubyPanther: You can't know that without knowing it. You can't know what would be available from finite knowledge except for the things you have knowledge about already.
[17:47:44] RubyPanther: If you read Richard Feynman: A Life in Science, they spend a bunch of pages on logical positivism and this sort of question
[17:50:11] RubyPanther: according to Feynman's "reverse wave hypothesis" the cosmic ray actually interacts with the DNA it is going to fiddle _before_ being emitted from the solar body
[17:50:55] RubyPanther: So rather than random, it is actually premeditated by both the cosmic ray, and the DNA
[17:51:22] RubyPanther: Nope, just a "reverse wave"
[17:52:16] RubyPanther: Right, the theory is that every single photon exchange has a _different_ information exchange first, traveling backwards in time
[17:53:10] RubyPanther: Yeah, to measure where 1 photon will go, you have to collapse a whole universe full of wave functions to find the one that reinforces
[17:53:41] RubyPanther: what looks "efficient" at the human level is somewhat arbitrary
[18:45:25] RubyPanther: sdelmore: Normally you would cast all your inputs to UTC
[18:45:52] RubyPanther: There is nothing full-featured like SQL has
[18:47:00] RubyPanther: Time and dates are Ruby's weak area, because the stdlib is mostly just centered around providing an interface to the crufty old unix C libs
[18:49:21] RubyPanther: My typical strategy is to stuff them in a database, and do the time/date math in SQL, then hide all that behind a Ruby method
[18:49:56] RubyPanther: "substantially non-optimal" but it gets me there

2014-06-25

[20:09:30] RubyPanther: shevy: you have to do it that way because csh was too hard
[20:11:26] RubyPanther: shevy: in csh you can just say if ( -f $file ) echo "omg" or if (-f $file) then \necho "omg"\nendif
[20:12:15] RubyPanther: just keep asking the question until it answers itself ;)
[20:13:04] RubyPanther: Just because it is the C sh doesn't mean it supports hanging ifs
[20:13:17] RubyPanther: everybody knows hanging ifs are harmful

2014-06-24

[01:55:36] RubyPanther: shevy: just skip grep and go straight to sed

2014-06-23

[00:54:51] RubyPanther: well it is a lot better than #slapchop
[00:55:45] RubyPanther: brandoncordell: 0 indexed vs 1 indexed
[00:59:35] RubyPanther: >> [][0,999999999]
[00:59:45] RubyPanther: >> [][1,999999999]
[01:00:58] RubyPanther: The usefulness is that [] is true and nil is false
[01:02:11] RubyPanther: if foos = bars[baz,bing] ; ... else blow up
[02:55:14] RubyPanther: ack is: http://fc01.deviantart.net/fs70/i/2011/167/d/e/bill_the_cat_by_combatcrayola97-d3j3fc0.jpg
[17:27:31] RubyPanther: yeah on windows ^M is \r\n or something, and on *nix it is just \n
[17:28:00] RubyPanther: The only time you'll ever get a plain \r is on an old old mac
[17:28:52] RubyPanther: pontiki ^M should be a literal "enter" key sequance for your platform
[17:33:16] RubyPanther: pontiki: it doesn't press your key, but it will tend to generate your platforms end-of-line sequence. In shells and most editors it will really generate the enter key keycode. The shell would not have any special ^M code for that in most cases
[17:33:53] RubyPanther: obviously some editors will trap everything from the keyboard and then actually see the ^M but that is atypical behavior
[17:34:25] RubyPanther: "Gee, I didn't get the point... there must not have been one!"
[17:34:38] RubyPanther: pontiki: Yeah, I do get that a lot.
[17:39:12] RubyPanther: Darkchaos: if you take off the \r crap then it works fine everywhere. You gain portability by doing it the *nix way
[17:39:40] RubyPanther: windows will use the file extension and ignore the #!
[17:39:58] RubyPanther: so you use both correctly
[17:40:33] RubyPanther: the "correct" *nix ways will already work portably, there is no extra steps

2014-06-22

[00:07:15] RubyPanther: I avoid it except for when dealing with outside APIs or porting
[18:24:23] RubyPanther: Don't trust your brain blindly. Make sure to see what it wants you to see first.
[19:21:06] RubyPanther: kireevco: You should fill out all the fields in your gist, like the filename. You give a log, but the source file you didn't name so it is gistfile1.txt which is obviously not in your log
[19:21:38] RubyPanther: it is more work just figuring out what the hell is what than it should take to actually debug it ;)
[19:21:52] RubyPanther: I doubt I'm the only one that goes over quota and doesn't bother...
[19:23:13] RubyPanther: still says gistfile1.txt for me, though I do see some hanging text that might be a filename
[19:23:56] RubyPanther: If the source pays similar attention to detail, then there is not just 1 or 11 bugs
[19:28:17] RubyPanther: kireevco: Only if you broke your RVM install. If you're on windows use the "one-click" version, and install the "dev-kit" from the same place
[20:02:31] RubyPanther: kireevco: what makes you think it is an rvm issue? What did you do to rvm that you think broke it? Have you considered nuking it and re-installing?
[20:17:58] RubyPanther: jforwiht589th59: Yes, advanced technical subjects require years of study before you can even ask useful questions. I'm sure the web can give you layperson explanations, but don't expect that to help with anything other than curiosity.
[20:19:12] RubyPanther: Right, it was not a useful question and did not have a useful answer
[20:20:03] RubyPanther: The same thing works with your doctor, just ask something that is nonsense, and then get frustrated that he "won't" explain it to you.
[20:21:43] RubyPanther: if I'm bored enough to be entertained by this guy, I need to go out for some fresh air

2014-06-21

[04:50:06] RubyPanther: mikhael: learn first, build later. See also: cart, horse
[04:53:15] RubyPanther: mikhael: so is the horse
[04:54:43] RubyPanther: Yes. I agree.
[07:21:43] RubyPanther: kilk_: http://patshaughnessy.net/2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0
[07:23:24] RubyPanther: come on, be cool noob, build a bot for that
[07:25:52] RubyPanther: sure, why not?
[07:26:43] RubyPanther: No, Ruby is for *nix. But it runs anywhere.
[07:27:08] RubyPanther: WTF is "the web," you mean CGI?
[07:30:53] RubyPanther: Ruby on windoze is exactly the same as on *nix, except instead of using ruby-build you install some "one click" thing and then a "devkit"
[07:31:17] RubyPanther: even C extensions work just fine. Native Gtk bindings compile just fine.
[07:31:40] RubyPanther: ODBC using popular ORMs works as expected
[07:35:54] RubyPanther: The_NetZ: probably why you think it is a PITA

2014-06-20

[04:45:38] RubyPanther: a ||= b is sugar for a || a = b
[19:35:39] RubyPanther: gygar: because a lot of people make bad/broken gems that request specific versions of dependencies, even though there are not actual known problems with other versions
[19:52:50] RubyPanther: benzrf: maybe #facebook
[19:54:57] RubyPanther: benzrf: yeah, benlieb
[19:56:42] RubyPanther: benlieb: it might not get much use

2014-06-19

[06:40:03] RubyPanther: Ruby slippers are still in style.
[17:57:41] RubyPanther: I thought it was an ebook, I didn't realize it was the classics

2014-06-18

[07:18:52] RubyPanther: they have to really love each other to get a head-bump

2014-06-16

[01:58:58] RubyPanther: diegoviola: What I do is I stare at the code until the bug starts to feel heavy
[02:01:20] RubyPanther: diegoviola: Just unify all the data access in one place, don't fight the legacy monster, just brick over the cave opening
[02:02:07] RubyPanther: how is "use the force" not going to help??
[02:04:39] RubyPanther: it is obviously not DRY, and that is why mold is growing
[02:06:14] RubyPanther: fix the OO and the bug will crawl away, no need to bother with killing it
[02:10:22] RubyPanther: sounds like time for somebody to do some QA work and write some integration tests. It's not like you need to test everything.
[02:12:01] RubyPanther: # /ignore *!*@cha92-4-82-224-226-31.fbx.proxad.net ALL
[02:36:11] RubyPanther: # /ignore *!*@cha92-4-82-224-226-31.fbx.proxad.net ALL
[22:50:45] RubyPanther: foobarbaz: sed
[22:51:16] RubyPanther: it isolates the danger to a single regex
[22:52:28] RubyPanther: you can ask your version management software what files were changed, and review or reject changes
[23:07:19] RubyPanther: DATA is just for doing the Perlism which is intended only for short scripts
[23:08:03] RubyPanther: The whole point of the use case is that there is only 1 file
[23:09:46] RubyPanther: yeah, of course it would still be yaml
[23:10:32] RubyPanther: I'd quit and become a farm hand before I'd eval a hash

2014-06-15

[02:48:50] RubyPanther: vim requires mode switching, emacs is faster
[06:00:07] RubyPanther: csmrfx: I've been using emacs for 15 years and I've only learned 5 or 10 chords, none of them use two hands
[08:58:36] RubyPanther: Cope: Class.new
[09:22:12] RubyPanther: joshua___: ODBC
[09:23:46] RubyPanther: joshua___: ruby-odbc + tiny_tds + activerecord-sqlserver-adapter is my setup
[09:24:13] RubyPanther: joshua___: using DBI the string should be the same as whatever it is for Perl DBI
[09:24:58] RubyPanther: but AR hides the db-specific nastiness
[09:36:57] RubyPanther: joshua___: https://gist.github.com/rubypanther/670081512f45b4a285f6
[09:38:58] RubyPanther: joshua___: it only needs activerecord but I pasted a Gemfile version that pulls in all of rails.
[09:43:29] RubyPanther: joshua___: The way I'm doing it with tinytds you don't need ODBC on the server, you can just connect normally. But more importantly it provides a modern ORM layer.
[09:50:15] RubyPanther: joshua___: Both, with that setup I can use the same script, no modification, from a remote linux box over the vpn. I left out the /etc/freetds.conf file, but that maps the windows network name you use in odbc.ini to the IP address of the server
[09:51:09] RubyPanther: joshua___: Then when I'm on the windows server box, tinytds uses the normal windows ODBC and looks for the same DSN
[09:51:38] RubyPanther: so the odbc config is different, but to the script that is all transparent
[09:52:42] RubyPanther: joshua___: http://www.freetds.org/userguide/freetdsconf.htm#FREETDSCONFFORMAT
[09:53:21] RubyPanther: in my gist it would be [WINDOWSNETWORKNAMEOFSERVER] ...
[10:23:33] RubyPanther: I trust Clippy more than whatever these newfangled Jeeves are called
[10:24:05] RubyPanther: Clippy is Special, but his simplicity keeps him out of trouble
[10:27:03] RubyPanther: a tool, mostly
[10:27:13] RubyPanther: I think it could access a "knowledge database"
[20:22:18] RubyPanther: Yeah, if you do somehting like PATH=$PATH:~/foo then bash expands that before it gets added, the ~ isn't going to be in $PATH
[20:22:36] RubyPanther: stuffing it in there is perverse
[20:23:09] RubyPanther: it is wrong, but in a way that creates land mines by looking too much like normal ground
[20:23:50] RubyPanther: a wide open WTF in the ground, you just step around it
[20:24:23] RubyPanther: AlexRussia: clever is not better than conventional
[20:24:49] RubyPanther: Only add intelligence to your code where it is strictly beneficial for clear and known reasons and does not create land mines
[20:26:12] RubyPanther: ~ is portable because you know where you expand it, and expand it in the right place.
[20:26:28] RubyPanther: not knowing where it is expanded so stuffing it in everywhere, that doesn't do anything for portability
[20:27:21] RubyPanther: The user who fiddles $PATH will generally expect you to just use the PATH normally and not to try to play clever tricks. You're not helping that person by being clever.
[20:28:00] RubyPanther: Other software isn't clever, and use and abuse of $PATH assumes the software will just be properly stupid and not worry about what you stick in there, just check those directories
[20:28:35] RubyPanther: The idea that some cleverness would somehow _help_ the people who fiddle their paths, that is just nuts.
[20:35:17] RubyPanther: export FOO=~ ; export BAR='~'; ruby -e 'puts ENV["FOO"]' ; ruby -e 'puts ENV["BAR"]' ; ls -d $FOO $BAR # this should explain it all
[20:37:24] RubyPanther: ls: cannot access ~: No such file or directory
[20:48:11] RubyPanther: exactly, ~ is not a general meta-character, it is only a metacharacter to the shell, and the shell expands it when it is set, and all that is set is a regular dumb string
[20:50:22] RubyPanther: trying to add extra logic that expands crap in those strings is a security hole. Not a theoretical, a known one, because where things do and don't expand is part of the security strategies being used. You could accidentally expose the user of your gem to attack from by their users
[20:51:54] RubyPanther: The dark heart of the BOFH is forged battling these demons
[21:07:09] RubyPanther: human filters will ban more stuff, if that results in "solving" a particular problem depends on a lot of assumptions, and the problem
[21:08:24] RubyPanther: now we know why they ignore your mails
[21:09:00] RubyPanther: lezzit: Nobody cares
[21:11:29] RubyPanther: My direct ancestor killed Charles II of England in order to free the individual to talk to their deity directly, to receive inspiration directly. Incidentally, they also created the modern English parliamentary system at the same time. I'm not a deist, but I'd fight for their rights to come up with their own answers, and to bloviate about them.
[21:12:10] RubyPanther: How is a bot any different than a Buddhist prayer wheel spinning in the wind?
[21:13:29] RubyPanther: is a bot a system, or a phenomenon that arises from a system?
[21:14:33] RubyPanther: luckily I have to fix a bicycle, so you're saved
[21:16:16] RubyPanther: OffTheRails: The bicycle doesn't need any fixing. I need it to be fixed, so that my wife will be happy about it.
[21:17:23] RubyPanther: lol yeah, worship for my Deity :P~

2014-06-14

[20:47:35] RubyPanther: thinking back to my 80s RPG experiences, we used square grid graph paper for custom maps, they easily have 8 directions of movement, hex maps work good for combat simulation like battletech, but it sucks for campaigning
[20:49:10] RubyPanther: csmrfx: That is all stuff I would want to hide behind various APIs, and the generator wouldn't care