Swimming_Bird has quit [Ping timeout: 248 seconds]
llakey has joined #ruby-lang
Swimming_Bird has joined #ruby-lang
cored has quit [Quit: leaving]
fgomez has quit [Ping timeout: 244 seconds]
milram has quit [Quit: milram]
milram has joined #ruby-lang
milram has quit [Client Quit]
workmad3 has quit [Ping timeout: 245 seconds]
dasibre has joined #ruby-lang
yugui_zzz is now known as yugui
ryanf has quit [Quit: leaving]
b1rkh0ff has quit [Ping timeout: 245 seconds]
savage- has joined #ruby-lang
perryh_away is now known as perryh
fgomez has joined #ruby-lang
cmaxw has quit [Quit: cmaxw]
postmodern has joined #ruby-lang
replore has joined #ruby-lang
sush24 has quit [Quit: This computer has gone to sleep]
milram has joined #ruby-lang
cmaxw has joined #ruby-lang
milram has quit [Client Quit]
SimSala has quit [Ping timeout: 248 seconds]
S2kx has joined #ruby-lang
mistergibson has joined #ruby-lang
mistym has quit [Remote host closed the connection]
S1kx has quit [Ping timeout: 244 seconds]
cored has joined #ruby-lang
diegoviola has quit [Read error: Operation timed out]
fserb has joined #ruby-lang
bruno_coelho has joined #ruby-lang
Hakon|mbp has quit [Quit: Leaving...]
cored has quit [Read error: Connection reset by peer]
cored has joined #ruby-lang
gsav has quit [Read error: Connection reset by peer]
gsav has joined #ruby-lang
savage- has quit [Remote host closed the connection]
<mistergibson>
odd thing: in MRI 1.9.2+ ... a string no longer returns the ascii value "a"[0] >> "a" and such. Has anyone found a replacement for this functionality? currently, I'm forced to process through "a".each_byte to do things.
savage- has joined #ruby-lang
<heftig>
mistergibson: .ord
<heftig>
?a.ord will return 97 in both 1.8 and 1.9
<mistergibson>
heftig: that returns codepoints, not byte value
<mistergibson>
I looked into that
<heftig>
are you working with binary data?
<mistergibson>
yup, packed in strings for extra goodness
<heftig>
where from? a file?
<erikh>
string.bytes[0] ?
<mistergibson>
nope
<mistergibson>
hrm, lemme see
<heftig>
bytes == each_byte
<erikh>
each_byte is an iterator
<erikh>
slightly different
<mistergibson>
erikh: no, returns an enumerator
<erikh>
oh phooey
<erikh>
well .bytes.to_a then :P
<heftig>
erikh: no, those are aliases
Cykey has joined #ruby-lang
<mistergibson>
I have made my own working methods, but it is weird that they'd impose this state of affairs
<heftig>
if you're working with binary data, your string should have BINARY encoding
<erikh>
yeah, bytes working that way is pretty silly.
<mistergibson>
I just don't like the overhead of *having* to create an enumerator to do simple byte-wise indexing
<heftig>
when reading from a file, you'd normally do that by passing mode "rb"
<heftig>
on binary strings, there is no distinction between chars, codepoints or bytes
<erikh>
yeah, heftig is probably right -- the "right" way of doing this is by changing the encoding
<mistergibson>
I see
<heftig>
er, well, other than chars still being one-char strings
<erikh>
I'm guessing #ord will do what he wants then, though.
<heftig>
yes
<heftig>
"ä".force_encoding("BINARY")
<mistergibson>
I see
<mistergibson>
funky new-fangled way
<mistergibson>
hrm
<mistergibson>
no, still behaves the same way
<heftig>
mistergibson: where's the data from then? a database? a socket?
<mistergibson>
no, just a string in mem
<heftig>
and where's that string from?
<mistergibson>
mem
<heftig>
that makes no sense
<mistergibson>
heftig: I know about StringIO, IO, files, etc
<heftig>
you'd have to read it from somewhere
<mistergibson>
this is different
<mistergibson>
heftig: no, I could generate data via methods
<mistergibson>
heftig: which is what I'll need to do for formatting
<heftig>
so make sure those methods work with binary strings
<mistergibson>
anyhow
<mistergibson>
yup
<mistergibson>
looks like
<mistergibson>
oh, got it ... my mistake
<mistergibson>
NOW .ord works fine
<mistergibson>
the scales fall from his eyes ... need more beer
<jarred>
I didn't even leave at the bottom of this file
<jarred>
*look at
<cirwim>
jarred: yeah, that looks like what I have
<jarred>
This isn't a X-GM-MSGID though
<jarred>
This is the standard Message ID header
<cirwim>
right
<jarred>
Does gmail not generate the standard Message ID headers?
<jarred>
Or are those not standard?
<cirwim>
it also generates standard Message-ID headers
<cirwim>
and you can just search for them like normal
gouthamvel has joined #ruby-lang
<cirwim>
X-GM-MSGID is not as useful as X-GM-THRID
<jarred>
Yeah
<jarred>
That is what I'm looking for, very soon
<jarred>
Not quite yet though
<cirwim>
though the X-GM-MSGID of the first message in a thread is the X-GM-THRID
<cirwim>
you can get X-GM-MSGID's in base 16 out of gmail urls
<jarred>
Ah I see
<jarred>
cirwim: Would searching by Message-ID look like: "gmail.conn.search("HEADER Message-ID " + "4fc4433f891e9_3ab48b79b09393@vbox-pc.mail".to_i(16).to_s, false)"? I guess, my main question is how do I convert "4fc4433f891e9_3ab48b79b09393@vbox-pc.mail" into the right format?
<jarred>
(When I tried that, I got "Net::IMAP::BadResponseError: SEARCH not allowed now.")
igotnolegs has quit [Quit: Computer has gone to sleep.]
<cirwim>
jarred: take out the .to_i.to_s nonsense
<cirwim>
the id is the full string
<jarred>
oh nice
<cirwim>
you also need to select the mailbox before you use it
<cirwim>
(though you can just use Net::IMAP, em-imap is pretty much just a wrapper)
<jarred>
cirwim: You have no idea how many hours you just saved me./
<jarred>
*me.
<cirwim>
jarred: no problems; all I need in return is eternal fame and glory :)
<erikh>
ha
<jarred>
lol
* cirwim
wonders if this is the jarred who lived around the corner from his old house...
harukomoto has quit [Ping timeout: 245 seconds]
<erikh>
probability says no
ryez has quit [Ping timeout: 245 seconds]
<jarred>
Probably not, I don't live next to many Rubyists
<cirwim>
that guy was also working on email-related software, so it's more possible than it might otherwise be
<cirwim>
ah well
<jarred>
and, I haven't told many people of what I'm working on
<jarred>
and started working on this on Friday
<cirwim>
cool
<cirwim>
is it a super-secret project, or something sharable and exciting?
<jarred>
Welcome emails as a service
<jarred>
Sounds pretty stupid, right?
<cirwim>
hmm, not necessarily
<cirwim>
those are pretty tough to get right
<cirwim>
and (particularly for early-stage companies) it's a bit of a faf to set up email sending architecture
<cirwim>
I know a few people who just started out by sending them manually; and then just stopped
WillMarshall has quit [Ping timeout: 244 seconds]
<jarred>
It's based around the assumption that people enjoy receiving a personal thank you for signing up to service X
<jarred>
And by "personal", I mean that it'll seem as though it came from one of the people who made it
<cirwim>
yeah
<cirwim>
that was obvious to me :)
<jarred>
(Where it is the service you're signing up for)
<jarred>
Yeah
<jarred>
but
<cirwim>
it seems like a lot of big companies get that wrong
<jarred>
Most welcome emails are boring messages for saying "Yeah, you signed up to this service"
<cirwim>
right
<jarred>
but
<cirwim>
I've seen a few good ones though
<jarred>
To early-stage startups, it's an opportuntiy for feedback and making a good first impression
kitallis has quit [Ping timeout: 246 seconds]
<cirwim>
right
<jarred>
and one that shouldn't be squandered
<cirwim>
definitely
<cirwim>
it'd be interesting to start sending people welcome tweets
<jarred>
Yeah, but what I like about email is that it's much more personal. People enjoy interacting with other people. While the welcome emails are automated, the person who the email originated from is expected to reply to them
<cirwim>
sure
<jarred>
(Twitter is less personal because it's more public)
<cirwim>
mabe..
<cirwim>
not sure about that though
<ruskie>
heh
<jarred>
I'm not sure either, but I'll find out sometime soon
<jarred>
Vaguely related, why are there Gmail Message IDs, Message IDs, and uids?
Defusal has quit [Ping timeout: 245 seconds]
soahccc` has quit [Ping timeout: 245 seconds]
Kero has quit [Ping timeout: 245 seconds]
erikh has quit [Ping timeout: 245 seconds]
jmeeuwen has quit [Ping timeout: 245 seconds]
_whitelogger has quit [Ping timeout: 245 seconds]
_whitelogger has joined #ruby-lang
kain has quit [Ping timeout: 245 seconds]
xsdg has quit [Ping timeout: 245 seconds]
beawesomeinstead has quit [Ping timeout: 245 seconds]
<jarred>
Backwards compatibility?
<jarred>
(For Gmail)
<cirwim>
well; UIDs are a thing that IMAP requires
dtang_ has joined #ruby-lang
<cirwim>
and Message IDs are required by SMTP
Slackwise_ has joined #ruby-lang
<jarred>
oh I see
<cirwim>
(or by Mbox or something old-hat)
<cirwim>
and X-GM-MSGIDs are (I presume) the real primary key in the BIG table of emails
RubyRedGirl_ has joined #ruby-lang
dasibre_ has joined #ruby-lang
jmeeuwen_ has joined #ruby-lang
Defusal_ has joined #ruby-lang
Defusal_ has joined #ruby-lang
bglusman_ has joined #ruby-lang
bfreeman_ has joined #ruby-lang
<jarred>
ah I see
krzkrzkrz has joined #ruby-lang
UNIXgod_ has joined #ruby-lang
krzkrzkrz has quit [Client Quit]
<cirwim>
fwiw, don't bother trying to use the normal IMAP "ID"; I never worked out what the point of it was :)
Kero_ has joined #ruby-lang
telemachus_ has joined #ruby-lang
erikh_ has joined #ruby-lang
soahccc`_ has joined #ruby-lang
deobald__ has quit [Ping timeout: 260 seconds]
kain__ has joined #ruby-lang
Viliny has joined #ruby-lang
ryanf has quit [Quit: leaving]
<Viliny>
Hello!
srbartle_ has joined #ruby-lang
<Viliny>
I picked up ruby again yesterday after a long pause. I noticed i've gotten so rusty that i pretty much have to start from basics again.
jenrzzz_ has joined #ruby-lang
conceal_rs_ has joined #ruby-lang
RubyRedGirl_ is now known as RubyRedGirl
jenrzzz_ has quit [Client Quit]
jmeeuwen_ is now known as jmeeuwen
JoL1hAHN has joined #ruby-lang
jenrzzz has joined #ruby-lang
tubbo has joined #ruby-lang
<Viliny>
I'm now using Dir.foreach to do a loop where i want to check if the entry contains a certain string. If that string is matched then put that entry into another array.
matthewd has joined #ruby-lang
robbyoconnor has quit [Ping timeout: 244 seconds]
kalleth has joined #ruby-lang
corsican has joined #ruby-lang
Mon_Ouie has joined #ruby-lang
xsdg has joined #ruby-lang
cmaxw has joined #ruby-lang
quatauta has joined #ruby-lang
jbwiv has joined #ruby-lang
cid404 has joined #ruby-lang
Guedes has joined #ruby-lang
<Viliny>
my first question is: how do i complete "if entry.match " to check for start of string?
Mikoangelo has joined #ruby-lang
unsymbol has joined #ruby-lang
<cirwim>
if entry.start_with?("foo")
<jarred>
cirwim: When it returns a fixnum (e.g. 992), what is that? The imap ID? I thought it was maybe the index of the email in the mailbox, but it's off by one or two
dvorak has joined #ruby-lang
benteaa has quit [Remote host closed the connection]
<cirwim>
jarred: yeah, that's the IMAP ID
ahf has quit [Remote host closed the connection]
benteaa has joined #ruby-lang
ahf_ has joined #ruby-lang
<cirwim>
or the IMAP UID
<cirwim>
depending on what you asked for
<cirwim>
(if you did search, it's the ID; uid_search; it's the UID)
ahf_ is now known as ahf
Facefox has quit [Ping timeout: 250 seconds]
<jarred>
Yeah, I need to just read the Net::IMAP documentation
UNIXgod_ has quit [Quit: leaving]
_whitelogger_ has joined #ruby-lang
<cirwim>
Viliny: looks good, though there's actually a function for this already
_whitelogger has quit [Remote host closed the connection]
<jarred>
there's stuff for uid and stuff for id, everything defaults to id
<jarred>
(and stuff == methods)
TTilus has joined #ruby-lang
<cirwim>
yeah :)
cmaxw has quit [Quit: cmaxw]
<Viliny>
cirwim: i assume you ment this "Dir.entries("testdir")" part here, but can i make it conditional on what it puts into the array?
<jarred>
Now the question is, why does it just return me a FetchData struct and not the IMAP message object (I'm not sure the actual name of the object, but the one that the mail gem usually deals with)
lele|w has quit [Ping timeout: 264 seconds]
<cirwim>
Viliny: Dir["testdir/ident*"] <-- all files in testdir starting with ident
<jarred>
oh I see
<cirwim>
jarred: Net::IMAP is really low level
<cirwim>
you need to do lots of tinkering to get the body out
<jarred>
ah I see
<cirwim>
and then you can pass the body to the mail gem
<Viliny>
cirwim: very neat, i've seen like... 5 different ways of doing this already. It's just not immediately apparent to me when seeing manuals like the one you linked earlier.
<jarred>
so I guess, in this case, it's eaiser to just use the gmail gem?
<cirwim>
Viliny: yeah; that's the problem with learning new stuff
<cirwim>
jarred: hmm, I'm not sure what you're trying to do
<cirwim>
I can say that Net::IMAP + mail gem works
<cirwim>
never tried the gmail gem though
<jarred>
It's a mostly-nice wrapper for Gmail
<jarred>
I'm primarily using it for XOAuth
<jarred>
Which is OAuth for SMTP & IMAP
<cirwim>
yeah
<cirwim>
you can get the gmail_xoauth plugin for Net::IMAP
<cirwim>
no, to_a is a method on the return value of Dir[]
<Viliny>
sorry, now im just being stupid
<cirwim>
you should read a tutorial :)
<Viliny>
i knew to_a was "to array"
<Viliny>
yes, i actually have chris pines "learn to program" here next to me, should probably try to use it more instead of googling around for answers
<Viliny>
or embarass myself in irc channels :)
<cirwim>
hehe
cesario has joined #ruby-lang
<jarred>
This worked excellently. Thank you cirwim. By the way, with the gmail gem, (If you ever want to exclusively use gmail), you can just instantiate Gmail::Message, and you give it the Gmail::Mailbox object and it's UID, and it'll get you access to the Mail Message object, as well as adding/removing labels, and some other fun things
Banistergalaxy has quit [Remote host closed the connection]
<Viliny>
ignore the fileutils require and so forth, been trying out different things there
<bnagy>
Viliny: your globs will be wrong
<cirwim>
what does: "#{sourcedirectory}/#{ident}*" look like when you eval it?
<bnagy>
you need to use / even on windows
cirwim has quit [Quit: sleep…ping!]
<Viliny>
cirwim, how would you eval it?
<Viliny>
bnagy: that actually worked earlier when i tried to simply copy files
<bnagy>
Viliny: yeah but it shouldn't :)
<bnagy>
Viliny: just use File.join ideally
<Viliny>
sooo, c:/datafiles/ etc?
<bnagy>
but IRL path sep is / on windows
<bnagy>
yeah
<bnagy>
I know it's freaky :<
<Viliny>
naww, i actually use linux a lot, just that this work computer has xp on it. keep getting an error that "ls" isn't a working command in shell :p
<Viliny>
ok well that actually made it work right off the bat
<Viliny>
i noticed the array has the full path to the file instead of the filename itself
heftig has quit [Quit: leaving]
<bnagy>
from Dir[] yeah it will
srbartle_ has quit [Remote host closed the connection]
<Viliny>
thats actually not a bad thing for file operations i guess
vesan has quit [Read error: Connection reset by peer]
s0ra_h is now known as sora_h
vesan has joined #ruby-lang
seoaqua has left #ruby-lang ["Leaving"]
seoaqua has joined #ruby-lang
graspee has joined #ruby-lang
vesan has quit [Read error: Connection reset by peer]
vesan has joined #ruby-lang
quatauta has quit [Quit: Verlassend]
lsegal has quit [Quit: Quit: Quit: Quit: Stack Overflow.]
jarred has quit [Read error: Connection reset by peer]
fgomez has joined #ruby-lang
gnufied has joined #ruby-lang
fgomez has quit [Client Quit]
fgomez has joined #ruby-lang
francisfish has joined #ruby-lang
futurechimp has joined #ruby-lang
postmodern has quit [Quit: Leaving]
postmodern has joined #ruby-lang
postmodern has quit [Client Quit]
postmodern has joined #ruby-lang
kain__ has quit [Quit: Sto andando via]
Dreamer3 has joined #ruby-lang
Dreamer3 has quit [Remote host closed the connection]
postmodern has quit [Quit: Leaving]
postmodern has joined #ruby-lang
diegoviola has joined #ruby-lang
postmodern has quit [Read error: Connection reset by peer]
sora_h is now known as s0ra_h
postmodern has joined #ruby-lang
postmodern has quit [Changing host]
postmodern has joined #ruby-lang
zz_chrismcg is now known as chrismcg
postmodern has quit [Quit: Leaving]
postmodern has joined #ruby-lang
workmad3_ has joined #ruby-lang
postmodern has quit [Client Quit]
postmodern has joined #ruby-lang
gouthamvel has joined #ruby-lang
workmad3 has quit [Ping timeout: 246 seconds]
Viliny has quit [Ping timeout: 244 seconds]
sepp2k has joined #ruby-lang
adambeynon has joined #ruby-lang
stamina has joined #ruby-lang
krainboltgreene has joined #ruby-lang
toretore has joined #ruby-lang
cdt has joined #ruby-lang
tonniaagesen has joined #ruby-lang
rushed has joined #ruby-lang
Hakon|mbp has joined #ruby-lang
kitallis has joined #ruby-lang
perryh is now known as perryh_away
krainboltgreene has quit [Quit: krainboltgreene]
kaspernj has quit [Quit: Leaving]
tRAS has quit [Ping timeout: 265 seconds]
tRAS has joined #ruby-lang
Jade has quit [Ping timeout: 246 seconds]
vmoravec has joined #ruby-lang
neoesque has quit [Quit: Bye!]
b1rkh0ff has joined #ruby-lang
vesan has quit [Read error: Connection reset by peer]
fragmachine has joined #ruby-lang
fragmachine has left #ruby-lang [#ruby-lang]
vesan has joined #ruby-lang
Where_Is_Void has joined #ruby-lang
<Where_Is_Void>
how can I get continually updated output from another process like ping?
<Where_Is_Void>
without waiting for it to finish
sush24 has joined #ruby-lang
<bnagy>
popen3 maybe, with a readline loop
francisfish has quit [Read error: Connection reset by peer]
fjfish has joined #ruby-lang
kaiwren has joined #ruby-lang
vesan has quit [Read error: Connection reset by peer]
seoaqua has quit [Quit: Leaving]
vesan has joined #ruby-lang
<Where_Is_Void>
I figured that bit out, not I need to send the process commands
<Where_Is_Void>
*now
<Where_Is_Void>
like I start the process and it asks "enter stuff"
<Where_Is_Void>
how can I enter stuff?
Asher has quit [Remote host closed the connection]
<bnagy>
when you use open3 you get in,out,err fron the process
<bnagy>
write to its input and read from its output
mistym has quit [Remote host closed the connection]
mistym has joined #ruby-lang
twelvechairs has joined #ruby-lang
Skif_away has quit [Remote host closed the connection]
kyrylo has quit [Read error: Connection reset by peer]
Skif has joined #ruby-lang
virunga has quit [Read error: Connection reset by peer]
vesan has quit [Read error: Connection reset by peer]
judofyr has quit [Remote host closed the connection]
brianpWins has quit [Quit: brianpWins]
twelvechairs has quit [Quit: Leaving]
crudson has joined #ruby-lang
vesan has joined #ruby-lang
bojicas_ has joined #ruby-lang
bryancp has joined #ruby-lang
tbuehlmann has quit []
kyrylo has joined #ruby-lang
kyrylo has quit [Changing host]
kyrylo has joined #ruby-lang
<Swimming_Bird>
I want to create and use a class variable in a mixin but I only want that class variable to be shared amongtst the class taht includes it and it's children, not any other class that includes the mixin. Can anuyone think of how todo that?
bojicas has quit [Ping timeout: 252 seconds]
outoftime has quit [Ping timeout: 244 seconds]
sonicpond_afk is now known as sonicpond
kaiwren has quit [Quit: kaiwren]
<cout>
Swimming_Bird: sounds brittle
<Swimming_Bird>
I'm working up a gist right now for my intened behavior
<Swimming_Bird>
I tried class_variable_set in the included hook but it didn't work.
vesan has quit [Read error: Connection reset by peer]
robbyoconnor has joined #ruby-lang
outoftime has joined #ruby-lang
fserb has joined #ruby-lang
frem has joined #ruby-lang
sora_h is now known as s0ra_h
<tcopp>
How about dynamically defining the method when it's included, to return the appropriate value?
kitallis has quit [Ping timeout: 252 seconds]
<tcopp>
That way you'd have different definitions of the same signature on each Class that has the mixin.
vesan has joined #ruby-lang
erikh_ has left #ruby-lang [#ruby-lang]
erikh has joined #ruby-lang
kitallis has joined #ruby-lang
<Swimming_Bird>
yah, it's seeming like that's what i've gotta do. Any of the methods in the mixin look for class variables in the mixin itself which would then be shared amongts all including classes
zmack has quit [Remote host closed the connection]
krainboltgreene has joined #ruby-lang
tallship has joined #ruby-lang
zmack has joined #ruby-lang
Cykey has joined #ruby-lang
tRAS has quit [Quit: Mother, did it need to be so high?]
krainboltgreene has quit [Quit: krainboltgreene]
jcoby has joined #ruby-lang
jcoby has left #ruby-lang [#ruby-lang]
<carloslopes>
cout: did you try use t.kill?
<cout>
carloslopes: the thread is dying, because the whole parent process dies
<cout>
it's the child process that isn't dying
<cout>
(actually I think it maybe a grandchild process that isn't dying, which is why it can become an orphan)
rushed has quit [Quit: rushed]
<cout>
if the child tries to do I/O, it does die, because the pipe is closed, but sleep doesn't do any I/O
tomb_ has joined #ruby-lang
<cout>
what's bothering me is that I know I've run into this years ago, and I can't remember how I addressed it :(
<carloslopes>
cout: hmm it's very weird, because if you send kill to it, it should die and stop the execution
achamian has quit [Remote host closed the connection]
<carloslopes>
cout: maybe, it is not dying because the type of the sleep method (i don't know, only an idea)
<cout>
I can't kill the child process, because I don't know its pid
<carloslopes>
cout: i think it doesn't have the same pid, it's the same
sockmonk has joined #ruby-lang
<carloslopes>
doesn't have different pids*
<cout>
what's the same?
<carloslopes>
the pids, of the thread and the parent
<cout>
all process have a unique pid (process id)
<carloslopes>
i know
<carloslopes>
but, if you use fork, you can see the process id using Process.pid
<cout>
fwiw, I get the same problem if I use system("sleep 100000 &") instead of using a thread
<carloslopes>
and, if you use Process.pid inside a Thread, it return the same pid that the main thread has
<carloslopes>
cout: yes, i don't see anything wrong with system('sleep 100000'), because it will wait the system finish the execution of the command and after this it will finish the execution of your script and exit it
francisfish has joined #ruby-lang
gregf has quit [Quit: WeeChat 0.3.7]
<cout>
IO.popen apparently gives me a pid that I can kill
tomb_ has quit [Quit: Computer has gone to sleep.]
<cout>
not ideal but it works
<carloslopes>
cout: hmm yeah.. can't you use fork?
<cout>
(not ideal b/c if the parent segfaults or uses exit!, then the child still doesn't die)
<carloslopes>
fork gives tou the pid too
<cout>
fork is more work and it still doesn't solve the problem
<cout>
(I tried it)
<carloslopes>
cout: hmm understood :)
<cout>
for what I'm doing IO.popen is a 98% solution
ridders24 has joined #ruby-lang
Hakon|mbp has joined #ruby-lang
workmad3 has joined #ruby-lang
Criztian has joined #ruby-lang
cdt has joined #ruby-lang
<carloslopes>
cout: nice... isn't 100% but 98% is not too bad ;)
<Tasser>
carloslopes, welcome to the real world
<carloslopes>
Tasser: ;)
Cykey has quit [Quit: Computer has gone to sleep.]