IRC Logs for #circuits Tuesday, 2014-04-08

*** edk has joined #circuits00:00
*** Workster has quit IRC01:43
prologicc45y: heya02:27
*** kdb has joined #circuits02:39
*** kdb has quit IRC02:41
*** kdb has joined #circuits02:45
*** kdb has quit IRC02:49
*** kdb has joined #circuits02:56
*** kdb has quit IRC02:58
*** kdb has joined #circuits02:58
*** kdb has quit IRC03:00
*** kdb has joined #circuits03:00
*** kdb has quit IRC03:03
*** kdb has joined #circuits03:04
prologickdb: commands03:06
*** kdb has quit IRC03:06
*** kdb has joined #circuits03:16
prologickdb: commands03:16
*** kdb has quit IRC03:16
*** kdb has joined #circuits03:24
prologickdb: commands03:24
*** kdb has quit IRC03:24
c45yhey prologic explain SPARQL to me03:38
prologicoh no03:41
prologicwho’s dragging you into this?03:42
prologicSPARQL is SQL for Tripple stores03:42
prologicoh good lord03:44
prologicno don’t03:44
prologicplease don't03:44
prologicit just buys you way more comlexit than you’d want to care about03:44
prologicSPARQL is great if you are dealing with data store in a triple store03:44
prologicand only in a triple store03:44
prologicone of the things I hate about this Plone project (TerraNova)03:44
prologicis how little we use 4store (a triple store)03:45
c45yit will be data from plone :P03:45
prologicand how useless all the SPARQL is03:45
c45yor, research-hub/data03:45
prologicoh geez chris03:45
prologicoh no that’s different03:45
c45yor repositories i think03:45
prologicresearch-hub is Java03:45
prologicVITRO is the application03:45
prologicbacked by a JENA+MysQL triple store03:45
prologicwith a SPARQL endpoint for querying03:45
prologicas if there aren’t enough interfaces to deal with03:46
prologicproblem is Triple Stores / Graph based data03:46
prologicis only useful if you actually make use of graph theory in your application03:46
prologicwe basically use it as a glorified schemaless database03:46
prologicno joke03:46
prologicI’m serious03:46
prologicwe may as well use MongoDB03:46
prologicor REdis03:46
c45yI'm populating form fields...03:46
prologicor anything else but this03:46
c45yfromt his data03:46
c45yalso redis +1 pls03:47
prologicargg ffs03:47
c45yI kinda want to use our backblaze as a massive redis host03:47
prologicit’s really no wonder our systems are so f’n fraglie03:47
c45yYea I'm against it03:47
c45yI want to do it in a seperate reporting phase03:47
prologicI’m just tired of all this shit03:47
prologicwe just do things willy nilly03:47
prologicand don’t think thinkgs through03:47
prologicanyway bitching aisde03:47
prologicI’m pretty sure the Research Hub has other ways to expose data to you03:48
prologicif you talk to Arve nicely03:48
prologicor Jan03:48
prologicthey can probably create JSON endpoints for various things03:48
prologicwhich I believe it already has for some parts03:48
prologicwhat kind of data are you trying to get out of it?03:48
c45ypopulating lists from repositories03:50
prologicso you’re just trying to get a list of what from reseach hub?03:51
prologica list of repositories?03:51
c45ywe're looking to populate for fields so that it may eventually be pushed into reshub03:53
c45yI dunno, too hard basket for now03:53
prologicyou do see the problem with having a sparql interace don’t you?03:57
prologicit’s basically like expsoing your data over sql03:57
c45ysounds crummy03:57
prologiceven with a schemaless data store03:57
prologicif you change your data structures03:57
prologicyou have to update os many systems that rely on this03:57
prologicSQL/SPARQL != RESTful03:58
prologicnor not even very sematic03:58
prologicright now I’m trying to deal with a bug04:03
prologicwhere you can’t search for things that contain “(“ or “)” in them04:03
prologicit queries our 4store triple store for some RDF properties04:03
prologicand well it’s not esacping the input data for the query04:03
prologicand so opens up the website to SPARQL injection attacks04:04
prologicWhich I’m going to find, discover and prove and document04:04
prologicthen try to fix04:04
c45ysounds pretty lame04:04
prologicit is really04:06
prologicit’s 201404:06
prologicI’m working on this amazingly wonderful system called Zope/Plone04:06
prologicand somehow I’m dealing with impoper input data escaping04:06
prologicand potential injection attacks04:06
c45yHave you considered rewriting it in objective C for run04:07
prologicObjective C fun eh?04:08
prologicI spose it could be worse :)04:08
c45yI doubt that04:08
prologicIt would be Ruby or Ada04:08
c45ythat was the worst language I could think of04:08
c45yI would rather write ruby04:08
prologicwell actually04:08
prologicC# is worse in my experience04:08
prologicbut yeah Objective C is up there04:08
prologictrue I would too04:08
prologichell I’d rather write Ada04:09
c45yC# is ok as long as you don't use .net04:09
prologicI’ve toyed with it before04:09
prologicit’s strict as all hell04:09
prologicif you don’t use C# with .NET04:09
prologicyou may as well not use it :)04:09
c45yan exceptional idea!04:09
prologicthat’s like saying04:09
prologicdon’t use Python with any Python lirbaries or 3rd-party libraries04:09
c45yYou did for circuits04:09
prologicI’m not sure how much you’d be able to get done with out the standrad library04:09
prologicor 3rd party libraries04:10
c45yoh, std04:10
prologicahh yes04:10
prologicbut it does use the std. lib04:10
c45yYea that would be silly04:10
c45yC# has its own stdf04:10
prologicit does04:10
prologicbut it’s still a statically compiled language04:10
prologicwith all the nasty horrible crap and hackery I don’t like with modern static lcnauges04:10
prologiclike reflfection — because they want to be dynamic too04:10
prologicjust be a dyanmic language ffs04:11
c45ylol php has reflection now04:11
c45ybuilt in04:11
prologicgood lord04:11
prologicPHP was always dynamic though04:11
c45yits nearly a clone of the way java does it04:11
prologicwhat’s with the reflection crap?04:11
c45ygoogle it04:11
prologicthat’s normally implemetend by static langauges that try to add dynamic features04:11
prologicoh good lord04:11
prologicsee the problem is static languages well04:11
prologicusally have static bindings04:11
prologicand you can’t instrospect obejcts and modify things all that well04:12
prologichence the reflection to try to cope with thie design limitation04:12
prologicdon’t you just love the flame wars static vs. dynamic04:12
prologicthey both try to be a bit of both04:12
prologicoooh wait04:12
prologicthat’s right04:12
prologichold up a minute04:13
prologicPHP is a statically compiled language04:13
prologichowever it has weak binding04:13
prologicI believe04:13
ircnotifier7a9e76020dee by prologic: Fixed for Windoes. Fixes Issue #9707:34
ircnotifier04a8936cf446 by prologic: Updated Change Log07:38
*** Ossoleil has joined #circuits08:06
*** Ossoleil_ has joined #circuits08:09
*** Ossoleil has quit IRC08:10
*** Ossoleil has joined #circuits08:12
*** Ossoleil_ has quit IRC08:13
prologicOssoleil, ping?08:20
prologicwhat's our policy on optional dependencies and optional features?08:21
prologicsay we add circuits.dns08:21
prologicthat implements a dns client and server08:21
prologicthat depends on dnslib08:21
prologicsee examples/ and examples/dnsserver.py08:22
Romsteronly make that module depend on it?08:42
Romsterso those that don't need circuits.dns don't need that lib?08:42
Romsterand have a check to see if it exists at run time?08:43
prologicwe do this for
prologicwhich is also why we have08:58
Romsternothing worse than installing the kitchen sink for something you wont use.09:10
Romsterfor some sub-module09:10
prologicwell that depends09:13
prologichaving async dns is a useful thing to have09:14
prologiccircuits.web could use it for it's Logger for examle09:14
prologicwhen resolving ip addresses to names09:14
prologicthere's a trade off I guess09:14
Ossoleilcatching up09:15
Ossoleilyeah indeed a tradeoff09:17
Ossoleilit’s probably quite important for circuits to not block on dns queries09:18
Ossoleilthat means we also block when binding sockets if a domain is used?09:19
prologicdnslib is BSD licensed09:20
prologicwe could incorporate part of it's codebase into circuits.dns09:20
prologicOssoleil, correct (I assume)09:20
Ossoleilthen we would have code with a different license inside09:22
OssoleilI would rather make an abstraction layer and use it optionally09:22
prologicI see09:23
prologicShould we adopt said practice for circuits.protocols.http as well?09:23
prologicand optionally import this if it's available09:24
prologicand optionally import the much faste rC one if it's there09:24
prologicRight now circuits.web.parsers.http directly copies the above http-parser09:25
prologicand incorporates it into circuits.web as-is09:25
prologic(with a few things deleted that we don't care about)09:25
*** ninkotech_ has quit IRC09:29
*** ninkotech_ has joined #circuits09:29
*** irclogger_ has joined #circuits12:52
prologicOssoleil, that's interesting12:52
prologicapparently a running Python process cannot resolve hostnames via normal gethostbyname12:52
prologicif you change /etc/resolv.conf whilst the process is running12:53
prologicbit of a flaw in socket.gethostbyname12:53
prologicnot sure if it's just Python or not though12:53
prologicbut another good reason to implement circuits.dns12:53
Ossoleilso you start the python server and then change /etc/resolv.conf?12:53
Ossoleilit probably just doesn’t rereads the file?12:54
prologicnot sure how the internals work tbh12:54
*** kdb has joined #circuits12:55
prologickdb, test foo bar12:55
*** kdb has quit IRC12:56
prologicOssoleil, also another thing12:57
prologicclass Foo(Event):12:57
prologic    pass12:57
*** kdb has joined #circuits12:57
prologicsorry wait12:57
prologicclass Foo(Event):12:57
prologic    channels = ("blah",)12:57
prologice = Foo.create("test")12:57
prologice.channels != ("blah",)12:57
prologicbasically the class method create does not inherit the parent class's attirbutes12:57
prologicor rather they get reset I guess12:58
prologicwhich kinda sucks and is unexpected behavior ihmo12:58
prologickdb, test foo bar12:58
*** kdb has quit IRC12:58
*** kdb has joined #circuits13:08
prologickdb, test foo bar13:08
kdbTest: foo,bar13:08
prologickdb, test foo bar13:08
prologickdb, test foo bar13:08
kdbTest: foo,bar13:08
kdbTest: foo,bar13:08
prologickdb, 113:09
prologickdb, 113:09
*** kdb has quit IRC13:09
*** kdb has joined #circuits13:11
prologicsomeone help me out here13:11
prologicneed to test it's concurrent handling :)13:11
prologickdb, foo!13:11
*** kdb has quit IRC13:12
*** kdb has joined #circuits13:14
prologickdb, foo!13:14
kdbUnknown Command: foo!13:14
prologickdb, test foo bar13:15
kdbTest: foo,bar13:15
prologicRomster, ping? :)13:15
prologickdb, commands13:15
kdbUnknown Command: commands13:15
*** kdb has quit IRC13:16
*** kdb has joined #circuits13:33
prologickdb, commands13:33
kdbUnknown Command: commands13:33
*** kdb has quit IRC13:34
*** kdb has joined #circuits13:34
prologickdb, commands13:34
kdbERROR (<type 'exceptions.AttributeError'>, AttributeError("'Commands' object has no attribute 'plugins'",), ['  File "/home/prologic/work/circuits/circuits/core/", line 561, in _dispatcher\n    value = handler(*eargs, **ekwargs)\n', '  File "/home/prologic/work/kdb/kdb/plugins/", line 36, in commands\n    plugins = self.plugins.keys()\n']): commands13:34
*** kdb has quit IRC13:35
*** kdb has joined #circuits13:37
prologickdb, commands13:37
kdbNo commands for None or None is not loaded13:37
prologickdb, commands *13:37
kdbERROR list indices must be integers, not str: commands *13:38
*** kdb has quit IRC13:38
*** kdb has joined #circuits13:42
prologickdb, commands13:42
kdbNo commands for None or None is not loaded13:42
prologickdb, commands *13:42
kdbAll available commands: unregister test13:42
prologickdb, commands test13:43
kdbNo commands for test or test is not loaded13:43
prologickdb, commands help13:43
kdbNo commands for help or help is not loaded13:43
prologickdb, commands Help13:43
kdbNo commands for Help or Help is not loaded13:43
*** kdb has quit IRC13:43
*** kdb has joined #circuits13:45
prologickdb, commands Help13:45
Romsterdidn't realize you wanted me i was busy13:46
kdbERROR:  (u'commands Help')13:47
*** kdb has quit IRC13:47
*** kdb has joined #circuits13:48
prologicyeah quickly test something for me13:48
prologictype: kdb, Test bar13:48
prologickdb, Test foo13:48
kdbTest: foo13:48
prologickdb, commands13:49
kdbNo commands for None or None is not loaded13:49
prologickdb, commands *13:49
kdbAll available commands: unregister info commands help13:49
prologickdb, commands test13:49
kdbNo commands for test or test is not loaded13:49
*** kdb has quit IRC13:49
*** kdb has joined #circuits13:50
prologickdb, commands test13:50
kdbAvailable commands for test: unregister test13:50
prologickdb, commands13:50
kdbAvailable commands for help: unregister info commands help13:50
prologickdb, commands *13:51
kdbAll available commands: unregister test unregister info commands help13:51
prologicOssoleil, see what I mean :)13:51
prologicneed to nuke that "unregister" handler13:51
prologicand do it differently13:51
prologicanyway i'm off to bed13:52
prologicnight all13:52
prologicI have successfully ported the essentialy parts of kdb13:52
prologichaven't commited and pushed yet (large commit)13:52
prologicwill port all plugins and test before doing so13:52
prologicRomster, might make it a Docker image too :)13:53
Romsterkdb, Test bar13:53
kdbTest: bar13:53
prologickdb, Test foo13:53
kdbTest: foo13:53
prologictry to sync with me13:53
Romsterkdb, Test bar13:53
kdbTest: bar13:53
prologickdb, Test foo13:53
kdbTest: foo13:53
Ossoleilyeah I don’t know though it’s also nice to keep things and not make unregister a special case :)13:53
prologicit probably works :)13:53
Romsterwhy is it saying it's name than the person that triggers it13:54
prologicsorry what? :)13:54
prologicit isn't13:54
Romsteroh its on test..13:54
prologicit's just a simple test plugin13:54
Romsteri was reading out lines13:54
prologicAlso Ossoleil
prologicWe seem to do this a lot in various situations13:55
prologicbasically where we don't know the events up front13:55
prologiccan you think of any better ways to handle this?13:55
prologicmy immediate thought was context managers13:56
prologicbut not sure how that would even work13:56
prologicregex event/channel matching13:57
prologicmake success/failure/complete accept an optional event+channel13:57
prologiclike Value.notify does13:57
prologice =
prologice.notify = True13:57
prologice.notify = "some_event"13:57
OssoleilI am lost13:59
Ossoleilthis stuff "{0:s}_success".format(command) ?14:01
prologicbut the whole inline handlers14:10
prologicand addHandler removeHandler stuff14:10
prologicthe whole notion of14:10
prologiccreate some temporary event handlers for some unknown events14:11
prologichandle them and remove the handlers14:11
prologicfwiw this is our callback/errback pattern no? :)14:11
*** epicmuffin has joined #circuits14:49
*** c45y has joined #circuits14:50
*** kdb has quit IRC20:13
*** edk has joined #circuits21:57
*** Workster has joined #circuits23:51
*** Workster has quit IRC23:51
*** Workster has joined #circuits23:51
*** kdb has joined #circuits23:52
prologickdb: plugins23:58
kdbERROR: 'Commands' object has no attribute 'env' (u'plugins')23:58
prologickdb: commands core23:59
kdbAvailable commands for core: load rehash unload unregister reload plugins23:59
prologickdb: unload core23:59
kdbERROR: Unloading the core plugin is disallowed.23:59

Generated by 2.11.0 by Marius Gedminas - find it at!