purr changed the topic of #elliottcable to: you
<devyn> lol whitequark
<purr> lol
<devyn> sorry, can't really do much until the weekend
yorick has quit [Remote host closed the connection]
<whitequark> devyn: oh, hm
<whitequark> but today is saturday?
<whitequark> oh, timezones
fwg has quit [Ping timeout: 246 seconds]
alextgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<devyn> hahaha
<devyn> whitequark: Saturday is 2h30m away for me
<devyn> and that doesn't really count
<devyn> :p
<whitequark> doesn't count as in?
<whitequark> as weekend?
<devyn> as in... I'd like to sleep first
<whitequark> ah, sure
<devyn> I'm dead tired but I've got more work to do
<devyn> :/
<whitequark> I'm writing a JSON timeline for storing big amounts of data indexed by monotonic keys
<devyn> for storing the trade history?
<whitequark> the idea is, you can capture whatever data you need, and then both test your algorithms on captured data or feed them live data
<whitequark> that too
<whitequark> it's just plain JSON, for interoperability, one object per line, plus a separate mmapped binary index
<devyn> really would be nice if the API had a ?since=tradeid option or something
<whitequark> btc-e api?
<devyn> yes
<whitequark> meh doesn't matter, I can just hammer it and filter the data
<devyn> yeah
<whitequark> cloudflare doesn't seem to object up to ~50req/s at least
<whitequark> mtgox has a websocket endpoint for trade and orderbook changes
<devyn> well, I might as well check out what you've done quickly
<whitequark> I've also added documentation generator and documented all my code
<whitequark> $ make doc
<whitequark> devyn: does it make sense to capture market depth data as well? is it used by algorithms?
<devyn> I don't know how much that really helps for bitcoin and altcoin
<whitequark> mhmm
<whitequark> ok, then not yet
<devyn> yeah we can do that later and see whether it helps
<whitequark> after the timeline I'll probably write a graph widget integrated with the rest of the bot
<devyn> FYI I'd like to be able to have a simulation mode for testing
<whitequark> yes, simulation is absolutely planned
<whitequark> as I've said
<devyn> you did?
<devyn> heh
<whitequark> all algorithms will just receive streams of timestamped data
<whitequark> they have no clue whether it's actual or archived or even generated
<devyn> mm
<devyn> litecoin is really impressive btw
<whitequark> I'm not sure how one could even try to write such a bot without simulation mode
<whitequark> may as well just go and burn money
<devyn> it's still high up
<devyn> haha
<whitequark> well
<devyn> yeah
<whitequark> and wonder
<devyn> this site is more useful imo
<whitequark> mhm
<devyn> that summary view
<devyn> is useful
<devyn> maybe I should have dipped into primecoin a bit
<devyn> up 55.9441% in the last 12 hours
<devyn> lol
<purr> lol
<devyn> oh
<devyn> not primecoin
<devyn> peercoin
<whitequark> btc-e added ppc/usd pair
<whitequark> about 12 hours ago lol
<whitequark> 9:30 rather
<devyn> ah that would probably explain it
<whitequark> yeah
<whitequark> I'm skeptical about other altcoins
<whitequark> even with litecoin you cannot really use it yet (but probably soon you could)
<whitequark> others are even more pure speculation at this moment
<devyn> not to mention most of the others don't really have anything neat about them
<whitequark> yeah it's amazing how much pointless coins there are
<whitequark> there are a few neat ideas but even with those, it's far from clear
<whitequark> PoS is interesting
<devyn> hell, feathercoin, which the trollbox is crazy about, is just some internal use coin for this online shopping website
<whitequark> oh?
<joelteon> haha
<joelteon> litecoin, feathercoin, bantamcoin, heliumcoin
<whitequark> which online shopping website?
<whitequark> LOL
<purr> LOL
<devyn> basically classifieds with their own cryptocoin
<devyn> lol
<devyn> also because the feathercoin jumped so much
<devyn> those listings are way
<devyn> way
<devyn> out
<devyn> lol
<devyn> mens socks for $84.36 haha
<devyn> a 7950 for $9,278.68
<devyn> haha
<devyn> OH MY GOD THIS HAHAHAHAHA
<whitequark> lol
<devyn> okay so it's more like ebay
<devyn> with its own cryptocoin
<whitequark> fifth largest cryptocurrency, sigh
<devyn> basically if it's on BTC-e it's going to be traded
<devyn> ridiculously
<whitequark> yeah I was surprised to learn that btc-e is the largest exchange by volume
<devyn> people aren't trusting mt. gox as much, and then BTC-e has way more options due to the sheer number of altcoins it has
<devyn> honestly we should probably look at trading more than just one currency pair at a time
<devyn> monitor everything >:D
<whitequark> of course
<devyn> oh except the ruble ones because those have higher fees
<whitequark> why not more than one exchange? I'm designing everything to be modular :3
<devyn> <3 FP
<purr> Let it be known that devyn hearts FP.
<whitequark> btw only ever compile this on 64-bit systems
<whitequark> I'm not checking for int overflow
<whitequark> and generally abusing mmap
<joelteon> i did that once
<joelteon> was wondering why my threadDelay calls kept taking 0 ms
<whitequark> devyn: ok so I'm thinking
<whitequark> worth it writing my own graph widget?
<whitequark> so you could overlay algorithm data over it
<whitequark> or actually view whatever the bot is observing instead of some website
<devyn> could be useful, yeah, if it showed when and why the bot was making decisions, too
<devyn> I'd be happy to help with the browser-side stuff
<devyn> make it look really neat
<devyn> :)
<whitequark> browser-side? to hell with the browser
<whitequark> I'll just do it in native widgets
<devyn> and what happens when I want to run it on a headless server
<whitequark> the control part is independent from bot part, of course
<whitequark> that's trivial to add: it just streams events
<devyn> it would be easier to just do it with a web browser and an HTTP server serving some static resources that read an event stream
<whitequark> you'd need to read an event stream anyway ;)
<whitequark> yeah I know, irclogger uses that
<whitequark> I mean, it's about same complexity on the network level
<whitequark> but drawing pretty graphs in browser is a giant fuck-you
<devyn> yeah, but you can open a web browser anywhere
<devyn> on anyone's system
<whitequark> or you could use canvas and then it's exactly equivalent to
<whitequark> mmmh
<devyn> use <canvas>
<devyn> the only reason it's ever a giant fuck you is because people want IE compatibility
<devyn> we don't care about that
<whitequark> ok makes sense
<devyn> is novacoin seriously third largest now?
<whitequark> seems so
niggler has joined #elliottcable
<cuttle> devyn: which two painkillers are used more often
<devyn> cuttle: alcohol and fists
<whitequark> ok rewrote timeline and store with functors
<devyn> whitequark: looks like BTC-e is releasing a websocket API soon
<whitequark> devyn: oh cool
<whitequark> I can use that too :3
<devyn> lol there are people spamming this quarkcoin shit
<purr> lol
<whitequark> quarkcoin!
<whitequark> lol
<devyn> "it's so fast you can actually use it in a shop setting"
<devyn> "it's gonna skyrocket!"
<devyn> lol
<devyn> lol apparently it halves reward every three weeks
<devyn> definitely a scamcoin
<devyn> hahahaha
<whitequark> btc-e drinking game: drink every time someone says "X to the moon"
<devyn> you'll die
<whitequark> drink twice if at the same time someone else says "X is going to crash"
<whitequark> yes
<whitequark> that is the whole point
<whitequark> it's a metaphor for the perils of speculation.
<devyn> I bought some FTC because all of this trolling is bound to lead to /something/
<whitequark> congrats, trollbox just outsmarted you :p
<devyn> I'm betting that they're going to outsmart other people too
<devyn> :p
<devyn> it is rising
<devyn> and I needed somewhere to go, since BTC and LTC are both falling
<devyn> right, I have work to get done.
<whitequark> so you're a master of batman gambit :p
<devyn> :p
<trolling> I'm bound to lead to what?
<devyn> a change
<whitequark> devyn: lol @ this: https://btc-e.com/news/185
<purr> lol
<devyn> "FTC/BTC pair will not be delisted"
<devyn> did the trollbox make them do that?
<devyn> lol
<devyn> hahahaha
<devyn> whitequark: jesus that was actually a good decision
<whitequark> was it?
<devyn> yeah people are totally jumping on the FTC train
<devyn> "Parcifal: QUARK was featured on CNN yesterday: http://www.youtube.com/watch?v=qtFBRJFN3p8"
<devyn> hahahahahahaha
<devyn> click the link
<whitequark> rickroll?
<whitequark> lol almost
<purr> lol
<devyn> kind of
<devyn> lechango: Guys, I've literally smoked over $500,000 in weed. Do you know how that feels?
eligrey has quit [Quit: Leaving]
<cuttle> devyn: whe
<cuttle> devyn: since that's *literally* not possible in a lifetime, what joke are you making?
<cuttle> well, probably not literally...
<cuttle> whitequark: which kind of functors?
<devyn> cuttle: not me, someone on BTC-e trollbox
<devyn> :p
<whitequark> cuttle: (weed) he bought weed in btc. exchange rate changed since.
<whitequark> (functors) um, apparently the category theoretical ones
<whitequark> though I've no idea how they are really related
<whitequark> it's just ocaml's first class module system
<cuttle> devyn, whitequark: oh, btc exchange rate jokes :p
<cuttle> weed is really fucking cheap though
<cuttle> whitequark: ah ok
<devyn> well it's not exactly hard to get
<cuttle> whitequark: reflected in a different way than haskell's but yeah
<cuttle> devyn: well it's harder to get than alcohol but arguably cheaper
<cuttle> same re cigs
<devyn> lol honestly, if you're under 19 it's easier to get here than alcohol
<purr> lol
<devyn> a lot easier
<cuttle> alcohol: know someone over 19 who will buy it for you
<cuttle> weed: find someone who knows someone
<cuttle> equally easy or harder for weed i'd say
<devyn> you don't have to find someone who knows someone
<devyn> there's no
<devyn> "searching" part
<devyn> it's like
<devyn> probably 1/3 of everyone you know here
<devyn> lol
<devyn> probably more, actually
<cuttle> idk, i don't live where you do
<devyn> well I do cuttle
<whitequark> lol
<cuttle> but if i ask my friend to have his over-21 friend buy alcohol
<cuttle> or ask my friend to buy some weed
<cuttle> there's equal amounts of waiting and depending on other people
<cuttle> and i definitely know as many older siblings who will buy alcohol as i do people who have weed hookups
<cuttle> :p
<devyn> haha
<cuttle> but maybe they're just total stoners up in canada
<devyn> well personally, alcohol is easy to get /for me/
<cuttle> :p
<devyn> because my parents will just give it to me
<devyn> lol
<purr> lol
<cuttle> haha yeah
<whitequark> wait devyn
<whitequark> you're not over 21
<cuttle> devyn: have you smoked?
<whitequark> huh?!
<devyn> haha whitequark
<devyn> cuttle: no
<devyn> I don't feel like I could enjoy weed as much as a good drink
<devyn> but
<devyn> maybe
<cuttle> idk, having tried both, I feel the opposite
<cuttle> but I mean they're better for different things obviously
<cuttle> weed is better for small groups of closer friends, more low key things
<cuttle> alcohol livens up situations
<devyn> honestly I just like how alcohol tastes; I don't care about its effects
<whitequark> that's... pretty much the opposite of every person I asked ever
<whitequark> (some use it for physiological effects, some for the social ones... I had yet to meet someone who liked the taste)
<devyn> lol I like how it seems to dissolve in the air in your mouth if you breathe
<purr> lol
<devyn> kinda tingly
<whitequark> wat?
<cuttle> really? the taste is the worst thing about alcohol
<devyn> lol
<cuttle> that's why people have drinking games and shots and shit
<cuttle> because it's fucking gross
<devyn> haha
<devyn> well then why do people drink scotch
<devyn> which tastes good
<devyn> and is mostly alcohol
<whitequark> >Alcohol by volume 40–94.8%
<whitequark> 94.8% O_O
<cuttle> i haven't had scotch
<cuttle> maybe it's good
<cuttle> :p
<devyn> lol
<purr> lol
<devyn> maybe, he says :p
<whitequark> devyn: ok take a look at Timeline
<whitequark> I'm fucking proud of it
<whitequark> make test; ./timeline.d.byte
<whitequark> args: no args -- append some data
<whitequark> 1 arg -- show data with provided id
<whitequark> 2 args -- show a stream of data with ids from arg1 to arg2
<whitequark> look at tmp.json and tmp.json-index
<whitequark> relevant sources are storage/{timeline,binary_index.ml}*
<devyn> ./test_timeline.d.byte 1 2
<devyn> does not appear to do that
<devyn> oh I see it's exclusive
<devyn> but
<devyn> then
<devyn> if you do 1 3
<devyn> it raises Not_found
<whitequark> yeah there's no data with id 3
<whitequark> it's deliberately generated sparse
<devyn> yeah I know
<whitequark> try 1 4
<devyn> kind of silly to select 1 4 to get 1 and 2
<devyn> probably should be an inclusive range
<whitequark> no, then comparing iterators gets funky
<devyn> whitequark: anyway, yeah, I'm 17
<whitequark> holy crap.
<whitequark> I thought you were like five years older than me
<devyn> haha
<whitequark> which would be
<whitequark> almost 26
<devyn> ELLIOTTCABLE likes the young boys
<whitequark> hnggg
<whitequark> devyn: if there's no iterator state "one past the end of collection", you need a bunch of silly logic every time you try to iterate one
<whitequark> plus you lose the ability to have an empty stream
<whitequark> which may be important
<devyn> but this way your end index always has to be a valid index
<devyn> also:
<devyn> 0000000: 0400 0000 0000 0000 6700 0000 0000 0000 ........g.......
<devyn> 0000030: 0400 0000 0000 0000 3100 0000 0000 0000 ........1.......
<devyn> if this is structured how I think it is
<devyn> that seems to not make sense
<whitequark> first two fields are special
<whitequark> look in binary_index.ml, there's a handy ascii artsy description
<whitequark> (* Memory layout. Unit is int. | n | fsize | 0.key | 0.pos | 1.key | 1.pos | ... | n.key | n.pos | *)
<whitequark> fsize -- size of the data file
<devyn> whitequark: I guess it's not a big deal since it's possible to leave finish undefined
<whitequark> devyn: yeah, it defaults to end of file
<cuttle> c# has great iterators
<cuttle> well i guess as far as iterators go they aren't that great
<cuttle> but
<cuttle> they are there, and in unity
<cuttle> so how about that
<cuttle> so how about that 9:09:50 <+whitequark> wait devyn
<cuttle> 9:09:53 <+whitequark> you're not over 21
<cuttle> 9:10:02 <+whitequark> huh?!
<cuttle> haha
<devyn> does whitequark know how old you are
<cuttle> whitequark: do you?
<whitequark> 18 or 19 or something
<whitequark> is it
<cuttle> yeah, 18
<devyn> average age at the moment is somewhere around 20 I think
<cuttle> oh my god arrested development is incredible
<devyn> whitequark: alright, o/ on timeline.ml
<devyn> looks good
<whitequark> okayyyyy so
<whitequark> I'll make an order gatherer for btc-e
<whitequark> ... aaaand all my nice structure just crumbles
yorick has joined #elliottcable
<whitequark> argh, this is such a gigantic pain in the ass
<whitequark> fucking functors
<whitequark> fucking static typing
<whitequark> fuck.
<whitequark> ok I've solved it
<whitequark> and also solved the problem of leaked source code
<whitequark> no one is going to understand the fuck of it anyway
<whitequark> it's clever, like
<whitequark> like C++ templates are clever
<whitequark> but this is cleverer
fwg has joined #elliottcable
<whitequark> no I've not
<whitequark> AAAAAAAAAAAAAAAAAA
* whitequark throws his pc at the wall
<whitequark> ok I officially give up
<whitequark> on that type system shit
Sgeo has joined #elliottcable
Sgeo_ has quit [Ping timeout: 260 seconds]
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
alextgordon has joined #elliottcable
<whitequark> devyn: make && LWT_LOG='Btc_e -> debug' ./trader.d.byte
<whitequark> wow, 6% cpu and 10MB RAM for a massively concurrent data collector written in a high-level language
<whitequark> it hammers 18 pairs as half as fast as it can, i.e. it schedules next collection after it finishes current one
fwg has quit [Ping timeout: 264 seconds]
<alextgordon> where IS everybody
<alextgordon> internet is properly dead today
fwg has joined #elliottcable
<joelteon> i'm here today
<joelteon> my warby parker home try on kit is here
<whitequark> race condition :/
<joelteon> damn
<whitequark> hm so after a connection breaks, every request is off by one
<whitequark> fencepooooost
<joelteon> fence post
<whitequark> yay, nailed it
fwg has quit [Ping timeout: 240 seconds]
Sgeo_ has joined #elliottcable
Sgeo has quit [Ping timeout: 246 seconds]
fwg has joined #elliottcable
eligrey has joined #elliottcable
fwg has quit [Ping timeout: 265 seconds]
fwg has joined #elliottcable
<yorickpeterse> lol
<purr> lol
sammcd_ is now known as sammcd
<ELLIOTTCABLE> fuckin' fuck, I'm a bad programmer.
<alextgordon> hi ELLIOTTCABLE
<ELLIOTTCABLE> hello, alex