2008-04-17.log

--- Day changed Thu Apr 17 2008
-!- kanzure [n=bryan@cpe-70-113-54-112.austin.res.rr.com] has quit ["Leaving."]00:36
-!- kanzure [n=bryan@cpe-70-113-54-112.austin.res.rr.com] has joined #hplusroadmap08:05
-!- Enki-2 [n=weechat@c-71-234-190-248.hsd1.ct.comcast.net] has quit [Read error: 104 (Connection reset by peer)]08:07
-!- Enki-2 [n=weechat@c-71-234-190-248.hsd1.ct.comcast.net] has joined #hplusroadmap08:13
-!- kanzure [n=bryan@cpe-70-113-54-112.austin.res.rr.com] has quit ["Leaving."]08:39
-!- Enki-2 [n=weechat@c-71-234-190-248.hsd1.ct.comcast.net] has quit [Read error: 110 (Connection timed out)]10:45
fenn80MB movie of a nanomotor.. wtf16:44
fennhavent these guys heard of youtube16:45
-!- kanzure [n=bryan@cpe-70-113-54-112.austin.res.rr.com] has joined #hplusroadmap18:14
kanzureWhat happened to everyone?18:14
[Users #hplusroadmap]18:36
[ drazak] [ fenn] [ kanzure] [ krebs] 18:36
-!- Irssi: #hplusroadmap: Total of 4 nicks [0 ops, 0 halfops, 0 voices, 4 normal]18:36
fennenki appears to be having connection issues, and epitron was being a jerk so i told him to piss off18:37
fennaside from that, nobody else hangs out here regularly18:37
fenni think 'you are what you cache' is stupid18:48
fennit totally ignores generalization/abstraction18:48
fennmost people function on heuristics most of the time18:49
fenncaching is not the same as learning18:49
kanzureyou should see my ~/cache/ folder19:18
kanzurebtw, I was thinking that I would forward you all of my emails for a single day19:18
kanzurejust to catch a glimpse19:18
kanzuretoday is a great day for this19:18
kanzureI need to go setup a blog19:19
kanzureAndrew is arguing with dad about why he should use blogspot instead of a custom-installed blog19:19
kanzuresigh19:19
fenni cache things to preserve them for sharing with others or re-evaluation in the future, not because it makes them a part of me19:27
fenni have some web pages which are total crap, which i preserved on the off-chance that they might be right19:27
kanzurefenn: do you not cache your cells, your food, your thoughts?19:44
kanzure  Domain name    : HEYBRYAN.ORG19:50
kanzure  Created on     : 2005-04-22 01:58:4619:50
kanzure  Expires on     : 2012-04-22 01:58:4619:50
kanzure  Last Updated   : 2008-04-17 23:39:4719:50
kanzure  Years Purchased: 419:50
kanzurefenn: do you remember "How to make a complete map of everything you think" ? by Lion Kimbro?19:56
kanzurehttp://www.speakeasy.org/~lion/nb/19:56
kanzurethere are also some other items to process through over at http://heybryan.org/mediawiki/index.php/2008-04-17 include coderepos - don't know if that site is legit or not19:57
kanzurefenn: http://heybryan.org/~bbishop/cgi-bin/blosxom.cgi search for 'apropos' on this page. It seems to be a tag-based method of searching for shell commands. This is something that we might want to integrate 20:16
kanzure... basically we need a streamlined command disambiguation interface so that users can plug simulatable modules together, right? Of course, they have to provide terms, or the autospec error has to provide a context.20:16
kanzurehaha, wearable sleeping bag20:17
fennit's not tag-based, apropos just searches the man-page title20:23
fenntitle and description20:25
kanzureblah20:30
kanzurethat's not good20:31
kanzureis it bad that I forgot where my blog was for a whole month?20:31
kanzurebut it's alright now - I have it updating on rsync from my local cache to the blog directly, so it's all good20:31
kanzureI should probably have it dumping into a wiki20:31
fennyou could have a meta-wiki page that mirrors your blog20:33
fenn... or not20:33
kanzuremirrors? I'll just dump into it20:36
kanzurebecause if I'm using rsync, then aren't I just doing what we want to do with ikiwiki anyway?20:36
kanzureit's basically a current versioning system where I assume that all of my files are up to date ;) (all of my files on the laptop, that is)20:36
kanzurewhich obviously isn't smart :)20:36
kanzurebut humorous.20:36
fennmmm aptera is the first decent car design in a while20:37
kanzurere: car designs; my (completely fun, entertaining, understanding, probably ASD-spectrum) psych teacher drives a box for a car, but she loves it since it gets ~38 mpg. Not aerodynamically feasible + it's fun to laugh at somebody for driving a box.20:38
fenn38mpg from a box eh?20:39
kanzurea scion, I believe20:39
kanzurebut that just means toyota20:39
fennhmm aptera claims 300mpg?20:40
fennwtf does that mean20:40
kanzuresomething in the news recently re: 2200+ mpg from a student team on ~400 kg.20:40
kanzureargh, I hate losing notes20:41
kanzureI accidentally overwrote my 2008-04-17 page on mediawiki today because some guys were talking with me while I was working, I had two windows open I think20:41
kanzurethe guys were actually tards, but I decided to entertain them20:41
kanzure'computer voodoo magic' and such.20:42
kanzurefenn: try:20:42
kanzure    config = yaml.load(file('config.yaml', 'r'))20:42
kanzureexcept yaml.YAMLError, exc:20:42
kanzure    print "Error in configuration file:", exc20:42
kanzureactually,20:42
kanzuretry: yaml.load("!!python/object:__main__.Hero")20:42
kanzuretry that, and check the 2nd line (or array index 1) and you'll see a nicely formatted error message20:43
fennhow do you overwrite a page on mediawiki? editing in the form?20:43
kanzureI was typing up an edit on one window, and another in another window20:44
kanzureand I saved on one, closed on another or something20:44
kanzureanyway, it was just that snippit of code there20:44
kanzurefound from http://pyyaml.org/wiki/PyYAMLDocumentation20:44
kanzureI was playing around on the laptop with python earlier this morning, I remembered to cache the py-yaml documentation and diveintopython.org's book on to my system20:44
kanzureI think it's ~/cache/skdb/ atm.20:44
kanzurethe #yaml guys don't know about parser implementation details20:45
kanzure(ironically, the guy answering in #yaml is a person I found in #math a few weeks ago)20:45
fennhow do i make an error in the config file? it just seems to eat whatever i feed it20:45
kanzuresee my 'actually,' message20:45
kanzuretry:20:45
kanzureyaml.load("!!python/object:__main__.Hero")20:45
kanzurebecause you don't have class Hero.20:46
kanzurethus there must be an error20:46
kanzureand this is the exact sort of error that we are interested in20:46
kanzureplease don't forget 'import yaml'20:46
kanzureand apt-cache search yaml | grep python20:47
fennyep20:47
kanzureI had some thoughts on the streamliner-disambiguation program for connecting different programs together or automatically selecting programs to solve autospec problems ... this streamliner should be able to be used automatically or by a user; *this* is what uses the file format IO specs, and it generates something20:48
kanzureit generates either a bash script or python script or something20:48
kanzureand this script would attach/pipeline all of the commands together20:48
kanzureand manage all of the files generated and make sure that they all end up at the same place20:48
kanzureand then *this* script, the one that is generated, is the one that the user ultimately uses20:48
fenni did some help(exc) stuff and found the __dict__ which contains:20:49
fenn{'note': None, 'problem': "cannot find 'Hero' in the module '__main__'", 'context_mark': <yaml.error.Mark object at 0x84f072c>, 'context': 'while constructing a Python object', 'problem_mark': <yaml.error.Mark object at 0x84f072c>}20:49
kanzurenot in all cases does the user have to disambiguate for the program - sometimes it says "well, this last module passed out XYZ and we need TUV, and there's program X that can convert between those two" and do automatic chaining20:49
kanzurehm20:49
kanzureit doesn't have 'Hero' in a variable name though20:49
kanzureand that's unfortunate20:49
fennno20:49
kanzurebut it's easily parseable.20:49
kanzureI guess we can go update the yaml code base if we want20:49
kanzuredo I care that much?20:49
kanzureI can at least go suggest to the developers to output errors in yaml :)20:50
fenni expect the surrounding code is much more general20:50
kanzurehm?20:50
fennit's probably a string that python interpreter spits out20:50
kanzureooh20:50
kanzuretokens20:50
fenneh?20:50
kanzureerm, I'm thinking of something different20:50
kanzurebut it might be possible to use the py-yaml parser tokens to find the class name20:50
fenni mean, its not pyyaml's job to figure out what the problem is20:51
kanzurehttp://pyyaml.org/wiki/PyYAMLDocumentation#YAMLError20:51
fenncannot find 'Hero' in the module '__main__'  <- this is a python error20:51
kanzuresure, but it should report the problem20:51
kanzureoh?20:51
kanzurewell then.20:51
kanzurethen a general underlying debug yaml layer for python would be awesome20:51
kanzurebut beyond our scope at the moment20:51
fenngod i dont know how people think pouring unrefined kerosene on ground dead cows is appetizing20:52
fennbut it stinks up the whole neighborhood20:52
kanzureground dead cows?20:52
fennhamburger20:52
kanzurefrom #python - (2008-04-17 19:57:01) bob2: kanzure: well, if you catch ImportError, you can parse the .msg20:53
kanzuretry: blah20:54
kanzureexcept ImportError:20:54
kanzuredon't know where the msg var is though20:54
fennexcept ImportError, exc:20:54
fenn  print exc.__msg__ probably20:54
fennexc.message20:56
fennNo module named foo20:56
kanzureapparently it might be straight up msg20:58
kanzurejust 'msg', no special namespace or whatever20:58
kanzurehttp://projecteuler.net/ - math problems for python, it looks like an evaluator server that checks your solutions to number theory problems20:59
kanzuresome of the programming competitions out there (the 'official' ones for students etc.) use automatic 'safe-env' evaluator servers21:00
kanzureex: > If we list all the natural numbers below 10 that are multiples of 3 or21:00
kanzure> 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the21:00
kanzure> sum of all the multiples of 3 or 5 below 1000.  21:00
fenni dont know where msg is21:02
kanzurere: eye following problems; it occurs to me that this is kind of like my multitasking. But on the other hand, multitasking to this level is common across computer users that know what they are doing.21:03
kanzurebut I don't have eye tracking problems21:03
kanzurefenn: e.msg21:04
fennwhat is e?21:04
kanzureoops21:04
kanzure(2008-04-17 20:07:46) bob2: kanzure: try: import whatever ; except ImportError, e: print e.msg21:04
fennAttributeError: 'exceptions.ImportError' object has no attribute 'msg'21:04
fennsome code21:20
fennmodule = __import__("package.module", globals(), locals(), ["module"])21:20
fennmembers = inspect.getmembers(module)21:20
fennmember = getattr(module, member_name)21:20
kanzure1) securely?21:20
fennyep21:20
kanzure2) import (modulename) ==> means what?21:20
fenner.. huh?21:20
fennare you asking about the python statement?21:21
fenn"import module"21:21
fennloads code from the module "module" into an object named "module"21:21
kanzureso if we were using $ to represent a variable, can we do import $module_name_variable ?21:21
fennno, but you can do, mymodule = __import__($var)21:22
kanzurein php and perl you can do $$var, where $var might be 'my module name' and $$var refers to the variable named $my_module_name in that case21:23
kanzurecan we do something like that with python?21:23
fennyes, i think it's *var21:23
fennnever used that though, don't you know pointers are evil?21:23
kanzureit's not a pointer, IIRC21:23
fennreference21:23
fennwhatever21:23
kanzureit's just a way for the parser to expand it21:23
kanzureit's like a search-and-replace deal ;)21:23
kanzure(2008-04-17 20:29:40) Crast: kanzure: you can use eval to access variable variables, but much better is to try to use a dict or reflect an object using getattr (2008-04-17 20:29:48) habnabit: kanzure: getattr. but using a dict is much better most times.kanzure, not exactly like that. if you want references to an object, use an object to store it. it's also common to use a list for this purpose.21:26
kanzureoh21:27
kanzureI see you're already on that21:27
kanzureI don't think we need to have a variable variable in this case though21:27
kanzurebecause the script would already know of the class name if it wants to use it21:27
fenneval is really hard to make secure, i gather21:28
fennbut it's useful as a keyword for finding ways to not use eval :)21:28
kanzurehrm21:29
kanzuretell me how this would be secure anyway21:29
kanzureit's not like you can entirely trust APT either..21:30
fenncode modules that you download from us would be signed,  meaning they dont intentionally do bad things to your computer or privacy or whatever21:30
kanzureplease explain21:31
kanzureI am not familar with security models, I just assume insecurity and work from there21:31
fennbut anyone could modify code on the wiki, so we'd have to periodically check incoming code to see what it does, and package it into a 'release' to be signed21:31
fennotherwise we get the 'commit access syndrome'21:31
kanzurewhat does it mean for it to be signed21:31
kanzurea bit to be checked yes/no?21:31
kanzurekey system?21:31
fennyou do a md5sum or SHA and if it matches, it matches21:32
kanzureyou would get the md5sum from the server too21:32
kanzurewhat's the point?21:32
kanzure(the one to check it against)21:32
fennsomehow that gets confounded with your key, so in effect you're saying 'this is what i intend to distribute'21:32
kanzurewhy can't somebody fake my key?21:33
fennbecause it's a key21:33
fennthe client will have your public key, which can tell if the private key (confounded with the signature) is correct21:34
kanzureso if they can tell whether or not it is correct, then why not just bruteforce your private key?21:34
kanzureerm21:34
fennnice long article, if you really want to know http://en.wikipedia.org/wiki/Public-key_cryptography21:34
kanzurebruteforce somebody else's private key?21:34
fennbecause it will take 10^90000 years21:34
fenndepending on how many bits in the key, how many computers bruteforcing, etc21:35
fennin general, verifying a key takes a lot less time than bruteforcing it21:35
fennsound familiar?21:35
kanzureyes21:36
fenni guess someone was making a joke when they said *var21:39
fenn(this is why i hate perl, you cant search for punctuation marks)21:40
kanzurehttp://heybryan.org/music/radio/ take your pick21:46
kanzurefenn: I never got into the whole pgp thing, mostly because I never bothered to figure out how to21:47
kanzureit looks like we'll want to encrypt all outgoing modules that are picked up or something?21:48
kanzureor store encrypted double versions?21:49
kanzureor just encrypt the hash?21:49
kanzureblah, I don't care21:49
kanzureyou can deal with that21:49
fenni'll delegate it21:50
fennit doesnt matter at this point anyway21:50
kanzureokay, so, random brainstorming time21:50
kanzureget the module name that makes for the error, then proceed to check the plugin directory for that module21:51
kanzureload it up if we have it21:51
fennbtw, APT handles all this crypto stuff for us, which is part of why i wanted to use it to download software modules21:51
kanzureif we don't have it, start the disambiguation routine21:51
fennwe can just add the plugin directory to $PYTHONPATH21:51
fennthen python will find it21:51
kanzurethe disambiguation software would be a way to either (1) automatically download new modules and programs to splice things together or (2) allow the user to select what's the next step (just in time programming, call it)21:51
kanzureyes21:51
fennif we dont find the module, then we just download it21:52
kanzurebut do we want python to load up all modules at once?21:52
fennit wont load all modules at once?21:52
fennhrm21:52
kanzureI am wondering if we should conflate mime db == the python plugins21:52
kanzurebecause the mine db idea was to use file format io specs, i.e. use this program with this input type21:52
fennwe have an 'installation' which is everything the user has and can do21:52
kanzureand clearly here we are using yaml to specify what sort of object the data is21:52
kanzureright21:52
kanzurebut the user is not necessarily using everything21:53
kanzureokay, think of it this way21:53
fennwe check the installation against the technology dependency tree to build a sort of customized tree saying what the user can do21:53
kanzureeach separate script and program21:53
kanzurehas their own data objects21:53
kanzureso these programs are responsible for their modules and objets21:53
kanzure*objects21:53
kanzurebut beyond this, they shouldn't really care, and instead call another program21:53
kanzurewhich is a requirement for the software to run (this would be in the meta data)21:53
kanzureright?21:53
kanzurewhy do we need this serialization, again?21:53
fennso people dont have to edit code21:54
fennits like wiki markup vs html21:54
kanzureokay21:55
kanzurebut this is just for one module at a time though21:55
kanzureso each package is independently responsible for this right?21:55
fennwhat are you referring to with 'module'?21:55
kanzureone package 21:55
fenntechnology package or code to interpret specifications?21:55
fenni dont want any code in the technology package if i can avoid it21:56
kanzureman, I just lost my train of thought21:57
kanzureWTF are we doing?21:57
kanzurewhy do we have serialization? the serialization will *only* be for loading up information that the package can interpret itself, right?21:57
kanzureso why *wouldn't* the immediate code specify the classes?21:57
fennuh.. because people are stupid i guess.. i dont know21:58
kanzurethen use a converter21:59
fennconvert what to what?21:59
fennthink of yaml like a sandbox that people can do whatever they want without breaking things21:59
fennwe'll be validating the data structure it creates before running it22:00
kanzurewhat will this data struct be used for22:00
fennif people just write raw python instead, they can put whatever they want in there22:00
fennthe data struct will contain specifications about what the technology provides and requries22:00
fennthe specifications need to be compatible for the entire system to be valuable22:01
fennif everyone writes their own specification class, they cant be compared, it's apples and oranges22:01
fennif the default level of interaction is writing a yaml file, they have to include one of the provided code modules, and it's harder to make a new code module22:02
fennso people use an existing specification standard instead of making up a new one for each package22:02
fennmake sense22:02
fenn^?22:02
fennthe code module also includes some sanity checks and unit tests that get run automatically22:03
fennbelieve me, you dont want to sort code22:03
fennsorting a bunch of yaml files is easier because it's dead data22:04
kanzureoh, right22:05
fennalso, you can present it in different ways, such as with ikiwiki22:05
kanzurewe want to use data serialization for a Common Object Library22:05
kanzurethere is another aspect of the project, then, that deserves mentioning22:05
fennthis is some microsoft-related concept? i dont know what that really means22:05
kanzurehave you ever used aptitude's disambiguation program? it's an ncurses interface that lists potential matching packages22:06
kanzureCommon Object Library: 22:06
kanzurethere's a set of common objects that you can use22:06
kanzureit's a library22:06
kanzurelike sets of header files that you can choose to include22:06
kanzurethe python plugins are the header files22:06
kanzurethe yaml files contain instances (objects) of the classes in the python plugins / header files22:07
fennyep22:07
kanzureokay, so the disambiguation program -> you would use this for something else, I was conflating two things together22:07
kanzuremy 'file format io specs' is different22:07
kanzurethat's where you splice and dice programs together22:07
kanzurewhere the program can automatically find a path to another format if needed22:08
fenni was mostly thinking of the file format db for interacting with third party apps22:08
kanzureor the user can sit there and try out a suggested option22:08
kanzurewell22:08
kanzuresort of22:08
kanzurethink of it this way22:08
fennwhich makes it sound more like a traditional plugin API22:08
kanzuremany of the scripts added to skdb will sometimes be reworking of the other skdbs22:08
kanzureerm22:08
kanzuresequences of other packages22:08
kanzuresorry22:08
kanzureanyway, these sequences will just direct flow between various modules, yes?22:08
kanzure*various software modules22:08
kanzurethis is essentially what the user wants to do for a particular project22:09
kanzureso why not let them choose what to do with output by giving them a list of programs that use that format as input22:09
fennyou cut and stiched those lines so many times i dont know what you just said22:09
kanzurethus the file format io spec metadata (not just package .deb metadata stuff)22:09
kanzurehm22:09
kanzureokay, so imagine it this way22:09
kanzureyou just downloaded the CNC lathe tool22:10
kanzureand all of the python modules, .deb packages (except .skdb equivalents), etc.22:10
kanzureyour simulated CNC lathe tool is simulated with certain runtime parameters and spits out a file that represents a finished work22:10
fennagx-get install lathe tool // means i have a cnc lathe22:10
kanzurelet's say a chair22:10
fennagx-make chair22:10
kanzureand so this is yaml instance data22:10
kanzurethen you're left sitting there with a theoretical (but fully physically validated, ready to be made exactly to specs) chair22:11
kanzureso now what?22:11
kanzurewell, that's where the file format io db disambiguation stuff comes in at22:11
kanzureyou would say "what programs can use <this yaml> ?"22:11
kanzureand it would say "well, html2pdf takes HTML yaml, here's its description yadda yadda" and it'd be a selection interface22:11
kanzurenow, when I mean to say I was conflating the ideas together22:12
kanzureas in, I was thinking that the yaml object loading stuff from autospec would be associated with the file format io specs22:12
fenncnc-lathe requires g-code at technology-build-time22:12
fenner, crap22:12
kanzureyes22:12
fennchair requires g-code at build-time, cnc-lathe requires g-code at run-time22:12
fennright? something like that22:13
fennor maybe chair provides gcode22:13
fennthis is why we write code :)22:13
kanzureyou mean: physical expression of 'chair package' requires g-code at cnc-physically-expressed building-time22:13
fennthe word chair can refer to the software describing the chair, the physical chair itself, (others?)22:14
fennlet's conflate the physical chair and the technology package for chair22:14
kanzuresimulated chair, g-code for the chair, the physical chair itself (as in, what you are editing in realtime with the CNC lathe spinning around and whatever), the entire 'chair' package and all g-code and software and python plugins and object instances (aka yaml files), ...22:14
fennso we can say 'chair provides g-code at build-time'22:15
kanzurebuild-time can mean so many things though22:15
kanzurebuild-time of the simulation system22:15
kanzurebuild-time of "chipping and chopping away at wood to make the chair"22:15
fennterminology.. what's a short name that differentiates between compiling and robotics stuff22:15
kanzureeh22:15
fennthesaurus time :)22:16
fennconstruct, fabricate, manufacture, 22:16
kanzureit's more like22:17
kanzurethe problems with talking about cyber->reality borders22:17
kanzurecyber<->physical-materials22:17
kanzurebits<->atoms22:17
kanzurehttp://cba.mit.edu/ Center for Bits and Atoms22:17
fennhey isnt that the whole point now :)22:17
kanzurehttp://digivin.googlepages.com/ aww, Andrew just linked me to his new website22:17
fennbecause right now cad-files are so not automated it's sick22:18
kanzurein general22:18
fennso there's no "source code" to the manufacturing process22:18
kanzureI think that our system idea is going to work22:18
kanzurehowever, the more we obsess on those details, the less we get done22:18
kanzureI think our system is modular enough that it can be implemented on top of our basic ideas22:18
kanzureyes?22:18
kanzureon top of the basic idea of fetching data types from the web22:18
fennyep sure22:18
kanzureon top of the basic idea of fetching packages from the web22:18
fenni wouldnt be doing it if i didnt think it would work22:19
fennshall we diagram or write code?22:19
fenntop down or bottom up22:19
kanzureyou want to stop talking about it and just do it?22:20
kanzurewait22:20
kanzureI should have worded that22:20
kanzureyou wanna stop talking and just code?22:20
fennsometimes i get lost though if there's no diagram22:20
kanzureright22:20
kanzureit's quite a big problem space to contain in the head all at once22:21
* fenn gets a piece of paper22:21
kanzureand in fact, I am not so sure that other programmers try to cram an entire vision into their head before starting to write code22:21
fennmeh22:22
kanzurebtw, I carry stacks of white printer paper with me everywhere I go22:22
kanzurescrew lined paper22:22
kanzureI know how to be straight on my own, thanks22:22
* fenn translates hand-sketched diagram into dia format22:24
kanzurewhat happened to the UML craze for software engineering?22:25
fennit turned out you cant automatically turn crappy diagrams into code22:26
fennelse the map is the territory22:26
fenneasier to write code and draw a broad overview, than to make a detailed diagram22:27
kanzurehow are the python plugins served?22:37
kanzureare they treated as packages too?22:37
kanzureobviously these are significantly restricted packages in comparison to something like a 'metalcastingtechniques' package22:37
kanzure(which may include exact methodology for making a machine to do metalcasting)22:37
kanzureI suppose the answer is yes22:38
kanzuresince the plugins can be of a certain python-class (skdbPythonPluginClass for now)22:38
kanzureso you'd serialize that object to yaml, and then you can load that data up or something22:39
kanzurehrm22:39
kanzurethat doesn't make much sense22:39
fennhttp://fennetic.net/pub/irc/autogenix.svg (and .dia if you want it)22:39
fennsry that took so long, is reason i used paper22:39
kanzureif the plugins are a package in skdb, then how are they served? if autospec finds it needs to get a specific plugin, then ... hm. I guess the solution is to have a package that has a type of 'python plugin' which has a common variable specifying the URL to get the plugin source code. Then just make sure your autospec program can use that 'python plugin type'. 22:40
fennoh ffs the svg is crap22:40
kanzureshit Opera doesn't understand SVG22:41
kanzurehave a suggestion for an SVG viewer?22:42
kanzuredia is it?22:42
fenndia just dropped about 90 geek points22:43
fennfor shitty svg export22:43
fennhttp://fennetic.net/pub/irc/autogenix.png22:43
drazakOh god, geek points!22:44
drazakdia--22:44
fenndia *= 0.122:44
kanzurefenn: Paul (OSCOMAK.paul)'s geek points are through the roof. He studied at Caltech in a building called von Neumann Hall.22:44
fennwhere they disdained space travel and computer information networks and replicating machines, sure22:45
fennfuck those assholes22:45
fennfuck 'em hard! :)22:45
fennthey humor the geeks by promising space travel, when really its just a nuclear arms race22:46
kanzurehah, "so we decided to name this building after von Neumann just in spite"22:46
kanzurecruel22:46
kanzurebut really, answer the question22:46
kanzurehow are the python plugins served? are they treated as packages in skdb/APT-server-side-equivalent?22:47
fennwe could setup a debian repository and have the autospec download autogenix-$modulename package22:47
fennor we could do some fancy git stuff?22:47
kanzureand if so, then the meta-data for that package would simply be something standard that all autospec/autogenix things *must* understand from version 1.0 and up22:47
kanzurewell22:47
kanzureI think it should be a package22:47
kanzuresince it's kinda like a header22:48
fenndunno, how does gentoo handle this stuff?22:48
kanzureweird, I just had a meta-philosophical insight on the nature of bootstrapping compilers, computational complexity, and well-defined fabrication automation22:49
kanzureit's *fundamentally hard* to describe this sort of system since you have to have such unique vocabulary22:49
kanzureyou have to just sit down and *fucking code it*22:49
kanzureyou *cannot* verbally detail it, that is implicitly impossible22:49
kanzurebut anyway22:49
fennyou mean empirical data is in the loop?22:50
kanzureyes22:50
drazakgentoo handles everything greatly :D22:50
fennor, build, test, back to the drawing board?22:50
drazakWhat are you guys trying to do?22:50
kanzuredrazak: Wait, haven't we explained yet?22:51
drazakkanzure: which part? and I haven't read a lot of backog, either22:51
fenndrazak: apt-get for rapid prototyping (and related activities) eventually leading to self-replicators22:51
kanzurefenn: Sort of, yes. The only way to 'fully realize it' and 'remember all at once' is to just make it. You can't do a complete description of it, like you said. UML stuff. So therefore.22:51
fennor, 'emerge' if you prefer22:51
kanzureso that's why I was getting to the "*must* understand from version 1.0 and up"22:52
kanzureyou have to have the bootstrap stuff in there22:52
kanzureluckily our gcc friends boostrapped the compilers for us (hehe)22:52
kanzureand bootstrapped operating systems for us22:52
fennwe have no bootstrapped rapid prototyper22:52
kanzurewhich is of course what we're doing here22:52
kanzurebruteforced boostrapping ;)22:53
fennno, we're writing the OS for a rapid prototyper, basically22:53
kanzurewerm22:53
kanzurebootstrapping22:53
kanzurehm22:53
kanzureperhaps22:53
kanzurethe analogy doesn't completely hold of course22:53
kanzurebecause if you downloaded and installed and configured all skdb software into the prototyper,22:53
kanzurethat would be lots of waste methinks22:53
fennbut some of the code can be applied to regular humans in the meanwhile, like von nuemann running his cellular automata on paper22:53
fennor turing running a LCM on paper22:53
kanzurewas he really doing 60x60 cell states on paper? by hand?22:54
fenndunno22:54
* fenn points at the mythos22:54
kanzurethat's ... sick.22:54
fennits not hard actually22:54
fennjust repetetive22:54
kanzure:)22:54
fennrepetetetititive22:54
kanzurehehe, I find myself saying that sometimes22:54
fennso, the hard part will be convincing people without a rapid prototyper that this is worthwhile, rather than just googling for 'fart catcher' or whatever they're making22:55
kanzurenah22:56
kanzurethat will not be too hard22:56
kanzurebasically what we do is formalize a few projects 22:56
kanzuresomething appealing22:57
fennb/c rapid prototypers are more or less useless if you have to do everything by hand, and nobody is interested until they have a rapid prototyper laying around (idle)22:57
kanzureand start attracting attention in that way22:57
drazak(rapid prototyper? :P)22:57
fennsee how reprap is floundering, despite massive hype22:57
kanzuredrazak: 3D printer 22:57
kanzurethink of that22:57
kanzurefenn: yes22:57
drazakohhhhhh22:57
drazakyeah, seen those22:57
kanzurefenn: I am amazed at reprap. it's a self-replicating viral meme, that's sure enough22:57
fennthe meme was around before the reprap22:57
drazakthe college around here has one22:57
fenndrazak: did they make anything with it?22:58
kanzurehttp://www.last.fm/user/superkuh "I enjoy recursion, dissipating local energy gradients, lipid bilayers, and biophysics in general."22:58
drazakfenn: they've done a few things22:58
drazakfenn: one of my teachers at the middle school was looking to get one for the school22:58
fenndid they make parts for another reprap!!!!!22:58
kanzure"I enjoy recursion" <-- a good line to copy around the web22:58
drazakfor our science olypiad team22:58
fennnobody seems to be doing that, which is the stated goal, fuckers22:58
kanzureisn't it olympiad?22:58
drazakyeah, missed a letter22:58
kanzurebut you've done so consistently22:59
fennyou dont 'get one' you have to make it, because nobody is making parts with their repraps (because the overall design sucks (not the implementation))22:59
kanzurehrm, re-order: but you've consistently done so23:00
fennspelling is arbitrary23:00
kanzure'do what I mean, not what I say'23:01
fennnonetheless, people who write 'hi how r u 2day' are fucking idiots23:01
fenni need to go dissipate some local energy gradients, bbiab23:01
drazakI agree23:02
kanzurehm23:04
kanzureI have an idea23:04
kanzurelet's call these "stoppers" in the netwrok23:04
kanzure*network23:04
kanzurebasically, I was considering the case where we have a python-plugin package with metadata23:04
kanzurethe user progs would have to be able to interpret the metadata23:04
kanzurebut this metadata might require another package23:04
kanzureand then another and another23:04
kanzureit's obviously recursive and that's fine, sure23:04
kanzurebut at some point you have to just *stop* and download some final code23:05
kanzureI propose we call this a 'stopper'23:05
kanzurethis is a type of meta-data file that is the most ridiculously basic file ever23:05
kanzurethis is the one that points to one URL and has no other data what's so other23:05
kanzurejust file.txt: http://heybryan.org/code.py23:05
kanzurethat's all it has23:05
kanzurethen, the user-progs download that code and run it23:05
kanzurethis is the way to terminate the endless chain of program requests and requirements upon requirements23:06
kanzureI also propose two layers for skdb servers (not the ikiwiki software stuff)23:09
kanzureskdb layer 1 -- *raw* data, this is the .py files and the .yaml files and even zip files of HTML and PDFs for human processing23:09
kanzurein the ideal situation, those would be assembled into zip files and stored locally on our servers23:10
kanzureskdb layer 2 - the metadata files. These would be cached by all users. They point to the resouces in layer 1.23:10
kanzureand also specify the hell out of other stuff and so on :)23:10
kanzurethere is a core set of functionality that autogenix and other related tools *must* have in order to bootstrap the system23:14
kanzurethe server-side stuff doesn't have to be bootstrapped, it's pretty easy really23:14
fennback. one problem with apt is it requires superuser access23:15
kanzuredon't see why that would be required here23:16
kanzureI also think we can pretty easily do away with apt as the frontend23:16
kanzureI mean, the frontend stuff sounds simple to me - as far as APT goes23:16
fennit shouldnt be required, but that's how it works (because 99% of packages modify the installed system)23:17
kanzureas for the extra stuff - like being able to interpret the metafiles and being able to update (by reading the 'stoppers' on skdb)  - that's a bit more tricky23:17
fennwe wouldnt use apt for _our_ frontend, but for installing software (deal with key signing and software depenency resolution)23:17
kanzureooh23:19
kanzurehere's a tricky loop23:19
kanzureprogram io specs (like what file formats the program accepts as input for what parameters) can be in yaml23:19
kanzure*but* py-plugins (that provide the tools to interpret yaml) have yaml metadata23:19
kanzureand pyplugins help to interpret prog io specs (loop back to square one)23:20
kanzurethus I think I have proven the need for bootstrapping23:20
fennuh, this is no big deal, you just download all the software for the base system in one go23:21
kanzurecorrect23:24
fennre: layer 1/2; do you need the data (layer 2) to make a dependency tree? if not, how do simulators fit into the picture?23:24
fenni guess simulators could get run by the package developer, to automatically generate metadata23:25
fennso the metadata files wouldnt be the exact same files as the source yaml on the wiki, but would be derived from them23:26
kanzurehuh? hold on23:27
kanzureyou need layer 2 to make the dependency tree23:27
kanzurelayer 2 includes all of the yaml, I would think23:27
kanzureon the other hand23:27
kanzureon layer 1 there would include yaml for other things wouldn't it?23:27
kanzurethat could be a different dependency tree, perhaps?23:28
kanzureI thought that simulators would be ran at user-end?23:28
fennwhy would the user run simulations?23:28
kanzurethe metadata files should be on the wiki23:28
kanzurefenn: ex: mission optimization?23:28
kanzurefeasability simulations?23:29
fennautogenix already says 'its feasible'23:29
fennautospec23:29
fennbah23:29
kanzureare you sure?23:29
fennthey could doublecheck23:29
kanzureautospec does that for file formatting23:29
kanzureand yaml and so on and making sure you have the available modules23:29
kanzurebut then this does not tell you whether or not you can provide enough 'juice' or other various characteristics23:30
kanzureright?23:30
fennno, autospec reads the metadata and builds a dependency tree, in order to say whether something is feasible or not23:30
kanzureoh23:30
fennit determines if there's enough juice23:30
fennwhat else would it do?23:30
kanzurecheck if the yaml file parses and whether or not it needs to go get more python plugins from the repository23:30
fennfile format is something else, interfacing with simulators and crap23:30
fennyes, it needs to get updated plugins, correct23:31
kanzuresomehow saying that no end-user does simulations sounds fishy/wrong23:32
kanzurenot to mention the new issues as to how autospec would do a full feasability check ... that's just doing metadata dependencies; you'd have to encode "I need 20 amps" as an object ... which seems nasty.23:32
fennyes, you have to encode 'i need 20 amps'23:33
fennotherwise you can only say 'i need powersupply xyz20'23:34
kanzureso it would be through the python plugins that autospec would learn how to check specs for amperage and so on?23:35
kanzure'learn'23:35
kanzureouch23:35
kanzureI don't mean to use the word learn23:35
kanzureif epitron was here he'd say something about brains23:35
fennheh23:35
fennyes autospec needs plugins to understand what '20 amps' means23:35
fennalso what 'i need' means23:36
fennprobably expressed something like peak or continuous23:36
kanzuresoo23:37
kanzurein other words23:37
kanzureautospec needs to have a standard library of simulation tools to work with those spec-params or whatever23:38
kanzurein other words23:38
kanzurea simulator23:38
kanzurebut this is a global simulator, it seems, all in one place23:38
kanzurewhich is different (+better) from my original idea of encoding the simulators into the chair.py code itself23:38
kanzurethis way, the python plugins provide ways to 'deal individually' with aspects of a part23:38
kanzureand it could be a graph-based traversal or something23:38
kanzurewhere it just satisfies a certain region of the graph/tree23:38
kanzureand then moves on to another part23:38
kanzurebut of course, doing a very deep search through possibility space would be more intense23:39
kanzureand I don't know how to make a common interface for doing *all* types of walks through the possibility space of verification or whatever23:39
fenni'm not sure graph traversal is really the best way to imagine it23:39
kanzureknow what I mean?23:39
kanzureit has to meet requirements, right? so when you meet one requirement, you have to make sure you can meet the others at the same time23:39
kanzurekind of like balancing a chemical equation 23:40
fennsure, and also find the shortest distance23:40
kanzureuh23:41
kanzureso what are you proposing23:41
kanzureI mean, it sounds like you've completely made the entire skdb project sound pointless23:41
kanzureand made autospec do all of the effort23:41
kanzurewhile not specifying how it could *possibly* work with all sorts of varied packages and so on23:42
kanzureI guess the 'units' stuff can be encoded in yaml and python plugins and the packages in skdb23:42
kanzureand then you just try to find ways to disambiguate the units23:42
kanzureinto common expressions of the same exact things23:42
kanzurekind of like finding the greatest common denominator23:42
kanzureand then factoring it out of the entire picture23:42
fennthere are base units that can't be factored out23:43
fennbelieve it or not, there is no difference between a joule and a  kg*m^2/s^223:44
fenni dont see how it's pointless to boil down equivalent things23:44
fennand then say 'feasible' if they're equivalent (or satisfied conditions)23:45
fennlike, power provided must be greater than power required23:45
fennerror provided must be less than tolerance required23:46
kanzureokay23:46
kanzuremakes sense now23:46
kanzurehttp://heybryan.org/docs/cache-index.txt23:48
kanzuremy ~/cache/23:48
kanzuredoes not include my 30 GB of texts23:49
fennjust looks like bad organization? i dont get it23:52
fennobviously these are more important than the other 30GB23:52
fennsome of them are just trash though, waiting to be cleared out23:53
fennyou could sort a database chronologically and by importance at the same time, with a 3d view or by changing font size23:56

Generated by irclog2html.py 2.15.0.dev0 by Marius Gedminas - find it at mg.pov.lt!