#qi-hardware IRC log for Monday, 2016-05-09

whitequarkhow is that relevant for OO?01:27
whitequarkfor that matter, the problem with solvespace codebase is that it's full of C-style shit. global variables all over the place.01:28
whitequarkif you want to make smug remarks about something you don't understand, take some time to learn what it is, first01:29
wpwrakran out of aggression control pills ? :) that was just a remark on the expression "refactoring" having appeared with OO. before you called it "clean up" or such. "refactoring" sounds so much more professional ;-)02:22
Action: whitequark shrugs02:30
whitequarkanyway, the reason it's hard to fix is that... it's easy to introduce a single table with global parameters02:33
whitequarkbut that's not very useful, because what you really want is to choose a row from that table when you import a sketch, right?02:33
whitequarklike to have a single screw-Mn.slvs with variable n02:33
whitequarkand solvespace right now has just a single global sketch, and a bunch of other things that make it all but impossible to solve one sketch while having another open02:34
whitequarkeverything is coupled, sketches don't exist in separation from UI, all the minute stuff lives in globals02:34
whitequarkfixing this is pretty much the next few months work on solvespace.02:34
wpwrakin fped, all you see are "instances". when you click on something, you click on the instance. but what you actually edit is the object. that works pretty smoothly, even if it may sound weird.03:29
wpwraknot sure if there's some idea worth stealing for solvespace in there, though03:30
whitequarkso you have an "object" with a dimension say of "a"03:31
whitequarkand an "instance" of the "object" with a=10?03:31
wpwrak(for SS) i guess you could have "master" sketches with parameters and then subordinate sketches with the parameters filled in according to tables or such. the subordinates would be read-only.03:32
wpwrakyes, in fact, the instance doens't know there's an "a". it just sees the resulting value. ("a" could be any expression)03:32
whitequarksolvespace actually has half of the infra for that. its symbolic algebra system can handle it03:32
whitequarkthe problem is that there's only one sketch and it's global and most of the functions to do anything with it refer to that global03:34
whitequarkso... within a single process, only one sketch exists03:34
wpwrakah, so also the groups are part of that one global sketch ?03:35
whitequarkwhen you import another sketch there's a hack03:36
whitequarkit's not actually loaded, rather, when you save a sketch, the geometry is saved alongside it03:36
whitequarkand when you import it, it's not re-solved, the saved geometry is imported in one piece03:36
whitequarkas well as some entities (circles, points, etc; everything with parameters)03:36
whitequarkso it's completely impossible to e.g. import a sketch but with a parameter changed03:37
wpwraki guess something similar to what i go in fped would work there, too. if a sketch uses parameters from a table, you treat it as "object" and only show the "instances".03:47
wpwrakyou'd also want a means to have a hierarchy of such tables. so that you can, say, have one set of iterations for dice, and one for their faces03:50
whitequarkit's not about treating it from an object03:50
whitequarkit's about not being able to ever have more than once instance in a process03:50
whitequarktreating it as an object*03:50
whitequarkas for hierarchy, yes, that's also planned03:54
whitequarksame problem: need more than one sketch loaded03:55
whitequarkand a second problem is that the file format is naive and has no nesting03:56
whitequarkalso, very inefficient03:56
whitequarkI think I'll replace it with a zip archive with bitcode (LLVM's format) files inside, one per sketch03:57
whitequarkthis way, it's easy to exchange (just one file!), easy to read (works with any archiver), and easy to put in VCS if you ever need that (just unpack it)03:58
whitequarkso solvespace would just treat the zip archive as a "folder" and existing logic for relative paths being recorded inside sketch files would apply04:00
DocScrutinizer05whitequark: well, that's what .odc does, no?09:14
DocScrutinizer05err .odf09:15
DocScrutinizer05aka openoffice09:15
DocScrutinizer05can't be wrong :-)09:15
whitequarkalso sigrok and a number of other software09:18
DocScrutinizer05actually I think .deb 'invented' it?09:28
DocScrutinizer05or is the concept even older?09:29
DocScrutinizer05~#maemo flashing-cmdline09:32
DocScrutinizer05just for a faintly related example how useful the archives are09:34
infobot[flashing-cmdline] http://mg.pov.lt/maemo-irclog/%23maemo.2016-04-09.log.html#t2016-04-09T01:18:1209:35
DocScrutinizer05alas it'salso still exploited for a lot of malware spam09:36
Action: DocScrutinizer05 tries to catch upwith backlog09:39
DocScrutinizer05whitequark: c&p oneliner for noobs to get solvespace?09:48
DocScrutinizer05prolly starting with "git create" or whatever09:49
DocScrutinizer05or even "mkdir"09:49
whitequarkassumes you already git cloned it09:51
whitequarkfor 'noobs' i guess the easiest way is to get a package tho09:51
DocScrutinizer05hmm, k. maybe I find a way to handle this .deb on my RPM system09:52
whitequarkhm I thought y ou had a adebian-based system09:53
whitequarkI don't have any easy instruction for rpm systems09:53
DocScrutinizer05wtf? sh: rpmbuild: command not found10:05
DocScrutinizer05http://paste.opensuse.org/91443329  now let's see10:06
DocScrutinizer05T (me does a sign with both hands):  http://paste.opensuse.org/7287272210:09
whitequarkthats completely unsurprising10:10
whitequarkyou don't need the -dev packages for the binary package10:10
whitequarkin all likelihood you only need to install libgtkmm-2.4 libpangomm-1.4 libjson-c libspnav10:12
whitequarkeverything else is pulled in by these10:12
DocScrutinizer05https://software.opensuse.org/search?q=libgtkmm-2.4  I pass10:15
whitequarkyea thats right10:17
DocScrutinizer05zypper in libpangomm-1_4-1  -> Nothing to do.10:20
DocScrutinizer05you'll have decent install instructions for RPM based systems in a few minutes, eh? ;-)10:20
whitequarkwell ideally i would build rpms10:20
whitequarkthatd cover most distros anywhere10:20
DocScrutinizer05now back to the roots:  Problem: nothing provides libGLEW.so.1.10()(64bit) needed by solvespace-2.1-2.x86_6410:21
whitequarkoh right also glew10:22
whitequarkyeah you need 1_1010:22
DocScrutinizer05WAAAH!  http://wstaw.org/m/2016/05/09/plasma-desktoprT2219.png10:24
DocScrutinizer05sorry, not going to install OO510:25
whitequarkoh, only OO5 includes that10:26
whitequarkok. then your only choice is to build from source10:26
Action: DocScrutinizer05 should rather head out and have a 3 beers and a long scooter, not necessarily in that sequence10:27
DocScrutinizer05scooter ride*10:27
whitequarkah well10:28
DocScrutinizer05I bet any git checkout of solvespace wouldn't include the libGLEW either10:28
whitequarkit won't, libglew is an external library10:29
whitequarkbut it will build with libglew1_910:29
whitequarkit just doesn't work with an existing binary lib10:29
whitequarkbecause it changed the ABI. the API is the same though10:29
DocScrutinizer05so we're back to square one ;-)10:29
DocScrutinizer05>>[2016-05-09 Mon 11:51:36] <whitequark> assumes you already git cloned it<<10:30
DocScrutinizer05which is a pretty optimistic assumption10:30
DocScrutinizer05git noob^hhater here10:31
whitequarkyou actually need git and not a tarball because there's a lib included as a submodule10:32
DocScrutinizer05fine with that, just NFC how to do10:32
DocScrutinizer05never touched git except via c&p of cmdlines10:32
whitequark$ git clone http://github.com/whitequark/solvespace10:32
DocScrutinizer05mkdir first maybe?10:33
whitequarkit will create a `solvespace` directory10:33
whitequarkthen cd solvespace10:33
whitequarkthen follow https://github.com/whitequark/solvespace#building-for-linux exactly except for apt-get command10:33
whitequarki'm not sure where opensuse places developer files10:33
whitequarkmaybe in the gtkmm package?10:34
whitequarkwell, developer files for gtkmm live in the gtkmm pakcage itself10:34
DocScrutinizer05so good so far http://paste.opensuse.org/3264494710:35
DocScrutinizer05BWAHAHA      CMake 3.1.0 or higher is required.  You are running version
whitequarksays 3.3.2 here10:38
DocScrutinizer053.5 even10:41
DocScrutinizer05--   No package 'json-c' found10:42
DocScrutinizer05I can do that :-)10:42
whitequarkmaybe even libjson-c210:43
DocScrutinizer05which one? got both10:44
DocScrutinizer05err nope, sorry10:44
DocScrutinizer05grr needs -devel too?10:45
whitequarkoh it's -devel10:46
whitequarkyes, then you need all of those -devel10:46
DocScrutinizer05--   No package 'glew' found10:46
DocScrutinizer05--   No package 'gtkmm-2.4' found10:47
DocScrutinizer05--   No package 'pangomm-1.4' found10:48
whitequarklibgtkmm... etc10:48
whitequarkhttps://software.opensuse.org/package/libgtkmm-2_4-1 https://software.opensuse.org/package/libpangomm-1_4-110:49
DocScrutinizer05-- Build files have been written to: /home/jr/neo900git/solvespace/build10:50
DocScrutinizer05-Wall is a spammer10:52
DocScrutinizer05ohmy, prolly 50k warnings10:52
whitequarkcan you show me the log? I thought I fixed all that10:52
DocScrutinizer05I doubt it will fit into pastebin ;-P10:53
DocScrutinizer05yeah, too large10:54
whitequarkthat seems extreme10:54
DocScrutinizer05this is maybe 0.1% of the log10:56
whitequarkoh, gcc added some new warnings10:57
DocScrutinizer05wc -lc  gives    5607  76177610:58
DocScrutinizer05[100%] Linking C executable CDemo10:59
DocScrutinizer05[100%] Built target CDemo10:59
Action: DocScrutinizer05 curiously tries to run CDemo11:00
whitequarkthats nothing interesting11:00
whitequarkthe demo of the solver separate from solvespace itself11:00
DocScrutinizer05http://paste.opensuse.org/83507515 krhrhr yep11:01
DocScrutinizer05soooo... what next?11:02
DocScrutinizer05aaah sudo make install?11:02
DocScrutinizer05would prefer to test first11:02
whitequarkdon't need make install11:02
whitequarkruns just fine form where it's built11:03
whitequarkit has special code to detect that case and find all its usr/share junk11:03
DocScrutinizer05tiny colorful itsybitsyteenewheenie window :-D11:03
whitequarkdo you have a hidpi display or what?11:03
DocScrutinizer05don*t think so :-))11:04
whitequarkhmmm then it shouldn't be that tiny11:04
whitequarkbut w/e11:04
whitequarktutorial http://solvespace.com/tutorial.pl reference http://solvespace.com/ref.pl11:04
whitequarkthats only one of its two windows11:05
DocScrutinizer05ooh right11:05
DocScrutinizer05and given it's nailed to top of stack, it rather be small :-)11:06
DocScrutinizer05even funnier: doesn't show up in window list11:07
whitequarkit's only supposed to be on top of the main window11:07
whitequarkos x does this right and even windows does11:07
whitequarkbut x11 has no way to specify that11:07
DocScrutinizer05it's on top of everything, all times11:07
whitequarki'd rather not do that but i can't11:07
DocScrutinizer05I will try to do a little fancy and create some khotkeys stuff for it to stay on top of main solvespace window only11:08
DocScrutinizer05I easily can unselect the "stay on top" property anyway, so not THAT bad11:09
DocScrutinizer05unless... I don't find it in window list to get it to top again11:09
whitequarkalso you can close and open it via menu in main window11:10
DocScrutinizer05no, doesn't even show up in aölt-tab list11:10
DocScrutinizer05hmm, so how about you closing it automatically when main window goes to background, and vice versa?11:11
DocScrutinizer05sounds like the "easiest" implementation11:11
DocScrutinizer05better than some kdesktop scripting11:11
whitequarkthats rather nasty11:11
whitequarki mean it works very well with my wm, for example11:12
DocScrutinizer05mompls, need to talk to evildragon11:12
DocScrutinizer05#dragonbox-pyra, sourcing of PLS8 modem modules11:18
DocScrutinizer05[2016-05-09 Mon 10:38:48] * DocScrutinizer05 tries to sort own options about joining in tomodem purchase with a few (hundred)   [2016-05-09 Mon 13:11:58] <EvilDragon> DocScrutinizer05, Sure, if you need the same parts, reaching MOQs is easier.11:19
eintopf:o EvilDragon11:36
eintopfthe guy behind gp2x-shop11:37
DocScrutinizer05yeah, a nice guy11:46
eintopfwhen I was ~14 I was very close to buy some gp2x11:52
eintopfbut was too expensive11:52
DocScrutinizer05whitequark: yes, the tiny window is definitely lost in nirvana once I disable the keep-on-top property13:55
DocScrutinizer05can't even find a way to disable and re-enable it from main window13:56
DocScrutinizer05something about the window properties make it completely vanish in KDE window manager13:57
DocScrutinizer05so unless I minimize *all* other windows (which I didn't) there's no way to get back to that tiny window once it's allowed to go to background13:58
whitequarkDocScrutinizer05: View ’ Show Text Window22:24
DocScrutinizer05hmm, mised that22:24
whitequarkwhat I do to it is22:24
whitequark        set_keep_above(true);22:24
whitequark        set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY);22:24
whitequark        set_skip_taskbar_hint(true);22:24
whitequark        set_skip_pager_hint(true);22:24
DocScrutinizer05the last two make the window unaccessable22:26
DocScrutinizer05and I don't understand why they are needed anyway, or rather what for22:27
DocScrutinizer05(my uneducated guess)22:27
whitequarkI did that when porting from Windows to achieve identical behavior22:28
whitequarkit doesn't seem like ICCCM has the behavior that I want22:31
whitequarkDocScrutinizer05: wait no23:12
whitequarkDocScrutinizer05: can you remove the line src/gtk/gtkmain.cpp:1318 and recompile?23:14
whitequarkon Ubuntu's WM, this gives the exact behavior that I expect23:14
whitequarkdunno if it does on kwin23:14
DocScrutinizer05whitequark: wouldn't you want to rather paste me a sed line?23:14
DocScrutinizer05like find . -name gtkmain.cpp -exec sed 's\1318\d' \;   or sth23:16
whitequarkI have no idea how to do that23:18
whitequarkcan you just delete one line by its number?23:18
DocScrutinizer05how to do what?23:18
whitequarkopen the file in an editor23:18
whitequarkhow to do *what*23:18
DocScrutinizer05I think so, but the idea actually would rather be to find the right line without a number that's possibly ambiguous or wrong23:18
whitequarkit's the current HEAD and the line is "set_keep_above(true);"23:19
whitequarkthe commit that you cloned yesterday23:19
DocScrutinizer05I pasted a cmdline23:19
DocScrutinizer05don't expect me to know what I did23:19
whitequarkI don't, I already know what you did and it's enough23:20
DocScrutinizer05jr@saturn:~/neo900git/solvespace/build> less src/gtk/gtkmain.cpp23:21
DocScrutinizer05src/gtk/gtkmain.cpp: Datei oder Verzeichnis nicht gefunden23:21
DocScrutinizer05jr@saturn:~/neo900git/solvespace/build> less ../src/gtk/gtkmain.cpp23:21
DocScrutinizer05now paste a unique string of the line to delete23:21
DocScrutinizer05jr@saturn:~/neo900git/solvespace/build> sed -i "s/set_keep_above(true);//" ../src/gtk/gtkmain.cpp23:22
DocScrutinizer05[100%] Built target CDemo23:23
whitequarkokay, now run it23:24
whitequarkwhat happens on my ubuntu install (gnome) is that both solvespace windows stay on the same "layer"23:24
DocScrutinizer05the text window isn't stay-on-top anymore, rest unchanged23:24
whitequarkwhen you switch to graphics window after overlapping text window with sth else, does text window come up?23:25
DocScrutinizer05so just what could be expected23:25
whitequarkok. lemme install kubuntu then23:25
DocScrutinizer05I had to disable and re-enable text-window to find it again23:25
--- Tue May 10 201600:00

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