2016-05-09 01:27 how is that relevant for OO? 2016-05-09 01:28 s/relevant/specific/ 2016-05-09 01:28 whitequark meant: "how is that specific for OO?" 2016-05-09 01:28 for that matter, the problem with solvespace codebase is that it's full of C-style shit. global variables all over the place. 2016-05-09 01:29 if you want to make smug remarks about something you don't understand, take some time to learn what it is, first 2016-05-09 02:22 ran 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 ;-) 2016-05-09 02:30 * whitequark shrugs 2016-05-09 02:33 anyway, the reason it's hard to fix is that... it's easy to introduce a single table with global parameters 2016-05-09 02:33 but that's not very useful, because what you really want is to choose a row from that table when you import a sketch, right? 2016-05-09 02:33 like to have a single screw-Mn.slvs with variable n 2016-05-09 02:34 and 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 open 2016-05-09 02:34 everything is coupled, sketches don't exist in separation from UI, all the minute stuff lives in globals 2016-05-09 02:34 fixing this is pretty much the next few months work on solvespace. 2016-05-09 03:08 MistahDarcy has joined #qi-hardware 2016-05-09 03:13 doomlord_ has joined #qi-hardware 2016-05-09 03:29 in 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. 2016-05-09 03:30 not sure if there's some idea worth stealing for solvespace in there, though 2016-05-09 03:31 pigeons has left #qi-hardware [#qi-hardware] 2016-05-09 03:31 so you have an "object" with a dimension say of "a" 2016-05-09 03:31 and an "instance" of the "object" with a=10? 2016-05-09 03:31 right? 2016-05-09 03:32 (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. 2016-05-09 03:32 yes, in fact, the instance doens't know there's an "a". it just sees the resulting value. ("a" could be any expression) 2016-05-09 03:32 yep 2016-05-09 03:32 solvespace actually has half of the infra for that. its symbolic algebra system can handle it 2016-05-09 03:34 the 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 global 2016-05-09 03:34 so... within a single process, only one sketch exists 2016-05-09 03:35 ah, so also the groups are part of that one global sketch ? 2016-05-09 03:35 yep 2016-05-09 03:36 when you import another sketch there's a hack 2016-05-09 03:36 it's not actually loaded, rather, when you save a sketch, the geometry is saved alongside it 2016-05-09 03:36 and when you import it, it's not re-solved, the saved geometry is imported in one piece 2016-05-09 03:36 as well as some entities (circles, points, etc; everything with parameters) 2016-05-09 03:37 so it's completely impossible to e.g. import a sketch but with a parameter changed 2016-05-09 03:38 sandeepkr has joined #qi-hardware 2016-05-09 03:40 fengling has joined #qi-hardware 2016-05-09 03:41 archang has joined #qi-hardware 2016-05-09 03:47 i 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". 2016-05-09 03:50 you'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 faces 2016-05-09 03:50 it's not about treating it from an object 2016-05-09 03:50 it's about not being able to ever have more than once instance in a process 2016-05-09 03:50 treating it as an object* 2016-05-09 03:53 archang has quit [Ping timeout: 252 seconds] 2016-05-09 03:54 as for hierarchy, yes, that's also planned 2016-05-09 03:55 same problem: need more than one sketch loaded 2016-05-09 03:56 and a second problem is that the file format is naive and has no nesting 2016-05-09 03:56 also, very inefficient 2016-05-09 03:57 I think I'll replace it with a zip archive with bitcode (LLVM's format) files inside, one per sketch 2016-05-09 03:58 this 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) 2016-05-09 03:59 DocScrutinizer05 has quit [Disconnected by services] 2016-05-09 03:59 DocScrutinizer05 has joined #qi-hardware 2016-05-09 04:00 so solvespace would just treat the zip archive as a "folder" and existing logic for relative paths being recorded inside sketch files would apply 2016-05-09 04:00 kristianpaul has quit [Quit: Lost terminal] 2016-05-09 04:02 kristianpaul has joined #qi-hardware 2016-05-09 04:14 kristianpaul has quit [Quit: Lost terminal] 2016-05-09 04:55 fengling_ has joined #qi-hardware 2016-05-09 04:55 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 05:22 fengling_ has quit [Ping timeout: 240 seconds] 2016-05-09 05:55 fengling_ has joined #qi-hardware 2016-05-09 06:10 infobot has quit [Ping timeout: 240 seconds] 2016-05-09 06:17 sb0 has quit [Quit: Leaving] 2016-05-09 06:26 xiangfu has joined #qi-hardware 2016-05-09 06:45 fengling_ has quit [Ping timeout: 240 seconds] 2016-05-09 07:01 fengling_ has joined #qi-hardware 2016-05-09 08:05 jwhitmore has quit [Ping timeout: 260 seconds] 2016-05-09 08:06 xiangfu has quit [Ping timeout: 276 seconds] 2016-05-09 08:08 xiangfu has joined #qi-hardware 2016-05-09 08:35 sandeepkr has quit [Quit: Leaving] 2016-05-09 08:35 sandeepkr has joined #qi-hardware 2016-05-09 08:39 xiangfu has quit [Ping timeout: 265 seconds] 2016-05-09 08:53 xiangfu has joined #qi-hardware 2016-05-09 08:58 xiangfu has quit [Ping timeout: 246 seconds] 2016-05-09 09:13 xiangfu has joined #qi-hardware 2016-05-09 09:14 whitequark: well, that's what .odc does, no? 2016-05-09 09:15 err .odf 2016-05-09 09:15 aka openoffice 2016-05-09 09:15 sandeepkr has quit [Quit: Leaving] 2016-05-09 09:15 can't be wrong :-) 2016-05-09 09:16 sandeepkr has joined #qi-hardware 2016-05-09 09:18 yes 2016-05-09 09:18 also sigrok and a number of other software 2016-05-09 09:18 xiangfu has quit [Remote host closed the connection] 2016-05-09 09:24 fengling_ has quit [Ping timeout: 240 seconds] 2016-05-09 09:26 pcercuei has joined #qi-hardware 2016-05-09 09:28 actually I think .deb 'invented' it? 2016-05-09 09:29 fengling__ has joined #qi-hardware 2016-05-09 09:29 or is the concept even older? 2016-05-09 09:29 archang has joined #qi-hardware 2016-05-09 09:32 ~flashing-cmdline 2016-05-09 09:32 ~#maemo flashing-cmdline 2016-05-09 09:32 jwhitmore has joined #qi-hardware 2016-05-09 09:34 just for a faintly related example how useful the archives are 2016-05-09 09:35 infobot has joined #qi-hardware 2016-05-09 09:35 ~flashing-cmdline 2016-05-09 09:35 [flashing-cmdline] http://mg.pov.lt/maemo-irclog/%23maemo.2016-04-09.log.html#t2016-04-09T01:18:12 2016-05-09 09:36 alas it'salso still exploited for a lot of malware spam 2016-05-09 09:39 * DocScrutinizer05 tries to catch upwith backlog 2016-05-09 09:48 whitequark: c&p oneliner for noobs to get solvespace? 2016-05-09 09:49 prolly starting with "git create" or whatever 2016-05-09 09:49 or even "mkdir" 2016-05-09 09:51 https://github.com/whitequark/solvespace#building-for-linux 2016-05-09 09:51 :-) 2016-05-09 09:51 assumes you already git cloned it 2016-05-09 09:51 for 'noobs' i guess the easiest way is to get a package tho 2016-05-09 09:52 https://github.com/whitequark/solvespace/releases/download/nightly.2016-05-07/solvespace_2.1_amd64.deb 2016-05-09 09:52 hmm, k. maybe I find a way to handle this .deb on my RPM system 2016-05-09 09:53 hm I thought y ou had a adebian-based system 2016-05-09 09:53 nope 2016-05-09 09:53 I don't have any easy instruction for rpm systems 2016-05-09 10:03 fengling__ is now known as fengling 2016-05-09 10:05 wtf? sh: rpmbuild: command not found 2016-05-09 10:06 http://paste.opensuse.org/91443329 now let's see 2016-05-09 10:09 T (me does a sign with both hands): http://paste.opensuse.org/72872722 2016-05-09 10:10 thats completely unsurprising 2016-05-09 10:10 wait 2016-05-09 10:10 you don't need the -dev packages for the binary package 2016-05-09 10:12 in all likelihood you only need to install libgtkmm-2.4 libpangomm-1.4 libjson-c libspnav 2016-05-09 10:12 everything else is pulled in by these 2016-05-09 10:15 https://software.opensuse.org/search?q=libgtkmm-2.4 I pass 2016-05-09 10:16 wait 2016-05-09 10:16 https://software.opensuse.org/search?utf8=%E2%9C%93&q=libgtkmm 2016-05-09 10:17 https://software.opensuse.org/package/libgtkmm-2_4-1 2016-05-09 10:17 yea thats right 2016-05-09 10:18 https://software.opensuse.org/package/libpangomm-1_4-1 2016-05-09 10:19 http://paste.opensuse.org/76200840 2016-05-09 10:20 zypper in libpangomm-1_4-1 -> Nothing to do. 2016-05-09 10:20 you'll have decent install instructions for RPM based systems in a few minutes, eh? ;-) 2016-05-09 10:20 well ideally i would build rpms 2016-05-09 10:20 thatd cover most distros anywhere 2016-05-09 10:21 now back to the roots: Problem: nothing provides libGLEW.so.1.10()(64bit) needed by solvespace-2.1-2.x86_64 2016-05-09 10:22 oh right also glew 2016-05-09 10:22 http://paste.opensuse.org/14919743 2016-05-09 10:22 yeah you need 1_10 2016-05-09 10:24 WAAAH! http://wstaw.org/m/2016/05/09/plasma-desktoprT2219.png 2016-05-09 10:25 sorry, not going to install OO5 2016-05-09 10:26 what 2016-05-09 10:26 oh, only OO5 includes that 2016-05-09 10:26 ok. then your only choice is to build from source 2016-05-09 10:26 nevermind 2016-05-09 10:27 hmm? 2016-05-09 10:27 * DocScrutinizer05 should rather head out and have a 3 beers and a long scooter, not necessarily in that sequence 2016-05-09 10:27 scooter ride* 2016-05-09 10:28 ah well 2016-05-09 10:28 I bet any git checkout of solvespace wouldn't include the libGLEW either 2016-05-09 10:29 it won't, libglew is an external library 2016-05-09 10:29 but it will build with libglew1_9 2016-05-09 10:29 :nod: 2016-05-09 10:29 ooh 2016-05-09 10:29 it just doesn't work with an existing binary lib 2016-05-09 10:29 because it changed the ABI. the API is the same though 2016-05-09 10:29 so we're back to square one ;-) 2016-05-09 10:30 >>[2016-05-09 Mon 11:51:36] assumes you already git cloned it<< 2016-05-09 10:30 which is a pretty optimistic assumption 2016-05-09 10:31 git noob^hhater here 2016-05-09 10:32 you actually need git and not a tarball because there's a lib included as a submodule 2016-05-09 10:32 fine with that, just NFC how to do 2016-05-09 10:32 never touched git except via c&p of cmdlines 2016-05-09 10:32 $ git clone http://github.com/whitequark/solvespace 2016-05-09 10:33 mkdir first maybe? 2016-05-09 10:33 it will create a `solvespace` directory 2016-05-09 10:33 ok 2016-05-09 10:33 then cd solvespace 2016-05-09 10:33 then follow https://github.com/whitequark/solvespace#building-for-linux exactly except for apt-get command 2016-05-09 10:33 i'm not sure where opensuse places developer files 2016-05-09 10:34 maybe in the gtkmm package? 2016-05-09 10:34 well, developer files for gtkmm live in the gtkmm pakcage itself 2016-05-09 10:35 so good so far http://paste.opensuse.org/32644947 2016-05-09 10:37 BWAHAHA CMake 3.1.0 or higher is required. You are running version 2.8.11.2 2016-05-09 10:38 https://software.opensuse.org/package/cmake 2016-05-09 10:38 says 3.3.2 here 2016-05-09 10:41 3.5 even 2016-05-09 10:42 -- No package 'json-c' found 2016-05-09 10:42 I can do that :-) 2016-05-09 10:43 libjson-c 2016-05-09 10:43 maybe even libjson-c2 2016-05-09 10:44 which one? got both 2016-05-09 10:44 doomlord_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…] 2016-05-09 10:44 err nope, sorry 2016-05-09 10:45 grr needs -devel too? 2016-05-09 10:46 oh it's -devel 2016-05-09 10:46 yes, then you need all of those -devel 2016-05-09 10:46 -- No package 'glew' found 2016-05-09 10:47 https://software.opensuse.org/package/libGLEW1_13 2016-05-09 10:47 gnagnagna 2016-05-09 10:47 -- No package 'gtkmm-2.4' found 2016-05-09 10:48 -- No package 'pangomm-1.4' found 2016-05-09 10:48 libgtkmm... etc 2016-05-09 10:49 https://software.opensuse.org/package/libgtkmm-2_4-1 https://software.opensuse.org/package/libpangomm-1_4-1 2016-05-09 10:49 http://paste.opensuse.org/33134569 2016-05-09 10:50 -- Build files have been written to: /home/jr/neo900git/solvespace/build 2016-05-09 10:50 \o/ 2016-05-09 10:52 -Wall is a spammer 2016-05-09 10:52 ohmy, prolly 50k warnings 2016-05-09 10:52 can you show me the log? I thought I fixed all that 2016-05-09 10:53 I doubt it will fit into pastebin ;-P 2016-05-09 10:54 http://paste.opensuse.org/68808988 2016-05-09 10:54 yeah, too large 2016-05-09 10:54 404 2016-05-09 10:54 wow 2016-05-09 10:54 that seems extreme 2016-05-09 10:54 http://paste.opensuse.org/58937120 2016-05-09 10:56 this is maybe 0.1% of the log 2016-05-09 10:57 huh 2016-05-09 10:57 oh, gcc added some new warnings 2016-05-09 10:58 wc -lc gives 5607 761776 2016-05-09 10:59 anyway 2016-05-09 10:59 [100%] Linking C executable CDemo 2016-05-09 10:59 [100%] Built target CDemo 2016-05-09 11:00 * DocScrutinizer05 curiously tries to run CDemo 2016-05-09 11:00 thats nothing interesting 2016-05-09 11:00 the demo of the solver separate from solvespace itself 2016-05-09 11:01 http://paste.opensuse.org/83507515 krhrhr yep 2016-05-09 11:02 soooo... what next? 2016-05-09 11:02 ./src/solvespace 2016-05-09 11:02 aaah sudo make install? 2016-05-09 11:02 would prefer to test first 2016-05-09 11:02 k 2016-05-09 11:02 don't need make install 2016-05-09 11:02 \o/ 2016-05-09 11:03 runs just fine form where it's built 2016-05-09 11:03 it has special code to detect that case and find all its usr/share junk 2016-05-09 11:03 tiny colorful itsybitsyteenewheenie window :-D 2016-05-09 11:03 do you have a hidpi display or what? 2016-05-09 11:04 don*t think so :-)) 2016-05-09 11:04 hmmm then it shouldn't be that tiny 2016-05-09 11:04 but w/e 2016-05-09 11:04 tutorial http://solvespace.com/tutorial.pl reference http://solvespace.com/ref.pl 2016-05-09 11:04 http://wstaw.org/m/2016/05/09/plasma-desktopQc2219.png 2016-05-09 11:05 thats only one of its two windows 2016-05-09 11:05 ooh right 2016-05-09 11:06 and given it's nailed to top of stack, it rather be small :-) 2016-05-09 11:07 even funnier: doesn't show up in window list 2016-05-09 11:07 it's only supposed to be on top of the main window 2016-05-09 11:07 os x does this right and even windows does 2016-05-09 11:07 but x11 has no way to specify that 2016-05-09 11:07 it's on top of everything, all times 2016-05-09 11:07 yes 2016-05-09 11:07 i'd rather not do that but i can't 2016-05-09 11:08 I will try to do a little fancy and create some khotkeys stuff for it to stay on top of main solvespace window only 2016-05-09 11:09 I easily can unselect the "stay on top" property anyway, so not THAT bad 2016-05-09 11:09 unless... I don't find it in window list to get it to top again 2016-05-09 11:09 alt+tab? 2016-05-09 11:10 also you can close and open it via menu in main window 2016-05-09 11:10 no, doesn't even show up in aölt-tab list 2016-05-09 11:11 hmm, so how about you closing it automatically when main window goes to background, and vice versa? 2016-05-09 11:11 sounds like the "easiest" implementation 2016-05-09 11:11 better than some kdesktop scripting 2016-05-09 11:11 thats rather nasty 2016-05-09 11:12 i mean it works very well with my wm, for example 2016-05-09 11:12 mompls, need to talk to evildragon 2016-05-09 11:12 what 2016-05-09 11:15 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 11:18 #dragonbox-pyra, sourcing of PLS8 modem modules 2016-05-09 11:19 [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] DocScrutinizer05, Sure, if you need the same parts, reaching MOQs is easier. 2016-05-09 11:36 :o EvilDragon 2016-05-09 11:37 the guy behind gp2x-shop 2016-05-09 11:46 yeah, a nice guy 2016-05-09 11:52 when I was ~14 I was very close to buy some gp2x 2016-05-09 11:52 but was too expensive 2016-05-09 12:06 arossdotme has quit [Ping timeout: 252 seconds] 2016-05-09 12:08 arossdotme has joined #qi-hardware 2016-05-09 12:14 rodgort has quit [Quit: Leaving] 2016-05-09 12:24 doomlord_ has joined #qi-hardware 2016-05-09 12:45 rodgort has joined #qi-hardware 2016-05-09 13:14 fengling has joined #qi-hardware 2016-05-09 13:18 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 13:51 sandeepkr has quit [Quit: Leaving] 2016-05-09 13:54 sandeepkr has joined #qi-hardware 2016-05-09 13:55 whitequark: yes, the tiny window is definitely lost in nirvana once I disable the keep-on-top property 2016-05-09 13:56 can't even find a way to disable and re-enable it from main window 2016-05-09 13:56 doomlord_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…] 2016-05-09 13:57 doomlord_ has joined #qi-hardware 2016-05-09 13:57 something about the window properties make it completely vanish in KDE window manager 2016-05-09 13:58 so 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 background 2016-05-09 14:54 sb0 has joined #qi-hardware 2016-05-09 15:17 fengling has joined #qi-hardware 2016-05-09 15:21 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 15:42 kristianpaul has joined #qi-hardware 2016-05-09 15:42 kristianpaul has joined #qi-hardware 2016-05-09 16:04 pcercuei has quit [Quit: leaving] 2016-05-09 16:53 jwhitmore has quit [Ping timeout: 244 seconds] 2016-05-09 16:59 sb0 has quit [Quit: Leaving] 2016-05-09 17:19 fengling has joined #qi-hardware 2016-05-09 17:24 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 17:52 jwhitmore has joined #qi-hardware 2016-05-09 18:10 jwhitmore has quit [Ping timeout: 240 seconds] 2016-05-09 18:17 jwhitmore has joined #qi-hardware 2016-05-09 19:46 fengling has joined #qi-hardware 2016-05-09 19:51 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 20:37 archang has quit [Ping timeout: 276 seconds] 2016-05-09 20:41 doomlord_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…] 2016-05-09 20:54 linmob has joined #qi-hardware 2016-05-09 20:59 sandeepkr has quit [Ping timeout: 265 seconds] 2016-05-09 21:03 sandeepkr has joined #qi-hardware 2016-05-09 21:04 MistahDarcy has quit [Ping timeout: 240 seconds] 2016-05-09 21:21 doomlord_ has joined #qi-hardware 2016-05-09 21:24 doomlord_ has quit [Client Quit] 2016-05-09 21:49 fengling has joined #qi-hardware 2016-05-09 21:54 fengling has quit [Ping timeout: 240 seconds] 2016-05-09 22:24 DocScrutinizer05: View → Show Text Window 2016-05-09 22:24 hmm, mised that 2016-05-09 22:24 what I do to it is 2016-05-09 22:24 set_keep_above(true); 2016-05-09 22:24 set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY); 2016-05-09 22:24 set_skip_taskbar_hint(true); 2016-05-09 22:24 set_skip_pager_hint(true); 2016-05-09 22:26 the last two make the window unaccessable 2016-05-09 22:27 and I don't understand why they are needed anyway, or rather what for 2016-05-09 22:27 (my uneducated guess) 2016-05-09 22:28 I did that when porting from Windows to achieve identical behavior 2016-05-09 22:31 it doesn't seem like ICCCM has the behavior that I want 2016-05-09 23:12 DocScrutinizer05: wait no 2016-05-09 23:14 DocScrutinizer05: can you remove the line src/gtk/gtkmain.cpp:1318 and recompile? 2016-05-09 23:14 on Ubuntu's WM, this gives the exact behavior that I expect 2016-05-09 23:14 dunno if it does on kwin 2016-05-09 23:14 whitequark: wouldn't you want to rather paste me a sed line? 2016-05-09 23:16 like find . -name gtkmain.cpp -exec sed 's\1318\d' \; or sth 2016-05-09 23:18 I have no idea how to do that 2016-05-09 23:18 can you just delete one line by its number? 2016-05-09 23:18 how to do what? 2016-05-09 23:18 what 2016-05-09 23:18 open the file in an editor 2016-05-09 23:18 oh 2016-05-09 23:18 how to do *what* 2016-05-09 23:18 I think so, but the idea actually would rather be to find the right line without a number that's possibly ambiguous or wrong 2016-05-09 23:19 it's the current HEAD and the line is "set_keep_above(true);" 2016-05-09 23:19 HEAD? 2016-05-09 23:19 the commit that you cloned yesterday 2016-05-09 23:19 nfc 2016-05-09 23:19 I pasted a cmdline 2016-05-09 23:19 don't expect me to know what I did 2016-05-09 23:20 I don't, I already know what you did and it's enough 2016-05-09 23:21 jr@saturn:~/neo900git/solvespace/build> less src/gtk/gtkmain.cpp 2016-05-09 23:21 src/gtk/gtkmain.cpp: Datei oder Verzeichnis nicht gefunden 2016-05-09 23:21 jr@saturn:~/neo900git/solvespace/build> less ../src/gtk/gtkmain.cpp 2016-05-09 23:21 now paste a unique string of the line to delete 2016-05-09 23:22 "set_keep_above(true);" 2016-05-09 23:22 jr@saturn:~/neo900git/solvespace/build> sed -i "s/set_keep_above(true);//" ../src/gtk/gtkmain.cpp 2016-05-09 23:23 [100%] Built target CDemo 2016-05-09 23:24 okay, now run it 2016-05-09 23:24 what happens on my ubuntu install (gnome) is that both solvespace windows stay on the same "layer" 2016-05-09 23:24 the text window isn't stay-on-top anymore, rest unchanged 2016-05-09 23:25 when you switch to graphics window after overlapping text window with sth else, does text window come up? 2016-05-09 23:25 so just what could be expected 2016-05-09 23:25 no 2016-05-09 23:25 ok. lemme install kubuntu then 2016-05-09 23:25 I had to disable and re-enable text-window to find it again 2016-05-09 23:45 fengling has joined #qi-hardware