--- Log opened Sat Aug 03 15:12:13 2013
15:12 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
15:12 -!- Irssi: #mctxuwa_softdev: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal]
15:12 -!- Irssi: Join to #mctxuwa_softdev was synced in 2 secs
15:12 < matches> Good idea with the IRC channel
15:12 < matches> I'm Sam Moore by the way
15:14 < Callum_> Hey. Finally someone else
15:19 < Callum_> Hmm should probably close the app so my phone has enough battery to get me home.
15:21 -!- Callum_ [~androirc@101.119.30.123] has quit ["AndroIRC - Android IRC Client ( http://www.androirc.com )"]
15:45 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has quit [Ping timeout]
15:51 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
15:51 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has left #mctxuwa_softdev []
--- Log closed Sat Aug 03 15:51:28 2013
--- Log opened Sat Aug 03 15:51:51 2013
15:51 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
15:51 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
15:51 -!- Irssi: Join to #mctxuwa_softdev was synced in 2 secs
15:52 -!- matches changed the topic of #mctxuwa_softdev to: MCTX3420 UWA
15:52 -!- matches changed the topic of #mctxuwa_softdev to: MCTX3420 UWA - Team 4 (Software, Firmware, GUI)
16:40 -!- matches changed the topic of #mctxuwa_softdev to: MCTX3420 UWA - Team 4 (Software and stuff)
16:52 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has joined #mctxuwa_softdev
16:54 -!- You're now known as sam__
16:54 < sam__> Yuck
16:54 -!- You're now known as sam_moore
16:55 < sam_moore> That works
16:55 < james__> Yuck?
16:55 < james__> Oh right
16:55 < james__> all the underscores?
16:55 < sam_moore> Yeah
16:55 < james__> its a bit of a pain
17:01 < sam_moore> I think you might be able to comment on changes if you use github
17:01 < sam_moore> I'll see if I can copy the repository there
17:01 < james__> you should be able to
17:01 < sam_moore> It does seem useful
17:01 < james__> its what it waas designed for really
17:01 < sam_moore> Yeah, gitweb is a bit more limited
17:02 < james__> Yeah. Or at least the features aren't as easily accesible as in github
17:10 < sam_moore> I'll clone the repository into github now
17:24 < james__> Need to be logged in but it looks like you can comment
18:13 -!- Callum [~Callum@220-253-137-113.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:38 -!- Callum [~Callum@220-253-137-113.dyn.iinet.net.au] has quit [Ping timeout]
22:01 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]"]
22:15 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
--- Day changed Sun Aug 04 2013
10:43 -!- Callum [~Callum@220-253-137-113.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:47 < Callum> morning
10:49 < sam_moore> Hi
10:52 < Callum> What is there we need to get done? i haven't really done anything yet
10:53 < sam_moore> We need to write a progress report on what we need to get done :P
10:53 < Callum> Thats the other thing i wanted to know, is the progress report per person or per group?
10:53 < sam_moore> It's per group, and it only has to be one page
10:54 < Callum> I'v had a quick look through the stuff online and only thing i can see is the example but it looks like its per person in that
10:54 < Callum> ok, that makes things a lot easier then
10:54 < sam_moore> We are meant to have our own technical diaries with handwritten notes
10:54 < Callum> yea saw that as well
10:55 < sam_moore> So, at the meeting we sort of worked out a vague idea of what systems we'll need
10:55 < Callum> yea had a read through the meeting notes
10:56 < Callum> seemed like a solid start
10:56 < sam_moore> Yes, I think I'll do a block diagram about it
10:56 < sam_moore> Since I actually have a raspberry pi I've been playing with it
10:57 < sam_moore> No one's really done that much though, to be fair our group was only completely formed by Friday
10:57 < Callum> Well, I'm the guy that moved into the group :p
10:58 < sam_moore> Is there anything in particular you'd like to work on?
10:59 < Callum> Il have another look through the meeting notes, but i don't really have any experience working with this hardware. Just mainly C + Java, but i pick stuff up pretty quick
10:59 < Callum> well, any hardware other than what we did in embedded
11:02 < sam_moore> We need to learn more about the actual requirements of the system I think, not sure how much we can work out without talking to all the other groups
11:03 < Callum> Yea true. Might have a play around with git sometime soon to get used to it
11:03 < sam_moore> Oh, something I listed in an email was image processing, that will be important
11:05 < sam_moore> Anyway, if you can try and find something that interests you that seems useful and just write a little bit on that, it would be great
11:06 < sam_moore> Learning git would be useful, you can write about that, it doesn't matter if Rowan does it as well since we'll all need to learn more
11:07 < sam_moore> I know enough of git to work on my own projects, but there are a lot of features designed for group work that I've never used
11:37 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has joined #mctxuwa_softdev
11:42 < Callum> Sam, I think i got a different ssh key from github; So if im going to use this you'll likely need to add it
11:42 < Callum> And hey James
11:43 -!- Callum__ [~chatzilla@220-253-137-113.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:45 -!- Callum [~Callum@220-253-137-113.dyn.iinet.net.au] has quit [EOF From client]
11:59 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has quit [Ping timeout]
12:09 < sam_moore> Callum__: Ok, send it to me
12:11 < sam_moore> If you have github accounts let me know those as well
12:11 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has joined #mctxuwa_softdev
12:11 < james__> Hey
12:12 < sam_moore> Hi
12:12 < sam_moore> You guys can't see what's written in the channel whilst you're not in it, right?
12:12 < james__> How are things
12:12 < james__> Nope
12:12 < james__> Its only once you log in that you can read it
12:13 < sam_moore> I'm messing around with git a bit, I've sent an email about the progress report
12:13 < james__> Unless you log it there isn't any way to go back to previous convos
12:13 < sam_moore> I'd like to meet at 2pm on Monday if that's possible
12:13 < james__> sounds good
12:13 < sam_moore> I'm running irssi in screen on a server, so I'll have everything logged
12:13 < sam_moore> I'll look into making the logs available on git
12:14 < Callum__> think anyone would care if i go to G19 without the safety meeting? not like we're actually doing anything.
12:14 < james__> i'm using chatzilla so there is an inbuilt log function
12:15 < james__> Don't know tbh
12:15 < sam_moore> Callum__: No, but just try not do anything unsafe or the rest of us will get the blame :P
12:15 < Callum__> well, we could just meet somewhere else. Not like we need to go there
12:16 < sam_moore> Adrian did say that we could have people visit the lab, but we are responsible for anyone we bring in without the safety course.
12:16 < sam_moore> Ok, what's another good place?
12:16 < james__> No idea
12:16 < james__> The lab is kinda nice and quite/out of the way
12:16 < Callum__> ok well it should be fine. If it's a suitable meeting location than just go with it.
12:17 < sam_moore> I don't think it will be a big deal to go in G19, just don't use any equipment. It is a good place.
12:17 < Callum__> Yea. just making sure it wont be a problem
12:18 < Callum__> Im going to get some lunch.
12:40 < sam_moore> You need to use git@github.com:matchesucc/MCTX3420.git to commit using your ssh key
12:41 < sam_moore> If you give me your username, I think you can use https://github.com/matchesucc/MCTX3420.git
12:41 < sam_moore> You should be able to commit to git.ucc with your ssh key
12:42 < sam_moore> But I think we'll prefer github. It looks like it has more features. I'll use that as the main repository and keep git.ucc up to date in case github explodes.
12:43 < Callum__> username: Callum-
12:45 < sam_moore> Right, before you commit your changes, pull from the server
12:45 < sam_moore> If your repository is "up to date" with the server and you make changes, it is really easy
12:46 < sam_moore> If it isn't and you have changes that contradict something done on the server, we'll have to merge the repositories, and from what I've heard that's usually a pain
12:47 < sam_moore> We'll probably have to deal with it at some point.
12:48 < Callum__> how do you pull from github>
12:51 < sam_moore> Not sure how you do it in the gui, is there a "pull" or "fetch" button
12:52 < Callum__> not that i can see
12:52 < sam_moore> Hang on, I'll start windows and see if I can work out how to do it
12:53 < james__> are you logged in?
12:53 < sam_moore> Yes
12:53 < sam_moore> Cool, you can even edit the files entirely from github
12:54 < Callum__> you can?
12:54 < sam_moore> Well, I can
12:54 < sam_moore> I added Callum- as a collaborator; can you see the repository?
12:55 < Callum__> i could see it before
12:55 < Callum__> wait hang on
12:56 < james__> can you add me aswell?
12:56 < james__> username: firefields
12:57 < Callum__> i can edit it from the browser
12:57 < sam_moore> Done
12:57 < sam_moore> Excellent, that's a start
12:59 < james__> I can comment
13:00 < sam_moore> The browser editor actually looks pretty good
13:01 < sam_moore> Hmm
13:01 < sam_moore> We need to be able to pull from github to our own machines though
13:01 < sam_moore> So we can actually run code
13:02 < sam_moore> I can do it myself using the command line
13:02 < sam_moore> I'll see how to do it using the GUI
13:03 < james__> I am having a look through the documentation now trying to find it
13:07 < sam_moore> I wonder what happens when two people edit a file at the same time
13:07 < james__> Lets edit the readme?
13:08 < sam_moore> Alright.
13:08 < james__> I am currently editing
13:08 < james__> Can you get in?
13:09 < sam_moore> Yes, and it looks the same
13:09 < sam_moore> Make some changes and commit it, then I'll go and we'll see what happens
13:09 < james__> Done
13:09 < sam_moore> It says that you have committed since I started editing
13:10 < sam_moore> Whoops, but I could still overwrite it
13:11 < sam_moore> Ok, at least it gives us a warning, that's nice
13:11 < sam_moore> I think the key to this will be: 1) Try and work on different source files 2) Send lots of spam to IRC when you do stuff
13:11 < james__> Also
13:11 < james__> if you look in history my changes are still there
13:11 < sam_moore> Yeah, that's nice
13:12 < sam_moore> And I think we can go back to them
13:12 < james__> I am reading about this fork and pull method as well. Might work well
13:13 < james__> Essentially you fork the repo. Make changes then request for it to be pulled back into the master repo
13:13 < sam_moore> Yes, that will likely be the best way to go about it.
13:13 < james__> That way all changes can be viewed and then confirmed before going into the master copy
13:15 < james__> https://help.github.com/articles/fork-a-repo
13:15 < james__> and this https://help.github.com/articles/using-pull-requests
13:17 < sam_moore> I think in the long run it will be easier to use the command line when you work on your local machine
13:17 < Callum__> might just end up learning how to do it all from command line anyway
13:17 < sam_moore> All the tutorials seem to give the command line stuff
13:17 < Callum__> yea
13:17 < Callum__> suppose you could use the gui just to look at whats there
13:17 < sam_moore> `git add remote github git@github.com:matchesucc/MCTX3420.git`
13:17 < sam_moore> `git pull github master`
13:17 < sam_moore> Make changes
13:17 < sam_moore> `git add .`
13:18 < sam_moore> `git commit`
13:18 < sam_moore> `git push github master`
13:18 < sam_moore> Well, that's just directly going to the repository without forking it
13:19 < Callum__> is the add thing for staging?
13:19 < sam_moore> Yeah; you have to tell it what changes to stage to the commit
13:19 < Callum__> yea
13:19 < sam_moore> I think there is an option to automatically add all changed files
13:20 < sam_moore> I've always just manually done them, makes it easier to work out what I actually did before writing the commit message
13:20 < james__> Do we want to fork first
13:20 < sam_moore> Probably
13:20 < james__> That way someone can't make a change that is incorrect into the master
13:21 < sam_moore> Yes, this sounds good
13:22 < sam_moore> It won't let me fork it (probably because I'm the "owner")
13:24 < james__> I have forked succesfully
13:25 < james__> maybe branch?
13:25 < sam_moore> No, branches are different
13:25 < james__> Right...
13:25 < james__> well i made a branch for you? :P
13:26 < sam_moore> It doesn't matter if I directly edit the master repository anyway; I'll have to deal with all the pull requests before I do anything mysekf
13:27 < sam_moore> Yeah, we don't want to use branches just yet
13:28 < sam_moore> A fork is for each person working on the code; a branch is for when you want to make changes to something that might break parts of the code that already work
13:28 < sam_moore> For example: You have some really badly written code, but it does what it's meant to do
13:28 < sam_moore> So you make a branch "Improve networking code" or something like that
13:29 < sam_moore> Then you redo it, and only when you're done you merge your branch back into the master, getting rid of all the old code
13:30 < james__> Fair enough. I think i have made a pull request...
13:30 < sam_moore> Cool
13:31 < sam_moore> Now it should be in the main repository
13:32 < james__> yeah. worked
13:32 < sam_moore> I show up as the author of your changes, which is a bit silly
13:33 < Callum__> firefields opened this pull request 15 hours ago
13:33 < Callum__> what
13:34 < sam_moore> Is the clock on your local machine correct?
13:34 < Callum__> yea
13:34 < Callum__> matchesucc merged 1 commit into matchesucc:master from firefields:master 2 minutes ago
13:34 < Callum__> it also says that
13:34 < james__> Right.... Thats weird
13:35 < sam_moore> You guys should also be able to merge the pull requests, since you're collaborators
13:36 < Callum__> alright
13:36 < james__> Yeah. Should be able to
13:36 < sam_moore> So in summary: Fork the repository, make a pull request, go and check that nothing will break horribly, and then you can merge it
13:36 < james__> pretty much
13:36 < sam_moore> Cool
13:36 < sam_moore> We should put this in the progress report
13:37 < Callum__> Yea, detailing how we plan to collaborate the code
13:38 < sam_moore> So, should I put our IRC channel log into git?
13:39 < Callum__> probably a good idea
13:39 < sam_moore> That way people who weren't in the channel can read conversations they missed
13:39 < Callum__> unlikely be that useful but it would be good to have everything archived
13:42 < james__> Its always good to have everything archived
13:47 < Callum__> so noone else getting weird timestamps on github
13:47 < james__> not that i can see
13:48 < sam_moore> No, they all make sense to me
13:48 < Callum__> also my forked repo doesnt have the updated readme
13:48 < Callum__> iv added the upstream and tried fetch upstream and doesnt seem to do anything
13:48 < sam_moore> Try merging after the fetch
13:48 < sam_moore> fetch + merge = pull
13:49 < sam_moore> "Pull request" is a bit confusing, because you're not asking to pull from my repository; you're requesting that I pull from yours
13:49 < Callum__> yea, i got that. how do i do the merge?
13:50 < sam_moore> git merge upstream/master
13:51 < Callum__> yup that worked
13:51 < sam_moore> The GUI seems really terrible, I have no idea how to do this stuff with it
13:52 < sam_moore> I thought it might be easier if people weren't used to the command line, but there aren't that many commands
13:52 < Callum__> yea
13:52 < james__> Its easier to comment etc
13:53 < james__> But some of the functionality is horribly buried
13:53 < sam_moore> Do you get a text editor in the terminal when you want to commit?
13:54 < sam_moore> Oh well, whatever people find easiest
14:09 < Callum__> alright well i just submitted a pull request and accepted it
14:10 < sam_moore> Yep
14:10 < sam_moore> Callum- authored in 15 hours
14:11 < sam_moore> ?
14:11 < Callum__> ahahahahahaah
14:11 < sam_moore> Are you from the future?
14:11 < sam_moore> Does IRC mess with the space time continuum
14:11 < Callum__> it says 15 minutes ago for me, but the rest are 17 hjours ago
14:11 < Callum__> i must be from the future :o
14:12 < sam_moore> Someone's clock is out of skew
14:13 < sam_moore> That is really wierd
14:13 < sam_moore> You merged the pull request... before the file was changed... according to this history
14:14 < sam_moore> Oh!
14:14 < sam_moore> Is it because github is based in the US
14:14 < Callum__> but for you all the times are right apart from mine?
14:14 < Callum__> and for me all the times are wrong but mine
14:15 < sam_moore> Well it's only showing relative times
14:15 < Callum__> or do you get weird results from james as well?
14:15 < sam_moore> James times look reasonable
14:15 < Callum__> hmm. weird
14:15 < sam_moore> But notice how a lot of our stuff is on 3rd August, it's actually the 4th today
14:16 < Callum__> hmm yea
14:17 < sam_moore> I kind of think we should fix this, it's not a major issue but it will certainly be confusing
14:18 < sam_moore> Hey, wierd, the times look sensible in git.ucc
14:18 < sam_moore> http://git.ucc.asn.au/?p=matches/MCTX3420.git;a=summary
14:19 < Callum__> yea agreed
14:19 < Callum__> and that is kinda weird
14:20 < Callum__> i cant seem to find anything in account settings for a timezone
14:21 < Callum__> Anything else we need done by tomorrow? because i have a bunch of other stuff I'd like to get done
14:21 < sam_moore> While you're in account settings, you can set your author name for commits
14:22 < sam_moore> No, there's nothing urgent at this stage
14:22 < sam_moore> It's only the first week, and we only need 1 page
14:22 < sam_moore> We can be like "Here is a page of details on how we got Git to work" if we have to
14:22 < Callum__> Yea just we need to make sure we have enough for 1 page
14:23 < Callum__> hmm, true i suppose. set up IRC + git repo + discussed an outline on what is going to be required
14:24 < Callum__> Tbh he'l likely be happy if we just give him a summary of those meeting minutes
14:25 < Callum__> Anyway i'l divert my attention for now then. If you come across anything interesting or something that can be done il stick around in the channel
14:25 < sam_moore> Ok, thanks
14:26 < sam_moore> The first automatic commit of the irc logs seems to have worked!
14:26 < sam_moore> It also copies everything to git.ucc so we have a backup
14:26 < Callum__> nice
14:27 < sam_moore> The times might be correct as well :P
14:27 < Callum__> was just like "where is it? " then i realise i was looking at my forked repo
14:27 < sam_moore> Oh, just make sure you don't push anything to the git.ucc repo, because it doesn't go the other way
14:27 < sam_moore> Actuall I'll just remove everyone's keys to stop that from happening
14:28 < Callum__> haha, good to be sure. We need to make sure the other 2 have this sorted out. hopefully they rock up to the meeting tomorrow
14:28 < Callum__> oh wow. the logs go all the way back to when you first connected
14:28 < Callum__> haha
14:30 < Callum__> and according to me the logs were commited 15 hours ago
14:32 < sam_moore> Yeah, my logs will be the best to keep because I don't have to quit, so I should get everything
14:33 < Callum__> yea
14:34 < Callum__> Sigh. end of first week. already just written myself a fairly long list of things i need to do, which is by no means comprehensive
14:36 < sam_moore> I think I have a lot of work to do as well, I should do something for another unit
14:36 < sam_moore> See you later
14:36 < Callum__> later
15:32 < sam_moore> Ok, so pretty much anyone can comment on our stuff, and pretty much anyone can submit bug reports
15:32 < sam_moore> I'm going to say that's useful, and we should tell all the other teams about it
15:33 < sam_moore> Also I was supposed to go do something else, whoops
16:30 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has quit [Ping timeout]
18:35 < sam_moore> I changed my username because someone pointed out it sounds like "matches succ"
18:35 < sam_moore> But the old links should redirect
18:35 -!- justin_ [~justin@125.253.101.228] has joined #mctxuwa_softdev
18:36 -!- justin_ is now known as justin_kruger
18:37 -!- justin_kruger [~justin@125.253.101.228] has quit [EOF From client]
18:37 < sam_moore> Whoops
20:21 < Callum__> whoops?
21:20 < sam_moore> EOF From client
21:32 < sam_moore> I wonder how I can get people's forks to merge into the main repository without them having to issue a pull request
21:34 < sam_moore> Ah, I can't, because basically they have total control over their own fork
21:35 < sam_moore> Everyone just remember to fetch from upstream before you do work and issue a pull request when you are done, and hopefully things will stay relatively in sync.
21:50 -!- Callum__ [~chatzilla@220-253-137-113.dyn.iinet.net.au] has quit [Ping timeout]
--- Day changed Mon Aug 05 2013
00:00 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
07:51 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has joined #mctxuwa_softdev
08:13 -!- james__ [~chatzilla@CPE-58-160-245-152.wa.bigpond.net.au] has quit [Ping timeout]
10:29 -!- Callum_ [~androirc@130.95.109.236] has joined #mctxuwa_softdev
10:33 -!- Callum_ [~androirc@130.95.109.236] has quit ["AndroIRC - Android IRC Client ( http://www.androirc.com )"]
11:01 -!- james__ [~chatzilla@130.95.117.8] has joined #mctxuwa_softdev
11:19 -!- Callum [~Callum@130.95.248.224] has joined #mctxuwa_softdev
11:19 < Callum> hallo
11:29 < sam_moore> Hi
11:30 < sam_moore> I've spoken to Omid from the electronics team, they are in charge of the "microcontroller"
11:31 < sam_moore> Apparently they think a raspberry pi is a good choice
11:31 < sam_moore> I told him we thought we might need a lower level device to do the ADC/DAC in particular
11:32 < sam_moore> But they seem to think a raspberry pi by itself will work
11:33 < sam_moore> I'm kind of not sure who's responsible for this part, since we have "server hardware" and they have "microcontroller" and the raspberry pi is sort of both
11:33 < sam_moore> But if we agree we want a raspberry pi it probably won't be an issue
11:33 < sam_moore> Also apparently the unit coordinators recommended the raspberry pi as well
11:34 < Callum> Yea he did
11:34 < james__> Well we are using the raspberry pi as a server
11:34 < james__> And we can bootstrap microcontrollers onto it
11:34 < james__> So i guess we are in charge of the pi
11:35 < james__> And the are in charge of the hardware around it
11:35 < james__> *they
11:35 < sam_moore> Seems logical
11:36 < sam_moore> I don't know if you get email notifications; I did a block diagram using the ideas from our first meeting
11:36 < sam_moore> I kind of added some thoughts of my own
11:38 < sam_moore> Hopefully it makes sense
11:41 < sam_moore> If either of you gets time, would you like to start typing some of the progress report?
11:51 -!- Callum [~Callum@130.95.248.224] has quit [Ping timeout]
11:51 < james__> Do we have to submit a progress report? Because the guide to mechatronics project work that was on lms said we had to do some things for week 1 but not that
11:52 < sam_moore> I'm pretty sure we do
11:52 < sam_moore> Hang on
11:53 < sam_moore> All teams are expected to report next monday (see the report format in the unit outline/overview).
11:53 < sam_moore> All teams must review their sub-system and provide high level detail of what is required.
11:54 < sam_moore> All team must take an integrated approach. (I assume this means we have to start talking to other teams ASAP)
11:54 < sam_moore> I think the block diagram is a good start for the high level detail
11:54 < sam_moore> Then make some notes about how we're collaborating using git
11:55 < james__> git and irc
11:55 < sam_moore> We should decide whether Rowan or I will be the meeting convener
11:56 < james__> I think you
11:56 < james__> Just because you actually know what is going on
11:56 < sam_moore> Yes, I'm happy to do it and I think I can do a good job
11:56 < sam_moore> I just don't want to try and take over the group or something
11:56 < sam_moore> I have a good idea of what's going on, but we'll still need everyone to contribute
11:57 < sam_moore> I'm not a particular expert in any area, I just sort of know enough to have a general idea of how to approach things
11:57 < james__> Its important that the person who represents us has a firm knowledge base of whats possible and what we plan to do. Ultimately you are the person who best fills those requirements
11:58 < sam_moore> Ok, thanks, if everyone agrees we'll tell Rowan that when we meet
11:58 < sam_moore> And he can still talk to his friends for us, in fact the more of us that can communicate with the other teams the better
11:59 < james__> True
12:00 < james__> there isn't anything that says he can't talk to others
12:00 < sam_moore> Omid said his team was going to rotate the meeting convener, maybe we could try that later on once everyone has a better idea of what we're doing
12:00 < sam_moore> Anyway, I should do some other work, see you at 2pm
12:01 < james__> Yeah might be worth it. Gives everyone a taster
12:01 < james__> okay see you then
14:45 -!- justin_kruger [~justinkru@130.95.99.119] has joined #mctxuwa_softdev
15:00 -!- james__ [~chatzilla@130.95.117.8] has quit [Ping timeout]
15:34 -!- justin_kruger [~justinkru@130.95.99.119] has quit [EOF From client]
18:26 -!- Callum__ [~chatzilla@203.59.10.8] has joined #mctxuwa_softdev
20:38 < sam_moore> I'm going to try using the GitHub issues and milestones thing
20:39 < sam_moore> It might help with keeping track of what we need to do and what we've done
20:45 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
20:50 < sam_moore> I think we had some difficulty setting specific goals for this week
20:50 < sam_moore> I can try and put together some longer term goals as a start, if that's helpful
20:51 < sam_moore> Hmm
20:52 < sam_moore> We weren't given a lot of requirements that the guy was asking us about
21:06 < sam_moore> So the most important task seems to be "determine those requirements"
21:07 < sam_moore> Well, we talked about it in the meeting, but I'm going to make GitHub issues for each of the areas so we have a good record
21:32 < Callum__> Sam are you talking to yourself or am i not just seeing the other messages?
21:35 < sam_moore> Yeah, just ranting
21:36 < sam_moore> Well if you read the messages, then I was talking to you :P
21:37 < Callum__> haha just they seemed like they were structured like you were responding to someone
21:39 < sam_moore> I guess that's how I'm used to using IRC, people tend to say stuff broadly directed at anyone even though they won't get an immediate reply
21:39 < sam_moore> Or even if they don't need a reply
21:45 < Callum__> Fair enough
21:51 -!- justin_kruger [~justinkru@125.253.101.228] has quit [Ping timeout]
--- Day changed Tue Aug 06 2013
00:33 -!- Callum__ [~chatzilla@203.59.10.8] has quit [EOF From client]
10:48 -!- Callum__ [~chatzilla@203.59.10.8] has joined #mctxuwa_softdev
11:10 -!- james__ [~chatzilla@130.95.55.134] has joined #mctxuwa_softdev
12:05 -!- james__ [~chatzilla@130.95.55.134] has quit [Ping timeout]
12:28 -!- james__ [~chatzilla@130.95.89.85] has joined #mctxuwa_softdev
12:57 -!- james__ [~chatzilla@130.95.89.85] has quit [Ping timeout]
15:01 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
15:02 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
15:12 < Callum__> Is the only image processing that needs doing detecting the edge of the can? (and doing measuring how it changes with time etc)
15:30 -!- james__ [~chatzilla@130.95.89.3] has joined #mctxuwa_softdev
15:39 < Callum__> hey
15:39 < james__> what up
15:39 < sam_moore> Hi
15:39 < Callum__> Is the only image processing that needs doing detecting the edge of the can? (and doing measuring how it changes with time etc)
15:40 < sam_moore> Callum__: I think so
15:40 < james__> As far as i understand it yes
15:40 < Callum__> plus just booted up ubuntu on laptop. havent touched it since i did C programming a year ago xD
15:40 < sam_moore> It would also be nice to just have unprocessed images streamed to the GUI
15:40 < Callum__> yea what i was thinking
15:41 < Callum__> firstly, i can look into only processing a portion of the image, so we could get away with a larger resolution
15:41 < sam_moore> With the server side interface, I'm starting to think I'll ditch the apache2 webserver + CGI and integrate a minimal webserver + the lower level stuff into the same program
15:41 < Callum__> and openCV has a couple of algorithms to detect edges
15:41 < Callum__> so will likely look into one or 2 of those
15:41 < sam_moore> Just thinking about all the layers that are involved with the CGI approach... it probably won't turn out easier to code, and it will definitely be slower
15:42 < sam_moore> Plus, if we really care about performance, the apache2 webserver has a lot of features we don't care about
15:42 < james__> As long as i can access the raw files etc i should be able to display it via a gui
15:42 < sam_moore> The main one being it's designed to cope with multiple users well, and we want to configure it to only allow ONE user
15:43 < sam_moore> Yes, that sounds good
15:44 < Callum__> responding to who? me or james?
15:44 < sam_moore> Um... both now
15:44 < Callum__> haah
15:45 < sam_moore> Anyway, I've realised that our software will place an upper limit on the quality of the sensors
15:45 < james__> true
15:45 < sam_moore> Since we weren't given a requirement on quality, we should aim to get it as high as feasible
15:45 < sam_moore> But sensors group needs to have some idea of the upper limit that our software will place on quality
15:45 < Callum__> yea.
15:46 < james__> Start simple and ramp it up until the hardware breaks?
15:46 < sam_moore> No point streaming 1000 images a second if the JavaScript GUI can't send requests that fast.
15:46 < sam_moore> Yep.
15:46 < sam_moore> I know you're supposed to do task break downs and all that time management stuff, but the fact is we need to experiment with actual code to work out the best implementation
15:47 < james__> yeah. break it down into code and test code?
15:48 < sam_moore> Maybe?
15:49 < sam_moore> Well, we've got a high level idea of the software
15:49 < sam_moore> The first tasks should be "decide on the best software implementation of each level"
15:49 < sam_moore> To do that we need to test some minimalistic implementations
15:50 < Callum__> yea
15:50 < sam_moore> So, to set a goal for week 2, can it be "Decide on software implementation at each point in the block diagram"
15:51 < sam_moore> And "Determine upper limit on data transfer rate through software systems"
15:51 < sam_moore> The second one might take a bit longer.
15:52 < Callum__> githubs down for maintenance. hahah
15:52 < sam_moore> That happened like 2 seconds after I submitted a comment on the CGI stuff
15:53 < sam_moore> For a while it was showing me a Unicorn (?)
15:53 < Callum__> yea i got that before
15:53 < Callum__> when trying to access on my laptop
15:53 < sam_moore> Well... we have the git.ucc server
15:54 < sam_moore> But I was starting to like the Issues and Comments and all those actual features
15:54 < Callum__> hmm. doubt it will be down for long. will have to see
16:10 < Callum__> back up
17:22 -!- james__ [~chatzilla@130.95.89.3] has quit [Ping timeout]
18:09 -!- RowanHeinrich [~RowanHein@124.171.231.242] has joined #mctxuwa_softdev
18:10 -!- RowanHeinrich [~RowanHein@124.171.231.242] has quit [""]
18:34 -!- Rowan [~Rowan@124.171.231.242] has joined #mctxuwa_softdev
18:35 < Rowan> test test
18:35 < Rowan> ??
18:43 < Callum__> Hey
18:56 -!- github [~github@192.30.252.50] has joined #mctxuwa_softdev
18:56 -github:#mctxuwa_softdev- [MCTX3420] none pushed 2 new commits to master: http://git.io/ZDMvew
18:56 -github:#mctxuwa_softdev- MCTX3420/master 64b0cd9 Sam Moore: Investigate software for interfacing with hardware via HTTP requests...
18:56 -github:#mctxuwa_softdev- MCTX3420/master 5afaa23 Sam Moore: Merge branch 'master' of github:szmoore/MCTX3420
18:56 -!- github [~github@192.30.252.50] has left #mctxuwa_softdev []
18:57 -!- github [~github@192.30.252.48] has joined #mctxuwa_softdev
18:57 -github:#mctxuwa_softdev- [MCTX3420] none pushed 1 new commit to master: http://git.io/1nMEMA
18:57 -github:#mctxuwa_softdev- MCTX3420/master 9579cea Sam Moore: Makefile for webserver test...
18:57 -!- github [~github@192.30.252.48] has left #mctxuwa_softdev []
19:41 -!- Rowan [~Rowan@124.171.231.242] has quit [Ping timeout]
23:09 -!- Callum__ [~chatzilla@203.59.10.8] has quit [EOF From client]
23:21 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
23:21 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
--- Day changed Wed Aug 07 2013
00:24 -!- github [~github@192.30.252.60] has joined #mctxuwa_softdev
00:24 -github:#mctxuwa_softdev- [MCTX3420] none pushed 1 new commit to master: http://git.io/5DEPzw
00:24 -github:#mctxuwa_softdev- MCTX3420/master fe2fc11 Sam Moore: More work on webserver test...
00:24 -!- github [~github@192.30.252.60] has left #mctxuwa_softdev []
00:52 -!- github [~github@192.30.252.53] has joined #mctxuwa_softdev
00:52 -github:#mctxuwa_softdev- [MCTX3420] none pushed 1 new commit to master: http://git.io/r6aFJw
00:52 -github:#mctxuwa_softdev- MCTX3420/master e615433 Sam Moore: Add necessary HTTP response headers...
00:52 -!- github [~github@192.30.252.53] has left #mctxuwa_softdev []
01:00 -!- github [~github@192.30.252.48] has joined #mctxuwa_softdev
01:00 -github:#mctxuwa_softdev- [MCTX3420] none pushed 1 new commit to master: http://git.io/eZPWcQ
01:00 -github:#mctxuwa_softdev- MCTX3420/master b101617 Sam Moore: Automatic commit of irc logs
01:00 -!- github [~github@192.30.252.48] has left #mctxuwa_softdev []
10:07 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
11:15 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
11:15 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
19:36 -!- Callum__ [~chatzilla@203.59.10.8] has joined #mctxuwa_softdev
20:43 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
20:45 -github:#mctxuwa_softdev- [MCTX3420] none pushed 3 new commits to master: http://git.io/Dhb-Fg
20:45 -github:#mctxuwa_softdev- MCTX3420/master fe2fc11 Sam Moore: More work on webserver test...
20:45 -github:#mctxuwa_softdev- MCTX3420/master e615433 Sam Moore: Add necessary HTTP response headers...
20:45 -github:#mctxuwa_softdev- MCTX3420/master b101617 Sam Moore: Automatic commit of irc logs
20:45 -github:#mctxuwa_softdev- [MCTX3420] none pushed 3 new commits to master: http://git.io/Dhb-Fg
20:45 -github:#mctxuwa_softdev- MCTX3420/master fe2fc11 Sam Moore: More work on webserver test...
20:45 -github:#mctxuwa_softdev- MCTX3420/master e615433 Sam Moore: Add necessary HTTP response headers...
20:45 -github:#mctxuwa_softdev- MCTX3420/master b101617 Sam Moore: Automatic commit of irc logs
20:46 < sam_moore> Whoops, I was trying to make it less spammy and ended up making it spam us
20:53 < Callum__> haha nice work
20:58 < sam_moore> I have a minimal web server in C done
20:58 < sam_moore> It was surprisingly easy actually
21:05 -github:#mctxuwa_softdev- [MCTX3420] none pushed 2 new commits to master: http://git.io/Tui0FA
21:05 -github:#mctxuwa_softdev- MCTX3420/master c1321a7 Sam Moore: Test webserver with minimalist JavaScript...
21:05 -github:#mctxuwa_softdev- MCTX3420/master 1b2939d Sam Moore: Merge branch 'master' of github:szmoore/MCTX3420...
21:07 < sam_moore> Hooray, more spam
21:07 < sam_moore> Maybe I should just turn that off.
21:35 < Callum__> Maybe, its kinda goods to know when people commit things though, restricted to one line would be good
23:23 -!- Callum__ [~chatzilla@203.59.10.8] has quit [Ping timeout]
--- Day changed Thu Aug 08 2013
08:57 -!- Callum_ [~androirc@101.119.30.118] has joined #mctxuwa_softdev
08:59 -!- Callum_ [~androirc@101.119.30.118] has quit ["AndroIRC - Android IRC Client ( http://www.androirc.com )"]
14:12 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
14:12 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
--- Day changed Sun Aug 11 2013
11:18 -!- Callum__ [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:57 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
13:55 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
14:09 < Callum__> actually so much work to do already.
14:47 < sam_moore> Yep
15:15 < Callum__> well iv spent some time thinking over this, finally get around to writing it down. so iv probably spent close to 4 hours or so thinking about it (while doing other things) but really only spent an hour and a half according to diary
15:25 < sam_moore> We can always flesh out people's reports with graphs and stuff
15:27 < Callum__> well we doing 1 per person or group?
15:29 < sam_moore> 1 per person is the safest way to go I think
15:29 < sam_moore> We can always summarise them
15:30 < Callum__> well, tbh i think we should do 1 per person and summarise, but not necessarily go for a full page. thing is not sure how they expect us to do 1 page for 5 people AND be detailed
15:30 < sam_moore> Yep
15:31 < Callum__> so they might end up making it 1 per person anyway.
15:31 < Callum__> not very well thought out either way
15:31 < sam_moore> Let's just submit a multiple page report, with a bit from each person and a summary. If some people have less than a page that's fine.
15:32 < Callum__> Yea, agreed thats the best way to go about it. Unless they complain about it being too long
15:32 < sam_moore> That's why we include a summary :P
15:33 < sam_moore> Although, it might be difficult to make the summary actually summarise things, since everyone's already using pretty concise summaries
15:33 < sam_moore> Oh well, writing more stuff is safer to start with.
15:34 < Callum__> hmm. its kind of a pain though, write it all down in your book...oh look now i need to rewrite most of it for a report..
15:34 < sam_moore> Ah crap, I forgot about the book
15:34 < Callum__> haha
15:34 < sam_moore> Yeah... write it all down in the git commit messages, write it all down in the report, write it all down in the diary...
15:35 < sam_moore> I suppose in the "Real World" you have to do stuff like this
15:35 < Callum__> yea true
18:16 < Callum__> Not sure when il get round to writing what i'v done but il do it tonight some time. We finalising it tomorrow and printing it off then?
18:27 < sam_moore> Yes, I'd like to have it done before the meeting, or at least do it first thing in the meeting
18:27 < sam_moore> Then there are some things I need to ask everyone about to progress with my part of the code
18:27 < sam_moore> Since I'm sort of doing the bit in the middle that gets all the other bits to talk to each other
18:28 < sam_moore> I think it would be good to keep all the raspberry pi code in a single process, running in seperate threads
18:29 < sam_moore> But to do that we'd need everyone to use the same language
18:30 < sam_moore> Also we need to start thinking about the structure of the system in a bit more detail
18:31 < sam_moore> Like: We can't just transfer data straight to a GUI, because the user will want to use the GUI to start the experiment, then go away and come back later to view results (and possibly save them on their own machine)
18:32 < sam_moore> Also if we do transfer everything straight to the GUI we'd be limited by the speed of the GUI, and JavaScript requests are slow
18:34 < Callum__> yea
18:34 < sam_moore> Pretty easy to just dump stuff to a data file, but we probably also want the ability to do it in realtime
18:35 < sam_moore> Anyway, good luck, see you tomorrow
18:36 < Callum__> Alright, cya tomorrow them
23:08 -!- Callum__ [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit [EOF From client]
--- Day changed Mon Aug 12 2013
13:10 -!- justin_kruger [~justinkru@130.95.180.147] has joined #mctxuwa_softdev
13:10 -!- justin_kruger [~justinkru@130.95.180.147] has quit [EOF From client]
--- Log closed Tue Aug 13 07:49:14 2013
--- Log opened Tue Aug 13 07:55:27 2013
07:55 -!- sam_moor1 [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
07:55 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
07:55 -!- Irssi: Join to #mctxuwa_softdev was synced in 9 secs
07:59 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has quit [Ping timeout]
10:01 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:01 < Callum> So apparently we have a new member..
10:12 < sam_moor1> Yep, Jeremy Tan, apparently he's doing CS as well?
10:13 < sam_moor1> So, with the two sources of confusion we have so far...
10:13 < sam_moor1> 1. The Camera - Adrian thinks we need one, Sensors team doesn't, everyone needs to recheck calculations
10:14 < sam_moor1> The "Can" team wanted to use some kind of tiny can with a relatively thick wall, Adrian recommended a Coke Can, Oliver used Rockstar Cans last year and recommended them
10:14 < Callum> well, they may be right in saying we may not be able to do any proper processing on it
10:14 < Callum> but we will need one to relay whats actually HAPPENING in the system
10:14 < Callum> surely the sensors team see that..
10:15 < sam_moor1> I guess, I told them in their meeting it would probably be useful
10:15 < sam_moor1> Anyway...
10:15 < sam_moor1> We all got in trouble for not communicating between teams well enough
10:15 < sam_moor1> So now the 9am session is for teams to communicate (at least one member is meant to go)
10:15 < Callum> how many people went to the lecture?
10:15 < sam_moor1> About 6
10:16 < Callum> haha
10:16 < sam_moor1> I think only one team didn't have a representative, electronics?
10:16 < Callum> hmm. thats not too bad then.
10:16 < Callum> but still, not really our fault communication was poor. we attempted to set up meetings and to convene with others.
10:17 < Callum> The only other thing we could have done is actually told people, right we're meeting at this time. come or dont (then you'd have like 1 or 2 people at most)
10:17 < sam_moor1> Yeah, I really think this project needed some kind of direction at the start
10:17 < sam_moor1> I think that's what we're going to have to do
10:18 < sam_moor1> We're going to have to be more assertive; we think we need Arduinos, electronics team doesn't seem to know, we should just say "Right, we're using some Arduinos"
10:18 < sam_moor1> At least that's the vibe I got from Adrian
10:18 < sam_moor1> Also what happened to my name
10:18 < Callum> hmm ok. it would help if we had the team convener meeting to do that
10:18 -!- You're now known as sam_moore
10:19 < Callum> and no idea
10:19 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
10:20 < sam_moore> Also, so far we've neglected physical details a bit
10:20 < sam_moore> Lastly, we need to start ordering things as soon as possible
10:21 < sam_moore> Oh, and we (as in, all teams) are supposed to have a schedule of tasks agreed upon
10:21 < sam_moore> Right, I need to have lunch
10:21 < sam_moore> *breakfast
10:22 < sam_moore> Then I guess I can panic some more
10:23 < Callum> haha. we'v only had 2 weeks to work on this really. We can pull it back.
10:24 < sam_moore> The scary part is where they do a very similar project every year and no one ever succeeds :S
10:25 < sam_moore> They seem to think simply throwing the entire class at it (instead of one team of 6) will make it work this time
10:25 < sam_moore> Oh well, they can't just fail the entire class
10:25 < sam_moore> It would be nice to actually succeed though
10:30 < Callum> Yea, well even if it doesnt work a lot of the marking will come from the shit like the diary
10:30 < Callum> but yes, it would be nice to see a can go boom
11:57 < Callum> alright so am i still doing the taking images thing and storing it? Coz we pretty much need the camera. what we do with the images though dno
11:58 < sam_moore> Just take the images and save them to a file for a start I guess
12:00 < Callum> alright.
12:13 < Callum> I might reinstall linux on my laptop, stick with ubuntu or go debian?
12:51 < sam_moore> I'd recommend debian
12:51 < sam_moore> It's not that much harder to use, but it's closer to raspian
13:06 < Callum> alright. any port better to use?
13:15 < sam_moore> Oh, stick with "stable"
13:15 < sam_moore> ie: Wheezy
13:16 < sam_moore> No matter what you do, do NOT get "Sid"
13:18 < Callum> nah i meant the architecture
13:20 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:20 < jtanx> yallo
13:20 < Callum> hey
13:21 < sam_moore> Hi
13:23 < jtanx> i should say that right now I cant access g19 because I haven't gone through the safety induction yet
13:23 < sam_moore> Callum: The architecture shouldn't matter too much
13:24 < Callum> we can let you in. As long as you don't do anything stupid it will be fine
13:24 < Callum> alright
13:25 < sam_moore> We can just compile code on the RPi itself, or if that's too slow (I doubt it) there will be cross compilers
13:25 < Callum> true
13:25 < sam_moore> It's just nice to be able to run test software in debian
13:25 < jtanx> so do you have access to an/the RPi and the other microcontrollers, or is that tba
13:26 < sam_moore> We have access to "an" (not "the") RPi
13:26 < Callum> rowan has an arduino too
13:26 < sam_moore> Ah, that's good
13:26 < Callum> atleast i think he said he did
13:27 < Callum> just dont know the exact hardware we're using and won't get access to it for a few weeks atleast (hopefully not too long. need to make sure other teams are doing everything on time)
13:27 < Callum> speaking of which we should write up a time schedule for our team and make sure a project one gets written up
13:27 < sam_moore> Adrian said to allow for 6 weeks ordering time
13:28 < sam_moore> Yeah, the entire class needs to agree on a schedule
13:28 < Callum> hmm. true i guess, by the time adrian gets the bill of materials, clears it and the stuff gets ordered in
13:28 < Callum> but at the current rate shit wont be chosen in time
13:29 < jtanx> i'm surprised that not much has been done in three weeks
13:29 < sam_moore> The problem is there are too many people working on this
13:29 < Callum> its been less than 3 weeks though
13:30 < sam_moore> Right. Let's make a schedule then.
13:30 < sam_moore> Just a second
13:30 < Callum> we only got the teams on like wed first week
13:30 < jtanx> ok
13:31 < Callum> And having 5-6 people per team across 6 teams without a project manager...makes sense
13:31 < sam_moore> Haha
13:31 < sam_moore> Ok, so I have an excel document
13:31 < sam_moore> Anyone here actually made a schedule for a project?
13:32 < jtanx> nope
13:32 < sam_moore> Welp
13:32 < jtanx> ms project was suggested in cits3200
13:32 < jtanx> nice gantt chart and everything
13:32 < sam_moore> Does it allow collaborative editing?
13:33 < sam_moore> Also, is there an open source version :P
13:33 < sam_moore> Ok, I've shared a google spreadsheet
13:34 < jtanx> not likely haha although there was something called ms project server which might allow collaboraitve stuff
13:34 < jtanx> you can get this all off msdnaa
13:34 < jtanx> but since noone's used it before it might be better to stick with excel
13:34 < sam_moore> Ok, let's just try and think what we need to get other teams to do, and what we need to do for other teams
13:35 < Callum> HAHAH
13:35 < sam_moore> Well
13:35 < Callum> Hello everyone,
13:35 < Callum> It appears that the lab signup sheets for GENG4402, the MECH/MCTX/Oil and Gas students have dissapeared from the desk at the stairwell.
13:35 < Callum> Can you please check if you have it and return it as soon as possible? Many students still need to sign up. I will then scan and put online once complete so that you can check when your lab is.
13:35 < Callum> PLEASE RETURN THE SHEETS.
13:35 < Callum> Thank you
13:35 < Callum> thats hilarious
13:35 < jtanx> ~~
13:36 < sam_moore> Oh dear
13:36 < sam_moore> It strikes me that something like a Makefile, except a bit more GUI, would be good for this
13:37 < jtanx> wait
13:37 < jtanx> you lost me there - what are you referring to
13:37 < Callum> ^
13:37 < sam_moore> To compile C projects that involve several files, you use something called "make"
13:37 < sam_moore> You write a Makefile for it
13:37 < jtanx> yah
13:38 < sam_moore> The Makefile has a list of targets and what they depend on
13:38 < sam_moore> And how to make them once their dependency exists
13:38 < jtanx> ok
13:38 < sam_moore> Then you run "make" and it reads the make file and magically compiles everything in the right order
13:38 < Callum> yea we get what make is
13:39 < sam_moore> Ok, I was referring to the list of tasks
13:39 < sam_moore> That depend on each other
13:39 < jtanx> ook
13:39 < jtanx> well
13:39 < sam_moore> It was a bad joke
13:39 < sam_moore> I am not seriously suggesting we use make to plan the project
13:40 < Callum> hahahah
13:40 < Callum> now that i would like to see :p
13:40 < jtanx> um just with git
13:40 < jtanx> i've never done pull requests before
13:40 < sam_moore> Neither had we until last week :P
13:41 < sam_moore> Basically you make your own fork of the repositoy, and there is a pull request button that lets you ask to have the changes merged back into the upstream repository
13:42 < jtanx> ahh
13:42 < jtanx> ok
13:51 < jtanx> well that was pretty straight forward - I understand it now
15:06 < sam_moore> I made a #mctxuwa channel for group representatives
15:06 < sam_moore> I don't know if people will use it, but at least it's an attempt at something
15:47 < Callum> tbh it makes more sense for us all to use one
15:47 < Callum> unless the one for everyone is actually used often enough to justify us having our own
16:11 < sam_moore> Yeah, there's nothing stopping people that aren't group representatives from joining it
16:11 < sam_moore> It will certainly make it easier if there are more people talking to other teams directly than just the representative
16:11 < sam_moore> We might still want our own for discussing the details of code
16:12 < sam_moore> Speaking of which, I'm currently tidying up the test webserver code I wrote
16:17 < sam_moore> Does: FunctionName, variable_name, Structure, Extern_FunctionName, g_global_variable seem suitable
16:19 < sam_moore> Well, unless anyone objects before I've satisfied my obsessive compulsive urges, that's what it will be
16:19 < sam_moore> Until then, it'll probably take a while, and find-replace is fast
16:20 < sam_moore> Other than that, the style of comments/documentation in the test webserver is what I'll keep using
16:22 < sam_moore> If someone wants to actually write code... it would be good to have a watchdog program that uses exec to start the main program and detects SIGCHLD when it crashes
16:22 < sam_moore> Then we can put some kind of emergency "Turn all the things off!" in that
16:57 < jtanx> what about something like this? http://stackoverflow.com/questions/696839/how-do-i-write-a-bash-script-to-restart-a-process-if-it-dies
16:58 < sam_moore> Oh cool, that looks good
17:03 < sam_moore> I'll be back later tonight, bye
17:21 < jtanx> umm
17:21 < jtanx> wow okay you're actually writing a webserver from the ground up?
17:22 < jtanx> what if you just had software that got the results and then wrote that to a html/php file
17:22 < jtanx> then you can just run nginx and serve it up
17:45 < jtanx> or what about if you ran an sql server, so you update the database from your program
17:46 < jtanx> then you can either use php to interface with the database
17:46 < jtanx> or you could make some sort of api and serve the data in json format
17:50 < jtanx> sqlite
19:12 < jtanx> you could do something like this: http://pastebin.com/mEdbu4jR
19:13 < jtanx> where instead of outputting html, you could make it output json, which is then interpreted by your actual webpage
20:44 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit [Ping timeout]
20:49 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
20:56 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:40 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
--- Day changed Wed Aug 14 2013
07:58 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:13 < jtanx> I've done a version using fastcgi, which was surprisingly quite easy to set up
09:13 < jtanx> see here: https://github.com/jtanx/MCTX3420/tree/master/testing/fastcgi-approach
10:41 < sam_moore> That looks interesting, I'd prefer that to the PHP/database solution
10:42 < sam_moore> My concern is: You have to query the web server to start the process, even though it keeps running
10:42 < sam_moore> Also, I know "write a custom HTTP server" sounds scary, but it does actually work
10:43 < jtanx> nah
10:43 < jtanx> fastcgi
10:43 < jtanx> the process is started once and always runs
10:43 < jtanx> so you have a request loop
10:44 < jtanx> wait
10:44 < jtanx> how do you envision it working?
10:45 < sam_moore> Oh, right, I see how the fastcgi approach would work, it's basically the same idea; you have something responding to HTTP queries in one thread, something dealing with sensors/actuators in seperate threads
10:45 < jtanx> yeah
10:46 < jtanx> except that you don't have to worry about maintaining your own webserver
10:46 < sam_moore> Cool
10:46 < sam_moore> I do think that the HTTP server isn't that hard, and it's mostly working
10:46 < sam_moore> But we can probably switch to fastcgi
10:48 < sam_moore> I mean, we still have to parse a query string right?
10:48 < jtanx> well yes
10:48 < jtanx> if your request was
10:48 < jtanx> http://blah/cgi/?key=value&anotherkey=value2
10:48 < jtanx> you'd get back key=value&anotherkey=value2
10:48 < jtanx> as query string
10:50 < jtanx> try it out here: http://124.169.120.181:8080/cgi
10:51 < jtanx> (hopefully that forwards ok)
10:51 < sam_moore> Yep, that's cool
10:51 < sam_moore> The HTTP server I wrote basically does that
10:51 < sam_moore> But if it really bothers you, I'm fine with switching to fastcgi :P
10:52 < jtanx> well whatever works
10:52 < jtanx> but I thought it might be more maintainable if you used something that already exists :P
10:52 < sam_moore> Yeah, but thinking about it, what maintainence does the HTTP server require?
10:53 < sam_moore> Oh well, it's a good idea
10:53 < jtanx> for this situation not much
10:57 < sam_moore> We can pretty easily start with a structure that would allow us to switch, but I'd lean towards keeping the custom HTTP server
10:58 < sam_moore> Have you done multithreading in C before?
10:58 < jtanx> in windows yes
10:58 < jtanx> on linux not really
10:58 < sam_moore> Ah, I've only done it on linux
10:58 < jtanx> i did a bit in operating systems
10:59 < jtanx> but kinda forgot
10:59 < sam_moore> It shouldn't be too hard for our purposes
11:00 < jtanx> that thing with running a custom webserver is that if anyone wants to reuse this in the future, i doubt they'd really like the idea of that
11:01 < jtanx> say they had some new fangled thing that requires php
11:01 < jtanx> which isn't going to work
11:01 < jtanx> but with a standard webserver like apache or nginx, it's really easy to just install an extra addon
11:02 < sam_moore> I suppose... what would they need the new fangled php thing for?
11:03 < jtanx> well that's the thing - for now I don't know, but it could be required
11:03 < sam_moore> Yeah, good point
11:03 < sam_moore> Ok, another reason to use an existing web server, is we might require some advanced features if we want to be serious about the safety stuff
11:04 < sam_moore> For example, it would be a fair amount of work to add SSL to make the custom thing do https
11:04 < jtanx> oh yeah
11:04 < jtanx> that too
11:04 < sam_moore> Also we might want some authentication on it
11:04 < jtanx> nginx/apache are highly customisable
11:05 < sam_moore> I've never used nginx, what are it'
11:05 < sam_moore> s advantages over apache2?
11:05 < jtanx> nginx
11:05 < jtanx> yup
11:05 < jtanx> its really good
11:05 < sam_moore> Haha
11:05 < jtanx> a lot of sites use it because it's fast
11:05 < sam_moore> Fast is good
11:05 < jtanx> faster than apache
11:05 < sam_moore> Sold
11:05 < sam_moore> Well, we only need one user as well
11:05 < sam_moore> In fact, we deliberately do not want to have multiple clients able to use the thing at the same time
11:05 < jtanx> haha true
11:07 < sam_moore> Ok, so I think you've convinced me to use fastcgi
11:07 < sam_moore> Most of the custom HTTP server was reused code, so I didn't waste too much time on it
11:07 < jtanx> haha ok
11:07 < jtanx> have you written one before?
11:09 < sam_moore> Not specifically a HTTP server, but I've written a project for posix systems with a fair bit of networking
11:09 < sam_moore> git.ucc.asn.au/?p=matches/swarm.git
11:10 < jtanx> nice
11:10 < sam_moore> It allows you to run a shell, eg: bash accross multiple machines at once
11:11 < sam_moore> Not as useful as I thought it might be, but it was fun
11:12 < jtanx> heh
11:12 < jtanx> what did you end up using it for?
11:13 < sam_moore> I was setting up a programming competition where you have AIs play against each other
11:13 < sam_moore> I wanted to make a round robin
11:13 < sam_moore> So I had a bash script setup to do that, but then I got impatient, because it would have to run the games in order
11:14 < jtanx> oO
11:14 < sam_moore> Well it turned out no one entered the competition, so I probably didn't need to go overboard
11:14 < sam_moore> But maybe I can use it for something else
11:15 < sam_moore> For the threading I'm thinking of using pthreads
11:16 < sam_moore> The alternative is OpenMP, but it's more suited to numerical computation, rather than having seperate things talking to each other
11:16 < jtanx> okay
11:17 < sam_moore> My goal for this week was to have the framework started, so we just have some really basic threads running and then we can start implementing them
11:17 < jtanx> yeah that would be good
11:18 < sam_moore> If you want to do some work with the fastcgi part so that we'll be able to parse the query strings, that would probably be a good start
11:18 < sam_moore> We don't have the exact details of pretty much anything yet
11:18 < sam_moore> Maybe talk to James/Rowan about how the GUI is going to query the server
11:19 < sam_moore> Also, did you see my suggested naming convention?
11:19 < jtanx> no
11:20 < sam_moore> I don't really mind, although I'd prefer not to have hungarian notation
11:20 < sam_moore> As long as it'
11:20 < sam_moore> s consistent
11:21 < sam_moore> But the suggestion was: FunctionName, variable_name (local or member), Structure, ENUMVALUE, Extern_FunctionName, g_global
11:21 < jtanx> okay I'll try to keep to that
11:22 < sam_moore> Cool, I should probably go do something else
12:33 < jtanx> i gotta go
12:33 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
15:39 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:22 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
16:23 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
16:43 -!- jtanx_ [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:56 < jtanx_> a beagleboard
16:56 < jtanx_> hmm
16:58 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
16:58 -!- jtanx_ is now known as jtanx
17:03 < jtanx> is it the beaglebone black?
17:03 < jtanx> sounds interesting
17:04 < sam_moore> They didn't specify
17:04 < sam_moore> Oh right, I accidentally cut out his message
17:04 < sam_moore> tl;dr "Beagle Board"
17:04 < jtanx> the beagle board is around $125 though
17:04 < sam_moore> Probably the Beaglebone black
17:04 < sam_moore> Oh really
17:04 < sam_moore> Heh
17:04 < jtanx> yeah
17:05 < jtanx> the beaglebone black is $45
17:05 < jtanx> but just looking the A/D converter on the black has a max voltage of 1.8v
17:05 < sam_moore> That's probably what they meant, since they said it is "not much more expensive"
17:05 < sam_moore> That should be fine; the sensors team says things are in mV
17:05 < jtanx> okay
17:05 < jtanx> that's good
17:05 < sam_moore> Really though... electronics should be asking the sensors team stuff like this
17:06 < jtanx> heh yeah
17:06 < sam_moore> They should probably have asked us if it was feasable for software
17:06 < sam_moore> Maybe they had someone who knew it would be, but still
17:06 < sam_moore> It looks like it is anyway, so crisis averted
17:07 < jtanx> just with the sensors, I think that the diferences need to be amplified so it covers the full range of the A/D converter
17:07 < sam_moore> Yes, the sensors guy knows that
17:07 < jtanx> yeah so if its only 1.8v there's less range than 0-5v
17:08 < jtanx> is that compensated enough by having a 12 bit a/d converter vs a 10 bit (i think arduino is 10 bit) converter
17:10 < sam_moore> I think so; you get ~4x more resolution from the 12 bit ADC and lose ~3x from the lower range
17:10 < sam_moore> Also there's no set requirement yet on what the resolution should be
17:11 < jtanx> true
17:11 < jtanx> well in any case the bb black sounds quite nice
17:11 < sam_moore> Yep, it'll probably be good to use
17:14 < sam_moore> I'm much happier now that we actually have regular verbal communication with the other teams
18:23 < sam_moore> I'm looking into getting doxygen working for this
18:59 < jtanx> for the documentation?
18:59 < jtanx> seems good, but never used it before myself
19:01 < jtanx> looks a lot like javadoc
21:26 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
21:34 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:54 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
--- Day changed Thu Aug 15 2013
01:20 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
01:20 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
07:58 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:21 < jtanx> hey
08:22 < jtanx> just a suggestion for the logging functions, but you can use macros
08:22 < jtanx> to get the function name (and even file name)
08:22 < jtanx> v
08:22 < jtanx> http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
08:23 < jtanx> so you can do stuff like #define Log(level, fmt, ...) LogReal(level, __func__, fmt, __VA_ARGS__)
08:25 < jtanx> it should be c99 conformant
09:15 < jtanx> I created a pull request anyway
09:33 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
13:33 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:39 < sam_moore> Yeah, I probably should have looked at that
13:46 < jtanx> back to the rpi+arduino
13:47 < jtanx> didn't they know about the beagle board black, or can that not be used for some reason?
13:48 < jtanx> beagle bone* black
14:20 < sam_moore> I don't know what model they were looking at exactly
14:20 < sam_moore> I told them the Beagle Bone was about $50, I haven't had much time to research it myself
14:20 < sam_moore> I didn't know about the Beagle Board/Bone, which was why I suggeste the RPi + Arduino
14:20 < sam_moore> They originally were just considering an Arduino
14:21 < sam_moore> Which would not have been fun for the remote interfacing stuff
14:21 < sam_moore> Well we could do it, but we wouldn't be able to have a nice web browser controlled GUI, probably some dedicated networked server/client with a GUI program installed on the client machine
14:22 < sam_moore> Also image processing would have been interesting
14:23 < sam_moore> Next time there's a combined groups meeting, hopefully we can talk to them more
14:24 < jtanx> yeah
14:24 < jtanx> there's quite a few
14:24 < jtanx> there's a beagleboard which is ~150
14:24 < jtanx> beaglebone which is ~90
14:24 < jtanx> beaglebone black which is ~50
14:24 < sam_moore> Right
14:24 < sam_moore> So they were probably looking at the beaglebone for $90
14:24 < jtanx> yeah probably
14:24 < jtanx> it's weird because the black version has better specs, from what i can see
14:25 < sam_moore> But still, even for $150, if it saves us 10 hours of writing code to interface the RPi with Arduinos, it will be worth it
14:25 < jtanx> yeah exactly
14:25 < sam_moore> Arduinos themselves cost a bit
14:25 < jtanx> well
14:25 < jtanx> you can get equivalents off ebay
14:25 < jtanx> like an uno is $10
14:26 < sam_moore> The only issue with the beaglebone to avoid having to use arduinos as well, is whether it has enough ADC by itself
14:26 < jtanx> yeah
14:26 < jtanx> well how many sensors are needed
14:26 < sam_moore> If it doesn't, you might have to add an Arduino or two anyway
14:26 < jtanx> you could just add on an adc chip
14:26 < sam_moore> Yes, or something like that
14:27 < jtanx> the beaglebone has like a bazillion gpio ports
14:31 < sam_moore> Well without getting into the specific details, it sounds like we should recommend they use that
14:32 < sam_moore> Apparently the sensors team will have a list ready by monday, which will be good
14:33 < jtanx> that'd be good
14:35 < jtanx> when are combined group meetings? just the 9am slot?
14:36 < sam_moore> 9am Tuesday is the "official" time picked by Adrian, 2pm Wednesday is the time that we agreed between the teams
14:36 < sam_moore> I'm going to go to both, if more people want to come from the team that's also good
14:37 < sam_moore> Realistically not everyone is going to come, so I'll have to send emails a lot
14:38 < jtanx> ok
14:39 < sam_moore> What account do you need to be invited to the dropbox?
14:39 < sam_moore> I think Alex invited everyone using their student email
14:40 < sam_moore> Oh right, you wouldn't have been in the list that he used if you enrolled late
14:40 < jtanx> yeah, through student email would be good
14:41 < jtanx> last year's experiment ran with an arduino diecimila which only had 5 analogue inputs
14:41 < jtanx> any reason why we need more?
14:41 < jtanx> sorry that's 6
14:42 < sam_moore> I think the estimate was: 4-6 strain gauges, 1 temperature sensor, 1 microphone, 2 pressure gauges, 1 (maybe 2) USB webcam
14:43 < jtanx> ok
14:44 < jtanx> At that rate you would definitely need something with more analogue inputs
14:45 < sam_moore> We also might need a DAC for one of the pneumatics team's devices
14:46 < sam_moore> But you can't get that on a microcontroller, there'd have to be a seperate module
14:46 < jtanx> yep
14:48 < jtanx> it'd be no point interfacing an arduino to the rpi/beaglebone if all you want is more analog inputs
14:49 < sam_moore> If you can get modules for ADC that can talk to a rpi/beaglebone, then yes
14:49 < jtanx> yeah
14:49 < jtanx> I don't think they're too hard to wire up
14:50 < sam_moore> I think the electronics team should be considering all this, but I don't know since we haven't verbally spoken
14:50 < sam_moore> Well not at length anyway
14:51 < sam_moore> Just when I happen to bump into Omid
14:51 < jtanx> hmm
14:54 < sam_moore> This project is probably going to be a good lesson in "Why you need a project manager"
14:55 < jtanx> so true
14:59 < jtanx> with the web interface, what sort of update times are we looking at?
15:00 < sam_moore> My tests with apache2 and the custom HTTP server showed it took about 50us for jQuery to get an AJAX request
15:01 < sam_moore> There was only one data point returned each time though, we can probably optimise it a bit by returning multiple data points with a request
15:01 < jtanx> yeah
15:07 < jtanx> I wonder what sort of performance impact running one (or two) cameras would have on the rpi/beaglebone
15:44 < jtanx> urgh
15:45 < jtanx> I was wondering why my nginx config wasn't working
15:45 < jtanx> until I realised that gedit was creating a backup copy of the config file
15:45 < jtanx> so nginx was reading both the original and backup
17:28 < sam_moore> That's wierd, you'd think it would only read one config file
17:34 < jtanx> well it was in a config directory
17:36 < sam_moore> Oh, ok
18:49 < jtanx> so the current idea i have with the web thing is
18:49 < jtanx> you can query it like http://domain/api/module?key=value&key=value2
18:50 < jtanx> and then you could return something in json format or whatever is most suitable for the ajax query
19:46 < jtanx> you can test it at http://mctx.us.to:8080/apoi
19:46 < jtanx> woops, http://mctx.us.to:8080/api
19:46 < jtanx> the only 'module' which will give a response of '200 OK' is sensors
19:47 < jtanx> which currently spits back any arguments you pass to it
19:47 < jtanx> eg http://mctx.us.to:8080/api/sensors?k=v
19:50 < jtanx> hopefully it doesn't break
20:44 < sam_moore> I'll take a look
20:45 < sam_moore> Looks good
20:45 < sam_moore> I'm writing a dummy thread for a sensor now
21:04 < jtanx> the code behind it (in the cgi module) is a bit clunky right now though
21:04 < jtanx> is there a meeting tomorrow?
21:05 < sam_moore> I don't think so, sorry
21:06 < jtanx> ok that's alright
21:06 < sam_moore> Things aren't urgent (yet)
21:07 < jtanx> heh
21:12 < sam_moore> For the progress report: I'd like everyone to write a page individually, then we can summarize those in the group report
21:12 < sam_moore> Well you don't have to write a whole page, and if you miss a week or so it's not a big problem
21:16 < jtanx> ok
21:17 < jtanx> i'll try to remember that
21:18 < jtanx> do you think we need to keep track of how long we spend on this project
21:18 < jtanx> for that 'cost estimate'
21:28 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
21:34 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:23 < sam_moore> For the cost estimate: Yes, we are supposed to have a technical diary (hand written)
22:23 < sam_moore> Including all notes and times worked on the project
22:40 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
--- Day changed Fri Aug 16 2013
08:00 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:48 < jtanx> I was wondering what sort of model you have for reading/storing sensor values and controlling actuators
10:02 < sam_moore> At the moment each sensor has a thread that continuously polls the sensor and dumps data to a binary file
10:03 < sam_moore> For reading there is a thread that fills a buffer from the file when it gets a request
10:04 < sam_moore> It might be better to change to a single thread for sensors/actuators though
10:04 < jtanx> yeah, I was about to say if it was necessary to have one for each
10:05 < sam_moore> Probably not, if you had varying polling speeds it would be useful, because you could poll the fast sensors seperately from the slow ones
10:05 < jtanx> how do you wish to pass the data to the fcgi module?
10:06 < jtanx> right now
10:06 < jtanx> i've kinda set it so
10:06 < jtanx> there's this thing called a ModuleHandler
10:07 < jtanx> so you can pass it some data (tba what this is), and it also receives the query string from the use
10:09 < sam_moore> Well, the ModuleHandler gets called whenever the right HTTP request is made right?
10:10 < sam_moore> So, that function retrieves the data it needs to respond to the request
10:10 < jtanx> well rightnow the typedef is
10:10 < jtanx> typedef void (*ModuleHandler) (Data *data, char *params);
10:10 < jtanx> so it's up to you to write a module handler (eg SensorsHandler)
10:11 < sam_moore> Ok, data's a bit of an ambigous name, so is that something passed to the ModuleHandler when the FastCGI gets a request?
10:11 < jtanx> well the data thing was a placeholder for whatever sensors/actuators data there was
10:11 < sam_moore> Is it meant to be sensor data, or is it a value that the user has passed through HTTP
10:11 < jtanx> the query string is part of params
10:11 < sam_moore> Ok, right, that makes more sense
10:12 < sam_moore> My view had the ModuleHandler getting the appropriate data itself
10:12 < jtanx> Ok
10:12 < sam_moore> Given the params
10:13 < jtanx> I'm just not really used to using global variables
10:13 < sam_moore> The global sensors array?
10:13 < jtanx> yeah
10:13 < jtanx> i take it that's where you access data from?
10:14 < sam_moore> Yes
10:14 < jtanx> oh yeah one more thing, when you get a request, should it only return the latest data?
10:20 < sam_moore> We should probably think some more about this as a whole group
10:20 < sam_moore> So, you have a sensor that can (probably) poll a lot faster than you get requests via jQuery
10:21 < sam_moore> You can write it so that you only actually query the sensor when you get a request, but then you're wasting the chance to get data that could be useful
10:22 < sam_moore> Or you can have it so that the sensor is continuously polling (What my code is simulating at the moment)
10:22 < sam_moore> With the continuosuly polling sensor; when you get a request, you can either return the most recent block of data you got
10:23 < sam_moore> Or you can have it so that the data will be sent in sequential order (which is what my code currently does)
10:23 < jtanx> hmm
10:23 < sam_moore> I'm pretty sure continously polling is better than querying each time you get a request, since after all this is an experiment and you want the data
10:23 < jtanx> yeah
10:24 < jtanx> I agree with you there
10:24 < jtanx> so you're saying, continuously poll and log the results
10:24 < jtanx> and when a request comes in, send back all the data up to the point when the last request came in
10:25 < sam_moore> Well that's what the server program I wrote simulates at the moment.
10:25 < sam_moore> However it might be more sensible for the request to just get the most recent data.
10:25 < jtanx> hmm
10:25 < sam_moore> Ah, yeah that's probably better actually
10:25 < jtanx> then you're logging more points than youdisplay
10:26 < sam_moore> Yes, but you can always add a function to pull all the data points and save to a csv or something like that.
10:26 < sam_moore> In fact I think we'd want to do that.
10:27 < jtanx> yeah ok
10:27 < jtanx> that sounds not too bad
10:27 < jtanx> but if that's the case
10:27 < sam_moore> If you actually use this for an experiment, you're not going to want to have to do all your analysis in a JavaScript GUI
10:27 < jtanx> true
10:27 < sam_moore> The GUI is for getting live information on the state of the system more than for data analysis
10:27 < jtanx> but if that's the case you might want to allow direct access to the latest dataset
10:28 < jtanx> instead of having to read from the file
10:28 < jtanx> if that's possible
10:28 < jtanx> then you can directly record the results in csv format
10:28 < sam_moore> Yes, I thought about that; you can have a buffer of points accessed by the request thread easily enough
10:29 < sam_moore> There are some difficulties though with managing the buffer
10:30 < sam_moore> Wait, maybe it's easier than I though
10:30 < sam_moore> Yeah, the reason I started saving stuff to a binary file was because I was thinking of the requests having to get the data in sequence
10:32 < sam_moore> I have some other stuff to do today unfortunately
10:33 < sam_moore> I have a feeling it won't be trivial to just access the most recent dataset, I'll have to think about it
10:34 < sam_moore> However, currently it should be easy to change so that the request gets data from the end of the binary file, rather than keeping track of its position
10:34 < sam_moore> The function QuerySensor is what I was thinking the SensorHandler would do to get data; it just fills a buffer and prints it at the moment
10:35 < sam_moore> Binary file access is pretty fast, we could even just keep the binary file and change the data to csv when it goes to the client
10:36 < jtanx> ok, I'll keep that in mind
11:11 < sam_moore> Oh, you can replace the Data* pointer with a Sensor* pointer and then not have to use the global variable directly, that's probably best
11:13 < jtanx> well it might not only be sensor data
11:13 < jtanx> it could be actuator stuff or anything else
11:13 < sam_moore> I suppose
11:14 < jtanx> maybe I should change the typedef to void*
11:14 < jtanx> then you can cast it to whatever
11:14 < sam_moore> Yeah, that will work
11:15 < sam_moore> Actuator stuff is going to be a bit of a seperate (hopefully easier) problem
11:15 < sam_moore> In that case you can just wait for a query before doing anything
11:15 < sam_moore> Anyway, I've distracted myself again, this is just too interesting :S
11:15 < jtanx> hahaha
11:16 < jtanx> anycase for the actuator you would have a separate handler function
11:16 < sam_moore> Yes
11:16 < jtanx> eg ActuatorHandler
11:20 < jtanx> fcgi is pretty whack
11:20 < jtanx> it replaces printf
11:21 < jtanx> so when you printf (or fwrite for binary?), that gets sent to the client
12:03 < jtanx> hey
12:04 < jtanx> what if we stored stuff in an sqlite library
12:04 < jtanx> sorry database
12:04 < jtanx> on second thoughts nah
14:58 -!- jtanx_ [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:01 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
15:02 -!- jtanx_ is now known as jtanx
15:11 -!- jtanx_ [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:18 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
18:59 -!- jtanx_ is now known as jtanx
21:28 < sam_moore> So, I did a bit of testing with sqlite vs a binary file
21:28 < sam_moore> sqlite takes about 1000x as long for saving data
21:28 < sam_moore> I haven't tested reading it back yet
21:28 < sam_moore> But more worrying
21:28 < sam_moore> I get a segmentation fault using sqlite
21:29 < sam_moore> And it's in the sqlite library somewhere; not my test code
21:29 < sam_moore> Running sqlite in valgrind shows a bunch of complaints about uninitialised values
21:29 < sam_moore> So... I'd recommend we just use a binary file
21:30 < sam_moore> A database is good for storing more complex data, but when you just need to store data recorded in a sequence, it's probably unnecessary
21:36 < jtanx> yeah sqlite not so good for file performance
21:36 < jtanx> because every insert it has to confirm the write to disk
21:36 < jtanx> the segfault
21:36 < jtanx> may actually be because you didn't initialse the mutex
21:36 < jtanx> es
21:36 < jtanx> i tried compiling it on mingw and it segfaults on the mutex unlock
21:37 < sam_moore> Re: fcgi replacing printf - It probably calls dup2 to change stdout from the terminal to a domain socket or fifo that nginx listens to
21:37 < jtanx> nah
21:38 < jtanx> fcgi_stdio just has a bunch of defines
21:38 < sam_moore> Oh really, that's wierd
21:38 < jtanx> so printf becomes FCGI_printf
21:38 < jtanx> so fcgi_stdio must be the first include in the fcgi module
21:38 < sam_moore> I would have thought it was simpler to just change stdout than replace the whole printf function
21:38 < sam_moore> But whatever, we're not implementing fcgi :P
21:38 < jtanx> haha
21:39 < sam_moore> Oh, the mutex needs initialising, yeah
21:39 < sam_moore> But the test I did was just a serial program, no mutex
21:39 < jtanx> ah
21:39 < jtanx> well
21:39 < sam_moore> We'll be using gcc to compile on the beaglebone/rpi
21:40 < sam_moore> I think some implementations of pthreads need an initialiser but others don't, I'll have to check
21:40 < sam_moore> But pthread_mutex_init doesn't show up in man pages on debian
21:40 < jtanx> yeah it's not on ubuntu either
21:41 < jtanx> have you ever worked with clang
21:42 < sam_moore> No
21:42 < jtanx> neither but it seems pretty cool
21:45 < jtanx> when you compile it gives better diagnostic output when something goes wrong
21:46 < jtanx> it's a drop in replacement for gcc
21:47 < sam_moore> Interesting
21:51 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["brb"]
21:55 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:57 < jtanx> if you kept the file handles for the sensor data always open
21:58 < jtanx> and immediately wrote to them when a data point is polled
21:58 < jtanx> is there much performance difference to buffering first?
22:05 < sam_moore> Yeah, it's probably better to keep the file handles always open
22:05 < sam_moore> The operating system will use some kind of buffer for the file anyway
22:06 < sam_moore> I've got some basic programs, maybe I'll make some performance graphs tomorrow
22:07 < sam_moore> On the other hand, I need to do some of the meta stuff (list of tasks that need to be completed, etc) before Monday
22:08 < sam_moore> I should look into a #define or something to initialise the mutexes if they need to be
22:09 < sam_moore> Anyway, I need to sleep
22:11 < sam_moore> I wonder how James and Callum are going, they haven't been in the channel for a while
22:12 < jtanx> yeah, it's pretty quiet
22:17 < sam_moore> If we can get a second meeting in the week, preferably a longer one that would be good
22:18 < sam_moore> Particularly if we can start working on code at the same time
22:18 < sam_moore> But we'll see
22:18 < sam_moore> Everyone has other stuff to do after all
22:18 < sam_moore> I'm spending way too much time on this unit compared to my others
22:18 < sam_moore> Then again this unit will probably require the most work
22:19 < sam_moore> Anyway, bye
22:23 < jtanx> bye
22:46 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
--- Day changed Sat Aug 17 2013
10:29 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:14 -!- justin_kruger [~justinkru@125.253.101.228] has joined #mctxuwa_softdev
17:14 -!- justin_kruger [~justinkru@125.253.101.228] has quit [EOF From client]
22:25 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 22.0/20130618035212]"]
--- Day changed Sun Aug 18 2013
08:53 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:44 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:45 -!- jtanx_ [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:00 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
12:03 -!- jtanx_ [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
12:04 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:53 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
22:37 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]"]
--- Day changed Mon Aug 19 2013
08:51 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:43 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
12:52 -!- jtanx [~asfa@130.95.129.7] has joined #mctxuwa_softdev
13:34 -!- jtanx [~asfa@130.95.129.7] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
17:42 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:07 < jtanx> just so you know, I'm changing the JSON functions
21:04 < sam_moore> Ok, I already pushed some stuff to github
21:05 < sam_moore> But we can get it to merge
21:05 < sam_moore> I ended up just using printf to make part of the JSON in the SensorHandler anyway
21:06 < jtanx> depending on where SensorHandler is
21:06 < jtanx> that may or may not work
21:06 < jtanx> inside of fastcgi.c it willwork
21:06 < jtanx> outside it won't
21:07 < jtanx> oh ok
21:07 < jtanx> I see
21:07 < jtanx> so that's fine
21:08 < jtanx> it might be best not to use a do while loop
21:08 < jtanx> because if no arguments are passed
21:08 < sam_moore> Ah, right
21:08 < jtanx> then the keypair function will return null
21:09 < jtanx> while ((params = FCGI_KeyPair(params, &key, &value)))
21:09 < jtanx> will work fine
21:10 < sam_moore> The KeyPair function looks like it can return an empty string though, in which case I was getting the sensor_id parsed twice when I was testing it
21:10 < jtanx> what was your input string?
21:11 < sam_moore> "http://localhost/api/sensors?id=0"
21:11 < jtanx> looks fine from this end
21:11 < jtanx> http://mctx.us.to:8080/api/sensors?id=0
21:11 < jtanx> it might be because of your do while loop
21:12 < jtanx> yeah it will be because of that
21:12 < sam_moore> The do while loop causes problems when there is an empty string
21:13 < sam_moore> ie: No parameters are passed
21:13 < jtanx> ok let's just put it this way; FCGI_KeyPair was designed to use a while loop
21:13 < sam_moore> Ok, sure
21:13 < sam_moore> I had some problems with just a while loop, but I'll try again
21:13 < jtanx> yeah about that JSON stuff
21:13 < jtanx> I'm still trying to think of a good way to do that
21:13 < jtanx> especially with the array stuff
21:19 < sam_moore> I'm not sure what I did before, but a while loop seems ok now
21:19 < jtanx> heh
21:21 < sam_moore> Ok, I have to go now
21:21 < sam_moore> I might not be able to do much tomorrow, we'll see
21:22 < jtanx> ok yep
21:35 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
21:55 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:15 -!- Callum [~Callum@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:46 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
23:08 -!- Callum [~Callum@124-171-171-92.dyn.iinet.net.au] has quit [EOF From client]
23:11 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:14 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
23:17 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:35 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Tue Aug 20 2013
07:44 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:11 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
09:03 -!- jtanx [~asfa@130.95.113.202] has joined #mctxuwa_softdev
10:11 -!- jtanx [~asfa@130.95.113.202] has quit [Ping timeout]
10:17 -!- jtanx [~asfa@130.95.113.202] has joined #mctxuwa_softdev
13:11 -!- jtanx [~asfa@130.95.113.202] has quit [Ping timeout]
14:28 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:06 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:06 < Callum> hey same
15:06 < Callum> sam*
15:20 < jtanx> :>
15:22 < Callum> he literally set himself to away as soon as i said that
15:45 < jtanx> urgh this json stuff is doing my head in
15:57 < sam_moore> Callum: I've been set to away since last night
15:57 < Callum> o.O not according to my client
15:58 < sam_moore> Anyway, we are definitely using the Beaglebone, Electronics has ordered one, they seemed to think they'd have to program it but I corrected them
15:58 < Callum> ...why would they have to program it? wtf did they think we were doing?
15:59 < sam_moore> They probably thought all we had to do was the GUI and not any of the other software? I don't know. But the guy seemed relieved anyway.
15:59 < Callum> and was gonna ask if you remembered anything about the pi meson decay question for physics (how do you get the anti-neutrinos momentum, or do you assume it to be 0 as well? but then it doesnt really make sense with conservation of momentum)
16:00 < sam_moore> Woah, I don't remember the assignments in that much detail
16:00 < Callum> was hoping you would :p
16:00 < sam_moore> No, I just have vague memories of algebra
16:01 < sam_moore> And looking through notes
16:01 < Callum> hmm. i cant seem to find anything in the notes
16:01 < Callum> because he says to assume the rest mass of the anti-neutrino is 0
16:02 < Callum> and i don't really remember much in regards to energies and 0 rest mass ;/
16:02 < jtanx> I talked to someone who did computer vision before
16:02 < jtanx> and he's really doubtful that you can get accurate readings off a webcam
16:02 < sam_moore> Callum: I don't think you can assume the momentum is zero, other than that, I don't have much to offer
16:02 < Callum> the question also says to have it in terms of m(pi) m(e) and c
16:03 < Callum> and yea thats what i thought. it doesnt make sense to do that. just cant remember how to do it D;
16:03 < Callum> @jeremy yea well, its a pain but possible
16:04 < Callum> really comes down to how good your camera is/sampling rate/how quickly you can process it.
16:04 < sam_moore> How about you do some experimenting with a webcam and see what you can do with it?
16:04 < Callum> but you can get some pretty good webcams nowadays (but then again the better it is the longer it takes to process)
16:04 < jtanx> personally, I don't think it will work
16:04 < sam_moore> It looks like we might just end up streaming images diretly to a website
16:04 < Callum> i don't have any
16:04 < Callum> yea well even if thats all we do we still need the camera
16:05 < Callum> spose i could use my laptop one but i doubt that would be very good
16:05 < Callum> could run it through the canny algorithm and see what it produces
16:06 < sam_moore> Sounds like an idea
16:07 < sam_moore> A good idea specifically
16:07 < jtanx> about the sensorhandler
16:07 < sam_moore> Yes?
16:07 < jtanx> do you envision leaving it in fastcgi.c permanently
16:07 < jtanx> or for that matter any other handlers
16:07 < sam_moore> I was kind of thinking there would be a "handlers.h" and "handlers.c"
16:08 < sam_moore> Just to make things more organised
16:08 < jtanx> yeah
16:08 < jtanx> I'm trying to export enough of the functionality
16:08 < jtanx> to do that
16:08 < jtanx> but the json thing is annoying
16:08 < jtanx> especially when you need to spit out arrays
16:09 < jtanx> unless you have something like FCGI_Printf
16:09 < jtanx> and it's up to you to format it correctly
16:09 < Callum> bloody physics lecture video is laggy. gonna have to download it and hope for the best. fuck echo
16:10 < jtanx> compared to lectopia you get 2x filesize with no visible benefit in quality
16:10 < Callum> they're both shit.
16:10 < sam_moore> You could have seperate "BuildJSON_Key" and "BuildJSON_Value" functions, with a "BuildJSON_ValueArray" maybe
16:10 < Callum> haha
16:11 < sam_moore> FCGI_Printf is Ok though, it's not too much formating
16:11 < jtanx> the problem with the buildjson_* stuff
16:11 < jtanx> is it gets very verbose
16:12 < jtanx> and you can probably come up witha situation that breaks it too
16:12 < jtanx> and don't get me started on value types
16:12 < sam_moore> Haha
16:14 < sam_moore> We can always just send plain text and make James turn it into JSON :P
16:14 < jtanx> ahaha
16:14 < jtanx> yeah that could work
16:15 < jtanx> mm
16:15 < jtanx> this is where java is good
16:15 < jtanx> or any other higher level language
16:21 < jtanx> ok so it's a bit of both, but how about: FCGI_JSONKey(key) and FCGI_JSONValue(format, ...)
16:22 < sam_moore> That looks good
16:25 < jtanx> I'm also adding long/double types for the BuildJSON function, just for convenience
16:25 < jtanx> any preference to naming conventions?
16:26 < jtanx> FCGI_BuildJSONLong
16:27 < sam_moore> Seems OK
16:28 < sam_moore> I need to go do some ENSC1001 stuff (hooray)
16:29 < jtanx> yuck
16:30 < Callum> hhaha
16:30 < Callum> have fun :p
16:30 < Callum> although i cant really talk. about a days worth of physics and a days worth of ensc3016 shit i should get through, on top of mctx and geng4402 stuff. yay for being behind already
16:38 < Callum> well iv got an answer for the first part (second part should be the same process). just hope its right :s
16:46 < jtanx> ok, time to merge this into the server code
19:47 < jtanx> hmm interesting - it crashes if compiled with clang but not with gcc
19:49 < jtanx> probably just a bug in clang 3.2
20:08 < jtanx> ok, just submitted a pull request to update the fastcgi stuff
20:08 < jtanx> for now I moved Sensor_Handler to sensor.c
20:09 < jtanx> the status codes have all changed
20:09 < jtanx> If you absolutely cannot process anything given the input arguments, you call FCGI_RejectJSON
20:10 < jtanx> If you fail for some other reason (e.g unauthorized access), you use FCGI_BeginJSON with the appropriate status code
20:10 < jtanx> With RejectJSON, it sends a HTTP 400 code so any query through AJAX/jQuery will fail with no extra info
20:11 < jtanx> With BeginJSON, the HTTP code is always 200 OK, so you are able to transmit extra info if it failed for another reason
20:12 < jtanx> BeginJSON will automatically add the module handler name + the status code
21:47 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
--- Day changed Wed Aug 21 2013
00:53 -!- Callum [~chatzilla@124-171-171-92.dyn.iinet.net.au] has quit [EOF From client]
07:45 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:57 < jtanx> hmm
11:57 < jtanx> I just had a play with the sensor stuff
11:57 < jtanx> and I trialled a 'double buffer' scheme
11:57 < jtanx> instead of the binary file idea
11:57 < jtanx> seems to work okay, and it guarantees that a point won't be returned to the user if they have already received it
12:35 < jtanx> urgh
12:35 < jtanx> just worked through some stupid bug
12:37 < jtanx> I think it's because make didn't recompile something because it thought it hadn't changed
12:38 < jtanx> probably the header files
12:50 < jtanx> you can see the double buffer method in this branch: https://github.com/jtanx/MCTX3420/tree/doublebuffer
12:58 < jtanx> one issue though is that writing out csv instead of binary file takes up a lot more space
14:49 -!- james__ [~chatzilla@130.95.133.180] has joined #mctxuwa_softdev
14:49 < james__> Hey
14:50 -!- james__ [~chatzilla@130.95.133.180] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
18:32 -!- Callum [~chatzilla@124.149.92.17] has joined #mctxuwa_softdev
19:48 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit [Ping timeout]
19:51 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:12 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["・_・"]
--- Day changed Thu Aug 22 2013
00:46 -!- Callum [~chatzilla@124.149.92.17] has quit [EOF From client]
08:19 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:00 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has left #mctxuwa_softdev []
13:19 -!- callum [~chatzilla@130.95.89.97] has joined #mctxuwa_softdev
13:20 < callum> hey
13:53 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:35 -!- callum [~chatzilla@130.95.89.97] has quit [Ping timeout]
15:07 -!- callum [~chatzilla@130.95.89.97] has joined #mctxuwa_softdev
15:07 < callum> sam you still at uni?
15:22 < callum> or jeremy if you remember what he used to compile the file. i'v managed to get it to recognise the header files but now its complaining about not being able to find the libraries.
15:34 < jtanx> um
15:34 < jtanx> I can't remember
15:34 < jtanx> didn't you use pkg config to find out
15:36 < jtanx> try this http://opencv.willowgarage.com/wiki/CompileOpenCVUsingLinux
15:54 -!- callum [~chatzilla@130.95.89.97] has quit [EOF From client]
21:43 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["._."]
22:08 < sam_moore> gcc -o opencv opencv.c -I/usr/include/opencv -lopencv_core -lopencv_highgui -lopencv_imgproc
22:08 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
22:08 < sam_moore> Oh... there's no one here
22:08 < sam_moore> Well, if you read the IRC logs when they're commited to git, you'll see it. Good luck.
--- Day changed Fri Aug 23 2013
07:42 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
07:49 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
07:52 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:59 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
10:02 -!- jtanx [825f360d@ircip3.mibbit.com] has joined #mctxuwa_softdev
10:12 -!- jtanx [825f360d@ircip3.mibbit.com] has quit ["http://www.mibbit.com ajax IRC Client"]
10:13 -!- jtanx_ [825f360d@ircip4.mibbit.com] has joined #mctxuwa_softdev
12:30 < jtanx_> um
12:30 < jtanx_> do you know how you connected the relay board to the sensor board
12:30 < jtanx_> for the soldering lab
12:45 < jtanx_> and what sort of wire did you use?
12:58 < jtanx_> brb
12:58 -!- jtanx_ [825f360d@ircip4.mibbit.com] has quit ["http://www.mibbit.com ajax IRC Client"]
13:51 -!- jtanx [~asfa@124-169-120-181.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Log opened Sat Aug 24 17:07:53 2013
17:07 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
17:07 -!- ServerMode/#mctxuwa_softdev [+nt] by irc.eversible.com
17:07 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [1 ops, 0 halfops, 0 voices, 0 normal]
17:07 -!- Irssi: Join to #mctxuwa_softdev was synced in 1 secs
17:08 -!- You're now known as sam_moore
--- Day changed Mon Aug 26 2013
11:11 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
11:11 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has left #mctxuwa_softdev []
11:12 <@sam_moore> Thought I might have the wrong server
17:18 <@sam_moore> I do have the wrong server!
17:19 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has left #mctxuwa_softdev [I have the wrong server!]
--- Log closed Mon Aug 26 17:19:05 2013
--- Log opened Mon Aug 26 17:19:34 2013
17:19 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
17:19 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
17:19 -!- Irssi: Join to #mctxuwa_softdev was synced in 5 secs
17:19 < sam_moore> !motd
17:20 < sam_moore> '!motd'
17:20 < sam_moore> MctxBot: You're broken
17:20 < sam_moore> Oh wait, never mind
18:07 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:08 < jtanx> :P
18:09 < jtanx> you can change the message if you want
21:03 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["brb"]
21:12 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:46 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
--- Day changed Tue Aug 27 2013
07:40 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
07:54 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
17:53 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:11 < jtanx> lol
19:11 < jtanx> the camera that we were using for the soldering lab inserted a bunch of wavy lines/static into the video
19:12 < sam_moore> It's an effect
19:14 < jtanx> nah
19:14 < jtanx> the camera was actually broken
19:15 < sam_moore> (I figured that)
19:15 < sam_moore> You could pretend it's supposed to be an 80s style video?
19:15 < jtanx> yeah that could work
19:16 < jtanx> have you done it yet?
19:18 < sam_moore> No :S
19:20 < jtanx> well
19:21 < jtanx> according to the manual, you need to connect a wire from R5 on the sensor board to the relay board
19:21 < jtanx> problem was we already chopped off the lead on R5
19:22 < jtanx> another group connected the wire to the LEd though
19:22 < jtanx> seemed to work
20:02 < jtanx> so are we using clock_gettime?
20:08 < sam_moore> I think so, we can use CLOCK_MONOTONIC_RAW if we are paranoid about the system time getting changed
20:08 < sam_moore> Or we can just use CLOCK_REALTIME if we aren't
20:09 < jtanx> I thought CLOCK_MONOTONIC was supposed to be best, because the RAW version wasn't compensated for temp/other stuff
20:10 < jtanx> http://stackoverflow.com/questions/3523442/difference-between-clock-realtime-and-clock-monotonic
20:10 < jtanx> about the FCGI loop blocking
20:10 < jtanx> you can switch to FCGX_ methods
20:10 < jtanx> I think
20:11 < jtanx> but is it really necessary
20:20 < jtanx> about the valgrind comment in sensors.c
20:20 < jtanx> this is probably it: http://stackoverflow.com/questions/5844242/valgrind-yells-about-an-uninitialised-bytes
20:23 < sam_moore> It's probably not necessary to stop the FCGI loop blocking, don't worry about it
20:25 < sam_moore> Yeah, I didn't initialise the buffers anywhere
20:25 < jtanx> actually I can't reproduce that message
20:25 < sam_moore> Hmm
20:26 < jtanx> about the sensor times
20:27 < jtanx> what about if you all reference it relative to some point
20:27 < jtanx> eg
20:27 < sam_moore> The epoch :P
20:27 < jtanx> lol
20:27 < jtanx> I mean
20:28 < jtanx> when you get sensor data, you store the difference in time between the start of recording and now
20:28 < sam_moore> Sure, that makes more sense
20:29 < sam_moore> Just give the client the start of recording time and they can convert it to a time of day / day in the calendar themselves
20:30 < jtanx> yeah
20:30 < jtanx> you could have a specific request to return the starting time
20:30 < jtanx> then it's implicit for all requests
20:30 < jtanx> btw I submitted a pull request for the nginx configs
20:32 < sam_moore> Ok
20:32 < sam_moore> I've added you to collaborators so you can merge them yourself if you need to
20:33 < jtanx> ok
20:35 < jtanx> huh
20:35 < jtanx> http://www.cnx-software.com/2011/09/26/beagleboard-emulator-in-ubuntu-with-qemu/
20:41 < sam_moore> Nice
20:42 < sam_moore> "Currently you can not access Ethernet" Not so nice
20:42 < sam_moore> Although this is dated 2011
21:18 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["bye"]
--- Day changed Wed Aug 28 2013
08:52 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:08 -!- MctxBot [~twang@203-59-111-146.dyn.iinet.net.au] has quit [Connection reset by peer]
10:11 -!- MctxBot [~twang@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:39 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
15:16 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:48 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:31 < jtanx> huh
16:31 < jtanx> firefox's javascript debugger is pretty cool
16:31 < sam_moore> Firebug? Yeah
16:35 < jtanx> nah the inbuilt one
16:35 < jtanx> firebug's good for inspecting html though
16:35 < jtanx> haven't used firebugs js debugger yet
16:35 < sam_moore> Oh, I didn't know they had an inbuilt one
16:36 < jtanx> Ctrl+Shift+K
16:36 < sam_moore> Of course I normally use Iceweasel, which is currently built as firefox 10.0.2 with a different name
16:36 < jtanx> well that's about 10 releases behind
16:36 < sam_moore> That looks pretty similar to firebug anyway
16:55 < jtanx> inline conditionals in javascript are whack
16:55 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:55 < sam_moore> I haven't done much javascript, but a lot of it does seem whack
16:56 < sam_moore> jtanx: What are you working on in JavaScript?
16:56 < jtanx> unit tests
16:57 < sam_moore> Cool
17:01 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [Ping timeout]
17:01 -!- Callum_ is now known as Callum
17:18 < jtanx> javascript in general is annoying me though
17:25 < Callum> when exactly is this soldering lab due? fucking thing.
17:27 < jtanx> next friday
17:27 < Callum> it says week 5 on lms
17:27 < jtanx> sept 6
17:27 < Callum> where's it say this?
17:27 < jtanx> yeah he made an announcement
17:27 < jtanx> that it's wrong
17:27 < jtanx> somewhere
17:28 < Callum> sigh. this unit..i swear
17:28 < Callum> if it really is next week then i'd be so relieved
17:28 < Callum> wow
17:28 < Callum> he made an announcement today..
17:28 < Callum> wait yesterday
17:29 < jtanx> still got that central plant fbd to do
17:29 < Callum> why hasnt LMS emailed me a notification? (/end spam)
17:29 < Callum> yea i know
17:29 < Callum> which i think i have it pretty much done
17:29 < Callum> not 100% sure on it though
17:29 < Callum> and whether to add pumps and shit into it
17:29 < jtanx> what did you have on it?
17:30 < Callum> HA as i say that i check my phone and i have the message about the announcement
17:30 < jtanx> and what did you call the chiller things?
17:30 < Callum> pretty much just the 4 chillers, a line showing it can go back (they're literally called chillers ahha(
17:31 < Callum> then i had another part to show the chillers (evaporation/condensor/compressor and cooling tower is connected to condenser)
17:31 < jtanx> ook
17:31 < Callum> however
17:32 < Callum> im not sure about the input/output of the chiller
17:32 < Callum> because stuff online shows it to be the evaporator
17:32 < Callum> but isnt it water being pumped?
17:32 < jtanx> I think there were pumps on the output
17:33 < jtanx> were there three outputs?
17:33 < Callum> also not sure if i should/wherte to add the tank (yea ofc theres pumps but not sure to put them in to the diagram, pretty much everything is pumped)
17:33 < Callum> outputs where?
17:33 < jtanx> North/Sout/East distribution things
17:33 < jtanx> iirc
17:33 < jtanx> yeah not sure whether to add tank or not
17:34 < Callum> oh that, i didnt bother with that
17:34 < Callum> just how did the chiller connect with the rest of the plant?
17:34 < Callum> was the evaporator the input/output?
17:34 < Callum> because the chiller feeds out to the water tower and the tower feeds back into the chiller (i think)
17:36 < Callum> also what was the thing called? that allowed water to flow back and forth bypassing the chillers. back something?
17:36 < Callum> really they should have told us before we went in we had to do this. some lazy fucks like me dont read the outline so i didnt take notes..or try to commit stuff to memory :po
17:39 < jtanx> the bypass?
17:39 < jtanx> I haven't gone into detail
17:39 < jtanx> so I just have chiller
17:39 < jtanx> and cooling tower
17:39 < jtanx> maybe I should
17:40 < Callum> remember how tehre was 4 chillers, and they would only run what was needed.
17:40 < jtanx> yeah
17:40 < jtanx> how many cooling towers?
17:40 < Callum> and if they had more than they needed there was a pipe to flow back, or if they had some chilled water from the tanks or w.e it bypassed chillers
17:40 < Callum> i dont know, but im not sure how to show it all
17:40 < Callum> im sure what iv got is somewhat decent
17:41 < jtanx> I used visio and I ended up spending so much time trying to get the lines rihgt
17:41 < jtanx> probably would have been faster to hand draw it
17:41 < jtanx> still not finished too
17:41 < Callum> haha im fiarly sure i read somewhere it was hand drawn :p
17:41 < jtanx> meh I suck at drawing
17:42 < Callum> maybe not. "This is to be drawn and annotated on single A4 page"
17:42 < Callum> i dont think they'll be picky
17:42 < jtanx> and there's lines everywhere
17:42 < Callum> really? how do you have lines everywhere?
17:42 < jtanx> ok so chiller
17:42 < Callum> it's a fairly simple system. unless i'v done it wrong :s
17:43 < jtanx> has warm chilled water (1), chilled coolant (2), hot coolant (3), chilled chilled water(4), control line (5), (maybe) sensor back to controller (6)
17:43 < jtanx> that's ~5 lines in/out of one box?
17:44 < Callum> hmm. havent included coolant or control/sensor
17:44 < Callum> maybe i should :S
17:44 < jtanx> and an operator
17:44 < jtanx> to the controller
17:45 < Callum> thing is it asked for a high level FBD though
17:45 < Callum> which means not very detailed
17:45 < Callum> or maybe it didnt?
17:45 < jtanx> yeah, so do you need to show condensor/evaporator
17:45 < jtanx> I just have a chiller box
17:46 < jtanx> anyway... afk ~10 mins
17:46 < Callum> the condensor/evaporater is part of the chiller isnt it?
17:46 < Callum> ok
18:10 < Callum> anyone finished reading chapter 4 of the notes?
18:11 < jtanx> what's that
18:11 < Callum> sensors
18:12 < Callum> so dull :l
18:12 < Callum> and pretty much no chance to remember enough of it. quiz tomorrow is going to be fun..
18:12 < jtanx> oh
18:13 < jtanx> shit
18:13 < jtanx> have to study for that
18:13 < Callum> rofl
18:14 < jtanx> :/
18:15 < Callum> gonna just have to wing most of them again like last time most likely.
18:15 < jtanx> probably
18:15 < jtanx> Well, the unit testing thing works http://mctx.us.to:8080/unit-tests/
18:15 < jtanx> now what unit tests should there be
18:18 < Callum> not sure.
18:25 < Callum> brilliant! the notes show a false colour image built from a black and white image...while printed in black and white.
18:34 < jtanx> :P
19:50 < jtanx> um
19:50 < jtanx> did we get around to doing the sparkplus thing
19:54 < jtanx> we need to do it before the end of the week
19:54 < Callum> umm.
19:54 < Callum> actually justin already set up the group
19:54 < Callum> so you need to hurry up and join before we have to recreate the group :P
19:54 < jtanx> nah it expired
19:54 < Callum> wait already?
19:54 < Callum> zzz
19:55 < jtanx> 5 hr deadline
19:55 < Callum> and adrian said it was 24Hr, whats with this 5 hour shit
19:55 < jtanx> so... we need to try again
19:55 < jtanx> when everyone's available
20:11 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [Ping timeout]
20:49 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ha"]
--- Day changed Thu Aug 29 2013
07:47 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:16 < jtanx> firefox blocks ajax calls if you try to run the file locally :/
09:45 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
13:33 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:24 -!- james__ [~chatzilla@130.95.133.238] has joined #mctxuwa_softdev
14:25 < james__> Hey Jeremy. Is there a way to find my login hash key if i am already logged into the api?
14:28 < jtanx> um
14:28 < jtanx> right now you should store it
14:29 < jtanx> just declare a global variable and set it to the hash
14:30 < jtanx> or if you have made a class
14:30 < jtanx> just make it an element
14:31 < james__> I'm still logged in from ages ago and i can't logout so i can get a different key that works
14:31 < jtanx> that
14:31 < jtanx> ok
14:31 < james__> Possibly a bug that needs fixing?
14:31 < jtanx> so the way it works right now is there's a 3 minute timeout on the key
14:31 < jtanx> no
14:31 < jtanx> there's actually two layers
14:32 < jtanx> the password that you enter first (mctxadmin) is what's called HTTP basic authentication
14:32 < jtanx> this lets you gain access to /api/login
14:32 < james__> Well i tried loging in again and its saying i am already logged in
14:32 < jtanx> when you reach /api/login you get the access key
14:32 < jtanx> there's a three minute timeout on the key
14:32 < jtanx> if you wish to invalidate the key
14:33 < jtanx> you call
14:33 < jtanx> /api/login?end
14:34 < jtanx> you can force getting a key by also calling /api/login?force
14:34 < james__> right. well it worked this time
14:34 < james__> Thats weird
14:34 < jtanx> so the only thing that the key prevents is stopping accidental concurrent use
14:34 < james__> Fair enough
14:35 < jtanx> Calling /api/login?force will force a new key to be generated and the old one to be invalidated
14:35 < james__> Okay
14:35 < jtanx> btw as I was working on unit testing
14:35 < jtanx> I did a function to retrieve the json data
14:36 < jtanx> http://mctx.us.to:8080/unit-tests/unit-tests.js
14:37 < james__> I will have a look. I have some buttons working and stuff. Working on putting them in a seperate script file for easier editing etc
14:37 < james__> They don't seem to be playing nice at the moment
14:37 < jtanx> ok
14:38 < jtanx> how come it takes so much effort to get some buttons working
14:39 < james__> Getting the css to mesh with the js
14:40 < james__> I have buttons fine
14:40 < james__> And they work
14:40 < jtanx> maybe you should get the functionality to work first
14:40 < jtanx> with the ajax queries
14:40 < jtanx> before worrying about styling them
14:40 < james__> I have the functionality pretty much working
14:41 < jtanx> so the querying works?
14:41 < james__> But i want the styling to work before we scale it up
14:41 < james__> That way its less hassle to fix it later
14:41 < jtanx> could you post it to git?
14:41 < jtanx> it'd be cool to have a look
14:45 < james__> The way i am thinking about having it set out is having a central index.html which just imports all the js. The js will contain all the functionlity seperated in to similar functions. Ie. all the buttons in one script
14:46 < jtanx> right
14:46 < james__> That should allow for ease of scaling and editing
14:46 < james__> Also changing id's and stuff
15:46 -!- james__ [~chatzilla@130.95.133.238] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
19:25 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:09 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.89 [Firefox 23.0.1/20130814063812]"]
23:18 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Fri Aug 30 2013
09:03 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:16 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit [EOF From client]
14:15 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:06 < jtanx> say you want to perform a command
17:06 < jtanx> eg move an actuator
17:07 < jtanx> and suppose checks have to be made against other sensors to ensure that this command is good to go
17:07 < jtanx> how are those checks going to be made?
18:10 < sam_moore> The Actuator Handler will call some sanity check against the most recent sensor data
18:11 < sam_moore> If they aren't, it will respond with some appropriate JSON or HTTP status code
18:11 < sam_moore> eg: "Try again later when the pressure is in the right range", or "Don't do that you silly person"
18:15 < jtanx> ._.
18:21 < jtanx> I wonder if there's a way to pull from your git repository without creating the 'merge branch master from...' commits
18:22 < sam_moore> I don't think so
18:22 < jtanx> I tried playing with rebasing but it doesn't work out so well
18:40 < jtanx> ok so I've committed some stuff to my repository that changes the handling of controls/actuators/login
18:41 < jtanx> I'm not sure if it's the best way to do it
18:41 < jtanx> though
18:41 < jtanx> What I did was get rid of /api/login
18:41 < jtanx> and instead have /api/control
18:41 < jtanx> All of the control code (eg actuators but may be other controls? Start/stop the whole thing?) has been moved to controls.c
18:42 < jtanx> You still need to supply username and password to access /api/control
18:42 < jtanx> and what was previously called the 'authorization key' is now the control key (ie who has control)
19:00 < sam_moore> Ok, I'll take a look at it later
19:01 < sam_moore> Don't worry about the merge messages, it's not a big deal
19:06 < jtanx> ok thanks
20:27 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
22:21 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:03 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Sat Aug 31 2013
09:09 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:30 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
17:40 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:48 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Sun Sep 01 2013
09:11 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:07 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:17 < jtanx> it'd have been cool to have written then server in python
14:19 < Callum> gah havent done much for this project this week. not sure what i should do either
14:19 < jtanx> hmm
14:19 < Callum> so far behind in one of my units too. haha joys of uni
14:19 < jtanx> lol
14:20 < jtanx> werent we meant to get the camera stuff working or something
14:21 < Callum> well yea but thats more rosher getting stuff working on his end. still not really sure what's going on. need to find an efficient way to transfer data (which would be directly streaming but it seemed adrian wanted some sort of processing)
14:21 < Callum> guess i could start working on edge detection
14:21 < jtanx> james hasn't got much done afaik
14:21 < Callum> nah dont think he ahs
14:22 < jtanx> but man I was looking at the javascript stuff
14:22 < jtanx> and it's really annoying
14:22 < jtanx> everything in javascript is asynchronous
14:22 < jtanx> so you have a callback for an AJAX query, and it gets executed some time in the future
14:23 < jtanx> it's really hard to pass variables to the callback and then also retrieve them
14:23 < Callum> hmm
14:23 < jtanx> i'm probably not doing it in the right fashion or something
14:28 < Callum> not sure. don't really understand this stuff myself. havent done much/any
14:45 < jtanx> flask is so cool
15:01 < jtanx> oh
15:02 < jtanx> maybe we can use cookies to store authorization
15:02 < jtanx> instead of in javascript
15:02 < jtanx> hmm
15:02 < jtanx> http://stackoverflow.com/questions/15722795/how-to-create-a-cookie-with-fastcgi-nginx-in-c
15:57 < sam_moore> Maybe a cookie is better, but couldn't you have a global variable that the JavaScript code sets in the callback?
15:57 -!- Irssi: #mctxuwa_softdev: Total of 4 nicks [0 ops, 0 halfops, 0 voices, 4 normal]
15:59 < sam_moore> Ok, I'll do the simulated "digital" sensor and actuator
15:59 < sam_moore> We should make some kind of minimal gui in JavaScript
16:00 < sam_moore> I'm not sure what James has done, but there's nothing under git
16:02 < sam_moore> http://www.flotcharts.org/flot/examples/ajax/index.html is a good starting point for updating sensor graphs
16:03 < sam_moore> jtanx: I wouldn't worry about the login/authentication too much for this week
16:04 < jtanx> james said he got the buttons working but that's about it
16:04 < jtanx> he's more concerned about issues with styling them than getting a fully fledged gui
16:04 < sam_moore> I think actually having a gui is more important than having a pretty gui
16:04 < sam_moore> At the moment anyway
16:05 < jtanx> yeah
16:05 < jtanx> it would be great to have *something*
16:05 < jtanx> the problem with js
16:05 < jtanx> is from what i've seen, the callback occurs in the jQuery file
16:06 < jtanx> so you can't set global variables in say sensors.js
16:06 < jtanx> and expect to be able to read/set them in the callback
16:06 < sam_moore> Hmm, that's wierd
16:06 < jtanx> what really shits me about javascript is variable handling
16:06 < sam_moore> Hang on, let me have another look at the only project I ever used jQuery for... :P
16:07 < jtanx> you can pass one/none/more than specified parameters
16:07 < sam_moore> It was a chess game, so it should definietly be possible to modify variables in the callback function
16:07 < jtanx> yeah there's probably a way, I just don't know it
16:08 < jtanx> about the actuators
16:08 < jtanx> I've already got something working in my repository
16:08 < jtanx> but I don't really like how I've done it
16:30 < sam_moore> I'm making a minimal gui (it will be able to plot something, and have a button); we can either ditch it or improve on it later
16:31 < jtanx> sounds good
16:35 < sam_moore> Callum: If you want to make a (really awful but possibly looking good enough at this stage for Adrian) "streaming" images thing
16:35 < sam_moore> You can have your program continuously save to a file
16:35 < sam_moore> And a html page that just has "" in the header
16:35 < sam_moore> With a link to the image
16:36 < Callum> alright il look into it
16:36 < sam_moore> It's absolutely aweful, but it will give the effect of a really laggy video
16:36 < jtanx> nice :P
16:36 < sam_moore> You can improve it (if you get time) by having 2 images instead of one, with a symbolic link to swap between them
16:38 < sam_moore> I'll bring the raspberry pi with the webcam tomorrow and we'll put everything on it to show Adrian
16:38 < jtanx> hehehe
16:38 < jtanx> can you install ffserver on the raspi?
16:39 < sam_moore> Probably
16:40 < jtanx> actually
16:41 < jtanx> does our code run on the raspi?
16:50 < sam_moore> Yes, at the moment
16:54 < Callum> how are we integrating my code into it?
17:01 < sam_moore> Keep it as a seperate process for now
17:01 < Callum> alright
17:01 < sam_moore> I'll modify the "run.sh" script to start both of them
17:01 < sam_moore> Sigh javascript
17:01 < sam_moore> So useful and yet so horrible
17:02 < sam_moore> Still, I think if we can get our heads around it it is actually a nice way to do this
17:09 < jtanx> the camera thing or the api or both?
17:24 < sam_moore> The API
17:24 < Callum> ok so how do i link to the image? (
17:24 < sam_moore> Just put a html file in the /server directory for now
17:25 < sam_moore> With in the body somewhere
17:29 < Callum> where are we going to put the images?
17:31 < sam_moore> /server/images (?)
17:31 < sam_moore> Wherever it seems logical I guess
17:33 < sam_moore> If either of you are available earlier on Monday, I'm free for pretty much the whole day
17:33 < sam_moore> Do you want to meet earlier and actually do coding as a group?
17:37 < sam_moore> Dammit why does javascript remove the [] brackets when printing string representations of arrays
17:37 < sam_moore> How are you supposed to tell what dimensions the array has...
17:37 < jtanx> if you want sample code of how I printed the array of sensor values
17:37 < jtanx> see the unit tests
17:37 < sam_moore> Ok, thanks
17:37 < jtanx> for (var i = 0; i < data.data.length; i++) {
17:37 < jtanx> result += data.data[i][0] + ":" + data.data[i][1] + ", ";
17:37 < jtanx> }
17:56 < Callum> ok well iv done trhat, i think. you should probably check it to make sure its right
17:58 < Callum> sent pull request. and i'v got food so brb
17:58 < sam_moore> Ok, thanks
17:59 < sam_moore> jtanx: You're right, altering variables on a successful ajax call is a pain in the ass
17:59 < jtanx> hehe
17:59 < sam_moore> ... You can modify html attributes really easily though
17:59 < jtanx> true
17:59 < jtanx> that's what I was thinking
17:59 < sam_moore> Must resist urge to store data in a comment
17:59 < jtanx> have a hidden input field?
18:01 < jtanx> I must say that the firebug debugger and inbuilt web console were both quite useful
18:02 < sam_moore> Yes, I've got firebug running
18:04 < jtanx> I was looking at flask and it was ridiculously easy to set up a similar API in python
18:05 < sam_moore> Do you want to change to python then?
18:06 < sam_moore> Don't we still have to do the javascript though?
18:07 < sam_moore> The API we have at the moment isn't that terrible
18:07 < jtanx> nah
18:07 < jtanx> it's probably best to stick with what we have
18:07 < jtanx> the javascript stuff would remain the same yeah
18:09 < sam_moore> Ok
18:26 < sam_moore> Right... you can update global variables on a successful AJAX request
18:27 < sam_moore> If you put "var" in front of the variable in the global scope then the AJAX callback will just make a new local variable and modify that -_-
18:27 < sam_moore> But if you Don't put the "var" there, it will work
18:40 < jtanx> lol
18:41 < jtanx> but using global variables in javascript can get.... messy
18:41 < sam_moore> Mmm
18:42 < sam_moore> But doing pretty much *anything* in javascript is messy
18:42 < jtanx> yeah
18:42 < jtanx> true that
18:43 < sam_moore> I wonder...
18:43 < sam_moore> Should we just have one html page for each sensor/actuator
18:43 < sam_moore> And then the user can open multiple tabs?
18:45 < sam_moore> That's probably not very nice though
18:46 < sam_moore> I think we should return data about multiple sensors at a time
18:51 < jtanx> you'd probably want it all on one page
18:51 < sam_moore> Yeah
18:51 < jtanx> how many sensors are we talking about again
18:51 < sam_moore> 6 or 7 I think, + a camera
18:51 < jtanx> oh yeah
18:51 < sam_moore> Oh well, we can redesign it later
18:51 < jtanx> I guess we can design for max 7
18:52 < sam_moore> But it might be a good idea to query multiple sensors in one ajax request
18:53 < jtanx> yep
18:53 < jtanx> supply more than one id in a go?
18:53 < jtanx> could have an array (max size 7) that holds all the sensors you want to get data for
18:53 < jtanx> i guess
18:55 < sam_moore> It's probably more flexible to just add a "getall" key to the sensor module
18:57 < jtanx> oh yeah
18:57 < jtanx> I'm free until 12 tomorrow
18:57 < jtanx> do you want to work together before that?
18:58 < sam_moore> Sure
18:59 < sam_moore> Try G19 again, but if that doesn't work we can go to the physics lab, or the computer science labs
19:01 < jtanx> yeah ok
19:02 < jtanx> what time do you want to start?
19:04 < sam_moore> I'll probably get in around 9 or 10, depending on how much sleep I get
19:04 < sam_moore> Let's say 10:00
19:05 < sam_moore> Got to go, I'll be back later
19:05 < jtanx> ok
21:35 < sam_moore> I'm just going to use the same Sensor stuff for digital sensors
21:36 < sam_moore> Adding a second type of sensor seems needlessly complicated
21:36 < sam_moore> 1 = on and 0 = off
21:37 < sam_moore> Probably do the same for actuators (just have some sanity checks on the values you can set, both at the client and the server)
21:38 < jtanx> usually I'd just say 0 is off and not 0 is on
21:38 < sam_moore> Haha, fair enough
21:39 < jtanx> I kinda hate over-checking stuff :P
21:39 < sam_moore> The actual GetData function has to return something reasonably sane though
21:39 < sam_moore> It's easy to just make it only return 0 or 1
21:39 < jtanx> oh I was more talking about setting the value of the actuator
21:39 < sam_moore> Right
21:40 < sam_moore> We should probably check for 0 or 1 anyway
21:40 < sam_moore> In case the user does something dumb
21:40 < jtanx> well
21:40 < sam_moore> Like think they are setting an analog sensor and put in like "200"
21:40 < jtanx> it should be the js code that's setting it
21:41 < jtanx> so if you write the code properly it shoul be ok
21:41 < sam_moore> "should be OK"...
21:41 < jtanx> you shouldn't access the api directly
21:41 < sam_moore> Alright, we'll see, but it's like, 1/2 a line of code to check :P
21:41 < sam_moore> Redundancy and all that
21:41 < jtanx> but even if they entered 200
21:41 < jtanx> well so what
21:41 < sam_moore> Yeah, but people *can* access the API directly
21:41 < jtanx> it'd just represet 1
21:42 < jtanx> represent
21:42 < jtanx> *
21:42 < sam_moore> How does the server know the difference between someone typing the URL and an AJAX request to the URL?
21:42 < jtanx> yeah
21:42 < sam_moore> Someone could go view source, "How can I break this... ah, what happens if I pass stupid values directly to the API"
21:42 < jtanx> well if you define that 0 is off and not zero is on
21:43 < jtanx> then it meets specs :P
21:43 < sam_moore> Ok, I suppose it doesn't really matter
21:44 < sam_moore> I respectfully disagree with the idea of having too many checks :P
21:44 < sam_moore> Unless we went "while (true) DoCheck();" or something like that
21:44 < sam_moore> That would be dumb
21:44 < jtanx> hahaha
21:45 < jtanx> but sometimes it gets really messy to maintain when you have that many checks
21:45 < jtanx> and then when you want to modify something it's a real pain
21:45 < jtanx> and really easy to break
21:45 < sam_moore> True, but a bounds check isn't that bad
21:46 < jtanx> yrue
21:46 < sam_moore> I mean, you have to convert the value that isn't zero to an "on" anyway, which requires a check
21:46 < jtanx> not really
21:46 < sam_moore> Depends on the actuator
21:46 < jtanx> you check if !value
21:47 < sam_moore> Alright
21:58 < jtanx> do you think there should be a stop/start method?
21:58 < jtanx> eg start the experiment
21:58 < jtanx> stop the experiment
22:28 < sam_moore> Yes, probably
22:28 < sam_moore> The stuff I wrote for Thread Exit conditions may actually help there...
22:29 < sam_moore> Remove the bit where the FCGI loop exits though
22:29 < jtanx> yeah
22:41 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [EOF From client]
23:09 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Mon Sep 02 2013
07:59 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:33 < sam_moore> Hi
08:33 < sam_moore> I managed to get a reasonable sensor plotting GUI done
08:35 < sam_moore> So, adrian wanted: 1) A digital sensor simulation (done) 2) Sensors plotted in GUI (done) 3) A test actuator in the GUI 4) Camera images in the GUI (sort of done, kind of)
08:35 < sam_moore> Was there anything else?
08:38 < sam_moore> I have to go to Uni, I'll be in G19 otherwise I'll send an email
08:38 < sam_moore> See you
08:42 < jtanx> ok then
09:02 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
09:47 -!- jtanx [~asfa@130.95.97.108] has joined #mctxuwa_softdev
09:55 -!- jtanx [~asfa@130.95.97.108] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
13:06 -!- jtanx [~asfa@130.95.105.196] has joined #mctxuwa_softdev
13:12 -!- james__ [~chatzilla@130.95.81.42] has joined #mctxuwa_softdev
13:15 < jtanx> hey
13:18 < james__> hey
13:18 < james__> I have the AJAX call working i am pretty sure
13:19 < jtanx> ok
13:19 < james__> Do you know if we have the beaglebones in yet?
13:19 < jtanx> I don't know
13:19 < jtanx> it should be ready soon though
13:19 < jtanx> anyway, sam got a gui with graphs semi working
13:20 < jtanx> could you update your git repository with what you've done?
13:28 -!- james__ [~chatzilla@130.95.81.42] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
13:31 < jtanx> :(
13:31 -!- jtanx [~asfa@130.95.105.196] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
18:12 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:46 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:17 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [Ping timeout]
21:04 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Tue Sep 03 2013
17:23 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:29 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit [Ping timeout]
21:35 -!- jtanx_ [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:35 -!- jtanx_ is now known as jtanx
22:10 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Wed Sep 04 2013
07:53 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:35 -!- MctxBot_ [~twang@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:35 -!- jtanx_ [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:49 -!- jtanx [~asfa@203-59-111-146.dyn.iinet.net.au] has quit [Ping timeout]
08:51 -!- MctxBot [~twang@203-59-111-146.dyn.iinet.net.au] has quit [Ping timeout]
09:02 -!- jtanx_ is now known as jtanx
09:03 -!- MctxBot_ is now known as MctxBot
11:54 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
15:32 -!- jtanx [~asfa@130.95.113.99] has joined #mctxuwa_softdev
16:00 -!- jtanx [~asfa@130.95.113.99] has quit [Ping timeout]
16:00 -!- jtanx_ [~asfa@130.95.113.99] has joined #mctxuwa_softdev
16:00 -!- jtanx_ is now known as jtanx
16:21 -!- jtanx [~asfa@130.95.113.99] has quit [Ping timeout]
17:26 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:49 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Thu Sep 05 2013
08:19 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:34 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
13:22 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:51 < jtanx> hm, so to get clock_gettime to work, you need to use std=gnu99 instead of std=c99
18:52 < jtanx> do you think we should just stick with gettimeofday?
21:46 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [":3"]
--- Day changed Fri Sep 06 2013
09:16 -!- jtanx [~asfa@130.95.133.183] has joined #mctxuwa_softdev
12:05 -!- jtanx [~asfa@130.95.133.183] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
13:03 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:05 < jtanx> I was just thinking, what sort of identification information is needed from the server?
16:05 < jtanx> The gui should have some understanding of what sort of sensors/actuators it needs to display
16:10 < jtanx> it might be enough to say this is API version x
16:10 < jtanx> and at version x, it's agreed that these id values correspond to these sensors/actuators etc?
16:19 < jtanx> anyway, what I've done for now is if asked, the api will list the sensor/actuator ids and the corresponding human readable string
16:19 < jtanx> api/?sensors&actuators
18:06 < jtanx> also, what do you think of keeping track of the number of points stored
18:07 < jtanx> then you can allow the user to request from where they want to retrieve data from and how many to retrieve
18:08 < jtanx> the only problem is that it wouldn't be time based, but based on the number of data points recorded
18:08 < jtanx> this method is simpler because you now the offset to use with fseek
18:08 < jtanx> if it's time based you have to search the data for the correct point
19:51 < sam_moore> All the above makes good sense
19:52 < sam_moore> If we can make a working "request X number of points" first instead of "request from time T onwards", we might be able to convert the latter to the former if necessary
20:04 < jtanx> ok I just submitted a pull request for some stuff
20:04 < jtanx> mostly the identification stuff and some reordering
20:04 < jtanx> FCGI_RejectJSON now requires that you give a description explaining why
20:05 < jtanx> when RejectJSOn is called, it's always logged along with the description, so some of the current log messages within the handler functions may be redundant
21:11 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Sat Sep 07 2013
10:30 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:29 < jtanx> hmm
18:29 < jtanx> what if you had two file pointers to the same file
18:29 < jtanx> one read only, one write only
18:29 < jtanx> then if you also kept track of how many points were written to the file
18:29 < jtanx> you don't need to have mutexes anymore
18:30 < jtanx> as long as you write the read/write calls carefully
18:44 < jtanx> ahp, may have spoken too soon
18:44 < jtanx> you'd still need a mutex around the read/write from/to the counter
18:45 < jtanx> I think...
19:07 < jtanx> but it might still be a good idea
21:38 < jtanx> I went the simple route
21:53 < jtanx> what I've got: /api/sensors?id=x&from=y&count=z
21:54 < jtanx> In dump mode:
21:54 < jtanx> If from < 0, then return from start, else from the given index (0-indexed)
21:54 < jtanx> if count < 0, then return all points, else return /at most/ that many points
21:55 < jtanx> in normal mode:
21:55 < jtanx> if from < 0, then return from the end (return the most recent points)
21:55 < jtanx> if count < 0, then return at most the default amount (SENSOR_QUERYBUFSIZ)
21:56 < jtanx> otherwise return /at most/ that many points
21:56 < jtanx> oh ya, if from >= 0 then return from that indicated index
21:57 < jtanx> it's only in my git repository for now because I haven't tested it enough and I'm still not sure how I should go about integrating it with the current code
21:58 < jtanx> (I basically rewrote Sensor_Handler and it has less error checks on the input; not sure if they're necessary or not)
21:59 < jtanx> Since requesting a huge range could impact on sensor readings due to the mutex, it may be better to at least restrict dumps to when the experiment is not 'running'
22:01 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["~ that's it for now! ~"]
--- Day changed Sun Sep 08 2013
11:28 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:50 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:55 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:06 < Callum_> what was the server stuff you said to install? also what packages do i need?
18:07 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [EOF From client]
18:07 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:09 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [Ping timeout]
18:09 -!- Callum_ is now known as Callum
18:21 < jtanx> if you want to install the server, you need at least the 'nginx' and 'spawn-fcgi' packages
18:21 < jtanx> one nginx is installed you need to copy the config files from the git repository in
21:14 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
21:47 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:36 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
22:38 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Mon Sep 09 2013
09:50 -!- jtanx [~asfa@130.95.225.242] has joined #mctxuwa_softdev
09:59 -!- jtanx_ [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:13 -!- jtanx [~asfa@130.95.225.242] has quit [Ping timeout]
10:54 -!- jtanx_ [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
11:30 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
13:27 -!- jtanx [~asfa@130.95.55.164] has joined #mctxuwa_softdev
13:48 -!- jtanx [~asfa@130.95.55.164] has quit [Ping timeout]
14:07 -!- jtanx [~asfa@130.95.123.28] has joined #mctxuwa_softdev
15:25 -!- jtanx [~asfa@130.95.123.28] has quit [Ping timeout]
15:53 -!- jtanx [~asfa@130.95.123.28] has joined #mctxuwa_softdev
15:55 -!- jtanx [~asfa@130.95.123.28] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
20:33 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:01 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Tue Sep 10 2013
17:16 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:25 < jtanx> it looks like we do need an sd card, at least to install the os onto it
17:26 < jtanx> http://beagleboard.org/Getting%20Started#update
17:41 < jtanx> http://avedo.net/653/flashing-ubuntu-13-04-or-debian-wheezy-to-the-beaglebone-black-emmc/
17:42 < sam_moore> Ok, we should write a BOM for next week then
17:42 < sam_moore> 1x SD Card
17:44 < jtanx> from what I understand
17:45 < jtanx> you write an image to the sd card
17:45 < jtanx> boot off the sd card
17:45 < jtanx> then you can write another image directly too the internal storage
17:45 < jtanx> after that you don't need the sd card any more
17:46 < sam_moore> Alright
17:46 < jtanx> http://www.armhf.com/index.php/boards/beaglebone-black/
17:47 < jtanx> any preference for ubuntu or debian?
17:48 < sam_moore> As a debian user, I'd have to say debian :P
17:49 < jtanx> hehe
17:49 < sam_moore> If it works on debian stable, we know it will work for at least the next 6 years
17:49 < jtanx> yup
17:49 < jtanx> debian should be fine
17:53 < jtanx> *correction; we need a microsd card
17:56 < jtanx> that's at least 2GB in size
17:57 < sam_moore> Ok
18:04 < jtanx> haha it's cheaper to buy a 4gb one than a 2gb one
18:35 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
19:11 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:15 < jtanx> Well I can confirm that angstrom doesn't have nginx precompiled - http://www.angstrom-distribution.org/repo/
20:57 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Wed Sep 11 2013
10:41 -!- jtanx [~asfa@130.95.91.67] has joined #mctxuwa_softdev
11:10 -!- jtanx [~asfa@130.95.91.67] has quit [Ping timeout]
15:58 -!- jtanx [~asfa@130.95.254.246] has joined #mctxuwa_softdev
15:58 < jtanx> urgh
15:58 < jtanx> it took so long just getting internet access to the bbb
16:01 < jtanx> dhcp/dns issues
16:01 < jtanx> the debian image on the microsd is set to static ip 192.168.0.7
16:02 < jtanx> /etc/resolv.conf should have the uwa nameservers in it, but it may have been rewritten by resolvconf
16:02 < jtanx> I've left it in g19
16:51 -!- jtanx [~asfa@130.95.254.246] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
17:41 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:32 < jtanx> I've moved the 'current_time', 'start_time' and 'running_time' to the identify module instead of sticking it on every json response, because it's probably not information that will be required most of the time
19:37 < jtanx> actually, we may have to rethink those, especially if we introduce start/stop control
20:38 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Thu Sep 12 2013
08:49 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has quit [Connection reset by peer]
09:16 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:36 < sam_moore> I think I have some time after the tutorial today to work on stuff
09:36 < sam_moore> I take it we have the bbb now?
09:37 < sam_moore> I'll bring that crappy webcam
09:37 < sam_moore> Maybe look into sending images as part of the API, see if it's feasable to do it that way
09:38 < sam_moore> I think we can introduce start/stop control fairly easily
09:40 < sam_moore> "Mush Mush"
09:40 < sam_moore> Heh
09:41 < sam_moore> To reduce the load on the client, we might be able to send averaged data points instead of every data point
09:41 < sam_moore> You specify "averages per point"
09:42 < sam_moore> So each [time, value] pair is actually an average of X recordings
09:42 < sam_moore> In fact it's better to send [mean_time, mean_value, std_dev]
09:42 < sam_moore> The std_dev gives you an idea of noise and/or if the value is changing a lot
09:43 < sam_moore> And of course you can always specify a single average and it becomes equivelant to what we currently do
09:50 < jtanx> yeah
09:50 < jtanx> I'm free after the tute
09:50 < jtanx> I'm bringing in a router to make it easier
09:50 < jtanx> to work on the bbb together
09:51 < jtanx> yesterday it was so painful trying to get shit working
09:51 < jtanx> dhcp issues, dns issues, internet connection sharing issues...
09:51 < jtanx> (mostly the fault of my own computer though)
09:51 < jtanx> btw I'm working on adding an extra function to FCGI to makeit easier to parse parameters
09:51 < jtanx> (hoepfully)
09:55 < jtanx> gtg see you at the tute
09:55 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
18:24 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:26 < Callum> would be easier to talk here...if everyone was on
18:35 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:41 < jtanx> did you bring the bbb home?
18:43 < sam_moore> Yep
18:44 < sam_moore> I'll put it back tomorrow morning
18:49 < jtanx> ok
19:15 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:28 -!- Callum [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit [Ping timeout]
19:47 < jtanx> I'm so tempted to use bitflags for that request function
19:52 < jtanx> one thing that I need to do is to sanitise json string fields
20:18 < sam_moore> Sanitise? As in "make sane" or "make clean"?
20:18 < sam_moore> Um... if you think bitflags are necessary, I fully support you :P
20:19 < jtanx> as in
20:19 < jtanx> If I allow FCGI_JSONPair to also be passed a format string
20:19 < jtanx> then having stuff like \ or " or newline characters for eg in the string
20:20 < jtanx> is not a good idea
20:20 < sam_moore> Hmm
20:20 < jtanx> it's sorta like this:
20:20 < sam_moore> Well, writing the function to print out data (either as TSV or JSON)
20:20 < sam_moore> I've only been using FCGI_PrintRaw
20:20 < jtanx> yeah
20:20 < jtanx> but right now, you're logging messages in Server_handler
20:20 < jtanx> about invalid values
20:21 < sam_moore> Yes, I'm not sure how to deal with that
20:21 < jtanx> Sensor_handler*
20:21 < jtanx> so
20:21 < jtanx> eg Log(LOGERR, "Require \"all\" or an integer value: %s = %s", key, value);
20:21 < sam_moore> Yes
20:21 < jtanx> if I wanted to send that back to the client in FCGI_RejectJSON
20:21 < jtanx> there's the potential (...) that the user could hvae included a " in the value
20:22 < jtanx> so if you return it as part of your json response, then suddenly it's broken
20:22 < sam_moore> Oh, that sucks
20:23 < sam_moore> Perhaps treat Log messages seperately from JSON responses?
20:23 < jtanx> eg: "description":" required an id, got 'blah-stray"'"
20:23 < jtanx> yeah
20:24 < jtanx> What I could do is just replace any special characters with space
20:24 < jtanx> and return that in description
20:24 < jtanx> but keep the actual value in log
20:24 < sam_moore> Maybe
20:24 < sam_moore> You could also call FCGI_RejectJSON as soon as you get a special character
20:25 < sam_moore> Since we shouldn't have any key/values that use them
20:25 < sam_moore> (I think :P)
20:25 < jtanx> lol
20:25 < sam_moore> Whatever seems best
20:25 < jtanx> let me think about it some more
20:25 < sam_moore> Yeah, fair enough
20:25 < sam_moore> Um, another thing (sorry) is error messages that you might get independent of any request
20:26 < sam_moore> Like you suddenly have an I/O error on a file
20:26 < sam_moore> Currently we handle that with Fatal
20:26 < sam_moore> Which it would be convenient to keep; but instead of terminating the whole program, we need to notify the client somehow
20:26 < jtanx> that won't happen until the next request
20:27 < jtanx> what you could do is keep it exiting
20:27 < jtanx> when that happens, nginx sends 502 bad gateway
20:27 < jtanx> then if that's detected, send a link to the log file
20:27 < sam_moore> Yeah, that seems good
20:27 < jtanx> and a method to restart the software
20:28 < sam_moore> Do we want to notify the client of non-fatal errors or warnings though?
20:28 < sam_moore> Hmm
20:29 < jtanx> hmm
20:29 < jtanx> probably a good idea
20:29 < jtanx> but how
20:29 < sam_moore> The client could periodically request the log file and deal with messages?
20:30 < jtanx> It could just display it I guess
20:30 < jtanx> onus on the user to take action if required
20:30 < sam_moore> Sure, an alert might be nice though
20:30 < sam_moore> Perhaps have an extra log file that just has the most recent message in it (with a timestamp)
20:31 < jtanx> you could perform a regex on the text and highlight lines with warning or something
20:31 < sam_moore> The client just periodically looks at that and if it's a new message can alert
20:31 < sam_moore> Yeah that would work, as long as the file doesn't get too big
20:31 < sam_moore> It probably won't
20:31 < jtanx> well you could autoscroll it anyway
20:32 < jtanx> but ok maybe that's getting a bit ahead of ourselves
20:32 < sam_moore> Yeah, sure
20:32 < sam_moore> I'll get back to rewriting 90% of the sensor code :P
20:32 < jtanx> haha
20:32 < jtanx> currently, I've got
20:32 < jtanx> bool FCGI_ParseRequest(FCGIContext *context, char *params, FCGIValue values[], size_t count);
20:32 < jtanx> (any better suggestion for FCGIValue?)
20:32 < jtanx> (the name that is)
20:33 < jtanx> with
20:33 < sam_moore> That's probably fine
20:33 < jtanx> typedef struct FCGIValue {
20:33 < jtanx> const char *key;
20:33 < jtanx> void *value;
20:33 < jtanx> unsigned flags;
20:33 < jtanx> } FCGIValue;
20:33 < jtanx> you then do
20:33 < jtanx> something like:
20:33 < jtanx> FCGIValue values[2] = {{"sensors", &ident_sensors, FCGI_REQUIRED(FCGI_BOOL_T)},
20:33 < jtanx> {"actuators", &ident_actuators, FCGI_BOOL_T}};
20:33 < sam_moore> Looks good
20:33 < jtanx> although I'm open to suggestions on those type names too
20:34 < jtanx> if you really have to
20:34 < jtanx> you can do something like FCGI_RECEIVED(values[0].flags)
20:34 < jtanx> to check if you received the argument or not
20:34 < sam_moore> If it's not too hard to implement, then OK
20:35 < jtanx> ?
20:35 < sam_moore> That looks reasonably nice
20:35 < jtanx> the #defines look less so:
20:35 < jtanx> #define FCGI_PARAM_REQUIRED (1 << 0)
20:35 < jtanx> #define FCGI_PARAM_RECEIVED (1 << 1)
20:35 < jtanx> #define FCGI_BOOL_T (1 << 2)
20:35 < jtanx> #define FCGI_LONG_T (1 << 3)
20:35 < jtanx> #define FCGI_DOUBLE_T (1 << 4)
20:35 < jtanx> #define FCGI_STRING_T (1 << 5)
20:35 < jtanx> #define FCGI_REQUIRED(x) ((x) | FCGI_PARAM_REQUIRED)
20:35 < jtanx> #define FCGI_IS_REQUIRED(x) ((x) & FCGI_PARAM_REQUIRED)
20:35 < jtanx> #define FCGI_RECEIVED(x) ((x) & FCGI_PARAM_RECEIVED)
20:35 < jtanx> #define FCGI_TYPE(x) ((x) & ~(FCGI_PARAM_REQUIRED | FCGI_PARAM_RECEIVED))
20:35 < sam_moore> In fact it's similar to how you use select(2)
20:35 < sam_moore> Wow, macros
20:35 < jtanx> :P
20:35 < jtanx> makes life easier
20:36 < sam_moore> Alright, this is C
20:36 < sam_moore> Yeah, FCGI_RECEIVED(values[i].flags) looks nice (from the point of view of actually using it anyway)
20:37 < jtanx> yeah it's ok
20:37 < jtanx> the only stickler is that hardcoded index
20:37 < jtanx> can't really do much about that though
20:37 < sam_moore> I can put an enum in the function
20:38 < jtanx> if you want; it might be more work to maintain the enum than anything though
20:39 < jtanx> but yeah, essentially if you require a parameter, you surround the type in FCGI_REQUIRED()
20:39 < jtanx> hopefully that part was clear
20:39 < sam_moore> Yep, I'm happy with that
20:39 < jtanx> cool
20:43 < jtanx> for the bool value, what behaviour do you think is better
20:43 < jtanx> always set the value to true, or invert the current value
20:44 < jtanx> right now it's set to always be true
21:06 < sam_moore> Um... always set to true?
21:09 < jtanx> yeah
21:29 < jtanx> oh
21:30 < jtanx> well I didn't need to escape after all
21:30 < jtanx> If you do something like this: http://mctx.us.to:8080/api?afa%22%22%22%22
21:30 < jtanx> it gets url encoded
21:30 < jtanx> http://mctx.us.to:8080/api?afa""""
21:30 < jtanx> I wonder if that's guaranteed
21:32 < jtanx> well, apparently it's not because IE doesn't escape it for you
21:32 < jtanx> so I did need to escape
21:33 < sam_moore> There's no escape
21:46 < jtanx> wait wat
21:59 < sam_moore> (It's a pun)
22:00 < sam_moore> So I've made a DataFile structure to isolate it a bit more from the higher level Sensor related stuff
22:00 < sam_moore> Hopefully things make more sense
22:00 < sam_moore> I put in 2 seperate FILE* as well
22:00 < sam_moore> And got rid of the confusing "fill a buffer then dump the buffer to a file" loop
22:01 < sam_moore> Now it just writes each point to a file
22:01 < sam_moore> Hopefully it's thread safe enough
22:01 < sam_moore> Now... I just need to simplify the Sensor_Handler function...
22:02 < jtanx> > (It's a pun)
22:02 * jtanx facepalm
22:03 < jtanx> hoho
22:03 < jtanx> ok
22:03 < jtanx> I'll submit what I've done so far to git
22:08 < jtanx> callum
22:08 < jtanx> that code you submitted
22:08 < jtanx> I don't think it's right
22:08 -!- Irssi: #mctxuwa_softdev: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal]
22:09 < jtanx> the stuff with g_sensor_names, that's the human readable name of each sensor
22:10 < sam_moore> I've changed the name and how the sanity check gets called, but I've left the body unimplemented for now
22:12 < jtanx> it's with the pull request he submitted ~30mins ago
22:12 < sam_moore> Oh, ok
22:13 < sam_moore> Good thing I made a new branch for my changes
22:14 < jtanx> the pull request isn't merged yet
22:15 < sam_moore> Yeah, I don't think we should merge that, sorry Callum
22:17 < jtanx> ok just submitted the pull request
22:17 < sam_moore> I never put documentation on g_sensor_names I guess, sorry
22:17 < jtanx> I think I did though
22:17 < jtanx> but in the header file
22:18 < jtanx> which is annoying :/
22:18 < jtanx> (as in there's more than one spot to put documentation)
22:19 < sam_moore> Yeah... does one overwrite another?
22:19 < sam_moore> I'll just copy paste the same thing into the .c file
22:19 < jtanx> No idea how doxygen handles that
22:20 < sam_moore> I wonder how much fun I'll have merging these branches...
22:20 < jtanx> hehe
22:20 < jtanx> I'm not really sure if FCGI_ParseRequest will be that helpful or not
22:20 < jtanx> if you find it doesn't really help then we can scrap it
22:21 < sam_moore> Well it makes sense to seperate the code for getting key,value pairs from the code that does stuff with them
22:23 < jtanx> I guess
22:23 < sam_moore> I've basically moved a lot of functionality from sensor.c into a new file data.c under functions with the prefix "Data_"
22:24 < jtanx> ok
22:24 < sam_moore> data.c doesn't care anything about what the data is or where it came from, it just wraps around saving/reading/selecting ranges of DataPoints
22:25 < jtanx> sounds like a good idea
22:25 < jtanx> it might be of use in actuator code I guess
22:25 < sam_moore> Yeah, there's a DataFile structure that basically wraps around the binary file
22:25 < sam_moore> Yes, I was thinking that too
22:25 < sam_moore> Because we'll probably want to store DataPoints when an actuator gets changed
22:26 < jtanx> yeah true
22:27 < sam_moore> If the idea about using 2 FILE* is right... I don't think we really need any mutexes?
22:28 < sam_moore> There is an index that gets incremented, but since only one thread can write to it, the worst that can happen is you return one (maybe two at the extreme) less point than actually exists
22:29 < sam_moore> If you had 2 threads incrementing the index you'd need a mutex though
22:29 < jtanx> the problem is that setting a value is not guaranteed to be atomic
22:29 < jtanx> i think
22:29 < sam_moore> Yes, sure
22:29 < jtanx> so while setting and you read it it could be indeterminate
22:29 < sam_moore> Mmm
22:30 < jtanx> I think you need mutexes around reading/writing the points_written(?)
22:30 < jtanx> index
22:30 < jtanx> but that's it
22:31 < jtanx> http://stackoverflow.com/questions/54188/are-c-reads-and-writes-of-an-int-atomic
22:31 < sam_moore> I'm not sure you do if you are writing in one thread and reading in another
22:31 < sam_moore> Ah, stackoverflow, OK
22:32 < jtanx> it's actually very architecture specific
22:32 < sam_moore> Yeah "Yes, no, hmmm, well it depends" is probably right
22:32 < jtanx> haha
22:32 < sam_moore> Well... there are no mutexes at the moment, but maybe I should get around to putting them in
22:32 < sam_moore> I think I had one thread writing and another reading in my parallel programming assignment and got full marks :S
22:33 < sam_moore> Threads are strange and magical
22:33 < jtanx> hey well it probably works 99% of the time
22:34 < sam_moore> Ah, it probably works if the size of the integer is smaller than the bus
22:34 < sam_moore> smaller or equal
22:34 < jtanx> too bad linux doesn't have something like InterlockedExchange
22:35 < sam_moore> I'll add mutexes in later then
22:35 < jtanx> One thing I liked about C++ was auto locks
22:36 < jtanx> (you could call some lock function and once that scope ended the lock ended too)
22:36 < sam_moore> That's nice
22:40 < jtanx> Ok, that's all I'm probably going to get done today
22:41 < sam_moore> Yeah, thanks
22:42 < jtanx> what's with the meeting tomorrow though
22:43 < sam_moore> I'm busy from 2:00pm until at least 4:00pm (maybe later)
22:43 < sam_moore> But I think I should be preparing for something before 2:00pm
22:44 < jtanx> ok, I'll probably come in around 1.30pm so I can work with Callum, and I'll stay on until whatever time
22:44 < sam_moore> Alright
22:45 < sam_moore> Check github in the morning, I'll push all my changes
22:45 < jtanx> ok I'll do that
22:45 < sam_moore> Hopefully they make sense, otherwise you can change everything back :P
22:45 < sam_moore> The wonders of git
22:45 < jtanx> haha I'm sure it'll make sense
22:46 < jtanx> after staring for a while
22:46 < sam_moore> Yeah it should be a bit simpler
22:46 < jtanx> thanks
22:47 < jtanx> see you tomorrow (probably)
22:48 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
23:28 -!- Callum_ [~chatzilla@124-149-92-17.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Fri Sep 13 2013
08:17 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:31 < jtanx> oh yeah, I forgot to restart the bot :P
08:31 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:53 < sam_moore> So, using 2 FILE* causes some problems, I recommend we just use 1
08:54 < sam_moore> In theory the operating system is supposed to use locks when multiple processes have access to the same file
08:54 < sam_moore> But...
08:54 < sam_moore> It probably doesn't work with threads
08:55 < sam_moore> I'm not sure exactly what goes wrong, but using 1 works and isn't really going to be slower (if the OS uses locks then that probably has a similar overhead to using a mutex)
08:59 < jtanx> yeah, let's stick to one then
09:00 < jtanx> there's still a few bugs around I think
09:00 < sam_moore> Probably
09:01 < sam_moore> I put valgrind back in, I got rid of a lot last night
09:01 < jtanx> nice
09:01 < sam_moore> Although I probably introduced them in the first place
09:01 < jtanx> what was with that mem leak in fastcgi code?
09:03 < sam_moore> Oh, that wasn't a memory leak, it was an uninitialised value
09:04 < sam_moore> I thought I'd be clever and use sizeof() on the FCGIValue array
09:04 < sam_moore> But I forgot that the actual number of elements is not just sizeof()
09:04 < sam_moore> It's sizeof(array) / sizeof(element)
09:04 < jtanx> oh right haha
09:05 < sam_moore> So the refactored code basically does the same thing
09:05 < sam_moore> But hopefully it's a bit cleaner
09:05 < jtanx> yep
09:05 < jtanx> it's pretty good
09:06 < jtanx> when you get an invalid id or format, do you want to reject that?
09:07 < sam_moore> Yeah, I wasn't sure what I should do there, but I think Sensor_Handler is the only place you can really deal with that
09:07 < jtanx> yeah
09:07 < sam_moore> I did have it calling FCGI_RejectJSON if the sensor id was invalid
09:08 < jtanx> the current code on git just calls Log
09:08 < sam_moore> But I must have done something wrong, because the normal JSON was getting printed just after that
09:08 < sam_moore> So I removed it
09:08 < jtanx> oh yeah
09:08 < jtanx> you have to return after FCGI_RejectJSON
09:08 < sam_moore> Ah
09:08 < sam_moore> Durr
09:08 < jtanx> :P
09:09 < jtanx> anyways I'll look through and see if I can fix stuff up
09:09 < jtanx> then I'll try and do that start/stop stuf
09:10 < sam_moore> Ok
09:10 < sam_moore> I put in Sensor_Start and Sensor_Stop which might help
09:10 < sam_moore> I thought you might want to pause data collection without actually "stopping" the experiment?
09:11 < jtanx> ok
09:11 < jtanx> that might be a good idea
09:11 < sam_moore> And also it should be fairly easy to implement a Sensor_Load if we want to be able to load previous experiments
09:11 < jtanx> yeah
09:38 < jtanx> those issues with fread
09:38 < jtanx> it could be because you didn't specify the 'b' flag in fopen
09:38 < jtanx> ?
09:39 < jtanx> // Clear the FILE*s
09:39 < jtanx> df->read_file = NULL;
09:39 < jtanx> df->write_file = NULL;
09:39 < jtanx> fclose(df->write_file);
09:52 < sam_moore> Oh... hurdur
09:52 < sam_moore> Wait how is it working at all
09:52 < sam_moore> The write file is mode "w+" which should make it plain text
09:53 < jtanx> so it's no longer a binary file?
09:53 < jtanx> I think i may not be experiencing the same issues as you just because I'm running everything on single core processors
09:53 < sam_moore> Well... it certainly looks like a binary file when you try and cat it
09:53 < jtanx> ok
09:53 < jtanx> it's probably a good idea to stick to one file pointer and use mutexes
09:53 < sam_moore> Yeah
09:53 < sam_moore> But also make sure that file is binary
09:53 < jtanx> yeah
09:54 < sam_moore> It's probably compiler specific what happens when you use fwrite and fread on a plain text file
09:54 < jtanx> probably
09:54 < sam_moore> But it looks like a binary file to me, so I'm not sure that's related to the problems with fread
09:54 < sam_moore> I can investigate this by changing like 4 characters...
09:55 < jtanx> one thing I did notice on linux
09:55 < jtanx> if it wasn't a binary file you'd have to use fflush to explicitly write out text and have it appear when you used cat
09:56 < jtanx> but overall I think it's not due to it being a binary file or not
09:56 < sam_moore> Yep
09:56 < sam_moore> I just put the second FILE* for read_file back in
09:56 < sam_moore> Made them both binary
09:56 < sam_moore> Still get the "Transport endpoint is not connected" errors
09:57 < sam_moore> So there should be a "b" in the file mode, but that's unrelated to having multiple FILE*
09:57 < jtanx> yep then I think that's due to you running it on a multicore processor
09:57 < jtanx> maybe
09:57 < sam_moore> I think the OS locks around file access are based on PID
09:58 < jtanx> on linux all file locks are advisory only
09:58 < sam_moore> Can
09:58 < sam_moore> Anyway, it's clearly safest to just have one FILE*
09:58 < jtanx> yeah
09:58 < jtanx> I'm changing it now
10:09 < jtanx> oh ffs that's the second time it's crashed simply because I didn't do make clean before make
10:16 < sam_moore> haha
10:17 < sam_moore> Modify the make file to always run make clean?
10:28 < jtanx> haha that's one option
10:28 < jtanx> it's because make doesn't consider changes to the header files
10:28 < jtanx> there's a way to make it detect those, but *effort*
10:40 < sam_moore> Regarding Actuators, I think if we design for a thread to control (one or more) actuators that will make it easy to add more advanced control later
10:42 < sam_moore> eg: The Actuator_Handler just sets some kind of formula or says "Every time sensor 0 is stable for Xs (within a range) change actuator by Y" and the thread watches the sensor data and changes the actuator when necessary
10:43 < sam_moore> You could also add feedback that way too
10:44 < sam_moore> "Set this actuator so that sensor 0 has value X"
10:46 < jtanx> hmm
10:47 < jtanx> about the sensor stuff
10:47 < jtanx> there were a few things I noticed
10:48 < jtanx> the time wrapping
10:48 < jtanx> could still give a negative start_time or end_time
10:48 < jtanx> if the user specified a very negative start_time/end_time
10:49 < jtanx> (eg specifies a negative time greater than the total running time)
10:49 < sam_moore> Oh yeah
10:49 < jtanx> so in data_printbytimes
10:49 < jtanx> I just clamped it to zero
10:49 < jtanx> instead of asserting
10:49 < sam_moore> Fair enough
10:49 < jtanx> strangely this code seems to work pretty good:
10:49 < jtanx> void Data_PrintByTimes(DataFile * df, double start_time, double end_time, DataFormat format)
10:49 < jtanx> {
10:49 < jtanx> assert(df != NULL);
10:49 < jtanx> //Clamp boundaries
10:49 < jtanx> if (start_time < 0)
10:49 < jtanx> start_time = 0;
10:50 < jtanx> if (end_time < 0)
10:50 < jtanx> end_time = 0;
10:50 < jtanx> int start_index = 0, end_index = 0;
10:50 < jtanx> if (start_time < end_time)
10:50 < jtanx> {
10:50 < jtanx> start_index = Data_FindByTime(df, start_time, NULL);
10:50 < jtanx> end_index = Data_FindByTime(df, end_time, NULL);
10:50 < jtanx> }
10:50 < jtanx> Data_PrintByIndexes(df, start_index, end_index, format);
10:50 < jtanx> }
10:50 < jtanx> oh but that was the other ting
10:50 < jtanx> it works better if you have exclusive end index/time
10:50 < sam_moore> Ok
10:50 < sam_moore> I have to go now
10:50 < jtanx> ok
10:50 < sam_moore> See you this afternoon if you're still there
10:50 < jtanx> yep see you then
10:51 < jtanx> probably
10:58 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [Connection reset by peer]
13:41 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
13:44 -!- callum [~chatzilla@130.95.135.82] has joined #mctxuwa_softdev
13:44 < callum> should i just add the sensor threshold values to the sensor struct?
13:47 < jtanx> probably not
13:47 < jtanx> I think you have to create a new struct
13:48 < jtanx> are you at uni?
13:49 < callum> yea. why is a new struct necessary?
13:49 < jtanx> come to g19
13:49 < jtanx> the bbb is setup too
14:03 -!- callum [~chatzilla@130.95.135.82] has quit [Connection reset by peer]
16:17 < sam_moore> Are you guys still in G19?
16:17 < sam_moore> On my way now
17:30 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
18:20 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:42 < jtanx> lol you need to use a transistor to turn on an led from the gpio pins
19:56 < jtanx> ok I think I'll just escape all input parameters from within the request loop
19:56 < jtanx> then at least you're guaranteed that user input won't stuff up anything
19:56 < jtanx> (as in making it generate invalid JSON)
20:53 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Sat Sep 14 2013
09:58 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
11:08 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:32 < sam_moore> blergh, too many different versions of OpenCV
11:32 < sam_moore> Also too many different data types
11:33 < sam_moore> "Getting a digital image into numbers can be very handy for your image processing. In this post i will brief just that."
11:34 < sam_moore> Thank god, finally a tutorial that makes sense
11:34 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
11:34 < sam_moore> ... no one else is in the channel
11:34 < sam_moore> :S
11:37 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
12:36 < jtanx> on start/stop/pausing an experiment
12:36 < jtanx> currently everything is relative to g_options.start_time
12:42 < sam_moore> Yeah
12:43 < sam_moore> Perhaps make an ExperimentTime function and that leaves us free to change what the time stamps are relative to?
12:43 < sam_moore> Looking into this interferometer stuff...
12:43 < jtanx> ok, maybe as part of the Control_ module then
12:43 < sam_moore> Interesting problem, I think I've worked out an algorithm that isn't too terrible
12:44 < jtanx> yeah?
12:44 < jtanx> how does it work
12:45 < sam_moore> If you have a sinusoidal wave, find the x intercepts, and that lets you calculate the phase and frequency
12:45 < sam_moore> That's the simple version
12:46 < jtanx> haha alright
12:46 < sam_moore> I have 3 pages of notes that I can show Adrian/Adam if I can't get it working
12:46 < jtanx> wow
12:46 < jtanx> nice work
12:47 < sam_moore> Fortran would be good for the array operations
12:47 < sam_moore> If fortran were able to do anything *other* than array operations it would be a nice language...
12:47 < jtanx> have you ever used Fortan before?
12:48 < sam_moore> Yes
12:48 < sam_moore> I'm going to keep it in C though
12:48 < sam_moore> It took long enough to get OpenCV working
12:48 < sam_moore> I'm sure there's some kind of convoluted Fortran library
12:49 < sam_moore> But a seperate fortran program won't talk to our server
12:49 < jtanx> can you compile the code as a library with C interop
12:49 < sam_moore> Erm..
12:49 < sam_moore> Probably more effort than just doing it in C
12:49 < jtanx> probably
12:51 < jtanx> I think a separate mutex is needed around the *_Stop() functions
12:51 < jtanx> because if a client sends in a request
12:51 < sam_moore> Oh, good point
12:52 < jtanx> although that's only going to be a problem if our own software calls the stop function because of the sanity checks
12:52 < sam_moore> If there are 2 requests?
12:52 < sam_moore> No wait, the FCGI stuff is serial
12:52 < jtanx> the request loop is single threaded
12:52 < sam_moore> It has to finish processing one request to respond to the next
12:52 < sam_moore> That's fine
12:56 < sam_moore> Put a mutex in the Sensor struct, use the same one that's already in the Actuator struct, put critical sections around setting the "s->record_data" or "a->activated" variables (or whatever you choose to use as a "is thing running" flag)
12:56 < sam_moore> And check the flag hasn't already been set before doing anything
12:57 < sam_moore> Similar to how the Thread_Running() and Thread_QuitProgram() functions used to work
12:57 < sam_moore> .... Before I deleted them
12:57 < sam_moore> Any thread could call Thread_QuitProgram, and repeated calls would have no effect
13:01 < jtanx> ok I'll try that
13:51 < jtanx> actually, what about this:
13:51 < jtanx> in control.c, it maintains its own mutex
13:51 < jtanx> so
13:52 < jtanx> and it's the only place where Sensor_Start/Stop Actuator_Start/Stop is called
13:53 < jtanx> You then have Control_Lock/Unlock that's placed around the responses in the handler functions
13:53 < jtanx> those functions internally lock/unlock the mutex held in control.c
13:53 < jtanx> ah stuff it
13:53 < jtanx> I'll commit it to my git repo
13:54 < jtanx> I still don't know how the pause functionality should be done though
13:54 < jtanx> especially with the time discontinuities
14:01 < jtanx> oh yeah, just a reminder that you have to be careful using FCGI_LONG_T vs FCGI_INT_T
14:02 < jtanx> if your variable is of type int but you give FCGI_LONG_T, and where sizeof(int) != sizeof(long) then there could be a buffer overflow
14:13 < sam_moore> Right
14:14 < sam_moore> If you want to commit to the main repo you can use a new branch
14:14 < sam_moore> Having a single mutex in control.c instead of one per sensor/actuator is probably better
14:15 < sam_moore> With the pause functionality... I think if you just don't call Data_Close() (and don't call Data_Open on resuming) but otherwise stop the threads running Sensor_Loop in the same way
14:15 < sam_moore> That should do most of it
14:16 < sam_moore> Don't reset the experiment start time
14:17 < sam_moore> Perhaps the experiment start time needs to be stored somewhere though
14:18 < sam_moore> Anyway, I'll let you solve the problem :P
14:48 < jtanx> ._.
15:45 < jtanx> well I think I got something semi-working
15:45 < jtanx> it involved adding on Sensor_PauseAll/ResumeAll + Acuator_PauseAll/ResmueAll (plus the individual Pause/Resume) functions
15:46 < sam_moore> Cool
15:46 < sam_moore> I think I'm starting to get my head around OpenCV
15:46 < sam_moore> The documentation for it is a bit crap
15:46 < jtanx> oh don't get me started on opencv documentation
15:47 < jtanx> yesterday it took me and callum around 30 mins to figure out that CvMat structure
15:47 < sam_moore> Haha
15:47 < sam_moore> It probably took me a bit longer :S
15:47 < jtanx> the problem is that most of it's geared towards c++ usage
15:49 < jtanx> back on that control stuff, basically those Sensor/Actuator_[Start|Stop|Pause|Resume] functions can only be called via the Control_[Start|Stop|Pause|Resume] functions
15:50 < jtanx> partly because of threading issues but also because it's the only place where the current state is currently kept track of
15:51 < jtanx> (e.g if you call Sensor_Start twice then...
15:53 < sam_moore> Seems sensible
15:53 < jtanx> anyway, I'm taking a break from this stuff for a while
15:53 < sam_moore> Yeah, fair enough
15:54 < jtanx> If you want to see what I've done so far, it's on my git repo (haven't added comments yet)
15:54 < sam_moore> Cool
16:50 < sam_moore> The IplImage vs CvMat conversion is dumb
16:50 < sam_moore> In fact I don't think you even need to do it?
16:51 < sam_moore> Well at least to display an image you can just pass a CvMat
16:51 < sam_moore> Maybe you still need the IplImage to capture from a camera
16:51 < sam_moore> I worked out how to convert from IplImage to CvMat anyway
16:53 < sam_moore> Other than that, OpenCV doesn't actually seem horrible to use
16:53 < sam_moore> Just... contradictory documentation
16:55 < sam_moore> Anyway... I've created a moving sinusoidal image!
16:56 < sam_moore> Now to work out why the algorithm keeps returning -nan :S
16:56 < sam_moore> Also for some reason the image is blue instead of red
16:56 < sam_moore> But whatever
16:57 < jtanx> :S
16:57 < jtanx> BGR vs RGB?
17:02 < sam_moore> Looks like it
17:03 < sam_moore> Doing this with an actual camera is going to suck
17:04 < sam_moore> See, I've worked out an algorithm to cope with changing background light conditions
17:04 < sam_moore> Because differentiating a sinusoid gives you another sinusoid with the same phase (offset by pi/2)
17:05 < sam_moore> Buut... differentiating with finite differences adds more noise
17:05 < sam_moore> Or rather it makes the noise more pronounced
17:07 < sam_moore> Hopefully sensors is considering this
17:07 < sam_moore> If they want to shoot a laser into a camera, they should really do it in a way that keeps out background light
17:07 < sam_moore> Buuut
17:07 < sam_moore> I think they mentioned using one camera to do both the interferometer and look at the can
17:07 < sam_moore> :S
17:08 < sam_moore> Oh well, the optics is their problem
17:09 < sam_moore> I suppose I will prepare a report or something about the algorithm and what conditions the image needs to satisfy
17:12 < jtanx> um
17:12 < jtanx> there's going to be two cameras
17:12 < jtanx> because it was too much hassle moving it
17:12 < sam_moore> Yes... but one was meant to be looking at each can?
17:13 < jtanx> oh
17:13 < jtanx> hmm
17:13 < sam_moore> We should ask them
17:13 < jtanx> I just thought that one would be for the interferometer (no need to look at can) and the other would be for the can to be blown up
17:13 < sam_moore> Probably
17:15 < jtanx> but I was thinking for the one to be blown up
17:16 < jtanx> you could possibly just stream it using something like ffserver
17:16 < jtanx> instead of passing it through opencv
17:16 < sam_moore> Yeah, that seems like it's probably easier
17:23 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["my antivirus is pestering me to restart"]
17:41 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:19 < sam_moore> So... when you take an image with a camera the pixels are stored as rgb with 0->255 values
18:20 < sam_moore> You can convert the IplImage to a CvMat and it keeps the values ordered as rgb with 0->255 values
18:20 < sam_moore> And then...
18:20 < sam_moore> If you try and display it...
18:20 < sam_moore> The display function treats it as having values in bgr order with 0->1 values
18:20 < sam_moore> -_-
18:21 < sam_moore> (So unless you manually adjust all the values you'll just get a white picture in the display)
18:54 < jtanx> hahaha
18:54 < jtanx> what
18:56 < jtanx> for cvShowImage:
18:56 < jtanx> If the image is 8-bit unsigned, it is displayed as is.
18:56 < jtanx> If the image is 16-bit unsigned or 32-bit integer, the pixels are divided by 256. That is, the value range [0,255*256] is mapped to [0,255].
18:56 < jtanx> If the image is 32-bit floating-point, the pixel values are multiplied by 255. That is, the value range [0,1] is mapped to [0,255].
18:57 < jtanx> so it's treating it as 32-bit floating point?
19:49 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
19:56 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:41 < sam_moore> I think it's because of how I converted the IplImage to a CvMat
20:42 < sam_moore> My algorithm is almost working
20:43 < sam_moore> The fact that angles wrap around every 2*pi is giving me a headache though
20:43 < sam_moore> This is pretty fun
20:45 < sam_moore> Hopefully I can do Computer Vision as an optional, I think its in the list
20:45 < sam_moore> Maybe I shouldn't make all my optionals CS units, but meh
21:20 < jtanx> :P
21:20 < jtanx> the computer vision unit sounds interesting, but a lot of maths/theory involved
22:02 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Sun Sep 15 2013
09:13 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:02 < sam_moore> I'm really glad I put the IRC logs under git
11:02 < sam_moore> It's very helpful for keeping my diary up to date
11:40 < jtanx> hehe
11:40 < jtanx> I'm gladful for git
11:48 < jtanx> about the bbb
11:48 < jtanx> it's probably best to just install debian to the internal memory
11:54 < jtanx> on the controls
11:54 < jtanx> maybe we can have the following states: start/pause/resume/stop/close
11:56 < jtanx> actually, maybe just start/pause/resume/close
11:56 < jtanx> when an 'emergency stop' due to the sanity checks occurs
11:57 < jtanx> actually, start/pause/resume/close/emergency
11:57 < jtanx> start/pause/resume/close can only be initiated by the client
11:58 < jtanx> emergency can be initiated by client/server
11:58 < jtanx> in emergency, actuators are set as necessary then deactivated
11:58 < jtanx> but importantly, the data files remain open, which hopefully removes the need for mutexes
12:26 < sam_moore> That seems sensible
13:20 < sam_moore> Hey
13:20 < sam_moore> It's actually quite simple to stream an image through FastCGI
13:21 < jtanx> yeah
13:21 < jtanx> you just fwrite the image buffer
13:21 < sam_moore> Yep
13:21 < jtanx> I had some test code for that but could never test it
13:22 < jtanx> no webcam
13:22 < sam_moore> Ah, damn
13:22 < sam_moore> I've written some code, it works pretty brilliantly
13:22 < jtanx> nice
13:22 < jtanx> this control code is really annoying me
13:23 < jtanx> just all the considerations of if you need a mutex here or not and 'what happens if...'
13:23 < sam_moore> Ah, sorry to hear that
13:23 < jtanx> yeah nah its ok
13:24 < jtanx> but that interferometer stuff you did looks really cool
13:26 < sam_moore> Yeah, it worked surprisingly well
13:26 < sam_moore> It can cope with a fair bit of background light, even without all the improvements I was thinking about
13:27 < sam_moore> If I add 2 or 3 more columns to scan, and use the fact that we actually know the spatial frequency to eliminate nodes that are too close together
13:27 < sam_moore> It should be pretty good
13:27 < sam_moore> I'm not sure what the laser intensity will be, but the generated image looks similar to ones you can find on the internet
13:28 < sam_moore> One possible problem is if the mirrors aren't flat enough
13:28 < sam_moore> But hopefully it won't be a big issue (since they've pretty much just specified an expensive pre-built kit which presumably has flat mirrors)
13:29 < jtanx> yeah
13:30 < jtanx> here's to hoping 'it just works'
13:30 < sam_moore> Yep :P
13:31 < sam_moore> Got to go, bye
13:32 < jtanx> ok cya
15:50 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
15:56 -!- jtanx_ [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:56 -!- jtanx_ is now known as jtanx
21:48 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Mon Sep 16 2013
07:28 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:27 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
12:51 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
16:05 -!- jtanx_ [~asfa@130.95.125.48] has joined #mctxuwa_softdev
16:05 -!- jtanx_ [~asfa@130.95.125.48] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
16:10 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
19:34 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:44 < jtanx> no mctxbot while I work on my f# project
20:00 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
21:26 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:58 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
--- Day changed Tue Sep 17 2013
08:14 -!- jtanx [~asfa@130.95.101.14] has joined #mctxuwa_softdev
09:50 -!- jtanx [~asfa@130.95.101.14] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
15:34 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:34 < jtanx> to run the software not as root, we need to at least add it to the 'video' group so it can access the webcam
15:34 < jtanx> not sure about the sensors
15:34 < jtanx> eg sudo usermod -a -G video debian
15:38 < sam_moore> Ah, cool
15:39 < sam_moore> I think I worked out how to get around the camera crashing without killing the rest of the program, won't implement it for a while though
15:40 -!- MctxBot [~twang@203-59-42-232.dyn.iinet.net.au] has quit [EOF From client]
15:43 -!- jtanx_ [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:48 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:53 -!- jtanx [~asfa@203-59-42-232.dyn.iinet.net.au] has quit [Ping timeout]
15:57 -!- jtanx_ is now known as jtanx
16:41 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
16:46 -!- jtanx_ [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:46 -!- jtanx_ is now known as jtanx
18:02 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
18:16 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:31 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
22:38 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:49 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
23:17 -!- Callum [~chatzilla@124-169-175-15.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:18 < Callum> hey
23:23 < sam_moore> Hi
23:24 < Callum> do you know how to do the second question of that assignment?
23:24 < Callum> https://docs.google.com/file/d/0B241H5liqVlnbHZETXRZX1Mwd1k/edit?usp=sharing
23:25 < Callum> rather remember
23:35 < sam_moore> Well, you can eliminate any epsilon^2 when you substitute those formulae for v into the formula for gamma
23:35 < sam_moore> Then it has a really simple taylor expansion
23:35 < Callum> i might have to hunt you down tomorrow to show me. or maybe il be able to think straight tomorrow.
23:38 < sam_moore> You can express one of the epsilons in terms of the other one after that
23:40 < sam_moore> I'm pretty busy tomorrow
23:42 < Callum> mhmm. so no free time at all? coz im fairly free
23:49 < sam_moore> Not from 8:00am until 5:00pm
23:49 < Callum> ohwow. you are busy
23:49 < Callum> im still unsure what im meant to be applyign the taylor expansion to
23:53 < sam_moore> Substitute in the suggested formulae to gamma, simplify it, then apply a taylor expansion
23:53 < sam_moore> Anyway, goodnight, good luck
23:53 < Callum> night
--- Day changed Wed Sep 18 2013
00:07 -!- Callum [~chatzilla@124-169-175-15.dyn.iinet.net.au] has quit [EOF From client]
07:50 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:11 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]"]
18:50 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:04 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
21:03 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:39 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Thu Sep 19 2013
16:07 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:08 < jtanx> one thing I forgot to mention - the latest version on git uses syslog
16:08 < jtanx> if you copy the config file (server-configs/rsyslog.d/* ??) to /etc/
16:09 < jtanx> it will log to /var/log/mctx[something I can't remember].log
16:10 < jtanx> i'm pretty sure you can also create a log file specifically for warning level and above (so it logs in three places, stderr, the normal log, and a special 'error' log), but I haven't set this up yet
18:15 -!- MctxBot_ [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:17 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:17 < jtanx_> :0
18:22 < sam_moore> ?
18:30 -!- MctxBot [~twang@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
18:31 -!- jtanx [~asfa@220-253-203-124.dyn.iinet.net.au] has quit [Ping timeout]
18:50 -!- jtanx_ is now known as jtanx
19:11 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
19:51 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:52 -!- MctxBot_ is now known as MctxBot
20:24 < jtanx> I got the camera image to be updated in javascript instead: http://mctx.us.to:8080/test/
20:25 < jtanx> right now it's updated around every ~400ms because my webcam is running through a usb1.1 link which seriously limits how fast it can update
20:36 < jtanx> (its running on a pentium 3 computer)
21:35 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Fri Sep 20 2013
15:38 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:53 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
18:02 < jtanx> this seems like an interesting option, at least for the cam that just shows the can explode:http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page
18:51 < sam_moore> Cool
18:51 < sam_moore> It, ah
18:52 < sam_moore> Looks like we might have to recompile the kernel to get PWM working
18:52 < sam_moore> Hooray
18:52 < sam_moore> Kernel compiling
18:52 < sam_moore> What could possibly go wrong?
19:02 < jtanx> really??
19:02 < jtanx> why....
19:03 < jtanx> no am33xx_pwm module?
19:04 < sam_moore> Not that I can tell
19:05 < jtanx> well crap
19:06 < sam_moore> Well... surely I can find a precompiled kernel somewhere
19:06 < jtanx> it seems that stuff for the BBB is at a really premature stage
19:07 < sam_moore> Yeah, RPi is much nicer
19:07 < jtanx> the BBB is just too new..
19:07 < sam_moore> What's the point of having fancy things like ADC and PWM...
19:07 < sam_moore> If you can't actually use them without jumping through hoops
19:07 < jtanx> hahaha
19:07 < jtanx> were you referencing this, when you said we might have to recompile the kernel? https://groups.google.com/d/msg/beagleboard/wjbOVE6ItNg/AGYVRhYbTX8J
19:08 < sam_moore> Yeah
19:08 < sam_moore> ...
19:08 < sam_moore> I wonder if I can take the kernel used by Angstrom and stick it in /boot
19:08 < sam_moore> on the SD card
19:09 < jtanx> ._.
19:10 < jtanx> what about kernels from here
19:10 < jtanx> http://rcn-ee.net/deb/precise-armhf/
19:10 < jtanx> sorry
19:10 < jtanx> http://rcn-ee.net/deb/wheezy-armhf/
19:11 < jtanx> what's it currently running
19:12 < sam_moore> 3.8.13-bone20
19:13 < sam_moore> Try 3.8.13-bone28 ?
19:15 < jtanx> what about v3.8.9-bone15
19:15 < jtanx> oh wait
19:15 < jtanx> ~.~
19:15 < sam_moore> I wonder why the BBB developers didn't go with debian...
19:15 < jtanx> v3.11.0-bone5
19:15 < jtanx> yeah
19:15 < jtanx> why angstrom, of all things
19:15 < sam_moore> Is angstrom used anywhere else?
19:16 < jtanx> dunno
19:16 < sam_moore> Other embedded devices, heh
19:16 < sam_moore> Everyone just has to use their own distro :P
19:17 < sam_moore> I didn't see the .11 kernels, I'll try the latest one
19:17 < jtanx> want to try the rc version? lol
19:18 < jtanx> oh the rc versions are older than .11
19:19 < jtanx> how does it work?
19:19 < jtanx> do you just download from http://rcn-ee.net/deb/wheezy-armhf/v3.11.0-bone5/
19:19 < jtanx> the .sh script and run it from the BBB?
19:24 < sam_moore> I think so
19:25 < sam_moore> Well... here goes nothing
19:26 < sam_moore> Hopefully between 3.8 and 3.11 they actually enabled PWM by default...
19:27 < sam_moore> It looks like install-me.sh downloads all the .deb files appropriately
19:29 < sam_moore> It's creating files like: /lib/firmware/bone_pwm_P8_36-00
19:29 < sam_moore> Which looks promising
19:29 < sam_moore> Snoopy is not yet on fire
19:29 < sam_moore> Which is promising
19:29 < sam_moore> Rebooting and praying
19:31 < sam_moore> And... it booted into 3.8.13-bone20 -_-
19:31 < sam_moore> Tempted to just symlink that filename to the new kernel
19:34 < sam_moore> The new kernel exists in /boot, but obviously there's some boot config that needs to get set
19:39 < sam_moore> Ok, screw this, I'm making a symlink just to see if it works
19:40 < jtanx> lol
19:41 < jtanx> no grub
19:43 < jtanx> did update-initramfs run?
19:46 < jtanx> or maybe we need mkimage
19:47 < jtanx> yeah probably need mkimage
19:50 < sam_moore> Um, zImage is a symlink to the kernel
19:50 < sam_moore> But regardless, the new one won't boot
19:50 < sam_moore> Such a pain
19:50 < sam_moore> I wonder if we can just toggle the GPIO pin fast enough to implement PWM
19:56 < sam_moore> Using a decent oscilloscope, I read a 6us period when switching GPIO1_28 on/off as fast as possible
19:59 < sam_moore> That
19:59 < sam_moore> s like 166KHz
19:59 < sam_moore> Heh
19:59 < sam_moore> Maybe the sources you found were closing the file and reopening it?
20:01 < sam_moore> Yeah, wow
20:02 < sam_moore> Using fopen, fprintf and fclose each time takes the period to 224us
20:02 < sam_moore> Or 4KHz
20:03 < sam_moore> Also for future reference, that CRO in G19 is definitely broken; it's always a lovely square wave on the modern oscilloscope I'm testing with now
20:12 < jtanx> haha ok
20:13 < jtanx> but without kernel support your pwm signal won't be very accurate
20:13 < sam_moore> Yeah, I suppose
20:13 < jtanx> how come the new kernel won't boot?
20:14 < sam_moore> No idea
20:14 < jtanx> Hmm
20:14 < jtanx> this lack of documentation on how you do such procedures is pretty crap
20:15 < sam_moore> Yeah, kernel developers aren't great on documentation
20:15 < jtanx> is the mkimage package present?
20:15 < jtanx> if not, install it and try running the install-me script again
20:16 < jtanx> from this: http://www.jeremycole.com/blog/2011/03/09/beagleboard-upgrading-from-debian-5-to-debian-6/
20:16 < jtanx> it should be just running that install script and rebooting
20:16 < sam_moore> Alright, uboot-mkimage I presume?
20:16 < jtanx> i guess
20:17 < jtanx> and update-initramfs?
20:18 < jtanx> (just looking at what the install-me.sh script uses)
20:18 < sam_moore> Oh, does the script not fail if packages it needs don't exist...
20:18 < sam_moore> -_-
20:19 < jtanx> a quick scan says nup
20:24 < sam_moore> Already had initramfs-tools but not mkimage, so I'll try again
20:27 < sam_moore> I should probably have focused on the ADC reading before PWM
20:27 < sam_moore> We're definitely going to get asked about aliasing again
20:28 < jtanx> urgh yeah
20:28 < sam_moore> I don't have a signal generator here though
20:28 < jtanx> this BBB has definitely not been designed with 'plug n play' in mind
20:28 < sam_moore> Mmm
20:29 < sam_moore> The Angstrom image would work for this stuff, but obviously has limitations in terms of the webserver stuff
20:29 < sam_moore> But even with Angstrom you still have to go through a similar convoluted process to control pins
20:30 < sam_moore> From what I can tell there are two ways to do it
20:30 < sam_moore> SYSFS, which I can't find much documentation on
20:30 < sam_moore> Which is the /sys/class/gpio/ stuff
20:30 < sam_moore> Which actually seems more intuitive than the other way
20:31 < sam_moore> That involves echoing a bunch of cruft to /sys/devices/cape-manager/slots/ or something similar
20:31 < jtanx> hmm
20:32 < sam_moore> There is a /sys/class/pwm
20:32 < sam_moore> But unfortunately whatever you export it complains about
20:32 < sam_moore> Probably because the kernel wasn't compiled with it enabled
20:32 < jtanx> is this with the old kernel?
20:32 < sam_moore> Yeah
20:33 < sam_moore> Hangon, the new one's probably finished building by now
20:34 < jtanx> we don't know if the new one has been compiled with pwm support though
20:34 < sam_moore> Yeah
20:36 < sam_moore> The diff between the config options for the kernels shows that the old one has a comment "CONFIG_EHRPWM_TEST is not set" and the newer one has no reference to it
20:37 < sam_moore> ...
20:37 < sam_moore> Someone at some point
20:37 < sam_moore> Has realised that PWM was not enabled
20:37 < sam_moore> And commented that it isn't enabled
20:37 < sam_moore> WHY THE HELL DIDN'T THEY JUST ENABLE IT
20:37 < jtanx> :P
20:37 < sam_moore> Anyway it still booted off the old kernel
20:37 < sam_moore> Dinner time
20:38 < jtanx> ok
20:57 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:15 < sam_moore> http://www.eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-LinuxKernel
21:15 < sam_moore> Looks promising
21:16 < sam_moore> Hmm...
21:17 < sam_moore> I'll try using 3.8 but building with the PWM
21:18 < jtanx> building from source - fun fun :P
21:19 < sam_moore> Well in theory I just change a config option
21:19 < jtanx> yeah
21:19 < sam_moore> When that doesn't work and I have to modify the source, that's when the fun begins
21:19 < jtanx> let's just hope it works
21:19 < sam_moore> Yeah, if it doesn't we're (beagle) boned
21:19 < jtanx> oh while you're at it, figure out how to enable the ethernet-over-usb feature
21:19 < sam_moore> Haha
21:20 < jtanx> loljk
21:25 < sam_moore> Hmmm... compiling a kernel is going to take a while
21:26 < sam_moore> Ergh, why am I running it on this Pentium D
21:30 < sam_moore> Hmmm, more troubling... why does a debian wheezy server have OpenSUSE sources in sources.list
21:30 < sam_moore> Oh well, not my problem
21:33 < jtanx> heh
21:33 < sam_moore> How the hell are we going to explain this in the progress report...
21:34 < sam_moore> Also, I didn't fully understand, why can't you use the same image for multiple BBB?
21:34 < sam_moore> Are we going to have to do this all again for the other BBB?
21:34 < sam_moore> Spike I mean
21:37 < jtanx> no idea
21:38 < jtanx> without some sort of debugging cable to see what happens when it boots, who knows
21:38 < sam_moore> :S
21:39 < sam_moore> I love how git gets to the head of the branch
21:39 < sam_moore> By starting at the initial commit
21:39 < sam_moore> And going through every commit and changing the file
21:42 < sam_moore> It hasn't started building yet
21:42 < sam_moore> And the way you customise the build...
21:42 < sam_moore> Is to build it with the defaults, so that the options file exists, then change the options, then build it again -_-
21:43 < jtanx> ಠ ಠ
21:43 < sam_moore> Oh well, I have to go home, I'll try finish this tomorrow
21:43 < sam_moore> Bye
21:43 < jtanx> ok
21:43 < jtanx> bye
23:20 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sat Sep 21 2013
08:42 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:23 < sam_moore> http://hipstercircuits.com/enable-pwm-on-beaglebone-with-device-tree-overlays/
11:23 < sam_moore> So... according to this I should add pwm_test as a kernel module
11:24 < sam_moore> "This is it. It is now three o’clock in the morning and I have not slept or eaten in two days. My neck is sore, my ass has fallen asleep and my organs are screaming “slow down, man”. I no longer see [CC]s, [LD]s and [AS]s, I only see blondes, brunettes and redheads flashing before my eyes. With my last ounce of energy I barely manage to type in “reboot” as my face hits the keyboard. And that is when it happens.."
11:25 < sam_moore> Ummm
11:25 < sam_moore> It's awesome that this guy has solved the problem (I think)
11:26 < sam_moore> But a bit depressing that it still isn't in the official kernel
11:29 < sam_moore> I think most people just give up and use Angstrom, which is tempting
11:30 < sam_moore> I still have that HTTP server code... :P
11:45 < sam_moore> Looks like Robert C Nelson's 3.8 kernel does have a pwm_test module
11:45 < sam_moore> Maybe the image you used just had an out of date kernel?
11:45 -!- Irssi: #mctxuwa_softdev: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal]
11:51 < jtanx> hmm
11:51 < jtanx> no idea
11:51 < jtanx> it was made in july I think and it uses those rcn kernels
11:51 < jtanx> We could always use lighttp
11:51 < jtanx> lighttpd on angstrom if necessary
11:52 < jtanx> lighttpd and install mod_fastcgi
11:55 < jtanx> ok so the image uses 3.8.13-bone20, so maybe it wasn't enabled in that version, but it now is in 3.8.13-bone28?
12:02 < sam_moore> I've just built 3.8.13-bone28 and the module pwm_test exists
12:03 < sam_moore> ... I also copied the code from that guy's blog as pwm_test2 just in case :P
12:03 < sam_moore> I'll have to test it later, but at least we have the kernel module
12:08 < jtanx> nice
12:39 < jtanx> ohhhhh I know why it didn't work from one bbb to the next, using the same image
12:39 < jtanx> When you boot for the first time, it assigns the ethernet port eth0
12:39 < jtanx> when you then take it out and boot it on a different BBB
12:40 < jtanx> because the ethernet device has a different id, it gets assigned to say eth1
12:40 < jtanx> and because you don't have any config for eth1 in your network config, there's no internet access
12:40 < jtanx> http://www.eewiki.net/display/linuxonarm/BeagleBone#BeagleBone-Networking:UsingasharedSDcardwithMultipleBeagleBone
12:41 < jtanx> should fix that
13:21 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has left #mctxuwa_softdev []
13:21 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:10 < jtanx> Eh, you know what I'll just stop the threads when you want to pause it
15:10 < jtanx> instead of conditionals
15:11 < jtanx> it's not like you're pausing the experiment that often
15:18 < sam_moore> That's fine
15:19 < sam_moore> The conditional approach is only really necessary if you're constantly pausing the threads
15:19 < sam_moore> I used it for an nbody simulator, so the computation of force and position was split up between threads
15:19 < sam_moore> It's really slow if you have to stop and then recreate the threads on every step
15:22 < sam_moore> Although still actually faster than the single threaded program
15:22 < sam_moore> Well, depending on how many objects you simulated
15:23 < sam_moore> Anyway, just stop the threads, it's simpler to code and the performance effect in our case is probably negligable
15:30 < jtanx> yeah
15:30 < jtanx> say you had an actuator that was being controlled at that instant when an 'emergency stop' was issued
15:31 < jtanx> since an 'emergency stop' is the same as just pausing (eg stopping the thread but keep DataFile open)
15:31 < jtanx> you'd have to wait for that action to be completed before the 'emergency stop' would be propagated
15:34 < jtanx> welp I guess that's why there's hardware safety interlocks
15:38 < jtanx> Also, technically wouldn't it be possible to try to set the actuator value before the current value has been set
15:38 < jtanx> Since there's no queue
15:39 < jtanx> a->control could be overwritten by a new request as Actuator_SetValue operates
16:12 < sam_moore> We want that right?
16:13 < sam_moore> I'll look at it later if I get time
16:14 < jtanx> I don't know if we want that or not
16:15 < jtanx> wait want as in the current behaviour or the behaviour with a queue?
16:16 < sam_moore> The current behaviour
16:16 < sam_moore> I don't think you need a queue
16:16 < sam_moore> You can extend the critical section in Actuator_Loop to stop the current control getting overwritten
16:17 < sam_moore> Move the pthread_mutex_unlock on line 121 to below line 127 (Actuator_SetValue)
16:17 < sam_moore> That way if Actuator_SetControl is called before the value has been successfully set, it will just wait
16:17 < sam_moore> Mutexes actually implement a queue
16:18 < sam_moore> If one thread has a lock on the mutex, subsequent threads that try to access the mutex will queue up; whenever the mutex is unlocked the next thread (if any) which was waiting will get it
16:18 < jtanx> ok
16:23 < jtanx> I'll leave it as is for now
16:23 < sam_moore> Sure
16:49 < sam_moore> PWM working
16:49 < jtanx> nice
16:50 < jtanx> I still don't really understand - did you compile the kernel from scratch
16:50 < jtanx> or did you figure out how to use the install-me.sh script
16:50 < sam_moore> I did, but I didn't need to modify it
16:50 < jtanx> huh
16:50 < jtanx> ok
16:51 < sam_moore> http://www.eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-LinuxKernel
16:52 < jtanx> so if we do this: http://www.eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Networking:UsingasharedSDcardwithMultipleBeagleBone
16:52 < jtanx> We should be able to just copy our image
16:52 < jtanx> and stick it on the electronics' BBB
16:53 < sam_moore> Sounds good
16:53 < sam_moore> I'm glad that worked
16:53 < jtanx> yeah
16:54 < jtanx> I wonder if it also enabled the usb0 stuff (ethernet over usb)
16:58 < sam_moore> PWM appears to have picosecond resolution? Or at least the arguments are in ps
17:02 < jtanx> oO
17:11 < sam_moore> ADC can sample at ~4KHz
17:11 < sam_moore> But... that's using bash
17:11 < sam_moore> It will probably be massively fast when done in C
17:11 < jtanx> um
17:11 < jtanx> is there any need to have it sample at a consistent rate
17:11 < jtanx> as in, with threads there's no guarantee
17:12 < jtanx> of a consistent sampling rate
17:12 < sam_moore> Yes, you're right
17:13 < sam_moore> I don't think we can achieve a consistent sampling rate, but I don't think it's critical that we do
17:14 < sam_moore> As soon as we make our software run in an operating system with a kernel and other processes that can run as well, it gets pretty unfeasable to have a constant sample rate
17:14 < sam_moore> We can have it constant to within an uncertainty I guess
17:15 < jtanx> yeah, true
17:18 < sam_moore> If you wanted a really high constant sample rate (say much faster than 1us which is probably the best case we could get) you'd have to use a more low level embedded device
17:18 < sam_moore> Well I guess you could compile your own kernel for the BBB
17:19 < sam_moore> But either way you'd have to physically run the webserver/GUI interface stuff on a seperate device
17:19 < sam_moore> At this stage my feeling is what we have is good enough given the complexity of all the requirements we were given
17:23 < jtanx> yeah
17:25 < sam_moore> Hmm, I can set some GPIO pins to toggle whenever Sensor_Read is called and get an idea of sample rates and to what degree of accuracy we can quote the time stamps
17:26 < sam_moore> I think I'll write some pin control code
17:26 < sam_moore> I don't trust any of these custom libraries
17:29 < jtanx> custom libraries?
17:36 < sam_moore> Well they aren't really libraries
17:36 < sam_moore> http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO#Example_of_GPIO_access_from_within_a_C_program
17:37 < sam_moore> Eg: That one has an fopen and fclose each time the value is changed
17:38 < sam_moore> I could google until I find someone that has already written a C library, but chances are it will be slow or broken
17:38 < sam_moore> Since I've worked out how to control the pins I may as well just write the C code to do it
17:39 < jtanx> yep
17:49 < sam_moore> I wonder if I can do this with a macro...
18:30 < sam_moore> Ergh, screw that
18:31 < sam_moore> Ok, I'm going to implement things like: GPIO/ADC/PWM_Export/Unexport to initialise or deinitialise all pins
18:31 < jtanx> Ok
18:31 < jtanx> too much effort with macros?
18:31 < sam_moore> Yeah,
18:32 < sam_moore> I was thinking of having something like "GPIOX_Set()" instead of GPIO_Set(int x)"
18:32 < sam_moore> But that's probably not as nice as I thought it was
18:32 < sam_moore> Anyway, there's an enum in the header file that contains the id of all pins used
18:32 < sam_moore> The implementation defines some structs that wrap around the file descriptors
18:33 < sam_moore> But to use the module you just give it an ID as defined in the enums
18:33 < jtanx> Makes sense
18:33 < jtanx> designing the gui is actually not too bad
18:33 < sam_moore> That's good
18:34 < jtanx> looks ok in ie8 too
18:34 < sam_moore> Nice
18:35 < jtanx> gotta go, dinner
18:35 < sam_moore> Ok
18:35 < sam_moore> Hmm, it would be nice if C had value checking on enums
18:35 < sam_moore> You can define a function that takes an enum type as an argument
18:36 < sam_moore> But people can still just pass any old integer
18:36 < sam_moore> As far as I know
18:36 < sam_moore> eg: typedef enum {FIRST=1, SECOND=10, THIRD=100} EnumType
18:36 < sam_moore> void Foo(EnumType e);
18:37 < sam_moore> If you go Foo(2) it won't complain
18:38 < sam_moore> Annoying
18:38 < sam_moore> That seems like something the compiler would be able to pick up
19:31 < sam_moore> Ergh, I'm getting too obsessive compulsive with this pin thing
19:35 < sam_moore> It's annoying because ADC, GPIO and PWM are treated completely differently
19:35 < sam_moore> You write one thing and it enables *all* the ADCs
19:35 < sam_moore> You have to enable each GPIO pin individually
19:36 < sam_moore> And to enable PWM pins you give a string (not just an integer)
19:37 < sam_moore> Also the location of the pin files is not guaranteed (though it probably doesn't change for a given system configuration)
19:39 < sam_moore> Ah, I found a way to enable pwm with /sys/class/ instead of that cape manager thing
19:39 < sam_moore> I think I'll use that, since at least it's consistent with the GPIO stuff
19:41 < sam_moore> Ooh!
19:41 < sam_moore> http://beagleboard-gsoc13.blogspot.com.au/2013/07/sampling-analogue-signals-using-adc-on.html
19:41 < sam_moore> Provides a driver for continuously sampling with the ADC
19:41 < sam_moore> Oh wait
19:41 < sam_moore> Crap in a bucket
19:42 < sam_moore> Because we're using those multiplexers we can't do that
19:42 < sam_moore> We have to set the multiplexer before each sample
19:42 < sam_moore> Oh well, never mind
19:44 < sam_moore> I suppose we could write our own kernel module :S
19:45 < sam_moore> I think I understand this enough to talk to Adam next time he tries to talk about sample rate
19:46 < sam_moore> 1. It's not actually constant, but we can probably have it constant to within a few us
19:46 < sam_moore> 2. To make it constant would require writing a kernel module
19:47 < sam_moore> Unless electronics stops being stingy and gets one amplifier per channel :P
20:22 < jtanx> hehehe
20:22 < jtanx> next week's adrian though
20:22 < sam_moore> Ah
20:23 < jtanx> grilling time
20:23 < sam_moore> He'll probably ask us the same things :P
20:23 < jtanx> yeah
20:23 < jtanx> but man, so much stuff to go through just to get some readings from a few pins
20:24 < jtanx> so good job with that :P
20:54 < sam_moore> Thanks
22:45 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sun Sep 22 2013
00:51 < sam_moore> Hell yes
00:51 < sam_moore> PWM controlled through web browser
00:51 < sam_moore> GPIO controlled through web browser
01:19 < sam_moore> .... And ADC read through web browser
01:19 < sam_moore> Blergh
01:28 < sam_moore> I think I'll take the rest of today off from MCTX3420 :S
08:21 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:32 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
11:36 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:53 < sam_moore> I've analysed the crap out of sampling rates for this ADC
11:53 < sam_moore> At least as much as I can just using the timestamps according to gettimeofday
11:54 < sam_moore> Contrary to my first email, reading the ADC is actually really slow. And also probably the greatest source of variation in sampling rate.
11:56 < jtanx> wow
11:56 < jtanx> only 100Hz?
11:56 < sam_moore> Well it looks more like 1KHz on the oscilloscope, but there's a lot of variation, it has trouble getting a trigger
11:57 < jtanx> the cpu datasheet rates it at 200kSPS
11:57 < sam_moore> Hmm
11:58 < sam_moore> Well judging by the control it is something about the ADC reading that makes it really slow
11:58 < jtanx> That's annoyng
11:58 < sam_moore> Yeah
11:58 < sam_moore> Also annoying is that the ADC file is generally in a different place each time they're enabled
11:59 < sam_moore> I ended up modifying the program to take the path to the ADC file as an argument
11:59 < sam_moore> And making run.sh do the initialisation
11:59 < sam_moore> I figured that was better than calling system()
11:59 < jtanx> that makes sense
11:59 < sam_moore> Yep, we might want to set other options that run.sh can pass to it anyway
12:00 < sam_moore> Ok, I have to stop now, I'm spending way to much time on this
12:00 < jtanx> Haha
12:00 < sam_moore> It's getting to the point where I'm considering writing an ADC kernel module that doesn't suck :S
12:01 < jtanx> :S let's hope it doesn't get to that stage
14:08 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Connection reset by peer]
14:25 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:37 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
15:21 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:12 < jtanx> the pressure regulator has a 1-5vdc analogue output
20:12 < jtanx> is this considered one of the pressure sensors?
20:14 < jtanx> or maybe it's just not used
21:50 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Mon Sep 23 2013
07:56 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:51 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
19:38 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:41 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
20:55 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:02 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:33 -!- Irssi: #mctxuwa_softdev: Total of 2 nicks [0 ops, 0 halfops, 0 voices, 2 normal]
--- Day changed Tue Sep 24 2013
13:56 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
14:18 < jtanx> with kernel 3.8 they decided to make life hard with device tree overlays
14:19 < jtanx> http://e2e.ti.com/support/arm/sitara_arm/f/791/t/277811.aspx
14:19 < jtanx> https://docs.google.com/a/beagleboard.org/document/d/17P54kZkZO_-JtTjrFuVz-Cp_RMMg7GB_8W9JK9sLKfA/pub
14:47 < jtanx> huh
14:47 < jtanx> http://www.youtube.com/watch?v=6gv3gWtoBWQ
14:47 < jtanx> http://digital-drive.com/?p=146
15:39 < sam_moore> I wonder if I can write a module that just uses /dev/adcX /dev/gpioX and /dev/pwmX
15:40 < jtanx> that would make life simple
15:40 < jtanx> but no
15:42 < sam_moore> http://www.tldp.org/LDP/lkmpg/2.6/html/x569.html
15:42 < sam_moore> Probably out of date (2.6?)
15:45 < sam_moore> Also rt.wiki.kernel.org - realtime linux supposedly gives you better timing accuracy, although it would possibly break with our setup involving nginx
15:46 < sam_moore> Actually it looks like there are quite a few ways for it to not work
15:48 < jtanx> I think trying to write a kernel module would cause more grief than it's worth
15:50 < jtanx> http://saadahmad.ca/using-pwm-on-the-beaglebone-black/
15:51 < jtanx> I have no idea what's been updated and what hasn't
15:51 < jtanx> as in, do we have that fix in our kernel
15:53 < sam_moore> I don't know
15:54 < sam_moore> We only need 1 PWM though
16:00 < sam_moore> Or at least, last we heard there was only one. Doesn't make the system very expandable though.
19:07 < jtanx> you know what I'll try loading an Ubuntu image from rcn to my sd card
19:08 < jtanx> instead of from armhf
19:08 < jtanx> armhf.com*
19:17 < jtanx> ah screw it
19:17 < jtanx> i'll stick with debian (but do the same thing)
21:07 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:34 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
--- Day changed Wed Sep 25 2013
08:41 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
11:31 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
12:15 < jtanx> I think I know why we were having issues with pwm yesterday
12:16 < jtanx> if you do this command
12:16 < jtanx> echo bone_pwm_P8_13 > /sys/devices/bone_capemgr.8/slots
12:16 < jtanx> you make it unavailable from /sys/class/pwm
12:16 < jtanx> so in the run.sh script it was exporting all the pwm devices via the first method
12:16 < jtanx> and then it becomes unavailable via sysfs
12:17 < jtanx> anyway... I tried booting from the rcn image
12:17 < jtanx> it comes with pwm enabled already
12:17 < jtanx> and via that capemgr I got pwm to work
12:17 < jtanx> I don't know what /sys/class/pwm/pwm0 corresponds to (which pin)
12:19 < jtanx> the electronics teams' bbb wasn't done properly when we tried to upgrade the kernel
12:19 < jtanx> probably something to do with the device tree stuff
12:19 < jtanx> so I flashed it with the rcn image (which runs 3.8.13-bone26
12:20 < jtanx> (demo image from here)
12:20 < jtanx> elinux.org/BeagleBoardDebian
12:47 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
13:09 -!- jtanx_ [~asfa@130.95.54.13] has joined #mctxuwa_softdev
13:09 -!- jtanx_ is now known as jtanx
13:16 < jtanx> oh
13:16 < jtanx> so it now works
13:16 < jtanx> echo bone_pwm_P9_22 > slots
13:16 < jtanx> if I do that line for pwm0
13:26 < jtanx> oh right
13:26 < jtanx> echo bone_pwm_P9_21 >slots
13:26 < jtanx> for pwm1
13:30 < jtanx> ahhhhhh
13:30 < jtanx> if you comment out the line
13:30 < jtanx> modprobe pwm_test
13:30 < jtanx> from run.sh
13:30 < jtanx> it works
13:43 < jtanx> geeze kernel 3.8 has issues with usb hotplugging
13:43 < jtanx> https://groups.google.com/forum/?fromgroups#!searchin/beagleboard/usb/beagleboard/8aalvyWwaig/MUXAPuMTSOYJ
13:43 < jtanx> which explains why we're having issues with cameras
13:43 < jtanx> (partly at least)
13:47 < jtanx> and now pwms not working again
13:48 < jtanx> via sysfs
13:50 < jtanx> oh
13:50 < jtanx> I know why
13:51 < jtanx> you have to export it /sys/class/pwm
13:51 < jtanx> first
13:51 < jtanx> *before* you do stuff like echo bone_pwm_P9_21 >slots
13:52 < jtanx> yep
13:53 < jtanx> so the order is: echo 0/1 > /sys/class/pwm/export
13:53 < jtanx> then do that other stuff
13:57 < jtanx> egh
13:57 < jtanx> finnicky
13:57 < jtanx> ok I have to stop now
14:14 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
14:15 -!- jtanx [~asfa@130.95.218.72] has joined #mctxuwa_softdev
15:46 -!- jtanx [~asfa@130.95.218.72] has quit [Ping timeout]
16:03 -!- jtanx [~asfa@130.95.218.72] has joined #mctxuwa_softdev
16:04 < jtanx> well that was an interesting experience
16:04 < jtanx> it's most reliable when you work directly with /sys/devices/ocp2.helper/PWM9_22*
16:05 < jtanx> I think if you echo am33xx_pwm to the slots thing when it's already loaded
16:05 < jtanx> weird shit can happen
16:05 < jtanx> too
16:07 < jtanx> setting the period via sysfs (eg /sys/class/pwm) didn't work most of the time either
16:07 < jtanx> you could change duty but not period
16:07 < jtanx> although I swear I had it working at one point
16:07 < jtanx> via the other way I think it works ok
16:08 < jtanx> oh yeah, and I was doing this using the demo image from http://elinux.org/BeagleBoardDebian
16:09 < jtanx> the electrical group's one has been reflashed with that version as well
16:09 < jtanx> (for ours I worked off my sd card)
16:10 < jtanx> that image also enables the ethernet-over-usb
16:36 < jtanx> I think we have to be careful which pins we export/enable
16:37 < jtanx> https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SRM.pdf?raw=true
16:37 < jtanx> pages 80-82
16:37 < jtanx> the pins have different meanings based on what mode they're in
16:41 -!- jtanx [~asfa@130.95.218.72] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
17:59 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:05 < jtanx> ...so I brought the BBB home, even though I should be studying for 2402 :S
18:05 < jtanx> the microphone came in today too
18:19 < jtanx> ok
18:19 < jtanx> so these documents: https://github.com/derekmolloy/boneDeviceTree/tree/master/docs
18:19 < jtanx> describes what the pins are used for by default
19:00 < sam_moore> Ah... they already got the microphone
19:00 < sam_moore> Welp. Guess we're stuck with it.
19:00 < sam_moore> So... we can record <50Hz sounds reliably, maybe
19:00 < sam_moore> How useful
19:01 < sam_moore> Have I been missing out on an email stream where the sensors team actually clears things with us?
19:04 < jtanx> not that I know of
19:04 < jtanx> haha
19:04 < jtanx> in other news
19:04 < jtanx> the sensors team ordered a pressure sensor with no mount
19:04 < jtanx> adrian had a spat because it'd cost something like $200 to make the mount
19:05 < jtanx> for a $10 part
19:05 < jtanx> so he said, order it from online , I don't care if it's from overseas
19:05 < sam_moore> Oh boy
19:06 < sam_moore> If there's an issue with the camera and/or microphone they'll blame us
19:06 < jtanx> yeah
19:06 < jtanx> about that camera
19:06 < sam_moore> Oh dear...
19:06 < sam_moore> Go ahead?
19:06 < jtanx> still couldn't get it to work today
19:06 < sam_moore> God dammit
19:06 < jtanx> although I didn't spend much time on it
19:06 < jtanx> I got pwm to work
19:06 < jtanx> mostly
19:06 < sam_moore> I thought it might be something like adding the user to the "video" group
19:06 < sam_moore> That's good!
19:07 < sam_moore> What was happening?
19:07 < jtanx> yeah, the problem is it doesn't show up at all (the camera)
19:07 < sam_moore> Hmm
19:07 < jtanx> and partly because 3.8 has an issue with usb hotplugging
19:07 < sam_moore> Haha
19:07 < jtanx> about pwm
19:07 < jtanx> it seems that the sysfs method is not so reliable
19:07 < jtanx> you can get it to work
19:07 < jtanx> you have to export those first
19:07 < jtanx> so echo 0 > /sys/class/pwm/export
19:08 < jtanx> then (and only then)
19:08 < jtanx> can you do
19:08 < jtanx> that echo to the slots
19:08 < jtanx> for those pins
19:08 < jtanx> then it seems to be happy
19:08 < jtanx> if you echo am33xx_pwm to the slots when it's already enabled
19:08 < jtanx> that also screws things up
19:08 < sam_moore> Ok
19:09 < sam_moore> Thanks for working that out
19:09 < jtanx> yeah
19:09 < sam_moore> If you want to change from sysfs to the other method that's fine
19:09 < sam_moore> But sysfs was much simpler to code
19:09 < jtanx> should have spent that time studying for mech2402 though :P
19:09 < sam_moore> Because you just sprintf an integer to the path
19:09 < jtanx> yeah
19:09 < jtanx> witht he other way it's all that dynamic path crap
19:09 < sam_moore> Rather than keeping track of "bone_pwm_test_P9_22.15.arbitrary_string" crap
19:09 < sam_moore> Exactly :P
19:09 < jtanx> but
19:10 < jtanx> you can enable pwm and analogue on boot
19:10 < jtanx> if I can find the link
19:10 < sam_moore> Sure, if that's easy
19:10 < sam_moore> I figured if we put them in the /etc/init.d script that'd be fine too
19:10 < sam_moore> Actually... maybe we should put it in the /etc/init.d script
19:11 < jtanx> oh yeah
19:11 < jtanx> and the demo image from that rcn image
19:11 < sam_moore> Because if someone gets a different beaglebone then they'd have to reenable it on boot
19:11 < jtanx> is better than screwing around with recompiling kernels
19:11 < sam_moore> Can you give a link?
19:11 < jtanx> I think it's the first image that you had originally
19:11 < jtanx> http://elinux.org/BeagleBoardDebian
19:12 < jtanx> there's this script in /boot
19:12 < sam_moore> Oh
19:12 < jtanx> that allows you to copy the sd card to flash
19:12 < jtanx> it also enables the usb over ethernet
19:12 < sam_moore> Oh right, the image I downloaded before we used yours
19:12 < sam_moore> Cool
19:12 < jtanx> yeah
19:12 < jtanx> I flashed electronics' one with that
19:12 < sam_moore> Does PWM and stuff work on it?
19:13 < jtanx> probably
19:13 < jtanx> I was using the same image
19:13 < jtanx> on ours
19:13 < jtanx> you run this script and it copies exatly what's on the sd card to the internal flash
19:13 < jtanx> resizes the partition as necessary
19:13 < jtanx> http://digital-drive.com/?p=146
19:13 < jtanx> that page shows how to enable on boot
19:13 < jtanx> it's just a change to uEnv.txt in the boot partition
19:18 < sam_moore> Good work
19:19 < sam_moore> While I remember, for multiple logins and crap... can you just try to login as a local user account?
19:19 < sam_moore> Then we could make a wrapper around adduser and deluser for the "administrator" account
19:19 < jtanx> wow
19:20 < jtanx> I don't know
19:20 < sam_moore> I was just thinking
19:20 < sam_moore> Linux has a user account system already
19:20 < jtanx> yep, but is it a good idea to be making ~300 on a BBB?
19:21 < sam_moore> Well... putting LDAP on the BBB probably won't be less intense
19:21 < sam_moore> I know it's called "Lightweight"
19:21 < sam_moore> But that's in comparison to "DAP"
19:21 < jtanx> well to be perfectly honest, adrian is asking way too much
19:21 < sam_moore> Which was designed in the 1980s by a telephone directory company and used the original OSI networking model
19:21 < jtanx> you simply can't support a 300-odd user base on something like a BBB
19:21 < sam_moore> Yeah
19:22 < sam_moore> But maybe something like 30 users would work?
19:22 < jtanx> yeah
19:22 < jtanx> let's just keep it at that limit
19:22 < sam_moore> Another thing regarding the crazy requirements...
19:22 < sam_moore> If we have multiple Beaglebones running FastCGI
19:23 < sam_moore> We can design our GUI so that it has links to the appropriate Beaglebone for each function
19:23 < sam_moore> I don't think we actually need to do anything in nginx or the Beaglebone software
19:24 < jtanx> hmm
19:24 < sam_moore> At least in terms of displaying sensor data
19:24 < sam_moore> For actuator control, we would need to introduce networking between individual beaglebones
19:24 < jtanx> it actually depends on what he means by 'extensible' and/or distributed
19:24 < jtanx> like
19:24 < jtanx> you could say this BBB is for this experiement
19:25 < jtanx> this other BBB is for this other experiment
19:25 < sam_moore> But quite frankly you'd be mad to trust a distributed system with networking delays to coordinate control over hardware
19:25 < jtanx> well yeah
19:25 < sam_moore> Well at least something like this where we care about safety
19:25 < sam_moore> But if you keep the actual control over hardware independent and on seperate devices
19:25 < jtanx> but I mean
19:26 < jtanx> wait
19:26 < jtanx> if we interpret it as meaning
19:26 < jtanx> that each BBB runs an instance of the software
19:26 < jtanx> then they would still be separate
19:26 < jtanx> as in each BBB controls one 'experiment'
19:26 < jtanx> you customise each BBB based on the experiment that needs to be done
19:26 < sam_moore> Yes, that would work
19:26 < sam_moore> Yep
19:26 < jtanx> then there's no interaction between BBBS
19:27 < jtanx> the only thing is you have some sort of control at the front
19:27 < jtanx> that determines which BBB you connect to
19:27 < sam_moore> Yes, if there's interaction between BBBs it gets problematic
19:27 < jtanx> yeah
19:27 < sam_moore> Yes, you have one BBB which gives the user the "main menu" part of the GUI
19:27 < jtanx> I reckon that's a stupid requirement to ask
19:27 < jtanx> yeah
19:27 < sam_moore> Then the others just have customised GUIs or whatever
19:28 < jtanx> once you have to get them to talk to each other, you're then having to try and invent a whole new protocol
19:28 < jtanx> for that
19:28 < sam_moore> Yeah, and it depends on exactly what the hardware is
19:29 < sam_moore> You might be able to hack it onto the web protocol (eg: BeagleBone #1 sends http://beaglebone2/api/actuators?id=X?set=Y)
19:29 < sam_moore> But... let's not think about that
19:30 < sam_moore> It's clearly beyond the scope of this project
19:31 < sam_moore> So, after all that, I reckon if we use snoopy for ADC/GPIO/PWM and spike for the dilatometer then that would be cool (probably not actually necessary though)
19:31 < jtanx> yeah
19:32 < sam_moore> The dilatomter... it's going to cause headaches if Kieren really wants to "return" an array of points
19:33 < sam_moore> If the goal is to provide the user with a demonstration of what the dilatometer is doing, then you can just edit an image
19:33 < sam_moore> If the goal is to provide more data... I don't see the point really
19:34 < sam_moore> It's going to be the same sort of distribution every time
19:34 < sam_moore> Realistically all anyone would do is average it
19:34 < sam_moore> Maybe take a standard deviation
19:36 < jtanx> I really don't know why a dilatometer's even needed
19:36 < sam_moore> Educational reasons? :P
19:37 < jtanx> haha sure
19:37 < sam_moore> Anyway, hopefully Callum will deal with the dilatometer stuff
19:37 < sam_moore> The interferometer code is a good starting point
19:39 < jtanx> Yeah
19:39 < jtanx> hopefully
19:42 < sam_moore> We should arrange some meetings next week
19:42 < sam_moore> Also I'd like to see more of the other group members committing to git and talking in this channel
19:45 < sam_moore> People are missing a lot of design decisions here :S
19:45 < jtanx> Yeah
19:51 < jtanx> Ok
19:51 < jtanx> so I made a LUT from pin number on the board to GPIO pin number
19:52 < jtanx> so if you wanted to use P8_13
19:52 < jtanx> you can use the lut to figure out what gpio number that corresponds to
19:53 < jtanx> we should probably restrict which pins can be used
19:53 < jtanx> because quite a few are reserved
19:53 < sam_moore> Sure
19:53 < sam_moore> Remove the #defines in bbb_pin_defines.h ?
19:54 < sam_moore> Don't export those pins in pin_test.c
19:54 < sam_moore> It is only really for testing anyway
19:54 < jtanx> yeah
19:55 < sam_moore> Although... I predict if we leave it in the software, *someone* at some point will try and control hardware directly through it :P
19:55 < sam_moore> For all the educational stuff it's nice though
19:56 < sam_moore> Oh, we could have an image of the pinout diagram
19:56 < sam_moore> And when someone clicks on a part of the image they get to control that pin
19:57 < sam_moore> Anyway... I really should study for MECH2402 or I will fail it
19:57 < sam_moore> So bye
19:57 < jtanx> yeah
19:57 < jtanx> bye
20:50 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
21:50 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
--- Day changed Thu Sep 26 2013
07:45 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:36 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
09:36 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
10:47 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
13:08 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
16:26 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
17:04 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:52 < jtanx> http://www.ti.com/lit/ug/spruh73i/spruh73i.pdf p1986 (chapter 15) on pwm
17:55 < jtanx> page 1996 on ePWM
17:56 < jtanx> ahhhhh
17:56 < jtanx> for ehrpwm0a/0b
17:56 < jtanx> the frequency is linked
18:08 < jtanx> ehrpwm is enhanced resolution pwm
18:08 < jtanx> Implemented using the A signal path of PWM, that is, on the EPWMxA output. EPWMxB output has
18:08 < jtanx> conventional PWM capabilities
18:08 < jtanx> (p2053)
19:06 < jtanx> if you want to make the pwm stuff not suck
19:06 < jtanx> there's this file called pwm_test.c
19:06 < jtanx> that's the driver
19:59 < jtanx> for future ref: http://armsdr.blogspot.com.au/2013/04/archlinux-on-beaglebone-and-linux-38.html
20:08 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:21 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
21:19 < jtanx_> urgh wow
21:19 < jtanx_> ok, so I think pwm1/3/5 shouldn't be used to avoid period conflicts
21:19 < jtanx_> (pwm0/1 is for channel A/B of one pwm device, 3/4 another, 5/6 another)
21:20 < jtanx_> btw the correspondence between pwmX and pin number is:
21:21 < jtanx_> P9_22, P9_21, P9_42. P9_14, P9_16, P8_19, P8_13, P9_28
21:23 < jtanx_> pwm 2/7 correspond to eCAP devices
21:24 < jtanx_> which I think are to capture PWM input
21:24 < jtanx_> but they can also be used to generate PWM output, afaik
23:08 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
23:10 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Day changed Fri Sep 27 2013
12:38 -!- jtanx [~asfa@130.95.54.13] has joined #mctxuwa_softdev
13:29 < jtanx> so, apparently if we don't order stuff that we need before the mid semester break (ie today), adrian just won't order it
13:29 < jtanx> in other news, I think I've mostly sorted out pwm
13:43 < jtanx> trying to standardise the pin code
15:05 -!- jtanx [~asfa@130.95.54.13] has quit [Ping timeout]
15:41 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:09 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
19:48 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:03 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
20:10 < jtanx_> lol
20:10 < jtanx_> we have a file authored '14 years ago'
20:10 < jtanx_> in git
20:10 < jtanx_> talk about commitment
20:20 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:47 < jtanx_> so on non-BBB platforms, I disabled the pin code
21:47 < jtanx_> required some pretty dubious hacks to stop gcc from complaining
21:48 < jtanx_> 1st attempt: define the functions to nothing
21:48 < jtanx_> gcc complains about statements that do nothing
21:48 < jtanx_> various combinations later on statements that do nothing, I move to making function stubs
21:49 < jtanx_> shaft all the parameters to the stubs
21:49 < jtanx_> to stop complaints about unused variables
21:49 < jtanx_> (eg if you did int freq=1000; PWM_Set(...,freq) where the define for PWM_Set doesn't use freq
21:53 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [">.>"]
22:14 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
22:17 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
22:20 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
23:12 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Day changed Sat Sep 28 2013
10:03 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
11:07 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
--- Log closed Sat Sep 28 12:20:39 2013
--- Log opened Sat Sep 28 12:26:58 2013
12:26 -!- sam_moor1 [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
12:26 -!- Irssi: #mctxuwa_softdev: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal]
12:27 -!- Irssi: Join to #mctxuwa_softdev was synced in 9 secs
12:31 -!- sam_moore [matches@motsugo.ucc.gu.uwa.edu.au] has quit [Ping timeout]
13:18 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
18:26 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:53 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
20:17 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:36 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
--- Log closed Sun Sep 29 08:28:33 2013
--- Log opened Sun Sep 29 08:31:40 2013
08:31 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #mctxuwa_softdev
08:31 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
08:31 -!- Irssi: Join to #mctxuwa_softdev was synced in 2 secs
08:31 -!- Irssi: #mctxuwa_softdev: Total of 1 nicks [0 ops, 0 halfops, 0 voices, 1 normal]
08:31 -!- You're now known as sam_moore
13:18 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
15:27 -!- Rowan [~Rowan@130.95.158.122] has joined #mctxuwa_softdev
15:27 < Rowan> hey jeremy, did you upload the updated gui onto a github? i cant find it anywhere ??
15:32 < sam_moore> Hi Rowan, I think it's in a few subdirectories
15:33 < sam_moore> Ah, it's under "testing/MCTXWeb"
15:33 < sam_moore> https://github.com/szmoore/MCTX3420/tree/master/testing/MCTXWeb/public_html
15:37 < Rowan> thats the most uptodate version?
15:39 < jtanx> um
15:39 < jtanx> maybe
15:39 < jtanx> I'll update with what I've got now
15:42 < jtanx> ok
15:42 < jtanx> updated
15:42 < jtanx> pintest stuff still not complete
15:42 < Rowan> are you guys busy?
15:42 < Rowan> (will you be on here long?
15:42 < jtanx> right now I'm working on that pintest page
15:42 < jtanx> I'm here
15:43 < Rowan> in g19?
15:43 < jtanx> no
15:43 < jtanx> I'm at home
15:43 < Rowan> okay
15:43 < sam_moore> jtanx: As in, the pin control code isn't working? I didn't think I screwed it up that badly?
15:43 < jtanx> nah
15:43 < jtanx> the pin control web page
15:43 < sam_moore> Oh, nice
15:43 < jtanx> just thought it'd be easier to have a webpage to control stff
15:43 < sam_moore> Yes
15:43 < jtanx> especially for electronics
15:43 < sam_moore> Yes, definitely
15:44 < Rowan> are we going to make the gui UWA based or make it our own ?
15:44 < Rowan> adrian made it sound like he wanted it UWA based with the logo and stuff
15:44 < jtanx> we probably have to add uwa logo
15:44 < sam_moore> We should probably put the UWA logo on it
15:44 < sam_moore> Yes
15:45 < Rowan> so make it similar to the main UWA page or make it similar to LMS?
15:46 < Rowan> does anyone know if IT are in this week?
15:46 < jtanx> we need to make it Colourful
15:47 < jtanx> I don't think it needs to be exactly like UWA page or LMS
15:47 < jtanx> just something similar would be good
15:47 < sam_moore> I think LMS is probably a bad example, lots of people hate it
15:48 < jtanx> haha
15:48 < jtanx> I think LMS is fine, although there seems to be alot of problems with it on the backend
15:48 < Rowan> yeah but adrian loves it
15:48 < Rowan> keeting uses it for all 5 units hes teaching
15:49 < Rowan> has anyone heard from james about the gui, i think he uploaded something to dropbox
15:49 < jtanx> really
15:49 < jtanx> I haven't checked db
15:49 < jtanx> why's he not using git
15:50 < Rowan> i dont know. has he uploaded anything to it/
15:50 < Rowan> he might be.
15:50 < Rowan> sometime last week he said he made up a gui todo list type thing but i dont know where he put it
15:50 < sam_moore> It doesn't look like there is anything in dropbox
15:50 < jtanx> right
15:51 < Rowan> im trying to get in contact with him but i might just move on. so we want something somewhat related to lms?
15:51 < Rowan> or no?
15:52 < sam_moore> I think so, although it primarily needs to be able to control experiments
15:52 < sam_moore> For the educational stuff, you could use a wiki style
15:53 < sam_moore> https://github.com/szmoore/MCTX3420/wiki
15:54 < Rowan> wiki isnt graphical enough
15:54 < sam_moore> Yeah, probably
15:54 < Rowan> its hard to say what adrian wants....
15:54 < sam_moore> It looks like James has committed something to his own fork of the repository
15:55 < jtanx> ok
15:55 < sam_moore> https://github.com/firefields/MCTX3420/commit/e6a8120fdf1cef6d73421bd2b1edb1c45a6f3960
15:55 < sam_moore> I can pull that into the main fork
15:55 < sam_moore> Hopefully
15:55 < jtanx> I think that may actually be
15:56 < jtanx> sorry
15:56 < jtanx> my computer decided to freeze at that instant
15:57 < jtanx> but yeah that's the stuff
15:57 < jtanx> he worked on
15:57 < sam_moore> Oh wow... there are a *lot* of files
15:57 < jtanx> before mine
15:57 < jtanx> it's all the jquery ui stuff
15:57 < sam_moore> jquery-ui
15:57 < sam_moore> Yes
15:57 < jtanx> wich I told him to get rid off
15:57 < sam_moore> Dammit I just merged it :S
15:57 < jtanx> but yeah, he hasn't committed anything since
15:58 < jtanx> (that commit was done with me at the last meeting)
15:58 < Rowan> so are we deciding on jeremys version it seems alot more complete
15:59 < sam_moore> Yes, stick with Jeremy's and build on it
15:59 < Rowan> sweet :)
16:46 < Rowan> what was the password and username ?
16:48 < jtanx> there's none
16:48 < jtanx> if you haven't set up the htpasswd thing
16:48 < jtanx> (ie it doesn't work)
16:48 < jtanx> still not sure how to implement it either
16:48 < jtanx> now that adrian wants it scalable to '300 students'
16:53 < jtanx> I need another network switch...
16:53 < Rowan> okay.
16:53 < Rowan> i might make up a cover page, which links to the one we have after you log in
16:54 < Rowan> like this but simpler: http://www.futureeffect.com.au/
16:54 < Rowan> with a scrolling picture thing and stuff
16:54 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:55 < MctxBot> I live again...
16:55 < Rowan> whos mctxbot again?
16:56 < jtanx> :P
16:56 < jtanx> It does nothing
16:56 < Rowan> its a cover page
16:56 < Rowan> its what adrian said
16:56 < jtanx> It connects whenever mctx.us.to is running
16:57 < Rowan> what what
16:57 < Rowan> ?
16:58 -!- MctxBot changed the topic of #mctxuwa_softdev to: MCTX3420 - Software and co.
16:59 < jtanx> mctxbot is no one, it's the server I operate
17:02 < Rowan> hahahahah
17:02 < Rowan> oh.
17:03 < Rowan> ive put the uwa logo onto the gui
17:09 < sam_moore> I'm looking at the login stuff
17:10 < sam_moore> So... we probably don't want to use shell accounts, since once you have shell access you can do all sorts of things that are completely unrelated to this educational stuff
17:10 < Rowan> could someone check ive forked it right
17:10 < sam_moore> I think storing our own file in the same format as /etc/shadow is probably ok
17:11 < Rowan> the gui.html & style.css
17:12 < sam_moore> It looks like you've made a new branch for each of the files?
17:12 < Rowan> i think so
17:12 < Rowan> do you need to update the main file and i request it to you
17:13 < Rowan> just so everything is uptodate and and organised
17:13 < sam_moore> You submitted a pull request, that's fine
17:13 < sam_moore> Yep
17:13 < Rowan> both html and css files
17:13 < sam_moore> You should probably keep edits in the "master" branch, or at least don't make a seperate branch for each file
17:14 < sam_moore> (That way you only have to do one pull request for all of them, not one per file)
17:14 < Rowan> how do i do that :|
17:14 < sam_moore> Are you using a GUI or the command line?
17:15 < Rowan> gui
17:15 < jtanx> I think you were working on an old version
17:15 < jtanx> before I pushed the new one
17:15 < sam_moore> Hmm
17:15 < jtanx> so some stuff got deleted
17:15 < Rowan> S***
17:15 < jtanx> https://github.com/szmoore/MCTX3420/commit/f43006da69d629d0c5421506c8a56d517b94924e
17:15 < jtanx> it's ok
17:16 < sam_moore> jtanx: It should have complained if there was a conflict?
17:16 < jtanx> I dunno
17:16 < Rowan> i only added 1 line to the css file anyways
17:16 < jtanx> yeah
17:16 < jtanx> so the form.controls, div.centre .bold etc
17:16 < jtanx> stuff was added later
17:18 < Rowan> when im home ill try put a cover page with pictures and the login page on it and link the login page to the gui we have atm.
17:18 < Rowan> any constructive critism ?
17:19 < Rowan> also ill try be on irc for the rest of the sem to keep up todate with you guys :)
17:21 < sam_moore> The future effect looks cool
17:21 < sam_moore> I guess we need to pick some relevant images though
17:21 < Rowan> yeah ill talk to some other teams and see if they have any cool pics, like the can were testing, the cad model ect
17:22 < Rowan> ttyl
17:22 < jtanx> has this been pushed to your (sam's) repo?
17:22 < sam_moore> I accepted a pull request a while ago
17:22 < sam_moore> But I noticed Rowan has two branches in his fork; there's one file changed in each branch
17:23 < jtanx> oh ok
17:23 < jtanx> because I don't see any change except for some css stuff in your repo
17:24 < sam_moore> Rowan: I'll try and get in earlier tomorrow to help with the "branching" stuff in git
17:25 < sam_moore> It looks like your git GUI might have some wierd settings
17:28 < MctxBot> damn ircnet
17:29 < MctxBot> 'Too many user connections (local))'
17:29 < MctxBot> so i'll steal mctxbot for now
17:38 -!- Rowan [~Rowan@130.95.158.122] has quit [Ping timeout]
17:42 -!- jtanx [~asfa@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
17:42 -!- jtanx_ [~asfa@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
17:42 -!- jtanx_ is now known as jtanx
17:43 < jtanx> finally
17:52 < sam_moore> So, we can implement our own login system fairly easily, I'm not sure if we want to or not, although I'm leaning towards just doing it
17:53 < sam_moore> It wouldn'
17:54 < sam_moore> t necessarily be the best solution in terms of flexibility
17:54 < sam_moore> But it's probably a hell of a lot more "lightweight" than LDAP
17:55 < sam_moore> Using LDAP you'd have to dedicate processes just to being a login server
17:56 < sam_moore> So... we provide some wrappers around a text file of usernames and password salts, and allow "admin" to use wrappers that change the files
17:57 < sam_moore> ... I suppose we can have a "forgot password" functionality
17:57 < sam_moore> Though it is certainly a pain
17:59 < sam_moore> I feel like we should have "forgot password" but make it ridiculously painful to use, for revenge
17:59 < sam_moore> ...errr I mean security reasons
17:59 < sam_moore> Did I say "revenge?"
18:00 < sam_moore> "Forgot password" should activate one of the ADC channels and record the average over 10s
18:01 < sam_moore> And you have to enter what it was
18:01 < sam_moore> No wait, any student could do that
18:01 < sam_moore> Hmmm
18:03 < sam_moore> "Your password has been sent via Australia Post to your registered address"
18:04 < jtanx> hahaha
18:04 < jtanx> evil
18:04 < jtanx> I was kinda hoping there was some ready made
18:04 < jtanx> gateway software
18:05 < jtanx> like you know the SSO services that uwa uses
18:05 < sam_moore> Yeah, that's an LDAP gateway
18:05 < jtanx> yeah but like a simplified version
18:05 < sam_moore> Haha
18:05 < jtanx> that just uses an sql database or something
18:05 < jtanx> slap it on and we're done
18:06 < sam_moore> Yeah I guess we should look for that
18:06 < sam_moore> Do we allow users to change their password?
18:06 < sam_moore> Ooh
18:06 < sam_moore> Our system is on the UWA network...
18:06 < sam_moore> Could we just wrap to UWA's LDAP servers?
18:06 < sam_moore> And... um...
18:07 < jtanx> do they trust us that much?
18:07 < sam_moore> They can't really stop us
18:07 < sam_moore> You can bind to the LDAP servers already
18:07 < sam_moore> It's not like they can...
18:07 < jtanx> really?
18:07 < sam_moore> Put in a login or something
18:07 < sam_moore> That you have to go through first
18:07 < jtanx> well then
18:07 < sam_moore> :P
18:08 < sam_moore> Hang on, there's some horribly verbose way to test it in a shell
18:08 < jtanx> my god why is it so hard to vertically align content in css
18:14 < sam_moore> ldapsearch -x -D cn=20503628,ou=Students,ou=Users,ou=UWA,dc=uwads,dc=uwa,dc=edu,dc=au -h ldap.pheme.uwa.edu.au -W -v -b cn=20503628,ou=Students,ou=Users,ou=UWA,dc=uwads,dc=uwa,dc=edu,dc=au
18:14 < sam_moore> Replace 20503628 with your own student number
18:14 < sam_moore> So
18:14 < sam_moore> Basically we can wrap to ldapsearch using their username and password
18:14 < jtanx> I wonder what adrian has to say about that
18:15 < sam_moore> Well, obviously he doesn't want just *any* student being able to access it :S
18:15 < sam_moore> But...
18:15 < sam_moore> We could have a plain text file of students
18:15 < sam_moore> That he can change
18:15 < sam_moore> Also...
18:16 < sam_moore> UWA IT might have a problem
18:16 < sam_moore> It would be ridiculously easy to put a back door in to steal student's passwords :S
18:16 < jtanx> yeah
18:16 < sam_moore> But... I guess people would just use their pheme password anyway
18:17 < sam_moore> I mean, I would
18:18 < sam_moore> http://xkcd.com/792/
18:18 < sam_moore> I reckon we implement the system to bind to UWA's ldap servers, obviously don't do anything unethical
18:19 < jtanx> :P
18:19 < jtanx> what about jellyfish, calmaeth
18:19 < sam_moore> And warn Adrian that if he lets random students work on this they can potentially do unethical things
18:19 < sam_moore> What do they use for login?
18:20 < jtanx> they roll their own I think
18:20 < jtanx> but obviously there's some way to import users
18:20 < sam_moore> Hmm
18:20 < sam_moore> I like the idea of using UWA's pheme server though
18:21 < sam_moore> Just add a list of allowed student numbers in front of it
18:21 < sam_moore> Actually, staff as well
18:21 < jtanx> yeah true
18:21 < sam_moore> No wait
18:22 < sam_moore> That could end in the staff member accidentally deleting themselves
18:22 < sam_moore> Um...
18:22 < sam_moore> Just hard code in Adrian's staff number as always allowed :P
18:22 < sam_moore> Ergh, so many annoying things that have nothing to do with blowing up a pressure vessel -_-0
18:23 < sam_moore> Ok, I'll try do some more on the login tomorrow
18:23 < jtanx> ok cool
18:23 < jtanx> I'll try to come in early tomorrow too
18:23 < jtanx> though I really should be working on my other projects too...
18:24 < sam_moore> Well, we're doing alright on the list of things Todo
18:24 < sam_moore> Not sure how well we're doing by Adrian's standards
18:24 < sam_moore> Oh, all that GUI stuff isn't getting done very afst
18:24 < sam_moore> *fast
18:24 < jtanx> yeah
18:25 < sam_moore> Also haven't heard anything about image processing from Callum
18:25 < jtanx> I wonder if james has done anything at all
18:25 < sam_moore> Oh well... I'll do logins this week
18:25 < jtanx> Adrian doesn't seem to like how most of the groups are going
18:26 < sam_moore> Well, not much has happened with other groups I suppose
18:26 < sam_moore> We've written a lot of software, but it's all low level
18:26 < jtanx> I also think he underappreciates the effort required for the software though
18:27 < sam_moore> I think so
18:27 < sam_moore> Though we really should have more GUI stuff done
18:28 < jtanx> yeah
18:28 < jtanx> we really do need to make progress on that
18:52 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has joined #mctxuwa_softdev
19:12 < jtanx> firebug slows down my computer so much
19:22 < jtanx> ok I just updated the gui stuff a bit
19:22 < jtanx> ...now back to testing if this pin test html page works
19:32 < jtanx> well hey
19:32 < jtanx> it works
19:33 < jtanx> Should probably do reference counting on the export/unexport stuff though
19:36 < jtanx> actually maybe not
19:40 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [Ping timeout]
19:46 < sam_moore> I think DAP (which is what LDAP was based on) wasn't actually meant to be a login system when they designed it :P
19:46 < sam_moore> But it's used for that more than anything else
19:46 < sam_moore> Essentially it was supposed to be like an electronic telephone directory
19:47 < sam_moore> Then they realised that it was a bad idea for any random person to be able to edit stuff, so authentication got added to it
19:47 < sam_moore> And now it's pretty much just used for authentication
19:48 < sam_moore> There seems to be a sane C library for it, so if we just implement a client and rely on the good IT staff at UWA to keep pheme working...
19:49 < sam_moore> (Does UWA even still hire IT staff?)
19:49 < sam_moore> (Someone told me they "integrated" the librarians into IT)
19:50 < sam_moore> We'll need to put our login page under HTTPS at some point
19:52 < jtanx> I was just thinking
19:53 < jtanx> put the whole damn thing under ssl
19:53 < jtanx> and be done with it
19:54 < jtanx> hmm interesting
19:54 < jtanx> if you query the adc on different channels
19:55 < jtanx> and you query too fast
19:55 < jtanx> it'll spit back that it's temporarily unavailable
19:55 < jtanx> probably can't change the mux that fast?
19:56 < sam_moore> Maybe
19:56 < sam_moore> It's kind of ironic that the ADC hardware has a multiplexer to give the extra channels
19:57 < sam_moore> And then we are sticking another multiplexer on that
19:57 < jtanx> :P
19:57 < sam_moore> But I suppose if it means we don't need 4 of the same amplifier that's nice
20:03 < jtanx> ok well the pintest page works good enough
20:04 < jtanx> some race conditions
20:04 < jtanx> but eh
20:04 < jtanx> who cares
20:04 < jtanx> ohhh I know what's slowing down the bb
20:04 < jtanx> bbb*
20:04 < jtanx> the crazy high sampling rate
20:04 < jtanx> the test files also constantly eat up all the space on my 1gb sd card
20:06 < jtanx> ..or maybe not
20:55 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
20:57 < sam_moore> It turns out UWA uses LDAP to keep track of what units you're enrolled in
20:57 < sam_moore> That's interesting...
20:58 < sam_moore> Potentially we could restrict access to people enrolled in MXTC3420
20:58 < sam_moore> That would mess with the new courses :P
20:59 < sam_moore> And it appears you can connect to ldap.pheme.uwa.edu.au from UWA's network
20:59 < sam_moore> But... it also appears to use the unsecured LDAP port?
20:59 < sam_moore> Surely not
20:59 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has quit [EOF From client]
20:59 < jtanx> what
21:00 < sam_moore> Or maybe (hopefully) they are doing TLS
21:00 < sam_moore> http://wiki.wireshark.org/LDAP
21:00 < jtanx> one would hope that there's some sort of encryption going on
21:00 < sam_moore> Well, there's HTTPS on the SSO page
21:01 < sam_moore> But if there isn't actually encryption on the ldap connection
21:01 < sam_moore> You could just plug into a switch and do some packet sniffing and get everyone's passwords :O
21:01 < jtanx> haha wow
21:02 < sam_moore> I think they might be using TLS, because my test program doesn't work
21:02 -!- MctxBot [~twang@220-253-203-242.dyn.iinet.net.au] has joined #mctxuwa_softdev
21:07 < sam_moore> ... Or I'm just deleting one more character than I should be in the password -_
21:11 < sam_moore> Test program works now
21:11 < sam_moore> Either the ldap library kindly handles TLS for you automagically, or they aren't using it
21:12 < jtanx> :S
21:12 < jtanx> if you used wireshark wouldn't it show whether or not it's encrypted
21:16 < sam_moore> I've just run it through wireshark
21:16 < sam_moore> It's not encrypted
21:17 < sam_moore> My password for pheme appears plain as day
21:17 < jtanx> well that sounds dodgy as hell
21:18 < sam_moore> Well, you do have to have root access to a machine that can pick up the traffic
21:18 < sam_moore> But yes, that sounds dodgy
21:18 < sam_moore> Hang, on a minute
21:18 < sam_moore> What about Unifi
21:19 < sam_moore> Well...
21:19 < sam_moore> I think this should be filed under "Not our problem"
21:20 < jtanx> ._.
21:21 < sam_moore> Surely there's some kind of handshake encryption on Unifi though
21:22 < sam_moore> Anyway, I have a test function that returns true if you can login to pheme, so if we integrate that with our code and maybe modify it to look at enrolled units, that's a good start
21:23 < sam_moore> Actually I also need to make it work without using deprecated functions
21:25 < sam_moore> At least the library maintainers still keep the deprecated functions, but it's annoying when something that works perfectly fine and has tonnes of documentation is replaced by something that has almost no documentation
21:25 < sam_moore> Almost like the new UWA courses...
21:25 < jtanx> hahaha
21:25 < jtanx> what's worse is where the new function is a PITA to use by design
21:26 < sam_moore> Yes
21:27 < sam_moore> The "deprecated" version has "LDAP * ld = ldap_init(host, port); ldap_set_options(ld, LDAP_OPT_PROTOCOL_VERSION, &version); and ldap_bind_s(ld, dn, password, authentication_method);"
21:27 < sam_moore> That makes perfect sense to me
21:27 < sam_moore> No doubt the new and improved version takes 100x as much code
21:28 -!- Rowan [~Rowan@220-253-165-231.dyn.iinet.net.au] has quit [EOF From client]
21:28 < sam_moore> Although admittedly I was confused as to why the ldap_set_options required a pointer to the integer instead of just passing the integer
21:28 < sam_moore> It probably modifies it in some cases though
21:31 < jtanx> which package installs ldap
21:31 < sam_moore> libldap2-dev
21:31 < jtanx> thanks
21:31 < sam_moore> For development libraries
21:32 < sam_moore> ldap-utils for tools like ldapsearch
21:32 < sam_moore> At the moment I can only find documentation for libldap-dev (the deprecated stuff)
21:32 < sam_moore> To get it to work, you just put a #define LDAP_DEPRECATED 1 before the #include
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.
01:43 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [Ping timeout]
07:21 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
08:03 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [Ping timeout]
09:13 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has quit [Ping timeout]
09:32 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:36 < jtanx> I added in some wiki pages last night, about the operating system, required packages and a special mention on pwm control
09:39 -!- Rowan [~Rowan@130.95.95.20] has joined #mctxuwa_softdev
09:39 < jtanx> hey
09:39 < sam_moore> Hi, have to leave for bus now
09:39 < jtanx> okay
09:40 -!- Rowan [~Rowan@130.95.95.20] has quit [EOF From client]
09:41 -!- MctxBot [~twang@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
09:58 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has quit ["ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]"]
12:21 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
13:21 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [EOF From client]
16:41 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
16:42 < Rowan> still not entirely sure what i can be helping with. james says hes done with the gui part. should i just ignore him and start again with it mayself
16:54 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [EOF From client]
18:21 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:54 < sam_moore> Rowan: James has covered stuff like the design process and library selection etc
18:55 < sam_moore> It would probably be good to discuss how the GUI is actually meant to work, how people are supposed to use it
18:55 < sam_moore> Things like: There is a menu bar to go between different pages
18:55 < sam_moore> List each page and give an overview of what it does
18:55 < sam_moore> I suggest you have a look at github for the MCTXWeb testing GUI as it is the most complete
18:55 < sam_moore> And we were using it this week and showing it to Adrian
18:56 < sam_moore> So, I suggest you read James' section first, then just cover anything you think he's missed
18:57 -!- jtanx [~asfa@106-68-93-93.dyn.iinet.net.au] has joined #mctxuwa_softdev
18:58 < sam_moore> jtanx: The report is looking good, I'm going to add your and my sections last
18:58 < jtanx> Okay, that's fine
18:58 < jtanx> Sorry for leaving so abruptly
18:58 < sam_moore> There is a lot of stuff I can potentially write about, so I think the best idea is to just put all the other stuff in and then work around it
18:58 < sam_moore> That's OK
18:58 < sam_moore> Nothing really got done
18:59 < jtanx> Sure
18:59 < sam_moore> I ended up getting a bit pissed off with the other teams :S
18:59 < jtanx> :/
18:59 < sam_moore> They wanted to test the dilatometer...
18:59 < sam_moore> And the pressure sensors...
18:59 < sam_moore> And the microphones...
18:59 < jtanx> did any of that get tested?
18:59 < sam_moore> And the can wasn't holding pressure...
18:59 < sam_moore> Nope
18:59 < sam_moore> You know how it is
18:59 < sam_moore> They needed to refocus the dilatometer...
18:59 < sam_moore> So then someone says "While they do that, we'll test the pressure sensors"
18:59 < sam_moore> Then everyone gets distracted...
18:59 < jtanx> ....
19:00 < sam_moore> Then that gets delayed somehow...
19:00 < sam_moore> Then the people say "We focused the dilatometer!"
19:00 < sam_moore> And you try and go back to doing that...
19:00 < sam_moore> Then someone says "Are we testing the pressure sensors"
19:00 < jtanx> -.-
19:00 < sam_moore> And you go, "Well, since the dilatometer isn't working, we'll go back to that!"
19:01 < sam_moore> Then someone says "What if you just do this little thing to the dilatometer..."
19:01 < sam_moore> Blergh
19:01 < jtanx> that sounds stupid
19:01 < sam_moore> I think that edge detection was really the wrong way to do that dilatometer algorithm
19:01 < sam_moore> Looking at the images...
19:02 < sam_moore> It'd be far more reliable to just locate the change between dark and light pixels directly
19:02 < sam_moore> But either way
19:02 < jtanx> Yeah, now that I think about it,that'd make more sense
19:02 < jtanx> would reduce cpu usage too
19:02 < sam_moore> There are all these creative ways people kept coming up with
19:02 < sam_moore> That basically boil down to
19:02 < sam_moore> Making a different image
19:02 < sam_moore> And then processing that
19:03 < sam_moore> When really... you should just look at how to process the image you already have
19:03 < jtanx> Yeah
19:03 < sam_moore> Kieran's mathematica image thing looks horrendously complicated to analyse
19:03 < jtanx> Really trying to complicate something that sholdn't be
19:03 < jtanx> Ah... Kieran
19:04 < jtanx> Seems to always come up with overly complicated plans
19:04 < sam_moore> I said "If you can make an algorithm that will take whatever you want to do and spit out a number, we can put it in the software"
19:04 < sam_moore> "If you come up with an algorithm that says "Make an image and then quantify it somehow" it will not work"
19:04 < jtanx> Yeah
19:05 < sam_moore> Unrelated, but about the whole "strain sensors aren't used on the exploding can but get shown in the gui"
19:06 < sam_moore> I say it doesn't matter
19:06 < sam_moore> They don't have to plot those sensors
19:06 < sam_moore> Just put it in the documentation. When you use the exploding can, these sensors are effectively meaningless.
19:06 < jtanx> Yeah
19:06 < jtanx> that's fine too
19:07 < jtanx> future work, if they run out of other things to do
19:07 < sam_moore> Yeah, but even in future work I wouldn't really want to deal with that issue
19:07 < sam_moore> It makes the system less flexible to have to specify the sensors you want to appear in the API
19:07 < jtanx> I guess
19:07 < sam_moore> Perhaps do it in the GUI
19:07 < jtanx> perhaps
19:08 < sam_moore> There's no harm in the server allowing those API requests
19:08 < sam_moore> But you can hide unused things in the GUI
19:08 < sam_moore> Enough of that
19:08 < sam_moore> To the report
19:08 < sam_moore> Currently adding James' stuff, it seems to fit well
19:08 < jtanx> That's good
19:09 < jtanx> do we need more references or something
19:09 < sam_moore> I've largely abandoned the idea of a chapter of what the system is vs a chapter of the design considerations
19:09 < sam_moore> Just discuss things as they come up
19:09 < jtanx> Okay
19:09 < jtanx> fair enough
19:10 < sam_moore> References might be good
19:10 < sam_moore> I suppose for things like the binary search you can reference a wikipedia page on it?
19:10 < sam_moore> Or for things like "What a thread is"
19:10 < jtanx> with software it's a bit hard
19:11 < sam_moore> Yeah, even if you use a known algorithm it still gets dramatically altered based on what you want to do with it
19:11 < jtanx> Yeah
19:11 < sam_moore> Rowan: If you are still here, a glossary of terms is also potentially useful
19:11 < sam_moore> I think we have one in the wiki?
19:11 < jtanx> But realistically, what sort of 'formal' references are there for software
19:11 < sam_moore> Stack overflow?
19:11 < jtanx> the wiki has a glossary, but it could be expanded
19:12 < jtanx> stack overflow as a formal reference?
19:12 < sam_moore> Haha
19:12 < sam_moore> Reference any library we use
19:12 < sam_moore> They aren't formal though
19:12 < jtanx> It'll have to be good enough
19:12 < sam_moore> Look, we didn't use any formal academic references
19:12 < sam_moore> So we can't reference them
19:13 < jtanx> Yeah
19:13 < sam_moore> Computer Science papers would be next to useless on this anyway
19:13 < jtanx> pretty much
19:13 < sam_moore> Unless you can find the original paper on things like binary searches
19:13 < jtanx> ugh
19:13 < sam_moore> Or whoever first coined the term "thread"
19:13 < sam_moore> Digging through papers from the 1970s/80s ...
19:13 < jtanx> pretty sure, binary search is like common knowledge in computing by now
19:13 < sam_moore> It is taught in first year
19:14 < sam_moore> It is probably one of the few things that is taught at UWA that was employed in this project...
19:14 < jtanx> Okay, so lets reference CITS1210
19:14 < sam_moore> Ahahaha
19:14 < jtanx> I think it was acceptable
19:14 < jtanx> reference material from previous units
19:14 < sam_moore> yes, do that
19:14 < sam_moore> I can reference my honours course on multithreading :P
19:14 < jtanx> yeah
19:14 < jtanx> that's good :P
19:16 < sam_moore> Rowan: I said some stuff earlier, you may need to scroll back to see it if your IRC client doesn't notify you
19:18 < sam_moore> jtanx: Should we make "Read the IRC chatlogs" a recommendation? :P
19:18 < jtanx> Yeah, it would be helpful I guess
19:18 < jtanx> lots of text to scrawl through though
19:18 < jtanx> "Read IRC chatlogs" and "commit history" of git repository
19:18 < sam_moore> If you look though you can find design discussions
19:18 < sam_moore> Even some links to things
19:19 < sam_moore> The git commit history also has some design changes
19:19 < sam_moore> Eg if someone were considering using SQlite...
19:19 < sam_moore> I think I put the performance tests in testing
19:20 < sam_moore> But if they ignored those, there is code that uses SQlite which could be helpful
19:20 < Rowan> yep just finished reading through it .. ill put together some stuff after i shower :\
19:20 < sam_moore> Ok, thanks
19:20 < jtanx> You'd have to go back to the very first commits to see the sqlite code afaik
19:21 < jtanx> but yeah, since we ran a full blown mysql server on it...
19:23 < Rowan> did you guys learn all this over this sem. or was it by part from databases and cits1210?
19:24 < Rowan> and other units..
19:24 < sam_moore> I knew very little about databases before this project
19:24 < jtanx> um
19:24 < jtanx> I'd say most of it was from my own learning
19:24 < sam_moore> I know a reasonable amount about pthreads due to a course I did last year which involved much more complicated stuff than this
19:25 < jtanx> databases didn't really help...
19:25 < sam_moore> Well no
19:25 < jtanx> bah that unit was shit
19:25 < sam_moore> I never did Databases
19:25 < Rowan> i though sqlite and cgi stuff was covered in the database unit?
19:25 < jtanx> sqlite yeah, cgi no
19:26 < sam_moore> I've used CGI before, but not that much
19:26 < sam_moore> When I tested it I realised it would be an absolute pain to synchronise everything
19:26 < jtanx> pretty much all of the web stuff for this unit, I learnt during this course
19:26 < sam_moore> I've done low level network programming as a hobby
19:26 < sam_moore> So I was going to write a custom HTTP server
19:26 < sam_moore> But fortunately Jeremy found FastCGI
19:26 < sam_moore> Which I'd never heard of
19:26 < Rowan> yeha
19:26 < sam_moore> So there is a lot of stuff I've learned I would say
19:27 < Rowan> i really gotta learn more of this. i hated this unis cos ive been so pathetically useless ...
19:27 < Rowan> ive learnt heaps aswell
19:27 < Rowan> but no where near enough
19:27 < Rowan> what was your multithreading honours thing you mentioned?
19:28 < sam_moore> That was for Physics
19:29 < sam_moore> Parallel Programming
19:29 < jtanx> you should have used f# :P
19:29 < sam_moore> We didn't cover f# since I suspect it is not great for low level type stuff
19:30 < jtanx> I guess not, but apparently functional code is really good for parallelisation
19:31 < sam_moore> Maybe...
19:31 < sam_moore> Well, OpenMP is much nicer than pthreads in a lot of cases
19:31 < sam_moore> It's really simple to make things parallelised
19:31 < jtanx> have you heard of multithreading without locks
19:31 < sam_moore> But it's terrible for communicating between threads
19:32 < sam_moore> Great for doing something like a for loop where each thread calculates part of an array
19:32 < Rowan> -----> should we have general info about the BBB in the glossary?
19:32 < sam_moore> That might be useful
19:33 < sam_moore> We are probably going to go over the 30 pages
19:33 < jtanx> well
19:33 < jtanx> lsat I heard, weren't sensors at ~50 pages
19:33 < sam_moore> Yeah
19:33 < sam_moore> Write all the things
19:33 < sam_moore> If people are free tomorrow we will have to have a group meeting if we are over 30 pages
19:33 < sam_moore> But...
19:34 < sam_moore> Even though LaTeX uses a large amount of space by default
19:34 < sam_moore> It can also be tweaked...
19:34 < sam_moore> Definitely going with 10 point font
19:34 < jtanx> sounds like a plan
19:36 < sam_moore> jtanx: OpenMP has a lot of implicit locks by the way
19:36 < Rowan> im not able to come in tomorrow though. . . i need to stop doing unit i need to be present for.
19:36 -!- Rowan [~Rowan@106-68-210-88.dyn.iinet.net.au] has quit [EOF From client]
19:36 < sam_moore> Which is why it's easy to do stuff with
19:36 < jtanx> um
19:36 < jtanx> doesn't rowan have to sign the coversheet
19:36 < sam_moore> Yeahhhh
19:37 < sam_moore> We could get a "digital" signature?
19:37 < jtanx> maybe
19:37 < sam_moore> One of my friends got a digital signature from their honours supervisor...
19:37 < jtanx> hahaha
19:37 < sam_moore> It was a png file containing their signature
19:37 < jtanx> that could work
19:38 < jtanx> there's a digital copy of the cover sheet somewhere
19:38 < jtanx> I figured out why the wiki git repository wasn't cloning properly
19:38 < jtanx> you can't have colons (:) in the filename on windows
19:38 < sam_moore> Ahaha
19:38 < jtanx> :/
19:39 < sam_moore> Having two people that know linux already is really good for this project by the way...
19:39 < jtanx> Yeah
19:39 < sam_moore> I suspect someone who hadn't used linux before would have serious difficulties...
19:40 < jtanx> ahh yeah that would be a problem
19:41 < sam_moore> Dinner time
19:41 < jtanx> Okay
19:43 < jtanx> aha
19:43 < jtanx> you can push to the wiki repository
20:19 < sam_moore> Hmm
20:20 < sam_moore> Could you push non plain text files to the wiki repository
20:20 < jtanx> yep
20:20 < jtanx> I pushed some images
20:20 < sam_moore> It would be a good way to organise all documentation
20:20 < jtanx> so all the images reside in the wiki repo
20:20 < sam_moore> That's good
20:20 < jtanx> well all of mine
20:20 < jtanx> I should convert all of those imgur links
20:20 < sam_moore> We could have put all the documentation and report cruft in the wiki repo!
20:21 < sam_moore> Oh well, that's good to know for next time I use GitHub for something
20:21 < jtanx> except half the stuff won't show up on my computer, with them fancy colons
20:21 < sam_moore> Haha
20:21 < sam_moore> No problem for me :P
20:21 < sam_moore> Join us...
20:21 < jtanx> bah
20:21 < sam_moore> Any problem can be solved with sufficient use of `apt-get install`
20:22 < jtanx> I don't think it would be a good idea to put all documentation on the project wiki
20:22 < sam_moore> Oh?
20:22 < jtanx> because github doesn't provide the same overview
20:22 < sam_moore> Hmm
20:22 < jtanx> you know how you can see the commit history and stuff for a normal repo
20:22 < sam_moore> Yeah
20:22 < jtanx> it doesn't have the same thing
20:22 < sam_moore> But you can do that for the wiki if you clone it as a normal repo...
20:22 < sam_moore> And...
20:23 < jtanx> yeah
20:23 < sam_moore> You can make post commit hooks for repos...
20:23 < jtanx> but you can't visualise it as easy on github
20:23 < sam_moore> Alright, fair enough
20:23 < jtanx> oh right
20:23 < sam_moore> It might be possible to hack together post commit hooks to have the wiki and an overview of other files in it
20:24 < jtanx> quite possibly yeah
20:24 < jtanx> but that's a hack
20:24 < sam_moore> It might be a better suggestion for GitHub to start adding features for repos that aren't just for coding purposes
20:24 < jtanx> hmm
20:25 < sam_moore> Depending on how good the markup language is, you could probably do a report through GitHub entirely
20:25 < jtanx> quite possibly
20:25 < jtanx> with github you can have your choice of markup language
20:25 < sam_moore> Of course, people's brains tend to shutdown when they have to use anything that isn't WYSIWYG
20:26 < sam_moore> Which may explain why Labview is popular...
20:26 < jtanx> huh
20:26 < jtanx> I just realised
20:26 < jtanx> When you set an image link
20:26 < jtanx> and say it's imgur
20:26 < jtanx> github caches it or something
20:27 < sam_moore> ... Interesting
20:27 < jtanx> so it appears as if it;s coming from github
20:27 < sam_moore> I'd still put the images in the wiki repo
20:27 < jtanx> yeah
20:27 < jtanx> ...just that there are /so many/ images to convert
20:28 < jtanx> right
20:28 < jtanx> time to get out notepad++
20:28 < sam_moore> I didn't mean you should actually convert all the images...
20:29 < sam_moore> Just in future it's probably better to do it that way
20:29 < sam_moore> Our whole repo should be structured more cleanly
20:30 < sam_moore> Seperate branches probably
20:30 < sam_moore> Store some install scripts in the master branch that will pull from the other branches...
20:31 < jtanx> hmm
20:31 < jtanx> I think I heard that you could have a git repository
20:31 < jtanx> that links others
20:31 < sam_moore> That could also work, branches are nice though
20:31 < jtanx> yeah
20:31 < sam_moore> git pull