code logs -> 2011 -> Mon, 07 Nov 2011< code.20111106.log - code.20111108.log >
--- Log opened Mon Nov 07 00:00:31 2011
00:22 Bob_work [NSwebIRC@Nightstar-f9f2b179.static.qwest.net] has quit [[NS] Quit: Page closed]
00:32 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
00:33 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
00:58 kw|GO_PACKERS is now known as kwsn
01:09 You're now known as TheWatcher[T-2]
01:10 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
01:14 You're now known as TheWatcher[zZzZ]
01:17
< sshine>
hmm
01:22
< sshine>
I'm having issues with LL(1) parsing.
01:35 Kindamoody[zZz] is now known as Kindamoody
01:52 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
02:35
< ToxicFrog>
Welp. Done initial pass.
02:35
< ToxicFrog>
Of the thirteen assignments submitted:
02:35
< ToxicFrog>
- five work fine
02:35
< ToxicFrog>
- one almost works
02:36
< ToxicFrog>
- two run but give wildly incorrect results; one of those takes an hour and a half to do so (note: typical runtime for this program is <30s)
02:36
< ToxicFrog>
- two segfault
02:36
< ToxicFrog>
- two fail to build due to build system issues
02:36
< ToxicFrog>
- and one fails to build because they forgot to submit the source code
02:36<~Vornicus> What's the assignment?
02:37
< Derakon>
Hello World~
02:41
< ToxicFrog>
Vornicus: given: a directory of small bitmaps, and a directory of smaller bitmaps.
02:42
< ToxicFrog>
foreach small bitmap: report all coordinates at which one of the smaller bitmaps occurs (including 90/180/270 degree rotations thereof) in this bitmap
02:43
< ToxicFrog>
Implementation constraints: pthreads is the only threading library available. Use all sixteen cores or suffer greatly.
02:44 * Vornicus thinks about that problem.
02:44<~Vornicus> I'm not entirely certain how I'd do that. Do reflections count too?
02:45
< Derakon>
Any intention that they use some kind of intelligent pattern matching, or is it "for each pixel, for each rotation, try each smaller bitmap"?
02:45
< Derakon>
s/rotation/rotation that fits/
02:45<~Vornicus> And are the small bitmaps sprites, in that they can take on the background?
02:45
< Namegduf>
Working gets some marks, working smarter gives more, or would if more than a few would manage to work? :P
02:46
< ToxicFrog>
Derakon: intelligent pattern matching is permitted but not required; what this is meant to be exercising is parallel algorithm design in general and use of pthreads in specific.
02:46
< Derakon>
I guess you could convert the images into 1D arrays, pre-convert each rotation of the smaller bitmaps to similar, and then do substring searches.
02:46 * Derakon nods.
02:46
< ToxicFrog>
It's a computationally intensive but not particularly complicated task that parallelizes well.
02:46
< ToxicFrog>
If they want to get clever about it, well, there are small bonuses for the three fastest implementations...but they're strongly encouraged to make it working fast, and make it clever only if they have time after that.
02:47
< ToxicFrog>
s/fast/first/
02:47
< ToxicFrog>
Vornicus: reflections do not count, only rotations. I'm not sure what you mean about sprites.
02:47
< ToxicFrog>
They're bitmaps, patterns of black-and-white pixels.
02:47<~Vornicus> AH
02:47<~Vornicus> er, ah
02:47<~Vornicus> But what I meant was
02:48
< ToxicFrog>
It's basically 2d substring search with a 1-bit character set.
02:48<~Vornicus> If I had a picture of Mario on offer, would i have to be able to find him both in front of sky and in front of those weird trees?
02:49<~Vornicus> obviously since this is bitmaps, the answer is no, but
02:49
< Derakon>
I think he's saying, "could you consider the smaller bitmaps to be sprites that might exist in the larger bitmaps".
02:49
< ToxicFrog>
Now I understand what you're asking even less.
02:49
< Derakon>
And the answer would be, only if the larger bitmaps did not have a background layer.
02:49
< Derakon>
There's no transparency here.
02:49
< ToxicFrog>
"here is a large bitmap. Here is a bunch of smaller bitmaps. Do any of the smaller bitmaps occur as subregions of the larger one? If so, where?"
02:50<~Vornicus> TF: right, I was thinking .bmp, not "bitmap"
02:50
< ToxicFrog>
Right
02:51<~Vornicus> So the question morphed in my mind to "how many goombas are in this picture"
02:51
< ToxicFrog>
Yeah, that would be the equivalent for BMPs or any other pixmap.
02:51
< ToxicFrog>
"here is a picture of a goomba. Here is a screen from Mario. Are there any goombas in this picture? If so, how many and where?"
02:52
< Derakon>
That, to me, implies either an alpha channel, or sprites that are filled rectangles.
02:53<~Vornicus> Just so.
02:53<~Vornicus> Anyway.
02:55<~Vornicus> Knuth-etc substring search with some ridiculous paralleliza... oh, shit, now I see the per-target image trick.
02:59
< ToxicFrog>
In this case even brute-force substring search will get you full marks as long as it's parallelized well.
03:04
< Namegduf>
It seems relatively easy to do
03:04
< Namegduf>
In this case you can simply partition the dataset
03:05
< Derakon>
You have two read-only sets of memory -- the string and the substrings.
03:05
< Derakon>
Depending on how much of each you have, you could load each string in a separate thread, or assign a thread for each substring...
03:06 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
03:06
< Derakon>
I suspect the former would probably be better since in the latter case you'd be constantly creating/destroying threads.
03:06
< Namegduf>
You could also create a "work pool"
03:06
< Namegduf>
Then dispatch checks across it
03:06
< ToxicFrog>
Yeah, there's lots of ways to parallelize this.
03:07
< Namegduf>
Nothing hard.
03:07
< ToxicFrog>
And indeed students are encouraged to try several and do science to determine which is best under what conditions.
03:07
< Namegduf>
Haha.
03:07
< Derakon>
But first they are encouraged to make a working solution~
03:09 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?]
--- Log closed Mon Nov 07 03:15:22 2011
--- Log opened Mon Nov 07 03:15:30 2011
03:15 TheWatcher[zZzZ] [chris@Nightstar-3762b576.co.uk] has joined #code
03:15 Irssi: #code: Total of 24 nicks [0 ops, 0 halfops, 0 voices, 24 normal]
03:16 Irssi: Join to #code was synced in 49 secs
03:17
< ToxicFrog>
Namegduf: yep.
03:18
< Namegduf>
Is that to the failing them bit?
03:19
< Namegduf>
Or the "improvements needed early" bit?
03:20
< ToxicFrog>
Both.
03:25 * Vornicus doesn't know pthreads at all though
03:25
< ToxicFrog>
Vornicus: it's not terribly complicated at the level needed for this and furthermore they were exposed to it last year during the operating systems course.
03:25
< ToxicFrog>
And I am, really, kind of worried.
03:26
< Namegduf>
Welcome to CS students today.
03:26
< ToxicFrog>
I figure that the two most likely causes of abject failure are (a) lack of ability and (b) lack of giving a shit.
03:26
< Namegduf>
I would know, I had to *work* with these people.
03:26
< ToxicFrog>
But this is a third-year course (which should have taken care of (a)) and an elective (which should have taken care of (b)).
03:26
< ToxicFrog>
And it didn't go nearly as badly last year, although last year it was a fourth-year special topics course.
03:27
< ToxicFrog>
My most charitable guess is that, since it's moved to third year, that means most of the students are taking it concurrently with CIS*3750, which is if anything more brutal than its already terrifying reputation suggests.
03:28
< ToxicFrog>
3750 doesn't leave a lot of cycles to spare for anything that isn't 3750.
03:28
< Namegduf>
What is it?
03:29
< ToxicFrog>
I forget the actual course name, but basically it's "design and build a medium-sized interactive program in a group of 3-4"
03:29
< ToxicFrog>
It's an 0.75 credit course to start with, compounded by the fact that:
03:29
< Namegduf>
Ouch.
03:29
< ToxicFrog>
- at least one group member will be dead weight, so it's more like 1.0+ credits of workload
03:30
< Namegduf>
Do you murder them with piles of paperwork?
03:30<~Vornicus> I never had a successful group in any college class ever.
03:30
< ToxicFrog>
- version control is suggested but not required in most earlier courses, which means that unless you're very lucky half the team won't even know what it is, which makes collaboration a bitch
03:30
< ToxicFrog>
- it's probably in Java
03:31
< ToxicFrog>
Vornicus: I have, and oddly enough, 3070 was one of them. It was nightmarish for me for entirely separate reasons.
03:31<~Vornicus> Stuff like, my email would get junked by other students.
03:32
< ToxicFrog>
(one of which was taking it concurrently with Language Theory & Compilers, which was, starting the next year, split into two courses at the 3rd and 4th year levels rather than being a single 3rd year course)
03:32<~Vornicus> Or in one spectacular case, my partner /dropped out of school without telling anyone/.
03:32
< Tamber>
...Fun.
03:32
< Namegduf>
I remember explaining the design to someone.
03:32
< Namegduf>
Then explaining it again.
03:32
< Namegduf>
Then again.
03:33<~Vornicus> Then there was the time I missed the group presentation because I went to the hospital with chest pains. TUrned out I'd done something untoward to my ribs coughing.
03:33
< Namegduf>
They created a diagram.
03:33
< Namegduf>
It made no sense.
03:33
< Namegduf>
I tried again.
03:33
< Namegduf>
It became increasingly obvious that whenever I stopped talking they just substituted what they preferred to be true for what I said, and said preference didn't actually make technical sense.
03:33
< Namegduf>
They wrote JSON as Jason on the accompanying presentation.
03:35
< ToxicFrog>
Yeah, I have been lucky in that in pretty much every group course I've taken, there was at least one other competent, sane person in the group and were able to keep the incompetents from doing any damage beyond the time damage of them not contributing.
03:36
< Namegduf>
Yeah, I didn't have that luck.
03:37
< ToxicFrog>
(there was one where the entire group was competent!)
03:39
< Namegduf>
Aside that specific group, things were mostly okay. I still have a grudge against the university administration for 1) Not failing these people. 2) Organising groups to put people with lower marks with people with higher marks.
03:39
< ToxicFrog>
(then there was the one where while two of us were pulling all-nighter lab sessions to get the fucking hardware and software working, the third who was meant to be working on the documentation was apparently wanking in the bathroom for three days or something, because he sure as well wasn't doing any work)
03:40
< Namegduf>
Which pissed me off because it meant I got deliberately stuck with an above average number of incompetents.
03:40
< ToxicFrog>
(hell, he didn't even have the automatically generated parts of the documentation done, and creating that basically consists of "push the button")
03:47
< ToxicFrog>
Anyways. I hope it's just people getting bogged down in 3750, because otherwise a whooooole lot of people passed CIS*1500 who shouldn't have.
03:50
< Namegduf>
Is 3750 worth a lot more?
03:51
< ToxicFrog>
3750 is worth 0.75 (compared to 0.5 for most courses, including this one) and is also degree-mandatory.
03:51
< Namegduf>
Okay.
03:57 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
04:10 Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has quit [[NS] Quit: Leaving]
04:12 Eri [Eri@Nightstar-3e5deec3.gv.shawcable.net] has joined #code
04:25 Kindamoody is now known as Kindamoody|out
04:53 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
04:55 Reivles [orthia@8B2D21.A73175.BC355D.36D4DD] has joined #code
05:30 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code
05:50
< Derakon>
Oh yeah, I know this problem. http://xkcd.com/
05:50
< Derakon>
Also the alt text.
05:53 ErikMesoy|sleep is now known as ErikMesoy
06:31 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
06:33 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection]
06:40 Derakon is now known as Derakon[AFK]
--- Log closed Mon Nov 07 07:10:24 2011
--- Log opened Mon Nov 07 07:10:32 2011
07:10 TheWatcher[zZzZ] [chris@Nightstar-3762b576.co.uk] has joined #code
07:10 Irssi: #code: Total of 23 nicks [0 ops, 0 halfops, 0 voices, 23 normal]
07:11 Irssi: Join to #code was synced in 49 secs
07:34 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
09:38 You're now known as TheWatcher
09:53 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
10:24 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has joined #code
10:34 Reivles [orthia@8B2D21.A73175.BC355D.36D4DD] has quit [Ping timeout: 121 seconds]
11:10 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has quit [[NS] Quit: Reconnecting]
11:10 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has joined #code
11:15 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has quit [[NS] Quit: Reconnecting]
11:15 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has joined #code
11:30 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
11:50 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
12:06 Kindamoody|out is now known as Kindamoody
12:24 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code
12:38
< sshine>
these parser combinators behave unexpectedly!
12:39
< sshine>
par (many int) "1 2 3 4 5" works
12:39
< sshine>
par (between (symbol "foo") (symbol "bar") (many int)) "foo 1 2 3 4 5 bar" works, too
12:40
< sshine>
hm, my problem seems to be that my grammar isn't LL(1) and that I don't have extra backtracking in the right places.
12:49 Attilla [Obsolete@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
12:50 Kindamoody is now known as Kindamoody|out
13:01
< sshine>
so... par (between (symbol "foo") (symbol "bar") (many letter)) "foo bleh bar" doesn't work
13:02
< sshine>
since many letter will eagerly try to match bar, will fail and won't backtrack
13:53 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
13:57 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has quit [[NS] Quit: Away!]
14:19 Namegduf [namegduf@Nightstar-5c10d129.beshir.org] has quit [Operation timed out]
14:22 Namegduf [namegduf@Nightstar-5c10d129.beshir.org] has joined #code
15:04 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
15:22 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds]
15:22 Bobsentme [Bobsentme@Nightstar-93b4feb0.try.wideopenwest.com] has joined #code
15:23
< Bobsentme>
My program works, and now I have build a UML document for it.
15:23
< gnolam>
Ugh.
15:24
< Bobsentme>
Also: almost 300 lineso of code....to take in a text file, output it to JOptionPane windows, check the answers, and output a score. Is that normal for Java?
15:24
< celticminstrel>
UML, urgh.
15:25
< kwsn>
ew...
15:25
< ToxicFrog>
Bobsentme: if anything that's short~
15:25
< ToxicFrog>
Java is a remarkably verbose and tedious language.
15:25
< Bobsentme>
TF: In that case...YAY!
15:26
< Bobsentme>
Also: That's just the main class. There's a whole other class file for the ArrayList and...yeah. ugh.
15:27
< ToxicFrog>
ArrayList<> should be a builtin class
15:29
< Bobsentme>
It's in a differnt class file.
15:31 * TheWatcher eyes
15:31
< ToxicFrog>
Er
15:31
< ToxicFrog>
My point is that it shouldn't be in a file at all, java.util.ArrayList is a built in feature of the language
15:31
< ToxicFrog>
You should not need to write your own
15:33
< ToxicFrog>
Unless you mean "the code that manages the ArrayList I'm using is its own class"
15:39
< TheWatcher>
Doesn't javadoc generate uml diagrams yet?
15:39
< Tamber>
That part of it collapsed into itself because it got so big and bloated.
15:39
< Bobsentme>
TF: Yes, the code that manages my arraylist is in it's own class"
15:40
< TheWatcher>
Tamber: weird, hasn't happened to the /rest/ of java~
15:40
< Tamber>
Shame, isn't it? ;)
15:40
< Bobsentme>
hehe
16:41 Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code
16:46 Kindamoody|out is now known as Kindamoody
17:36 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [Client closed the connection]
18:02 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code
19:11 Kindamoody is now known as Kindamoody[zZz]
19:37
< sshine>
Bobsentme, you could probably do it with less.
19:38
< McMartin>
I prefer "there are some depths to which Java refuses to sink"
19:38
< McMartin>
Someone actually gave me a copy of "UML for Java programmers"
19:38
< McMartin>
75% of the book is basically restatements of "don't"
19:39
< sshine>
McMartin, I never thought buoyancy metaphorically would be a bad thing.
19:39
< sshine>
hmm, I've got this pattern in my haskell code that's rather ugly.
19:41
< sshine>
if I've got a type Foo and a type Bar, and Foo is a record that contains Bar, and I want to update some bar within a foo, I do app_foo f foo = foo { bar = f $ bar foo }
19:42
< sshine>
I don't know if it's because I should really be pattern matching, or if maybe I could fmap my way to the bar.
20:20
< jerith>
McMartin: Still, Java programmers are using 25% too much UML.~
20:21
< McMartin>
jerith: The remaining 25% was for "how to deal with someone who's using it on a whiteboard"~
20:21
< Pandemic>
a shotgun?
20:22
< Tamber>
Cricket bat.
20:22
< Pandemic>
should cut down on the whiteboard usage
20:22
< McMartin>
Heh
20:22
< McMartin>
I think the idea was "if you have to draw a class hierarchy, there will be people who use this format, you should know it"
20:22
< jerith>
The Object Management Group needs a Web Task Force.
20:22
< McMartin>
It does.
20:22
< McMartin>
I've said this many a time.
20:22
< jerith>
You have indeed.
20:22
< McMartin>
And then they should have weekly barbeques.
20:22
< McMartin>
At duck ponds.
20:22
< jerith>
Duck ponds?
20:23
< McMartin>
omgwtfbbquack
20:23
< jerith>
UML sequence diagrams are actually pretty handy.
20:23
< jerith>
Ah, right.
20:23
< Pandemic>
hehehehe
20:24 * jerith has never seen the -uack suffix.
20:24 * Pandemic has heard the echo of a quack
20:24
< McMartin>
QUACK DAMN YOU
20:24
< Pandemic>
lol
20:24 * Pandemic roflmao
20:41 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
--- Log closed Mon Nov 07 21:26:48 2011
--- Log opened Mon Nov 07 21:27:01 2011
21:27 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
21:27 Irssi: #code: Total of 28 nicks [0 ops, 0 halfops, 0 voices, 28 normal]
21:27 Irssi: Join to #code was synced in 48 secs
22:25 ErikMesoy is now known as ErikMesoy|sleep
--- Log closed Tue Nov 08 00:00:46 2011
code logs -> 2011 -> Mon, 07 Nov 2011< code.20111106.log - code.20111108.log >

[ Latest log file ]