--- Log opened Thu Jan 24 00:00:39 2013
00:02 <@kanzure> what was supposed to be included in his $500 million plan?
00:02 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
00:03 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
00:05 < u-metacognition> Sounds like the probability of being in a sim just got higher
00:05 <@kanzure> uh
00:06 <@kanzure> because they chose his project, you are updating your priors for whether or not you are simulated?
00:07 < u-metacognition> A bit at least
00:07 < u-metacognition> If they'll fund a large scale project to emulate a brain I think that raises the odds
00:09 < u-metacognition> The world could have been such that people would at least passively resist the idea
00:09 < u-metacognition> not actively support it
00:21 -!- lichen [~lichen@c-24-21-206-64.hsd1.or.comcast.net] has quit [Quit: later]
00:23 <@kanzure> huh? none of that should have any baring on your computations for that. i think you're being unreasonable.
00:24 -!- lichen [~lichen@c-24-21-206-64.hsd1.or.comcast.net] has joined ##hplusroadmap
00:25 < u-metacognition> One of the main defeaters of the simulation argument is that we won't develop the ability or inclination
00:25 <@kanzure> the simulation argument is primarily concerning whether or not you are presently simulated
00:26 < u-metacognition> Sure
00:28 < u-metacognition> Shouldn't developing the ability raise the chances in any case
00:29 < Viper168> lol, didn't we discuss this in the other channel last night
00:30 < u-metacognition> We could have been in a world where things just simply didn't get that for or couldn't be made for whatever reason
00:30 <@kanzure> u-metacognition: no. it would increase the likelihood that it is possible in the first place, but not whether or not your universe happens to be simulated.
00:31 < u-metacognition> Why?
00:33 <@kanzure> insert various pascal wager arguments here
00:34 <@kanzure> pascalean-wagerian
00:37 <@kanzure> actually, that's not a good answer.
00:41 < sylph_mako> I agree. If this tells us anything it's that the gods of the simulation are more likely to be human. That situation is not a teapot. We could reason about that productively. Unlike most possible scenarios.
00:41 <@kanzure> it tells you nothing though
00:41 < sylph_mako> Yep.
00:47 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has quit [Remote host closed the connection]
00:47 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
00:47 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has joined ##hplusroadmap
00:56 -!- chrisian is now known as strangewarp
01:03 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has quit [Remote host closed the connection]
01:03 < eleitl> good morning
01:03 < eleitl> if it's a probability argument, it doesn't work
01:03 < u-metacognition> Morning
01:04 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has joined ##hplusroadmap
01:04 < eleitl> as kanzure says, it only says that it's at all possible, not how it is probable
01:04 < eleitl> it is some information, but only qualitative
01:04 < eleitl> the reason is statistics fail on side of Bostrom
01:05 < u-metacognition> So you're saying the probability should not go up at all before you know it's possible to after you know it's possible?
01:06 < u-metacognition> That doesn't seem right to me
01:06 < eleitl> it does go up, from unknown
01:06 < u-metacognition> That's what I'm saying
01:06 < eleitl> definitely observer-moments don't tell you a thing
01:07 < eleitl> whether it's 10^0 or 10^100, you still self-observe
01:07 < eleitl> can't tell between these two branches
01:07 < u-metacognition> yea
01:07 < eleitl> we're in agreement, then
01:07 < u-metacognition> I think so
01:07 < phm> If you knew you were in a sim; would you behave any different to the way you do now?
01:07 < eleitl> Probably.
01:08 < u-metacognition> If I knew for sure?
01:08 < u-metacognition> Definitely
01:08 < phm> how?
01:08 < eleitl> Unless the sim is a process.
01:08 < u-metacognition> Wait I amend that
01:08 < eleitl> Like Tegmark-stuff.
01:08 < u-metacognition> only if I knew whether other agents were real or not
01:08 <@kanzure> huh? being in a simulation doesnt change realness.
01:08 <@kanzure> you guys are crazy
01:08 < eleitl> If there's a simulator that is a person, there is intent.
01:09 < u-metacognition> You could be the only one in a simulation
01:09 < eleitl> If this is Tegmark, there is no intent, hence no incentive to behave otherwise.
01:09 < u-metacognition> like a lucid dream or it could be multi-agent
01:09 < phm> How would it change your behaviour?
01:09 < eleitl> Look, I ran plenty of random CA sims as a kid.
01:10 <@kanzure> is golly still around?
01:10 <@kanzure> http://golly.sf.net/
01:10 < eleitl> Probably, it even did Hashlife.
01:10 < eleitl> If this is the equivalent of a large scale experiment, there's no reason to behave any different, other than flipping the idiot kid the bird.
01:10 < eleitl> Not that he notices.
01:11 <@kanzure> i have a friend obsessed with a certain CA rule he's been investigating for years
01:11 <@kanzure> http://transforum.net/m.cgi?num=2926
01:11 <@kanzure> http://www.thewildca.com/images/Whoa_130000.gif
01:11 < eleitl> I'm only interested in designing CA rules for optimal computation in hexagonal closest or cubic closest, or cubic primitive cell packing.
01:12 < eleitl> I've seen very similiar to identical behavior when I did run my CA sims.
01:12 < eleitl> Some of these are amazing.
01:12 < eleitl> different speeds of gliders, organic shapes
01:12 < strangewarp> damn that's a pretty CA...
01:12 < eleitl> all in 1d
01:13 < phm> Does anyone here work on proof checkers or meta-mathematics stuff?
01:13 <@kanzure> no, go away
01:13 < brownies> meta-mathematics? i think we just call that "mathematics"
01:13 < phm> no. They are very different
01:14 < eleitl> http://www.nature.com/news/billion-euro-brain-simulation-and-graphene-projects-win-european-funds-1.12291 <-- Henry got his wish
01:14 <@kanzure> eleitl: you're getting slow!
01:14 < eleitl> now he damn better delivers
01:14 <@kanzure> i've been trying to find his proposal though
01:14 <@kanzure> what exactly is he going to be spending $500 million on?
01:14 < eleitl> I'm not slow, I post everything I see. I just don't have time to look actively, because I'm busy, for a change.
01:15 <@kanzure> strangewarp: http://www.thewildca.com/
01:18 <@kanzure> ah maybe this isi t
01:18 <@kanzure> http://www.unicog.org/publications/Human%20Brain%20Project%20for%20FET11%20v2.pdf
01:18 < eleitl> Markram and Allen Institute should team up
01:19 <@kanzure> yeah
01:19 <@kanzure> "The project will build on the work of European projects such as SenseMaker [7], FACETS [8],
01:19 <@kanzure> BrainScales [9] and SpiNNaker [10] that have already built “neuromorphic chips”. Meanwhile, HBP
01:19 <@kanzure> theoretical neuroscientists will analyze brain models and simulations to reveal fundamental principles of
01:19 <@kanzure> neural computation."
01:19 <@kanzure> well i guess that's somewhat specific.
01:20 < eleitl> at least that field is not dead, let's be thankful for that
01:20 <@kanzure> surely there's an actual document somewhere that explains what exactly the money would go towards
01:20 <@kanzure> last i checked, he had a legion of 100 postdocs
01:20 -!- Viper168_ [~Viper@unaffiliated/viper168] has joined ##hplusroadmap
01:21 <@kanzure> so.. now he will have 1,000 postdocs?
01:21 <@kanzure> or just dump it into hardware?
01:21 < eleitl> a lot of it will be hardware
01:21 < eleitl> the next gen Blue Brain is already earmarked
01:21 <@kanzure> sure.. ibm sorta dissociated themselves from him though.
01:22 < eleitl> a lot of neuroscience people are jealous
01:22 <@kanzure> well they should be
01:22 < archels> "principles of neural computation" specific?
01:23 < archels> hard to be more vague
01:23 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
01:24 < eleitl> I wish people would actually try to use GA to optimize biologicially inspired networks
01:24 -!- Viper168 [~Viper@unaffiliated/viper168] has quit [Ping timeout: 276 seconds]
01:24 <@kanzure> also, he possesses a fascinating hypnotic power http://www.youtube.com/watch?v=9gFI7o69VJM#t=600
01:24 < eleitl> just pick 10 or 100 k cell types seeded with real biology data, and look for ways to create morphogenetic programs to wire them up
01:24 < eleitl> no need to fake cell migration though
01:25 < eleitl> of course it would probably make Markram's budget like small beer
01:25 < eleitl> look lie
01:25 < eleitl> like, dammit
01:26 <@kanzure> i also appreciated his non-simulation-related work,
01:26 <@kanzure> http://diyhpl.us/~bryan/papers2/neuro/Intense%20world%20syndrome%20-%20an%20alternative%20hypothesis%20for%20autism%20-%20Markram.pdf
01:27 < archels> eleitl: yes, it's the convolution of NN + GA + biological constrains that is still exceptionally rare
01:27 <@kanzure> eleitl: archels has some supercomputing resources that we might be able to bum off of him
01:27 <@kanzure> *cough*
01:27 < eleitl> how large the resources, archels?
01:27 < archels> haha, incidentally I'm just getting those upgraded to Ubuntu 12.04
01:28 < archels> but mostly kanzure is making this up. they're just some fast boxes at my university
01:28 <@kanzure> yeah :/
01:28 < eleitl> a cluster?
01:28 < eleitl> with GPGPU?
01:28 < archels> kanzure: http://www.humanbrainproject.eu/files/HBP_flagship.pdf
01:28 < archels> no, general purpose CPUs
01:29 < eleitl> a cluster? how many nodes?
01:29 <@kanzure> wasn't it like 192 TB of RAM?
01:29 < eleitl> a single box with a lot of RAM is quite useless
01:29 < archels> actually my prof is involved in the Human Brain Project, so we could probably arrange CPU time on some pretty fancy systems
01:29 < archels> brb, shower
01:30 < eleitl> you can do nice bioinformatics things, as most bioinformatics code is not parallel
01:30 < eleitl> the problem with fancy systems is that they're booked to the gills
01:30 < eleitl> you can easily run a year job on your own cluster, but no can do on a national facility
01:38 <@kanzure> archels: yes that's what i was looking for, thanks
01:42 <@kanzure> pfft 7148 person-years
01:44 -!- Proteus1 [~Proteus@71-34-198-154.omah.qwest.net] has joined ##hplusroadmap
01:44 < eleitl> kanzure: ?
01:45 <@kanzure> just reading the document archels linked
01:45 <@kanzure> http://www.humanbrainproject.eu/files/HBP_flagship.pdf
01:46 < eleitl> so about 100 people/10 years?
01:47 < eleitl> or rather closer to 1000
01:47 -!- Proteus [~Proteus@unaffiliated/proteus] has quit [Ping timeout: 264 seconds]
01:47 < eleitl> if these are the right people...
01:48 < eleitl> at least they're focusing on the right goal: energy
01:49  * kanzure sleeps
01:49 < eleitl> good night
01:49  * eleitl goes to a meeting
02:29 -!- phm [~anon@host-78-150-147-154.as13285.net] has quit [Ping timeout: 248 seconds]
02:37 -!- chris_99 [~chris_99@unaffiliated/chris-99/x-3062929] has joined ##hplusroadmap
02:41 -!- ThomasEgi [~thomas@gw-ko-kostr2.inka-online.net] has joined ##hplusroadmap
02:41 -!- ThomasEgi [~thomas@gw-ko-kostr2.inka-online.net] has quit [Changing host]
02:41 -!- ThomasEgi [~thomas@panda3d/ThomasEgi] has joined ##hplusroadmap
02:41 -!- u-metacognition [~metacogni@99-7-58-96.lightspeed.davlca.sbcglobal.net] has left ##hplusroadmap []
02:47 < archels> Do I want to do a PhD in Memphis?
02:47 < archels> "Obtaining a Ph.D. typically requires 4-5 years."
02:47 < brownies> do you want to do a Ph.D. there? do you want to do a Ph.D. there? do you want to do a Ph.D. anywhere?
02:47 < brownies> better budget 6 years, to be safe.
02:48 < archels> heh, heh
02:49 < archels> No, I just meant specifically, Memphis, USA?
02:49 < archels> bible belt?
02:50 < brownies> hm, tennessee right? but it's a large city... might not be that bad.
02:51 < archels> mmm
02:54 < brownies> which program?
03:00 < archels> Computational Intelligence Laboratory
03:00 < archels> looks like their main current focus is hierarchical neural networks
03:08 -!- sylph_mako [~mako@103-9-42-1.flip.co.nz] has quit [Ping timeout: 248 seconds]
03:08 < eleitl> how old are you, archels?
03:08 < eleitl> spending 5-6 years on a PhD would depend whether you can afford it
03:11 < archels> it's fully funded. I'm 26
03:14 < archels> I'm not really considering anything that would require a hefty loan.
03:18 < eleitl> oh, that would be a given. 26 is pretty young.
03:18 < eleitl> What do you want to do with the rest of your life?
03:19 < archels> hah, that's what I'm asking myself
03:19 < archels> I love to be part of academia, but I want to have some fruits of my work other than a few obscure, essentially useless papers
03:20 < eleitl> my opinion that the funding situation in the academia will become a lot worse
03:20 < eleitl> I might we wrong, of course, but if I was you I'd operate under such assumptions
03:21 < archels> In the EU, globally?
03:21 < eleitl> globally. Things might be slightly different in Asia, but, then, they might be even worse there.
03:22 < archels> mhm. Well, the fact is, I'm in a bit of a dilemma... I have a running offer for a PhD position. Great pay, good people--but I'm not certain the subject really binds me.
03:23 < archels> s0o it's essentially job security vs. doing something that I really want to do
03:23 < eleitl> what do you want to do?
03:24 < archels> build neural networks that do useful things, e.g. control a robot, visual recognition, memory function, etc.
03:24 < eleitl> I think that could be very useful, if you can get your foot into that
03:24 < archels> this offer I mentioned has none of that, and I doubt anything of practical value is going to come out of it
03:25 < archels> aye, which is why this Memphis thing attracted my attention
03:25 < archels> https://sites.google.com/site/bonnybanerjee1/
03:27 < eleitl> you should be able to do PhD in the area
03:27 < eleitl> not sure you can survive Memphis, but you probably won't see much of it, anyway
03:28 < archels> haha, that's the spirit :)
03:28 < eleitl> that Bannerjee guy has clue, is he a name/rising name in the area?
03:31 < archels> I had never heard of him. The journals he publishes in don't really ring a bell (apart from IEEE), but then again I'm more aware of neuroscience journals than AI journals.
03:31 < archels> so, will need to do some reading up.
03:32 < eleitl> I would avoid sinking your time into an obscure group in Podunk University
03:32 < eleitl> if he's a rising name that might be worth it, though
03:32 < eleitl> unrelated: does anyone know how Kickstarter works?
03:33 < eleitl> does one need to be USian, or an USian needs to be on the team?
03:33 < archels> haha. Well, if they allow me to do cool stuff, and pay me for doing it, why not?
03:33 < archels> all this impact factor fetishism...
03:34 < eleitl> if you want to do postgraduate work, or get into a prestigious industry group, it might be worth it
03:34 < eleitl> I don't know, it's not my field, and I'm a 46 year old guy in Germany doing shitty work
03:34 < archels> referring to your dayjob?
03:34 < eleitl> yeah, they pretend to pay me, and I pretend to work
03:35 < brownies> archels: eh? so the offer in Memphis is for the field you are interested in? but you have another PhD offer elsewhere for something higher-paying but less boring?
03:36 < brownies> is that the choice?
03:36 < archels> brownies: higher-paying, higher job security, but *more* boring
03:36 < archels> that's the tradeoff
03:37 < brownies> ah right, more boring, less interesting
03:37 < brownies> what about the location issue? is the boring job in a place better or worse than Memphis?
03:37 < brownies> that Banerjee guy looks pretty smart. got his PhD, did 3 years producing IP at a startup that got sold for the IP, then got a professorship right away.
03:39 < archels> as eleitl said, so long as it's not podunk hollow...
03:40 < archels> but I'm not aware enough of Memphis culture to know whether it might still feel like that, in spite of being a large city
03:41 < eleitl> all Ph.D. students I know live in the lab
03:43 < strangewarp> I visited Memphis TN once. It's pretty cosmopolitan, but not necessarily in a progressive way, and definitely feels like a raft in the ocean.
03:48 < strangewarp> Also the city's suburbs are bait for the occasional fucking strong tornado, from what I hear.
03:49 < eleitl> the older I get, the farther out into the sticks I want to move
03:50 < eleitl> assuming you have a decent network connection, and emergency medicine coverage, fuck humanity
03:51 < strangewarp> meh, I'm just hoping regular people don't kill me in war, or for being a weirdo, and that I don't have any fatal diseases or accidents.
03:51 < eleitl> my plan is to retire to a rural place with a large garden
03:51 < eleitl> it is quite safe here, not sure if we even get much fallout
03:52 -!- eudoxia [~eudoxia@r190-134-19-19.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
03:52 < strangewarp> "fallout"
03:52 < strangewarp> what
03:52 < eudoxia> hi eleitl, archels
03:52 < eleitl> hail eudoxia
03:52 < eleitl> well, wars today where I sit would mean food fight endgame
03:52 < eleitl> these will be WoMD
03:53 < eudoxia> well s'warp he is in the middle of Germany which is a rather important target
03:53 < eleitl> who would want Germany?
03:53 < eleitl> there's nothing of use here
03:54 < eleitl> of course eudoxia is even more safe than me
03:54 < eudoxia> its ok eleitl when the resource wars happen you can stay here
03:54 < eleitl> :)
03:54 < eleitl> I've been actually thinking about visiting Montevideo, providing the flights are cheap enough
03:55 < eleitl> Paraguay or Uruguay look like the best spots in the whole of South America
03:56 < eleitl> what is your opinion of Jose Mujica, eudoxia?
03:57 < strangewarp> I've read about him. He seems to be a decent guy. He might get thrown from ofice in his next election though.
03:57 < strangewarp> *office
03:57 < strangewarp> It's nice to see a socialist who is actually a socialist for a change, and not a wannabe Stalinist.
03:58 < eudoxia> a communist terrorist who bombed civilians and triggered a twelve year dictatorship
03:58 < eudoxia> still better than the other two candidates: the son of the dictator, and a former president who embezzled money from the treasury
03:58 < eleitl> hmm
03:59 < strangewarp> Yeah, I do not like his history at all, but as a leader he seems to have done decently.
03:59 < eudoxia> he's decent
04:00 < eudoxia> not as good as our last president but at least he hasn't turned this into a People's Republic or anything
04:00  * strangewarp nods
04:00 < eudoxia> frankly what bothers me the most is his relationship with Chavez
04:01 < eudoxia> i always hear americans saying the media portrays him in a bad light, they don't: guy's a fucking lunatic
04:01 < strangewarp> Yeah, Chavez is ideological poison :/
04:01 < eudoxia> and this country shouldn't support the guy's delusions, christ he should have his blood replaced with Risperidone
04:04 < strangewarp> Hmmm. My productivity script has decided that today is orange. Got to log some worktime on that color in a while..
04:05 < eudoxia> and how does this script make that decision?
04:05 < strangewarp> md5 hash of the date, truncated to its first 6 digits and expressed as an HTML color code, basically
04:05 < eleitl> what is the intent of that?
04:06 < eudoxia> i thought it looked at your productivity in previous days and told you it's time to catch up
04:06 < eudoxia> but i guess that's cool too
04:06 < strangewarp> one of several small implicit nudges, basically.
04:06 < strangewarp> eudoxia: For that purpose, I cameup with a bit of algebra that generates a score like a baseball pitcher's ERA, for the amount of work performed in the past week and month.
04:07 < eleitl> I wonder whether it's not too late to do something about that ADHD I suppose I have
04:07 < strangewarp> I might download and learn Node.js, and rewrite the script in node/passport/jquery/bootstrap, so that other people can use it too... hmmm
04:08 < eleitl> how much synergy is there between Node.js server-side and client-side?
04:08 < strangewarp> My webhost is kind of outdated and I don't have admin panel access, so I had to write the first version in PHP 4.4. Which.. lol
04:08 < strangewarp> eleitl: I am so not in a position to even begin to be able to answer that :p
04:08 < eleitl> JavaScript is supposed to be a reasonable language.
04:08 < eudoxia> lol php
04:08 < strangewarp> yeah
04:08 < strangewarp> X)
04:09 < eleitl> Not Lisp-grade reasonable, but, on the other hand, don't look a gift horse on the dentures too hard.
04:09 < eudoxia> i  wish lisp was statically typed and had pointers
04:09 < eudoxia> there i said it
04:09 < eleitl> ;)
04:09 < eudoxia> i think c++ gave me stockholm syndrome
04:10 < strangewarp> Oh fine, I might as well link the publically viewable face of my productivity log, so everyone here can see how much I slack
04:10 < eleitl> I wish people would build really minimalistic Forth hardware
04:10 < strangewarp> http://breck.us/prod/index.php
04:10 < eleitl> If I had that, I'd be too afraid to look at it
04:11 < eleitl> it's too bad Chuck Moore only builds toys
04:11 < eudoxia> oh you improved your site
04:11 < strangewarp> Eh, it doesn't keep a concrete tally of points, so even if I slack shamefully for like a week, it would eventually fade into the past
04:11 < strangewarp> eudoxia: shhh I'm trying not to hype myself up until my music setup is finished ;)
04:11 < eleitl> http://www.greenarraychips.com/ <-- this needs to be slightly fatter, and done wafer-scale
04:12 < eleitl> I hope my Parallella kit gets shipped soon.
04:13 < eleitl> I *tnink* I can do something useful with that, but I'm not sure yet
04:13 < eleitl> 32 k is enough to encode some minimal neurons
04:15 < eleitl> everyone seen the Epiphany specs and roadmap, right?
04:16 < eudoxia> kirka was telling me about it the other day
04:17 < eudoxia> he wants to do MD with FPGAs
04:17 < eleitl> there is a very good dedicated MD machine already
04:18 < eleitl> a way to do really fast MD would be doing discrete representation in 3d voxels
04:18 < chris_99> MD?
04:18 < eleitl> a digital physics approach to MD
04:18 < eudoxia> molecular dynamics
04:18 < chris_99> aha
04:18 < eleitl> e.g. imagine ~100 pm voxels, with 8 bit coordinates for the particle, some bits for type, and for state
04:19 < eudoxia> you mean 8 bits for each axis?
04:19 < chris_99> that'd be fun to implement in VHDL
04:19 < eleitl> yeah, that would be enough resolution, if you use relative coordinates
04:19 < eleitl> all computation is local, using next-neighbor information
04:19 < eleitl> it's basically a CA, only with a rich state
04:20 < eudoxia> hm
04:20 < eleitl> you would start with a hard sphere potential, and just do collision with energy conservation
04:20 < eudoxia> or they could have no coordinates and just pointers to their neighbours in a graph
04:21 < eudoxia> actually that would occupy more space
04:21 < eleitl> then go van der Waals, add multibody, then covalents and electrostatics, and off you go
04:21 < eudoxia> 8 * 3 < (32 | 64) * 6
04:21 < eleitl> there are no pointers, we're computing at the speed of light
04:21 < eleitl> if your steps are fs or ps, and you want to reach ms scale, you better be quick
04:21 < eudoxia> certainly
04:22 < eleitl> you will probably have to do wafer stacking with TSV
04:22 < eleitl> the cells would be tiny
04:23 < eleitl> just few 100 um at best
04:23 < eleitl> or you use power of two sized voxelboxes, and slice that over a wafer surface, but there paths will be a bit long
04:24 < eleitl> even with cut-through communication the delay will be there
04:24 < eleitl> you already see it in the Epiphany, each hop adds latency
04:26 < eleitl> http://www.adapteva.com/white-papers/building-the-worlds-first-parallella-beowulf-cluster/
04:26 < eleitl> heh, they beat me to it
04:26 < chris_99> wouldn't a GPU be better to do neural nets than the Parallela
04:27 < eleitl> no, because the cores have giant memory bandwidth to the local memory
04:27 < eleitl> GPU looks great on paper, but as soon as you start doing real work on it it tarnishes a bit
04:28 < chris_99> don't they each have their own cache?
04:28 < eleitl> in principle you want to do spiking stuff with packets on the mesh
04:28 < eleitl> nope, no cache, nor need for one
04:28 < chris_99> ah
04:28 < eleitl> I'm talking about the SHARC-like cores, not the ARM ones
04:28 < eleitl> the ARM ones are just slaves
04:29 < eleitl> it's too bad their structure size is still 65 nm, or so, and they only have 16 cores.
04:29 < eleitl> 64 cores and larger embedded memory, and smaller process would make them scream quite a bit
04:29 < chris_99> mm, yeah
04:29 < chris_99> how much are they too?
04:29 < chris_99> as you could always buy a load maybe
04:29 < eleitl> even so, I consider these a test
04:29 < eleitl> 99 USD/board
04:30 < chris_99> aha not terribly cheap then
04:30 < eleitl> I think the 64 core will be maybe 150 USD
04:30 < eleitl> well, it's a complete computer with Ethernet and Ubuntu
04:30 < eleitl> you only need a switch
04:30 < chris_99> yeah it does sound really cool though, just too expensive to buy a tonne of them though maybe
04:31 < eleitl> I think the energy efficiency of these is 8x of the latest Blue Gene
04:31 < chris_99> so would all 16 cores show up in 'top'?
04:31 < eleitl> the boards you see are the old ones, the new ones will be credit card sized
04:32 < eleitl> not sure, these are not SMP cores, so they probably won't show up in Linux directly
04:32 < eleitl> they're like dedicated DSP cores
04:32 < chris_99> aha
04:33 < eleitl> you can use them with OpenCL
04:33 < eleitl> and MPI
04:39 < eleitl> https://s3.amazonaws.com/ksr/assets/000/176/726/b1b37020789ddc9dadadc089d42610f5_large.jpg?1348545920
04:39 < eleitl> the chip is not large
04:48 -!- eudoxia [~eudoxia@r190-134-19-19.dialup.adsl.anteldata.net.uy] has quit [Read error: Connection reset by peer]
04:58 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
04:59 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
05:03 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
05:07 < eleitl> whoops, BTC is at 18 now
05:07 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has quit [Client Quit]
05:07 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
05:08 < eleitl> not good news for the South Sea Bubble project
05:11 < eleitl> on the other hand, this finally forces me to buy some BitCoin
05:11 -!- Humean [~quassel@unaffiliated/humean] has quit [Read error: Connection reset by peer]
05:17 < barriers> buying high?
05:17 < eleitl> no, buying low
05:17 < eleitl> but of course lower would have been even better
05:17 < barriers> 18 is low for bitcoin now?
05:18 < barriers> middle of the year it was at 11
05:18 < eleitl> if you can make the news, yes
05:41 -!- joehot [~not@bas5-kingston08-2925406539.dsl.bell.ca] has quit [Ping timeout: 256 seconds]
05:41 -!- joehot [~not@bas5-kingston08-3096530329.dsl.bell.ca] has joined ##hplusroadmap
06:03 < eleitl> paperbot: http://www.nature.com/nature/journal/v493/n7433/full/nature11721.html
06:04 < paperbot> http://diyhpl.us/~bryan/papers2/paperbot/Laser%20cooling%20of%20a%20semiconductor%20by%2040%20kelvin.pdf
06:04 < eleitl> very nice
06:07 -!- yorick [~yorick@ip51cd0513.speed.planet.nl] has joined ##hplusroadmap
06:07 -!- yorick [~yorick@ip51cd0513.speed.planet.nl] has quit [Changing host]
06:07 -!- yorick [~yorick@oftn/member/yorick] has joined ##hplusroadmap
06:28 -!- strangewarp [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has quit [Ping timeout: 244 seconds]
06:28 -!- chrisian [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has joined ##hplusroadmap
06:28 -!- chrisian is now known as strangewarp
06:52 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
06:53 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
07:24 -!- Viper168_ [~Viper@unaffiliated/viper168] has quit [Ping timeout: 264 seconds]
07:24 -!- EnLilaSko [~Nattzor@unaffiliated/enlilasko] has joined ##hplusroadmap
07:36 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has quit [Quit: lunchtime]
07:41 -!- OldCoder_ [~OldCoder_@wsip-68-105-243-2.sd.sd.cox.net] has quit [Remote host closed the connection]
08:10 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has quit [Remote host closed the connection]
08:11 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
08:16 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has joined ##hplusroadmap
08:21 <@kanzure> eleitl: there's a bit of synergy between nodejs server/client.. in particular look at browserify, https://github.com/substack/browserify
08:24 < eudoxia> good morning kanz
08:24 < eudoxia> out of curiosity, why is gnusha called that?
08:24 < eudoxia> what does it mean?
08:26 <@kanzure> it's a play on ganesha and gnu
08:26 <@kanzure> win 88
08:26 <@kanzure> oops
08:28 <@kanzure> paperbot: http://www.jneurosci.org/content/20/5/1675.long
08:28 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/%20Subunits%20Modulate%20Alternatively%20Spliced%2C%20Large%20Conductance%2C%20Calcium-Activated%20Potassium%20Channels%20of%20Avian%20Hair%20Cells.pdf
08:32 <@kanzure> paperbot: http://publications.arl.org/3450vu.pdf
08:32 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/45dfd228f596c74b90981629e8ef6766.pdf
08:32 <@kanzure> "The authors note that licenses need to allow libraries to: make new uses of the licensed content, share information with peers about licensing terms, and rest assured that licensed content will be available in the future."
08:34 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
08:35 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
08:36 <@kanzure> To an outside observer it might be surprising to see that more than a decade into electronic
08:36 <@kanzure> journal licensing, historic subscription expenditure remains by far the dominant model for
08:36 <@kanzure> determining library pricing.
08:37 <@kanzure> For most of the 375 contracts for which pricing model was
08:37 <@kanzure> reported, libraries’ prices are determined by their historic print subscriptions (now dating
08:37 <@kanzure> back to the 1990s in many cases), plus inflation increments applied annually during the
08:37 <@kanzure> intervening years. For the four largest publishers, 82% of contracts are priced in this way.
08:40 <@kanzure> "The responses included information on publishers that allow sending printed
08:40 <@kanzure> articles (58% to 79%), allow the transmission of electronic articles (39% to 73%), and allow
08:40 <@kanzure> international interlibrary loan (11% to 36%). A small number of libraries indicated that the
08:40 <@kanzure> contract was silent on ILL. The challenge for future contracts is to make sure that
08:40 <@kanzure> any licenses being signed do not abridge a library’s ability to share materials."
09:05 <@kanzure> http://www.amazon.de/Biohacking-Gentechnik-Garage-Hanno-Charisius/dp/3446435026
09:06 -!- yorick [~yorick@oftn/member/yorick] has quit [Remote host closed the connection]
09:06 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=0a917d2b Bryan Bishop: add wired.com article about the biocurious 3d printer
09:06 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=7c6e3d42 Bryan Bishop: add bbc article about sascha karberg
09:15 < eleitl> would you donate to libgen if they did accept btc?
09:16 <@kanzure> no. i'm not convinced their distribution strategy is good. nobody seeds it.
09:17 < eleitl> I think we need a local copy.
09:17 <@kanzure> yes
09:17 < eleitl> Do you think you can rustle up 10 TByte online storage?
09:18 <@kanzure> jrayhawk: do you have anything laying around?
09:19 <@kanzure> the only place i know where i can reliably get that much storage is s3, and transferring terabytes out of s3 is not cheap.
09:19 < eleitl> check pm, kanzure
09:19 < eleitl> http://www.hetzner.de/en/hosting/produkte_rootserver/xs13 but not cheap
09:20 <@kanzure> well i need about 50 TB for another project i'm doing
09:20 < eleitl> http://www.hetzner.de/en/hosting/produkte_rootserver/xs29 <-- even less cheap
09:20 <@kanzure> "Backup Space100 GB"
09:21 <@kanzure> oh i see now "7 x 3 TB SATA"
09:21 < eleitl> or 15 x 3
09:23 < eleitl> moar pm
09:40 -!- panax [panax@131.247.116.2] has quit [Read error: Connection reset by peer]
09:43 -!- panax [~panax@68.200.160.182] has joined ##hplusroadmap
09:53 -!- qu-bit_ [~shroedngr@gateway/tor-sasl/barriers] has joined ##hplusroadmap
09:55 -!- qu-bit [~shroedngr@gateway/tor-sasl/barriers] has quit [Ping timeout: 276 seconds]
09:55 < eleitl> running home, cul8r
09:57 -!- eudoxia [~eudoxia@r186-52-37-252.dialup.adsl.anteldata.net.uy] has quit [Quit: leaving]
10:37 -!- archbox_ [~archbox@unaffiliated/archbox] has quit [Quit: bye]
11:03 -!- eudoxia [~eudoxia@r186-53-129-66.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
11:06 -!- augur_ [~augur@208.58.5.87] has quit [Remote host closed the connection]
11:11 <@kanzure> https://www.google.com/search?num=100&hl=en&safe=off&tbo=d&q="4000..50000+Total"+"longest+streak"+site%3Agithub.com
11:11 <@kanzure> https://www.google.com/search?num=100&hl=en&q="100..50000+days"+"longest+streak"+site%3Agithub.com
11:28 -!- _sol_ [~Sol@c-174-57-58-11.hsd1.pa.comcast.net] has quit [Ping timeout: 248 seconds]
11:29 -!- _Sol_ [~Sol@c-174-57-58-11.hsd1.pa.comcast.net] has joined ##hplusroadmap
11:32 -!- EnLilaSko- [~Nattzor@host-85-30-145-65.sydskane.nu] has joined ##hplusroadmap
11:32 -!- EnLilaSko [~Nattzor@unaffiliated/enlilasko] has quit [Ping timeout: 255 seconds]
11:45 -!- ParahSailin [~eg@unaffiliated/parahsailin] has joined ##hplusroadmap
11:47 < ParahSailin> cool, got a copy of one of the quotes we got from a sequencer in korea-- 2.7k per HiSeq2000 lane (paired end 2x100nt)
11:48 <@kanzure> per run?
11:48 < ParahSailin> per lane on a run
11:49 < ParahSailin> that will be ~300 million PE reads, so 60 Gb sequence data expected
11:50 < ParahSailin> this is if you fedex the sequencer prepared libraries
11:51 <@kanzure> we should organize a ##hplusroadmap run at some point
11:52 < ParahSailin> what would you want to sequence?
11:52 <@kanzure> not sure yet.
11:52 <@kanzure> probably each other
11:52 <@kanzure> maybe some shit i dig up from the dirt? i'm open to ideas.
11:55 < ParahSailin> so i got confirmation from the CFO that EG is going to try to launch 23andme for pets this year
11:55 < ParahSailin> with cheaper-than-microarray allele genotyping
11:55 <@kanzure> yeah i've been curious about pedigree stuff.. surely they want genetic confirmation, or even genetic work done on their dogs prior to embryo implantation
11:56 < ParahSailin> pets, because they dont have google-wife's deep pockets to handle liabilities of doing human stuff
11:56 <@kanzure> are there even that many allele studies for various pets in the first place?
11:56 < ParahSailin> we've been working a lot with bovine genotyping
11:57 < ParahSailin> those are probably the real market
11:57 -!- augur [~augur@129-2-129-32.wireless.umd.edu] has joined ##hplusroadmap
11:57 <@kanzure> selling a bull should involve his genotype, definitely
11:58 < ParahSailin> well on a million dollar stud, people can typically afford whatever the most expensive genotyping is
11:58 < ParahSailin> but cheap allele testing would allow an entire herd to be done
11:59 <@kanzure> is that how much a stud goes for
11:59 <@kanzure> i am a terrible texan
12:00 < ParahSailin> the tube of semen goes for at least 100
12:00 < ParahSailin> and a stud has huge testicles full of it
12:00 <@kanzure> 100k?
12:01 < ParahSailin> no, pretty sure just 100
12:01 <@kanzure> well that's weird. why is it so much less than taking the animal?
12:02 < ParahSailin> http://www.championgenetics.com/bulls.htm
12:03 <@kanzure> what sort of price range will EG likely be doing? same as 23andme?
12:03 < ParahSailin> it could be as low as 5 dollars for 100 loci genotyped, maybe even 500
12:04 < ParahSailin> its fewer than microarray can do for sure...
12:05 <@kanzure> will you also be doing tests for canine owners?
12:06 <@kanzure> paperbot: http://dx.doi.org/10.1038/nature11837
12:06 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/8b85d69ac1c405d30e7486d9c49936d1.txt
12:06 <@kanzure> paperbot: http://www.nature.com/nature/journal/vaop/ncurrent/full/nature11837.html
12:06 < paperbot> http://diyhpl.us/~bryan/papers2/paperbot/The%20genomic%20signature%20of%20dog%20domestication%20reveals%20adaptation%20to%20a%20starch-rich%20diet.pdf
12:06 < ParahSailin> yeah dogs will probably be one of the direct to consumer things
12:07 -!- sheena1 [~home@d207-216-112-48.bchsia.telus.net] has joined ##hplusroadmap
12:09 <@kanzure> hmm i don't think there's a snpedia for doggy alleles yet
12:10 -!- sylph_mako [~mako@103-9-42-1.flip.co.nz] has joined ##hplusroadmap
12:36 -!- strangewarp [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has quit [Ping timeout: 276 seconds]
12:36 -!- strangewarp [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has joined ##hplusroadmap
12:38 < archels> kanzure: I see what you did there.
12:38 <@kanzure> hm?
12:38 < archels> You're a teapot.
12:39 <@kanzure> it's a stupid feature for them to impose on their users anyway
12:39 < archels> it does seem pretty useless.
12:41 < sheena1> teapots?
12:41 < ParahSailin> truseq (illumina's library prep) is 2.6k for 48 rxns
12:43 -!- phm [~anon@host-2-98-178-132.as13285.net] has joined ##hplusroadmap
12:45 < ParahSailin> if hplusroadmap were to do a hiseq (or iontorrent) run, i'd say probably outsource the library work and the sequencing
12:46 < ParahSailin> because unless you're going to be doing multiple runs of sequence, it's not worth doing a bunch of failed runs to get good technique
12:48 < ParahSailin> Axeq probably would do the library work for an additional couple hundred
12:49 < ParahSailin> I'm not sure how much UCDavis charges for a hiseq run, probably about the same
12:51 < ParahSailin> ah http://dnatech.genomecenter.ucdavis.edu/prices.html
12:55 -!- eudoxia [~eudoxia@r186-53-129-66.dialup.adsl.anteldata.net.uy] has quit [Quit: Leaving]
13:04 -!- EnLilaSko- is now known as EnLilaSko
13:04 -!- EnLilaSko [~Nattzor@host-85-30-145-65.sydskane.nu] has quit [Changing host]
13:04 -!- EnLilaSko [~Nattzor@unaffiliated/enlilasko] has joined ##hplusroadmap
13:04 <@kanzure> archels: "The next OpenWorm office hours will be happening January 30th at 17:30 GMT."
13:05 <@kanzure> i assume this will be in #openworm-office
13:06 -!- yorick [~yorick@oftn/member/yorick] has joined ##hplusroadmap
13:07 < nmz787> kanzure: so you mentioned being able to find me fundin for the synthesizer?
13:07 < nmz787> kanzure: i am a horrible student
13:07 <@kanzure> i'm still willing to buy parts for the laser cutter
13:08 <@kanzure> did they reject your application?
13:08 < nmz787> kanzure: I should have started working on that spectrometer crap last week, so I could have used it to write a lab report... which I ended up not doing because i didn't want to hand calculate the data
13:08 <@kanzure> lethargy is the primary motivator of all good programmers
13:08 < nmz787> kanzure: no, but even though school stimulates me to do shit, it usually only happens the day something is due.... so I get really stressed and then most projects end up turned in late
13:09 <@kanzure> pfft, don't talk to me about that, i dropped out because i hated that, remember?
13:09 < nmz787> yes i am a programmer because I am 'lazy'
13:09 < nmz787> though I probably would have only spent 10 minutes calculating the shit by hand
13:09 < nmz787> now I can do it in 10 seconds
13:09 <@kanzure> programming is a super power
13:10 < nmz787> i really like the idea of more learning, and PhD setting sounds like it might be nice, but if I'm such a stressed student... I wonder if PhD will be totally chill, or just as stressful as undergrad
13:11 <@kanzure> based on the people i knew in molecular biology phd programs, their lives were miserable
13:12 <@kanzure> uk phd programs tend to be stressless, i hear
13:12 < nmz787> well i don't want to do molbio
13:12 < nmz787> just chem
13:12 <@kanzure> i haven't heard too many insider reports from chemistry phd students
13:13 < nmz787> hmm
13:14 < phm> Lethargy? DId you mean laziness? Not that it matters.
13:14 -!- seba- [~hel1@cpe-90-157-233-7.static.amis.net] has joined ##hplusroadmap
13:14 < seba-> what is here
13:14 < seba-> lol
13:15 < nmz787> "Formal program requirements are few, with specific coursework tailored to each student's area of specialization. All graduate students in the Department of Chemistry complete a one-term course in seminar preparation"
13:15 -!- lolcat [~john@unaffiliated/energy-/x-7653247] has joined ##hplusroadmap
13:15 < lolcat> Hello
13:15 <@kanzure> hi lolcat
13:15 < chris_99> so in the US, you have lectures while doing a PhD?
13:16 <@kanzure> chris_99: not only that, but there is an extremely hostile working environment
13:16 <@kanzure> you know how dilbert is terribly accurate for corporate lif?
13:16 <@kanzure> *life
13:16 <@kanzure> phdcomics is terribly accurate for phd life.
13:16 < nmz787> so i guess that sounds OK... but if you think you can really get me grant funding other ways...
13:16 < seba-> wbat
13:16 < seba-> wbaa
13:16 < chris_99> heh, kanzure
13:16 < seba-> w
13:16 < seba-> oops cat
13:16 < seba-> lol
13:16 <@kanzure> nmz787: no, not grants.
13:16 < seba-> what is it about the phd, i'm not doing it, but i'm interested why you've asked
13:17 < seba-> on chemistry
13:17 <@kanzure> lolcat: are you doing a phd in chemistry?
13:17 < lolcat> No...
13:18 < lolcat> Or not yet
13:18 < nmz787> seba-: because I applied to it, but school stresses me out
13:19 < nmz787> I think it's some maladapted mental framework that I developed as a child when my first grade teacher scolded me for finishing my work faster than the other children
13:19 < chris_99> nmz787, i'm doing a PhD in the UK and found it lest stressful than a masters, but it's different here as we don't have lectures/coursework for the PhD
13:19 < nmz787> chris_99: I don't want to move though
13:19 < lolcat> chris_99: Are you in Norway?
13:19 < chris_99> no, i'm in the UK
13:20 < lolcat> oh, I know a chris doing a phd from britain in Norway
13:20 < chris_99> aha
13:22 <@kanzure> it's not the lectures that are stressful
13:23 < nmz787> yeah for me it's more just homework
13:23 < nmz787> i don't like talking/outputting when I'm not comfortable
13:23 -!- phm [~anon@host-2-98-178-132.as13285.net] has quit [Quit: Leaving]
13:23 < seba-> :>
13:24 < nmz787> and I always have so many things I'm researching on my own that outputting non-novel stuff just doesn't make it to the top of my priority list... even though I'm aware that I'm paying for school and essentially wasting money
13:26 <@kanzure> nmz787: you should definitely meet some phd students before you agree to anything
13:26 <@kanzure> most advisors have other students working for them.. go meet them.
13:34 <@kanzure> science liberation front stuff in #aaronsw
13:36 -!- eudoxia [~eudoxia@r186-53-129-66.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
13:42 -!- strangewarp [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has quit [Read error: Connection reset by peer]
13:43 -!- strangewarp [~Christian@c-67-173-247-251.hsd1.co.comcast.net] has joined ##hplusroadmap
13:44 < nmz787> well looks like i got a 1 hour/week teaching volunteer gig
13:44 < nmz787> don't need a PhD to teach 8 year olds!
13:45 <@kanzure> teach them to run gels
13:45 <@kanzure> and then put them to work
13:47 < nmz787> :)
13:47 < nmz787> yeah I don't even have a gel box
13:48 < ParahSailin> you can make one out of wood
13:52 -!- eudoxia [~eudoxia@r186-53-129-66.dialup.adsl.anteldata.net.uy] has quit [Read error: Connection reset by peer]
14:08 -!- wrldpc [~wrldpc@203.105.94.33] has quit [Quit: wrldpc]
14:10 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has quit [Remote host closed the connection]
14:28 <@kanzure> paperbot: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3057417/
14:28 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/f26f1bded767dc7960a75099f7aab271.txt
14:28 <@kanzure> paperbot: http://www.hindawi.com/journals/jna/2012/371379/
14:28 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/250b548d1a94fb02d2e62d743574b1bd.txt
14:28 <@kanzure> paperbot: http://www.biomedcentral.com/1472-6750/9/6
14:28 < paperbot> HTTP 404 http://www.biomedcentral.com/bmcbiotechnol/content/pdf/1472-6750-9-6.pdf
14:29 <@kanzure> well that was pointless
14:31 -!- yoleaux [~yoleaux@obquire.infologie.co] has quit [Remote host closed the connection]
14:33 -!- yoleaux [~yoleaux@obquire.infologie.co] has joined ##hplusroadmap
14:43 -!- EnLilaSko [~Nattzor@unaffiliated/enlilasko] has quit [Quit: - nbs-irc 2.39 - www.nbs-irc.net -]
14:50 -!- monoprotic [~monoproti@unaffiliated/monoprotic] has joined ##hplusroadmap
14:50 -!- monoprotic [~monoproti@unaffiliated/monoprotic] has left ##hplusroadmap []
14:51 < Guest40461> wtf is paperbot
14:53 <@kanzure> it fetches papers
14:53 <@kanzure> example, http://www.nature.com/nmat/journal/v11/n9/full/nmat3357.html
14:54 <@kanzure> http://www.nature.com/nmat/journal/v11/n9/full/nmat3357.html
14:54 < paperbot> http://diyhpl.us/~bryan/papers2/paperbot/Rapid%20casting%20of%20patterned%20vascular%20networks%20for%20perfusable%20engineered%20three-dimensional%20tissues.pdf
15:08 < nmz787> kanzure: have you seen anything on using private torrent trackers with unlimited bandwidth seedboxes for doing webhosting (or i.e. S3)
15:08 < nmz787> can you download torrents in javascript?
15:10 < nmz787> like if I had a bunch of images on the seedbox with respective torrents, and simply sent the client the torrents on pageLoad, then the client downloads the images via torrent, not http, to populate the webpage
15:10 < nmz787> since seedboxes are pretty cheap IF they disallow public trackers
15:13 < ParahSailin> paperbot is the avatar of aaronsw
15:16 <@kanzure> the problem with javascript or a browser for torrenting is that it would have to be rebooted frequently because browsers suck
15:16 <@kanzure> anyway, yes there are private trackers if that's what you're asking.
15:17 <@kanzure> oh you want to serve a webpage via torrents in javascript?
15:18 -!- Guest40461 is now known as jpratt2
15:18 <@kanzure> well, you would have to do it with websockets i guess, and then you would need to implement a server that would do the actual torrenting and pass the data back over websockets
15:19 <@kanzure> naturally, this kills the advantages of torrenting in the first place
15:19 -!- jpratt2 is now known as wraithansmom
15:20 <@kanzure> iirc torque works by using an extension in your browser
15:20 <@kanzure> so if you're willing to install an extension, then yes you can serve a page by torrenting
15:20 <@kanzure> http://torque.bittorrent.com/oneclick/
15:21 <@kanzure> https://github.com/bittorrenttorque/btapp
15:23 -!- wraithansmom is now known as guest43256
15:23 <@kanzure> "When calling connect for the first time, the user will be prompted to install the browser plugin. The browser plugin is responsible for making sure that the underlying torrent client is running when needed."
15:23 <@kanzure> http://btappjs.com/torrent-clients.html
15:25 -!- yorick [~yorick@oftn/member/yorick] has quit [Remote host closed the connection]
15:25 -!- damselfly9 [~damslfly@c-24-60-136-110.hsd1.nh.comcast.net] has joined ##hplusroadmap
15:25 <@kanzure> damselfly9: hello
15:26 < damselfly9> hello. I was just seeing what this channel is all about
15:26 < damselfly9> sometimes the official descriptions are meaningless
15:27 <@kanzure> the /topic is accurate
15:27 < damselfly9> so you talk about biohacking here?
15:27 <@kanzure> yes?
15:28 < damselfly9> what is biohacking?
15:28 <@kanzure> http://diyhpl.us/wiki/diybio/faq
15:29 <@kanzure> it's just regular biology
15:30 < damselfly9> ok
15:31 < damselfly9> do you have much biology background?
15:31 <@kanzure> i know my way around a lab, if that's what you're wondering
15:32 < sheena1> i just hang out for kicks :)
15:32 < damselfly9> I do have one specific question. What magnification of microscope is required for seeing a human cell nucleus in reasonable detail?
15:32 <@kanzure> for "detail" you probably want to do staining and fluorescence microscopy
15:32 < sheena1> it depends on the cell?
15:33 < damselfly9> say, for example, a buccal smear
15:34 <@kanzure> also, magniciation isn't exactly what you should be optimizing for
15:34 < sheena1> def agree on the staining, not sure what sort of detail you're looking for, squamous cells are pretty big
15:34 <@kanzure> *magnification
15:35 < damselfly9> I mean, if I were going out to purchase a microscope for the primary purpose of a buccal swab, how much magnification do I need to buy?
15:35 < sheena1> http://www.austincc.edu/histologyhelp/tissues/ta_sim_sq_e_iso.html the bottom image here is at 400x (usually your 40x lens on a microscope)
15:35 < sheena1> but those cells are also stained
15:36 <@kanzure> when buying a microscope you should focus on NA or NV
15:37 <@kanzure> oops i mean just NA
15:37 < damselfly9> that website gave me an error message when I tried to d/l the bottom umage
15:37 <@kanzure> http://micro.sci-toys.com/NA
15:38 < damselfly9> I'm pretty sure I need more than a toy. The results would need to be unquestionable and hopefully convincing
15:38 <@kanzure> sci-toys has lots of information, not just toys
15:39 <@kanzure> https://groups.google.com/forum/?fromgroups=#!topic/diybio/R-M51HlD2W8
15:39 <@kanzure> https://groups.google.com/forum/?fromgroups=#!topic/diybio/e83G-rB0WXg
15:39 <@kanzure> https://groups.google.com/forum/?fromgroups=#!topic/diybio/RmwnFQc5NHo
15:39 <@kanzure> https://groups.google.com/forum/?fromgroups=#!topic/diybio/ikdnw295XYI
15:40 <@kanzure> https://groups.google.com/forum/?fromgroups=#!msg/diybio/KVuAg40yO-c/U3J-c3tk-OMJ
15:40 < sheena1> we (vet, not human medicine stuff) had microscopes with 4, 10, 40 and 100 power. that gives you actual powers of 40, 100, 400 and 1000. The 400 is what we used most often for cells, 1000 requires immersion oil to get a decent view. the staining makes a huge difference, too.
15:40 <@kanzure> https://groups.google.com/forum/?fromgroups=#!topic/diybio/ZR5DpccpDu4
15:40 < damselfly9> Is 400x enough to image the average human cell, not just the squamous cells?
15:41 < sheena1> yeah, depending what you're looking for
15:41 < damselfly9> I was thinking of a second-hand Bausch and Lomb lab model
15:42 <@kanzure> when in doubt, buy an electron microscope http://www.ebay.com/itm/Hitachi-S-5500-scanning-electron-microscope-/170934170264
15:42 < damselfly9> I'm intending to focus on the cell nucleii
15:43 < damselfly9> Electron microscopes are out of my budget. A 70's or 80's vintage optical B+L is the best I can afford
15:44 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=eb249204 Bryan Bishop: add more microscopy links to the faq
15:46 < damselfly9> if it works out, the next purchase will a camera attachment so I can record evidence
15:47 < sheena1> http://www.cengage.com/custom/static_content/OLC/1111071020/OwensAnatomy_Lab1Microscope.swf this has a good sampling of various cells under the various standard powers of a light microscope
15:47 < sheena1> one of my instructors got decent shots by just putting her regular digicam lens up to the ocular
15:48 <@kanzure> there are lots of 3d printable parts on thingiverse for attaching cameras to microscopes like that
15:48 <@kanzure> but most of the time you just have to measure it yourself (gasp)
15:49 < chris_99> anyone seen / used these http://www.marzhauser.com/en/products/micromanipulators/manual-micromanipulators/mm33.html ?
15:49 < damselfly9> what kind of file type is .swf? My browser wouldn't open it directly
15:50 <@kanzure> flash
15:50 < damselfly9> oh
15:50 < damselfly9> one of those pkugins that always crashes my computer
15:51 <@kanzure> yeah that's the one
15:52 < damselfly9> if I purchase a binocular microscope, can I attach the camera to one eye piece while using the other for viewing?
15:52 < sheena1> sorry for the stupid flash. chrome handled it fine
15:52 < chris_99> you could but the quality probably wouldn't be great
15:52 < sheena1> thats what my instructor did, exactly
15:52 < sheena1> you're wanting video tho, not stills?
15:52 < damselfly9> stills is fine
15:53 <@kanzure> red blood cells at 100x and 400x http://www.youtube.com/watch?v=hrSu5pBxqfc
15:53 < damselfly9> I suppose the cells won't be going anywhere
15:53 <@kanzure> red blood cells 1000x http://www.youtube.com/watch?v=9va0KPrVExs (blood cells are tiiiny)
15:53 -!- augur [~augur@129-2-129-32.wireless.umd.edu] has quit [Remote host closed the connection]
15:54 < damselfly9> I was primarily interested in good shots of nucleii, rbc's don't have those
15:54 <@kanzure> human cheek cells at 40x, 100x and 400x http://www.youtube.com/watch?v=FgNbTkol6Lk
15:54 < damselfly9> hmm
15:54 <@kanzure> nmz787: how much do stains cost? i never looked.
15:55 < damselfly9> the stain I need, methylene blue, seems realtively cheap at better pet stores
15:56 <@kanzure> iirc antibody stains end up costing an arm and a leg :/
15:56 < damselfly9> I only need to do Barr body tests on a few people
15:59 < sheena1> antibody stains are different, eh?
16:00 <@kanzure> i'm just ranting about staining in general
16:00 < damselfly9> does it take much dexterity to stain cells once they are on the slide?
16:04 < damselfly9> I guess I'll be finding out
16:05 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=4947848a Bryan Bishop: cleanup whitespace
16:05 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=011ba5d4 Bryan Bishop: re-organize the microscopy section
16:05 < gnusha> https://secure.diyhpl.us/cgit/diyhpluswiki/commit/?id=dd46801c Bryan Bishop: staining links from diybio
16:05 <@kanzure> damselfly9: or you can just watch a video http://www.youtube.com/watch?v=LnXslXMHeFs
16:06 < damselfly9> video or not, I'll still be finding out how difficult it is for me
16:07 < damselfly9> there is an unfortunate clumsiness factor
16:07 <@kanzure> you don't have to include clumsiness
16:07 < damselfly9> my own
16:08 <@kanzure> no i mean, you have correctly identified that biologists are crazy for thinking that is repeatable
16:08 <@kanzure> instead, i suggest those slides that have the wells built in
16:08 <@kanzure> then you can put a cover on without risking bubbles
16:08 < damselfly9> ahh, I see your point
16:08 < damselfly9> slides with wells onto my shopping list
16:09 <@kanzure> i assume that was the part that you were concerned about, and not the eyedropping
16:09 < damselfly9> yes
16:10 <@kanzure> i'm sure there's a way to make that suck less. the wells help but it's not a real solution.
16:11 < sheena1> we always just dipped ours
16:11 < damselfly9> all in all, this seems like a task almost beyond my skills, but the experiment(s) must be done
16:11 -!- eudoxia [~eudoxia@r186-53-133-179.dialup.adsl.anteldata.net.uy] has joined ##hplusroadmap
16:11 <@kanzure> dipped the slides or the covers?
16:11 <@kanzure> damselfly9: microscopy is beyond your skills?
16:11 < damselfly9> I have no lab experience beyond highschool biology labs
16:13 < sheena1> slides into the stains
16:13 < damselfly9> and I didn't get good grades on those
16:13 <@kanzure> huh? wouldn't that contaminate the stains?
16:13 < sheena1> damselfly9: i hope you can figure it out. lots of college level courses have lab course material online free..
16:14 < sheena1> kanzure: yeah i suppose it would a bit.. we fixed, then stained.
16:14 < damselfly9> thanks sheena, I hope so too
16:14 < sheena1> i'm trying to remmebre what exactly we did for squamous. Mostly we were using DiffQuik for blood slides, not so many other cells
16:14 < sheena1> if i wasnt still between places, i'd dig out my lab book.. might have some on my compute,r hang on
16:16 <@kanzure> "To make a wet mount place a sample on the slide. Using an eyedropper put a drop of water on the sample. Place one end of the cover slip on the slide and slowly lower the other end using the end of a toothpick. This will help to prevent air bubbles from getting trapped under the cover slip.
16:16 <@kanzure> you know, i never called anyone out on that, but looking at it objectively, that's a terrible technique
16:17 < damselfly9> balancing the cover slip on a toothpick seems a bit not-easy
16:19 < damselfly9> I hop this doesn't turn into a frustrating ordeal
16:20 <@kanzure> welcome to boilogy.. frustration is the name of the game. but the trick to fixing it is to not tolerate bad things, and make them better instead.
16:21 < damselfly9> that sounds very encouraging
16:23 < damselfly9> at least until the transhumanism mentioned in the topic someday comes true
16:23 < sheena1> we never did many wet mounts
16:23 <@kanzure> paperbot: http://www.ingentaconnect.com/content/maney/his/2006/00000029/00000001/art00006?crawler=true
16:23 < paperbot> error: HTTP 500 http://diyhpl.us/~bryan/papers2/paperbot/988bed95457978a3dfb906075bdb5f05.txt
16:23 <@kanzure> "crawler=true" sounds evil
16:23 < sheena1> you can just fix the cells to the slide then you dont need the drops and cover slips
16:23 < damselfly9> that sounds easier sheena
16:24 < sheena1> its what we did for almost all our cell stuff. agian, mostly animal, but we did do some human stuff
16:24 < sheena1> but its all the same really
16:24 < sheena1> im still looking for notes. right. hang on
16:24 < damselfly9> yes, humans are animals
16:25 <@kanzure> paperbot: http://cshprotocols.cshlp.org/content/2006/3/pdb.prot4292.full
16:25 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/b18ca9cce9d18571cf391d1bd0cb54a7.txt
16:25 < damselfly9> once there is the pictures, maybe the slips (and the bubbles those cause) won't really matter
16:26 <@kanzure> i never did any fixing, but it looks like the heating method would damage your cells
16:27 -!- phm [~anon@host-78-149-106-41.as13285.net] has joined ##hplusroadmap
16:28 < damselfly9> the paperbot artcile linked here tells me I have to pay $20
16:28 -!- xx is now known as xx2
16:28 <@kanzure> yeah, paperbot doesn't have access at the moment, sorry about that
16:28 < sheena1> damn, i have all kinds of notes on COLLECTING samples, and hardly nothing on what we used to stain the etc
16:29 < damselfly9> that's ok sheena. methylene blue is cheap and I can keep reusing slides until I get it right
16:30 <@kanzure> hehe "machine for automatically attaching cover slips to microscope slides" http://www.google.com/patents/US6626224
16:31 < damselfly9> sounds like a good idea
16:34 < damselfly9> before I go, I did have a second specific question. when you are getting your blood drawn by a phlobotomist, does it usually look the color of chocolate syrup for everyone?
16:34 <@kanzure> show us an image.
16:35 < joehot> yes
16:35 < damselfly9> I don't have an image, just that's the color it's looked in the syringes everytime I get mine drawn
16:35 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has joined ##hplusroadmap
16:36 < damselfly9> when I was reading up on methylene blue, there was a mention of methohemoglobinemia and I was wondering if my own blood was that color or if it just looks that way in the syringes
16:38 < damselfly9> on the other hand, if it was abnormally colored, you'd think at leat one of the phebotomists would have noticed
16:38 <@kanzure> btw is it possible that you're color blind?
16:38 < indigenous> A bit late but for what it's worth veterinarians in practice use DiffQuik for nearly everything. But methylene blue gives better nucleur detail while the former gives better detail to the other organelles.
16:38 < damselfly9> no, the eye doctor who most recently tested me said my color vision was actually much better than normal
16:39 <@kanzure> "RESULTS: Color-blind subjects were significantly less able to identify correctly whether pictures of body fluids showed blood compared with non-color-blind controls (P =.001);"
16:39 <@kanzure> that was from http://www.ncbi.nlm.nih.gov/pubmed/11176773
16:39 < damselfly9> he even suggested unofficially of course the possibility of tetrachromacy
16:40 < damselfly9> but since that is a contraversial subject, no eye doctor would want to risk their rep by saying it in writing
16:41 < damselfly9> I see the color red very well, but in the syringes my blood doesn't look red so much as brown
16:44 -!- yashgaroth [~ffffff@cpe-66-27-118-94.san.res.rr.com] has joined ##hplusroadmap
16:44 < damselfly9> sorry for being controversial
16:45 < damselfly9> have a nice evening
16:45 <@kanzure> yashgaroth: "To make a wet mount place a sample on the slide. Using an eyedropper put a drop of water on the sample. Place one end of the cover slip on the slide and slowly lower the other end using the end of a toothpick. This will help to prevent air bubbles from getting trapped under the cover slip."
16:46 <@kanzure> yashgaroth: so, that's actually sort of annoying and not highly repeatable and it sucks
16:46 < yashgaroth> haha no just lay the top slide onto the bottom at an angle
16:46 < yashgaroth> fuck toothpicks
16:46 <@kanzure> not a top slide, a coverslip
16:46 < yashgaroth> anyway bubbles aren't really a concern unless you need to take pretty pictures or are too dumb to tell what's a bubble and what's a cell
16:46 < yashgaroth> same thing
16:46 <@kanzure> every time i did it i always just dropped the coverslip carefully and hoped it would work out in my favor
16:46 < damselfly9> pretty pictures will be required
16:47 -!- qu-bit [~shroedngr@gateway/tor-sasl/barriers] has joined ##hplusroadmap
16:47 < yashgaroth> oh no our precious sample of cheek scrapings will need to be retaken, damn these toothpicks
16:47 < yashgaroth> damselfly9, in that case find a section that doesn't have a big bubble in it and take a picture of that
16:47 <@kanzure> man, try saying that when you're doing slide washing duty for a lab with >50 people
16:48 < damselfly9> I don't mind retaking cheek scrapings, but there's only so many that can be taken at one time
16:48 <@kanzure> you go through slides pretty fast :p
16:48 -!- qu-bit_ [~shroedngr@gateway/tor-sasl/barriers] has quit [Ping timeout: 276 seconds]
16:48 < yashgaroth> look bubbles are the least of your concerns here
16:49 < damselfly9> there is other concerns?
16:49 < yashgaroth> not really
16:49 < yashgaroth> but bubbles are the least of them
16:49 < damselfly9> ok :)
16:49 <@kanzure> it's not always a big deal, but surely we could do better
16:50 <@kanzure> biology protocols have all sorts of weird problems
16:50 <@kanzure> and fixing them starts with the easiest ones
16:50 < yashgaroth> many can be solved through experience, but that's not always a cheap or fast solution
16:50 <@kanzure> "just do it a few thousand times until you get good at it"
16:50 <@kanzure> "i promise my super secret pcr reaction protocol works, you're just doing it wrong"
16:51 <@kanzure> -reaction (oops)
16:51 < damselfly9> All I need is good images of 10 or 20 nuclii tominimize chances of false negatives
16:51 < yashgaroth> so um are you doing this protocol? https://docs.google.com/viewer?a=v&q=cache:iVhzuIJ06vEJ:outreach.mcb.harvard.edu/teachers/Summer07/ErnestineStruzziero/BarrBody_lab.doc+&hl=en&gl=us&pid=bl&srcid=ADGEESgolkHG7g2d836OzD0n4rgbSZuo2-myp_tcP7725FgBfO8sm2uCjDbxZoTNteajOXLLfc91Lm7P1OjT1gnZ13uWXR_hDm0NmwJCOCBSsnqn-vr_8O105BhPtNikkAD1by01pGX6&sig=AHIEtbTDfcn43p35hEZckUwkb1hww7wbpw
16:52 <@kanzure> sigh google
16:52 <@kanzure> http://outreach.mcb.harvard.edu/teachers/Summer07/ErnestineStruzziero/BarrBody_lab.doc
16:52 < damselfly9> ues, more or less
16:52 < yashgaroth> hey I linked the quick look for a reason
16:52 < damselfly9> (yes)
16:52 <@kanzure> yashgaroth: ah, okay.
16:53 < yashgaroth> not necessarily a good reason considering how long that url was, but
16:53 < damselfly9> 20 cells would make the chance of false results 1 in a million
16:53 < sheena1> http://www.amazon.ca/Laboratory-Urinalysis-Hematology-Animal-Practitioner/dp/1893441105 this is the book i was thinking of, and i thought it had other cell stuff in it, but seems not. hmph
16:55 < damselfly9> thankyou for the answers, kanzure and sheena and yashgaroth
16:56 < damselfly9> I'll be sure to remember this channel
16:57 -!- damselfly9 [~damslfly@c-24-60-136-110.hsd1.nh.comcast.net] has left ##hplusroadmap ["no message"]
16:59 -!- panax [~panax@68.200.160.182] has quit [Ping timeout: 256 seconds]
17:00 -!- panax [panax@131.247.116.2] has joined ##hplusroadmap
17:03 -!- Viper168 [~Viper@unaffiliated/viper168] has joined ##hplusroadmap
17:04 <@kanzure> how about a slide that has a hole on the edge that you dump your sample into, then you rotate the slide when you want to look at it under a microscope.
17:04 <@kanzure> you could clean it by throwing it away (or maybe with a straw and vacuum/pressure)
17:04 <@kanzure> erm, i mean, the straw obviously wont be sterile
17:04 -!- chris_99 [~chris_99@unaffiliated/chris-99/x-3062929] has quit [Quit: Leaving]
17:05 < nmz787> helloo
17:05 < yashgaroth> well there's hemocytometers
17:06 < nmz787> what are you guys trying to figure out how to do?
17:06 < nmz787> better...?
17:06 <@kanzure> a hemocytometer looks like it just uses capillary action to move samples around?
17:06 <@kanzure> nmz787: a less sucky way to apply coverslips
17:07 < yashgaroth> to draw sample into the slide, yeah
17:07 < yashgaroth> plus you get to count the cells, repeatedly and mind-numbingly, for hours
17:07 <@kanzure> isn't that what a computer is for?
17:07 <@kanzure> maybe i'm just bad at biology
17:07 < yashgaroth> yes but those cost more than poor biology grads desperate for work
17:08 < yashgaroth> and are crappy at distinguishing live/dead cells, contamination, counts outside of normal range
17:09 < nmz787> yeah i'd say haemocytometer (or whatever the spelling is)
17:09 < nmz787> they sell disposale ones too
17:09 < nmz787> disposable
17:09 < nmz787> it really depends on the sample though
17:09 < nmz787> like free floating cells vs tissue sections
17:10 <@kanzure> "Coverslips for counting chambers are specially made and are thicker than those for conventional microscopy, since they must be heavy enough to overcome the surface tension of a drop of liquid. The coverslip is placed over the counting surface prior to putting on the cell suspension. The suspension is introduced into one of the V-shaped wells with a pasteur or other type of pipet. The area under the coverslip fills by capillary action. "
17:10 < yashgaroth> true, it's only good for suspension cells, i.e. blood like they're named for
17:10 <@kanzure> works for me
17:10 <@kanzure> well capillary action still works for chopped up tissue no?
17:10 <@kanzure> or are you talking about mm^2 samples of contiguous tissue
17:11 < yashgaroth> never tried, but I'd think even a cheek scraping would be a hassle
17:11 < nmz787> chromosomes have that chromo in the beginning because they soak certain stains pretty easily, but I'm not sure it works if the cell isn't dividing
17:11 < nmz787> those old ones (GIEMSA is one I think) are pretty cheap, but there are some that are like $400 for 100 microliters
17:12 < nmz787> depends what you want to do
17:12 < nmz787> also I saw something about chromatin precipitation, and the biggest diameters were like 300-400nm
17:12 <@kanzure> http://www.scbt.com/datasheet-203738-giemsa-stain.html 25 g for $237
17:12 < nmz787> so I imagine that the nucleus is 2-5 times that size
17:13 <@kanzure> yashgaroth: that's just because hemocytometers are all the same size (for red blood cells), or because cheek cells are too large to be moved by capillary action?
17:13 < nmz787> http://store.p212121.com/categories/Chemicals/Stains-and-Dyes/
17:14 < yashgaroth> nah cheeks cells are normal size, but when you've got a bunch of mucus or extracellular matrix or w/e in there, it might mess with the flow
17:14 < yashgaroth> then again that's only a major problem when you want the equal distribution for cell counting
17:14 <@kanzure> ah sure, well you could just resuspend in water and mix or something :/
17:14 <@kanzure> "mix with toothpick" or microcentrifuge tube
17:15 < yashgaroth> I should pick up a microscope, even though I never intend to use one for immediate projects
17:16 <@kanzure> it's a nice thing to have laying around
17:25 < sheena1> hemocytometers are evil. that is all. i must go now!
17:30 <@kanzure> they break?
17:31 < yashgaroth> nah
17:31 <@kanzure> they cost a lot?
17:31 < yashgaroth> my guess it that that was related to ":yashgaroth: plus you get to count the cells, repeatedly and mind-numbingly, for hours"
17:33 -!- sheena1 [~home@d207-216-112-48.bchsia.telus.net] has quit [Ping timeout: 248 seconds]
17:42 < nmz787> yashgaroth: or you just put a cam on it and write some blob detection software
17:42 < nmz787> i have some images we could use
17:43 < yashgaroth> sure, if it can differentiate white/red blood cells, and/or stained live/dead cells
17:43 < nmz787> paperbot: http://antiquity.ac.uk/ant/subscriptions/howtoaccess.htm?PageWanted=http://antiquity.ac.uk/Ant/076/0015/Ant0760015.pdf
17:43 < paperbot> no translator available, raw dump: http://diyhpl.us/~bryan/papers2/paperbot/40393e18fd6c3bd8c3386bf5c7dbca5d.txt
17:44 -!- ThomasEgi [~thomas@panda3d/ThomasEgi] has quit [Remote host closed the connection]
17:44 < nmz787> yashgaroth: alive/dead is easy with... trypan blue??...
17:44 < yashgaroth> that's the common one
17:44 < nmz787> ya
17:44 < nmz787> red white should be easy, since they're red right?
17:45 < nmz787> macrophage vs b cell is what you need for hybridoma righr?
17:45 < nmz787> when you grind up the spleen
17:45 -!- Viper168 [~Viper@unaffiliated/viper168] has quit [Ping timeout: 255 seconds]
17:45 < yashgaroth> I don't know what criteria they have for blood counts
17:45 < yashgaroth> also it's myelomas
17:46 < nmz787> yeah but you need B cells to merge with
17:46 < yashgaroth> sure, myelomic ones
17:46 < nmz787> the myeloma is from an un-immunized mouse i believe... or myeloma cell culture more likely
17:46 < yashgaroth> yes but you're not counting myelomas when you do a blood test
17:46 < nmz787> you need immunized B cells from a non-cancerous mouse
17:47 < yashgaroth> err, hybridomas
17:47 < nmz787> to merge them with
17:47 < yashgaroth> sure but you can't separate them with a hemocytometer
17:47 < nmz787> yeah i used haemocytometers to count diff white cells vs each other
17:47 < nmz787> no just calc concentration
17:48 < yashgaroth> oh yeah then sure
17:48 < nmz787> so you can have the right proportion of myelomas to Bs
17:48 < yashgaroth> I didn't think anyone really did hybridomas anymore, eschewing them for libraries
17:48 < yashgaroth> but it would be one application
17:50 < yashgaroth> for determining your markets for said diy cell counter, I'd think most of the market is in trypan blue staining for biotech, as I imagine most diagnostic blood counts are by hand what with the subtle nuances of white blood cells
17:52 < nmz787> yeah
17:52 < nmz787> that's easy and pro versions start at like $3k
17:52 < nmz787> the 'countess'
17:52 < yashgaroth> $200 microscope, cheap camera, free-ish software, cheap hardware
17:53 < nmz787> i think you could do it with a $50 microscope
17:54 < yashgaroth> true
18:01 < nmz787> kanzure: where should individual spectrometer profiles fit into the code
18:01 < nmz787> like, each spectrometer will have it's own method for getting data
18:01 < nmz787> the one i just used is via serial
18:02 < nmz787> others are probably the same, but is it possible to have blank function prototypes in python, that you then override later with instrument-specific logic?
18:03 < nmz787> like instead of me having a getDataFromSerial function in the spectrometer class
18:03 <@kanzure> i suggest a module that provides plugins
18:03 <@kanzure> and then these plugins would be distributed with the library as an extra module
18:03 < nmz787> i would think it migh be better to have a getData function, that is then custom for this spectrometer i'm currently working with
18:03 <@kanzure> e.g. from spectrometerthing.equipment import biorad199x
18:04 <@kanzure> yes a "blank function prototype" is known as a class method :P
18:04 <@kanzure> you would have a generic class- let's call it Spectrometer- and then Biorad199x would inherit from Spectrometer
18:04 < nmz787> so how can i craft a skeleton class (i dont know if that term is correct) in spectrometer's main class... that each instrument file module would extend
18:05 <@kanzure> give me one moment
18:05 < nmz787> such that python will enforce all the arguement requirements from spectrometer
18:05 < nmz787> ok
18:05 < nmz787> i did this in c++ a few years ago, but it was pretty rough going
18:07 <@kanzure> https://gist.github.com/4631087
18:07 <@kanzure> git clone https://gist.github.com/4631087
18:08 <@kanzure> of course, "get_data" is not pythonic at all and violates everything in pep8
18:11 <@kanzure> ok i pushed some clarifications
18:13 <@kanzure> this is still sorta wonky.. first of all, why would there be "data" attached to the spectrometer object itself. it would make more sense to return it once reading is done, and then the spectrometer knows nothing of it.
18:16 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has quit [Remote host closed the connection]
18:16 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has joined ##hplusroadmap
18:19 -!- JayDugger [~duggerjw@pool-173-74-81-239.dllstx.fios.verizon.net] has quit [Quit: Leaving.]
18:21 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has quit [Ping timeout: 248 seconds]
18:35 < phm> kanz: Do you use python in preference to smalltalk or lisp? Or do you only use it because you work on existing codebases or need python libraries?
18:36 <@kanzure> all of the above? why.
18:37 < phm> You think python is a better language than smalltalk or lisp? Or you think their power is equal?
18:37 <@kanzure> why?
18:37 < phm> Is 'curiosity' a good enough answer?
18:37 <@kanzure> no
18:37 <@kanzure> i doubt it's curiosity, why not ask anyone else in here
18:38 < phm> I'm more curious about certain individuals.
18:38 < phm> You can take it as a sign of respect.
18:40 < phm> Yes, I have an agenda. No, I'm not ready to tell you what it is. Are you going to answer the smalltalk vs python question?
18:44 < yashgaroth> what's your agenda? I am curious
18:45 < phm> No, I'm not ready to tell you what it is. All I'll say is that I think we have similar goals.
18:45 <@kanzure> nmz787: i guess it really only needs one method (capture). i pushed up that change up.
18:46 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has joined ##hplusroadmap
18:55 -!- eudoxia [~eudoxia@r186-53-133-179.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection]
18:58 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has quit [Remote host closed the connection]
18:59 < phm> Thinking about it; you can't have 'all of the above' without a contradiction.
18:59 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has joined ##hplusroadmap
19:00 < phm> Although you did use a question mark.
19:01 < phm> I find a lot of your statements to be rather ambiguous.
19:03 < phm> Which suggests natural language is not your strength. I haven't reviewed your code yet.
19:03 -!- augur [~augur@c-98-218-127-183.hsd1.md.comcast.net] has quit [Ping timeout: 248 seconds]
19:13 < nmz787> i guess there doesn't have to be data in the spectrometer object
19:13 <@kanzure> well, the one function that matters the most is capture() which returns data
19:15 < nmz787> capture==read?
19:15 < nmz787> readData
19:15 < nmz787> etc
19:15 <@kanzure> readData is not pep8 compatible :P
19:15 < nmz787> in some cases you might also be able to send data to the spectrometer
19:15 <@kanzure> http://www.python.org/dev/peps/pep-0008/
19:15 < nmz787> wtf is pep8
19:16 < nmz787> ?
19:16 < nmz787> says mixed case is OK
19:16 -!- devrandom [~devrandom@gateway/tor-sasl/niftyzero1] has joined ##hplusroadmap
19:16 < nmz787> the name of the project is openSpectrometer
19:17 < nmz787> :/
19:17 < nmz787> read_data is fine too
19:18 <@kanzure> oh you're right, it's not actually forbidden in pep8
19:18 <@kanzure> well, readData seems weird anyway. why not just read, and then it can be compatible with File.
19:19 <@kanzure> doesn't matter, moving on
19:19 < nmz787> hmm
19:19 < nmz787> i guess read is good
19:19 < nmz787> then write?
19:19 <@kanzure> a spectrometer never writes
19:19 <@kanzure> ... does it?
19:20 <@kanzure> what spectrometers do you have physical access to?
19:21 < nmz787> bio-wave II or something like that
19:21 < nmz787> i'm am planning on openSpectrometer to be writable
19:21 <@kanzure> what does writable mean in this context?
19:22 < nmz787> that's how you will select streaming to computer, stream to on-board disk, stream out the SPI port to some other device... change exposure time...
19:22 < nmz787> maybe you want to turn on the timer function
19:23 < nmz787> so it takes a reading every 5 mins, when it isn't plugged into the computer
19:23 <@kanzure> just out of curiosity, which of these features are implemented in other spectrometers?
19:23 <@kanzure> i've worked with some nanodrops and one other thing that i can't remember
19:23 <@kanzure> and i was always just doing basic captures
19:23 < nmz787> i think exposure is definitely one
19:23 <@kanzure> not sure what else they could do
19:24 < nmz787> for some with moving parts you could select a scan range too
19:24 < nmz787> range and dwell time per interval
19:24 <@kanzure> spectrum range, or physical swivel range thing?
19:24 < nmz787> potentially tell it to swap a filter in for fluorescence
19:25 <@kanzure> ok well, in an ideal world,
19:25 <@kanzure> the spectrometer library should hide all of those features and make it so that i could set those features the same way for each device
19:25 <@kanzure> even if the implementation is different
19:25 < nmz787> well on a monochromator you move the grating and can have a pixel array getting blocks at a time, or you can have a PMT/single-pixel getting one wavelength at a time
19:25 < nmz787> right
19:26 < nmz787> that's why i thought of prototypes
19:26 < nmz787> or whatever they're called
19:26 < nmz787> subclasses
19:27 <@kanzure> was the pastebin link from yesterday data from the bio-wave ii?
19:28 -!- nsh [~nsh@wikipedia/nsh] has quit [Remote host closed the connection]
19:28 < nmz787> yes
19:28 < nmz787> i have since written a parser for the original
19:28 <@kanzure> paste it up https://gist.github.com/
19:29 < nmz787> then averaging datasets, fitting a curve to that, searching for peaks, displaying the original spectrum + fit and possible peaks highlighted, added a 'select this peak' button to that
19:31 < nmz787> ok
19:35 < nmz787> how do you add a comment in a file with JSON?
19:40 <@kanzure> you do not :(
19:40 <@kanzure> even if you did, when the file is parsed by a json library, the comment will be discarded
19:41 <@kanzure> yaml uses "#" for comments, but yaml parsers also discard comments
19:41 <@kanzure> (yaml is a superset of json)
19:41 < nmz787> ok i just added a README section
19:41 < nmz787> to the dict
19:43 < nmz787> https://github.com/nmz787/open-spectrometer/tree/master/desktop-software
19:46 <@kanzure> oops
19:46 < nmz787> changed the filenames just now
19:46 <@kanzure> well, maybe you would find this useful anyway
19:46 <@kanzure> https://github.com/kanzure/python-spectroid
19:46 < nmz787> from openSpectrometerGUI to openSpectrometer
19:46 <@kanzure> this is just a basic egg for the code i jotted out for you
19:47 <@kanzure> feel free to not use it
19:47 < nmz787> cool
19:47 < nmz787> yeah so i know it needs cleaned up, but it's a start
19:48 < nmz787> figuring out the stupid gtk and matplotlib stuff was pretty annoying
19:48 <@kanzure> what is phPython ?
19:48 <@kanzure> https://github.com/nmz787/open-spectrometer/blob/master/desktop-software/phPython.py
19:48 < nmz787> gonna calculate pH from spectral data
19:49 < nmz787> it is using functions from the openSpectrometer file
19:52 < nmz787> in openSpectrometer.py i wrote a section getDataFromSerial
19:52 < nmz787> but i'm gonna basically refactor it into te biowave class
19:53 < nmz787> hmm, but you see how I implemented it
19:54 < nmz787> i will have to move the while loop i guess, to make it 'read'
19:54 < nmz787> instead of save to disk
19:54 <@kanzure> i don't think relying on KeyboardInterrupt is a good idea
19:54 <@kanzure> isn't there some way to know that it is done sending data? like EOF?
19:54 < nmz787> dunno, i only had the file  i copy-pasted to go on
19:55 < nmz787> haven't been around the instrument since last week
19:55 <@kanzure> but i mean, this while loop never ends
19:55 < nmz787> sure it does, when you press ctrl-c
19:55 <@kanzure> <-- major facepalming
19:55 < nmz787> there's a KeyboardInterrupt at the bottom
19:55 < nmz787> why is that bad?
19:56 < nmz787> the spectrometer only sends data to the computer when you press a physical button
19:56 < nmz787> so i never have to touch the computer once i run this
19:56 < nmz787> just press the 'take reading' button on the device
19:56 -!- OldCoder_ [~OldCoder_@c-69-181-140-134.hsd1.ca.comcast.net] has joined ##hplusroadmap
19:57 < nmz787> i can just return at dataReady=True though
19:57 < nmz787> to make it compatible with read()
19:57 < nmz787> err datapointsReady
19:57 < nmz787> return instead of fwrite
19:58 -!- Proteus1 [~Proteus@71-34-198-154.omah.qwest.net] has quit [Read error: Connection reset by peer]
19:59 <@kanzure> ctrl-c is actually the SIGINT signal
19:59 <@kanzure> you shouldn't have to kill your program to stop reading. what if reading is only the first step?
19:59 -!- Proteus [~Proteus@unaffiliated/proteus] has joined ##hplusroadmap
20:00 < nmz787> yeah but i catch the exception and just continue
20:00 < nmz787> no killing happens
20:00 < nmz787> i actually imported signal earlier but then just used the exception catch
20:03 <@kanzure> the other issue of concern is the reliance on gtk and so on
20:03 <@kanzure> would you be opposed to me writing a pull request that makes that optional?
20:03 < nmz787> huh?
20:04 < nmz787> the getting data doesn't require gtk
20:04 <@kanzure> well, let's say that i want to run this on my phone where i don't have gtk installed. this wouldn't work on my phone :(.
20:04 < nmz787> only the plotting stuff
20:04 <@kanzure> yes, but the imports run regardless
20:04 < nmz787> ok, so catch the import error?
20:04 <@kanzure> yes that is one of the things i would be doing
20:04 < nmz787> you won't be able to use this on your phone anyway
20:05 < nmz787> you probably can't do USB host
20:05 <@kanzure> they also said that about linux, but look at me now
20:05 < nmz787> how do i add a catch for import exception around those statements?
20:05 <@kanzure> same way as normal try/catch
20:05 < nmz787> and #ifndef
20:05 < nmz787> or whatev on the gtk usin funcs
20:06 < nmz787> ahh ok
20:06 <@kanzure> try:\n import whatever\n except ImportError as exception:\n pass
20:07 < nmz787> should a spectrometer device just try connecting to all com ports in detect()
20:08 -!- Proteus [~Proteus@unaffiliated/proteus] has quit [Read error: Connection reset by peer]
20:08 <@kanzure> well, actually, we have one of the authors of cupsd in here and she might have some ideas
20:08 <@kanzure> s/authors/contributors
20:09 <@kanzure> juri_: right? you did something cupsd related. maybe?
20:09 -!- Proteus [~Proteus@unaffiliated/proteus] has joined ##hplusroadmap
20:09 <@kanzure> but yeah, for now i think just cycling through com ports is ok. is there a way that a spectrometer tells the software what version it is?
20:09 < nmz787> biowave told it when it printed out a spectrum
20:09 <@kanzure> neat
20:09 <@kanzure> good
20:10 < nmz787> i didn't pok biowave_II though to see if i could detect()
20:10 < nmz787> so i'm just gonna have a connect() function
20:10 < nmz787> which you can optionally pass a com port to
20:10 < nmz787> or port
20:10 < nmz787> since i guess IP spectrometers could happen
20:10 < nmz787> maybe
20:12 < nmz787> so how do i append to a JSON object
20:12 < nmz787> like i want to add another k,v to a json string
20:12 -!- Proteus [~Proteus@unaffiliated/proteus] has quit [Read error: Connection reset by peer]
20:12 <@kanzure> jsonthing = json.loads("{\"key\": \"value\"}"); jsonthing["key2"] = "value2"; print json.dumps(jsonthing)
20:13 < nmz787> can i insert it before key1?
20:13 < nmz787> key0?
20:13 <@kanzure> python dictionaries do not have guaranteed order, unless you use a OrderedDict
20:13 < nmz787> i am using that
20:13 <@kanzure> json doesn't guarantee ordering either, i think
20:14 < nmz787> json.dumps keeps it ordered
20:14 <@kanzure> you can use a numerical key btw
20:14 <@kanzure> jsonthing[0] = "whaaat"
20:14 < nmz787> so i return a JSON object or a OrderedDict from read()?
20:14 -!- Proteus [~Proteus@unaffiliated/proteus] has joined ##hplusroadmap
20:15 <@kanzure> well, why is it a dictionary in the first place?
20:15 <@kanzure> i thought it's a list of wavelengths?
20:15 -!- Proteus [~Proteus@unaffiliated/proteus] has quit [Client Quit]
20:15 < nmz787> you said to make it that way
20:15 <@kanzure> that's a good reason, but i don't think we figured out whether or not i was right
20:15 < nmz787> after you told me to use config parser
20:15 < nmz787> you told me to use JSON
20:15 <@kanzure> ok but you mean read() from the spectrometer?
20:15 <@kanzure> not the config parser
20:15 < nmz787> yes
20:16 < nmz787> now i am returning all the data in a JSON dict
20:16 <@kanzure> json is a format for representing dictionaries, lists and strings, inside of a string
20:16 < nmz787> it has the startwavelength, end, etc
20:16 <@kanzure> in python, a dict (dictionary) is a native type just like list or int
20:16 < nmz787> right i know that
20:16 <@kanzure> ok, startwavelength
20:16 < nmz787> why are you telling me that?
20:16 <@kanzure> because you said returning a JSON dict
20:17 <@kanzure> what's a json dict?
20:17 < nmz787> ok fine i'm just gonna return the ordereddict
20:17 < brownies> a dictionary in JSON, i assume
20:17 <@kanzure> is it a string literal of json text? or is it a dict in python?
20:17 < nmz787> " json is a format for representing dictionaries, lists and
20:17 < nmz787>                  strings, inside of a string"
20:17 <@kanzure> ok returning an ordereddict is a sensible thing
20:17 <@kanzure> but
20:17 < brownies> and you people need to start using underscores where you should have spaces in variable names
20:17 <@kanzure> brownies: i agree
20:17 < brownies> start_wavelength ... not startwavelength
20:17 <@kanzure> nmz787: the other issue is why is there a start_wavelength in the first place?
20:18 <@kanzure> can't you just do min(wavelengths) ?
20:18 < nmz787> it's actually startWavelength
20:18 < nmz787> in the file
20:18 < nmz787> why would i store all the wavelengths
20:18 < nmz787> in this instrument it's 1nm steps
20:18 <@kanzure> because that's what the function does? returns all the wavelengths?
20:18 <@kanzure> right?
20:18 < nmz787> so i can accurately interpolate the range
20:18 < nmz787> no
20:18 < nmz787> it returns all the data
20:19 < nmz787> regarding a sample
20:19 < nmz787> the data is ADC reading @ some wavelength
20:19 <@kanzure> what i'm trying to get at is that it's not a simplified api if each spectrometer class returns a different value from the capture/read function
20:19 < nmz787> i woudln't think it should
20:20 < nmz787> i guess i could interpolate the whole range of wavelengths and write it to file
20:20 <@kanzure> what's wrong with returning all wavelenghts in 1 nm increments?
20:20 < nmz787> or make the [(wavelength, absorbance)]
20:20 <@kanzure> (also, you're right about adc reading at a specific wavelength, so yes that's a dictionary)
20:21 < nmz787> yeah it might not always be integral step size
20:21 <@kanzure> so imagine this
20:21 <@kanzure> you have a library of functions for running mathy things on spectrometer data
20:21 <@kanzure> one of these is the ph calculator
20:21 <@kanzure> the other is a.. uhm. detects metals?
20:21 -!- augur [~augur@208.58.5.87] has joined ##hplusroadmap
20:21 < nmz787> or i just have a fallback if a range is given
20:22 <@kanzure> if the data is different from each capture() method, these plugins/methods would have to be rewritten each time you write a new spectrometer class
20:22 < nmz787> well another would be some sort of pattern recognition
20:23 < nmz787> so if i have two lists, how do i combine them to form a dict?
20:23 <@kanzure> mydict.update(otherdict)
20:23 < nmz787> i.e. wavelengths and ADV val
20:24 <@kanzure> so wavelengths[0] should be paired with ad_voltages[0] ?
20:24 < nmz787> yeah
20:25 < nmz787> i think a list comprehension may do it
20:25 < nmz787> hmm
20:25 < nmz787> maybe not
20:25 < nmz787> a list of dict pairs?
20:26 <@kanzure> dict([(wavelengths[index], ad_voltages[index]) for index in range(0, min([len(ad_voltages), len(wavelengths)]))])
20:26 <@kanzure> will give you a dictionary of wavelength -> ad_voltage
20:27 < nmz787> well this failed  [(k,v) for k,v in p,t]
20:27 -!- Mariu [Jimmy98@89.41.57.33] has joined ##hplusroadmap
20:27 < brownies> of course it did
20:27 < brownies> what are p and t?
20:27 < nmz787> p=[1,2,3,4]; t=[0,9,8,7]
20:28 < nmz787> ValueError: too many values to unpack
20:28 <@kanzure> "in" only works for a single list, i've never seen it work for a tuple
20:29 < nmz787> :P
20:29 < brownies> =(
20:29 <@kanzure> what's wrong with the code i dropped?
20:29 < nmz787> works
20:29 <@kanzure> oh also i think it forgets the last value
20:30 <@kanzure> because i do range(0, length)
20:30 <@kanzure> so it should be range(0, length+1) because you still want the last index
20:30 < brownies> you can just write range(length+1)
20:30 < brownies> </pedant>
20:30 <@kanzure> <pedant>
20:31 <@kanzure> open that back up, you jerk
20:31 <@kanzure> you don't get to stop the pedantry
20:31 < brownies> hahah
20:31 <@kanzure> man you totally messed up the xhtml compatibility of this log
20:32 < phm> "< kanzure> this is entering the realm of extreme pedantry" and there was me thinking that this was a complaint!
20:32 < nmz787> nope it works without +1
20:32 < brownies> heh.
20:33 < brownies> ah, yes, you don't need the +1 because you're using the length
20:33 <@kanzure> phm: it was not a complaint
20:34 < heath> my first blog post since i found out about blogging ;)
20:34 < heath> http://isotope11.com/blog/a-guide-to-automatic-semicolon-insertion-in-javascript
20:35 < heath> one bug report follows: https://bugs.webkit.org/buglist.cgi?quicksearch=oliver%40apple.com
20:35 <@kanzure> ah so you're a corporate blogger now
20:35 < phm> Do you actually want to know what was 'wrong' with the code you 'dropped'? Or was that a rhetorical question?
20:35 <@kanzure> who are you asking
20:35 < phm> you
20:36 <@kanzure> my dict() line works for his purposes
20:36 < phm> That's why I put 'wrong' in quotes.
20:36 <@kanzure> he seemed to be ignoring it, so i mentioned it again.
20:36 < nmz787> kanzure: if i have a dict d, how do i most easily get a list of all k or v
20:36 <@kanzure> nmz787: mydict.items() gives you a [(key, value), ...] list
20:36 <@kanzure> mydict.keys() gives you a list of keys
20:37 <@kanzure> and mydict.values() gives you a list of values
20:37 < brownies> you want iteritems() dawg
20:37  * phm resists temptation to troll pythonistas 
20:38 <@kanzure> heath: i don't understand any of your diagrams
20:38 <@kanzure> why are these circles?
20:38 <@kanzure> brownies: nmz787 doesn't know about __iter__ yet
20:39 < brownies> i don't write enough Python to know most of these things tbh
20:39 < brownies> i always have to crack open the docs for basic string manipulation -_-
20:39 <@kanzure> example?
20:39 < heath> yeah, they aren't the greatest, i was originally going to make it like something you see in graphs of automata, showing all the possible moves, but then i realized it probably wouldn't be clear the exact path that is being taken without adding in some type of coloring which i don't care for doing
20:39 <@kanzure> heath: i think the text is clear enough on its own
20:40 <@kanzure> heath: also, i did a very tiny proof of concept of a hack to a deobfuscator that you might be interested in looking at
20:41 < heath> yep
20:41 <@kanzure> heath: https://github.com/kanzure/uglifyjs-poc
20:41 <@kanzure> it replaces short variable names with longer variable names
20:41 <@kanzure> because i read a lot of obfuscated javascript and it's easier to replace longer variable names
20:41 <@kanzure> however, it doesn't capture all possible situations. sometimes there are leftover variables because that's how prototypes work and such.
20:42 <@kanzure> maybe you know a better way to implement this? (also, my implementation was that of a bastard's-- i just did whatever i wanted, which is why it's a proof of concept and not something people should use)
20:43 <@kanzure> although brownies seemed to find some use out of it ?
20:43 < brownies> it added a nice dash of flavor to our JS shenanigans
20:44 < brownies> heath: it's not really clear what 1 circle vs. 2 circles means
20:44 < brownies> heath: also, that text in the diagrams is far too maddeningly small
20:44 <@kanzure> ah i thought that was my browser's fault
20:44 <@kanzure> yeah the text inside the diagrams is very tiny
20:44 < heath> clicky!
20:44 <@kanzure> getclicky.com?
20:45 < brownies> he means click on them
20:45 < brownies> but regardless that is not good information design
20:45 <@kanzure> well once i click it, it pops up and takes up the entire screen
20:45 < brownies> heath: nice article though.
20:45 <@kanzure> then i click it again, and it zooms in even more
20:45 < nmz787> can i store args somehow?
20:45 <@kanzure> and i have to refresh
20:45 < brownies> i find it odd that Chrome got slower from 22.0 to 24.0
20:45 <@kanzure> nmz787: probably, but explain your exact situation?
20:46 <@kanzure> brownies: i bet experimental things.
20:46 < nmz787> well instead of pasting this in two differnt places port=sys.argv[1], baudrate=115200, rtscts=True, dsrdtr=True, timeout=5
20:46 <@kanzure> nmz787: yes, you can pass variables between functions
20:46 < nmz787> just store it to a string, then pass that string to pyserial
20:46 < nmz787> no i don't want to pass it between funcs
20:46 <@kanzure> when wondering how to design a python library, i think the best thing to look at is python-requests
20:47 <@kanzure> https://github.com/kennethreitz/requests
20:47 < nmz787> ?
20:47 < nmz787> that has nothing to do with storing args
20:47 <@kanzure> his api design is solid and he stores arguments as a config variable attached to his session
20:47 < nmz787> can i just save then to *args and **kawargs
20:47 < nmz787> then pass them?
20:47 <@kanzure> it would work.. in the same sense that your while loop works. yes.
20:47 < nmz787> syntax error
20:48 <@kanzure> what?
20:48 < nmz787> doesnt like that *
20:48 <@kanzure> paste the offending line
20:48 < nmz787> *args='1'
20:48 <@kanzure> that's not how python works
20:48 < nmz787> **kwargs='baudrate=115200'
20:48 <@kanzure> nonono
20:49 < nmz787> you said it would work!
20:49 <@kanzure> you said pass them
20:49 < nmz787> just like my loop!
20:49 <@kanzure> not redefine them
20:49 < nmz787> yeah
20:49 <@kanzure> you are redefining them
20:49 < nmz787> i want to pass them a few lines down
20:49 <@kanzure> if you want to override their values, just say args=whatever and kwargs=whatever
20:49 < nmz787> ok so can i just do nateKwargs='baudrate=115200'
20:49 < nmz787> then pass nateKwargs?
20:49 <@kanzure> to pass a list of values as positional arguments to a function, do: myfunc(*list_of_positional_arguments)
20:50 < nmz787> can they be nonpositional?
20:50 < nmz787> i.e. kwargs?
20:50 <@kanzure> def myfunc(*args, **kwargs): blah... in this function, kwargs will be a dictionary of all of the keyword arguments passed to myfunc
20:50 < nmz787> can i just options='port=sys.argv[1], baudrate=115200, rtscts=True, dsrdtr=True, timeout=5'
20:50 <@kanzure> no
20:50 < nmz787> so dumb
20:50 < nmz787> why don't they make languages work
20:50 <@kanzure> options = {"port": sys.argv[1], "baudrate": 115200}
20:50 < nmz787> they way i want
20:51 -!- Hu_Meanan [~quassel@199.48.197.18] has joined ##hplusroadmap
20:51 < nmz787> easier to just double past self.ser=serial.Serial(port=sys.argv[1], baudrate=115200, rtscts=True, dsrdtr=True, timeout=5)
20:51 <@kanzure> but you can also just specify the keyword arguments explicitly.. def myfunc(positional_argument1, keyword_here=True, another_keyword_argument=False)
20:51 <@kanzure> well, baudrate=115200 looks like a setting that a user would want to change
20:52 <@kanzure> and using sys.argv for the port is sorta weird because what if your function was called from another python script ?
20:52 <@kanzure> e.g. without using the command line
20:52 < nmz787> no that was old
20:53 < nmz787> no the baud rate won't change for Biowave_II
20:53 < nmz787> i only got it to work with one setting
20:53 <@kanzure> have i sufficiently explained why *args=1 is wrong?
20:54 -!- sheena1 [~home@d207-216-112-48.bchsia.telus.net] has joined ##hplusroadmap
20:54 -!- Viper168 [~Viper@unaffiliated/viper168] has joined ##hplusroadmap
20:54 < nmz787> sure, python doesn't like pointers
20:55 <@kanzure> in python, * does not mean pointer
20:56 < nmz787> kanzure: get cmdline input with raw_input()
20:56 < nmz787> ?
20:57 <@kanzure> "If the form *identifier is present, it is initialized to a tuple receiving any excess positional parameters, defaulting to the empty tuple. If the form **identifier is present, it is initialized to a new dictionary receiving any excess keyword arguments, defaulting to a new empty dictionary."
20:57 <@kanzure> i highly discourage the use of raw_input
20:57 <@kanzure> but yes, it grabs things from stdin
20:58 < nmz787> why?
20:58 <@kanzure> because it makes your program less automatable
20:58 < nmz787> how else should i ask for sample IDs before saving the reading to disk?
20:58 < nmz787> well there's a bool flag to disable getting sample IDs from the user
20:58 <@kanzure> i would suggest you make a new folder based on a timestamp, and inside you can dump new files in sequential order if you want
20:59 < nmz787> but that isn't good enough
20:59 <@kanzure> if the user specifies a folder name, that folder should be used
20:59 < nmz787> i want to be able to load up my data and see, oh yeah, this is acid 1
20:59 < nmz787> this is acid 2
20:59 < nmz787> if the program doesn't do that, then i have to write the timestamps in my lab manual with the labels
21:00 <@kanzure> the way i'd love to run this would be:
21:00 <@kanzure> spectrometer capture > acid.dat
21:00 < nmz787> but where is the config of the spectrometer
21:00 -!- u-metacognition [~metacogni@99-7-58-96.lightspeed.davlca.sbcglobal.net] has joined ##hplusroadmap
21:00 < nmz787> port num
21:00 < nmz787> etc
21:00 < nmz787> when did you set that up?
21:00 <@kanzure> ~/.spectrometerrc
21:00 <@kanzure> :P
21:01 < nmz787> :/
21:01 <@kanzure> hmm, well, my point was that it should dump to stdout so that i can pipe to a file, right?
21:01 < nmz787> hmm
21:01 < nmz787> i guess, but then i have to write a script in bash
21:01 < nmz787> when i already did it in python
21:01 <@kanzure> why in bash?
21:02 < nmz787> well why would you want it going to stdout
21:02 <@kanzure> so that i can control where i want it to go ?
21:02 < nmz787> if you were using python you'd just import the module
21:02 <@kanzure> yes definitely
21:03 -!- qu-bit [~shroedngr@gateway/tor-sasl/barriers] has quit [Remote host closed the connection]
21:03 < nmz787> my ideal setup is to have the prog get readings, ask me for a sample ID, save to disk in a separate or appended file
21:04 < nmz787> or if i'm dealing with all the same samples, or just looking at time, then i wouldn't give it the sample ID, i'd just name the file
21:05 <@kanzure> that's reasonable
21:05 <@kanzure> as long as the stuff under the hood can be reused for other things
21:05 < nmz787> so how do i do that, and what you want
21:05 <@kanzure> do you know how to make a python module?
21:06 <@kanzure> if not, i could illustrate one with https://github.com/kanzure/python-spectroid
21:06 < nmz787> i can already import these files in other files
21:06 < nmz787> these classes*
21:07 <@kanzure> not quite..
21:07 -!- xx [~xx@72.53.96.212] has joined ##hplusroadmap
21:07 <@kanzure> do you have your django stuff still working, by any chance? try importing from there.
21:08 <@kanzure> your class isn't installed on your system, so it will be an ImportError
21:08 -!- qu-bit [~shroedngr@gateway/tor-sasl/barriers] has joined ##hplusroadmap
21:08 < nmz787> not if i added it to my path already
21:11 <@kanzure> i don't know how to answer your question succintly, sorry.
21:11 <@kanzure> the long way involves a lot of complicated explanation about how to use python modules
21:11 <@kanzure> and how to write reusable code
21:12 < rigel> anyone interested in destroying our system of medical education?
21:13 < rigel> because if so, we should chat
21:14 < yashgaroth> get back to memorizing all the anterior processes
21:14 < rigel> i got an extension on my exam until friday
21:14 < rigel> er
21:14 < rigel> monday
21:14 -!- sheena1 [~home@d207-216-112-48.bchsia.telus.net] has quit [Ping timeout: 256 seconds]
21:15 < rigel> it seems completely fucking insane to me though that we're taught not the basics about systems and then how to use the literature to find out details
21:15 < rigel> but instead we're just crammed full of information that we spew out and forget
21:15 < rigel> at least at this institution
21:15 < rigel> i hear it's a bit better in some other places
21:16 -!- xx [~xx@72.53.96.212] has quit [Read error: Connection reset by peer]
21:17 < yashgaroth> hey so if I want to inject someone with a plasmid can I just get a doctor to sign off on it or what?
21:17 -!- xx [~xx@72.53.96.212] has joined ##hplusroadmap
21:20 <@kanzure> oops, turns out the "spectroid" name was taken by another python package
21:21 <@kanzure> so i renamed to https://github.com/kanzure/python-spectrometers and http://pypi.python.org/pypi/spectrometers
21:21 < nmz787> yashgaroth: what doc will sign off though
21:21 < rigel> yashgaroth: is that some kind of freaky transhumanism euphemism?
21:21 < nmz787> yashgaroth: lot on the line
21:21 < yashgaroth> euphemism?
21:21 < yashgaroth> nm787: one who's down with the h+, can you dig it
21:22 < rigel> if you're that down, why not just inject yourself
21:22 < yashgaroth> oh I will, but eventually we'll need an n greater than 1
21:22 < nmz787> can you remove the s kanzure ?
21:23 < rigel> thats how a lot of medical experiments have been done, before the advent of clinical trials
21:23 <@kanzure> nmz787: yes, but why?
21:23 < nmz787> kanzure: seems better to name it python-spectrometer
21:23 < nmz787> i dunno
21:23 < rigel> yashgaroth: you'll probably need to put together an actual experiment
21:23 < nmz787> why keep it plural
21:23 < yashgaroth> oh totally, there's still plenty of apocryphal reports of researchers self-injecting to prove a point
21:23 < rigel> you know, do stuff in rodents first, demonstrate efficacy
21:24 < rigel> then pull together a couple hundred mil to do the FDA approval dance
21:24 < yashgaroth> man I ain't got time to fuck around with rodents, can't I just do it on myself?
21:24 < nmz787> kanzure: it wasn't really inspired by openSpectrometer... it is written because of it
21:24 < yashgaroth> 200 mil? that's cheap for three phases
21:24 < rigel> not really
21:24 <@kanzure> nmz787: because it deals with multiple spectrometers. i dunno, i could go either way.
21:24 < rigel> the pharma estimates are hugely bloated
21:24 < nmz787> yashgaroth: outsource to china or bangladesh?
21:25 < yashgaroth> true, they bundle in all the failed trials and R&D
21:25 < rigel> even doing the work here, theres a lot of drugs that only cost $150mil or so
21:25 < yashgaroth> man I don't want china stealing it and selling cheap knockoff plasmods
21:25 < rigel> they bundle in failed trials, but also opportunity cost
21:25 < rigel> and a lot of other accounting tricks
21:25 < nmz787> why is there a make file if its interpreted kanzure
21:25 < yashgaroth> actually wait I was making a bad joke about knockoffs with spelling errors, but "plasmod" is actually a sweet name
21:25 < rigel> what do you mean "stealing"
21:25 < rigel> its information isnt it?
21:25 < yashgaroth> yeeesssss
21:25 <@kanzure> nmz787: because i like to use makefiles to simplify some common behaviors
21:25 <@kanzure> nmz787: check out the makefile to see what it does
21:25 < rigel> doesnt it want to be free or something
21:26 <@kanzure> "make test", "make upload" (to send a new version to pypi), etc..
21:26 < yashgaroth> but my fast cars and even faster mansions
21:26 < yashgaroth> anyway I don't think I have enough money for a chinese clinical trial, even
21:26 <@kanzure> clinical trials: langton labs style
21:27 <@kanzure> all residents of langton labs must report immediately for clinical testing
21:27 <@kanzure> i'm sure they would be down for it
21:27 < rigel> Quintiles will pretty much do anything
21:27 < yashgaroth> I've got the grinders already, don't need those nonces at langton
21:27 < rigel> they are the mercs of the clinical trials world
21:27 < rigel> theyll get their own for-profit IRBs together to nod over the protocol and approve it
21:27 < yashgaroth> also I don't know how clinical trials are operated for non-therapeutic purposes, since it won't cure anything
21:28 < rigel> they will outsource the testing to dirt poor farmers in bangladesh
21:28 -!- lichen [~lichen@c-24-21-206-64.hsd1.or.comcast.net] has quit [Quit: Lost terminal]
21:29 < yashgaroth> this is all starting to sound harder than 'coerce doctor'
21:29 <@kanzure> yashgaroth: it will cure your insatiable hunger for uh..
21:30 < yashgaroth> flesh?
21:31 <@kanzure> i wonder if it's possible to invent a bogus disease and get the FDA to approve a medicine for this bogus disease
21:31 <@kanzure> i guess this will not get past the double blind portions
21:31 < yashgaroth> well theoretically it'd work for sarcopenia and cachexia
21:32 < nmz787> kanzure: does python setup.py uninstall work somehow
21:32 < nmz787> i tried it and remove and they didnt work
21:33 <@kanzure> pip has remove
21:33 <@kanzure> pip remove spectrometers
21:33 < nmz787> i didnt use pip
21:33 < nmz787> i used setup.py install
21:33 <@kanzure> pip alters the same thing that setup.py install alters
21:34 < nmz787> pip remove spectrometers
21:34 < nmz787> Usage: pip-script.py COMMAND [OPTIONS]
21:34 < nmz787> pip-script.py: error: No command by the name pip-script.py remove
21:34 < nmz787>   (maybe you meant "pip-script.py install remove")
21:35 <@kanzure> pip uninstall spectrometers
21:35 < rigel> kanzure: "social anxiety disorder"
21:35 < rigel> though the best practice for this sort of thing is usually to take a rarely-diagnosed disease and assert that it is under-diagnosed
21:36 < rigel> cf. restless leg syndrome
21:36 <@kanzure> how about ebola?
21:36 < rigel> probably not
21:36 <@kanzure> wouldn't fly huh
21:37 <@kanzure> nmz787: would you mind if i add your serial/com code to python-spectrometers?
21:37 < nmz787> kanzure: yes
21:38 < nmz787> kanzure: this is openSpectrometer code
21:38 < nmz787> at least let me get it working
21:38 <@kanzure> well, i was thinking you could see the alternative that i suggest and then you can choose whether or not you want to use it
21:38 < nmz787> why didn't you just upload those files to the openSpectrometer repo?
21:39 <@kanzure> because i didn't know you were still using that repo, :/
21:39 < nmz787> ?
21:39 <@kanzure> i wrote those files before you reminded me today that you were writing things in that git repo
21:39 < nmz787> ahh
21:39 <@kanzure> there was this like five minute gap when i didn't say anything, didn't you notice
21:39 < nmz787> unless you have a strong reason to change the name...
21:39 < nmz787> it's only this part of the code that's in python
21:40 < nmz787> originally i'd planned on making some data analysis tools on the web
21:40 <@kanzure> yes, i specifically mean your com/serial code and not your gtk things. i was going to show you how it would look like to separate the gui concerns from the underlying library.
21:40 < nmz787> but i couldn't find a nice way to handle numpy like ops in javascript
21:40 <@kanzure> but i told you how :/
21:41 < nmz787> no you didn't
21:41 <@kanzure> when there's no way to do it directly in javascript, you write up a quick server app and just run the server locally, then communicate with the server through javascript
21:41 < nmz787> that sounds horrible
21:42 < nmz787> why wouldn't you just do it all in GTK then?
21:43 <@kanzure> you could, the gtk front-end would get data from a back-end
21:43 <@kanzure> a browser could be useful if you want multiple users to view the same graphs
21:43 <@kanzure> on different machines
21:43 <@kanzure> or if you want to support some basic mobile things without porting gtk things to android/iphone/blackberry/etc.
21:44 < nmz787> right but it would be easier to keep it ALL python or ALL web separately
21:44 < nmz787> like i said the phones likely won't have usb HOST
21:44 < nmz787> and they won't run python
21:45 <@kanzure> in the context of a web page showing a graph loading data from a remote server, i don't think it matters that the phone is not running usb host mode
21:45 < nmz787> so if it's not all web, then it's gotta be phone OS specific
21:45 <@kanzure> python runs pretty well on android, but i haven't tried it on iphone
21:46 <@kanzure> i think your strategy so far is working- but don't get pissed off if i submit pull requests cleaning up some things
21:47 -!- sheena1 [~home@d207-216-112-48.bchsia.telus.net] has joined ##hplusroadmap
21:47 < nmz787> well doesn't it look like your project now
21:47 < nmz787> since it's your repo
21:49 <@kanzure> git repos can be controlled by anyone
21:49 < nmz787> so that CaMV is dangerous article guy didn't post my comment where i specified how i though he was wrong
21:49 -!- nsh [~nsh@wikipedia/nsh] has joined ##hplusroadmap
21:49 <@kanzure> the only thing that makes python-spectrometers "mine" at the moment is that i am the only user that pypi.python.org allows to publish an updated version, but i could add you to that
21:49 < nmz787> how do i linkback my response which i posted to DIYbio, that didn't get moderated?
21:49 < nmz787> how does pypi get updated?
21:50 <@kanzure> make upload
21:50 < nmz787> when there's a new version
21:50 < nmz787> does it keep a copy there?
21:50 < nmz787> make isn't on windows
21:50 < nmz787> :(
21:50 <@kanzure> you mean, you haven't installed make ;) (cygwin, etc. etc..)
21:50 <@kanzure> yes, pypi keeps copies of all versions of all public packages
21:50 <@kanzure> that's how everyone is able to type things like "pip install pie"
21:51 <@kanzure> here's python-requests: http://pypi.python.org/pypi/requests
21:51 <@kanzure> old versions: http://pypi.python.org/packages/source/r/requests/
21:56 < nmz787> kanzure: how do i clear all the values in a dict without messing the keys
21:56 < nmz787> dict.values()=[] dont do it
22:02 <@kanzure> uh, my first idea is mydict.update(dict([(key, None) for key in mydict.keys()]))
22:03 <@kanzure> second idea is to create a new dict.. new_dict = dict([(key, None) for key in old_dict.keys()])
22:04 < nmz787> how about this
22:04 < nmz787> d={'a':1,'b':2,'c':3}
22:04 < nmz787> >>> default_val=99
22:04 < nmz787> >>> for k in d:
22:04 < nmz787> ...     d[k]=default_val
22:04 < nmz787> d=={'a': 99, 'b': 99, 'c': 99}
22:05 <@kanzure> well yeah, but i was trying to crush it into a single line on irc :p
22:08 <@kanzure> aaronsw memorial stuff http://www.livestream.com/oreillyradar
22:09 < nmz787> [(myDict[key]= None) for key in myDict.keys()]
22:09 < nmz787> why can't that work
22:11 <@kanzure> because assignment statements aren't compatible with list comprehension statements
22:12 < nmz787> yeah, pretty dumb
22:19 < nmz787> kanzure: so adding the values as an array is PITA
22:19 < nmz787> since they're now a dict
22:19 < nmz787> instead of a list of data points
22:20 < nmz787> and once i've added them, I can't easily store them back to the orderedDict values
22:22 <@kanzure> well, you could create a new type that does exactly what you need
22:32 -!- paperbot [~paperbot@131.252.130.248] has quit [Remote host closed the connection]
22:32 -!- paperbot [~paperbot@131.252.130.248] has joined ##hplusroadmap
22:35 -!- yashgaroth [~ffffff@cpe-66-27-118-94.san.res.rr.com] has quit [Quit: Leaving]
22:38 < nmz787> kanzure: isn't that against being compatible
22:38 <@kanzure> nope, there are things you can do in python to make your object act like other objects
22:46 < nmz787> so i shouldn't pass around an ordereddict? you think i should make some spectrometerDataObject?
22:47 <@kanzure> well, if you want something more than an OrderedDict, then yeah.. play around with something and see if it works for you..
22:51 < nmz787> lemme see if there's an easy way to assign all the values to an ordereddict at once
22:51 < nmz787> maybe it's just using two arrays underneath
22:52 <@kanzure> mydict.update(some_other_dict)
22:52 <@kanzure> that's how you do it "at once"
23:01 < nmz787> yeah but that's horrible for memory
23:02 < nmz787> seems like using that kinda stuff too often is what makes it not run well on something like android
23:05 <@kanzure> well, that's why you would use __iter__ and iterables
23:14 < nmz787> that isn't convenient though
23:14 < nmz787> should I just change the data from a dictionary, to two parallel lists?
23:14 <@kanzure> why, again? can you explain the problem one more time?
23:25 < nmz787> i have the spectra
23:25 < nmz787> they are orderedDicts
23:25 < nmz787> i want to average them
23:26 -!- lichen [~lichen@c-24-21-206-64.hsd1.or.comcast.net] has joined ##hplusroadmap
23:26 < nmz787> so i used to pass them to a function, it copied one to have a skeleton structure, deleted the data, then summed the data from each spectrum into that blaned copy
23:26 < nmz787> blanked copy*
23:26 < nmz787> then i would divide that summed data by len(spectraList)
23:26 < nmz787> using numpy
23:26 < nmz787> all that
23:26 < nmz787> the summing and dividing
23:27 < nmz787> then i'd return that temp structure
23:27 <@kanzure> okay
23:27 < nmz787> that was when it was just a dict with a list of values
23:27 < nmz787> and the start and endwavelength
23:28 < nmz787> so it /was/ a list then
23:28 < nmz787> and numpy worked easily
23:28 < nmz787> but now it's not a list, it's a list of values in the orderedDict
23:28 < nmz787> but i can't act like its a list
23:29 <@kanzure> i am having troubel following. what structure does numpy expect?
23:29 < nmz787> list
23:29 < nmz787> for spectrum in listOfSpectra:
23:30 < nmz787> output['datapoints']=np.add(output['datapoints'], spectrum['datapoints'])
23:30 < nmz787> that's what it was
23:32 <@kanzure> and now?
23:32 < nmz787> figuring that out
23:33 < nmz787> i guess i'll just use a temp array
23:33 < nmz787> then go through at the end and reassign each value
23:38 < nmz787> kanzure: is there a way to enforce that all spectra are OrderedDict ?
23:38 < nmz787> so the code won't run if someone adds a plugin but has some unordering step
23:39 <@kanzure> i would recommend against that..
23:39 <@kanzure> so um.. why are you using np.add ?
23:39 <@kanzure> what's wrong with my_dict.update() ?
23:40 < nmz787> i guess i could use a for loop instead
23:40 < nmz787> of numpy
23:40 < nmz787> before since they were lists it was easy
23:44 <@kanzure> np.add just updates things i thought
23:44 <@kanzure> brownies: check this out
23:44 <@kanzure> 23:43 < tjohnson> you can find papers doing cost analysis and reporting that for many ILL requests, it's cheaper to buy the item new than use ILL
23:44 < nmz787> kanzure: how's this http://pastebin.com/X73Zq5cs
23:44 < nmz787> numpy does matrix additions
23:44 < nmz787> and matrix divisions
23:44 < brownies> kanzure: well that is interesting.
23:44 <@kanzure> what is listOfSpectra[0]
23:45 < nmz787> the first item in the list
23:45 < nmz787> duh
23:45 < nmz787> its an ordereddict
23:45 <@kanzure> but why are you using deepcopy?
23:45 < nmz787> with one of the values being datapoints, where the value of that is an ordereddict
23:46 < nmz787> because I don't want to modify the existing data
23:46 < nmz787> the function is average
23:47 < nmz787> simply setting out=in does some pointer-like shit
23:47 <@kanzure> brownies: more details, http://diyhpl.us/~bryan/papers2/paperbot/91b4a36a1f5865fa3dafafc17424f297.pdf
23:47 < nmz787> i guess since it's an object
23:47 < nmz787> kanzure: so i'm gonna move that function to spectrometer
23:47 <@kanzure> i guess
23:48 < nmz787> since it's not ph experiment only
23:48 <@kanzure> when it's working, i'll take a closer look at it
23:48 <@kanzure> for now i am having trouble understanding it completely
23:48 < nmz787> it works
23:48 <@kanzure> well,
23:48 <@kanzure> i suggest creating a unit test that loads some sample data
23:48 <@kanzure> and confirms that it's working
23:48 <@kanzure> have you done unit tests before?
23:48 < nmz787> but you don't have gtk to see what i would show you
23:48 <@kanzure> i exclusively use gtk what are you talking about
23:49 <@kanzure> btw i highly recommend writing a unit test
23:49 <@kanzure> if you want some examples of how to write unit tests, uhm, i wrote a crapload of them in the pokecrystal project
23:50 < nmz787> yeah i only have this test data for this experiment so far
23:50 <@kanzure> https://github.com/kanzure/pokecrystal/blob/master/extras/crystal.py#L8154
23:57 < nmz787> I dont get it
--- Log closed Fri Jan 25 00:00:39 2013