2009-09-05.log

--- Day changed Sat Sep 05 2009
-!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit [Read error: 110 (Connection timed out)]00:09
-!- ve_ is now known as ve00:09
-!- mason-l [n=x@202-89-188-136.static.dsl.amnet.net.au] has quit [Remote closed the connection]00:12
fenn"A more subtle virus which targets intellectual property is the GNU public license, which has infected countless pieces of property to date, destroying capitalistic opportunity; the GNU public license is 35kbytes."00:32
fennpoor poor capitalism00:33
-!- mason-l [n=x@202-89-188-136.static.dsl.amnet.net.au] has joined #hplusroadmap01:23
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has quit [Read error: 104 (Connection reset by peer)]01:29
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has joined #hplusroadmap01:29
-!- parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has quit [Read error: 110 (Connection timed out)]01:32
-!- wrldpc2 [n=benny@ool-ad03fe34.dyn.optonline.net] has joined #hplusroadmap01:42
wrldpc2http://www.filedropper.com/theblacksmithscraft-195201:43
-!- mason-l [n=x@202-89-188-136.static.dsl.amnet.net.au] has quit [Read error: 60 (Operation timed out)]02:13
-!- mason-l [n=x@202-89-188-136.static.dsl.amnet.net.au] has joined #hplusroadmap02:26
-!- nchaimov [n=cowtown@c-24-21-45-17.hsd1.wa.comcast.net] has quit []02:43
-!- nchaimov [n=cowtown@c-24-21-45-17.hsd1.wa.comcast.net] has joined #hplusroadmap02:48
-!- nchaimov [n=cowtown@c-24-21-45-17.hsd1.wa.comcast.net] has quit [Read error: 104 (Connection reset by peer)]03:05
-!- nchaimov [n=cowtown@c-24-21-45-17.hsd1.wa.comcast.net] has joined #hplusroadmap03:05
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has quit [Read error: 60 (Operation timed out)]03:57
CIA-32skdb: fenn * r de3d4d3 /packages/threads/threads.py: start describing standard thread series04:39
CIA-32skdb: fenn * r 0c58288 /packages/threads/threads.py: finished UNC and UNF series. not sure where to find data for ISO_Fine_Thread yet04:39
-!- drazak [n=drazak@drazak.net] has quit [Read error: 60 (Operation timed out)]05:08
-!- drazak [n=drazak@drazak.net] has joined #hplusroadmap05:19
-!- wrldpc2_ [n=benny@ool-ad03fe34.dyn.optonline.net] has joined #hplusroadmap07:04
-!- wrldpc2 [n=benny@ool-ad03fe34.dyn.optonline.net] has quit [Read error: 104 (Connection reset by peer)]07:04
-!- wrldpc2_ is now known as wrldpc207:04
fennguh. from UN declaration of human rights: (3) Parents have a prior right to choose the kind of education that shall be given to their children.07:25
fennElementary education shall be compulsory.07:26
-!- wrldpc2 [n=benny@ool-ad03fe34.dyn.optonline.net] has quit []07:44
CIA-32skdb: fenn * r a68395c /core/units.py: uncertainty is actually a range of units, not a unit itself08:05
CIA-32skdb: fenn * r fa04ebe /packages/threads/threads.py: Merge branch 'master' of adl.serveftp.org:/var/www/skdb08:05
-!- any25527960 [n=someone@75-120-45-160.dyn.centurytel.net] has joined #hplusroadmap08:18
kanzureIBM autopass: "Autopass: An Automatic Programming System for Computer-Controlled Mechanical Assembly"08:32
kanzurehm there's an ieee comp sci journal called "tutorial on robotics"08:33
-!- any85001797 [n=someone@75-120-45-160.dyn.centurytel.net] has joined #hplusroadmap08:33
-!- katsmeow-afk [n=someone@75-120-23-164.dyn.centurytel.net] has quit [Nick collision from services.]08:33
-!- any85001797 is now known as katsmeow-afk08:34
kanzure"The AUTOPASS language is oriented towards objects and assembly operations, rather than motions of mechanical assembly machines. It is intended to enable the user to concentrate on the overall assembly sequence and to program with English-like statements using names and terminology that are familiar to him."08:35
kanzure"To relate assembly operations to manipulator motions, the AUTOPASS compiler uses an internal representation of the assembly world. This representation consists of a geometric data base generated prior to compilation and updated during compilation; it thus represents the state of the world at each assembly step."08:35
-!- kardan| [n=kardan@p54BE454F.dip.t-dialin.net] has joined #hplusroadmap08:36
kanzurestalk: lieberman, wesley08:36
-!- any25527960 [n=someone@75-120-45-160.dyn.centurytel.net] has quit [Read error: 60 (Operation timed out)]08:39
kanzureibm journal of research and development, ridiculously large bibtex bibliography: http://ftp.math.utah.edu/pub//tex/bib/ibmjrd.html08:40
kanzurehttp://en.wikipedia.org/wiki/A_Manufacturing_Language08:46
kanzurestubs suck :(08:46
fennpot, meet kettle08:49
kanzureah here's the pdf: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.4319&rep=rep1&type=pdf08:49
kanzurefor the autopass paper, I mean08:50
fennjust from the quote it sounds like it was written in fortran or something08:50
fennit's impeccably typeset for a 1977 paper08:53
fennlooking at the 'functional module hierarchy' of the movement planner, it seems to be pretty advanced08:55
fenncollision detection with swept volumes.. i can't even do that with all the tools at my disposal08:55
kanzurepage 332 shows the grammar (somewhat)08:56
kanzureit was a PS/1 language08:57
kanzureIIRC, that dates even fortran08:57
kanzurenot sure why those commands just so happen to be the ones they cohse08:57
kanzure*chose08:57
-!- |kardan| [n=kardan@p54BE5EDB.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)]08:57
ybitwell i'm impressed08:57
fenneh? what's special about the commands?08:57
ybitheh, not the commands, autopass itself08:58
kanzureplace, insert, extract, lift, lower, slide, push, orient, turn, grasp, move, release, operate, clamp, unclamp, load, unload, fetch, replace, switch, lock, unlock, attach, drive in, rivet, fasten, unfasten, verify, open state, closed state, name assembly08:58
kanzurewell why are those the commands?08:58
kanzureI mean, how did they figure that this would be good enough?08:59
fennseems rather arbitrary to me08:59
kanzureyeah08:59
ybitkanzure: how'd you come across autopass, nearly every page with it is expired 08:59
ybitwould have to be while scraping for papers08:59
kanzureybit: no, it was a search result for one of my google scholar queries about assembly operations and assembly planners09:01
fenni don't think it's super worthwhile to worry about what particular verbs to use if there's no code to back it up09:03
kanzurewell I had this dream last night that a better way to do it would be as follows:09:04
kanzureactions are specified as some collection of Vector, Torque, Force objects (the last two have yet to be written)09:04
kanzureor, actually, those are Unit objects, so nevermind09:04
fennugh09:04
kanzureanyway, these actions have a definition09:04
kanzureand they are matched to whatever verbs the tool has09:04
kanzureso the tool then executes the verb that fulfills the action09:04
fennbut that says nothing about what you're actually trying to do09:05
kanzureyes but it solves the other problem09:05
fennvector+torque+force != drilling a hole, or aligning some part wrt another part09:05
kanzurethe one where you're making up batshit fucking crazy verbs09:05
kanzureI think it would be adequate to have a text description appended I guess09:06
kanzurevector+torque+force "drill a hole from here to there"09:06
fennthe thing is they're intrinsically closed loop processes.. and you're trying to describe it as if it were open loop09:06
kanzurewhat is a closed loop process?09:06
fennuh, like the difference between a stepper and servo09:06
fennnot some ecological bullshit09:06
kanzureyou lost me09:07
fennservos utilize feedback from sensors09:07
fennsteppers blindly assume that everything is perfect09:07
kanzurewhich one is closed and which one is open09:07
fennservo = closed feedback loop09:07
kanzureyet it's getting data input?09:07
fennbecause a command goes out, changes the state of the motor, is sensed, and comes back into the control09:08
fennclosed like a closed circuit09:08
kanzureok09:08
kanzureso just add an end condition then09:08
kanzurevector+force... the vector has a starting position and an end position09:09
kanzureer that's not a vector09:09
kanzurebut you get the idea09:09
fennFAIL09:09
kanzuresome geometric description object09:09
kanzurelike a line maybe09:09
fennyeah, welcome to my world09:09
fennremember me asking about a geometric constraints language?09:09
kanzureyes but that was in a different context09:09
fennnot really09:09
* kanzure is thinking about instruction generation if you haven't noticed09:10
kanzureI'm sure it can be applied in both areas09:10
fennputting a slab on a milling machine is a sort of assembly process09:10
kanzure"putting" isn't in your taxonomy though09:10
kanzureyour process taxonomy I mean09:10
fennit doesn't just sit there, you have to bolt it down a certain way09:10
fennthe manufacturing techniques book assumes it's a machine doing the work09:11
fennblarg09:11
kanzurewe are the blarg, you will be assimilated09:11
fenna robot would have a certain positioning tolerance, but depending on the human and how much effort they expended you could get anywhere from 0.001" to 10" position error09:12
kanzureyeah09:12
fennor more, depending on context09:12
fenn'put beacon at these geospatial coordinates'09:12
kanzureyes but where did that string come from09:13
fennpackage "robot corral"09:13
kanzurewtf?09:13
kanzureso there's a corral tool that is telling you to put something somewhere?09:13
kanzurehonestly I don't think you've thought this out either09:14
fennwhat's the problem now?09:14
kanzureinstruction generation09:14
kanzureit's on the todo list, you see09:14
fennthat's so overly broad as to be almost useless09:14
kanzurethe todo list?09:15
fennno, "instruction generation"09:15
kanzuredo you know what instructions are?09:15
fennyes09:15
kanzurean assembly doesn't just magically assemble09:15
fennit's sort of like "write me a program that plays games"09:16
kanzuredoes it need to play well?09:16
kanzureactually I think you could do something where you have a config file where you tell it what key codes to send09:16
fennand then getting mad because the program doesn't understand your poker terminology09:16
kanzureand then have it randomly select which keys to press09:16
kanzureno, most games have only a limited amount of input09:16
kanzureand games that require a mouse suck anyway09:16
fenni wasn't talking about computer games09:17
fennany sort of game09:17
fennthat's how broad "instructions" is09:17
kanzureI disagree09:17
kanzureto me I see an assembly graph and I see connections between parts09:17
fennthat's just assembly instructions09:17
kanzureyes09:17
fennthere's a lot more to manufacturing than just assembly09:18
kanzurewhen we come up with manufacturing classes we'll do that then09:19
kanzurebut for now shouldn't we be working with the assembly graph class we already have?09:19
fennthe igraph thing?09:19
kanzureer, the graph of connections for assemblies09:19
fenn-_-09:20
kanzureso yes?09:20
kanzureI haven't looked at the code09:20
kanzureyou deleted what I wrote, but I'm assuming it does the same thing09:20
fennwell, for one thing there's not enough information there09:20
fenni didn't delete it09:20
fennanyway it does the same thing i guess09:21
kanzureok you put it into a go_away string :p09:21
fennonly my local copy09:21
fennrest assured your crap is still there09:21
kanzurewhat information do you think is missing?09:22
fennuh. so anyway as i was saying, there's not enough information to figure out how to assemble the lego graph, because we don't have geometric collision detection or even something like david's rectangular constraint09:22
kanzure"press lego1 to lego2" isn't good?09:23
fennno09:23
kanzureI think we should try it out actually09:23
fennhow do you know what order to assemble the legos?09:23
kanzureyou make a lego assembly, we press "generate"09:23
kanzurethe order in which they were added would be a good start09:23
kanzureand then I try to make it on the table09:23
fennmagical thinking09:23
kanzure?09:23
fennit won't work. actually you were the one that told me that09:23
kanzurewas I on or off the drugs?09:23
fennsometimes it adds bricks in between other bricks (not colliding, just impossible to do in that order)09:24
* ybit wants to know what is doing the adding of lego bricks09:24
fennadd_lego()09:24
ybitwhat machine09:24
kanzurea chimpanzee 09:24
fennuh, "minsky"09:24
fennybit: not a robot, if you're confused09:24
fennthis is virtual legos09:25
ybitno i figured it was a name of one of the computers there so you are saying it's simulated09:25
fenni guess i could constrain it to only add bricks where the interface vector is clear.. but without collision detection i dont know how to implement that09:25
kanzure"is clear" what?09:26
fennsweep the volume of the added brick along the interface vector; boolean intersect with all the other bricks; if you get a volume back it must have collided with something09:26
fennbut that's horribly computationally expensive09:26
fennhumans do it with feedback; in effect using reality as a massively parallel computer09:27
kanzureoh you mean to check if the approach motion would be possible09:27
fennyes09:27
fennever played "operation"?09:28
ybit:)09:28
fennin other news, metric thread tolerance classes are confusing09:30
ybitkanzure: when you lieberman, are you referring to J. Lieberman who was a co-author of 'introduction to operations research'?09:31
kanzureno09:31
ybit+say09:31
kanzurethe author of autopass09:31
ybitwouldn't know since i can't read pdfs currently09:31
ybitLI Lieberman09:32
fennkanzure: do you know of any papers that actually do collision detection in assembly planning?09:42
kanzureno09:44
fenn"development of computer aided assembly planning systems have not, in general, been successful... One of the main reasons for this lack of success is that assembly is dependent on a great deal of expert knowledge which has proven very difficult to formalize"09:45
kanzureeh? that's the difficulty?09:45
ybitVirtual Reality in Assembly Simulation?Collision Detection, Simulation Algorithms, and ...09:45
kanzuresome of these may be useful: http://adl.serveftp.org/papers/review/09:45
ybitthat's the closest thing to what you guys are doing currently09:45
kanzurebut none of them are specifically about collision detection09:45
kanzurefor instance: A connector-based hierarchical approach to assembly sequence planning for mechanical assemblies09:46
ybithttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.7125&rep=rep1&type=pdf Fast continuous collision detection between rigid bodies09:46
kanzureConstraint-based interactive assembly planning09:46
fennybit: that paper (VADE) is basically just "make a human do the assembly planning, wah!"09:46
ybitheh, i can't read, just finding titles which seem relevant09:47
ybiti don't see anything as requested09:48
kanzurehow about this one?09:49
kanzurehttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.4931&rep=rep1&type=pdf09:49
fennVADE simulates inter-part interaction for planar and axisymmetric parts using constrained motions along axes/planes. These axes and planes are obtained as part of the assembly design intent from the CAD system. This allows simulation of sliding, rotating, etc., without compute-expensive numerical methods09:49
kanzure"A general framework for assembly planning - the motion space approach"09:49
ybithttp://www.informaworld.com/smpp/ftinterface?content=a713804846&rt=0&format=pdf Motion planning for multi-robot assembly systems is kind of what you were talking about a few mins ago09:49
kanzureybit: you can stop09:49
kanzureat least read the paper a little bit :)09:49
ybit:)09:49
ybitthat was the last one anyway09:49
fenngah that citseer paper is so slow to render09:53
kanzureit renders just fine in evince09:53
kanzurewhy am I using evince09:54
ybitbecause you haven't realized kpdf is the bomb-diggidy09:54
ybitonly gripe is that it doesn't handle chm files09:55
ybithave to use a seperate viewer such as kchmviewer09:55
fenndoes evince do chm?09:58
fenntoo slow and too mathy.. /me gives up09:59
kanzure"spatial constraint graphs"10:02
kanzure"this graph represents the list of obstructing parts that prevent the mating of other part along certain mating directions if the blocking parts are placed earlier in the sequence than the other part."10:02
kanzure"the SCG is a directed graph in which the source node denotes the obstructed part and each of the arcs ends in an obstructing part"10:02
kanzureapparently there are some algorithms for generating SCGs in "An integrated approach to automated assembly planning for three-dimensional mechanical products"10:03
fenni don't really think graphs are the way to do thi10:03
fenns..10:03
kanzurewell using a GPU for collision detection of loaded models isn't the way to do it either :p10:04
fennno?10:05
fennsounds like awesome to me10:05
fenni'm thinking something involving voronoi diagrams or electrostatic force like the graph layout algorithms10:06
kanzuregah isn't this campbell's job?10:06
fenndon't make me talk bad about the man behind his back10:07
kanzurehow about in front?10:07
fenni guess i can add assembly planning to the lunch agenda since i have no idea what we're going to be talking about next week10:08
kanzurelunch agenda?10:08
fennwants to meet on 9/9 for some reason10:08
-!- wrldpc2 [n=benny@ool-ad03fe34.dyn.optonline.net] has joined #hplusroadmap10:32
ybitwell that was a quick arch install11:40
ybitthank it took a total of 1 hour to get to xorg+xmonad11:40
ybitthin*11:41
kanzurehttp://www.kickstarter.com/projects/701662757/makerbeam-an-open-source-building-kit11:42
kanzurewhy the fuck does he need $10k?11:42
kanzurehttp://makerbeam.com/11:43
kanzurehttp://www.garagefab.cc/contraptor/11:50
kanzurehttp://contraptor.svn.sourceforge.net/viewvc/contraptor/tags/contraptor-1.5.0.tar.gz?view=tar11:50
-!- ybit [n=ybit@unaffiliated/ybit] has quit ["leaving"]12:10
* kanzure compiles heekscad r81912:16
kanzurehopefully dxf->anything will have improved12:16
-!- parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has joined #hplusroadmap12:31
kanzurehey parolang12:33
parolanghi12:38
-!- splicer [n=patrik@h55n1c1o261.bredband.skanova.com] has joined #hplusroadmap12:58
-!- ybit [n=heath@unaffiliated/ybit] has joined #hplusroadmap13:06
-!- strages [n=strages@c-68-62-216-5.hsd1.al.comcast.net] has quit [Read error: 113 (No route to host)]13:54
-!- strages [n=strages@c-68-62-216-5.hsd1.al.comcast.net] has joined #hplusroadmap13:55
CIA-32skdb: kanzure * r 5a3e4b6 /geom/ode_collider.py: pyODE collision detection code in progress. weird error, see last two lines in file.14:10
kanzurenote that pyODE is no substitute for a propper engineering-level collider14:10
-!- splicer [n=patrik@h55n1c1o261.bredband.skanova.com] has quit [Read error: 104 (Connection reset by peer)]14:17
-!- dira [n=chatzill@86.99.40.183] has joined #hplusroadmap14:18
kanzurehey dira14:52
dirahey 14:52
dirahow are ya doing?14:52
kanzuredoing well14:52
kanzurewhat's up?14:52
-!- Irssi: #hplusroadmap: Total of 31 nicks [0 ops, 0 halfops, 0 voices, 31 normal]14:53
diranot much here, struggling to setup DotNetNuke web portal14:53
dirawhat's up with you?14:54
kanzurenuke is very old14:54
kanzuredoodling around with collision detection14:54
diraOpenGL ?14:54
kanzurea little. actually I'm using pyODE, the python bindings to the open dynamics engine14:54
kanzurebut there's an opengl visualizer around here somewhere14:55
diraif your python programmer and you are serious in game development AND you can deal with M$ take , http://en.wikipedia.org/wiki/Microsoft_XNA and http://en.wikipedia.org/wiki/IronPython might be good mix14:56
kanzuresorry, I'd rather not14:57
kanzurebeen there, done that14:57
kanzurethis is for collision detection between brep models14:57
dirahmmm, GPA inline features?14:58
kanzureGPA?14:58
dira*GPU !14:58
kanzurenot at the moment14:58
kanzurebut I'm considering that, yes14:58
kanzurenot sure how to do it. maybe opencv?14:58
-!- kanzure changed the topic of #hplusroadmap to: http://adl.serveftp.org/dokuwiki/skdb14:59
diraI'm not sure if there is one standard portal for such hardware specific actions  but take a look at  www.nvidia.com , I'm sure I saw something about collision detection there15:00
kanzuregpgu.org has some stuff, but no specific libraries15:01
kanzurenot everyone is using nvidia15:01
diratrue15:01
* dira gets headache every time he thinks of game development15:02
dirabtw , what portal do you suggest ?15:02
kanzureback in 2003 I wrote my own called "mPort Gold"15:03
kanzurebut I wouldn't recommend it. these days all the cool kids use django or drupal.15:03
diradoes they support multi portal systems ?15:04
kanzurewhat does that mean?15:04
kanzurebtw, why are you in here? have we met?15:04
dirahaving N web sites with one shared code based and administration15:04
kanzuresure drupal has something like that15:05
kanzuredjango too15:05
kanzurepython plugin for sketchup: http://www.cosc.canterbury.ac.nz/greg.ewing/SuPy/15:05
diraand I'm here because H+ sounds interesting to me ?15:05
kanzureah15:06
kanzurehow'd you find me?15:06
dirafind you ? you found me !15:06
kanzureyou came in here :p15:06
dirathen if "H+ channel" == "kanzure" then I found you , correct15:07
dira;)15:07
kanzureso you searched for a transhuman channel?15:07
diraUtopiah is the link15:08
kanzureoh okay15:08
* Utopiah was watching silently15:08
kanzurehi Utopiah 15:08
Utopiahhi kanzure , hi dira , hi #hplusroadmap 15:08
dirahowdy15:09
Utopiahafaik is knowledgeable in physics and CS and interested in H+ thus... his presence 15:09
kanzureneat15:09
Utopiahunfortunately he's also developing a cult to Feynman and C# ;)15:10
diraFeyman is the Man !15:11
Utopiah(shouldn't have started it)15:11
kanzurea carl feynman cult wouldn't be too bad15:11
diraUtopiah, I know your weak spot , http://research.microsoft.com/apps/tools/tuva/#data=5|0||d71e62e2-0b19-4d82-978b-9c0ea0cbc45f||15:12
dirathe relation of Mathematics to Physics  , but that's more than that ... it's more like philosophy of mind and science ! 15:14
Utopiaheither that or talking on IRC before finishing my dinner ;) bbl15:14
diraTYT15:15
-!- ybit [n=heath@unaffiliated/ybit] has quit ["leaving"]15:22
kanzuregear-wheel.py http://www.salome-platform.org/user-section/tui-examples/gear_wheel.py15:29
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has joined #hplusroadmap15:51
kanzuretechnically the collision detection only needs to be done when making the virtual assembly. path planning for whether or not it is possible to actually make it is a different question.16:00
-!- wrldpc2 [n=benny@ool-ad03fe34.dyn.optonline.net] has quit []16:34
kanzureneat, uzbl made slashdot17:06
-!- dira [n=chatzill@86.99.40.183] has quit ["ChatZilla 0.9.85 [Firefox 3.5.2/20090729225027]"]17:09
-!- dira [n=chatzill@86.99.40.183] has joined #hplusroadmap17:09
-!- dira [n=chatzill@86.99.40.183] has quit ["ChatZilla 0.9.85 [Firefox 3.5.2/20090729225027]"]17:16
-!- ybit [n=heath@unaffiliated/ybit] has joined #hplusroadmap17:20
parolangI wasn't able to get uzbl to compile.17:22
kanzureouch17:22
kanzureuzbl just made slashdot, btw17:22
parolangyeah, I'm looking for it right now17:22
parolangI'm gonna use conkeror for now.17:23
kanzureit's on github17:23
parolangYeah, that's where I got it from.  Maybe that's the problem, I got a version that won't compile.17:25
kanzuredieterbe's repo?17:25
parolangYeah.17:25
parolangI love your approach to the web, btw :)17:27
parolangI've seen some of the files on your site about bookmarking, etc.17:27
kanzurethanks :)17:27
kanzuredid you see my slashdot comment?17:28
parolangYeah.  Googling surfraw now :)17:29
-!- ybit [n=heath@unaffiliated/ybit] has quit ["leaving"]17:37
kanzureparolang: ?17:39
parolangYou mention surfraw in your slashdot comment.17:39
kanzureyeah17:39
kanzuredid you find it?17:39
parolangYes I did, I'm reading about it now :)17:39
parolangI guess I don't know what it does.  Does it download the web pages? output the pages to stout?17:41
kanzureit's a scraper17:41
kanzureso for google search results, it spits out links and titles17:41
kanzureand for other things it does other things17:41
parolangOkay, cool.17:41
kanzurethe problem though is that there are too few developers to keep up17:41
kanzureso that's why I came up with that xpather+uzbl plan of attack17:42
parolangYeah, I read that, but I have no clue about xpath.17:42
kanzurexpath is like a URL except it specifies a specific element in an HTML document17:42
kanzurefor pages with generated content, you just look for an element with the CSS class that you want, or something17:43
-!- ybit [n=ybit@unaffiliated/ybit] has joined #hplusroadmap17:43
parolangBut don't you have the same trouble if the div structure, for instance, changes between layout changes?17:43
kanzureso you can say: /a @attr(href="http://google.com/")/b/ and get back the text inside any link that is also bolded17:43
kanzurethat's right17:43
kanzureso that's why uzbl is great for this17:44
kanzurelet's say you're using some shell scripts to do your scraping17:44
kanzureand suddenly it detects that the layout has changed17:44
-!- kibombo [n=ubuntu@unaffiliated/akafubu] has joined #hplusroadmap17:44
kanzureand everything is fucked up17:44
kanzurein the traditional way, you have to go into a browser and spend an hour writing a new scraper17:44
kanzurein the uzbl way with xpather, it might be only a two minute task 17:44
kanzureof you clicking on the regions of the page that correspond to the content you want17:44
-!- kibombo [n=ubuntu@unaffiliated/akafubu] has left #hplusroadmap []17:45
kanzurethen your shell-based scraper is updated and everything is all well17:45
parolangHow do you return the selected section of the page in uzbl?17:45
kanzureyeah I'm working on that17:45
kanzurenot sure yet17:45
kanzureit's more of a webkit issue I think17:46
parolangThat's a question I had in mind for a somewhat different task: annotating web pages.17:46
parolangI want to be able to select a section of the web page, hit a command, the command opens emacs and I can edit my annotation there.  It could save teh page offline in case the page changes.17:47
parolang*the17:47
kanzureokay17:48
kanzureyeah firefox has this "view selection source" feature, so I know it's able to figure out relatively where in the document corresponds to the general region you're clicking in17:48
parolangYeah.  Which is why I think this might be easier in conkeror which uses javascript for scripting.  I'll see :)17:49
kanzureI had some complaint about KHTML back in the day17:50
kanzureI forget what it was17:50
kanzureI mean, what I disliked about it17:50
kanzurebesides the way the rendered pages look :p17:50
parolangheh :)17:51
kanzureis O(nlog(n)) less or greater than O(n**2)?17:52
parolangDon't know.17:52
kanzure ah looks like it17:53
kanzureer, looks like it's always less than17:53
parolangThat would be my guess but don't want to steer you wrong :)17:53
kanzureI think I can do a collision detection algorithm that is O(nlog(n))17:54
kanzureoops, O(n**(k) * log(n)) where k is the number of parts17:55
kanzurehm wait does that even make sense?17:56
kanzuren**k makes it suck immensely17:57
parolangSorry but this stuff is over my head :)17:57
kanzuren**k means n multiplied by n except k times of that operation.17:58
parolangWell, I know math.  Just not O-notation (what does the n mean?)17:59
kanzurelet's say you had a for loop (for each blah in some_list). in this case, n is the length of some_list17:59
parolangAnd in the collision detector?18:00
parolangI thought n would be the number parts.18:00
kanzurethat's correct18:00
kanzureso O(n) would be an absolutely ideal situation18:00
parolangThen what's k?18:00
kanzurebut you need to check if parts are intersecting18:00
kanzurewell, there's this certain algorithm you can use called k-means18:00
kanzurek-means is a way of clustering up all data points into k clusters by taking the values' means18:00
kanzurethen if I have stuff from one part in two different clusters, I know something is fucked up18:01
kanzurewith respect to a given threshold value of course that I'll have to tweak18:01
kanzurebut if the computational complexity (big o notation) tells me that k-means is going to suck worse than just doing collision detection regularly (which is the O(n**2) method where you compare every part to every other part), why should I bother18:01
parolangah :)18:02
parolangThat's clever.18:02
kanzureif I was thinking more clearly I'd have my answer18:02
kanzurethe points that I would cluster would be the vertices in the part models I guess18:02
kanzureminus all vertices involved in mated interfaces18:03
kanzurebecause in those cases, parts are supposed to be very close to each other :)18:03
kanzureso those vertices shouldn't be considered18:03
kanzurebut if there are other clusters of vertices/points that are within the same cluster, then that should be a red flag18:03
kanzuredoing this without comparing every point to every other point, or every part to every other part, is key18:04
parolangSo you just want to know whether the objects collide, and not when they collide?  If you are moving parts around, then you'd want to know the latter.18:04
kanzurethat's right18:04
kanzurebut in this case I just want to know whether or not adding a part in a certain location will suck18:04
parolangmakes sense then18:04
kanzurefor path planning, yes, you'd want to detect whether or not the sweep of the part over some path would make it collide with anything18:05
kanzurethat would be useful for figuring out whether or not steps can actually be carried out to put something together18:06
kanzurealthough in some cases you can be pretty sure that anything you can make (per some rules) can be made, like with legos18:06
kanzureas long as you don't violate some laws of physics .. like collision and the whole pauli exclusion principle deal18:06
parolangOkay...you're thinking about the interfacing of parts, right?  That is, if it is physically possible for one part to interface with the other part, given the law that they can't coexist in the same space.18:06
kanzureright18:06
kanzureso skdb already has the part interface mating code down18:07
kanzureI even wrote some code to check for the "common" intersection set between two part models18:07
kanzurebut this requires you to do O(n**2)-- to run the algorithm for each part against each other part18:07
kanzurethe problem is that this "common intersection" takes 2 seconds to compute for each part18:07
kanzureso even if you only have ten or twenty parts, your computer cries18:07
kanzurethis is non-ideal :(18:07
-!- ybit [n=ybit@unaffiliated/ybit] has quit [Remote closed the connection]18:09
parolangBut isn't there a way you can narrow down the edges and vertices you have to consider?18:09
kanzurethe only way I can think of to do that would be to do some proximity testing18:10
kanzurebut the way to figure out what's in the local proximity is to scan through the list18:10
kanzureI guess that's O(n) and not as terrible18:10
parolangFor what it's worth, it seems to me that there should be some data attached to the part itself that contains the criteria on what kind of parts can fit into it's interfaces.  You can save this data with the part so you don't have to generate each time you want to combine it with another part.18:13
parolangMaybe it gets more complicated than what I'm thinking of in my head where this won't work.  But determining the criteria might be what takes most of the processing, so this can be "compiled" when the part is first constructed.18:15
kanzureyes parts already have that18:15
kanzurecheck it out: http://adl.serveftp.org/skdb/packages/lego/data.yaml18:16
-!- ybit [n=ybit@unaffiliated/ybit] has joined #hplusroadmap18:16
parolangSo, for instance, a part should be able to say "Whatever part that firts within this solid can interface" with me on this juncture.18:16
kanzureright18:16
kanzureyes mating compatibility for an interface/port is simple18:16
kanzurebut what if the part that connects has this weird thing18:16
kanzurethat comes back around and goes through the part it just mated to?18:16
kanzurethis should generate an error right?18:17
kanzureor what if it collides with another object in the design, too?18:17
parolangI'm having trouble picturing what you're talking about.18:18
kanzureuhrm.18:18
kanzureimagine an assembly with multiple parts18:18
kanzureone of these parts connects properly, but another region of the same part collides with another part in the assembly18:19
parolangOkay, that's clearer.18:20
parolangYeah, see what you mean.18:20
-!- xp_prg [n=xp_prg3@dsl081-249-107.sfo1.dsl.speakeasy.net] has joined #hplusroadmap18:20
parolangYou'd have to recompute the clearance not just for each individual part, but also for each combination of parts.18:21
parolangSo you couldn't save it each individual part.18:21
kanzurewell in skdb there's a way to figure out which "options" exist18:21
kanzurebut maybe collision detection would be used only when you want to try an option18:21
kanzureactually that kind of sucks18:21
kanzureif the detection algorithm is good enough, computing it for the part.options(other_thing) would be nice18:22
parolangIt would be nice if there was some way to memoize that collision detection, I think that's all I've added to the discussion :)18:22
parolangI'm overthinking it.  It's an interesting problem though.18:24
kanzureyou're not overthinking18:24
kanzureactually now that I think about it,18:27
kanzuresolidworks has this sort of part mating feature of sorts18:27
kanzureand what they do is totally ignore any collision detection issues18:27
kanzureyou can literally mate a part that screws up the rest of the assembly by intersecting oddly18:27
kanzureyou can also make screws go through walls, etc.18:27
parolangHmm.18:28
parolangHow does skdb figure out what position can the parts interface at? e.g., what angle; or does the port specify only one angle?18:29
kanzurepixel perfect (or voxel or "bounding box") methods might be a good fall back. it's what's used in most 2D/3D games. plus you can add in a resolution throttle/knob/variable thingy.18:29
kanzurein skdb an interface has an "interface point" or "control point"18:29
kanzurethis control point has a vector pointing out of it18:29
kanzurethis vector is defined as the mating vector18:30
kanzureif you mean "can an interface be at an angle", yes18:30
parolangI'm thinking in terms of legos here...things get more complicated quickly after that (e.g., materials that can bend, or squish like a sponge).18:31
kanzureif a cylinder in a cylindrical hole has to have a certain rotation, ther'es currently nothing about that at the moment because a cylinder is completely unlabeled18:31
kanzurebut it wouldn't be hard to add that in18:31
kanzureso anyway, since the commercial CAD systems don't do collision detection when making assemblies, maybe it doesn't have to be done here either, until "the end" where it can be checked18:32
kanzureand then you'll get a report about what sucks18:32
kanzureone expected use of skdb is generating alternative designs18:32
kanzureso in that case you might be generating hundreds of thousands of bullshit designs that, in the end, are evaluated to be impossible due to collision18:32
parolang:(18:32
kanzuresolidworks (etc.) were made with the idea of a person looking at the design at all times I guess18:33
kanzureoh maybe it could be something like this:18:33
kanzureeach part has a certain volume18:33
kanzurethe total assembly has a certain volume as well (the sum of the volumes of the parts)18:34
kanzurethe current BRepAlgoAPI_Common method does O(n**2) to figure out the volume between every part to every other part18:34
kanzurebut a better way might be to just take the volume of the entire object and make sure it is within a certain threshold18:34
kanzurein some cases there will be proper interference fits so that has to be taken into account18:34
kanzurebut that shouldn't be more than a total that you can count by looking at the assembly18:35
ybitcould you please stop talking so you don't f' my logs ;)18:35
kanzurewhat's wrong with your logs?18:35
ybit(i'm about to reboot again)18:35
kanzureoh18:35
kanzuretry getting on adl?18:35
ybitthat's an idea18:35
kanzurethere's a local copy of irssi18:35
ybita good one too18:35
-!- ybit2 [i=ybit@unaffiliated/ybit] has joined #hplusroadmap18:37
ybit2continue on :)18:37
parolangWell, you know if the sum of the volumes of each of the objects is greater than the sum of the objects together in configuration, then you have a collision.  Not sure if that's what you're talking about above.18:37
kanzureer I think you're wrong18:37
-!- ybit2 [i=ybit@unaffiliated/ybit] has quit [Client Quit]18:38
kanzureoh, no, that's what I said18:38
kanzureyes18:38
kanzureybit: it died18:38
-!- ybit2 [i=ybit@unaffiliated/ybit] has joined #hplusroadmap18:38
ybiti realized i hadn't started it in screen, so i restarted18:38
parolangI think CAD programs store solid objects as being composed of geometric primitives (or I think BRLCAD did, when I last looked at it), so it could be easier doing the math this way.18:39
kanzureright, but not all CAD models are made up of primitives unfortunately18:39
kanzuremaybe STEP and IGES are, actually18:39
kanzureand in that case I agree that breaking it up into the primitives and just doing primitive collision would be so much easier18:40
kanzurebrlcad does do that, yes, that's the "dot g object database" format18:40
kanzurepoo poo to stl and dxf18:40
-!- ybit [n=ybit@unaffiliated/ybit] has quit [Remote closed the connection]18:40
parolang:)18:40
kanzureon the todo list in skdb/doc/todo there's a line that mentions coming up with an algorithm to convert from stl and povray into step or iges formats18:41
kanzurepovray files are written in a scripting language of sorts, so with the parser from pypovray- if it can be subdued into reading povray files (not just writing them)- then we might have a chance at at least that.18:41
kanzurethere's about ~700 lego parts in the povray format in some free lego software package .. but they are unusable because they are in the povray format18:42
parolangYeah.18:43
* parolang googles constraint satisfaction.18:44
kanzureconstraint satisfaction is usually mentioned (in here at least) with respect to geometric constraints on CAD models18:45
parolangThinking practically about this, collision detection is something that people have been working on for years, so if there's a better way I'm sure someone has found it.  Some of the game sites mention bounding boxes, which isn't relevant for this application (I don't think), as bounding boxes are an approximation.  You need something exact.18:51
kanzurethe problem is that the "exact" method takes a long time18:51
kanzureso approximations like bounding boxes might give enough speed.. 18:52
kanzureif I was going to do an approximation, I would probably want to try a voxel grid approach or something18:52
kanzurewhere a part takes up a certain chunk of 3D space, little tiny boxes18:52
kanzureand then anything else that tries to "register" those same spaces gets the shit whacked out of it18:52
parolangSo you fill the part up with voxels?  How efficient is that?18:53
kanzurehaven't done the calculation. probably not very efficient.18:53
kanzureit would be like doing a riemann integral on the interior of the part's surface or something18:53
kanzureand then registering those voxels in its name18:53
parolangYou still have to figure out when the voxel is outside of the part.  At least this can be precomputed and stored with the object.18:53
kanzureso yeah not a good idea overall18:53
kanzureright18:54
parolangIt seems that filling the part just submitted to the repository with voxels is something that can be done on the repository server when idle.  You want it to be fast when someone downloads a part and tries it in their design.18:56
kanzureewww18:57
kanzureno thank you18:57
parolangI'm saying if a trade off has to be made.  I don't know if it has to be or not.18:57
kanzurewe'll see with the volume method18:58
parolanggood luck19:00
kanzurewhat are the correct units on torque?19:44
kanzurejoule per rad?19:45
ybit2If you really need the data you'll have to hit the dead tree, I'm19:47
ybit2afraid.19:47
ybit2so eugen means google.com/books right? :)19:48
kanzureN*m =~ lbf * feet19:49
parolangNewton meter (N*m) according to Wikipedia.19:50
kanzurethere's also a "wrong" torque that people like to use19:50
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has quit [Read error: 148 (No route to host)]19:52
parolangkanzure: You've been modded troll and some smartass gets modded up for giving you sarcasm.19:54
-!- xp_prg [n=xp_prg3@dsl081-249-107.sfo1.dsl.speakeasy.net] has quit ["This computer has gone to sleep"]19:56
kanzureaw :(20:00
kanzurewell I'm probably a troll anyway20:00
kanzurerawr!20:00
parolangI corrected the error :)20:01
parolangAlthough...I've never used 450 tabs either :)20:01
parolangBut...with recursive searching, you could easily go over 50.20:01
parolangBut, ultimately, the userbase of slashdot has changed.20:02
parolangThere used to be a lot more core Unix people, but most of them have all left, and now it's filled with Mac fanboys.20:03
kanzureit's weird now. I was late to show up on slashdot,20:04
kanzurebut even when I did back in 2006 or 2007, it wasn't this bad20:04
kanzurenow it seems that everyone wants to hate on RMS20:05
kanzureeven though nobody knows him :p20:05
parolangI think the issue is with the lack of quality of slashdot articles, lots of dupes, poor summaries, and general flamishness.20:05
parolangSo the people who used to frequent have all left.20:06
kanzureclass II theta is interesting20:09
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has joined #hplusroadmap20:19
kanzuredoes anyone know the name and group who did the remix of the blue oyster cult song used in the 2010 lincoln mks commercial?20:33
kanzurehttp://www.lincoln.com/extras/tvads.asp?id=7&intcmp=B_FreeSongDownload_MKZHome_LincolnTVAds_2009040820:33
-!- any41308722 [n=someone@75-120-26-209.dyn.centurytel.net] has joined #hplusroadmap20:33
-!- katsmeow-afk [n=someone@75-120-45-160.dyn.centurytel.net] has quit [Nick collision from services.]20:35
-!- any41308722 is now known as katsmeow20:35
-!- davidnunez [n=davidnun@209-6-203-217.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit []20:36
-!- nchaimov [n=cowtown@c-24-21-45-17.hsd1.wa.comcast.net] has quit []20:39
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has quit [Read error: 60 (Operation timed out)]20:39
-!- davidnunez [n=davidnun@209-6-203-217.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #hplusroadmap20:51
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has joined #hplusroadmap21:33
ybit2fenn_adl, kanzure: did either of you try using occ .deb?21:49
kanzurehttp://adl.serveftp.org/dokuwiki/occ21:51
kanzurehttp://adl.serveftp.org/dokuwiki/pythonocc21:51
kanzureyou'll see that on the top of the pythonocc page in the instructions there's an apt-get call21:51
kanzureif you're asking whether or not it worked, the answer is yes :)21:51
genehackerhttp://www.physorg.com/news171034413.html22:15
genehackerthis sounds very fishy22:15
-!- xp_prg [n=xp_prg3@208.54.15.112] has joined #hplusroadmap22:19
CIA-32skdb: kanzure * r ccace42 /doc/ (lists/adesign-library.yaml todo): adesign library component list22:23
CIA-32skdb: kanzure * r c021c3b / (core/interface.py geom/geom.py): functions to determine whether or not an added part collides unwantedly. see estimate_collision_existence in geom/geom.py22:23
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has quit [Read error: 60 (Operation timed out)]22:26
ybit2the suzanne gilbert talk which was forwarded to tt Quantum Computers and the creation of human-level artificial intelligence - Uploading Schrodinger's Cat?!... will be recorded and the annoucement of the upload will be on the ExtroBritannia list23:07
katsmeowtranscript?23:07
ybit2dunno estropico@gmail.com might know though23:07
ybit2he's the person whom told me he heard/read or found out somehow just a few hours ago23:08
katsmeowi broke Google again:23:09
katsmeowResults 1 - 10 of about 26,500 for suzanne gilbert talk which was forwarded to tt Quantum Computers and the creation of human-level artificial intelligence. (0.37 seconds) 23:09
katsmeowSearch ResultsMichigan Channel: Channel 22: Search Results for “um”23:09
katsmeow"um" ?23:09
ybit2:)23:09
-!- genehacker [n=noko@pool-173-57-48-104.dllstx.fios.verizon.net] has joined #hplusroadmap23:13
kanzure>>> geom.shape_volume(box1.Shape())23:19
kanzure1000.000000000000123:19
kanzure>>> geom.shape_volume(box2.Shape())23:19
kanzure1000.000000000000123:19
kanzure>>> geom.shape_volume(fused_shape)23:19
kanzure1000.000000000000123:19
kanzurewhere: box1 = BRepPrimAPI_MakeBox(gp_Pnt(0,0,0), gp_Pnt(10,10,10))23:20
CIA-32skdb: kanzure * r 1047d2e /unittests/test_geom.py: test fused shape volumes and shape_volume function in geom/geom.py23:28
fennok what if you move one cube to the side a bit23:29
fennand how long does it take to calculte that?23:29
kanzureit doesn't take long at all as it is right now23:31
kanzurebut we don't know how long it takes to calculate the BRepAlgoAPI_Common of two boxes either23:32
kanzureit might be that custom brep models take longer across the board23:32
kanzureor BRepAlgoAPI_Common sucks23:32
CIA-32skdb: kanzure * r e900647 /unittests/ (test_part.py test_transformation.py): cleaning up some tests23:33
kanzureis there some profiling module in python that you prefer?23:34
CIA-32skdb: kanzure * r 7a8b75f /geom/ode_collider.py: ode collider link23:35
kanzurehttp://pyode.sourceforge.net/tutorials/tutorial3.html23:36
-!- tropology [n=michael@adsl-68-255-98-211.dsl.chcgil.ameritech.net] has quit []23:40
kanzureuhrm... what?23:41
kanzurefor box 0,0,0..10,10,10 and box 5,5,5..15,15,15, the fused volume is 1875.023:42
kanzureI should probably do something I can mentally check23:42
kanzureAssertionError: 125.00000000000001 != 125.023:47
kanzurefenn: http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions23:59
kanzurehttp://en.wikipedia.org/wiki/Time_complexity23:59

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