--- Log opened Thu Sep 27 00:00:39 2012 |
00:17 | | gnolam [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has quit [Client closed the connection] |
00:18 | | gnolam [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has joined #code |
01:03 | | Attilla [Obsolete@Nightstar-86524535.as43234.net] has quit [Ping timeout: 121 seconds] |
01:05 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
01:06 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
01:06 | | mode/#code [+o himi] by ChanServ |
01:13 | | himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
01:13 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Connection reset by peer] |
01:32 | | Derakon[AFK] is now known as Derakon |
01:32 | | mode/#code [+ao Derakon Derakon] by ChanServ |
02:29 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
02:36 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
02:39 | < gnolam> | Jesus this thing runs hot. |
02:56 | <@Alek> | that's what she said |
04:52 | | * McMartin does a guillotine fix for this bug, calls it a night. |
05:08 | < Reiv> | guillotine fix? |
05:10 | <&Derakon> | Chop out the offending code, presumably. |
05:19 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
05:20 | | Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has quit [Client exited] |
05:26 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
05:26 | | mode/#code [+o PinkFreud] by ChanServ |
05:47 | <&McMartin> | Pretty much |
05:47 | <&McMartin> | Actually, it was "ensure the code in question does not run at all in the situation where it seems to be mysteriously failing" |
05:47 | <&McMartin> | It honestly shouldn't be failing, but fuck it. |
07:00 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection] |
07:03 | | Derakon is now known as Derakon[AFK] |
08:19 | | Attilla [Obsolete@Nightstar-bae4b344.as43234.net] has joined #code |
08:26 | | Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
09:08 | | You're now known as TheWatcher |
10:44 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
10:49 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
13:06 | <@Alek> | http://ars.userfriendly.org/cartoons/?id=20070213 |
13:24 | <@TheWatcher> | Blood hell, long time since I saw a link to uf.org |
13:29 | <&ToxicFrog> | And, wow, the site design hasn't changed in the slightest since 2001. |
13:31 | <@TheWatcher> | Or the art quality >.> |
14:24 | < Nemu> | Hmm. So, riddle me this. |
14:25 | < Nemu> | I have a couple classes I'm working with. The specifics aren't too important, but I've got three main classes. I have an experiment, which is composed of sessions, which is composed of trials. |
14:26 | < Nemu> | So, one experiment, many sessions per experiment, many trials per session. |
14:27 | < Nemu> | There's also a set chronology in how the experiment is run. I start the experiment, start a session, start a trial, do things in the trial, stop the trial, do things to the trial, start/stop more trials, stop the session, do things to the session, start/stop more sessions, then stop the experiment |
14:28 | < Nemu> | It seems to lend itself well to a finite state machine. |
14:29 | < Nemu> | How can I implement that? I don't know too much about FSM. I've made things that act similarly, but I've never really set out from the beginning with the goal of a state machine, before. |
14:31 | < Nemu> | Ah. As an added complication, everything is being signaled via tcp. Right now, my experiment class inherits a tcp_experiment class with the required methods. |
14:33 | < Nemu> | I was thinking of breaking it into a tcp class with all the communication stuff, then experiment_fsm, session_fsm, and trial_fsm, where *_fsm has the functions relevant to navigating the FSM for each experiment/session/trials |
14:46 | <&jerith> | Nemu: You don't really need an explicit FSM for that. |
14:47 | <&jerith> | When you're done with a trial, ask the session if there's another trial. If so, start it. If not, move on to the next session. If there are no more sessions, yell "hooray!" and go have a beer. |
14:48 | <@TheWatcher> | The Beer module being where you'll undoubtedly need to focus most of your efforts. |
14:50 | < Nemu> | The session doesn't really know if there's any more trials, in this case. Everything is determined by what comes through the series of tubes. I was thinking finite state machines because it allows me to work inside of my classes. |
14:51 | < Nemu> | Currently, my experiment isn't part of any class. It's just hanging out there with the main function. That's fine for one level, experiment, but it doesn't scale well. |
14:51 | <&jerith> | Your FSM would have to span multiple classes. |
14:52 | <&jerith> | Surely the session would have to know if there's another trial to start, though? |
14:52 | < Nemu> | Yeah. I think I can justify it. I think of the experiment/session/trial classes as "my_experiment", "my_session" and so on. They inherit from base_experiment, base_session, and stuff |
14:53 | < Nemu> | Mmmm.... It would know when it gets told that there's another trial, I guess. |
14:53 | < Nemu> | Instantiating a trial and starting it are synonymous, in my function |
14:53 | < Nemu> | Err, in my usage, rather |
14:54 | < Nemu> | I don't think there's a need, yet, to split the two parts |
14:55 | <&jerith> | Nemu: I think I'm talking at a slightly higher level than you. |
14:55 | < Nemu> | As in, more abstract? |
14:56 | <&jerith> | When I say "start a new trial", I mean "do whatever is necessary to move from the old finished trial to the new one", not "call my_trial.start()" or whatever. |
14:57 | < Nemu> | Ah. Okay. So, yeah. The session would have to know whether this is th last trial or not. |
14:57 | < Nemu> | *the |
14:58 | <&jerith> | Let's assume there are three kinds of input. The first kind is relevant to the experiment, the second is relevant to the session and the third is relevant to the trial. |
14:58 | <&jerith> | The experiment knows how to handle its own input, so that's fine. It passes everything else to the current session. |
14:58 | <&jerith> | The session knows how to handle its own input and passes everything else to the current trial. |
14:59 | <&jerith> | The trial does its thing, and might say "I'm done!" to the session it's part of. |
15:00 | <&jerith> | The session then decides whether to start a new trial or say "I'm done!" to the experiment. |
15:00 | <&jerith> | The experiment then decides whether to start a new session or go have a beer. |
15:00 | < Nemu> | Yeah, that's what I'm trying to work towards. |
15:01 | <&jerith> | You don't need an explicit FSM for that. |
15:01 | <&jerith> | You're encapsulating behaviour. The experiment doesn't need to know about trials, only sessions. |
15:02 | < Nemu> | So, how should I handle inheritance, then. Each of the three classes needs to be able to inherit te tcp functionality |
15:02 | < Nemu> | *the |
15:03 | < Nemu> | I guess the signalling would be inherited from multiTrial_session/multiSession_experiment classes? |
15:04 | < Nemu> | Hmm. That works, in one direction, but how do I signal back up the chain |
15:04 | < Nemu> | * ? |
15:05 | <&jerith> | Why do they each need to handle TCP? |
15:05 | <&jerith> | The experiment does that. |
15:05 | <&jerith> | Or, even better, a TCP module does that and passes the data to the experiment. |
15:07 | < Nemu> | Yeah. Maybe I'll have to come up with a better way of having experiment handle tcp's data. Right now, I'm referencing like exp.session.trial = foo_method(exp.session.trial) |
15:07 | < Nemu> | That's what I was trying to avoid. So, a method in experiment to pass tcp's data up the chain? |
15:08 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
15:09 | < Nemu> | How can I signal from session to experiment, though? Writing general code, a session isn't required to be part of an experiment, I don't think. I could make another class composed of sessions. |
15:10 | <&jerith> | Why isn't a session required to be part of an experiment? |
15:11 | < Nemu> | I could have an experiment composed of subjects, composed of sessions, composed of trials. |
15:11 | < Nemu> | I think. |
15:11 | < Nemu> | Maybe that's not the best idea |
15:11 | <&jerith> | Do you need one of those now? |
15:11 | <&jerith> | What language is this, btw? |
15:12 | < Nemu> | matlab oop, pre-2008 rewrite. |
15:12 | <&jerith> | Ah. |
15:12 | < Nemu> | It's painful |
15:12 | <&jerith> | Yeah. |
15:12 | <&jerith> | I never touched the OOP stuff. |
15:12 | | Attilla [Obsolete@Nightstar-bae4b344.as43234.net] has quit [Ping timeout: 121 seconds] |
15:13 | <&jerith> | (But I wrote some C to hook in for the crypto I needed to do, because bit-bashing in Matlab is *horrible*.) |
15:13 | < Nemu> | You don't like bitand()? It takes about a thousand more ops than C's implementation |
15:14 | <&jerith> | I needed to do a bunch of bitwise operations on integers. |
15:14 | <&jerith> | I tried writing it in Matlab, and it got very horrible very quickly. |
15:14 | <&jerith> | (This was about 2005.) |
15:15 | < Nemu> | Yeah. I struggled just masking to get one value. Data was read in as a double, so I had to convert to uint32, but when you declare the mask, it's a double. |
15:15 | | Attilla [Obsolete@Nightstar-bae4b344.as43234.net] has joined #code |
15:15 | < Nemu> | You can't say "0000000000000110000000" |
15:15 | < Nemu> | That's a string, now |
15:16 | < Nemu> | It's annoying. I think I found some str2bin function or something. Way harder than it needed to b. |
15:16 | < Nemu> | *be |
15:16 | < Nemu> | Especially since the elementwise binary operators still return doubles. |
15:16 | < Nemu> | Why? |
15:17 | < Nemu> | Err, bitwise, rather. Elementwise binary operators are, like, a logical thing |
15:18 | < Nemu> | Anywhoo, thanks for the help. I've got some more thinking to do, I think |
15:52 | | himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
15:55 | | * iospace eyes her Win7Em disk |
15:57 | < gnolam> | Try Am or maybe go all the way to Dm. |
15:58 | < AnnoDomini> | Better yet, DM. |
15:59 | < iospace> | ... |
15:59 | < iospace> | by Em i mean Embedded |
16:02 | < iospace> | smartasses |
16:06 | | himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
16:06 | < iospace> | ... |
16:07 | | * iospace eyes it more |
16:16 | | himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
16:29 | | himi-cat [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
16:33 | | * TheWatcher hairpulls at this code, wonders why the hell it's not working |
16:42 | < iospace> | TheWatcher: at elast you're not hardware debugging :P |
16:43 | | * TheWatcher facepalm, notes that $self -> {"trasport_id"} isn't actually the same as $self -> {"transport_id"} |
16:53 | <&jerith> | Of course, Perl helpfully creates it for you. |
16:53 | | * jerith once bought a domain name due to a typographical error. |
16:53 | <&jerith> | Well, my boss did. |
17:08 | | * gnolam stabs Intel in the FACE |
17:08 | <@TheWatcher> | jerith: no, actually |
17:08 | <@TheWatcher> | it's undef |
17:09 | <@TheWatcher> | however, passing undef as a bind variable to the execute() of a prepared database query is actually perfectly valid |
17:09 | <@TheWatcher> | just not what I actually want to do right now |
17:10 | < gnolam> | Man, U.FL connectors are tiiiiiiiiny. |
17:16 | | Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code |
17:16 | | mode/#code [+o Vash] by ChanServ |
17:40 | < iospace> | erasing 128 GB disks takes a while Dx |
17:42 | <&jerith> | How hard are you erasing them? |
17:43 | < iospace> | low level |
17:43 | < iospace> | lower than DD actually :P |
17:43 | <&jerith> | Just writing zeros? |
17:43 | < iospace> | yup |
17:43 | <&jerith> | Not doing multi-pass random writes? |
17:43 | < iospace> | no, it's just a simple erase |
17:43 | < iospace> | i could do a multi-pass random writes but eh, not worth it :P |
17:44 | < iospace> | not needed either ^_^ |
17:46 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
17:47 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
17:50 | < iospace> | it writes 1k blocks at a time... there's over EE00000 blocks Dx |
17:50 | < iospace> | well ok |
17:50 | < iospace> | it writes 0x1000 blocks at time :P |
17:51 | <~Vornicus> | that's a few blocks |
17:57 | | Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds] |
17:59 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
17:59 | | Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code |
17:59 | | mode/#code [+o Alek] by ChanServ |
18:04 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
18:31 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
18:38 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
19:27 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
19:36 | < iospace> | there's scripted testing, and then there's blast things at it and see what finally works |
19:36 | < iospace> | the latter is so much better |
20:10 | <&McMartin> | Torque engine is going to be MIT licensed |
20:10 | <&McMartin> | http://www.garagegames.com/community/blogs/view/21876 |
22:43 | | Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
23:44 | | McMartin [mcmartin@Nightstar-3895ee8e.pltn13.sbcglobal.net] has quit [[NS] Quit: kernel upgrade] |
23:46 | | McMartin [mcmartin@Nightstar-3895ee8e.pltn13.sbcglobal.net] has joined #code |
23:46 | | mode/#code [+ao McMartin McMartin] by ChanServ |
--- Log closed Fri Sep 28 00:00:02 2012 |