IRC Logs for #circuits Monday, 2014-03-31

c45yoh, this silly HP software00:37
c45yits made up of a bunch of parts00:37
c45yand they all interface over this terrible rest api00:37
c45yanyway going for a run00:38
prologicc45y: in what way is it silly?00:43
*** irclogger has joined #circuits01:20
Romsterwell i can help by running a bot on my server01:23
prologicAnd where/what is your server?01:25
prologicwanna go this this with me? :)01:41
prologicassuming I can whip up some quick slides this evening and tomorrow evening01:41
c45ywednesday is no good for me sadly01:59
c45yraid night01:59
prologicoh well :)02:10
prologicI might write up said slides anyway02:10
prologicI need to get them done and time’s a wasting02:10
c45yI've managed to blat my earlier success02:10
prologicanyway — read your backlog :)02:11
prologicscroll up?02:11
c45yI saw the meetup and you grumbling about the netsplit02:12
prologicread the logs? :)02:12
prologicyou nicked off for a run and missed a few comments/q’s form me :)02:12
prologicsomething about the rest api(s)02:12
prologicand why they’re silly?02:12
prologicand you said something about a book?02:13
c45yoh right02:13
c45ythere is a concepts guide for this HP software02:13
c45yand type concepts guide, with a sprinkling of facts02:13
c45yand the backend api is actually quite nice, however rather than sharing a socket or something these products call each others api endpoints02:13
c45ywhich I guess is actually good modular software design, so I retract that part02:14
prologicahh yeap02:14
prologicyeah no I don’t see a problem with that02:14
prologicexcept that if this is meant to be distributed storage02:14
prologicI do02:14
prologicthere’s a difference between apis02:14
prologicand distributed02:14
c45yjust a lifecycle engine02:14
prologicI thought this is distributed storage?02:15
prologicoh ok02:15
prologicisn’t this stoage WORM too?02:15
c45yits basically a wrapper around java and a lifecycle engine to trigger events02:15
c45yprologic: nope02:15
c45ywrong system02:15
c45yyou're thinking archiving02:15
prologicoh right02:15
c45ythis is working storage02:15
prologicI misunderstood what AB was saying about the working storage vs. archig storage proejcts02:16
prologicbut maybe he also mis-spoke02:16
c45yhahha oh wow02:16
c45ya vendor got back to me about their api02:16
c45ythe software only has one 'admin' user, and you have to drive the user using that api02:16
c45yand the username/pass needs to be in each request as params02:16
prologicoh FFS02:17
prologicyou have got to be kidding me?02:17
prologicno MHAC auth?02:17
c45yi thought they messed up the documentation when I read it, and I sent a somewhat saterical request for info02:17
prologicnot even Basic Auth or Digest Auth?02:17
prologicgeez christ02:17
c45yyea basic auth by the looks of it02:17
prologicbetter not expose this shit over the Interwebs then02:17
c45yYea...10 dot it is02:18
prologicyeah well basic auth is just user/pass over plain text in each request02:18
c45yat least it's https from the looks of the spec02:18
prologicsince when is https == security? :)02:18
c45ysince self signed certs, duh02:18
prologicI’m disappointed in 2014 we still have vendors that just don’t do basic/better auth than basic auth02:19
prologichow very sad02:19
c45yi'm not super happy about it either02:19
prologicso I could intercept the traffic02:19
prologicfake the ca02:19
c45ybecause admin creds can do horrible things02:19
prologicaccept the cert on it’s behalf02:19
prologicintercept the ssl02:19
prologicand steal the admin/pass02:19
prologicthen then hack the storage  :)02:19
c45ythis literally sits in front of 500TB of storage02:19
c45yand controls it to a degree02:20
prologicimagine then that someone does hack it02:20
prologicrm -rf /02:20
Workstertrusting a SSL cert company is just not right. we have had a few bad authorities already02:20
c45ybitsec pls02:20
c45yI'm pretty keen to see if namecoin or something similar actually takes hold02:21
Worksterthey are more likely to set it up to spam others and dish out malware to rm everything02:21
c45yI hate the ssl monopoly02:21
Worksterthan to*02:21
c45yWorkster: I work at a uni02:21
c45ythey will rm02:21
Worksterwho is they hackers? or uni students?02:21
c45ymost intrusions are students02:21
Worksterwell then i agree they'll rm.02:22
prologicor disgruntled employees02:22
c45ynobody but storage team could really get at the endpoint luckily02:22
c45yand there is only really 3 of us atm02:22
prologiccan you say that with confidence?02:23
prologici.e: impossible02:23
c45yit would be easier to go after my workstation02:23
prologictrue :)02:23
c45ynothing is impossible, however im not super worried, just annoyed that they make such bad software02:23
prologicwe have a project some of my other colleagues are working on02:24
prologicCollumbus with Amero02:24
c45yyea I know of it02:24
prologicthe Amero side (Djanga app) is nice02:24
prologicbut Collumbus is a pile of shit02:24
prologicwanna get some coffee?02:24
c45yi'm not implementing part of my project because of collumbus :P02:24
prologicInternet Cafe?02:24
Worksterre-write it like you do with everything else?02:24
prologicre-write is ssdly not always the “right” answer :)02:25
prologiccoffee cofffe coffe!02:25
prologiccoffee coffee coffeeeee!02:25
c45yumm give me a little bit02:25
Worksternot writing horrible frameworks in the first place is the right answer02:25
prologicsure :)02:25
c45yjust got back from running through the hills around here02:25
Worksterlol coffee fanatics02:25
c45ywater > coffee02:25
prologicwe’re desk jockeys02:26
prologicwhat od you expect :)02:26
prologicno caffine, brain go sleepy sleepy02:26
c45yI'm actually a jockey02:26
c45yprologic is the horse02:26
c45yunderstandable I guess02:27
Worksterhmm i got a dead mobo weird fault, beeps 6 times power cycles repeats and it'll eventually then work02:29
Worksterunder warranty, so paper work time.02:29
c45yit's doing its pre boot up counting tests02:29
c45ycan I add numbers, yes, ok booting!02:30
Workstershould only beep once02:30
c45yWe tend to just not turn things off02:31
c45yso when they do go off normally they don't come back02:31
c45ycracked ram etc02:31
Workstertried ram i'll try another psu just to be sure.02:31
Worksterhehe yeah, i leave my stuff on and it's all on UPS's02:31
Worksterand i have a generator for extended outages02:31
c45your DC is on ups power thankfully, no generator :(02:32
c45ydo have batteries02:32
Worksterno generator tsk tsk02:32
c45yactually I think one of our datacenters has a generator now02:32
Worksterhow many blackouts where the batteires are drained?02:32
c45ywe get about 6 hours of life under moderate load, never really had a full outage02:33
c45ywe have multiple rings to each of our datacenters02:33
c45yits odd for power to go out, and when it does its normally back pretty quick02:33
c45yone of those grids at each dc shares a hospital02:33
Worksterhospitals usually have generators02:35
c45yhaha ok02:36
c45ymeet you out the front of enternet in a sec02:36
Worksternope this is deffently dead new psu no go still. oh well client will have to wait for a replacement board.02:39
prologicc45y: Have you seen ?03:29
c45yI can see it in your local repos ;)03:30
prologicThis is an example (probably very close or identical to this) how I would expect S3 to spin up any app/system I am responsible for that gets dpeloyed/managed by S3 :(03:30
prologicerr :)03:30
prologicyeah :)03:30
prologicOh btw…03:31
prologicI’d be very curious to see your component graph renderd in your bnc app at some point03:31
c45yit's basically your irclogger class with a web front end and a ring buffer attached03:32
prologicat some point :)03:32
prologicjust be intresting to see where you take it, etc03:32
prologicand how all the different components fit together03:32
c45ythats me atm
prologicNo logger component yet?03:35
prologicor ring buffer03:35
c45yknocking off some more reading03:35
c45ythen ill take a 10 minute break and have a stab at it03:36
prologicyour feedback today makes me thinkg I should reword/rewrite the README of circuits03:36
prologicso it better explain circuits at a high level03:36
c45yit does kinda gloss over high level concepts03:36
c45ywhich would be ok if it wasn't as unique as it is03:36
prologicahh right03:36
prologicI mean I don’t mind being asked questions obviously03:37
prologicand I love helping out, etc03:37
prologicobviously though docs are as important if not more than the actual code or framework itself03:37
c45yyea ofc, however most users wouldn't jump into irc to ask before finding another framework ;)03:37
prologicso I’ll definately write a new tutorial03:37
prologicmight do that tonight even03:37
prologicno that’s true03:37
prologichowever you’d be surprised03:37
prologicwe’ve had a few that have just jumpe din03:37
prologicvia teh circuits website03:37
prologicwhich links to the freenode web chat client03:38
prologicso it’s just a “click” away, so to speak03:38
prologicit would be nice if I could get some help with a complete overhaul of the website and make it a lot seixer than it is03:38
c45yhowever look at something like flask, the documentation makes it amazing03:38
prologiccause I suck at UI (d’uh being blind et all)03:38
c45ywhen otherwise its just another wsgi wrapper03:38
c45yI would be down to help there03:38
prologicthat would be all kinds of awesome!03:39
c45yall my front ends are web ends, you get good at it after a while03:39
prologicat the very least needs a new theme03:39
prologicit obviously uses sahriswiki itself03:39
prologicand is completely themable via genshi03:39
c45yit has html elements03:39
c45yit can be styled03:39
c45ybackend is largely irrelevant03:39
prologicit’s just a wiki/cms that pwoers it03:40
prologicand most of my website that I care about03:40
c45yI'll have a look when I get home tonight i think03:40
prologicsweeet :)03:40
prologicspecifically you’ll want to look at:
prologicwhich contains it’s repository of pages03:40
prologicas well as it’s theme (the default one)03:41
prologicpowered by this:
c45ystyle looks clean, nice03:43
prologicwell yes it’s certainly clean and nice03:44
prologicIHMO :)03:44
prologicIt was designed by an old acquitance that was tbh quite good I thought with UI Design and Style03:44
prologicKarl Blessing I think was his name03:45
prologicThis guy I believe03:45
prologiche wrote this back in 200103:46
prologicyeah that’s the guy :)03:46
c45yhaha wow03:46
c45ynever used uwsgi03:47
prologiche’s moved on now to bigger and more profitable things I believe03:47
c45ygunicorn ftw03:47
prologicdata centers and hosting and what not03:47
prologicthere are many such wsgi frameworks and servers out there03:47
prologicall with their pros and cons03:47
prologicbut come in basically three categories03:47
prologicor asynchornous03:47
c45yI just like the fact I can specify workers03:48
prologicyou can guess which there aren’t that many off03:48
c45yI used to use bjoern actually, you should check it out03:48
c45ypretty sure it forks a stub of itself with each request03:48
c45ywhich sadly during ddos exhausted my boxes03:48
c45ygunicorn I can specify a limit :)03:49
prologicHow about this though:
c45yI feel very stupid03:50
c45yforgot to RingBuffer().register(self)03:50
c45yno wonder it wasn't getting any events03:50
prologickinda helps to register components together03:51
c45yI've heard such things said03:51
c45yI wanted to prove otherwise03:51
prologicwell not sure how the framework would automagically decide if you really wnated that component to be registered or not03:51
c45yfilter globals() type Component .register(self)03:52
prologicYou can do this :)03:53
prologicIt’s an undocumented feature03:53
prologicwhich we really ought to document I guess03:53
prologicall in the name of laziness03:53
c45yyou should write perl03:53
prologicno tahnks :)03:54
c45yI quite like perl03:54
c45yrun once and forget shell scripts with good regex engine03:54
prologicit’s idioms and syntax drive me kinda banannas03:54
c45yyou drive me $_03:54
c45yhmm so if i have a def get() in my ringbuffer component it will hook any 'get' events?03:55
c45ydon't really want to call RingBuffer._get(0,10)03:55
c45ylooks messy03:55
c45yoh, I should make it a buffer event03:56
c45ynevermind now im thinking with portals03:56
c45yanyway, meeting, bbl03:57
prologicThanks :)03:58
ircnotifiere4069f0143c8 by prologic: Added a note about documenting implicit component registration based on class attirbutes. See Issue #8803:58
prologicc45y: yes if you subclass Component (not BaseComponent) def get(…) will create an event handler for “get” events.04:00
c45yeven if I def _get \n get = _get04:01
c45yI guess that still shows as a func...04:01
c45ypoop poop poop04:02
prologicnot sure about function references04:05
prologicI guess it works as expected04:07
prologic-however- you’ve unturned a bit of a bug there04:07
prologicseems you get a duplicated event handler as such04:07
prologici.e: the event handler will likely get called twice04:07
prologicI’ll make a note of that04:07
prologicAnd again thanks!04:10
prologicfalse alarm, see comment04:13
prologichome time05:16
c45yprologic: got the ring buffer working :)05:22
c45yat least for logging05:22
c45yand the web component can access it nicely05:22
Worksterprologic, is spyda in working form on circuits-dev i'd like to start using that06:18
prologicWorkster, spyda does not currently use circuits for any kind of I/O06:47
prologicbut otherwise it's fully functinoal and 100% unit testsed06:48
prologicc45y, cool :) awesome stuff06:48
prologicc45y, when it's ready to test, create a Dockerfile for it, publish it up on and I'll test it out :)06:48
*** Ossoleil has joined #circuits08:50
*** c45y has quit IRC08:54
*** c45y has joined #circuits08:54
*** lhonda___ has joined #circuits08:57
*** lhonda__ has quit IRC08:57
*** ninkotech has joined #circuits09:10
*** apb has joined #circuits10:44
*** apb has left #circuits ()11:20
prologicheya all12:22
prologicanyone awake? :)12:22
prologicoh heya13:43
prologicjust ironed out a solution to:
prologicmy idea is to basically calculate the standard deviation of the request set of range(s)13:43
prologicif they exceed 2.0 we reject the request13:43
prologicwe also take a set() of the resulting range set to thwart duplicates13:44
prologicspaceone, ping?14:02
spaceoneprologic: set() → removes the order14:11
prologicI didn't use a set explictely14:16
prologicjust ignoring any duplicates already in the list14:16
prologicso order os preserved14:16
prologicbut bytes=1-00,1-10014:16
prologicthe 2nd will be ignored14:16
prologicfrom reading the spec14:17
prologicit doesn't satisfy the spec IHMO14:17
prologicas 1-100,1-100 is not a valid set14:17
prologicwhereas 1-50,51-100 is14:17
spaceone1-100,1-100 should be unsatisfiable (in a second step)14:18
prologichmm why?14:26
prologicI'd just ignore the duplicate range14:26
spaceonebut then you are modyfing it... that would be incorrect14:28
spaceonei will search in the spec for it, but not now14:28
prologicspecs say nothing about this14:28
prologicwould you be okay with my committing this thougH?14:29
spaceonei didn't test it14:29
prologicit has a unit test14:29
prologicI should probably add one more test14:29
prologicand conition14:29
prologicof the form14:30
prologicsay a file is 10 bytes long14:30
spaceonejeah, there should be more tests against malicious requests and error handling14:30
prologicthe no. of ranges is stupidly long14:30
prologicsure I agree14:30
spaceonei am currently thinking about how to write this generically for all WSGI servers14:31
spaceoneso that a test script exists which is independend from circuits14:32
prologicthe only answer to this14:32
prologicfunctional programming14:32
prologicis the only real form of reuse14:32
prologicaside from components :)14:32
prologicOOP != (necessarily) good reuse14:32
*** Ossoleil has quit IRC14:33
spaceonebut functions must not have side effects14:35
prologicno that's not true14:35
prologicpure functions must not have side effects14:35
prologicwithout side effects you cannot manage state14:36
prologicor affect the real world14:36
spaceonethe application should define how state should be handled14:36
prologicin a real pure functional programming langauge like Haskell14:36
prologicthey're hidden away in things called Monads14:36
spaceonenot the function which is the generic soluition to a part of http-spec14:37
prologicany library designed for reuse14:37
prologicmust not mix state and behavior into classes and objects14:37
prologicor make wild assumptions14:37
prologice.g: supporting only stream-based stuff14:37
prologicmeans you won't work very well with async frameworks14:38
prologicanyway g'night14:38
*** Ossoleil has joined #circuits14:51
*** bloody_ has joined #circuits15:27
*** An_Ony_M1ose has joined #circuits15:28
*** An_Ony_Moose has quit IRC15:29
*** Ossoleil has quit IRC15:52
*** Ossoleil has joined #circuits16:03
*** Ossoleil has quit IRC17:54
ircnotifier2c27672f482d by prologic: Prevent duplicate range(s) and range(s) that have a exceedingly high standard deviation. Fixes Issue #5920:13
ircnotifier969c16f35c59 by prologic: Merged with 2c27672f482d20:13
ircnotifier42eb7b3b8496 by prologic: s/XXX/TODO/g20:13
*** circuits_github has joined #circuits20:15
circuits_github[circuits] therealprologic pushed 4 new commits to master:
circuits_githubcircuits/master 8bd3f27 James Mills: Added a note about documenting implicit component registration based on class attirbutes. See Issue #8820:15
circuits_githubcircuits/master 673af54 James Mills: Prevent duplicate range(s) and range(s) that have a exceedingly high standard deviation. Fixes Issue #5920:15
circuits_githubcircuits/master a42868e James Mills: Merged with 2c27672f482d20:15
*** circuits_github has left #circuits ()20:15
prologicc45y, when you get into to work today I have a businsess opportunity for us that's just come up20:16
prologickoobs, your company could sponsor the project too a little :)20:16
ircnotifierb83c1e59bee3 by prologic: Fixed typo21:58
prologicheya all23:17
prologicwoot woot get to work on a much more enjoyable project today — ccav the TerraNova visualization tool which is _NOT_ written in Zope/Plone :)23:17
prologicyaya ;)23:17
prologicIt actually uses a whole bunch of libraries23:18
prologicand circuits.web for it’s web frontend (or part of it)23:18
prologicgraphite / cube?23:18
c45ytime series data23:19
prologic^^^ these?23:19
prologicthat sounds really cool23:20
prologicwhat are you thinking of using that for?23:20
c45yI need something for exception logging and app metrics23:20
c45yso, user login / month, files shared /month etc23:21
prologicso @handler() — a global handler23:21
prologicaka like the Debugger/logger23:21
prologicand @handler(“exception”, channel=“*”)23:21
prologicand throw them at cube?23:21
c45yI'm not writing the app23:21
c45ythis is owncloud related23:21
c45yI can add a module23:21
prologicso the implemtnation is sort of out of your hands23:22
c45ysadly yes23:22
prologicyeah well Cube looks pretty straight forward to me23:22
prologicnice API and nice interchange format23:22
c45yseems the best so far23:22
prologiconly time series data I’ve dealt with in the past is around systems23:22
prologicwith Nagios and Cacti23:22
prologicbut I’ll keep this tool in mind :)23:22
c45yI hate nagios and cacti custom checks suck23:22
prologicit looks nice23:22
prologicI’d give it a go :)23:22
prologicno I detest them both too23:23
prologicthey’re a bit arcane23:23
prologiclooks like it’s wrrten in JavaScript23:24
prologicbut otherwise looks relaly god ihmo23:24
c45yI'm currently just dumping things into log files23:24
c45ynot sure if should just parse or put into a system like this23:24
prologicsounds like you can really23:25
prologici.e: after the fact23:25
prologicwrite a system that uses cube23:25
prologicand parses the log files in the form it needs23:25
prologicand voila23:25
prologic*I think*23:25
c45yDunno yet23:27
prologicthat’s what I’d do I think23:27
c45ythe pid wasn't too clear about it all23:27
prologicif you already have log files lying about23:27
prologicthat get poulared23:27
c45yI wrote a module to generate them23:27
prologicquickly whip up another subsystem that pareses tehse and chucnks them into cube23:27
prologicI always believe in componentizing and keeping things loosely coupled (within reason)23:27
prologiceven systems :)23:28
c45yI just need to keep in mind that there will be nobody maintaining this23:32
prologicwell not even you?23:33
c45ythe project tech position ends june, after that there is no employed person to look after this23:34
prologicfor the working storage project?23:35
prologicor just this small part?23:35
c45ythere is operational funding for growth of the systems, but we get no more positions and I have no role to return to23:35
c45yso i disappear23:35
prologicyou mean you have to find another job elsewhere?23:36
prologicor you’re going back to something else in S3?23:36
c45yI have no position, it ended last december23:37
prologicoh geez23:37
c45yunless something comes up or I jump onto another project23:37
prologicare they not looking to renew your contact and keep you on in something else?23:37
prologicman that sucks23:37
c45yI don't have a contract, it finished23:37
prologicyou should come work with us :)23:37
c45yI'm considering it23:37
c45yyou guys are hiring atm I believe23:37
prologicare we?23:41
prologicI know we hired two new ui developers23:41
prologicand a new replacement pm23:41
c45ywhere hiring sorry23:41
prologicI wasn’t away we were hiring more “developers"23:41
prologicI use the term rather loosely :)23:41
c45yposition seems to be off the jobs bord23:41
c45yyou should jump into #mark2 quickly23:42
c45ythey are using twisted for a game server wrapper and implementing an events system on top of it23:43
c45yim informing them of circuits but my high level overview lacks understanding23:43
c45ynot sure if they will take, but it was a fairly popular project when they were devloping it, might be some good publicity23:54
prologicnice :)23:55
prologicappreicate it :)23:55

Generated by 2.11.0 by Marius Gedminas - find it at!