21:33 < jtanx> http://man.devl.cz/deb/l/libldap2-dev ?
21:33 < sam_moore> Oh, well there you go
21:33 < sam_moore> Thanks
21:34 < sam_moore> No wait, it has all those functions the compiler was complaining about
21:34 < sam_moore> ?
21:34 < jtanx> ok then
21:34 < sam_moore> Except there's this fsfuncLDAP instead of LDAP
21:36 < sam_moore> ...
21:36 < jtanx> oh that documentaiton is so terrible: http://www.openldap.org/doc/
21:37 < jtanx> the html version is at least
21:37 < sam_moore> Yeah
21:38 < sam_moore> Um... given that the only documentation for libldap2 documents the "deprecated" functions, I'm going to continue using those functions
21:39 < sam_moore> Installing libldap2-dev installed all those man pages
21:39 < jtanx> yep
21:39 < jtanx> >.>
21:41 < jtanx> ldap_init(3) was obsoleted by ldap_initialize(3)
21:41 < jtanx> http://www.openldap.org/lists/openldap-bugs/200509/msg00151.html
21:42 < sam_moore> Seriously
21:43 < sam_moore> Please tell me they changed more than just the name...
21:44 < sam_moore> Oh great, they did, now I need to work out how to use it
21:44 < jtanx> int ldap_initialize(ldp, uri)
21:44 < jtanx> LDAP **ldp;
21:44 < jtanx> char *uri;
21:44 < jtanx> wow, that's old school way of specifying the type of the input arguments
21:45 < jtanx> I've only seen that style once elsewhere
21:45 < jtanx> In code from the ~1990s
21:45 < sam_moore> LDAP was invented in the 80s
21:45 < sam_moore> So that would make sense
21:45 < jtanx> you'd think they'd update the manpages by now though
21:46 < sam_moore> They don't even note in the man page that ldap_init is depreated
21:46 < jtanx> yeah
21:46 < jtanx> the joys of poor documentation
21:46 < sam_moore> At least the function names make sense
21:46 < sam_moore> initialize
21:47 < sam_moore> Obvious what that does
21:47 < sam_moore> ... I think the "uri" includes the port
21:47 < sam_moore> Like "ldap://server" or "ldaps://server"
21:47 < jtanx> yep
21:48 < jtanx> the whole ldap_init vs ldap_initialize reminds me of fopen vs fopen_s on windows
21:48 < sam_moore> That's going to screw with anyone that puts their ldap server on a non-standard port for security-by-obscurity reasons
21:48 < jtanx> couldn't you do
21:48 < jtanx> ldap://server:port
21:48 < sam_moore> Oh
21:48 < sam_moore> Probably
21:56 < sam_moore> Sigh... they deprecated ldap_bind and made ldap_simple_bind and then at some point that got deprecated too
21:57 < sam_moore> Now it's ldap_sasl_bind_s
21:57 < jtanx> what's with that naming convention
21:57 < sam_moore> sasl stands for something
21:57 < jtanx> _s for secure
21:57 < jtanx> yey
21:57 < sam_moore> The LDAP expert at UCC was basically like "It's terrible, no one ever uses it, but the LDAP standards wanted to put it in, so it's there"
21:57 < sam_moore> And that's all I know
21:58 < jtanx> gee ok
21:59 < sam_moore> But as opposed to ldap_simple_bind(ld, dn, password)
21:59 < sam_moore> You have something like 10 arguments?
21:59 < sam_moore> Please let half of them be NULL...
22:12 < jtanx> that's all for today
22:12 < jtanx> bye
22:12 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
23:07 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:19 < sam_moore> Hi Rowan
23:19 < Rowan> hello
23:19 < sam_moore> I'm working on getting logins with UWA's pheme system
23:19 < sam_moore> So it will be kind of like LMS
23:24 < Rowan> are we trying to keep the gui to only a few pages or can we use several.
23:25 < Rowan> like a cover page(a link to just the stream, a link to dump data and a login). then the login page goes to the experiment page
23:26 < sam_moore> I think several pages
23:26 < sam_moore> Probably even one page per sensor?
23:26 < Rowan> sweet, i shall enjoy this gui :)
23:41 < sam_moore> See you tomorrow
23:47 < Rowan> yep
--- Day changed Mon Sep 30 2013
03:31 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has quit [Ping timeout]
10:57 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
11:10 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:17 < sam_moore> Hi Rowan, do you have anything we should put in the report?
11:34 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has quit [Ping timeout]
11:58 -!- Rowan [~Rowan@130.95.158.122] has joined #mctxuwa_softdev
11:59 < Rowan> ill have the outline of all the pages i wanted on git this afternoon
12:05 < sam_moore> Ok
12:42 -!- Rowan [~Rowan@130.95.158.122] has quit [Connection reset by peer]
12:44 -!- Rowan [~Rowan@130.95.158.122] has joined #mctxuwa_softdev
13:33 < Rowan> so far i have a cover page which links to a login page which links to the index page. but theres no styles for them and no security on the login
14:09 < Rowan> im not sure the files ive added went into sams git. im pretty sure they all forked over to mine. :S
14:58 -!- Rowan [~Rowan@130.95.158.122] has quit [Ping timeout]
15:20 -!- Rowan [~Rowan@130.95.158.122] has joined #mctxuwa_softdev
15:57 -!- Rowan [~Rowan@130.95.158.122] has quit [Ping timeout]
16:18 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:18 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
16:31 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has quit [EOF From client]
18:20 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:55 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
21:18 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:44 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
22:06 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has quit [EOF From client]
--- Day changed Tue Oct 01 2013
08:50 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:03 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has quit ["brb"]
11:04 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:40 < sam_moore> Another option for the login system (a really terrible option that I don't condone on any real world system, but it might just get us marks)
13:40 < sam_moore> Is to provide some cgi scripts that wrap around "useradd" "userdel" and "usermod"
13:40 < sam_moore> And have our "Login" function check /etc/shadow
13:41 < sam_moore> I emailed UWA IT help desk about Pheme anyway
13:41 < sam_moore> I wonder what they'll make of it...
13:51 < jtanx> hehe
13:52 < sam_moore> The more I think about it, the more I think LDAP is the way you'd do this properly though
13:52 < sam_moore> It basically is a text file
13:53 < jtanx> yeah
13:53 < sam_moore> If you started with a text file, you'd quickly find yourself reinventing the wheel and probably converging with what LDAP already does
13:53 < jtanx> I guess the real problem is that rolling our own solution is not really feasible in the time left, especially if you want to ensure it's at least ok in terms of security
13:57 < sam_moore> Yes
14:08 < sam_moore> For reference: http://www.debuntu.org/how-to-set-up-a-ldap-server-and-its-clients/
14:09 < sam_moore> And http://mindref.blogspot.com.au/2010/12/openldap-create-user.html
14:09 < sam_moore> (How to set up our own LDAP server)
14:11 < jtanx> slapd
14:12 < jtanx> what a weird choice of a name
14:12 < sam_moore> Haha
14:15 < jtanx> oh
14:15 < jtanx> if you set up an ldap server
14:15 < jtanx> http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page
14:15 < jtanx> get them to manage the ldap database themselves
14:15 < jtanx> :P
14:15 < jtanx> to add or remove users
14:22 < sam_moore> Yeah, that's kind of how ldap was designed
14:22 < sam_moore> Technically I can probably modify my UWA "pheme" password from a command line using ldappasswd
14:22 < sam_moore> Unless they use kerberos
14:23 < sam_moore> (We don't want to start going into kerberos...)
14:54 < sam_moore> Welp, I've put an LDAP server on my laptop for testing purposes
14:54 < sam_moore> With an account "snoopy"
14:55 < sam_moore> Seems to work... now to test it with our software
14:55 < sam_moore> Hey, maybe we could just put an LDAP server on the BeagleBone and get a GUI LDAP editor
14:56 < sam_moore> Oh right, you suggested that at 14:15
14:56 < sam_moore> I like it though
14:58 < jtanx> yah not too bad
14:58 < jtanx> say we had an ldap server on the bbb
14:59 < jtanx> we could even write the password manager in a different language
14:59 < jtanx> if we wanted to make one
14:59 < sam_moore> Yeah, exactly
14:59 < jtanx> because it only has to interact with the ldap database
14:59 < sam_moore> We shouldn't do that in the FastCGI program
14:59 < jtanx> yup
15:00 < sam_moore> I sent an email about it to everyone, suggesting PHP or python CGI to wrap around LDAP
15:01 < sam_moore> I wonder when this system is going to start being put together though
15:02 < sam_moore> We'll end up with a server and no hardware to control
15:02 < jtanx> Looks like it
15:02 < sam_moore> Those images Justin sent us look nice
15:02 < jtanx> Yeah they look quite good
15:07 < sam_moore> With the FastCGI program
15:07 < sam_moore> Do you think it's better to pass options through the command line
15:07 < sam_moore> Or have a bunch of #defines that need to get configured?
15:08 < sam_moore> eg: To specify the LDAP server
15:08 < sam_moore> (At the moment it's just a #define)
15:08 < jtanx> hmm
15:08 < jtanx> It's probably better to pass as a command line
15:09 < sam_moore> Ok
15:09 < jtanx> unless we're absolutely sure that the ldap address is fixed
15:10 < sam_moore> What we can do is write a bash script that sets a bunch of variables
15:10 < sam_moore> Then run.sh sources that and passes them all as arguments
15:10 < jtanx> sounds good
15:35 < sam_moore> What about things like the path to the GPIO and ADC? I figure they should stay as #defines
15:35 < sam_moore> Since they probably won't be changing
15:36 < sam_moore> At least not until the next BeagleBone kernel comes out
15:36 < jtanx> hehe
15:36 < jtanx> yeah that should stay as defins
15:36 < jtanx> if the path does change
15:36 < jtanx> then that probably warrants a recompile anyway since stuff may have changed with how you access it
15:36 < sam_moore> Ok, should I put all the defines that you might want to adjust on a recompile in the same place?
15:37 < sam_moore> common.h?
15:37 < jtanx> what defines do we have right now
15:37 < jtanx> that may change
15:39 < sam_moore> Nothing major, I just want it to be flexible
15:39 < jtanx> hmm
15:39 < jtanx> even if you did that
15:39 < jtanx> if you needed to change the define
15:39 < jtanx> you'd probably be looking at changing hte code anyway
15:40 < sam_moore> Sure, but that doesn't mean you can't put the defines in an easy to find place
15:40 < sam_moore> For example, say someone wants to recompile this for a RPi
15:40 < jtanx> But for stuff like 'where's the pwm path'
15:40 < sam_moore> Given the trouble we had with pwm path confusion
15:41 < jtanx> I'd look in the header relevant to pin control
15:41 < sam_moore> I think it's helpful to make it easy for someone to see what we're doing
15:41 < sam_moore> I suppose
15:42 < jtanx> ok I guess it doesn't matter if it goes in common.h or not
15:42 < sam_moore> Yeah, but I think I agree with you now :P
15:42 < jtanx> ( I guess this is what ./configure and configure.h are for :P )
15:51 < sam_moore> Sigh...
15:51 < sam_moore> I put in a #warning to generate a warning if you tried to compile the software on something that isn't the BeagleBone
15:51 < sam_moore> ...
15:51 < sam_moore> And the use of #warning caused a warning
15:52 < sam_moore> warning: #warning is a GCC extension [enabled by default]
16:05 < jtanx> :p
16:08 < jtanx> because of the -pedantic flag
21:13 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:23 -!- MctxBot [~twang@124-148-112-240.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Wed Oct 02 2013
17:34 -!- Rowan [~Rowan@106-68-70-204.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:54 -!- Rowan [~Rowan@106-68-70-204.dyn.iinet.net.au] has quit [Ping timeout]
--- Day changed Thu Oct 03 2013
09:30 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:30 -!- jtanx [~asfa@124-148-112-240.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
09:32 -!- MctxBot_ [~twang@124.149.138.201] has joined #mctxuwa_softdev
09:45 -!- Rowan [~Rowan@130.95.51.202] has joined #mctxuwa_softdev
09:47 -!- MctxBot [~twang@124-148-112-240.dyn.iinet.net.au] has quit [Ping timeout]
10:26 -!- MctxBot_ is now known as MctxBot
10:37 -!- MctxBot [~twang@124.149.138.201] has quit ["leaving"]
10:44 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:45 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:45 < jtanx> finally
11:02 -!- Rowan [~Rowan@130.95.51.202] has quit [EOF From client]
12:09 < MctxBot> guh
12:09 < MctxBot> crappy laptop keeps crashing
12:17 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
12:20 -!- jtanx_ [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:20 -!- jtanx_ is now known as jtanx
12:28 < jtanx> about login_handler
12:28 < jtanx> The result from FCGI_ParseRequest
12:28 < jtanx> for string types
12:28 < jtanx> should be treated as const char*
12:29 < jtanx> I guess it really doesn't matter, unless it returns an empty string
12:29 < jtanx> it's also not true that user/pass would be of max length BUFSIZ
12:30 < jtanx> because of how it was defined, params has a max length of BUFSIZ
12:30 < jtanx> but user/pass may be anywhere in that string
12:30 < jtanx> so their max length < BUFSIZ
12:30 < jtanx> so the bounds check makes no sense
12:31 < jtanx> (sure, it prevents an infinite loop, but by that stage, you could be writing to locations where you don't want to anyway)
12:31 < jtanx> besides, FCGI_ParseRequest should guarantee that they're null terminated
12:38 < jtanx> also, whitespace (>.< :P)
12:38 < sam_moore> True, but this is the whole "defensive" programming thing where you assume that some future unspecified developer is going to do something stupid and you attempt to minimise the damage they can cause :P
12:38 < jtanx> while (*user && isspace(*user)) user++;
12:38 < jtanx> char *ptr = user;
12:38 < jtanx> while (*ptr && isalnum(*ptr)) ptr++;
12:38 < jtanx> *ptr = 0;
12:39 < jtanx> well
12:39 < jtanx> by that stage you're screwed anyway
12:39 < jtanx> not much point doing something that doesn't make sense too
12:39 < sam_moore> You're more screwed if your program is writing to undefined locations in an infinite loop than if it's writing to a finite number of undefined locations
12:39 < jtanx> still
12:39 < jtanx> at least if it's infinite
12:39 < jtanx> you'll know it crashes
12:40 < jtanx> actually that's hardly the case
12:40 < jtanx> because it will come across a zero at some point
12:40 < jtanx> more often than not
12:40 < jtanx> but anyway...
12:40 < jtanx> does valgrind pick that up?
12:41 < sam_moore> Hah
12:41 < jtanx> and to be honest, by adding the BUFSIZ check, that's implying their max length when it's actually not
12:41 < jtanx> which may be confusing in itself
12:41 < sam_moore> The operating system should pick up a segfault on the first invalid write anyway
12:41 < jtanx> unless
12:41 < jtanx> the following region is writeable too
12:42 < jtanx> eg you have a struct, members follow each other
12:43 < sam_moore> If you really want to remove the bounds check go ahead
12:43 < sam_moore> Either way that code does what it's meant to
12:43 < jtanx> ok, well yeah
12:44 < jtanx> hmm
12:44 < jtanx> problem
12:44 < jtanx> anyone can logout the currently logged in user
12:44 < jtanx> oh wait
12:45 < jtanx> sorry
12:48 < sam_moore> My network is being terrible so I can't say much
12:48 < sam_moore> One last argument in favour of the BUFSIZ check... if someone modifies the function that "should" be guaranteed to null terminate the string and doesn't... then you fall into an infinite loop
12:49 < jtanx> well that's a case of too bad
12:49 < jtanx> if it infinite loops
12:49 < jtanx> then it shows you've done something wrong, so it'd be a good case to check what you've done
12:50 < jtanx> if you hide that with a BUFSIZ check, you may not know there's a problem until later down the track
12:50 < sam_moore> If you port the code to run in a kernel module or something, it's a case of instead of getting a seg fault, you suddenly wipe out all your memory
12:50 < jtanx> with a kernel module, you'd be testing it pretty rigorously in a vm, i would think :P
12:51 < sam_moore> Yeah, but it pays not to assume things about the sanity of other programmers
12:51 < sam_moore> That's why all that extremely irritating "public, private" stuff is used
12:52 < jtanx> to be honest, I'd rather have it fail fast than come up with weird issues that may/may not happen all the time
12:52 < sam_moore> Anyway, just remove the bounds check, this is getting ridiciluos
13:31 < jtanx> hmmm
13:31 < jtanx> if ($http_cookie ~* "id=([^;] +)(?:;|$)" ) {
13:31 < jtanx> set $id $1;
13:31 < jtanx> }
13:32 < jtanx> right now, only the control key can be sent as the one and only cookie
13:38 < jtanx> we could get nginx to extract the desired cookie
14:33 < jtanx> actually nah
15:02 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
16:27 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit [Connection reset by peer]
21:16 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:17 < jtanx> herp derp
21:17 < jtanx> was idling in mctxuwa
21:17 < jtanx> not mctxuwa_softdev
21:40 < jtanx> anyway...
21:40 < jtanx> a (the) login/logout functionality is almost done for the gui
21:40 < jtanx> to make it work, I need to add the identify module to the modules that doesn't need login
21:41 < jtanx> also, maybe fields to indicate if logged in or not when ident is called + if logged in, a 'human friendly' name to display for the user
22:34 < jtanx> ok
22:34 < jtanx> it's just about done. It auto redirects you (via javascript) to the login page if you're logged out (and vice versa)
22:34 < jtanx> this can be disabled for debugging purposes by changing mctx.debug=true in mctx.gui.js
22:34 < jtanx> it works quite well, I think
22:35 < jtanx> I still haven't implemented the whole 'friendly name' thing though
22:35 < jtanx> (e.g the 'Welcome Joe Bloggs' with the actual user name or something)
22:40 < jtanx> test at: https://mctx.us.to:8043/test/
22:42 < jtanx> except now there's a logout bug grr...
22:46 < jtanx> fixed
23:32 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Fri Oct 04 2013
14:50 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
14:50 < jtanx> so i'm in uni right now
14:50 < jtanx> and was playing with the webcam
14:50 < jtanx> If I followed this: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=35689&p=314596
14:51 < jtanx> It actually displays something and not the black image
14:51 < jtanx> the problem is that it only displays maybe the top 5% of the image
14:51 < jtanx> the rest is nothing
14:51 < jtanx> I think the next step from here is to try compiling the latest version of the uvcvideo driver ourselves
14:51 < jtanx> see if it helps
14:59 < jtanx> google 'uvcvideo beaglebone issues'
14:59 < jtanx> I wonder how we didn't see that before
15:00 < jtanx> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/223368.aspx
15:03 < jtanx> so many issues getting the camera to work
15:03 < jtanx> https://groups.google.com/forum/#!msg/beagleboard/sgCwaP5RVUo/aFPBOk02A7IJ
15:04 < jtanx> fwiw I'm not sure we'll be able to support cameras at all, at this rate
15:04 < jtanx> although some seem to have success with UVC video. no idea why
15:08 < jtanx> except I was testing it on angstrom
15:08 < jtanx> when i boot off the sd card, there's no modprobe and no rmmod
15:08 < jtanx> tf
15:08 < jtanx> wtf
15:10 < jtanx> derp
15:10 < jtanx> not root
15:20 < jtanx> well crap, I got it working with ffmpeg
15:20 < jtanx> ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 -vcodec copy o.mjpg
15:21 < jtanx> along with the 'uvcvideo nodrop=1 timeout=5000 quriks=0x80'
15:21 < jtanx> it spits out a bunch of warnings though
15:26 < jtanx> ahh
15:26 < jtanx> if set to rawvideo
15:27 < jtanx> 640x480 is not supported
15:27 < jtanx> it must be that it's such a large resolution that only mjpg is supported
15:27 < jtanx> 320x240 works fine
15:32 < jtanx> ah well
15:32 < jtanx> that's alll for now
15:32 -!- jtanx [~asfa@130.95.54.13] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
16:16 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:25 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:15 < jtanx> I got user friendly names working
22:15 < jtanx> 'except by user friendly I mean their usernames
22:16 < jtanx> I guess for LDAP we could look up their real name? but I don't know how to do that.
22:19 < sam_moore> I'm not sure how, but it can be done
22:20 < sam_moore> However it's probably a fair amount of work
22:20 < sam_moore> So I'd make it low priority
22:20 < jtanx> yeah ok
22:20 < sam_moore> Afterall, *they* know who they are
22:20 < sam_moore> Good work with the camera
22:20 < sam_moore> I'll be in tomorrow morning I guess
22:20 < sam_moore> Working on another project now
22:21 < jtanx> Yeah, the camera's still not finished though - it's really buggy and I only got it working with ffmpeg and not opencv
22:21 < sam_moore> Anything is progress
22:23 < sam_moore> 0/away
22:24 < sam_moore> Stupid network lag
23:13 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sat Oct 05 2013
08:41 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:44 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
11:37 < sam_moore> Hi, I'm at Uni, but we can't access G19
11:38 < sam_moore> I was hoping Rowan, Justin, James or Callum would come in though
11:38 < sam_moore> But I guess I need to do more stuff for CITS3003 anyway
12:18 < jtanx> Sorry, I can't make it today
12:19 < jtanx> Too much crap with my CITS3242 and CITS2232 projects to deal with
12:19 < sam_moore> Ok no problem
13:16 < jtanx> james just posted some layout stuff via email
13:17 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:06 < jtanx> now... to do some work on this gui
21:15 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sun Oct 06 2013
08:52 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:17 < jtanx> slight problem: http://i.imgur.com/D28SHaQ.png
11:17 < jtanx> 100% cpu usage on idle
11:18 < jtanx> that memory usage too doesn't look too healthy
11:18 < sam_moore> Damn
11:20 < jtanx> I also probably figured out why valgrind crashes with the --trace-origins option - not enough memory on my system :P
11:30 < jtanx> It's probably because in read data all the cases except one have a sleep in them
11:31 < sam_moore> I'd say so
11:31 < sam_moore> There are like 8 threads
11:31 < sam_moore> We don't need 8 threads
11:39 < sam_moore> Are you in G19?
11:39 < jtanx> no
11:40 < sam_moore> Alright
11:40 < sam_moore> I suppose I should do some work on this
11:40 < sam_moore> CITS3003 is funner though
11:40 < sam_moore> I'll look into the performance issues
11:41 < jtanx> hehe
11:42 < sam_moore> My "Incident" with UWA IS is now Moderate Priority
11:42 < sam_moore> It's been assigned!
11:42 < sam_moore> I suppose I should wait for this guy to email me and say "What the hell are you on about?"
11:42 < sam_moore> (Re: Using Pheme)
11:42 < sam_moore> They classified it as a "Request for service"
11:43 < sam_moore> Which I suppose is true, except they don't really have to do anything
11:43 < jtanx> o.o
11:44 < jtanx> I hope it goes through
11:44 < sam_moore> Yes, no one's going to do a user management system
11:44 < jtanx> Yep
11:44 < sam_moore> When people complain they have nothing to do though...
11:44 < sam_moore> That's like a semester of work right there
12:40 < sam_moore> um... that image you linked
12:40 < sam_moore> That's not actually running on the BeagleBone is it?
12:40 < sam_moore> Because on the BeagleBone
12:40 < sam_moore> It's like 0.7%
12:41 < sam_moore> Actually 0.3% CPU 1.1% memory
12:50 < jtanx> no
12:50 < jtanx> that's because there's a conditional #ifdef
12:50 < jtanx> beaglebone to sleep
12:50 < jtanx> I got that condition around the wrong way
12:50 < jtanx> Initially I thought you wanted to test the absolute maximum sampling rate on the BBB
12:53 < jtanx> I just updated the repo to really remove that pwm array reference
12:54 < jtanx> (about the cpu) It's because of this: https://github.com/szmoore/MCTX3420/blob/master/server/sensor.c#L257
12:55 < jtanx> That ifdef should be removed anyway, just put in an unconditional sleep for 0.1s
12:55 < jtanx> then remove the individual sleeps from each sensor case
13:17 < sam_moore> Sure
13:17 < sam_moore> Light has been shed on the PWM thing
13:18 < sam_moore> They are using some RC circuit which I believe averages out the PWM to give you a constant signal
13:18 < sam_moore> I thought it was some kind of IC that took a PWM input
13:21 < jtanx> oh ok
13:22 < jtanx> yeah that's what I thought too
13:22 < jtanx> so no dac I guess
13:22 < jtanx> (dac ic that is)
13:24 < sam_moore> I have my doubts that electronics will be able to make this custom DAC
13:24 < sam_moore> And of course, no DAC means no Pressure control
13:24 < sam_moore> But oh well
13:24 < jtanx> ^_^
13:24 < jtanx> homebrew DAC
13:25 < jtanx> how will this ever be calibrated
13:26 < sam_moore> We should probably include a calibration routine in software
13:27 < sam_moore> I'm looking a bit more into the RT linux stuff
13:27 < sam_moore> It doesn't look too crazy
13:27 < sam_moore> Our program pretty much looks the same
13:27 < sam_moore> With a function at initialisation to set it's priority and stuff
13:27 < sam_moore> But otherwise, you just use usleep, sleep, pthreads, everything as normal
13:28 < jtanx> ok
13:28 < jtanx> as long as it works on the bbb I guess
13:30 < sam_moore> I think I should port from gettimeofday to clock_gettime too
13:35 < sam_moore> https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
13:35 < sam_moore> I'll compile us a kernel and see if it works
13:46 -!- Callum [~chatzilla@106-69-25-112.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:09 < sam_moore> Yeah, it looks like RT Linux won't work on the BBB
14:09 < sam_moore> Oh well
14:17 < jtanx> damn
15:34 < Callum> Hey guys, sorry i havent been in touch lately. done a bit of work on dilatometer but its not quite complete. Uploaded what iv done but i got a test i tomorrow i should go study for now
16:29 < jtanx> hahaha
16:30 < jtanx> interactive sbd
16:31 < jtanx> hmm dialatometer
16:45 < jtanx> Justin's idea with the system diagram was pretty good
16:55 < jtanx> test run: https://mctx.us.to:8043/test/
16:55 < jtanx> no links yet
16:55 < jtanx> no descriptions either
16:55 < jtanx> logout when you're done
16:55 < jtanx> no auth so type anything you want in login field
17:24 < Callum> looks pretty good
17:27 -!- Rowan [~Rowan@130.95.133.71] has joined #mctxuwa_softdev
17:44 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit ["leaving"]
17:47 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:49 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit ["again"]
18:12 < jtanx> I stuffed up /etc/fstab and now the root filesystem is readonly :(
18:19 < jtanx> ...and I just wasted time booting off ubuntu 7.04, which doesn't support ext4...
18:30 -!- Callum_ [~chatzilla@106-69-19-128.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:42 -!- Callum [~chatzilla@106-69-25-112.dyn.iinet.net.au] has quit [Ping timeout]
18:43 -!- Callum_ is now known as Callum
18:52 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:30 < jtanx> I've just enabled personal webspace for everyone
19:30 < jtanx> check your emails for details
19:35 -!- Callum [~chatzilla@106-69-19-128.dyn.iinet.net.au] has quit [EOF From client]
19:50 -!- Rowan [~Rowan@130.95.133.71] has quit [Ping timeout]
19:52 < jtanx> :(
21:11 < sam_moore> Cool
21:11 < sam_moore> Sorry, I'm trying to finish CITS3003
21:14 -!- Rowan [~Rowan@106-68-70-204.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:25 < jtanx> Yep no problem
21:38 < jtanx> nice: http://cssmenumaker.com
22:09 < jtanx> weird, getting http 500 when trying to access our github repo
23:16 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
23:27 -!- Rowan [~Rowan@106-68-70-204.dyn.iinet.net.au] has quit [EOF From client]
--- Day changed Mon Oct 07 2013
10:44 -!- Rowan [~Rowan@130.95.117.19] has joined #mctxuwa_softdev
12:45 -!- callum [~chatzilla@130.95.91.11] has joined #mctxuwa_softdev
12:47 < callum> you guys in g19?
14:46 -!- callum [~chatzilla@130.95.91.11] has quit [Ping timeout]
14:55 -!- callum [~chatzilla@130.95.54.13] has joined #mctxuwa_softdev
14:59 -!- Rowan [~Rowan@130.95.117.19] has quit [Ping timeout]
16:11 -!- callum [~chatzilla@130.95.54.13] has quit [Ping timeout]
18:22 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:44 < jtanx> ha, you can clone a wiki
18:45 < jtanx> git clone https://github.com/szmoore/MCTX3420.wiki.git
20:50 < sam_moore> Yeah, I know
20:51 < sam_moore> I don't really think it's great to be relying on the BeagleBone to serve all these additional requirements
20:51 < jtanx> Yeah, probably not
20:52 < jtanx> I've just been playing around with django for my CITS2232 project
20:52 < jtanx> it's like a python based cms
20:53 < sam_moore> That might work
20:53 < jtanx> It's actually not too bad
20:53 < jtanx> but incredibly annoying to learn how to use
20:53 < jtanx> it's got its own inbuilt user system
20:54 < sam_moore> How could we query it from our server though?
20:54 < jtanx> as in?
20:54 < jtanx> you can still query directly from the browser
20:54 < jtanx> from django itself
20:54 < jtanx> I'm definitely sure there's a json parsing library
20:55 < jtanx> (python at least should have one)
20:56 < sam_moore> As in, if we want to "login"
20:56 < sam_moore> How do we authenticate?
20:57 < sam_moore> From within the FastCGI process
20:57 < jtanx> Okay, there's two approaches I guess
20:58 < jtanx> if you want to continue to use fastcgi to login I guess you could get django to figure out
20:58 < jtanx> who's logged in
20:58 < jtanx> If you use django's login system
20:58 < jtanx> hmm
21:00 < jtanx> but one thing I haven't done yet is how do you prevent concurrent access in django
21:01 < jtanx> but say this:
21:01 < sam_moore> I think binding to an LDAP server is pretty standard for this sort of thing
21:01 < sam_moore> I think Django can even let you bind to LDAP for using it
21:01 < jtanx> probably
21:01 < jtanx> I think class2go was built using django
21:01 < jtanx> if you've ever used that crappy website
21:02 < jtanx> say for the fastcgi process we revert to
21:02 < jtanx> /api/control?lock
21:02 < jtanx> /api/control?unlock
21:02 < jtanx> etc
21:02 < jtanx> but /api/control is only visible to django
21:02 < sam_moore> Ah, I see
21:02 < sam_moore> Um...
21:02 < jtanx> then django can query it
21:02 < jtanx> and conditionally return the control key?
21:03 < jtanx> i dunno
21:03 < sam_moore> I'd be slightly nervous about adding additional systems that have to work together though
21:03 < jtanx> yeah
21:03 < jtanx> that's the problem
21:03 < sam_moore> I mean, if it works, it's fine
21:03 < sam_moore> If it breaks, suddenly anyone (or noone) can access the real underlying hardware
21:03 < jtanx> Yeah
21:04 < jtanx> especially if someone screws up the server config
21:04 < sam_moore> I think I'd prefer to stick with the current login handler
21:04 < sam_moore> There's some flexibility with how you actually do the authentication
21:04 < jtanx> Sure
21:06 < jtanx> I'm just thinking, how would we implement the 'admin' features
21:06 < jtanx> you'd then have to have some sort of list distinguishing normal users from admins
21:06 < jtanx> unless you hardcode admins?...
21:07 < sam_moore> With LDAP you can store admin as a user field and check it
21:08 < sam_moore> With /etc/shadow, have 2 files
21:08 < sam_moore> One for admin, one for regular users
21:08 < sam_moore> (When I say /etc/shadow I just mean the style of auth, not necessarily actually using *the* /etc/shadow)
21:08 < sam_moore> In fact
21:09 < sam_moore> We could possibly do a minimalist user management with python cgi and a custom /etc/shadow style file
21:10 < jtanx> say what
21:11 < jtanx> so use the python cgi to modify it
21:11 < sam_moore> Yeah
21:11 < jtanx> our c fastcgi to read
21:11 < sam_moore> Yes
21:11 < jtanx> that could work
21:11 < jtanx> have a look at flask
21:11 < sam_moore> It's also probably possible to easily do a lot of the things Adam wanted
21:12 < jtanx> flask is like the simpler version of django
21:12 < sam_moore> At least, you can get python cgi to send emails to people with a temporary password and ask them to change it
21:12 < jtanx> i think I still have an example too
21:15 < sam_moore> If you want and it doesn't require rewriting large parts of the FastCGI process
21:15 < sam_moore> Personally I don't think I have the time
21:16 < jtanx> well if it's completely separate from the fastcgi process
21:16 < sam_moore> Sure
21:17 < jtanx> hmm
21:18 < sam_moore> Just a simple CGI script might do the job though
21:18 < jtanx> yeah
21:18 < jtanx> except nginx doesn't have normal cgi
21:19 < sam_moore> Wat
21:19 < jtanx> only fastcgi
21:19 < sam_moore> Damn
21:19 < sam_moore> And I guess apache2 only has normal cgi and not fastcgi?
21:19 < jtanx> there may be mod_fastcgi
21:19 < jtanx> but
21:19 < jtanx> before we get ahead of ourselves
21:20 < jtanx> okay no, nginx doesn't have fastcgi
21:20 < jtanx> sorry cgi*
21:20 < jtanx> we could do it in php
21:21 < jtanx> urgh
21:21 < sam_moore> urgh indeed...
21:21 < sam_moore> I dunno
21:22 < sam_moore> We *did* tell Adam that we wouldn
21:22 < sam_moore> 't be able to do the user management system
21:22 < jtanx> haha
21:23 < sam_moore> I really think getting our program to interface with an LDAP server is reasonable
21:23 < jtanx> yeah
21:23 < sam_moore> Ok, I need to fix CITS3003 some more
22:46 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
22:53 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:53 < jtanx> brainspark: we can probably use django to proxy api requests
22:53 < jtanx> so it goes like this: user <-> django <-> server api
22:54 < jtanx> then you don't even have to expose the server api at all
22:54 < jtanx> although if I ever end up trying this I don't know
22:55 < jtanx> (by expose I mean that django can conditionally pass on the results from queries to the api)
22:55 < jtanx> but yeah, it's probably best to leave it how it is right now
22:55 < jtanx> as I doubt I have the time to implement this
23:10 < jtanx> it would definitely add overhead too
23:40 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Tue Oct 08 2013
18:01 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:37 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
21:16 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Wed Oct 09 2013
08:29 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:20 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
09:54 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:52 -!- jtanx [~asfa@130.95.133.152] has joined #mctxuwa_softdev
10:55 -!- jtanx_ [~asfa@130.95.54.13] has joined #mctxuwa_softdev
10:56 < jtanx_> welp the usb microscope arrived
10:56 < jtanx_> it uses uvcvideo too
11:07 -!- jtanx [~asfa@130.95.133.152] has quit [Connection reset by peer]
12:00 < jtanx_> shit, we have to coordinate one report across the whole cohort
12:02 < sam_moore> Yeah, shit
12:03 < sam_moore> This unit has not been run very well
12:03 < sam_moore> Except the tutorials
12:06 < sam_moore> If I still cared I
12:06 < sam_moore> d try and take charge of putting the report together
12:07 < sam_moore> But I know that if no one else does it we'll all pass anyway since you can't fail an entire class
12:07 < sam_moore> So terrible
12:07 < sam_moore> We should just start writing a chapter on the software
12:09 < sam_moore> I wonder if we could use the wiki format and export it as a pdf somehow
12:11 < sam_moore> https://github.com/szmoore/MCTX3420/wiki/Hardware:-Pneumatics
12:11 < sam_moore> Hilarious
12:41 < jtanx_> ~.~
12:41 < jtanx_> our final report will be the wiki!
12:42 < jtanx_> made some progress on the camera
12:42 < jtanx_> lowering the resolution to 352x288
12:42 < jtanx_> and it will work with openc
12:42 < jtanx_> opencv
12:42 < jtanx_> ffmpeg's fine with 640x480 though
12:42 < jtanx_> opencv just sucks
12:57 < jtanx_> good 'ol stream.html
13:05 < jtanx_> those fatal checks in sensor.c are bad
13:05 < jtanx_> because half the time adc reads will fail and the whole program just crashes
13:07 < jtanx_> oh right I saw your email, nevermind
13:08 < jtanx_> I'm not getting the warnings that you're seeing either
13:12 < sam_moore> Yeah, those warnings were actually on my laptop though, they don't seem to appear on the BeagleBone
13:12 < sam_moore> I'm redoing the sensors code a fair bit
13:12 < sam_moore> You'll probably hate it :P
13:12 < sam_moore> Well, it's not really redoing the structure of how they work
13:13 < sam_moore> Just separating the logic of how sensors get read from all that control loop stuf
13:14 < sam_moore> I'm going to keep with the "one thread per sensor" idea, because that is definitely the simplest
13:16 < sam_moore> Did you tell Omid that they shouldn't assume anything about the state of the GPIO pins before the software starts?
13:16 < sam_moore> Which means that if (unlikely, but I don't know what they're doing) having two pins on at once would cause a catastrophic failure...
13:16 < sam_moore> By murphy's law, it will almost certainly happen
13:33 -!- jtanx_ [~asfa@130.95.54.13] has quit [Ping timeout]
13:59 -!- jtanx [~asfa@130.95.121.247] has joined #mctxuwa_softdev
13:59 -!- jtanx [~asfa@130.95.121.247] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
14:51 -!- jtanx [~asfa@130.95.248.194] has joined #mctxuwa_softdev
14:52 < jtanx> oh yah, somehow electronics ordered a non-powered usb hub
14:52 < jtanx> I'm pretty sure we told them to get a powered usb hub...
14:57 < sam_moore> Yep, and I remember them saying that is what they were going to get
14:57 < sam_moore> Dammit, I'm stuck trying to pick the best name for something -_-
14:57 < sam_moore> The worst place to be stuck
15:19 < jtanx> ??
15:19 < jtanx> thesaurus.com
15:23 < sam_moore> Hahaha
15:23 < sam_moore> I decided the thing didn't really need to exist
15:23 < sam_moore> Problem solved
15:24 < sam_moore> If someone who knows absolutely nothing about programming tries to add sensors to our program they will still be confused
15:24 < jtanx> Hahaha
15:24 < sam_moore> But I hope I've made it easier for someone who knows what they're doing
15:24 < jtanx> Okay
15:24 < jtanx> what were the compiler warnings that you got
15:25 < sam_moore> pin_test.c:41:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
15:25 < sam_moore> pin_test.c:48:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
15:25 < sam_moore> More on lines 54, 128, 190,204
15:25 < jtanx> weird
15:25 < jtanx> I never saw any of those
15:25 < sam_moore> Also I think the code I just wrote for the Strain sensors gives some as well
15:25 < sam_moore> Yes, it does
15:26 < jtanx> did you change GPIO_Export to use int type
15:26 < jtanx> wait
15:26 < jtanx> what am I saying
15:26 < sam_moore> It already uses int type?
15:26 < sam_moore> But it's something like that
15:26 < sam_moore> It looks like you're using unsigned char for something
15:27 < sam_moore> int gpio_num = Strain_To_GPIO(id);
15:27 < sam_moore> GPIO_Export(gpio_num);
15:27 < sam_moore> Is the sort of thing that causes the warning
15:27 < sam_moore> But I have "bool GPIO_Export(int pin)" in bbb_pin.c
15:27 < jtanx> oh right
15:27 < sam_moore> So it makes no sense
15:28 < jtanx> hmm
15:29 < sam_moore> Ooh
15:29 < sam_moore> It must be something to do with the "stub" functions
15:29 < jtanx> Is this on compilation on the BBB
15:29 < sam_moore> No, BBB was fine last time I checked
15:29 < jtanx> okay,w ell I'm not getting any warnings
15:29 < sam_moore> Compiling on my laptop because it's faster
15:30 < sam_moore> #define GPIO_Export(pin) True_Stub((void*)pin)
15:30 < sam_moore> That means the int is getting cast to a void*
15:30 < jtanx> yeah on my computer it's not putting out any warnings
15:30 < jtanx> int to void* is fine
15:30 < jtanx> anything to void* is fine
15:30 < jtanx> actually
15:30 < jtanx> is your system 64 bit
15:30 < sam_moore> 64 bit
15:31 < jtanx> yeah
15:31 < sam_moore> (You still have 32 bit :P)
15:31 < jtanx> well that would explain it
15:31 < sam_moore> Ok, it doesn't matter
15:31 < sam_moore> The stub function doesn't actually do anything with the value
15:31 < jtanx> cast int to int64 or whatever it is
15:32 < sam_moore> That would cause warnings on the BBB though?
15:32 < jtanx> only for the stub functions
15:32 < jtanx> and only for 64 bit
15:32 < jtanx> more ifdefs, yay
15:32 < sam_moore> ...
15:32 < jtanx> or we could get rid of the stubs
15:32 < sam_moore> I'm just going to ignore the warnings
15:32 < sam_moore> That could also work
15:32 < sam_moore> It doesn't really matter
15:32 < jtanx> and just do Wno-unsued-function or someting
15:32 < jtanx> yeah, oh well
15:35 < jtanx> One of the suggestions for the dilatometer was to just take a photo at the start and at the end
15:35 < jtanx> then do comparison
15:35 < sam_moore> Um, ok
15:35 < sam_moore> If they just want 2 data points
15:35 < jtanx> well
15:35 < jtanx> if we can find something other than opencv
15:36 < sam_moore> Ah
15:36 < sam_moore> How slow is it?
15:36 < jtanx> that may help, because right now opencv only plays nice with 352x288 or some other crap resolution
15:36 < jtanx> it's not that it's slow
15:36 < jtanx> is that it only works if the resolution is ~ 350 pixels x 2xx pixels
15:37 < jtanx> ffmpeg is fine with 640x480 afaik
15:37 < jtanx> it could probably do higher but haven't tested that
15:38 < sam_moore> http://libccv.org/
15:38 < sam_moore> Maybe
15:39 < jtanx> or what if we framegrabbed with some external softare
15:39 < jtanx> then used opencv to process the saved image
15:39 < sam_moore> Yes, I was about to suggest that
15:39 < sam_moore> I'm assuming the problem with OpenCV is that it doesn't like taking images from cameras directly of that resolution
15:39 < sam_moore> And not some underlying problem with having large CvMats or something
15:40 < jtanx> no idea why
15:40 < jtanx> some obscure setting can probably fix it or something
15:40 < jtanx> but I'm not about to trawl though opencv documentaiton now
15:40 < sam_moore> Actually OpenCV works with my 640x480 webcam, so it's probably some low level arm specific problem
15:40 < sam_moore> Which would probably mean that other image processing libraries would also suck
15:40 < jtanx> it may be that too
15:41 < jtanx> I know that with ffmpeg it was spitting warnings at 640x480
15:41 < jtanx> like non-monotonically increasing timestamp
15:41 < jtanx> and some other crap
15:41 < jtanx> I was running guvcview though
15:42 < jtanx> and it seemed to take 640x480 just fine
15:42 < jtanx> it was quite slow with x-forwarding and all, but at least it worked
15:44 < sam_moore> Hmm
15:44 < sam_moore> I would be inclined to say that taking a bunch of data points at low resolution is probably more useful than taking 2 data points at high resolution
15:45 < sam_moore> The best solution is to find some way of reading at the higher resolution though
15:46 < sam_moore> ... I'm worried about what Kieran is going to produce if he writes this dilatometer algorithm
15:46 < sam_moore> It's going to return an array isn't it...
15:46 < sam_moore> I have no idea why
15:47 < jtanx> :3
15:47 < jtanx> brb ~5 mins while I relocate to a lecture theatre
15:47 < sam_moore> Ok
15:47 -!- jtanx [~asfa@130.95.248.194] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
15:54 -!- jtanx [~asfa@130.95.248.194] has joined #mctxuwa_softdev
16:13 < sam_moore> Ok, this is both terrible and awesome
16:13 < sam_moore> But I've written a test "sensor" that is essentially just an external program
16:17 < sam_moore> So... if anyone complains about not being able to use python... they can use python
16:17 < sam_moore> And they don't have to reinvent all of our FastCGI stuff
16:17 < sam_moore> Although apparently that's easy in python anyway
16:17 < sam_moore> It's the thought that counts
16:21 < jtanx> :P
16:21 < jtanx> flup
16:30 < jtanx> http://zacharyvoase.com/2009/09/08/sendfile/
16:30 < jtanx> this could be interesting
16:31 < jtanx> replace static with our fastcgi app
16:31 < jtanx> http://wiki.nginx.org/XSendfile
17:00 -!- jtanx [~asfa@130.95.248.194] has quit [Ping timeout]
17:52 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:07 < jtanx> mmm feature creep
18:08 < sam_moore> Meh, it was better than dealing with that switch statement
18:09 < jtanx> yeah
18:09 < sam_moore> Also it made it really easy to decide where to put mutexes
18:10 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
18:10 < sam_moore> Given that I would have had to write a "strain.c" and do about the same amount of work anyway, I think the solution is a good one
18:10 < jtanx> it kind o makes sense though
18:11 < jtanx> you can't particularly generalise that much to each sensor type
18:11 < jtanx> so it makes sense to separate out based on what type of sensor it is
18:11 < sam_moore> Yes
18:11 < sam_moore> The Piped sensor is definitely feature creep though :P
18:12 < jtanx> ^-^
18:12 < sam_moore> Although...
18:13 < sam_moore> If we wanted to distribute the sensors with a "master slave" system
18:13 < sam_moore> The code would end up looking alot like that
18:13 < sam_moore> Except with a network socket instead of a unix domain socket
18:14 < sam_moore> Also I'm not sure why I called it piped given that it doesn't use a pipe
18:14 < sam_moore> I suppose it sounds cooler than "uds"
18:20 < jtanx> So with electronics
18:20 < jtanx> the reason why they were having issues with getting the psu approved
18:20 < jtanx> was because they wanted to cut the leads and solder directly to the board
18:21 < jtanx> Oliver suggested that they use extension connectors
18:21 < jtanx> and cut the lead on the extension
18:21 < jtanx> but why they didn't think of that first, I don't know
18:37 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:45 < jtanx> now to watch this week's lecture...
21:31 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Thu Oct 10 2013
08:11 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:40 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
13:30 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:04 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Fri Oct 11 2013
08:21 -!- Rowan [~Rowan@130.95.129.225] has joined #mctxuwa_softdev
08:42 -!- Rowan [~Rowan@130.95.129.225] has quit [EOF From client]
09:19 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:59 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
15:09 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:10 < jtanx> urgh
15:10 < jtanx> burning the midnight oil trying to get my cits2232 project done
15:10 < jtanx> but
15:10 < jtanx> it has taught me a lot about django
15:10 < jtanx> which may be of use, especially for the whole admin stuff
15:11 < jtanx> one possibility is that we have two separate 'logins'
15:11 < jtanx> one gains you access to the site
15:11 < jtanx> one gains control over the bbb (eg the server api)
15:12 < jtanx> what you could do is keep the 'bind' functionality for the api, but make it check against the django user database for credentials
15:12 < jtanx> I'll look into it, if not today then probably tomorrow
19:39 < sam_moore> That sounds good
19:48 < sam_moore> Should we do something like this: http://stackoverflow.com/questions/8988855/include-another-html-file-in-a-html-file (The accepted answer) to do with our sidebar/menu stuff
19:48 < sam_moore> Although...
19:48 < jtanx> well
19:48 < jtanx> if we use django it has really cool templating stuff
19:48 < sam_moore> That solution is actually about as much as just copy/pasting the sidebar at the moment
19:48 < jtanx> yeah
19:49 < sam_moore> So Django does parts of our GUI as well as the user management system?
19:49 < jtanx> Well yeah
19:49 < jtanx> so django would be ui mostly
19:49 < jtanx> then tack on to that our api
19:49 < jtanx> which remains exactly the same
19:49 < jtanx> except that it uses the django database for checking authorizaiton
19:50 < jtanx> so right before you commence an experiment, you try to 'gain control' of the bbb, you resupply your login creds
19:50 < sam_moore> Sure, that's a good solution, I thought django would just do user management though (rather than replace the JavaScript GUI)
19:50 < jtanx> well if you do use django
19:50 < jtanx> it's a good idea to change some of it, because of the templating system
19:51 < jtanx> and that it can conditionally show content
19:51 < sam_moore> Ok
19:51 < jtanx> some of the javascript stuff will stay though, definitely
19:51 < jtanx> especially all the live update stuff
19:51 < jtanx> but this is getting ahead of myself, because i'm not even sure if this will work
19:51 < sam_moore> Hahaha
19:52 < sam_moore> You're entering a territory where I can't help much
19:52 < jtanx> yeah, well all of this 'web development' is new area for me too :P
19:52 < jtanx> I'm supposed to be majoring in computation, not web tech...
19:52 < sam_moore> You know more/better jQuery than me
19:52 < jtanx> jquery is pretty easy to learn though
19:53 < jtanx> i picked it up completely from this project
19:53 < sam_moore> Well, that's one reason why we went with it, since I used it briefly for something and it wasn't too hard, and James said he'd used it before too
19:54 < jtanx> Yeah
19:54 < sam_moore> If you want to replace stuff with django, I'm ok with that, if it's simpler
19:55 < jtanx> I'll see how it goes, hopefully it shouldn't be too hard to setup
19:55 < sam_moore> It just seems silly to copy/paste this Navigation Menu into every file
19:55 < jtanx> yep
19:55 < sam_moore> But copy/pasting the code (stack overflow) to automatically make it is also annoying
19:55 < jtanx> We can roll with the jquery soln if I don't get this working
19:56 < sam_moore> Unless you could include that in the "runBeforeLoad()" ?
19:56 < jtanx> can't you just have a placeholder
19:56 < jtanx> and on document load, you load it?
19:56 < sam_moore> Yeah
19:56 < jtanx> It'll look a bit crap because you'll see it before the sidebar loads
19:56 < sam_moore> Actually that's how you're doing other things
19:56 < jtanx> yeah
19:56 < sam_moore> But the navigation menu is hard coded html
19:56 < sam_moore> I'm just reading the existing code :P
19:56 < jtanx> haha
19:57 < jtanx> yeah it's hardcoded - it's the easiest solution
19:57 < jtanx> I've got my case study for 2402 this/next week too
19:57 < sam_moore> Um... I think it's fairly easy to call load from a file
19:57 < sam_moore> I'll look into that
19:57 < jtanx> ok
19:58 < sam_moore> The case study was reasonable, although he wanted a lot more detail from us
19:58 < jtanx> what did you do?
19:58 < sam_moore> Despite struggling to cram it into 4 pages
19:58 < sam_moore> The pencil
19:58 < sam_moore> That's a good one
19:58 < jtanx> ah
19:58 < sam_moore> Lots of youtube videos
19:58 < jtanx> we're doing pet bottles
19:58 < jtanx> there's this megafactories one on the coke plant which was prettyc ool
19:58 < jtanx> but yeah the pencil one also has a lot
19:58 < jtanx> i think i saw the how its made one
19:59 < jtanx> Ha
19:59 < jtanx> http://wiki.nginx.org/HttpSsiModule
19:59 < jtanx> if you want to get server specific
19:59 < jtanx> you can do ssi
19:59 < jtanx> let's not do that if possible :P
20:00 < sam_moore> Wait...
20:00 < sam_moore> It looks like you put html comments and they get sent to the server?
20:00 < sam_moore> How is that a thing?
20:00 < jtanx>
20:00 < jtanx> nah what happens
20:00 < jtanx> is the server reads the html file
20:00 < jtanx> and where there's special placeholders
20:00 < jtanx> it does stuff
20:00 < sam_moore> Ah
20:01 < sam_moore> No, do it client side
20:01 < jtanx> yeah
20:01 < sam_moore> There's like jQuery.load
20:01 < sam_moore> I'd probably keep django for user auth to start with
20:01 < sam_moore> But I think jQuery should be sufficient for the GUI
20:02 < jtanx> I think if you roll with django
20:02 < jtanx> you should use jQuery for all the interactive stuff
20:02 < jtanx> (which you'd have to anyway)
20:02 < jtanx> but you should use the templating system that django's got
20:03 < sam_moore> Ok, what does django give you exactly then, I'm not quite sure what the "template" stuff is, I assume it's nothing like a C++ template
20:03 < jtanx> OK
20:03 < jtanx> hmm
20:03 < jtanx> I'll give you access to my cits2232 repo temporarily
20:03 < jtanx> so you can see
20:03 < sam_moore> If it lets you easily include bits of html that's cool, but jQuery looks to be able to do that easily as well
20:03 < sam_moore> Alright
20:04 < jtanx> actually you know what
20:04 < jtanx> i'll just post it on pastebin or something
20:05 < jtanx> http://privatepaste.com/ec22ba7238
20:05 < jtanx> That's the base template
20:05 < jtanx> http://privatepaste.com/07499e4a19
20:05 < jtanx> That's the index
20:05 < jtanx> {{variable_name}} will display a variable name
20:05 < jtanx> sorry, the contents of that variable
20:06 < jtanx> {% %} blocks are for control
20:06 < sam_moore> Hmm
20:07 < jtanx> the base template got a bit out of hand for that project
20:07 < sam_moore> Well, if you want to use something like that I'm ok with it
20:07 < sam_moore> Although I think the thing that I was originally complaining about can be solved in jQuery :P
20:08 < jtanx> yeah
20:08 < sam_moore> But you should probably ask everyone else involved with the GUI for input too
20:08 < jtanx> Yeah, good point
20:09 < sam_moore> ... Really I didn't want to be involved with the GUI, but I kind of need to mess around with at least some basic graph stuff to work out if I need to change the server sensors/actuators api
20:09 < jtanx> well let's just say that i did not envision doing the gui either
20:09 < sam_moore> I'll try and keep what I do consistent with the overall style though
20:09 < sam_moore> Which is how I got sidetracked complaining about copy/pasting things :P
20:10 < sam_moore> I think the GUI we have so far is pretty good
20:10 < jtanx> hehehe
20:10 < jtanx> yeah it's not too bad
20:11 < jtanx> the only thing that I wouldn't know how to do is that admin stuff
20:11 < sam_moore> user admin or experiment admin?
20:11 < jtanx> um
20:11 < jtanx> I dunno, whatever that 'admin' functionality needs to be
20:11 < jtanx> like 'access the full logs'
20:11 < sam_moore> Oh, right
20:12 < jtanx> unless you start implementing permissions in the api
20:12 < sam_moore> Hmm, we might have to
20:13 < sam_moore> It should just be an enum for the user type that gets returned/set by the authentication handler and checked for certain operations
20:13 < sam_moore> But as you mentioned the other day, you don't want someone to be able to login after someone else has started an experiment and cancel it
20:13 < sam_moore> Actually
20:13 < sam_moore> Do you?
20:13 < jtanx> admin only?
20:13 < sam_moore> Exactly
20:14 < jtanx> how difficult is that to do though
20:14 < sam_moore> Store the username of who owns the current experiment
20:14 < sam_moore> Store an enum of the user type of whoever is currently logged in
20:14 < sam_moore> If someone tries to stop the experiment, unless their username matches, or they are an admin, refuse
20:14 < sam_moore> There could be a safety issue there?
20:15 < jtanx> the only thing is
20:15 < sam_moore> If someone needs to stop the experiment but isn't an admin?
20:15 < jtanx> everything's based off the control key
20:15 < sam_moore> Meh... add another cookie
20:15 < sam_moore> ... That escalated quickly
20:15 < jtanx> you've already used the nameless cookie
20:15 < jtanx> if you add another cookie
20:15 < jtanx> you have to do string parsing
20:15 < jtanx> and have named cookies
20:16 < sam_moore> Hmmm
20:16 < sam_moore> "Beyond the scope of the project" ?
20:16 < jtanx> i think the format was
20:16 < jtanx> key=value; key=value2
20:16 < jtanx> yeah, beyond the scope :P
20:16 < sam_moore> Yeah, that is ever so annoying
20:16 < jtanx> let's leave it for now
20:16 < jtanx> come back to it
20:16 < sam_moore> Because if it were something like "key=value&key=value2" you could potentially reuse the FCGI parser
20:17 < jtanx> yeah
20:17 < jtanx> you could modify it
20:17 < sam_moore> That would be the way to go
20:17 < jtanx> generalise it
20:17 < sam_moore> But it's low priority now
20:17 < jtanx> yep
20:17 < jtanx> wow i'm getting seriously sidetracked
20:18 < jtanx> this mechatronics project is more interesting than any of my other projects though
20:18 < sam_moore> Haha
20:19 < sam_moore> I know what you mean
20:19 < sam_moore> I want to compile a RT linux kernel on my laptop (since they have x86 versions)
20:19 < sam_moore> So that I can look at how much the consistency in sample rate could theoretically improve...
20:20 < sam_moore> If someone managed to port the RT linux kernel to the BeagleBone
20:20 < jtanx> RT linux on your computer
20:20 < jtanx> isn't that generally bad
20:20 < jtanx> because RT screws up other stuff
20:21 < sam_moore> Like what?
20:21 < jtanx> decreased performance to meet the deadlines
20:21 < sam_moore> Also, I don't have to permanently replace my existing kernel, just add another bootloader entry
20:22 < sam_moore> If it screws up nginx that would be annoying though
20:23 < jtanx> while you're at it, try running the bfs scheduler instead of the cfs scheduler :P
20:23 < sam_moore> Maybe
20:42 < sam_moore> Ok, the solution to the copy/paste is just something like $("#sidebar").load("static/sidebar.html")
20:42 < sam_moore> However, whilst running this in the document.ready function on a test page works, running it in index.html appears to have no effect
20:43 < sam_moore> Oh
20:43 < sam_moore> I know why
20:43 < sam_moore> Because runBeforeLoad is failing
20:43 < sam_moore> Presumably you still want to load content like the navigation bar even if the server isn't running
20:44 < sam_moore> So... there is ".done()" and ".fail()" ... is there ".either()"?
20:46 < sam_moore> Ahahaha
20:47 < sam_moore> Of course, there is ".always()"
20:49 < sam_moore> Hmm, I wouldn't want to design any sort of large system with a language like this, but it is an interesting style
20:51 < jtanx> haha
20:52 < sam_moore> So, a lot of the header stuff can be moved into .html files and just jQuery.loaded, which should make things cleaner
20:52 < sam_moore> I will refrain from doing that now though
20:53 < jtanx> don't be too tempted to do a lot of templating with javascript
20:53 < jtanx> because it will load asynchronously, stuff will look weird
20:53 < jtanx> and if the js breaks
20:53 < jtanx> well, your page is more screwed than before
20:54 < sam_moore> Ok... but you could still potentially have at least one html file in the static directory
20:54 < sam_moore> With all the header and navigation stuff
20:55 < sam_moore> Just have a .fail() function!
20:55 < sam_moore> That's what it's for, right :P
20:56 < sam_moore> $("#thing").load("static/thing.html").fail($("#thing").html(" Something fucked up
")
20:56 < sam_moore> Oh dear
20:58 < jtanx> ~.~
20:58 < jtanx> django here: https://mctx.us.to:8043/databases
20:58 < jtanx> login with testuser:testuser
20:58 < jtanx> ignore that it looks a lot like our gui
20:58 < jtanx> except it doesnt work anymore
21:00 < sam_moore> Well, django's used for UCC for member administration
21:01 < sam_moore> Except it's entirely seperate from LDAP which we use for authentication
21:01 < sam_moore> Except it's not really because it binds to LDAP for authentication :S
21:01 < sam_moore> Wheels within wheels...
21:02 < jtanx> ookay
21:04 < sam_moore> You need LDAP for shell access
21:04 < sam_moore> In fact...
21:04 < sam_moore> We could potentially give pheme users shell access to the BeagleBone
21:04 < sam_moore> But there's not really any point
21:04 < jtanx> is that a good idea
21:05 < sam_moore> No
21:05 < sam_moore> It's an awful idea
21:05 < sam_moore> Just saying it's possible :P
21:06 < sam_moore> Someone could do this: :(){ :|:& };:
21:06 < sam_moore> And break the entire thing
21:08 < jtanx> is that the fork bomb
21:09 < jtanx> ok the site works now
21:09 < jtanx> sort of
21:10 < sam_moore> 400 Bad Request
21:10 < jtanx> hurr
21:10 < sam_moore> I think iceweasel is being dumb and ignoring https:// ?
21:10 < sam_moore> Although it was fine before
21:11 < jtanx> nah probably screwed up the nginx config
21:11 < sam_moore> No, it works, I just had to type the https:// instead of copy paste
21:11 < sam_moore> Wierd
21:11 < sam_moore> The test login doesn't work though
21:11 < jtanx> testuser doesn't work for some reason
21:11 < jtanx> yeah just register
21:12 < sam_moore> Will it actually send an email?
21:12 < jtanx> urgh
21:12 < jtanx> no
21:12 < sam_moore> haha
21:12 < jtanx> okay no the config is still broken
21:16 < sam_moore> I'll have to come back to this tomorrow
21:16 < sam_moore> Bye
21:17 < jtanx> ok bye
23:09 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sat Oct 12 2013
10:20 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:49 -!- jtanx_ [~asfa@124-169-73-222.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:49 -!- MctxBot_ [~twang@124-169-73-222.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:03 -!- jtanx [~asfa@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
14:05 -!- MctxBot [~twang@106-68-47-96.dyn.iinet.net.au] has quit [Ping timeout]
14:34 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:39 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:46 -!- jtanx_ [~asfa@124-169-73-222.dyn.iinet.net.au] has quit [Ping timeout]
14:47 -!- MctxBot_ [~twang@124-169-73-222.dyn.iinet.net.au] has quit [Ping timeout]
--- Log closed Sat Oct 12 17:39:23 2013
--- Log opened Sat Oct 12 22:41:38 2013
22:41 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
22:41 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
22:41 -!- Irssi: Join to #mctxuwa_softdev was synced in 2 secs
22:41 -!- You're now known as sam_moore
--- Day changed Sun Oct 13 2013
08:30 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:18 < jtanx> yeah, about the django stuff, I'm not sure if we should do that now
10:18 < jtanx> two options I considered:
10:19 < jtanx> if you kept the 'bind' module, but added a method to authenticate against the django database, that could work, but it's a lot of effort
10:19 < jtanx> - there's two ways - one is to manually do it via interaction with the sqlite database and parsing the user string etc etc
10:20 < jtanx> the other way is to call the python function from c
10:20 < jtanx> I explored the 'call python from c' option and it does work, but it's quite cumbersome
10:20 < jtanx> I didn't bother exploring the 'manual interaction with sqlite' because that would be even more cumbersome
10:21 < jtanx> The other way, which I got working quite easily
10:21 < jtanx> is to protect one of the modules with nginx
10:21 < jtanx> say /api/control now becomes an 'internal' only module
10:21 < jtanx> so it's not usually accessible from outside
10:22 < jtanx> with django, say you got the address /databases/control
10:23 < jtanx> it can send back a request with header 'X-Accel-Redirect' to /api/control
10:23 < jtanx> Because it was sent by django, which is an internal application, it works
10:23 < jtanx> such that /databases/control looks like /api/control to the user
10:24 < jtanx> the problem with this setup is that then your api becomes entirely dependent on django to work
10:24 < jtanx> I guess you could replace 'django' with any other authrorization frontend
10:31 < jtanx> let's just stick with what we've got
10:36 < jtanx> hahahaha and that x-accel-redirect just crashed my server after I held down f5
10:36 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit [Connection reset by peer]
10:39 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:19 < jtanx> I think I'll try to get in early tomorrow to work on whatever needs to be done
19:56 < jtanx> For the actuators, do you really want it to crash (Fatal) if the user supplies a step say of 0,1,40000,2?
21:19 < jtanx> working on the graphs now
23:29 < jtanx> ookay
23:29 < jtanx> too tired to check, but I refactored it and I think it still works
23:30 < jtanx> I'll just leave it in my fork for now
23:30 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["bye"]
--- Day changed Mon Oct 14 2013
10:03 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:03 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
19:15 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:19 < jtanx> this is stupi
19:19 < jtanx> d
19:19 < jtanx> flot is still the easiest to use
19:20 < jtanx> chart.js can only plot a line chart, so all the data series must share the same x-axis points
19:20 < jtanx> jqplot sucks
19:21 < jtanx> oh well, I'll work on this some other time
19:21 < jtanx> stick with flot for now
19:40 < sam_moore> Re actuators: No, Fatal is probably not the correct response to an invalid user input :P
19:40 < sam_moore> Re just using flot: OK
19:43 < sam_moore> I think we need to do a grep -R "Fatal" and get rid of the ones that don't actually need to be Fatal
19:43 < sam_moore> Which is probably most of them
19:44 < sam_moore> Working on more useful user based control now
19:45 < jtanx> ok
19:46 < jtanx> I wonder if it's possible to selectively colour text in a textarea with javascript
19:47 < sam_moore> Probably?
19:47 < jtanx> I have a feeling that you'd have to surround those ones in blocks
19:48 < sam_moore> Hmm, but that would make them all on new paragraphs
19:48 < jtanx> fine, s
19:48 < sam_moore> That makes sense
19:48 < jtanx> but you'd probably need to surround highlighted text in some sort of <> block
19:48 < jtanx> so you can style it
19:48 < sam_moore> Makes sense
19:48 < sam_moore> What are you going to colourise?
19:49 < jtanx> say if there's a fatal message
19:49 < jtanx> you colour it red?
19:49 < jtanx> make it blink, 90s style
19:52 < sam_moore> Hahaha
19:52 < sam_moore> Sounds good
19:53 < sam_moore> Colourising the labels for the graph might be useful too
19:53 < sam_moore> (Possibly easier than adding labels to the flot plot?)
19:53 < jtanx> hmm
19:54 < jtanx> what I was thinking of doing was to use nvd3, which generates the graphs using the svg element instead of a canvas
19:54 < jtanx> then you can use something like http://code.google.com/p/canvg/ to render the svg in js to a png file
19:55 < sam_moore> Interesting
19:55 < jtanx> no idea if it will work
19:56 < sam_moore> Do you even have to render it to png? SVG is a good format for graphs
19:56 < jtanx> i mean if you want to save it
19:56 < jtanx> i dunno, most users will go
19:56 < jtanx> what's this svg format
19:56 < sam_moore> That's what I mean; can you save it as an svg?
19:56 < sam_moore> Hahaha
19:56 < jtanx> probably
19:56 < sam_moore> If it were me, I would *want* the svg format
19:56 < sam_moore> You can edit the graph in inkscape
19:57 < sam_moore> Really easily
19:57 < jtanx> yeah
19:57 < jtanx> I'd prefer the svg format too
19:57 < sam_moore> Get SVG working and if you really want, add a radio box to choose the file format
19:57 < jtanx> yep
19:58 < sam_moore> I thought FCGI_LockControl was being called on any user action, but it looks like it's only called in login.c now
19:58 < sam_moore> Is that the change you were talking about earlier?
19:59 < jtanx> nah
19:59 < jtanx> fcgi_lockcontrol should only be called in login.c
19:59 < jtanx> there was this leftover part in control.c
19:59 < sam_moore> Oh, right, nevermind
19:59 < jtanx> that called it too
20:00 < sam_moore> I was thinking of FCGI_HasControl,that's ok
20:00 < jtanx> yeah
20:10 < MctxBot> .
20:12 < sam_moore> ?
20:12 < sam_moore> MctxBot: Have you become sentient yet?
20:12 < jtanx> I was just testing notification on all messages for chatzilla
20:14 < sam_moore> Ok
20:53 < sam_moore> I think the correct way to do this is to store more stuff in the FCGI_Context
20:54 < sam_moore> Like the name of the experiment currently being conducted
20:54 < jtanx> hmm
20:54 < sam_moore> I noticed that control.c avoids storing the actual name of the experiment anywhere
20:54 < sam_moore> But it's late and I'm just going to hack something together
20:55 < jtanx> yeah
20:55 < jtanx> I don't particularly like how 'experiments' were handled in control.c
20:55 < sam_moore> g_control stores the user name of whoever last succeeded in doing an "action=start"
20:55 < sam_moore> I can rework it, but not tonight
20:55 < jtanx> that's fine
21:41 < sam_moore> ==21160== Uninitialised value was created by a stack allocation
21:41 < sam_moore> ==21160== at 0x6A22DBE: __md5_crypt_r (md5-crypt.c:121)
21:41 < sam_moore> :S
21:41 < jtanx> .....
21:41 < sam_moore> Not causing an error, but still
21:41 < jtanx> what does that even mean
21:42 < sam_moore> It's nice to know that the linux crypt functions that are used for parsing /etc/shadow have uninitialised values
21:42 < jtanx> you sure you're calling it correctly
21:42 < jtanx> ?
21:42 < sam_moore> The full text (brace for impact)
21:42 < sam_moore> ==21160== Conditional jump or move depends on uninitialised value(s)
21:42 < sam_moore> ==21160== at 0x6D75188: ??? (strcpy.S:98)
21:42 < sam_moore> ==21160== by 0x6A230E7: __md5_crypt_r (md5-crypt.c:249)
21:42 < sam_moore> ==21160== by 0x40A5F6: Login_Shadow (login.c:93)
21:42 < sam_moore> ==21160== by 0x40AA7B: Login_Handler (login.c:243)
21:42 < sam_moore> ==21160== by 0x404CE3: FCGI_RequestLoop (fastcgi.c:548)
21:42 < sam_moore> ==21160== by 0x4052AE: main (main.c:143)
21:42 < sam_moore> ==21160== Uninitialised value was created by a stack allocation
21:42 < sam_moore> ==21160== at 0x6A22DBE: __md5_crypt_r (md5-crypt.c:121)
21:42 < sam_moore> if (strcmp(crypt(pass, salt), buffer+passwd_index) == 0)
21:43 < sam_moore> Looks like the correct usage to me
21:43 < sam_moore> I mean, it's *working*
21:43 < jtanx> ~.~
21:43 < jtanx> well then
21:44 < sam_moore> It's probably someone being lazy with initialising things
21:44 < jtanx> https://bugzilla.redhat.com/show_bug.cgi?id=760262
21:44 < sam_moore> GCC under linux usually initialises things to zero
21:44 < jtanx> https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=699917
21:44 < sam_moore> But under other things (like Mac OSX) it doesn't; if it's not initialised you can't assume anything
21:45 < jtanx> I thought C standard was any global variables were zeroed
21:45 < jtanx> anything else is undefined
21:45 < sam_moore> Well it's probably not a global variable then
21:45 < sam_moore> But I think you're right
21:45 < sam_moore> I just remember in CITS1210
21:45 < jtanx> from the bug report - 'This is an annoying, but harmless false positive warning.'
21:46 < sam_moore> We had a bunch of variables that weren't initialised
21:46 < sam_moore> gcc under debian/ubuntu was zeroing them for us
21:46 < sam_moore> So things still worked
21:46 < jtanx> yeah
21:46 < sam_moore> Go to the Mac lab...
21:46 < sam_moore> Everything exploded
21:46 < jtanx> hahahaha
21:46 < jtanx> ah... CITS1210
21:46 < jtanx> when did you take it?
21:46 < sam_moore> Aaages ago
21:46 < sam_moore> 2009?
21:47 < jtanx> that was long ago
21:47 < sam_moore> Yes
21:47 < jtanx> 2011 for me
21:47 < sam_moore> We got 100% though :)
21:47 < sam_moore> For the second project
21:47 < jtanx> sweet
21:47 < jtanx> I think I got that too
21:47 < jtanx> they docked marks off the first one for some stupid reason
21:47 < sam_moore> (He had an infinite loop in the sample solution, which we found and eliminated in our solution, I think that was the main reason)
21:48 < jtanx> ook
21:48 < sam_moore> (He probably didn't appreciate the #ifdef BE_REALLY_STUPID // Replicate the behaviour *exactly* as requested by the lecturer)
21:48 < jtanx> :P
21:48 < sam_moore> Good fun
21:49 < jtanx> yeah, one of the comments on mine was 'did not exactly match whitespace of output'
21:49 < sam_moore> Haha, it was pretty harsh with the replicating exactly
21:49 < sam_moore> We had a long debate about whether we should replicate the infinite loop or not
21:49 < sam_moore> I think we actually submitted it with "BE_REALLY_STUPID" defined :S
21:50 < jtanx> hahahaha
22:24 < jtanx> now to look into nvd3
22:36 < sam_moore> I've pushed some progress, I will try and clean it up later this week (it's pretty hacky)
22:36 < jtanx> cool
22:37 < sam_moore> I do like the idea of having svg plots, if it works it will be much nicer than flot
22:37 < jtanx> hopefully
22:37 < jtanx> it doesn't work in ie8 without this compat library
22:37 < sam_moore> Ah
22:37 < jtanx> and with compat it'll probably be slow
22:37 < jtanx> but oh well
22:38 < sam_moore> Fallback to flot if browser is ie8? :P
22:38 < jtanx> yeah
22:38 < jtanx> maybe
22:38 < jtanx> that could work
22:39 < sam_moore> I'm pretty sure it's within our rights to say "You need to use one of these browsers" since it's so easy to install browsers
22:39 < jtanx> true
22:39 < jtanx> ie8 is more an afterthought anyway
22:39 < sam_moore> But I suppose if they have some stupid SOE that only includes ie6...
22:39 < jtanx> if you use ie6 you'd be screwed anyway
22:39 < sam_moore> Haha
22:40 < sam_moore> The first flot page I made didn't work in my phone's browser, but that's probably a JavaScript setTimeout thing
22:40 < jtanx> do browsers even support the canvas element
22:40 < jtanx> *mobile browsers
22:41 < sam_moore> Well it showed the first set of data but didn't update
22:41 < jtanx> oh
22:41 < jtanx> right
22:41 < sam_moore> Don't worry, we don't need to support phone browsers
22:41 < sam_moore> Or at least, until we tell Adrian that we don't support phone browsers, we won't have to support phone browsers :P
22:42 < jtanx> hehehe
23:12 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit [Connection reset by peer]
23:13 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:20 < jtanx> hahaha nvd3 crashed firefox
23:20 < jtanx> let me try again
23:20 < jtanx> if I disconnect, you know why
23:22 < jtanx> well it didn't crash, but it didn't work
23:22 < jtanx> oh well, I'll try again tomorrow
23:22 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["bye"]
--- Day changed Tue Oct 15 2013
12:08 < sam_moore> http://jayrambhia.com/blog/capture-v4l2/
12:08 < sam_moore> Might be useful?
12:08 < sam_moore> I suspect the issue with the cameras is related to the colour format
12:08 < sam_moore> MJPEG fails, but YUVU (whatever the hell that is) succeeds
12:09 < sam_moore> Although it is still only giving 320x240
12:13 < sam_moore> I noticed uvccapture, etc are quite buggy on my own debian laptop
12:13 < sam_moore> I'm hoping that it might actually be a shitty userspace error that we can fix by using the v4l2 API directly
12:13 < sam_moore> Although it's not likely
12:14 < sam_moore> May as well try
12:14 < sam_moore> But uvccapture just likes to hang forever
12:14 < sam_moore> If you give it larger resolutions
18:52 -!- james__ [~chatzilla@CPE-58-160-245-20.wa.bigpond.net.au] has joined #mctxuwa_softdev
19:29 -!- james__ [~chatzilla@CPE-58-160-245-20.wa.bigpond.net.au] has quit [Ping timeout]
21:27 -!- James__ [~chatzilla@CPE-58-160-245-20.wa.bigpond.net.au] has joined #mctxuwa_softdev
21:31 < James__> Hey Sam
21:39 < James__> Having Issues uploading to the GUI to git but i have successfully tested it on Firefox, Chrome and IE. I will continue trying to upload but if i can't i will see if i can find you or Jeremy tomorrow
21:57 -!- James__ [~chatzilla@CPE-58-160-245-20.wa.bigpond.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Wed Oct 16 2013
13:39 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit [Ping timeout]
13:59 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:59 < jtanx> ...
13:59 < jtanx> I brought the bbb home
14:00 < jtanx> booted it off an ubuntu image, and uvccapture can take 800x600 images fine from my webcap
14:00 < jtanx> webcam*
14:00 < jtanx> I don't know if it's because it's a different camera, or because it's a different os
14:34 < jtanx> I just tested with the api/image and I can get 800x600 fine
14:34 < jtanx> too
14:38 < jtanx> I can even do 1600x1200 images just fine
14:38 < jtanx> ................
14:38 < jtanx> ._.
14:38 < jtanx> I'll be bringing this in tomorrow, see if it works with the cameras that we're going to be using
14:39 < jtanx> Since my 1gb sd card was not big enough to opencv, I've actually flashed the internal memory with ubuntu
14:39 < jtanx> (so I could install opencv)
14:41 < jtanx> wowthat is so stupid
14:42 < jtanx> so either it's the cameras that we bought, or the os
14:42 < jtanx> but it works at 1600x1200
14:42 < jtanx> (max resolution of my webcam)
14:43 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:00 < jtanx> ok, I just tried it with the os we've been running before (on your 32gb sd card), and it also works at 1600x1200
15:00 < jtanx> so it's an issue with the camera
15:01 < jtanx> (e.g selecting a camera that actually works with the BBB
15:14 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["brb"]
15:16 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:10 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit [Ping timeout]
21:41 -!- jtanx_ [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:56 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit [Ping timeout]
23:28 -!- jtanx_ [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
23:28 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Thu Oct 17 2013
09:16 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
09:17 < jtanx> ....
09:17 < jtanx> I just ran the bBB with ubuntu and used the usb microscope
09:17 < jtanx> and it worked
09:18 < jtanx> and so too does it work on the original os
09:18 < jtanx> wtf
09:33 < jtanx> hahahaa
09:33 < jtanx> it crashed because it ran out of memory
09:33 < jtanx> I tried having both cameras at once
09:33 < jtanx> and switching between them
09:34 < jtanx> but other than that it works
09:34 < jtanx> this is weird
09:44 < jtanx> about 1/5 tries fails at 1600x1200 with 'select timeout'
09:44 < jtanx> probably because it can't buffer that fast or something
09:45 < jtanx> but definitely to run both cameras at once (or at least have them connected), you require an external power source, either for the beaglebone or for the usb hub
09:47 < jtanx> yep
09:47 < jtanx> if you do
09:47 < jtanx> modprobe uvcvideo nodrop=1
09:47 < jtanx> It will only display part of the image
09:47 < jtanx> probably because it hasn't filled the buffer yet
09:48 < jtanx> but if you load uvcvideo with normal settings
09:48 < jtanx> it either displays the full image, or no image at all
09:48 < jtanx> the problem is, I don't know how you detect this in opencv
10:10 -!- jtanx [~asfa@130.95.54.13] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
13:47 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:55 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit [Ping timeout]
17:14 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:20 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit ["leaving"]
17:22 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:38 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Log closed Fri Oct 18 11:45:55 2013
--- Log opened Fri Oct 18 11:46:19 2013
11:46 -!- sam_moor1 [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
11:46 -!- Irssi: #mctxuwa_softdev: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal]
11:46 -!- Irssi: Join to #mctxuwa_softdev was synced in 8 secs
11:56 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has quit [Ping timeout]
16:03 -!- You're now known as sam_moore
16:03 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
16:03 < sam_moore> MctxBot: Tell your master that snoopy is broken
17:41 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:42 < jtanx> woops
17:42 < jtanx> I probably screwed up fstab on the sd card when trying to enable swap space
17:42 < jtanx> sorry about not replying earlier
19:42 < sam_moore> Haha
19:42 < jtanx> ~.~
19:42 < sam_moore> We used ubuntu to test the pressure sensor and microphone
19:42 < jtanx> what were you doing with the BBB?
19:42 < jtanx> oh
19:42 < jtanx> how did that go?
19:43 < sam_moore> Alright, flot and/or JavaScript suck at large numbers of points though
19:43 < jtanx> yeah
19:43 < jtanx> did you finally get your hands on a voltage divider or something
19:44 < jtanx> or hsa the electronics team finished their stuff
19:44 < sam_moore> We just made one, but electronics does have one
19:45 < sam_moore> "We have 2 boards and 2 of them don't work"
19:45 < sam_moore> GPIO can't trigger the relays it would seem
19:45 < jtanx> well
19:46 < jtanx> what are they going to do about that
19:46 < sam_moore> Although we only tested 2 outputs, apparently some are 4mA some are 6mA and the thing needs 5mA
19:47 < sam_moore> I don't know? Try every single pin, actually measure the current drawn by the relay switch
19:47 < sam_moore> Replace the transistors on the relay
19:47 < jtanx> haha
19:47 < jtanx> that sounds so dodge
19:47 < sam_moore> We tried 2 GPIO pins at once :S
19:47 < jtanx> in parallel?
19:47 < sam_moore> Didn't work
19:48 < sam_moore> Yeah
19:48 < jtanx> hahaha
19:48 < sam_moore> But I think that might cause one to draw current from the other
19:48 < jtanx> hmm
19:49 < sam_moore> Need to actually look at the GPIO circuit diagram to work out what that would do
19:49 < sam_moore> Our software can sample more than fast enough for the microphone
19:50 < jtanx> that's cool
19:50 < jtanx> could you see it on the graph
19:50 < sam_moore> But plotting it in flot crashes the browser
19:50 < sam_moore> Sort of
19:50 < sam_moore> Had to change start_time to get all the points
19:51 < jtanx> Flot doesn't sound too reliable
19:51 < sam_moore> It crashes after ~1s
19:51 < sam_moore> min
19:51 < sam_moore> not second
19:51 < jtanx> But can we just cut down on the number of data points
19:51 < jtanx> how many datapoints is that after 1 min
19:51 < sam_moore> It's obviously incredibly inefficient
19:52 < sam_moore> I will see if averaging points helps flot
19:52 < sam_moore> Or if it's actually JavaScript not liking really big arrays
19:52 < jtanx> yeah
19:52 < jtanx> I think having large arrays consumes an enormous amount of memory in js, for some reason
19:53 < sam_moore> Dammit
19:54 < sam_moore> We could make a python GUI using requests and pyplot :P
19:54 < jtanx> -.-
19:54 < jtanx> wouldn't it be worse, trying to plot it on the beaglebone
19:55 < jtanx> given that you're using a full blown computer to plot it
19:55 < sam_moore> No, you still plot it on the client
19:55 < jtanx> How does that work
19:56 < jtanx> You'd have to render it on the BBB, no?
19:56 < sam_moore> Nope; get data the same way through HTTP and plot on the client
19:56 < jtanx> what's the difference?
19:57 < sam_moore> The BBB doesn't gave a problem transferring data points
19:58 < sam_moore> The browser ie JavaScript sucks at coping with them
19:58 < jtanx> Yeah, but if you say plot on the client, how do you plot on the client?
19:58 < jtanx> ohhhhhhh
19:58 < jtanx> Right I understand now
19:59 < sam_moore> Python has modules for plotting
19:59 < sam_moore> And modules for HTTP requests
19:59 < jtanx> You're saying instead of a web interface a python gui instead
19:59 < sam_moore> Maybe
19:59 < jtanx> ??
19:59 < sam_moore> I can at least do a proof of concept
19:59 < jtanx> I'm lost
20:00 < sam_moore> But we probably shouldn't redesign the entire GUI...
20:00 < jtanx> Hey, I'm all for it if it can be done
20:20 < jtanx> Now, to do this control page
20:20 < jtanx> A username can only contain alphanumeric characters
20:21 < jtanx> right?
20:21 < sam_moore> Yep
20:21 < jtanx> okay
20:21 < jtanx> was just thinking if someone had say .. in their username...
20:25 < sam_moore> You can allow other characters
20:25 < jtanx> well as in
20:25 < sam_moore> Not '=' though
20:25 < jtanx> having .. in their username would move you up a directory
20:26 < sam_moore> Ah, cunning
20:26 < sam_moore> Thwarted by general paranoia though
20:26 < jtanx> :P
20:26 < sam_moore> No stupid characters in usernames
20:27 < sam_moore> Definitely no '/' allowed
20:27 < jtanx> hahaha
20:27 < jtanx> I think an alphanumeric limitation is good
20:27 < jtanx> until the university stipulates having random characters in usernames
20:28 < sam_moore> You forget that if the university does that they will have to cope with the same kind of bullshit
20:29 < jtanx> Yeah, true that
21:42 < sam_moore> I pushed a python plotting thing, but I don't really think we should be switching to it at this stage.
21:42 < jtanx> Okay
21:42 < sam_moore> I'll try tweak the flot GUI tomorrow to make it less shit
21:43 < jtanx> hahaha
21:58 < jtanx> urgh
21:58 < jtanx> barely started on the control page
21:59 < jtanx> I guess I'll have to complete it tomorrow
21:59 < jtanx> even though we're probably (maybe) going with james gui
22:00 < jtanx> I've removed the width restriction
22:00 < jtanx> and you can hide the navigation bar
22:00 < jtanx> for more space
22:11 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sat Oct 19 2013
07:59 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:39 < jtanx> blegh, now to start on the js for the control page
11:10 < jtanx> what would you say if instead of all this chdir business
11:10 < jtanx> one of the initial options to start the software is to specify where you want experiments to be held
11:11 < jtanx> e.g /usr/share/experiments or whatever
11:11 < jtanx> then you build the path based on the username
11:25 < sam_moore> That sounds good
11:26 < jtanx> Okay, I'll try to do that then
14:37 < sam_moore> There's some kind of error in mctx.gui.js now
14:37 < jtanx> what's happening?
14:37 < sam_moore> A syntax error
14:37 < jtanx> let me check
14:38 < jtanx> what page is this on?
14:38 < sam_moore> Line 272 (mctx.gui.js): outdiv[0].scrollHeight - outdiv.height()
14:38 < sam_moore> Caused by loading graph.html
14:38 < jtanx> ahhhh
14:38 < jtanx> I know why
14:38 < jtanx> maybe
14:39 < jtanx> I decided to just to $("#errorlog").seterrorlog in mctx.gui.js
14:39 < jtanx> so I don't have to repeat that on every page
14:39 < sam_moore> The debug function also causes some error in chromium
14:39 < jtanx> but if the page deosn't have an error log
14:39 < jtanx> hahaha
14:39 < jtanx> chromium
14:39 < jtanx> what does it say
14:39 < sam_moore> Didn't I tell you that something was causing iceweasel to segfault? I have no choice! :(
14:40 < jtanx> :P
14:40 < sam_moore> console.log.apply(this, arguments); causes an uncaught type error: illegal invocation
14:40 < sam_moore> I shall replace it with "alert"
14:40 < jtanx> hmm
14:41 < jtanx> it's because chrome has a different implementation of console.log
14:41 < jtanx> http://stackoverflow.com/questions/9521921/why-does-console-log-apply-throw-an-illegal-invocation-error
14:41 < jtanx> for that bug
14:41 < sam_moore> Right
14:42 < sam_moore> Why is the call to outdiv.scrollTop on line 272 spread over 3 lines?
14:42 < sam_moore> ... That's probably why it syntax errors
14:42 < jtanx> nah
14:42 < jtanx> it's legit
14:43 < jtanx> the problem is there's no div there if you don't define #errorlog somewhere in your html
14:43 < sam_moore> I thought the html was supposed to load any elements specific to that page
14:44 < sam_moore> Which should avoid this sort of thing happening
14:44 < jtanx> Yeah, except that we were repeating the same sort of load code
14:44 < jtanx> in most of the pages
14:44 < jtanx> I've just added a check in seterrorlog
14:44 < jtanx> which should ignore if there's no such div anyway
14:44 < sam_moore> ok
14:44 < jtanx> that whole 'experiment dir' thing is ~.~
14:44 < jtanx> I think it's mostly done
14:45 < sam_moore> Ok
14:45 < jtanx> so
14:45 < jtanx> instead of having a file 'name.exp'
14:45 < sam_moore> Yeah that was hacky
14:45 < jtanx> it's a folder 'name.exp'
14:45 < jtanx> all the stuff for one experiment gets stuck in that folder
14:45 < sam_moore> That's slightly less hacky
14:45 < jtanx> so you have something like
14:45 < sam_moore> Makes sense
14:46 < jtanx> /experiments_folder/username/experiment_name.exp
14:46 < sam_moore> Cool
14:46 < sam_moore> If it ever is changed to use local user accounts you can just set experiments_folder to /home
14:47 < jtanx> yeah
14:47 < jtanx> experiments_folder is just an argument you pass to it when you start it
14:47 < jtanx> -e experiment_folder
14:49 < sam_moore> Found a syntax error in graph.html now
14:49 < jtanx> just pushing stuff now
14:49 < jtanx> but what's the errro?
14:50 < sam_moore> There's an unterminated bracket on the runBeforeLoad.done
14:50 < sam_moore> I think
14:50 < jtanx> ah
14:50 < sam_moore> So many brackets
14:50 < jtanx> hehehe
14:50 < jtanx> yeah you're probably right
14:50 < jtanx> netbeans is giving angry red on the bracket
14:51 < jtanx> do you want me to push the fix for that?
14:51 < sam_moore> Well there are other issues with the page
14:52 < sam_moore> No method "always" where it's being chained on the document.ready
14:53 < jtanx> no wait
14:53 < sam_moore> Wait what the hell is it meant to do there
14:53 < jtanx> [14:52:32.186] ReferenceError: mctx is not defined @ http://localhost:8383/MCTXWeb/static/mctx.graph.js:8
14:53 < jtanx> hmm
14:53 < jtanx> I broke something
14:53 < sam_moore> That's not the problem I'm getting, but generally there are lots of wierd things here
14:53 < jtanx> yeah
14:53 < jtanx> sorry
14:53 < jtanx> it was probably working before I pushed changes yesterday
14:54 < sam_moore> You have runBeforeLoad.done() calling $(document).ready which does nothing, but is chained to .always which will then call $(document).ready which then loads $("#graph-controls").setDevices()
14:55 < sam_moore> ... I think what I originally had was runBeforeLoad.always() calling $("#graph-controls").setDevices
14:55 < sam_moore> Possibly inside a document.ready
14:55 < sam_moore> But now mctx.gui.js is calling document.ready itself...
14:55 < jtanx> waiit
14:55 < jtanx> I think it's ok now
14:56 < jtanx> it was just brackets
14:56 < jtanx> I'll try it on my server first
14:58 < jtanx> yeah, I see what you mean
15:01 < jtanx> ahh
15:01 < sam_moore> Well I fixed it enough to test stuff
15:01 < jtanx> yeah
15:02 < jtanx> you planning on modifying stuff?
15:02 < sam_moore> I think it's just a matter of having runBeforeLoad().done() call $(document).ready() and then initialise stuff
15:02 < jtanx> I'll just keep it in my repo for now
15:03 < sam_moore> With runBeforeLoad.fail if you want to handle bad stuff
15:03 < jtanx> I just made it
15:03 < jtanx> runBeforeLoad().always(function() {
15:03 < jtanx> $(document).ready(function() {
15:03 < jtanx> $("#graph-controls").setDevices();
15:03 < jtanx> });
15:03 < jtanx> });
15:03 < sam_moore> Yep, that's what I just did
15:03 < sam_moore> You can commit it and I'll pull it
15:03 < jtanx> okay
15:03 < sam_moore> If you fix the console and the errorlog things as well
15:03 < jtanx> yep
15:03 < jtanx> pushed that too
15:05 < sam_moore> Hmm, start_time = -1 is not actually giving the most recent second of data
15:05 < sam_moore> That might be a server API problem
15:05 < jtanx> hmmm
15:05 < sam_moore> But it might also explain why things were shitting themselves so much with the fast sampling rate
15:06 < jtanx> what is it giving?
15:06 < sam_moore> Because the jQuery would be getting hundreds of thousands of points...
15:07 < sam_moore> At the moment the server API is not giving any points and giving back a stupid value for start_time
15:07 < sam_moore> I think I might have broken it when I changed all the clocks
15:07 < jtanx> when did you change ti?
15:07 < sam_moore> Just now
15:07 < jtanx> ah
15:07 < sam_moore> I'm hoping that my first assumption about the thousands of points was the case before I broke it as well :P
15:08 < sam_moore> (ie: It was already broken before I broke it more)
15:08 < jtanx> ahahahah
15:08 < jtanx> I can try
15:08 < jtanx> I still have the old version
15:09 < jtanx> with start_time=-1 it returns nothing
15:09 < jtanx> start_time in the response is constant
15:11 < sam_moore> Yeah I get wierd stuff
15:11 < sam_moore> start_time = 17889.590701
15:12 < sam_moore> "current_time" : 18589.539255
15:12 < jtanx> is that with clock_gettime?
15:12 < sam_moore> "running_time" : 699.948554,
15:12 < sam_moore> Yes
15:13 < sam_moore> Oh herdurp
15:13 < sam_moore> start_time in the JSON response is *not* the same as start_time the parameter to the sensor
15:13 < jtanx> yeah
15:13 < sam_moore> .... should probably change that
15:13 < jtanx> start time of experiment
15:14 < jtanx> experiment_start_time?
15:14 < jtanx> long variable names...
15:14 < sam_moore> I think it's actually the program start time
15:14 < jtanx> nup
15:14 < jtanx> experiment starttime
15:14 < sam_moore> Alright
15:14 < jtanx> oh
15:14 < jtanx> actually you may be right
15:14 < sam_moore> Haha
15:14 < jtanx> I thought i changed it
15:14 < jtanx> wway back when i did the control stuff
15:15 < jtanx> initially
15:15 < sam_moore> ControlData has a start_time variable
15:15 < jtanx> yeah
15:15 < sam_moore> But g_options has a start_time variable
15:15 < sam_moore> -_-
15:15 < jtanx> that's confusing
15:15 < jtanx> hahaha
15:15 < sam_moore> Yeah, what idiot designed this...
15:15 < jtanx> ~.~`
15:19 < sam_moore> Right, sensor values are being saved relative to Control_GetStartTime (experiment starting time)
15:19 < sam_moore> That's fine
15:19 < jtanx> yep
15:19 < sam_moore> Sensor_Handler gets "current_time" from that as well
15:19 < jtanx> Thread safety on that is dodgey
15:19 < jtanx> I must say
15:20 < jtanx> but it's probably fine
15:20 < sam_moore> It's fine, clock_gettime is posix thread safe
15:21 < sam_moore> Oh, do you mean if the experiment changes
15:21 < jtanx> yeah
15:21 < jtanx> the whole *Control_GetStartTime() looks dodgy too
15:22 < sam_moore> Perhaps just a "double Control_CurrentTime()" would be better
15:22 < sam_moore> But it works
15:22 < jtanx> hmm
15:24 < sam_moore> Anyway, I think start_time=-1 is not giving any data because the default sampling rate is 1s and therefore current_time - 1 is outside the data range most of the time
15:25 < sam_moore> start_time=-3 gives a single point with the default sampling rate
15:25 < sam_moore> Increasing the sampling rate then you appear to get the right points
15:31 < sam_moore> I'm going to repeat my timestamp test with the current software under regular kernel and RT linux
15:32 < sam_moore> I know we can't ever get RT linux but I want to see if it makes much of a difference
15:46 < jtanx> okay
15:50 < jtanx> finally... back to actually coding the control page
22:59 -!- jtanx [~asfa@220-253-133-241.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sun Oct 20 2013
15:56 -!- Callum [~Callum@106-68-161-33.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:59 < Callum> hey sam, got a link to the dropbox?
16:06 < sam_moore> https://www.dropbox.com/sh/km90dmbdrgin3mg/OimGp0qopv
16:06 < Callum> thanks
16:07 < sam_moore> I think I might be able to hack together a user management system based on UserCake
16:08 < sam_moore> Someone else will have to make it look pretty though
17:25 < Callum> opencv is fucking retarded.
17:25 < Callum> C++ has a bunch of different functions for each individual type of blur
17:25 < Callum> C has one function but you pass it an ID for which type of blur you want to use..
17:30 < sam_moore> OpenCV used to be in C, but they moved it to C++
17:30 < sam_moore> But it still supports the C API
17:30 < sam_moore> Through some wierd magic
17:30 < sam_moore> At least, if you run our program in valgrind, it reports a lot of stuff happening with things like "std::string" and "cv::Mat"; ie: C++ namespaces
17:32 < Callum> yea. its a bit of a bitch to code in C...all the documentation is for c++ pretty much
17:32 < Callum> like right now im trying to find out how to simply set all elements to 0.. where in c++ its just Mat::Scalar(0)
17:32 < sam_moore> If you really want you can probably compile in C++, but I'm not sure if it will cause issues elsewhere
17:33 < Callum> il just keep going like this. just a couple of things atm i need to figure out. hopefully thats it
17:33 < sam_moore> Cool
17:34 < sam_moore> The server now supports 3 entirely different authentication methods :S
17:34 < Callum> haha. a little excessive.
17:34 < Callum> hopefully they'll be happy with atleast one of them..
17:34 < sam_moore> If we modify UserCake we can run our own user management system
17:35 < sam_moore> I need to change it so that instead of users registering themselves it's the admin that adds users manually though
17:35 < sam_moore> Also we'd have to get email working
17:57 < Callum> uuh. so using one of his test images for the microscope, running it through Canny gives a bunch of squiggly lines all over the place
17:57 < Callum> its funny, the part which is actually the edge...has the most black
17:57 < Callum> il try some of his other images and see what it does
20:22 -!- Callum [~Callum@106-68-161-33.dyn.iinet.net.au] has quit [EOF From client]
20:50 -!- MctxBot_ [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:05 -!- MctxBot [~twang@220-253-133-241.dyn.iinet.net.au] has quit [Ping timeout]
21:06 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
21:08 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:10 < jtanx> working on the report the day before...
21:10 < jtanx> what is this madness
22:23 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Mon Oct 21 2013
07:40 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:04 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
09:15 -!- jtanx [~asfa@130.95.131.138] has joined #mctxuwa_softdev
11:00 -!- jtanx [~asfa@130.95.131.138] has quit [Ping timeout]
11:03 -!- jtanx_ [~asfa@130.95.54.13] has joined #mctxuwa_softdev
11:03 -!- jtanx_ is now known as jtanx
11:22 < jtanx> mctxserv[10834]: FATAL: Data_Save (data.c:80) - Error seeking to end of DataFile test/sensor_1 - File too large
11:23 < jtanx> jeremy@pickle:~/git/MCTX3420/server/test$ du -sh *
11:23 < jtanx> 0 actuator_0
11:23 < jtanx> 2.0G sensor_0
11:23 < jtanx> 2.1G sensor_1
11:23 < jtanx> after running overnight
11:23 < jtanx> hahaha
11:36 < sam_moore> The 32G SD card might have been a good thing to buy...
11:36 < sam_moore> Just in case
11:36 < jtanx> I tried removing the line i made to fstab
11:36 < jtanx> still didn't work
11:36 < sam_moore> Damn
11:36 < jtanx> was there anything important on it
11:36 < jtanx> could just flash it with the internal memory
11:37 < sam_moore> I'd be very hesitant to flash it to the internal memory if it doesn't boot
11:37 < sam_moore> There may be something else wrong with it
11:37 < jtanx> I mean
11:37 < jtanx> there's a script
11:37 < jtanx> to copy the internal memory to the sd card
11:37 < sam_moore> Oh, that's cool
11:37 < sam_moore> We can do that
11:37 < jtanx> Okay
11:37 < sam_moore> Since Ubuntu magically solved our image problems, we should use it
11:38 < jtanx> yeah, that was weird
11:38 < jtanx> just as long as there's nothing important on the sd card
11:38 < sam_moore> Probably change the phrasing in the report from "We don't know why this fixed it" to "We fixed it through our 1337 haxor skills"
11:38 < jtanx> >.>
11:39 < jtanx> how did you set up usercake?
11:39 < jtanx> like where's this db-settings.php that it mentions
11:39 < jtanx> oh right
11:39 < jtanx> never mind
11:41 < sam_moore> It comes with an install directory that I removed
11:41 < sam_moore> We should add that because we might want to modify the database structure
11:41 < jtanx> yeah
11:41 < sam_moore> Eg: It's a real pain that user permission levels are in a seperate table to everything else
11:41 < sam_moore> And doesn't make sense...
11:41 < jtanx> normalised database design
11:41 < jtanx> :P
11:42 < sam_moore> We can go with the "strcmp(user, "admin")" for now
11:42 < sam_moore> Did you get the email about LEFT vs RIGHT can?
11:42 < jtanx> yeah
11:42 < sam_moore> I think I should ask
11:42 < jtanx> pneumatics wants left
11:43 < sam_moore> "Are you looking at the box from the FRONT or BACK"
11:43 < jtanx> everyone else thought right
11:43 < jtanx> hahahaah
11:43 < sam_moore> "Also, which side is the FRONT"
11:43 < jtanx> the case team got blasted this morning
11:43 < sam_moore> Uh oh
11:43 < jtanx> apparentl
11:43 < jtanx> y
11:43 < sam_moore> Then again, we all get blasted every week
11:43 < jtanx> true
11:43 < sam_moore> I think we manage to get the least blasting, but still
11:43 < jtanx> oh yeah
11:44 < jtanx> apparently the report IS individual
11:44 < jtanx> per group
11:44 < jtanx> I'm getting confused
11:44 < sam_moore> Haha
11:44 < jtanx> and it's due next monday???
11:44 < sam_moore> -_-
11:44 < jtanx> confusion over the due date
11:44 < jtanx> adam apparently didn't know, and thought sparkplus would send out the date
11:44 < jtanx> i don't know what sparkplus has got to do with this though
11:45 < sam_moore> How long does it have to be?
11:45 < jtanx> I have no idea
11:45 < sam_moore> Sparkplus is for our peer evaluation
11:45 < jtanx> yeah
11:45 < jtanx> but the relation to report due date?
11:45 < sam_moore> Pretty lazy if you ask me, and I don't care that they might read this (frankly I doubt it) to get the students to mark each other
11:46 < jtanx> Yeah
11:46 < jtanx> urgh
11:46 < jtanx> getting 1045 (access denied) from mysql
11:46 < jtanx> pretty sure I've got the pwd right
11:46 < sam_moore> It might be what happens in the Real World (TM), but this is not some company, this is university, my grades should not depend on someone else
11:47 < sam_moore> Try with `mysql` from the command line and check the password?
11:50 < jtanx> herp derp
11:50 < jtanx> no password
11:53 < jtanx> now that I think about it, it's almost exactly like the django idea, except in php
11:53 < sam_moore> Yep
11:53 < jtanx> when you install it, is there any default login?
11:54 < sam_moore> No; you register an account and that account becomes the admin
11:54 < sam_moore> (of course you can also manually update the database)
11:54 < jtanx> okay
11:54 < sam_moore> You could change the install script to do that
11:54 < jtanx> how are usernames and passwords stored in the db?
11:54 < jtanx> crypt?
11:54 < jtanx> (do you specify the algorithm?)
11:55 < sam_moore> passwords are crypted with SHA6
11:55 < sam_moore> The other stuff is plain text
11:55 < sam_moore> UserCake default is SHA1 or something
11:55 < jtanx> sha6?
11:55 < sam_moore> I changed it to SHA6
11:55 < jtanx> does it use something called pcks
11:55 < jtanx> pcsk2
11:55 < jtanx> pcks2*
11:56 < sam_moore> Wait... by SHA6 I mean "SHA-Whatever-you-get-with-$6$-in-the-salt"
11:56 < sam_moore> Which is actually SHA-512
11:56 < sam_moore> Derp
11:56 < jtanx> hmm
11:57 < sam_moore> I couldn't find any references to security issues with doing it this way, but that doesn't mean there aren't any
11:57 < sam_moore> However there's always going to be some security issues with anything we use
11:57 < jtanx> yeah
11:57 < jtanx> about the stuff in login.c
11:57 < jtanx> you'll definitely want to change tat
11:57 < jtanx> "SELECT password FROM %s WHERE user_name = \"%s\";",
11:58 < jtanx> sql injection right there
11:58 < sam_moore> I know
11:58 < sam_moore> That's why Login_Handler removes all non alpha-numeric characters from the user name
11:58 < jtanx> the password?
11:58 < sam_moore> The password isn't part of the MySQL query
11:58 < sam_moore> Only the user name
11:58 < jtanx> oh right
11:58 < sam_moore> So the password can contain any characters
11:59 < jtanx> yeah
11:59 < jtanx> I know with sqlite you can use placeholders
11:59 < jtanx> then you 'bind' stuff to those placeholders
11:59 < sam_moore> I think you can with MySQL too
11:59 < jtanx> probably
11:59 < sam_moore> Feel free to change it if you want, I figured it was safe if username was already checked for bad characters
12:00 < jtanx> yep
12:03 < jtanx> Pneumatics and electronics wants to test the system this wednesday, starting from 10am
12:03 < sam_moore> That provides a convenient reason to not work on ENSC1001
12:03 < sam_moore> So I'll be there
12:03 < jtanx> Hahaha
12:08 < jtanx> nneded php5-gd
12:08 < jtanx> these username/password restrictions are attrocious
12:57 < sam_moore> The UserCake ones?
12:57 < jtanx> yeah
12:57 < sam_moore> Also, sorry I'll be late today
12:57 < jtanx> that's ok
12:58 < sam_moore> We're getting there...
12:59 < sam_moore> The question is, do they want a finished project, or do they want a report on an unfinished project
12:59 < jtanx> hahaha
12:59 < sam_moore> Because we'll have to devote a lot of time to the report
12:59 < jtanx> yes
13:00 < sam_moore> We've looked into every layer of software from linux kernel drivers to databases and human computer interaction...
13:01 < jtanx> o.o
13:01 < sam_moore> I think we can conclude that they are all horrible hacks tied together with shoelaces
13:01 < jtanx> about usercake
13:02 < jtanx> is it just
13:02 < jtanx> you have a set of pages
13:02 < jtanx> and they're either accessible or not
13:02 < jtanx> to the user?
13:02 < sam_moore> Yep, and I know you're thinking we could put the API as one of those pages :P
13:02 < jtanx> haha
13:02 < sam_moore> But I think it's better to keep the API seperate from user management
13:02 < jtanx> didn't think that
13:02 < jtanx> but was just trying to understand usercake
13:02 < sam_moore> Fair enough
13:02 < jtanx> but since everything's in php
13:03 < jtanx> we can do some templating
13:03 < jtanx> instead of hacking it together with javascript
13:03 < sam_moore> Sure
13:03 < sam_moore> The main modification I wanted to make was a page that lets the admin upload a list of users and get rid of the registration page (or restrict it somehow)
13:04 < jtanx> yeah
13:04 < jtanx> but some things are better done in php
13:04 < jtanx> like that whole 'load the sidebar in jaascript' is crap
13:04 < jtanx> and the whole 'if not logged in, redirect the user with javascript' too
13:04 < sam_moore> Feel free to add php to the main gui, it is probably a good choice
13:05 < jtanx> okay
13:05 < jtanx> once I figure out how stuff works
13:05 < sam_moore> I'm just not experienced enough with this sort of web development stuff
13:05 < jtanx> I can probably say it's a learing experience for everyone
13:05 < sam_moore> Yes
13:06 < sam_moore> I am pretty happy with how we've done this, even if it doesn't get finished
13:06 < jtanx> Yeah, it's quite ok
13:06 < sam_moore> I think we made good design choices
13:06 < sam_moore> Probably the best one was when you convinced me to use FastCGI instead of writing a custom HTTP server :P
13:07 < sam_moore> Or we'd be well and truly screwed when all the requirements for security and user management came along
13:07 < jtanx> hahaha
13:07 < jtanx> php
13:07 < jtanx> custom webserver
13:07 < jtanx> well
13:07 < jtanx> it might have worked
13:08 < jtanx> call php5-cli with system
13:08 < jtanx> hahaha
13:08 < sam_moore> I could probably do something like that with enough time
13:08 < sam_moore> But it wouldn't really be worth it
13:14 < jtanx> oh right
13:14 < jtanx> you changed usercake to use crypt
13:15 < jtanx> I'll change the password for the sd card image back to what we used before
13:16 < jtanx> username will be ubuntu though
13:18 < sam_moore> ok
13:18 < jtanx> the internal memory still uses temppwd though
13:20 < jtanx> if we use usercake we'd have to use php throughout the stuff anyway
13:20 < jtanx> unless you want it to be publicly visible
--- Log closed Mon Oct 21 14:11:57 2013
--- Log opened Mon Oct 21 14:40:20 2013
14:40 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
14:40 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
14:40 -!- Irssi: Join to #mctxuwa_softdev was synced in 3 secs
14:43 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
--- Log closed Mon Oct 21 14:49:35 2013
--- Log opened Mon Oct 21 15:08:16 2013
15:08 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
15:08 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
15:08 -!- Irssi: Join to #mctxuwa_softdev was synced in 2 secs
15:17 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:22 -!- jtanx_ [~asfa@130.95.54.13] has joined #mctxuwa_softdev
15:22 -!- jtanx_ is now known as jtanx
15:22 -!- jtanx [~asfa@130.95.54.13] has quit [EOF From client]
18:17 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:36 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
22:14 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
22:57 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Tue Oct 22 2013
09:35 < sam_moore> So... looking at our system diagram, we have "mains electricity" going directly into the BeagleBone
09:35 < sam_moore> That should probably be fixed
09:38 < sam_moore> Dammit isn't there an svg version somewhere
10:06 < sam_moore> Oliver said Adrian's goal was to "teach us a lesson"
10:07 < sam_moore> If the goal is to turn us into cynical bastards, I was already a cynical bastard before this unit, so I fail to see the point
10:07 < sam_moore> ... Talking to myself, excellent sign
10:38 -!- jtanx [825ffcb6@ircip4.mibbit.com] has joined #mctxuwa_softdev
10:39 < sam_moore> Hi Jeremy
10:40 < sam_moore> Are you OK with the section I listed for you?
10:40 < jtanx> Sure, it seems okay
10:41 < jtanx> This is going to be a busy week
10:42 < sam_moore> I basically told my ENSC1001 team that if I have to choose between failing two units, I will choose to fail ENSC1001
10:42 < sam_moore> I am now "that guy"
10:43 < jtanx> Urgh :(
10:44 < sam_moore> The requirements for the diary in terms of software are a bit ridiculous
10:44 < sam_moore> In the 21st century
10:44 < sam_moore> You'd think we could use git
10:44 < sam_moore> As opposed to writing down source code in our diary
10:44 < sam_moore> ... writing down code...
10:44 < sam_moore> By hand
10:44 < jtanx> Yeah, the requirements for this whole unit have been quite a stretch\
10:44 < sam_moore> In a diary
10:44 < sam_moore> What the hell???
10:44 < jtanx> I asked during the meeting if he wanted a printed copy of the code :P
10:45 < sam_moore> One idea I have had that would have been good
10:45 < sam_moore> Is to always make 2 git commits whenever you work on something
10:45 < sam_moore> One when you start
10:45 < sam_moore> And one when you finish
10:45 < jtanx> good idea
10:46 < sam_moore> So, does he want a printed copy of the code?
10:52 < jtanx> nah
10:58 < sam_moore> Damn, that might have been fun to hand in
10:58 < jtanx> We could do it just for shits
10:58 < jtanx> print out the doxygen manual too
10:58 < sam_moore> Hahaha
10:58 < sam_moore> The doxygen manual is probably bigger than the printed source code
10:59 < jtanx> Get a quote from uniprint
10:59 < jtanx> print and bind it
10:59 < sam_moore> Sure
10:59 < sam_moore> It won't help though
10:59 < jtanx> yeah
10:59 < sam_moore> The response to anything that looks like it was a large amount of work
10:59 < sam_moore> is "you overcomplicated it!"
10:59 < jtanx> ~.~
11:02 < jtanx> okay, i'm leaving uni
11:02 -!- jtanx [825ffcb6@ircip4.mibbit.com] has quit ["http://www.mibbit.com ajax IRC Client"]
11:31 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:37 < jtanx> well, I guess now's a good time than any to learn LaTeX
11:39 < sam_moore> Haha
11:39 < sam_moore> You don't have to learn LaTeX
11:39 < sam_moore> It's just, for a 30 page report
11:39 < sam_moore> If I am the one collating it
11:39 < sam_moore> I want to use LaTeX
11:39 < sam_moore> Hang on, I'll submit something in a minute, I got sidetracked looking at flow chart applications
11:41 < jtanx> that's ok
11:41 < jtanx> I've always wanted to learn latex anyway
11:43 < sam_moore> If you're good at programming you can pick up latex pretty easily
11:43 < jtanx> yeah, it doesn't look to bad
11:43 < sam_moore> The scary bit is all the preamble stuff
11:43 < sam_moore> Which you just copy/paste from examples unless you actually want to change something majorly
11:43 < jtanx> haha
11:43 < sam_moore> The rest is just like any markup language, except a bit more verbose
11:44 < sam_moore> I have a nice template structure from my thesis we can use
11:44 < jtanx> Cool
11:57 < sam_moore> https://github.com/szmoore/MCTX3420/tree/report/reports/final
11:58 < sam_moore> Essentially every chapter gets a single .tex file in the chapters directory
11:58 < sam_moore> report.tex determines the formatting and stuff, so the chapter.tex files don't have to have anything other than content
11:58 < jtanx> Okay
11:59 < sam_moore> I'm not sure if it builds under windows easily
11:59 < jtanx> well
11:59 < jtanx> one of the reasons why i hesitated to use latex was because it's something like a few gb to isntall
12:00 < jtanx> it should build under windows fine
12:00 < sam_moore> Ah
12:00 < sam_moore> I think it's worth it
12:00 < jtanx> I have no disk space to install it on my laptop
12:00 < sam_moore> For something of this scale... using a standard word processor...
12:00 < sam_moore> Haha
12:00 < jtanx> but it's installed on my server
12:00 < sam_moore> Just worry about the content, I can make it compile either way
12:00 < jtanx> yeah
12:01 < sam_moore> Also, do you know any good flow chart stuff? Other than omnigraffle which is OSX only
12:01 < jtanx> ms visio
12:01 < jtanx> defacto standard
12:02 < jtanx> never particularly liked it though
12:03 < jtanx> it's free of msdnaa, but of course you need a windows computer...
12:03 < sam_moore> Yeah, that will ruin my productivity
12:04 < sam_moore> I do have windows, but rebooting is not fun, installing windows equivelants of all the software I use under linux is not fun, wine is probably broken, and running my windows operating system off the hard disk as a VM can be done, but gives temperamental results
12:07 < jtanx> hahaha
12:15 < sam_moore> Hmm, I have LibreOffice draw
12:15 < sam_moore> Maybe that doesn't suck
12:16 < jtanx> I hate using Libre/Open*
12:16 < jtanx> never formats properly
12:17 < sam_moore> Yeah... just trying to join two shapes together nicely is taking more than 3 seconds, screw that
12:17 < jtanx> hahaha
12:17 < sam_moore> I'll try this "Dia" thing
12:18 < sam_moore> Oh dear
12:18 < sam_moore> There's "Dia"
12:18 < sam_moore> And "Diagramly"
12:20 < jtanx> what about graphviz
12:28 < sam_moore> giffly looks good
12:28 < jtanx> Any particular name for our server software?
12:28 < sam_moore> Oh god, it needs a name
12:28 < jtanx> I've just been referring to it as 'Server API'
12:28 < sam_moore> Yeah :S
12:29 < sam_moore> I have a friend who didn't name their software and had to give a report on it and the only thing anyone commented on was its lack of name
12:29 < sam_moore> So the next time...
12:30 < jtanx> >.>
12:30 < sam_moore> He said "This part of the software is 'sabertooth' and this part is 'timberwolf'"
12:30 < sam_moore> And they liked it
12:30 < jtanx> Hahaha
12:30 < jtanx> what
12:31 < sam_moore> ...
12:31 < sam_moore> What's the greek god of disaster?
12:31 < sam_moore> Or exploding pressurised vessels
12:32 < sam_moore> Demeter, goddess of failure...
12:33 < sam_moore> Just stick with Server API for now
12:35 < sam_moore> I think I'll use gliffy even though it requires me to sell my soul to whatever company owns it
12:35 < sam_moore> Can't be worse than facebook
12:35 < jtanx> ._.
12:35 < jtanx> fair enough
12:36 < sam_moore> For a "vector graphics" editor, "dia" just looks horrible
12:36 < sam_moore> The lines don't alias properly at all
12:36 < jtanx> does it generate svg output
12:37 < sam_moore> gliffy does and I'm not looking back :P
12:37 < jtanx> hahaha
12:42 < sam_moore> gliffy is really nice
12:42 < jtanx> which flow chart are you doing
12:42 < sam_moore> At the moment, the sensors thread
12:43 < jtanx> Okay
12:43 < jtanx> ahh
12:43 < jtanx> gliffy would have been handy for uml crap I had to do
12:46 < sam_moore> If you want to start with flow charts, try and do one for how ajax goes from the client and then data comes back through the labyrinth of FastCGI calls :P
12:47 < sam_moore> I have a feeling they will consider flow charts to be "documentation" and not "report" though :S
12:47 < jtanx> We can put it in the report
12:47 < jtanx> then write about it
12:47 < sam_moore> Haha
12:47 < sam_moore> I actually have some results from experiments which they keep going on about in the marking key
12:48 < sam_moore> I'm not sure what we can do for the results of tests from the GUI
12:48 < jtanx> yeah
12:48 < sam_moore> At one point I had a graph in flot that was plotting the time it took to update the graph in flot
12:48 < sam_moore> But I never saved it
12:48 < jtanx> o.O
12:49 < sam_moore> Something that might be nice is a cachegrind profile
12:49 < sam_moore> Whenever I do a report on software I try and profile it somehow
12:49 < sam_moore> Anyway... the focus has shifted from "make the system work" to "write a report"
12:49 < jtanx> Yeah
12:50 < sam_moore> So we're pretty much just going to leave the system in an almost finished state, but since it would take someone a few weeks to learn it, they'll just start again...
12:50 < sam_moore> and fail in all the same ways next year :(
12:50 < jtanx> Hahahaha, of course
13:48 < sam_moore> This flow chart stuff is really annoying
13:48 < sam_moore> How much detail needs to be included
13:48 < sam_moore> Argh
13:48 < jtanx> I just made one in visio
13:48 < jtanx> high level crap
13:49 < jtanx> but still annoying to make
13:49 < jtanx> I was hoping to make the flow chart
13:49 < jtanx> then comment on that
13:49 < jtanx> in the text
13:49 < sam_moore> Ok
13:50 < jtanx> Do you think something like this is ok?http://i.imgur.com/acNVXME.png
13:52 < sam_moore> That looks good
13:52 < sam_moore> It's completely inconsistent with what my sensor flow chart looks like visually though
13:52 < jtanx> :S
13:53 < sam_moore> Should we try make them all look the same, or not bother?
13:53 < jtanx> Hmm
13:53 < sam_moore> I'm not sure if this works; can you access it like this: https://www.gliffy.com/go/html5/5007621?app=1b5094b0-6042-11e2-bcfd-0800200c9a66
13:53 < jtanx> I have to login
13:54 < jtanx> presumably your login
13:54 < sam_moore> Yeah, ok, I'll just put it under figures
13:55 < sam_moore> https://github.com/szmoore/MCTX3420/blob/report/reports/final/figures/sensor_thread.png
13:57 < jtanx> Nice
14:00 < sam_moore> Whatever, don't worry about consistency, just make the charts
14:00 < jtanx> If we get time, maybe then
14:24 < sam_moore> We don't have time, I just spent 6 hours making one diagram :S
14:24 < sam_moore> Ok, only 4.5 hours so far, but still
14:24 < jtanx> :S
14:24 < jtanx> I've spent what, 30 mins deciding how to write this one paragraph
14:25 < jtanx> This is ridiculous
14:25 < sam_moore> Were you there when Oliver said that Adrian's goal with this unit was to punish us?
14:25 < jtanx> Hahaha
14:25 < jtanx> Nah I wasn't there
14:26 < sam_moore> The whole point is apparently to make us realise that we need a project manager
14:26 < sam_moore> Something that I'm pretty sure I could work out for myself thankyou very much
14:26 < jtanx> >.o
14:29 < sam_moore> I've pushed some sort of report layout thing
14:32 < sam_moore> It looks like most of the marks are on the "Approach" section
14:32 < sam_moore> Which reminds me, I need to finish adding up my hours...
14:33 < sam_moore> For cost calculation we could go "We have an average of X lines per day. According to James Trevelyn, the metric is 15 lines per day. Assuming this means 8 hours full time work at $150 an hour... we need this much money."
14:34 < jtanx> Yeah
16:09 < sam_moore> Ok, I'm starting to get the hang of this
16:09 < sam_moore> If I just don't sleep for the next week
16:09 < sam_moore> We'll be fine
16:09 < jtanx> :S
16:10 < sam_moore> Dammit are we still testing this system on Wednesday?
16:10 < jtanx> I think so
16:10 < jtanx> I'm trying to push out as much of this as possible today, but I'm not getting that far...
16:10 < sam_moore> Ok, it should be fine, we just need some minor changes
16:10 < sam_moore> Like... actually putting all the sensors/actuators in the software...
16:10 < sam_moore> All the logic to control them is there though
16:10 < jtanx> Yeah, maybe...
16:11 < sam_moore> Don't worry about shit like the microphone in the graph page; the data can be recorded and downloaded, that's good enough for it
16:11 < jtanx> Yep
16:12 < jtanx> I don't particularly see the use of the microphone anyway
16:12 < sam_moore> I don't know either
16:13 < sam_moore> I realised that doing something like PID control with the current sensor/actuator logic would be a pain...
16:13 < jtanx> Will we need pid control?
16:14 < sam_moore> I don't think so
16:14 < jtanx> I hope not
16:14 < sam_moore> Well... not if the pressure regulator is good
16:14 < jtanx> Here's to hoping
16:14 < jtanx> (and if electronics gets their PWM-to-analogue thing going)
16:15 < sam_moore> At least it's sort of possible to make PID control work, if you can identify the sensor somehow in Actuator_Loop and then just look at (sensor->current_data.value)/(sensor->points_read)
16:15 < sam_moore> (Because I was lazy and reused current_data to store the sum of the points read before averaging, rather than the actual most recent point)
16:16 < sam_moore> ergh, we'll fix that if it needs fixing anyway
16:23 < sam_moore> Actually, if the goal is just to plot pressure vs strain, we don't care exactly what the pressure regulator is *supposed* to be... we just blindly increase it and then plot the strain vs an actual pressure sensor instead
16:24 < jtanx> That's true
16:26 < sam_moore> I wonder how harsh they will be on the "you must have designed the system completely before you implement it"
16:26 < sam_moore> Do we have to determine what every line of code is going to be before we write them?
16:27 < jtanx> Well there's no way that can be the case
16:28 < jtanx> If that were the case i think we'd still be stuck trying to write the basics
16:28 < sam_moore> At a high level our design is still exactly what is on that block diagram from ages ago
16:28 < sam_moore> At a lower level... it's been through a few changes
16:53 < sam_moore> ... I'm at 13 pages, but a lot of them are blank
16:55 < jtanx> Ideally it should be ~5 pages/person since there's 6 people...
16:55 < jtanx> How it actually turns out, well...
16:57 < sam_moore> Well
16:57 < sam_moore> One flow chart == 1 page...
16:57 < sam_moore> I'm pretty sure I need to make at least 3 flow charts...
16:57 < jtanx> Hahaha
16:58 < sam_moore> Hmmm, could we hand in 29 pages of flow chart and 1 page of text...
16:58 < sam_moore> The "teamwork" process could be a fun flowchart to make
16:58 < sam_moore> Put lots of skull and crossbones on it
16:58 < jtanx> :P
16:59 < sam_moore> I'm pretty sure if you just count the figures I wanted to include that would make more than 5 pages
16:59 < sam_moore> Perhaps this is achievable then
17:00 < sam_moore> At least, getting 30 pages is achievable, not sure about meeting the marking criteria
17:00 < jtanx> Yeah
17:09 < jtanx> I'm at about 2 pages, and I've barely even started on explaining anything
17:09 < jtanx> just reasoning why we chose what we chose
17:28 < jtanx> "So Adrian just made an LMS announcement and the report is now due on Friday Week 13 (5pm), which is slightly more reasonable."
17:28 < jtanx> (Justin just emailed)
17:56 < sam_moore> I wonder if James' refreshing new GUI will be ready to show off by Tuesday
17:56 < jtanx> Hehe
17:57 < jtanx> Hopefully
17:58 < sam_moore> LMS has two reports...
17:58 < sam_moore> "Individual Report" and "Final Report"
17:58 < jtanx> really
17:58 < jtanx> why
17:59 < sam_moore> Maybe the individual report is for the peer assessment mark?
17:59 < jtanx> ah
17:59 < jtanx> the marks on lms are depressing me
18:00 < sam_moore> The progress report marks?
18:00 < sam_moore> They are pretty depressing
18:00 < jtanx> the quiz marks and soldering lab
18:00 < sam_moore> Oh those
18:00 < sam_moore> They are even more depressing
18:01 < sam_moore> Wait, this maths doesn't make sense
18:01 < sam_moore> The meetings are worth 52/1010
18:01 < sam_moore> The tutorials are worth 808
18:01 < sam_moore> The soldering video is 100
18:01 < jtanx> it's lms being screwy
18:01 < sam_moore> And our final report is worth 23?
18:02 < jtanx> the quiz marks and tutorial is marked outof 100%
18:02 < jtanx> I don't know what the others are marked out of
18:02 < jtanx> (well tutes out of 4)
18:11 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
19:16 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:20 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
20:22 -!- jtanx_ [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:22 -!- jtanx_ is now known as jtanx
21:14 < sam_moore> I just did a test that I probably should have done ages ago, but it confirms my assertion that C is much better (at least in terms of performance) for multithreaded stuff than python
21:14 < jtanx> well yeah
21:14 < jtanx> but then how much performance do you require
21:14 < sam_moore> All the performance
21:15 < jtanx> :P
21:15 < sam_moore> At the fastest possible sampling rate, python is up around 0.01s in terms of the standard deviation of the distribution you get
21:15 < sam_moore> So that's pretty bad
21:18 < sam_moore> That's on a multicore processor actually
21:18 < sam_moore> I guess I could repeat the test on the actual beaglebone, but I think the graph proves the point
21:20 < sam_moore> ... Anyway, they said they wanted results of tests and things... so that's a test we can put in if we need to.
21:21 < jtanx> Yeah
21:24 < jtanx> https://github.com/niklasvh/html2canvas
21:25 < jtanx> oh that's cool
21:41 < sam_moore> Your section of the report is really good
21:41 < jtanx> Really?
21:41 < jtanx> I thought it was really wishy washy
21:41 < sam_moore> Well it justifies the design choice pretty well
21:42 < jtanx> Thanks
21:42 < sam_moore> At one point people were seriously discussing using things other than HTTP
21:43 < jtanx> What could we have used
21:43 < jtanx> designed our own protocol?
21:43 < sam_moore> Yeah, which would have sucked, that's what I had to explain
21:44 < jtanx> Yeah
21:44 < sam_moore> It was something along the lines of "why do we need to do all this complicated web stuff, can't we just have one device talking to another device over some kind of serial cable"
21:44 < jtanx> I could imagine the heartache involved in trying to use some custom protocol
21:44 < jtanx> hahaha
21:44 < sam_moore> In the first place... you then have to build two custom devices as well as write a custom protocol...
21:46 < jtanx> Yeah
21:46 < sam_moore> We did need a raspberry pi or beaglebone, whether or not using an arduino as well for low level stuff would be better I'm not sure
21:47 < jtanx> Hmm
21:47 < sam_moore> I don't think it would have been worth the effort needed to get the RPi/BBB to talk to the arduino
21:47 < jtanx> An arduino may have been better for all the gpio/adc stuff I guess
21:47 < jtanx> but yeah
21:47 < jtanx> the communication between the device and the arduino
21:48 < sam_moore> Well you'd have a request coming in via HTTP, and then that would have to be sent over USB to the arduino to do the appropriate hardware control
21:48 < sam_moore> Which would probably make it difficult to make the sensors/actuators independent of the client
21:49 < jtanx> Well, there's also the option of i2c
21:49 < jtanx> but yes
21:49 < jtanx> an extra layer of communication
21:49 < jtanx> :/
21:49 < sam_moore> Either way, you have to store the data somehow... and you don't want it to be dependent on the client request...
21:50 < sam_moore> The more I think about it, the less I like it...
21:51 < sam_moore> So I'm glad we went with the BeagleBone even though it's gpio/adc/pwm control is terrible
21:51 < jtanx> Hahaha
21:51 < jtanx> love/hate relationship with the bbb
21:52 < sam_moore> You'd need to have interrupt handlers and some kind of synchronisation going on
21:52 < sam_moore> You still need mutexes and conditionals with threads, but it's a lot easier
21:53 < sam_moore> ... and we'd still need the multithreaded stuff anyway, because we'd still have sensors on the actual RPi/BBB to deal with
21:53 < sam_moore> Yep, it would have been worse
21:53 < jtanx> Yeah
21:54 < sam_moore> We should definitely note this in the report somewhere
21:55 < jtanx> Yeah
21:55 < jtanx> Help justify why we agreed to the bbb
21:55 < sam_moore> Well we did sort of agree to it because of that
21:55 < sam_moore> It was partly "Hmm, we only have to write code for one device"
21:56 < sam_moore> And partly because electronics wanted it to avoid having to build the extra hardware
21:56 < sam_moore> And partly because if electronics wanted it then we wouldn't have to write our own BOM and order things :P
21:56 < jtanx> :P
22:18 < jtanx> MySQL Database BLARGH
22:18 < jtanx> hehe
22:21 < sam_moore> Do my thread flow charts make sense?
22:22 < sam_moore> It's hard to know objectively
22:22 < sam_moore> But I suspect looking at them for too long may cause the brain to shut down
22:24 < sam_moore> Dammit, I can't remember if tomorrow is supposed to be some important assessment thing for ENSC1001 or not
22:24 < jtanx> o.o
22:24 < jtanx> I'm still trying to familiarise myself with the meaning of all the flow chart symbols
22:24 < jtanx> but it seems okay
22:24 < jtanx> don't you have to give a presentation or something for ensc1001
22:25 < sam_moore> Yeah, but it's alright, that's next week
22:25 < sam_moore> All the things are due next week
22:26 < sam_moore> That's all that matters to me right now, because I want to sleep
22:26 < jtanx> :S
22:26 < sam_moore> Next Tuesday I will hate myself for sleeping this Tuesday
22:26 < sam_moore> But Sam from next Tuesday is a jerk anyway
22:26 < sam_moore> I never liked that guy
22:26 < jtanx> Hey, sleep is important
22:27 < jtanx> One thing about the flow charts, doesn't fatal just call exit(), so no deinitialisation happens
22:27 < sam_moore> Um, sort of
22:27 < sam_moore> But when the program exits, Cleanup gets called
22:27 < sam_moore> Which calls the deinitialisation functions
22:27 < jtanx> When did that get enabled
22:28 < sam_moore> Cleanup has been there for ages
22:28 < sam_moore> It's just been empty most of the time
22:28 < jtanx> Ah
22:28 < sam_moore> Although, I'm not sure if calling exit() is the best way to do it when you have multiple threads
22:28 < jtanx> Meh
22:28 < jtanx> when you have a fatal situation
22:29 < sam_moore> Software isn't going to help?
22:29 < jtanx> no
22:29 < sam_moore> I was planning on having exit called with different error codes
22:29 < jtanx> but what can you do with that
22:30 < sam_moore> You can restart the server using run.sh
22:30 < jtanx> but with the different error codes?
22:30 < sam_moore> Or you can start a quick and dirty program that will make sure everything's deinitialised
22:30 < jtanx> Ah
22:30 < jtanx> I guess that could work
22:30 < sam_moore> One error code for "really bad thing happened, we're going to die"
22:30 < sam_moore> And one for "Something dumb happened, restart the server"
22:31 < jtanx> About the graphs changing colours
22:31 < jtanx> is it okay to just add a legend
22:31 < sam_moore> It is OK to do whatever is the minimal work for the maximum reward
22:31 < jtanx> hahaha
22:31 < jtanx> well
22:32 < jtanx> it was really easy to add the legend
22:32 < sam_moore> Good, problem solved
22:32 < jtanx> :P
22:33 < jtanx> For the actuators
22:33 < jtanx> did you remove that fatal call
22:33 < jtanx> when the value was not safe?
22:33 < sam_moore> I think I did
22:33 < jtanx> Okay
22:33 < sam_moore> It reports an error and doesn't set the actuator
22:33 < sam_moore> And in theory it cancels the remaining steps
22:33 < jtanx> That's good
22:33 < sam_moore> Meaning the actuator just stays at the last safe value
22:35 < sam_moore> Ah, it doesn't cancel the steps, but that can be easily changed
22:35 < sam_moore> But currently it would just continually report the error until all the steps were finished
22:36 < jtanx> either way's fine
22:37 < jtanx> what's the default sample rate
22:38 < sam_moore> It used to be 1s
22:38 < jtanx> it's just that overnight it's generating about 2G of data
22:38 < jtanx> which doesn't sound like 1s
22:39 < sam_moore> Then it most likely isn't anymore
22:39 < sam_moore> Nope, it's now 1e-4 seconds
22:39 < sam_moore> Changed for the microphone test
22:39 < jtanx> ahh
22:40 < sam_moore> Should probably make the starting sample rate an argument to Sensor_Add
22:40 < jtanx> I was wondering why it was consuming 30% cpu on idle
22:40 < jtanx> ls
22:40 < sam_moore> Ergh, if the microphone is running with everything else, it will generate a lot of data
22:41 < jtanx> Yeah
22:41 < sam_moore> Fortunately I added averaging
22:41 < sam_moore> And apparently they just want an average from the microphone
22:41 < sam_moore> Or a "level"
22:41 < sam_moore> Or something
22:41 < jtanx> oO
22:42 < sam_moore> We'll just have the microphone sample at 1e-6 and have 1e6 averages per point
22:42 < sam_moore> (ie: 1 point gets recorded every second)
22:46 < sam_moore> Hmm, or you could make the microphone's ReadFn only succeed if the last pressure reading is higher than a certain value
22:46 < sam_moore> But that's getting complicated
22:49 < sam_moore> Good night anyway
22:52 < jtanx> Okay
22:53 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
23:01 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
23:55 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Wed Oct 23 2013
19:30 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:01 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Thu Oct 24 2013
07:42 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:21 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
14:16 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:36 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:47 < jtanx> Hey
15:45 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Connection reset by peer]
15:47 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:27 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [EOF From client]
17:51 < jtanx> huh
17:51 < jtanx> it was surprisingly easy to add post support
17:56 < sam_moore> That's cool
17:56 < jtanx> you just fgets from stdin instead
17:56 < jtanx> it's in the same format too
17:56 < sam_moore> Excellent
17:57 < jtanx> we probably do have to unescape html strings though
17:57 < jtanx> like if someone had a comma in their password
17:57 < sam_moore> If we had a progress report we could put "potential gaping security leak plugged"
17:57 < jtanx> Hahaha
17:57 < jtanx> but it still allows the get request version
17:57 < sam_moore> Oh well
17:57 < jtanx> but then that's your own fault
17:57 < sam_moore> Yep
17:59 < sam_moore> Doesn't look like the IRC channel will get a mention in the "communication" section of the report :(
17:59 < sam_moore> Oh no wait, it does
17:59 < sam_moore> Good
17:59 < sam_moore> ... That "overall schedule"...
17:59 < jtanx> Haha
17:59 < sam_moore> I started it, and quickly realised it was a waste of time
18:01 < sam_moore> Also, need to hate on the beaglebone less
18:01 < sam_moore> Otherwise they might try and do something stupid like replace it next year
18:01 < jtanx> That would be stupid
18:01 < sam_moore> Yeah, it was a pain, but probably still one of the best things to use
18:02 < sam_moore> RPi with dedicated ADC/DAC modules would probably have been best
18:02 < sam_moore> Distributed system of arduinos.... noooo
18:02 < jtanx> Yeah
18:02 < jtanx> RPi with ADC/DAC would have been cool
18:02 < jtanx> but only because there's more support for the RPi
18:02 < sam_moore> Yes
19:19 < jtanx> hmm
19:20 < jtanx> maybe I should enable POST only for the login module?
19:20 < jtanx> Right now, if POST and GET data is received, the GET data is discarded in place of the POST data
19:28 < jtanx> Yeah, okay I only enabled it for login
22:38 < jtanx> Hahahahaha
22:39 < jtanx> I passed our code through ohloh - https://www.ohloh.net/p/MCTX3420
22:39 < jtanx> Apparently it's work 3 years of effort, and is valued at $150k
22:49 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Fri Oct 25 2013
08:48 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:50 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
09:56 < sam_moore> Um... we didn't make our first commit in 200
09:56 < sam_moore> * 2000
09:56 < sam_moore> 10 developers???
09:57 < sam_moore> There are 6 of us
09:57 < sam_moore> And some people contributed about 2 lines of source code...
09:57 < sam_moore> Mostly written in JavaScript
09:57 < sam_moore> Really?
09:57 < sam_moore> Is that counting the jQuery UI guff?
09:58 < sam_moore> That's annoying, because the C part of the project is like 50% comment lines
09:58 < sam_moore> And it says "low number of comments" based on the JavaScript :S
09:59 < sam_moore> Still... this is really cool
10:00 < jtanx> hahaha
10:00 < jtanx> the 2000 commit was because we made commits on the bbb
10:00 < sam_moore> ok...
10:00 < jtanx> but it lacks an rtc
10:00 < sam_moore> Where do we get the extra 4 developers from?
10:00 < sam_moore> "Debian" is one
10:00 < jtanx> and for some reason the time didn't get updated
10:01 < jtanx> umm
10:01 < jtanx> hmm
10:01 < jtanx> Ubuntu user?
10:01 < sam_moore> Oh, "Callum" and "Callum-" are treated seperately -_-
10:01 < jtanx> oh
10:01 < sam_moore> That's still only 8
10:02 < jtanx> the results are a bit skewed
10:02 < jtanx> because a lot of the javascript is just from other libraries
10:02 < jtanx> well at least i think so
10:04 < sam_moore> Yeah
10:05 < sam_moore> Is it easy to just pass a subset of the code through?
10:08 < jtanx> Yep - you have to set what's ignored
10:08 < jtanx> I've just set it to ignore all *.min.js files (essentially all external js files)
10:08 < jtanx> But it won't get updated for a while
10:09 < jtanx> I've got to go for ~ 2 hrs
10:10 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
10:12 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:46 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:42 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
20:44 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:20 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:36 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
23:39 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Sat Oct 26 2013
08:43 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:22 -!- justin_kruger [~justinkru@CPE-60-230-240-161.lnse1.wel.bigpond.net.au] has joined #mctxuwa_softdev
09:23 -!- justin_kruger [~justinkru@CPE-60-230-240-161.lnse1.wel.bigpond.net.au] has quit [EOF From client]
09:27 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
09:38 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:42 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
15:00 -!- Callum [~Callum@106-68-161-33.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:10 < Callum> just finished the code to get the edge. atm it just returns the position on their object. was thinking we'd just use the timestamp and go this was the additional width at this time, additional width at time +1, so rate of change is 2*difference etc
15:11 < Callum> also pushing 3 images to testing (actually i should go abck and push original too) but to show it blurred, after canny and with the found edge imposed over it (without w.e values i had set at the time..)
15:15 < jtanx> Nice
15:16 < Callum> ok merged
15:17 < Callum> i might need some help merging this into the server code too
15:18 < Callum> just to make sure its all good
15:34 < jtanx> Sure
15:34 < jtanx> I'm really busy right now though with this other crappy project that I have to do
15:35 < jtanx> If not today, then maybe during tomorrow's meeting (if we're having a meeting then?)
15:37 -!- Callum [~Callum@106-68-161-33.dyn.iinet.net.au] has left #mctxuwa_softdev []
15:38 -!- Callum [~chatzilla@106-68-161-33.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:55 -!- Callum [~chatzilla@106-68-161-33.dyn.iinet.net.au] has quit [Ping timeout]
16:06 -!- Callum [~chatzilla@106-68-161-33.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:07 < Callum> we were meeting tomorrow? also i have an assignment due monday i havent started. was going to try and work through that and work on another project i have due..as well as this
16:07 < Callum> still need to start my writeup for this.
16:40 < Callum> also, if the image is completely black, the read function should return false (havent yet tested this but it should be the case)
16:53 < Callum> also looking at justins diagram, why isnt the microscope not included?
16:54 < Callum> or is it just both under "camera"
17:01 < jtanx> Yeah
17:01 < jtanx> I think it's just under "camera"
17:02 < Callum> ok.
17:02 < jtanx> I dunno, I thought we should try to meet some time next week
17:02 < jtanx> monday's our usual meeting time
17:02 < Callum> you said tomorrow though didnt you?
17:03 < jtanx> Ohh
17:03 < jtanx> sorry
17:03 < jtanx> my bad
17:03 < jtanx> I meant monday
17:03 < Callum> was going to say, my body clock so out of wack its sunday already?
17:03 < Callum> yea. if i can get the assignment done tomorrow il be happy to spend most oif the day trying to finish some of this off
17:03 < jtanx> Haha mine is
17:03 < Callum> to be fair, i normally work saturdays
17:03 < Callum> i took it off to do work.
17:04 < jtanx> :/
17:04 < Callum> so it should feel like a sunday
17:04 < jtanx> I had this assignment where I thought I had completed it, but when I reread the specs I found out that I missed a large portion of it
17:05 < Callum> ouch
17:05 < Callum> what assignment was this for?
17:05 < jtanx> cits3242
17:05 < jtanx> some programming unit
17:05 < Callum> figured by the cits. :p
17:05 < jtanx> hehe
17:06 < jtanx> yeah, if it wasn't for that i'd be solely working on this project right now
17:07 < Callum> yea iv kind of been working on 3 or 4 things all at once. and not gotten far in anything.
17:07 < jtanx> yeah, it's always crap when things are due at the same time
17:08 < jtanx> but 3-4 things at once? that's harsh
17:12 < Callum> umm. assignment due tomorrow i havent started. i have anoither group project but we only really have 2 members and wev barely done anything (due friday, meant to have 4/5 members)
17:12 < Callum> physics assignment also due on friday
17:12 < Callum> just trying to figure out how to get it all done
17:13 < Callum> not going to be a fun week. then after this weeks over its major catchup in the 3 units i have exams for
17:13 < Callum> oh and this tute adrian decided to give us...should probably look at that some time too
17:16 < Callum> whats the model for the microscope? cant find anything in dropbox
17:22 < Callum> they are using the microscope only on the non-exploding one im assuming?
17:23 < jtanx> Yeah
17:23 < jtanx> the microscope
17:23 < jtanx> it's a kaiser baas something
17:23 < jtanx> KBA03030
17:24 < Callum> thanks
17:57 -!- Callum [~chatzilla@106-68-161-33.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
22:04 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:31 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has left #mctxuwa_softdev []
--- Day changed Sun Oct 27 2013
07:59 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:46 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
15:08 < sam_moore> Blergh, what are we going to put in the "Results" part of this report?
15:09 < sam_moore> "We plugged it all in and it didn't explode" ?
15:13 < sam_moore> Also it looks like gliffy only lets you export one svg on the trial account
15:14 < sam_moore> And if the image isn't exactly A4 size, pdf is terrible
15:14 < sam_moore> So the remainder of my figures will be png
15:20 < sam_moore> Do we need to find references for all these things that we worked out and/or already knew ourselves...
15:20 < jtanx> haha
15:21 < sam_moore> I feel like referencing git commits
15:21 < jtanx> Yeah I was going to do that
15:21 < sam_moore> We should do that
15:21 < jtanx> results
15:21 < jtanx> it seems to work
15:21 < sam_moore> ...
15:21 < sam_moore> I put in a "Customer Satisfaction" section under results
15:22 < jtanx> :P
15:22 < sam_moore> It says "No matter what we did, the customer was not satisfied"
15:22 < sam_moore> Next year they'll probably be told the beaglebone is stupid and start doing it all on an arduino
15:22 < jtanx> mm probably
15:22 < sam_moore> And then get told that it needs a user management system...
15:23 < jtanx> hahahaha
15:23 < sam_moore> I'm having trouble with what level of assumptions I should make about the reader's knowledge
15:23 < sam_moore> Do they know what a thread is?
15:24 < sam_moore> Do they know what "high level" and "low level" mean
15:24 < jtanx> Thats... what I was having difficulty with too
15:24 < sam_moore> Do they know what a kernel is?
15:24 < jtanx> how far back do you have to explain terminology
15:24 < sam_moore> Or context switching...
15:24 < sam_moore> Argh
15:24 < jtanx> write a treatise on multithreaded computing
15:24 < sam_moore> :S
15:24 < sam_moore> This is rather simple multithreaded stuff really
15:26 < sam_moore> I think we need a "terminology" section
15:27 < jtanx> THat would be good
15:30 < jtanx> oh yeah
15:30 < jtanx> we should be able to use commas again
15:30 < jtanx> for that actuator step thing
15:30 < jtanx> because it decodes the string first
15:31 < jtanx> not sure if that will introduce any security issues though
15:32 < sam_moore> Who cares, ship it
15:33 < sam_moore> But I don't think so?
15:33 < jtanx> :P
15:33 < jtanx> maybe
15:33 < jtanx> I dunno
15:33 < sam_moore> sscanf can at most read to the end of the string
15:34 < jtanx> since it decodes %hh to the hex value
15:34 < jtanx> I mean if you give it a url encoded string
15:34 < jtanx> with %01
15:34 < jtanx> it would change that to the character 0x01
15:34 < jtanx> which is like some control code
15:34 < sam_moore> Hmm
15:34 < jtanx> we could limit it so anything less than 0x20 is a space
15:34 < sam_moore> Just do that then
15:35 < jtanx> but it's probably important to url decode strings
15:35 < jtanx> what if someone had a , in their password
15:35 < jtanx> or weird characters
15:35 < sam_moore> God dammit
15:35 < sam_moore> call isprint() ?
15:35 < jtanx> nah I mean
15:36 < jtanx> it should be fine if we convert anything < 0x20 to a space
15:36 < jtanx> but it's better that we're url decoding stuff
15:36 < sam_moore> Ok
15:36 < jtanx> because if we didn't, the password string would be like %2d instead of -
15:36 < jtanx> for example
15:36 < sam_moore> Yeah, that would suck
15:37 < sam_moore> Do you think Rowan and/or James will write their parts of the report?
15:37 < jtanx> Maybe, I dunno
15:38 < jtanx> Rowan was trying to copy the wiki, which was written mostly by Justin?
15:38 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:38 < sam_moore> Yeah, that's not really cool
15:38 < jtanx> :/
15:38 < sam_moore> I don't think there's much that can be just put into the report from the wiki anyway
15:38 < sam_moore> It's too informal
15:38 < sam_moore> And has a lot of "TODO: Fill this in" pages
15:38 < jtanx> Yeah, they're counted separately anyway
15:39 < jtanx> as in, there's a specific mark for wiki pages
15:39 < sam_moore> Oh dear
15:39 < jtanx> (or equivalent documentation afaik)
15:39 < sam_moore> Every area there's a mark for is just another area they can deduct marks for not liking
15:39 < jtanx> Yeah, I'm not liking it very much
15:40 < sam_moore> Are we supposed to talk about the other subsystems or focus on our own?
15:40 < jtanx> I'm hoping to focus on our own really
15:40 < jtanx> but I guess there would be overlap
15:48 < jtanx> did you see the microscope stuff that callum did
16:00 < sam_moore> I glanced at it
16:00 < sam_moore> It's in the main directory not sensors/
16:01 < sam_moore> Does it work?
16:01 < jtanx> well from the test pictures it looks quite good
16:01 < jtanx> not sure how well it will work with the real thing
16:02 < sam_moore> Hahaha
16:02 < sam_moore> If it works with what we were given, good enough
16:02 < jtanx> Yep
16:03 < sam_moore> We seem to end up having to actually implement all of sensors things
16:03 < sam_moore> I guess I will add the calibration in at some point before Tuesday
16:04 < jtanx> :/
16:04 < sam_moore> It shouldn't be that hard, I've done it before
16:04 < sam_moore> Convert raw value to nearest two indexes in an array
16:04 < sam_moore> Interpolate between those two indexes
16:05 < sam_moore> I think for the Microphone there's 1024 points because he tested it with a 10 bit ADC somehow
16:05 < sam_moore> For other things...
16:05 < sam_moore> There are 10 points
16:05 < jtanx> 1024 points
16:05 < jtanx> wait what
16:06 < sam_moore> 1 point per ADC value
16:06 < sam_moore> As in, I was sent a lookup table of ADC value -> dB level
16:06 < jtanx> oh right
16:06 < jtanx> yeah
16:06 < jtanx> he was testing it on an arduino
16:06 < jtanx> was the arduino calibrated properly
16:07 < sam_moore> Lalala not listening...
16:07 < jtanx> :P
16:07 < sam_moore> Oh, it loks like I only have 20 points anyway
16:09 < sam_moore> This calibration does assume that electronics uses exactly the same voltage divider that sensors guy used
16:09 < jtanx> it's probably close enough
16:09 < sam_moore> Well maybe
16:09 < sam_moore> Just trusting the data sheet is probably close enough
16:10 < sam_moore> I'm not sure I see the point in calibrating a device if you don't actually use the final setup to calibrate it...
16:10 < jtanx> Yeah, true
16:22 < sam_moore> Is the use of '*' in pointer names a "standard"... I always thought it was... how you made a variable a pointer
16:22 < jtanx> Oh yeah that
16:31 < sam_moore> God dammit I have no motivation left to do anything
16:32 < jtanx> urgh
16:32 -!- jtanx changed the topic of #mctxuwa_softdev to: :(
16:34 < sam_moore> Should I put your part of the report into tex?
16:34 < jtanx> Yeah, I guess
16:34 < sam_moore> I think if I put your part and Justin's part combined with my hopelessly incomplete part...
16:34 < sam_moore> we will actually have too many pages
16:34 < jtanx> :/
16:34 < jtanx> was there a hard limit?
16:35 < jtanx> I probably need to cut down my section, too much rambling
16:36 < sam_moore> I think it's fine
16:37 < jtanx> I dunno
16:37 < jtanx> I have the feeling I'm not following the guidelines correctly on what I'm supposed to talk about
16:37 < sam_moore> We can't win either way
16:37 < jtanx> Yeah, like where am I meant to find the references for half the stuff I did
16:38 < sam_moore> Surely James Trevelyn would have got a few papers out of his Telelabs thing?
16:39 < sam_moore> I'll leave it for now
16:39 < jtanx> Okay
16:41 < sam_moore> My section will be great when I actually include all those figures I refer to...
19:33 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
21:26 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:24 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["it has been segmented"]
--- Day changed Mon Oct 28 2013
08:20 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:10 -!- jtanx_ [6a445d5d@ircip1.mibbit.com] has joined #mctxuwa_softdev
09:13 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
09:13 -!- jtanx_ is now known as jtanx
09:17 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
10:04 -!- jtanx [6a445d5d@ircip1.mibbit.com] has quit ["http://www.mibbit.com ajax IRC Client"]
13:02 -!- jtanx [~asfa@130.95.51.228] has joined #mctxuwa_softdev
13:02 < jtanx> damn, forgot to connect back my server
13:21 -!- jtanx [~asfa@130.95.51.228] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
14:17 -!- jtanx [~asfa@130.95.117.148] has joined #mctxuwa_softdev
15:38 -!- jtanx [~asfa@130.95.117.148] has quit [Ping timeout]
17:07 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:36 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
18:35 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:33 < sam_moore> Are we demonstrating James' GUI tomorrow?
19:45 < jtanx> I have no idea
19:45 < jtanx> given that it doesn't work with our api, probably not?
19:46 < jtanx> I can change the colour scheme to make it look similar...
19:58 < sam_moore> No, don't worry
19:58 < sam_moore> This is why we have git
19:59 < jtanx> :/
19:59 < sam_moore> Hang on, does it work with any of the API?
19:59 < sam_moore> The API hasn't changed *that* much
20:00 < jtanx> I don't know
20:00 < sam_moore> The sensors API has not changed for months
20:00 < jtanx> it has some of the javascript that got copied over
20:00 < sam_moore> Except that "name" was added as an optional thing
20:00 < jtanx> but the javascript's probably out of date
20:00 < jtanx> his version is missing links to some pages also, last time I checked
20:03 < sam_moore> Stick with the working GUI
20:03 < sam_moore> Everyone knew about the testing on Wednesday morning and that GUI was the one that the people who actually showed up got working
20:03 < sam_moore> I guess we could try the totally untested up until now GUI tomorrow morning at 8am
20:04 < jtanx> This is... going to be awkward for the report
20:04 < sam_moore> At some point between when the case team builds their box and the cans are connected to their amazing mounts
20:06 < sam_moore> We'll put in a paragraph about how we have a "testing" GUI
20:06 < jtanx> ._.
20:07 < sam_moore> Which was designed purely from a point of view of allowing us to test the server and the experiment hardware
20:07 < sam_moore> And thus is sorely lacking in Human Computer Interaction Industry Standards (is that a thing)
20:07 < jtanx> Yep
20:07 < jtanx> haha
20:08 < sam_moore> I feel like tomorrow will be a waste of time
20:09 < jtanx> unfortunately yeah
20:09 < sam_moore> But I suppose if anyone needs to demonstrate that their thing actually does something it will be us, since our work is effectively invisible
20:09 < sam_moore> ... Not unlike the case
20:09 < jtanx> if that case doesn't turn up...
20:09 < sam_moore> You don't really expect the case to turn up do you?
20:09 < sam_moore> Although, maybe it will
20:10 < jtanx> Well, one can only hope...
20:10 < sam_moore> I think it could be fun to take bets on what the case would actually be if it turned up
20:10 < jtanx> oh boy, your email is hilarious
20:11 < sam_moore> I bet they just take the case that's currently in G19, put it on top of the system, and call it a day
20:11 < jtanx> :P
20:11 < sam_moore> Yeah, I know Alex
20:12 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:13 < jtanx> oh, you merged usercake into the main repo too
20:13 < sam_moore> Hi Callum
20:13 < Callum> hey
20:13 < jtanx> hey
20:13 < sam_moore> jtanx: Didn't we want to do that?
20:13 < sam_moore> Eventually at least
20:13 < jtanx> yeah
20:13 < sam_moore> It needs setting up on the beaglebone, I'm not going to worry about it
20:14 < jtanx> I skinned it yesterday
20:14 < sam_moore> I think we can just enable /etc/shadow authentication to demonstrate
20:14 < jtanx> yeah
20:14 < jtanx> the changes I made are still on the 'users' branch
20:14 < jtanx> but it's not finished yet
20:15 < sam_moore> We'll note stuff like this in "Recommendations" or "Work for the future" or something
20:15 < jtanx> Yeah
20:15 < jtanx> Working with usercake...
20:15 < jtanx> it was absolute spaghetti code
20:16 < sam_moore> Haha
20:16 < sam_moore> It made sense to me
20:16 < sam_moore> Sort of
20:16 < jtanx> It makes sense
20:16 < jtanx> but it's just... ugh
20:16 < sam_moore> Pretty much everything is in funcs.php
20:16 < jtanx> Yeah
20:16 < sam_moore> They have an entire class that represents a new user
20:16 < sam_moore> But when you search for users it returns a map/dictionary
20:16 < jtanx> What I found so stupid
20:17 < jtanx> is that when you create a user
20:17 < jtanx> it doesn't return the id
20:17 < jtanx> so you have to search the db to find the id of the user you just made
20:17 < sam_moore> Hahaha
20:18 < sam_moore> Callum: If you want to test the dilatometer, just hard code it as camera 0 and we won't bother plugging the other camera in tomorrow
20:18 < jtanx> The quality from the other camera was really shit anyway
20:18 < sam_moore> Or I guess if we really want to we can recompile the program with it hard coded
20:18 < jtanx> sounds like a plan
20:18 < Callum> ok
20:19 < sam_moore> It only has to work for as long as Adrian wants to see it
20:19 < jtanx> I wouldn't be surprised if adrian didn't bother to turn up, and sent adam instead though
20:19 < Callum> probably be the case
20:19 < Callum> :p
20:19 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:19 < jtanx> it's baack
20:24 < jtanx> wow
20:24 < jtanx> usercake ships with html that's broken
20:27 < sam_moore> I did not notice that
20:28 < sam_moore> Well, you get what you pay for
20:29 < jtanx> :P
20:37 < jtanx> wat
20:37 < jtanx> //Don't update, this fool is trying to update with the same password ¬¬
20:37 < jtanx> from usercake
21:13 < Callum> jaime did we end up finding a way to convert stuff from IplImage to Mat in open cv?
21:13 < Callum> cant find a way...or a way to just capture straight to mat in C
21:13 < Callum> which is fucked...Mat is meant to replace IplImage.
21:13 < jtanx> Try check interferometer.c
21:13 < jtanx> I think it does the conversion
21:14 < sam_moore> Callum: I think I solved it at some point making interferometer.c
21:14 < sam_moore> You can't capture straight to cvMat
21:14 < sam_moore> It is retarted, yes
21:15 < Callum> ah found it. thanks
21:16 < Callum> also, i dont think you ever released IplImage sam :p
21:17 < sam_moore> Meh
21:17 < sam_moore> IplImage * img = cvQueryFrame(g_capture);
21:17 < sam_moore> Whoops
21:17 < Callum> what?
21:17 < sam_moore> Accidental copy/paste
21:18 < sam_moore> Well I was going to copy/paste the image conversion code but you found it
21:18 < sam_moore> For completeness anyway
21:18 < sam_moore> CvMat stub;
21:18 < sam_moore> CvMat * background = cvGetMat(img, &stub, 0, 0);
21:18 < sam_moore> And I still don't know what the stub is for...
21:20 < Callum> ahaha
21:22 < jtanx> stubs
21:22 < jtanx> ahh
21:24 < jtanx> okay
21:24 < jtanx> updated usercake
21:24 < jtanx> hopefully it still works
21:25 < sam_moore> ...
21:26 < sam_moore> I bet we get a segmentation fault or something
21:26 < jtanx> :3
21:26 < sam_moore> What did you update it to do anyway?
21:27 < jtanx> make it look like the rest of our gui
21:27 < sam_moore> Oh, nice
21:27 < jtanx> only allow admins to login
21:27 < jtanx> to that part
21:27 < jtanx> but users can still change their password
21:27 < sam_moore> Excellent
21:27 -!- callum__ [~chatzilla@106-69-68-94.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:27 < jtanx> oO
21:27 < sam_moore> Woah, doppleganger
21:27 < callum__> getting this weird compiler error: /usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 20 has invalid symbol index 19
21:27 < sam_moore> Uuuuuhh
21:28 < jtanx> try make clean?
21:28 < jtanx> make
21:28 < callum__> yea logged onto laptop to copy/pasta
21:28 < callum__> :p
21:28 < callum__> still doing it. not sure if its something i did..coz i changed a bunch of stuff
21:29 < sam_moore> make absolutely sure everything's cleaned
21:29 < sam_moore> Including the sensors and actuators sub directories
21:29 < sam_moore> I can't remember if I made make clean recursively do those
21:30 < Callum> didnt help
21:31 < jtanx> hmm
21:31 < jtanx> apparently
21:31 < jtanx> http://stackoverflow.com/questions/5528958/make-file-problem
21:31 < jtanx> it's because more than one file is linking against the crt
21:31 < jtanx> why is that
21:31 < jtanx> when you added your module
21:32 < jtanx> did you modify the makefile and add microscope.o or something
21:32 < jtanx> or did you do something different
21:32 < Callum> i havent added it to the makefile yet tbh
21:32 < Callum> just been compiling it myself
21:32 < jtanx> oh right
21:32 < jtanx> well that is weird
21:33 < Callum> yup.
21:33 < jtanx> so what files are you compiling (and how)>
21:33 < sam_moore> Can you push it to git?
21:33 < Callum> alright
21:34 < sam_moore> Use a new branch if you don't want to overwrite a working version (although it's git... you can always go back a few commits)
21:34 < jtanx> you might have to update your git repo first
21:34 < sam_moore> Good point
21:34 < jtanx> i've just made some changes
21:34 < sam_moore> Callum: Make a new branch
21:34 < sam_moore> Easier that way, in case there are changes that need merging
21:34 < sam_moore> It's `git checkout -b branch_name`
21:34 < sam_moore> Make changes, commit
21:35 < sam_moore> Then go `git push branch_name`
21:38 < Callum> done
21:39 < callum__> https://github.com/Callum-/MCTX3420/tree/dilatometer/server/sensors
21:40 < jtanx> Off topic, but:https://github.com/szmoore/MCTX3420/watchers
21:40 < jtanx> who's skinnybabulu
21:40 < callum__> ahahaha
21:40 < callum__> wtf kind of name is that
21:40 < sam_moore> callm__: Careful
21:41 < sam_moore> They are watching us
21:41 < sam_moore> (seriously, these logs all go into github :P)
21:41 < Callum> assuming whoeever it is reads the logs.
21:41 < sam_moore> With a name like skinnybabulu, you never know what they're capable of
21:42 < jtanx> ~.~
21:42 < Callum> ok. i'll watch my back then.
21:42 < sam_moore> Actually, doesn't IRC support a mode for listening in on a channel without being listed in the names?
21:42 < sam_moore> Not that you need that when you can look at all the logs
21:42 < jtanx> I don't know
21:42 < jtanx> I don't think so
21:43 < sam_moore> It might be Kieran?
21:43 < Callum> possibly
21:43 < jtanx> it's probably one of the others
21:43 < jtanx> yeah
21:43 < sam_moore> Or maybe it's... dun dun dun... Adrian!
21:43 < jtanx> oO
21:44 < jtanx> what were you using to compile your code
21:44 < Callum> does it compile for you?
21:44 < jtanx> as in, by calling make?
21:44 < Callum> nah i was compiling it using gcc
21:45 < jtanx> oh
21:45 < jtanx> what was your compile command
21:46 < Callum> gcc dilatometer.c -o dila + all the libs/flags from Makefile
21:46 < jtanx> Okay
21:46 < jtanx> gcc microscope.c -std=gnu99 -Wall -pedantic -g -I/usr/include/opencv -I/usr/include/opencv2/highgui -L/usr/lib -lfcgi -lssl -lcrypto -lpthread -lm -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_imgproc -lldap -lcrypt -o microscope
21:46 < jtanx> that worked
21:46 < sam_moore> jtanx: I think he's moved it to sensors/dilatometer.*
21:47 < jtanx> oh right
21:47 < sam_moore> Which is compiling for me
21:47 < Callum> odd.
21:47 < sam_moore> Hint: Edit the Makefile to have dilatometer.o as an object
21:47 < sam_moore> Then you can just type `make dilatometer.o` without all the flags
21:47 < sam_moore> Oh wait, but I commented out some of the flags
21:47 < sam_moore> Whatever, you can uncomment them
21:48 < jtanx> I can reproduce the issue
21:48 < sam_moore> How?
21:48 < jtanx> gcc dilatometer.c -std=gnu99 -Wall -pedantic -g -I/usr/include/opencv -I/usr/include/opencv2/highgui -L/usr/lib -lfcgi -lssl -lcrypto -lpthread -lm -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_imgproc -lldap -lcrypt -o dilatometer -I..
21:48 < sam_moore> Oh
21:48 < sam_moore> Make sure the library flags are last in the gcc line
21:49 < sam_moore> I'm not sure if it's still a problem, but with Ubuntu 10 or something it was an issue
21:50 < sam_moore> I suggest adding dilatometer.o to the sensors/Makefile
21:50 < sam_moore> Then try running make in the main server directory
21:50 < sam_moore> That seems to work fine for me
21:51 < sam_moore> I'm going to bed, see you tomorrow, hopefully I can wake up early enough
21:51 < Callum> how do i just execute whats in dilatometer then?
21:51 < jtanx> hmm
21:53 < jtanx> ohh right
21:53 < jtanx> I see
21:53 < jtanx> in dilatometer.c you commented out the main function
21:54 < jtanx> so of course you'll get linker errors
21:54 < sam_moore> Yeah, I get that when I try and compile it as a stand alone binary
21:54 < sam_moore> As an object file it works fine
21:54 < jtanx> yeah
21:54 < Callum> ah right. forgot i commented out main..
21:57 < Callum> ok
21:57 < Callum> well im getting a seg fault now
21:57 < jtanx> use valgrind
22:05 < Callum> just realised i had a CvMat i never used...
22:05 < jtanx> :P
22:05 < Callum> well i did. but i changed it something else but i kept it in global/cleanup
22:06 < Callum> and only then it was used in testing :p
22:06 < jtanx> haha
22:06 < Callum> and i think i know the problem
22:06 < Callum> forgot to convert it to gray with getting image from camera
22:08 < Callum> woo another core dumpo
22:08 < Callum> :D
22:10 < jtanx> ._.
22:17 < Callum> it appears to be in canny..
22:17 < jtanx> you sure?
22:18 < Callum> well printf before it shows up, but not after
22:18 < Callum> tyring to make any sense out of valgrind
22:19 < jtanx> update your code on github
22:19 < jtanx> and I'll have a look
22:19 < callum__> libv4l2: error setting pixformat: Device or resource busy
22:19 < callum__> HIGHGUI ERROR: libv4l unable to ioctl S_FMT
22:19 < callum__> libv4l2: error setting pixformat: Device or resource busy
22:19 < callum__> libv4l1: error setting pixformat: Device or resource busy
22:19 < callum__> HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT
22:19 < callum__> OpenCV Error: Null pointer (NULL array pointer is passed) in cvGetMat, file /build/buildd/opencv-2.3.1/modules/core/src/array.cpp, line 2382
22:19 < callum__> terminate called after throwing an instance of 'cv::Exception'
22:19 < callum__> what(): /build/buildd/opencv-2.3.1/modules/core/src/array.cpp:2382: error: (-27) NULL array pointer is passed in function cvGetMat
22:19 < callum__> that came out horribly
22:21 < Callum> ok its pushed, use dilatometer.c from server
22:21 < Callum> not sensors
22:21 < jtanx> okay
22:26 < jtanx> I can't compile the one in server
22:26 < Callum> really?
22:26 < jtanx> dilatometer.c:222:6: error: conflicting types for ‘Dilatometer_Read’
22:26 < jtanx> In file included from dilatometer.c:8:0:
22:26 < jtanx> dilatometer.h:13:15: note: previous declaration of ‘Dilatometer_Read’ was here
22:26 < jtanx> dilatometer.c: In function ‘Dilatometer_Read’:
22:26 < jtanx> dilatometer.c:224:43: error: ‘SAMPLES’ undeclared (first use in this function)
22:26 < jtanx> dilatometer.c:224:43: note: each undeclared identifier is reported only once for each function it appears in
22:26 < jtanx> In file included from dilatometer.c:7:0:
22:26 < Callum> you on the branch?
22:27 < jtanx> jeremy@pickle:~/git/callum/server$ git status
22:27 < jtanx> # On branch dilatometer
22:27 < Callum> ctually
22:27 < Callum> i dont think that .h file is up to date
22:27 < Callum> copy the one from sensors
22:27 < jtanx> okay
22:29 < jtanx> urgh linking errors
22:30 < Callum> really?
22:31 < jtanx> can you copy your compile command
22:31 < callum__> gcc dilatometer.c -o dila -lfcgi -lssl -lcrypto -lpthread -lm -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_imgproc -lldap -lcrypt -std=gnu99 -Wall -pedantic -g -I/usr/include/opencv -I/usr/include/opencv2/highgui -L/usr/lib
22:31 < jtanx> okay that worked
22:33 < Callum> does it seg fault for you?
22:33 < jtanx> yeah
22:33 < jtanx> after I press space
22:33 < Callum> "line 2392"
22:33 < jtanx> twice
22:33 < Callum> somethings going wrong in canny IMO
22:33 < Callum> but it could be because of what im passing it?
22:33 < Callum> well must be. was working before
22:33 < jtanx> wait
22:33 < jtanx> so what's happening
22:34 < jtanx> for me
22:34 < jtanx> is that it's getting to 'hopeful'
22:34 < jtanx> and probably looping to the next request?
22:34 < Callum> wait. so not canny
22:34 < jtanx> yeah
22:34 < jtanx> because if you press space twice
22:35 < jtanx> that means that it's getting past canny
22:35 < jtanx> isn't it?
22:35 < Callum> yea
22:35 < Callum> its showing edges
22:35 < Callum> hmm
22:36 < jtanx> is it meant to run in a loop?
22:37 < Callum> no. its meant to call it twice though. comment out Init and it will call read once
22:38 < Callum> hmm i commented it out and got another error message
22:38 < jtanx> you sure you're not freeing something that's about to be used
22:38 < Callum> i only free stuff in cleanup though
22:38 < Callum> and i only run that at the end
22:39 < Callum> but something in cleanup is chucking its shit with me
22:40 < Callum> "The first thing you need to know about Mat is that you no longer need to manually allocate its memory and release it as soon as you do not need it. While doing this is still a possibility, most of the OpenCV functions will allocate its output data manually."
22:40 < jtanx> hmm
22:41 < jtanx> if( g_capture == NULL)
22:41 < jtanx> this check has to be before the createcameracapture
22:41 < jtanx> otherwise you're creating twice
22:41 < jtanx> if( g_capture == NULL)
22:41 < jtanx> {
22:41 < jtanx> g_capture = cvCreateCameraCapture(0);
22:42 < jtanx> //If cvCreateCameraCapture returns NULL there is an error with the camera
22:42 < jtanx> if (g_capture == NULL)
22:42 < jtanx> {
22:42 < jtanx> result = false;
22:42 < jtanx> }
22:42 < jtanx> }
22:42 < Callum> no, thats testing to see if capture has worked
22:42 < jtanx> that worked for me though
22:42 < jtanx> fixed the issue
22:42 < jtanx> or not
22:42 < jtanx> it lasted longer though
22:42 < Callum> ahaha
22:43 < jtanx> but it's definitely part of the issue
22:44 < Callum> ok i see what yoru saying now
22:45 < jtanx> now the problem's witht he cvreleasemat
22:45 < Callum> yea
22:45 < Callum> dont know why though
22:49 < jtanx> because it's opencv
22:49 < jtanx> oh well
22:49 < jtanx> I'm going to bed
22:49 < Callum> hah good reasoning
22:49 < Callum> alright
22:49 < Callum> what time is the thing tomorrow? 9?
22:49 < jtanx> see you tomorrow, I guess
22:49 < jtanx> yeah but probably going to get there at 8 to set stuff up
22:50 < Callum> that means getting up at 6 though :/
22:50 < jtanx> :/
22:50 < jtanx> adrian better be there
22:50 < Callum> also
22:50 < jtanx> okay i'm out, bye
22:51 < Callum> its only RGB release
22:51 < Callum> which is fucking it up
22:51 < Callum> other 2 are fine
22:51 < jtanx> hmm
22:51 < jtanx> comment it out?
22:51 < jtanx> pfft who cares about memory leaks
22:51 < jtanx> :P
22:51 < Callum> haha
22:51 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["bye"]
22:53 < Callum> i know noones there but (with g_srcRGB mat not released) i have definitely 72bytes lost, indirectly 240 bytes and possibly 16Mb
22:54 < Callum> and with all mats not released, same except possible loss of 17Mb
23:16 -!- callum__ [~chatzilla@106-69-68-94.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302]"]
23:24 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has quit [EOF From client]
--- Day changed Tue Oct 29 2013
06:38 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
06:48 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
12:10 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:27 -!- Callum [~Callum@130.95.105.240] has joined #mctxuwa_softdev
12:31 < Callum> sam have you pushed the stuff we did today?
12:31 < sam_moore> Not yet, sorry
12:32 < sam_moore> It was mostly on the BBB
12:44 < Callum> its ok, just let me know when you do
12:44 < Callum> so i can go back and do what i need to do, il just do something else for now.
12:57 < sam_moore> The dilatometer is pushed now at least
13:00 < Callum> ok. thanks. il keep working on the report anyway.
13:01 < Callum> did you want it by tomorrow or end of tomorrow?
13:02 -!- Callum [~Callum@130.95.105.240] has left #mctxuwa_softdev []
13:05 < jtanx> I guess i should work on this report too
13:09 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["brb"]
13:10 -!- jtanx [~chatzilla@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:24 -!- Callum [~Callum@130.95.105.240] has joined #mctxuwa_softdev
13:25 < Callum> aand im back
13:28 < jtanx> hello
13:59 -!- jtanx [~chatzilla@106-68-93-93.dyn.iinet.net.au] has quit ["brb"]
14:06 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [EOF From client]
14:32 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:49 -!- Callum [~Callum@130.95.105.240] has quit [Ping timeout]
16:55 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:50 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:52 < Callum> should i make the capture function pass a CvMat or do a bool and pass a CvMat pointer.
18:53 < Callum> actually. looking at out image code...it encodes the IplImage file to CvMat. so the capture file will have to deal in IplImage and then dilatometer will need to convert it to CvMat itself
18:54 < sam_moore> It's up to you
18:54 < sam_moore> I thought it was easier to work with the CvMat, so it might be better to convert to CvMat
18:54 < sam_moore> But if the image code only works with IplImage just do it that way
18:54 < Callum> i think we encoded it so it was compressed?
18:54 < Callum> and encode takes IplImage afaik
18:54 < Callum> and turns it into a CvMat
18:55 < sam_moore> Ok
18:55 < Callum> not sure if we can encode a CvMat outright. in the end the image code ends up in a CvMat file anyway
18:55 < Callum> also whats the FCGI stuff in image for?
18:55 < sam_moore> If the image module sends a CvMat to the user and the dilatometer requires a CvMat
18:56 < sam_moore> The base function should probably return a CvMat
18:56 < sam_moore> Maybe give it some arguments to determine if it's compressed or not
18:56 < sam_moore> The FCGI stuff is all basically how the request gets handled
18:56 < sam_moore> FCGI_Loop gets the request
18:56 < sam_moore> There's a whole bunch of string parsing and login checking and stuff
18:56 < sam_moore> It works out which function to call
18:57 < sam_moore> Then calls say "Image_Handler" or "Sensor_Handler" or whatever
18:57 < sam_moore> That function determines what key/value pairs it needs
18:57 < Callum> also, for capture, 0 is default. -1 is any.
18:57 < sam_moore> So there's a special helper function FCGI_ParseRequest which will take some structs and fill the requested variables after parsing the string
18:58 < sam_moore> Yeah, -1 is any
18:58 < Callum> 1+ is ID of specific camera
18:58 < sam_moore> Ok
18:58 < sam_moore> Again, the Image_Get or whatever it is called should probably take an integer identifying the camera
18:58 < sam_moore> If possible
18:59 < jtanx> hmm
18:59 < jtanx> http://unix.stackexchange.com/questions/77170/how-to-bind-v4l2-usb-cameras-to-the-same-device-names-even-after-reboot
18:59 < jtanx> may not work wiht opencv though
18:59 < sam_moore> Callum: Just try and get something that's reasonable written, then it can be adapted or built upon if needed
19:00 < Callum> im just trying to make sense of the fcgi stuff in image handler
19:00 < Callum> also, is there a reason width and height is hardcoded to 800x600?
19:00 < jtanx> defaut value
19:00 < jtanx> user can change it by specifying width and height
19:01 < Callum> ok
19:01 < sam_moore> Callum: FCGI stuff is a bit confusing I guess, but it's a lot nicer than it was before jtanx wrote FCGI_ParseRequest
19:01 < sam_moore> It used to be like a billion calls to "strcmp" and things
19:01 < Callum> should i just copy the capture code from image into its own functrion then?
19:01 < Callum> instead of using my one
19:01 < Callum> ?
19:01 < sam_moore> Just think of it as automatically filling in the variables you need based on their names
19:02 < sam_moore> Callum: You can use either one, I think they both work
19:02 < sam_moore> Don't be afraid of just trying something
19:02 < sam_moore> If it breaks things we always have git
19:03 < jtanx> oh yeah, that was the other thing I should mention
19:03 < jtanx> you can't have two cameras open
19:03 < jtanx> e.g you can'thave cvCreateCameraCapture
19:04 < jtanx> for one camera
19:04 < jtanx> while you have another one open
19:04 < jtanx> otherwise the program crashes- it gets killed because there's not enough usb bandwidth or something
19:04 < sam_moore> A mutex should solve that
19:04 < sam_moore> (I love mutexes)
19:04 < Callum> well we dont ever plan on having 2 cameras at once?
19:04 < Callum> we should note it in report though
19:05 < jtanx> well just saying, because thne you'd haveto explicitly turn off/free the other camera before using the other
19:06 < sam_moore> Use a mutex to make sure you can never have two captures open
19:06 < sam_moore> And yes, we should note it in the report
19:07 < sam_moore> https://github.com/szmoore/MCTX3420/blob/master/server/sensors/strain.c
19:07 < sam_moore> Start at line 102
19:08 < sam_moore> The way it works is:
19:08 < sam_moore> When you get to mutex_lock
19:08 < sam_moore> If no thread is executing the code between there and the unlock, the thread will execute it all
19:09 < sam_moore> Otherwise it will wait until the thread that is executing gets to the unlock
19:09 < sam_moore> Then execute it
19:09 < sam_moore> So...
19:09 < Callum> ok
19:09 < Callum> sso pretty much lines 102,103 and 122?
19:10 < sam_moore> Yes, in whichever function gets the images, and make sure anything to do with the camera capture is between them
19:10 < sam_moore> ie: create, use, and free it
19:10 < Callum> yep
19:11 < Callum> alright
19:15 < sam_moore> Callum: gliffy is nice if you want to make flow charts for the image related stuff
19:15 < sam_moore> This report is going to be hard to write...
19:15 < Callum> gliffy?
19:15 < Callum> we dont have nearly enough time to write it..
19:15 < sam_moore> www.gliffy.com
19:15 < jtanx> or you could use ms visio
19:15 < Callum> i planned to be atleast half done by now :/
19:16 < Callum> i have visio on my PC somewhere. although i couldnt get the stupid thing to register so long passed trial :p
19:16 < jtanx> about the report, where do you want me to place my content
19:16 < sam_moore> Make a flow chart, it'll take at least a page
19:16 < jtanx> as in how should this be laid out
19:16 < jtanx> i think there was a bit of overlap between some of the diagrams
19:17 < Callum> umm
19:17 < Callum> i just tried chucking a CvMat into encode
19:17 < Callum> and it seems to not have given me errors
19:17 < sam_moore> Always good
19:17 < Callum> but make isnt fully compiling because im missing something
19:18 < jtanx> is it the mysql stuff
19:18 < Callum> yup
19:18 < sam_moore> Oh, sorry, I didn't realise
19:18 < sam_moore> It probably won't like to compile on things without mysql anymore :S
19:19 < sam_moore> ... We're getting to the point where we actually need a configure script to generate the Makefile
19:19 < sam_moore> And that's a bit terrifying
19:19 < jtanx> the easy way is to install mysql
19:19 < jtanx> libmysqlclient-dev
19:19 < jtanx> buut not ideal
19:19 < sam_moore> Ok, about the layout of the report
19:20 < Callum> is it the last thing to compile?
19:20 < Callum> i can just assume its all ok. :P
19:20 < sam_moore> Haha
19:21 < sam_moore> Installing mysql is probably the best way to check
19:21 < sam_moore> Alternately you can try comment out all the mysql guff, but that will probably take longer :S
19:22 < jtanx> about Login_Shadow
19:22 < jtanx> just found there's fopen without fclose
19:22 < sam_moore> :O
19:22 < Callum> oh noes!
19:22 < Callum> we all gon fail
19:22 < jtanx> :P
19:22 < sam_moore> Yeah, there are undoubtably going to be problems with it
19:23 < sam_moore> It's not fair to expect everything to get implemented *and* there to be absolutely no problems
19:23 < jtanx> yeah
19:23 < jtanx> that's true
19:23 < sam_moore> We barely have time to test anything
19:23 < sam_moore> It's just "Get it working and stick it in, the thing doesn't segfault, good, move on!"
19:23 < Callum> good plan.
19:23 < sam_moore> I think I broke the pressure regulator with the sanity check by the way
19:24 < jtanx> Well, with what they've been asking us to do, what can you do
19:24 < sam_moore> So good save whoever distracted him when I was demonstrating that and it wasn't working even when I put proper values in...
19:24 < jtanx> Hahaha
19:24 < Callum> :p
19:24 < sam_moore> I was just like "As you can see... when you put bad values in it says bad value"
19:25 < sam_moore> Really hoping that they didn't notice that it was a pretty reasonable value...
19:25 < sam_moore> What I would love to do
19:25 < sam_moore> Is plot overnight memory/cpu usage of both the beaglebone and the computer running the gui
19:26 < sam_moore> I think the JavaScript is the weak point in terms of how much you can actually show in the gui
19:26 < sam_moore> It seems to just shit itself trying to plot the microphone for example
19:26 < sam_moore> Yet you can still download all the data and plot it in something else
19:27 < jtanx> it's probably because it's just consuming too much memory, trying to store that many points
19:27 < jtanx> if at any one point in time you reduce that, it should be fine
19:27 < sam_moore> Yeah...
19:27 < sam_moore> Anyway... report layout
19:28 < sam_moore> Chapter 1 and 2 are mostly Justin's stuff
19:28 < jtanx> Okay
19:28 < Callum> should i change default width/height to 1600x1200?
19:28 < sam_moore> Callum: Sure, why not?
19:28 < sam_moore> Chapter 3 and 4 are "Design implementation" and "Results"
19:28 < Callum> just making sure it wont break anything :P
19:28 < sam_moore> But...
19:29 < sam_moore> I was thinking of just doing "Design implementation" and "Discussion"
19:29 < Callum> the C170 also 1600x1200 right?
19:29 < sam_moore> So... when you write your report, do two bits (if you can)
19:29 < sam_moore> One focusing on what the system is
19:29 < sam_moore> And one focusing on why we made the decisions to make it that way
19:29 < sam_moore> If that makes any sense :S
19:29 < sam_moore> Honestly
19:30 < jtanx> Yeah that makes sense
19:30 < Callum> hmm. if you think it would be better that way.
19:30 < Callum> wouldnt it seem disjointed that way though?
19:30 < jtanx> I should probably cut down some explanation text then
19:30 < sam_moore> Callum: The image processing is a bit more difficult, because we didn't have many choices with it
19:30 < sam_moore> Callum: No, I think it will seem better
19:30 < jtanx> add more 'how it works'
19:30 < sam_moore> Because at the moment it's easy to get distracted
19:30 < sam_moore> When you are explaining how it works
19:30 < Callum> umm. why is num > 1 invalid?
19:30 < jtanx> Camera 0 or 1
19:31 < jtanx> there can only be two cameras connected
19:31 < sam_moore> Like, I kept getting sidetracked about the design changes we made
19:31 < Callum> -1,0 and 1 all do the same thing if theres only 1 camera connected :p
19:31 < Callum> if tehres 2 cameras one would be 2
19:31 < Callum> 0 is default
19:31 < sam_moore> But someone who wants to know how it works will just want a section that says "This is how it works"
19:31 < jtanx> nah
19:31 < jtanx> if there's two
19:31 < jtanx> its 0 or 1
19:31 < sam_moore> Lastly...
19:31 < jtanx> to switch between them
19:31 < sam_moore> We should have a recommendations section
19:31 < Callum> you sure? and yea definitely
19:31 < jtanx> I tested it ont he bbb
19:31 < Callum> more of a "what still needs to be done" but thats the same thing
19:31 < Callum> hmm ok
19:31 < jtanx> that's how I know it works
19:32 < sam_moore> Basically if you have any recommendations on what should and shouldn't be done, make some dot points and a sentence explaining it
19:32 < sam_moore> ...
19:32 < sam_moore> I really don't have time to email everyone all that
19:32 < sam_moore> Justin's stuff is pretty good as it is though, it's just James and possibly Rowan that need to be informed/asked
19:33 < jtanx> yeah justin's was pretty good
19:33 < Callum> wheres testing go? in "what" the system is?
19:34 < sam_moore> I'd put testing in the discussion
19:34 < sam_moore> ie: we have "What" the system is, and "How" it got to be that way
19:34 < Callum> so, design choice for testing>?
19:34 < sam_moore> Yes
19:34 < Callum> i guess that gives me something to populate design choice
19:34 < Callum> considering i dont have much otherwise..'
19:34 < sam_moore> Callum: If you could mention the interferometer that would be great
19:35 < Callum> mention, how much?
19:35 < sam_moore> Well, it is a design choice, mostly by sensors I'll admit
19:35 < sam_moore> But we did have an algorithm for it
19:35 < Callum> just we were told it would be necessary, algorithm was written and provide a couple of testi mages?
19:36 < sam_moore> Yes, explain the algorithm if you feel the need
19:36 < sam_moore> There is an email I sent that explains it... not very clearly :S
19:36 < sam_moore> There are also graphs of how well it performs
19:36 < Callum> well. if i need to buff it up a bit and i have the time il do so
19:36 < sam_moore> I'm sure we have enough content
19:36 < Callum> buuut im doubtful
19:36 < sam_moore> There are tonnes of things to find to write about
19:36 < sam_moore> Alright, no problem
19:36 < sam_moore> Speaking of which
19:37 < Callum> welll. im more worried about my contribution to the report.
19:37 < Callum> need to make it as even as possibl;e
19:38 < jtanx> we're working off the master branch now right?
19:38 < sam_moore> Yes
19:38 < jtanx> (for the report)
19:38 < jtanx> okay
19:39 < sam_moore> Callum: Just try and get 5/6 pages done then
19:39 < Callum> ok. should be possible if i include lots of images :p
19:39 < jtanx> Kinda worried about Rowan...
19:40 < Callum> Yea.
19:40 < sam_moore> I'm not sure what we can get him to write
19:40 < Callum> meeting on monday he kinda rocked up hell late, wondered abotu and left barely saying anything
19:40 < sam_moore> At one stage I thought he'd be doing some GUI design
19:41 < sam_moore> There were lots of opportunities for people less inclined to do coding to help with that
19:42 < sam_moore> Anyway
19:42 < sam_moore> I really need to do something else
19:43 < sam_moore> Hell, I'm going to have a hard time doing my part of the report by Wednesday, let alone editing everything
19:43 < jtanx> :/
19:44 < Callum> umm. should i clean the image stuff each time or just leave it til the end? (only issue i can see is if the image size changes)
19:52 < Callum> jeremy if i was to call your handler function what do you pass it?
19:52 < Callum> whats context/params from?
19:52 < Callum> because if i wanted to call that from dilatometer?
19:52 < jtanx> okay
19:52 < jtanx> let's just explain a few things first
19:53 < jtanx> Image_Handler is never called by anything else apart from some fastcgi function, and only when a request comes in from a user
19:53 < jtanx> Say a user types in /image?width=800&height=600
19:53 < jtanx> there's this thing called the fastcgi request loop
19:53 < jtanx> it picks up the request
19:53 < jtanx> It determines that it's after the image module
19:53 < jtanx> so it calls Image_Handler
19:54 < Callum> hmm. thought it was somethign like that. but is there a way to encorporate it into it so i can call it from dilatometer or should i just scrap your code and use my much soimpler image get functino
19:54 < jtanx> well
19:54 < jtanx> it depends on what you want to do
19:54 < jtanx> if you want to return an image to the user, you have to use the framework
19:54 < jtanx> I think you're getting confused over what it should be doing
19:55 < jtanx> So from what I understand
19:55 < Callum> yea hang on
19:55 < jtanx> you have an image get function?
19:55 < jtanx> If you just want to get an image for internal use, you don't use that fastcgi stuff
19:56 < Callum> yea for dilatometer
19:56 < jtanx> the fastcgi stuff is for when you want to return a response to the user
19:56 < Callum> yea i was a little confused on how to separate the get iomage function so its usable by both image.c and dilatometer.c
19:57 < jtanx> hmm
19:57 < Callum> do we need the cv set capture propery width/height stufF?
19:57 < Callum> and brb food
19:57 < sam_moore> Try and think about what image.c and dilatometer.c are currently doing in common
19:57 < sam_moore> Callum: If in doubt, make a function argument
19:57 < sam_moore> Within reason :P
19:57 < Callum> yea, issue i come across is my capture isnt trying to set width/height
19:58 < sam_moore> Does it use a default?
19:58 < jtanx> yea, you need to set capture widh/height
19:58 < jtanx> otherwise it will be some random setting
19:58 < Callum> iv never done it and its been fine?
19:58 < jtanx> but you only need to set it when you initialise it, or if you want to change resolution
19:58 < jtanx> on the beaglebone, default resolution is like 320x240 pixels or something like that
20:20 < jtanx> hmm
20:21 < jtanx> should we have a section on beaglebone setup or something
20:21 < Callum> well we want them to be able to use it
20:21 < jtanx> yeah
20:21 < Callum> but that could go under wiki?
20:21 < Callum> with brief description in report?
20:21 < jtanx> True
20:21 < jtanx> that would probably make more sense
20:32 < sam_moore> 1. ssh to beaglebone 2. run server 3. see wiki for more details 4. By the way, write an /etc/init.d script to stop having to do this
20:32 < sam_moore> Well, 4. can be a recommendation
20:32 < jtanx> well what stuff did we install
20:32 < sam_moore> Oh yeah
20:32 < jtanx> what os did we use and how did we load it
20:32 < sam_moore> We need a section on server setup
20:32 < sam_moore> Le sigh
20:32 < jtanx> Okay
20:32 < jtanx> should that be part of the report or wiki
20:32 < sam_moore> Report I think
20:33 < jtanx> I guess I should look into that
20:33 < sam_moore> Another recommendation...
20:33 < sam_moore> Write a configure script :P
20:33 < jtanx> Haha
20:33 < sam_moore> Make a debian package...
20:33 < jtanx> effooorrrrrt
20:33 < sam_moore> That's why it's a recommendation Jeremy
20:33 < jtanx> :P
20:33 < sam_moore> You recommend that it get done *later*
20:33 < sam_moore> You don't have to actually do it
20:34 < jtanx> I like how our dependencies have ballooned from when we first started
20:34 < sam_moore> Haha
20:34 < sam_moore> It's mostly the user management stuff
20:34 < sam_moore> That pulled in ldap, crypt, mysql...
20:34 < jtanx> Yeah
20:34 < jtanx> at least it's versatile!
20:34 < sam_moore> mysql itself is like 4 link flags
20:34 < sam_moore> opencv was always there though
20:34 < sam_moore> That's like a billion link flags
20:34 < sam_moore> Some we probably don't need...
20:35 < jtanx> I don't understand why `pkg-config --libs opencv` doesn't work
20:35 < sam_moore> Recommend someone work out why it doesn't work...
20:35 < sam_moore> :P
20:35 < jtanx> Hahaha
20:35 < sam_moore> We could just make 30 pages of one line recommendations...
20:35 < sam_moore> I think some recommendations of "Do *not* do this" might be good to
20:36 < jtanx> Yeah
20:36 < sam_moore> ie: I actually looked into RT linux
20:36 < sam_moore> Admittedly I ran it on a laptop
20:36 < jtanx> well
20:36 < sam_moore> Which has other processes
20:36 < sam_moore> But still
20:36 < sam_moore> It's not that much better
20:36 < jtanx> mm
20:36 < sam_moore> So "Do *not* spend 6 months making RT linux work on the BeagleBone"
20:37 < jtanx> I'm still amazed that that code to enable the pins works
20:37 < jtanx> 'enable in a particular order'
20:37 < sam_moore> "Do not ever touch the kernel or pin control code, ever"
20:37 < jtanx> especially that pwm stuff
20:37 < sam_moore> There are still problems with that
20:37 < jtanx> ahahaha
20:37 < sam_moore> You have to reboot to change the period I think
20:37 < jtanx> hmm
20:37 < sam_moore> Don't fix it
20:37 < jtanx> solution: try another pwm
20:37 < sam_moore> We can just note it somewhere
20:38 < jtanx> yep
20:38 < sam_moore> Actually that's a good point
20:38 < sam_moore> Is someone going to write about the pin control saga
20:38 < jtanx> urgh
20:38 < sam_moore> I started it, but you finished it...
20:38 < sam_moore> I thought I solved it, but you seemed to rewrite 90% of the code :P
20:38 < jtanx> :P
20:53 < Callum> ok think iv done everything but the static variable/determining change of width rather than just edge
20:54 < Callum> ..and then to continue the report
20:58 < Callum> is there any way for me to tell if this is the start of a new experiment?
20:58 < Callum> because if it is i need to reset last position dont i?
20:58 < jtanx> Well
20:58 < jtanx> Dilatometer_Init should be called everytime an experiment is started, afaik
20:58 < sam_moore> Yes
20:58 < sam_moore> Sigh, another recommendation
20:58 < Callum> ok
20:58 < Callum> well, is it?
20:59 < sam_moore> Callum: Yeah, it is
20:59 < sam_moore> I was just thinking
20:59 < sam_moore> When an experiment isn't started, because it was sort of hacked in, you can't ask the server what sensors/actuators it has
20:59 < sam_moore> It should just be a matter of having an extra init function
20:59 < sam_moore> a sort of
20:59 < sam_moore> init_init
20:59 < sam_moore> if you will
20:59 < sam_moore> I'm going crazy
21:00 < jtanx> or Dilatometer_Start
21:00 < jtanx> or Dilatometer_Stop
21:00 < sam_moore> Well you can change the names easily
21:00 < jtanx> Dilatometer_init for once off init
21:00 < jtanx> Yeah
21:00 < sam_moore> I don't think that's even necessary
21:00 < sam_moore> Just seperate out the population of that array from the initialisation/uninitialisation of the devices
21:01 < sam_moore> So the array is only populated once, not every time the experiment is started
21:01 < jtanx> yeah
21:05 < Callum> if no edge is found should i return 0?
21:05 < Callum> wait, that would relate to no expansion
21:08 < sam_moore> Return false remember
21:08 < Callum> ah right forgot i was already doing that and it wouldnt actually record the value
21:08 < Callum> :p
21:10 < Callum> also iv added a SCALE to h but just made it 1. if we actually manage to calibrate the thing we can just change that/
21:13 < Callum> ok. think im done
21:16 < sam_moore> Cool, good work
21:16 < Callum> how do i access the server stuff again?
21:16 < Callum> to make sure it works
21:16 < sam_moore> We can test it tomorrow after/before the strain gauges
21:16 < Callum> or that
21:16 < Callum> also bloody thing pushed to my branch xD
21:16 < sam_moore> Callum: You can also run it on your laptop
21:17 < Callum> yea thats what i meant. iv done ./run.sh
21:17 < sam_moore> Ah
21:17 < Callum> how do i access it from there again?
21:17 < sam_moore> You probably need to setup nginx
21:17 < sam_moore> Install nginx
21:17 < Callum> we set it up before
21:17 < sam_moore> There is a server_configs directory or similar
21:17 < Callum> well jeremy did
21:17 < jtanx> okay
21:17 < jtanx> umm
21:18 < jtanx> is nginx started?
21:18 < jtanx> try
21:18 < jtanx> /etc/init.d/nginx restart
21:18 < jtanx> Once started, run the run.sh script
21:18 < sam_moore> Well
21:18 < Callum> config gile blah blah test failed?
21:18 < sam_moore> You should check that you can get the index to appear at "https://localhost" first
21:18 < Callum> file
21:19 < jtanx> what did you run?
21:20 < Callum> the restart
21:20 < jtanx> hmm
21:20 < sam_moore> Callum: https://github.com/szmoore/MCTX3420/tree/master/server-configs
21:20 < jtanx> okay
21:20 < jtanx> yeah go to that folder
21:20 < jtanx> chmod +x
21:20 < jtanx> the .sh files
21:20 < sam_moore> You need to update all the config files; they have changed a lot
21:21 < jtanx> chmod +x gen_ssl_cert.sh install.sh
21:21 < jtanx> sudo ./install.sh
21:21 < Callum> tbh
21:21 < Callum> this sounds like too much time/effort
21:21 < sam_moore> Well you did ask
21:21 < Callum> when im already low on time
21:21 < jtanx> running that install script shoul install everything
21:30 < jtanx> we need like a glossary of terms
21:31 < jtanx> all this HTTP, JSON, TLS/SSL, FastCGI, FCGI terms...
21:32 < sam_moore> Sure...
21:32 < sam_moore> The entire report will just be a glossary :S
21:32 < jtanx> :/
21:32 < sam_moore> Thread: Not like the ones in your shirt
21:32 < sam_moore> Thread: Like a process, but not really. Executes a process.
21:33 < sam_moore> Stupid terminology
21:33 < jtanx> Yeah
21:33 < sam_moore> process is a perfectly valid way to say "It does a thing"
21:33 < sam_moore> But if you start referring to threads and processes in the context of computers...
21:33 < sam_moore> Argh
21:33 < jtanx> their eyes shall gloss over as they read this report
21:33 < sam_moore> Haha
21:43 < Callum> just merged my stuff too
21:46 < sam_moore> I wonder if they will hire some random software engineering student to finish this
21:46 < sam_moore> Personally I would quite like to work on it and actually get paid
21:46 < Callum> idno. do they actually intend on using it?
21:46 < jtanx> ._.
21:46 < sam_moore> Callum: I think they do...
21:46 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has left #mctxuwa_softdev []
21:47 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:47 < jtanx> Yeah, I wouldn't mind working on this if I got paid
21:47 < Callum> ok i just lost connection to channel?
21:47 < jtanx> Looks like it
21:47 < sam_moore> You didn't miss anything
21:48 < Callum> ok. so can we demand our 100K >?
21:48 < sam_moore> Hahaha
21:48 < jtanx> Unfortunately, software developers are often underpaid
21:50 < sam_moore> Meh, I'd work on this for the job experience more than the money
21:50 < sam_moore> Counting as vac work would be nice...
21:50 < jtanx> Yeah, that would be great
21:51 < Callum> heck i wouldnt mind actually learning how this shit works :p
21:51 < sam_moore> Yeah, I know Jeremy and I sort of took ownership of a lot of the code base
21:51 < sam_moore> But in our defence, we actually have a working system
21:52 < sam_moore> For some definition of working
21:52 < jtanx> Hmm
21:53 < jtanx> if I start talking about javascript and ajax
21:53 < jtanx> that really pushes the content out
21:53 < jtanx> actually just trying to explain why we used what we did pushes it out
21:53 < sam_moore> I was going to explain why we used HTTP and threads at the same time
21:54 < sam_moore> It's just a sentence or so though
21:54 < sam_moore> ...
21:54 < sam_moore> Ok, it's a paragraph, whatever
21:54 < sam_moore> I emphasised that the user could basically shut down their machine without stopping the experiment
21:54 < sam_moore> I've found it's pretty hard to get accross the distinction between the GUI and the backend/server to people
21:55 < jtanx> Yeah
21:55 < Callum> some people..
21:55 < jtanx> I've practically written about the 'communication' between the user and system
22:13 < Callum> sam, will you be putting the design choices before or after the final system stuff in report?
22:17 < sam_moore> After
22:17 < sam_moore> They will want to read the actual implementation details first
22:17 < Callum> hmmok
22:28 < Callum> god its hot in my room..
22:28 < jtanx> it's pretty cool outside...
22:28 < Callum> hence why i was confused why its hot in my room
22:29 < Callum> could be somewhat due to the fact i justfinished a coffee. :p
22:29 < jtanx> ~.~
22:29 < Callum> ^^
22:29 < Callum> but yea. i intend on getting most of this report done tonight
22:29 < Callum> not so much that sam can have it on time, so i can do my other work. :p
22:30 < Callum> geng4402 project is going to kill me. rest of my group is being quite useless
22:30 < Callum> and we're so far behind
22:32 < jtanx> :|
22:34 < Callum> one of them even dropped the unit
22:34 < Callum> groups of 4/5
22:34 < Callum> we had 4. 2 ppl done nothing all semester
22:34 < Callum> 1 drops out
22:34 < Callum> so we have 3. with 1 person doing practically nothing (hes trying to help now but...he spent all day stuck on shit)
22:40 < Callum> jeremy before you were saying that image handler handles requests from the server right?
22:40 < jtanx> yeah
22:42 < jtanx> okay
22:43 < jtanx> just with Camera_Getimage
22:43 < jtanx> since you open/close the camera capture
22:43 < Callum> yea?
22:43 < jtanx> I think that's slow
22:43 < Callum> umm. well sam said to do that inside the mutex
22:43 < jtanx> and that makes the mutex unnecessary
22:44 < jtanx> it's more like
22:44 < Callum> hmm
22:44 < Callum> true
22:44 < jtanx> if you kept the camera initialised
22:44 < jtanx> check to see which is initialised
22:44 < jtanx> if it is the one we're after, then we're fine
22:44 < jtanx> otherwise release it and enable the other one
22:54 < Callum> mm. should i do the same with the mats in the handler?
22:55 < jtanx> I'm not sure
22:55 < Callum> i'd need to make sure all the parameters are the same (but really only width/height. nothing else should change really)
22:56 < Callum> is it necessary?
22:57 < jtanx> I think the mats should be left
22:57 < jtanx> because I think you do need to free them each time?
22:57 < jtanx> otherwise you'd have a matrix that you haven't freed
22:57 < jtanx> and then you overwrite the pointer anyway
22:57 < Callum> well you can reuse it.
22:57 < jtanx> okay
22:57 < Callum> and besides in documentation it even says you dont need to release CvMats
22:58 < Callum> buut..yea
22:58 < sam_moore> Guys
22:58 < Callum> Sam
22:58 < sam_moore> You probably want to be able to get images from the dilatometer camera for non dilatometer purposes
22:58 < Callum> which you can?
22:58 < sam_moore> Well you could if you just had the (admittedly inefficient) mutex and reinitialise things all the time
22:59 < sam_moore> Not sure if it's easy to do it the way jeremy is discussing
22:59 < sam_moore> Whatever, can't think straight
22:59 < Callum> iv changed it to the way jeremy described it
22:59 < Callum> i think
22:59 < Callum> as long as you pass it 0
22:59 < Callum> which is what dilatometer is currently passing
23:00 < Callum> it wont reinitialise capture
23:00 < sam_moore> Alright then, we'll see if it works tomorrow
23:02 < jtanx> 12pm was it
23:04 < jtanx> okay, I'm out for today
23:04 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["bye"]
23:06 < Callum> oh shit its that late already?
--- Day changed Wed Oct 30 2013
00:20 -!- Callum [~chatzilla@106-69-68-94.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
08:36 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:27 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
11:19 -!- jtanx [~asfa@130.95.91.186] has joined #mctxuwa_softdev
12:29 -!- jtanx [~asfa@130.95.91.186] has quit [Ping timeout]
12:31 -!- jtanx_ [~asfa@130.95.91.186] has joined #mctxuwa_softdev
12:31 -!- jtanx_ is now known as jtanx
13:23 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
13:33 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:52 -!- jtanx [~asfa@130.95.91.186] has quit [Ping timeout]
16:55 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:57 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:17 -!- Callum [~chatzilla@106-69-4-220.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:17 < jtanx> :O
19:17 < Callum> what i miss?
19:17 < jtanx> 4 people on at once
19:17 < jtanx> nothing
19:17 < Callum> haha. ok.
19:17 < jtanx> no discussion as of yet
19:18 < Callum> well. i came on mainly to say i likely won't be at demonstration tomorrow. unless it doesnt start til 12. got a physics thing i should go to at 11
19:18 < jtanx> ok
19:18 < jtanx> btw
19:18 < jtanx> our beaglebone got fried this afternoon
19:18 < jtanx> poor snoopy
19:18 < Callum> D: how?
19:18 < jtanx> um
19:18 < jtanx> we were testing out the multiplexer
19:19 < jtanx> and for some reason the power supply got cut
19:19 < jtanx> when we powered it back on, it didn't work anymore
19:19 < jtanx> it might have been that current flowed back into the gpio pins or something
19:19 < jtanx> or maybe their power supply is dodgy
19:20 < Callum> hmm
19:20 < Callum> i know, lets plug it into the other one to try! *fries other BBB*
19:20 < Callum> yup its powersupply
19:20 < jtanx> we're down to one beaglebone now, which is the one that electronics ordered in after the first one blew
19:20 < jtanx> and yeah
19:20 < jtanx> not likely that'll be connected
19:20 < jtanx> before they fix their electronics
19:28 < Callum> yea.
19:28 < Callum> well im pretty much done with my part of report i think
19:28 < Callum> just need to edit it
19:28 < jtanx> that's good
19:28 < Callum> also why is oracle making me create an account to install java? ..
19:29 < jtanx> really
19:29 < Callum> atleast it is through the link in the tute assignment
19:29 < jtanx> you probably have a later version installed than that link anyway
19:29 < jtanx> don't install that old crap
19:30 < Callum> java -version aint returning anything. aint recognising java
19:30 < Callum> i dont think iv installed it since i reformatted
19:30 < Callum> ahah
19:30 < jtanx> is this on windows or linux?
19:30 < Callum> windows
19:30 < jtanx> okay, so just go to the java website and install it
19:31 < jtanx> and uncheck that crap to install the ask toolbar
19:31 < jtanx> http://www.java.com/en/download/index.jsp
19:31 < Callum> wait. jre7 is in prog files
19:31 < Callum> il just install it and see if it works
19:31 < jtanx> yeah
19:31 < jtanx> was about to say
19:32 < Callum> so how longs this thing take?
19:33 < jtanx> I dunno
19:33 < jtanx> not too long
19:33 < Callum> aha. dno. did it in my sleep.
19:33 < Callum> :p\
19:33 < jtanx> you just click some buttons
19:33 < jtanx> it adds stuff to the display
19:34 < Callum> comment providing feedback on experience...fuck those questions
19:54 -!- Callum_ [~chatzilla@106-69-4-220.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:04 -!- Callum [~chatzilla@106-69-4-220.dyn.iinet.net.au] has quit [Ping timeout]
20:19 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [Ping timeout]
20:59 < Callum_> what did you guys say for the feedback?
20:59 < jtanx> I had like two lines
20:59 < jtanx> 'it was interesting'
20:59 < jtanx> :/
20:59 < Callum_> ahah. was a "good" experience.
21:14 < Callum_> is his example for the transferring an ascii code wrong? :S
21:15 < jtanx> I dunno
21:15 < jtanx> what do you mean
21:15 < jtanx> (I didn't watch the lecture btw)
21:15 < Callum_> i havent either
21:16 < Callum_> but in his notes
21:16 < Callum_> haha
21:16 < jtanx> Okey
21:16 < jtanx> I found it confusing
21:16 < jtanx> like logic 0 is up
21:16 < jtanx> and logic 1 is down
21:16 < jtanx> space vs mark
21:16 < jtanx> then on the next chart it's reversed
21:16 < Callum_> wait logic 0 is up?
21:16 < jtanx> I dunno
21:16 < Callum_> yea.
21:16 < jtanx> I looked at an online example and it was
21:17 < jtanx> I just followed an online diagram
21:17 < jtanx> like the one on this page:
21:17 < jtanx> http://academic.evergreen.edu/projects/biophysics/technotes/electron/serial.htm
21:17 < jtanx> (scroll all the way down)
21:17 < Callum_> thanks
21:19 < Callum_> yea
21:19 < Callum_> his is right
21:19 < Callum_> its just
21:19 < Callum_> you'd think
21:19 < Callum_> he'd mention its active low?
21:19 < jtanx> meh
21:19 < Callum_> oh well
21:34 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:53 -!- Callum [~Callum@106-69-4-220.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:55 -!- Callum_ [~chatzilla@106-69-4-220.dyn.iinet.net.au] has quit [Ping timeout]
21:55 < Callum> do we need to hand in our diary?
21:56 < jtanx> yep
21:56 < jtanx> not sure how though
21:56 < Callum> when/where?
21:56 < Callum> yea
21:56 < Callum> thats what i wasj ust thinking
21:56 < jtanx> that reminds me
21:56 < jtanx> I need to update it
21:57 < Callum> also it says in something on lms theyd check it during the semester
21:57 < Callum> LOL
21:57 < jtanx> well
21:57 < jtanx> trevelyan looked at it
21:57 < jtanx> once
21:57 < Callum> i havent even seen trevelyan once
21:58 < jtanx> he was at one of the 9am lectures because adam couldn't make it or something
21:58 < Callum> fair enoughj
22:01 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [Ping timeout]
22:10 < jtanx> herp derp
22:10 < Callum> what?
22:10 < jtanx> didn't push to git
22:10 < Callum> ahaha
22:10 < jtanx> had the console open waiting for me to type in the password
22:44 -!- jtanx changed the topic of #mctxuwa_softdev to: ^-_-^
22:44 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["~.~"]
22:52 -!- Callum [~Callum@106-69-4-220.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Thu Oct 31 2013
00:25 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
00:28 < Rowan> im not entirly sure what i should be writing about. i never had a specific role ... just sorta butterflied around
00:29 < Rowan> learnt a huge amount although havnt done any work that has been needed or used in any final product.