--- Log opened Mon Feb 27 00:00:40 2012 |
00:13 | | You're now known as TheWatcher[T-2] |
00:18 | | You're now known as TheWatcher[zZzZ] |
01:04 | < gnolam> | http://blogs.discovermagazine.com/discoblog/2012/02/17/separated-at-the-cloning- lab-vint-cerf-and-sigmund-freud/ |
01:16 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
01:24 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [[NS] Quit: bbs, time to change mouse] |
01:30 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
01:30 | | mode/#code [+o himi] by ChanServ |
01:34 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
01:34 | | mode/#code [+o Alek] by ChanServ |
01:57 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
02:03 | | Kindamoody[zZz] is now known as Kindamoody |
02:05 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:18 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
02:18 | | mode/#code [+o himi] by ChanServ |
02:25 | | Attilla [Obsolete@Nightstar-99bd1250.as43234.net] has quit [Ping timeout: 121 seconds] |
02:26 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:39 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
02:39 | | mode/#code [+o himi] by ChanServ |
02:48 | | * Vornicus pokes at the inverse transform for the Vorn projection. |
02:54 | <&Derakon> | The Nrov projection? |
02:54 | <~Vornicus> | Well, no, what it does is it maps x-y values in the Vorn projection to latitude and longitude values. |
02:54 | <&Derakon> | Yes, I was being silly, as is my wont. |
02:55 | | * Vornicus is deliberately oblivious |
03:48 | | * Vornicus pokelizes it. why is it giving him trouble? |
03:56 | <&Derakon> | Because you turned it into a pokemon? |
04:07 | | * Vornicus patpats der |
04:44 | | eckse_ [eckse@Nightstar-cdf1e7a8.dsl.sentex.ca] has quit [Client closed the connection] |
04:52 | | * Vornicus debugdebugdebugs. |
05:03 | <~Vornicus> | ah, freaking edges |
05:46 | | * Vornicus has no idea why they're going off into weird land. |
05:47 | < Stalker> | They're fleeing oppression. |
05:54 | <~Vornicus> | But two of the edges of quadrant 2 are flying off beyond the actual range of the problem |
06:05 | <~Vornicus> | Narg. I should put this up and let other people take a crack at it. But I am sure there's something obvious I'm missing. |
06:11 | <@jerith> | Vornicus: You have your own projection? |
06:12 | <~Vornicus> | Yeah. |
06:13 | <~Vornicus> | http://www.flickr.com/photos/7861878@N06/3558750328/in/photostream |
06:13 | <~Vornicus> | Here it is; I've been trying to regenerate it because Viper expressed interest, but I'm having edge case problems. |
06:14 | <@jerith> | Doesb't that already have a different name? |
06:15 | <~Vornicus> | Not that I'm aware of. |
06:15 | <@jerith> | Ah. |
06:16 | <&Derakon> | I do like how it has a drastically different orientation from your usual projection. |
06:16 | <&Derakon> | Takes a bit to recognize the landmasses. |
06:16 | <~Vornicus> | There's one called the Quincuncial Map that has a somewhat similar shape, but uses jacobi elliptic functions (which is to say, crazy hard complex math) |
06:17 | <~Vornicus> | It's conformal, which is a cool property: local shape is preserved... but that's not a property you want when uv-mapping |
06:17 | <~Vornicus> | Which is what this is for. |
06:17 | <~Vornicus> | http://en.wikipedia.org/wiki/Quincuncial_map |
06:19 | < Rhamphoryncus> | "There's one called the Quincuncial Map that has a somewhat similar shape, but uses jacobi elliptic functions" <-- that'd be a great quit message, just for the WTF factor :D |
06:19 | <&Derakon> | Yeah, this is a bit of an unusual projection in that it's not intended to be viewed in its projected form. |
06:23 | <~Vornicus> | And I lost my old code (foolish of me, I know), so now I'm trying to rebuild it |
06:24 | <~Vornicus> | This thing has some weird bits because there's splits, so there isn't a "single formula" the way there are for other projections. |
06:27 | <~Vornicus> | I'm pretty sure at this point that my xy to latlong code works, but my latlong to xy code is doing something untoward. |
06:28 | <~Vornicus> | ...yeah. |
06:32 | <~Vornicus> | Aha, of course |
06:32 | <~Vornicus> | longitude of 1.0 exactly gives me Problems. |
06:32 | <&Derakon> | Singularity? |
06:33 | | Derakon is now known as Derakon[AFK] |
06:35 | <~Vornicus> | No, it's wrapping around - I have to calculate what quadrant (north pole to south pole, quarter circle wide) i'm in, and from that I calculate the offset I'm using for side-to-side offset, but the offset should be from 0 to 0.25, and 1.0 is in quadrant 0 instead of quadrant 4, so it's giving an offset of 1.0 |
06:35 | | Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds] |
06:36 | <~Vornicus> | There, victory. |
06:38 | <~Vornicus> | Okay. Next time: write the polygon drawing and then the pixel scanner. |
06:38 | <~Vornicus> | Now, sleep. |
06:38 | <@jerith> | NiVorn. |
06:39 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [Connection closed] |
06:42 | <~Vornicus> | Then I can finally build the 2048px version of my projection and toss that at viper. |
06:44 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
06:45 | <~Vornicus> | and code pushed. |
06:46 | <~Vornicus> | https://bitbucket.org/Vornicus/depixeldrod/src/eae3f74ad740/mapprojection.py does this link work for you? |
06:55 | < kazrikna> | it brings code up. |
06:55 | <~Vornicus> | Good |
06:55 | <~Vornicus> | (it's shitty code I know, but) |
06:56 | < Eri> | The worst |
06:56 | < Eri> | If I wrote code like that, I'd print it out, and then burn it |
06:56 | < Eri> | Then I'd give myself a pat on the back, because it's still better than most of what I write |
07:00 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection closed] |
07:22 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
07:44 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
07:57 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
07:57 | | mode/#code [+o himi] by ChanServ |
08:03 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
09:00 | | Attilla [Obsolete@Nightstar-99bd1250.as43234.net] has joined #code |
09:43 | < Rhamphoryncus> | (round && this->shift != 0 ? 1 << (this->shift - 1) : 0) |
09:43 | < Rhamphoryncus> | I've no idea of the correct parsing of that x_x |
09:49 | < Rhamphoryncus> | Ahh, gdb to the rescue. round is false so gdb has informed me that the result is 0 |
09:54 | < Rhamphoryncus> | and now gdb is failing me. Fails to call a method with some bogus error about an argument that could not be converted. |
10:05 | | gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has quit [Ping timeout: 121 seconds] |
10:05 | | gnolam [lenin@9D46A2.F4E9D7.E4B4CF.2072AD] has joined #code |
10:07 | | You're now known as TheWatcher |
10:20 | | Kindamoody is now known as Kindamoody|out |
10:43 | | ShellNin1a [abudhabi@Nightstar-a2b246ed.adsl.inetia.pl] has joined #code |
10:45 | | ShellNinja [abudhabi@Nightstar-c9072dad.adsl.inetia.pl] has quit [Ping timeout: 121 seconds] |
10:56 | | * TheWatcher idly stabs Opera until it stops making me set my sans-serif font family every sodding time I start it |
11:05 | < Rhamphoryncus> | ugh, that'd suck |
11:06 | < Rhamphoryncus> | and now I'm really testing openttd developers: unlike my previous work which was an obscure cleanup or a substantial feature change (and they're at release-candidate right now), this latest is a trivial fix to a feature they just added. |
11:07 | < Rhamphoryncus> | trivial but the bug is highly visible and annoying |
13:01 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
14:03 | | Attilla_ [Obsolete@Nightstar-e4c009dc.as43234.net] has joined #code |
14:04 | | Attilla [Obsolete@Nightstar-99bd1250.as43234.net] has quit [Ping timeout: 121 seconds] |
14:32 | <~Vornicus> | Rham: the result of that expression is 2 ^ (shift - 1) if round is true and shift is 1 or higher; it is 0 otherwise. |
14:34 | < Rhamphoryncus> | Vornicus: *nods* |
15:07 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
15:07 | | mode/#code [+o Syloqs_AFH] by ChanServ |
15:08 | | Syloqs_AFH is now known as Syloqs-AFH |
15:40 | | maoranma [maoranma@Nightstar-cd44a482.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
15:49 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has joined #code |
15:49 | | mode/#code [+o Vash] by ChanServ |
15:49 | | Attilla_ is now known as Attilla |
16:52 | < gnolam> | Vornicus: but whoever wrote it should still be beaten over the head with a blunt parenthesis. |
16:59 | < Rhamphoryncus> | yup |
16:59 | < Rhamphoryncus> | and no, the shift isn't any magic. It's just multiply/divide by a power of 2 selected from a collection of constants. |
17:20 | | Attilla [Obsolete@Nightstar-e4c009dc.as43234.net] has quit [Ping timeout: 121 seconds] |
17:25 | | Derakon[AFK] is now known as Derakon |
17:26 | | Attilla [Obsolete@Nightstar-e4c009dc.as43234.net] has joined #code |
17:34 | | Kindamoody|out is now known as Kindamoody |
18:13 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
19:11 | | Vornucopia [NSwebIRC@C888DE.7F9621.4A1301.BBBE7B] has joined #code |
19:11 | | * Vornucopia is all the vorn you need. |
19:29 | <@ToxicFrog> | More vorn than your body has room for? |
19:29 | < Vornucopia> | ...yes. |
19:38 | | Kindamoody is now known as Kindamoody[zZz] |
19:38 | < Tarinaky> | Today in herding Freshers: Someone didn't know the difference between the Nile and the Suez on a map of Africa :/ |
19:52 | | * Vornucopia fiddles with math, tries to figure out what tools he needs to build the projected polygons for his map projections |
19:54 | < Vornucopia> | okay. To build the polygons I need to calculate the latlongs of the corners of each pixel in my projection. |
19:55 | < Vornucopia> | But there are two places (adding up to 8 corners) where the longitudes are ambiguous: the poles. I need to ensure that I get two polygon points in those places, and that they appear in the right order. |
20:02 | < Vornucopia> | Theeeen I get to do pixel scanning. |
20:03 | < Vornucopia> | Which is relatively simple, fortunately. |
20:11 | < gnolam> | Tarinaky: >_< |
20:12 | < Tarinaky> | gnolam: Admittedly they're close together, but Africa's transcontinental do not go through an inland river :/ |
20:12 | < Tarinaky> | *transcontinental fibre |
20:16 | < Vornucopia> | Might want to just get nearest neighbor working first so I can tell whether I have the handedness right. |
20:30 | < gnolam> | The famous Suez Canal! Taking the world's shipping to... err... Lake Victoria... |
20:30 | < Vornucopia> | heh |
20:31 | <&McMartin> | gnolam: Where they are teleported throughout the continent by an ancient teleport network left by the Precursors >_> |
20:32 | < Vornucopia> | You know that bit in Mass Effect confused me |
20:33 | < Vornucopia> | The warp gates work by creating a low-mass corridor, basically increasing the local speed of light between them |
20:34 | <&McMartin> | Momentum is not conserved; it's legal it increase the mass of the reaction mass on the way out. |
20:34 | <&McMartin> | *to |
20:34 | <&McMartin> | Since this trick is also used with bullets in reverse. |
20:34 | < Vornucopia> | But that doesn't explain how you can warp /inside/ the building |
20:34 | <&McMartin> | Or through walls |
20:34 | <&McMartin> | Galactic clipping errors, IMO. |
20:35 | < Vornucopia> | Right. You're coming out of a Vault and into a vacuum-sealed space station. How is that supposed to work? |
20:36 | <@Tamber> | *something something* mass effect. Simple. |
20:41 | | * Vornucopia finds himself poking at other things. The delaunay triangulation of points on a sphere is also the convex hull of those points. |
20:41 | <&McMartin> | Vornucopia: I'm pointing out that in in ME2 the Vanguard gets a personal Mass Relay move, and it also lets you teleport through solid objects |
20:41 | <&McMartin> | So I'm going with "the universe has clipping errors" |
20:42 | <&McMartin> | Anyway, of more immediate annoyance to me is the nuclear reactor you have to solve a three disk Tower of Hanoi to reboot. |
20:42 | <&McMartin> | My rage is relevant because I started playing Zork Zero |
20:42 | <&Derakon> | Only three disks? |
20:42 | <&Derakon> | Though I guess at some point adding more disks just increases the tedium factor. |
20:43 | <&McMartin> | Which includes a six disc Tower of Hanoi that (a) you need to solve *twice* and (b) in which making an illegal move renders the game unwinnable |
20:43 | < Vornucopia> | I haven't played ME 2 |
20:43 | < gnolam> | I haven't played any of the Mass Effects. |
20:43 | <&McMartin> | So, uh, major plot spoilers above, don't pay much attention to them |
20:43 | <&Derakon> | Heh. |
20:44 | < Vornucopia> | (though my spoiler, I knew it was coming a looong way out, but that may be my trope-awareness shining through) |
20:45 | < gnolam> | (I'm actually ok with Tower of Hanoi puzzles in games though. It's cheap, but at least it's not a sliding block puzzle. A single non-optional sliding block puzzle is enough to mark an entire game as bad in my book.) |
20:45 | <&Derakon> | What about the sliding block puzzles on ice? |
20:45 | <&McMartin> | Well, Zork Zero also has a jumping peg puzzle. |
20:45 | <&McMartin> | "sliding block puzzle" doesn't mean "blocks that slide" |
20:45 | <&Derakon> | That is, where if you push a block it keeps going until it hits an obstacle. |
20:45 | < Vornucopia> | Jumping Peg Puzzles can die in 5 fires. |
20:45 | <&Derakon> | Yeah, I'm asking if those are as bad as normal sliding block puzzles. |
20:46 | <&McMartin> | Though I suppose I should clarify whether the sliding block puzzle is Klotski or The Sixteen Puzzle. |
20:46 | <&McMartin> | Since those are different in actually important ways. |
20:46 | <&McMartin> | In particular, Klotski and Sokoban are on the same continuum. |
20:46 | < Vornucopia> | I liked the 9-puzzle near the end of Skyward Sword |
20:46 | <&McMartin> | Also, while I generally agree with gnolam here |
20:46 | <&McMartin> | Professor Layton gets a pass |
20:47 | <&McMartin> | And I think it's because Professor Layton programs aren't even pretending to be games. |
20:47 | | * Derakon looks up klotski and The Sixteen Puzzle, ohs. |
20:47 | <&Derakon> | Right, that kind of puzzle. |
20:47 | <&McMartin> | Yeah, not the Legend of Zelda/Tomb Raider kind of sliding block puzzle. |
20:48 | < Vornucopia> | Okay yeah, klotski can die in more fires than the ice-slider |
20:48 | <&Derakon> | I had to implement klotski for a CS course. |
20:48 | <&McMartin> | "Design me a klotski solver" is one of my stock interview questions. |
20:48 | <&Derakon> | Though the vocabulary was in terms of train cars. |
20:48 | <&McMartin> | Derakon: If the blocks can only move in one axis, it stops being Klotski and starts being Traffic Jam~ |
20:48 | <&Derakon> | Ah, yes. |
20:49 | <&Derakon> | IIRC the solver is basically a permuter with elimination of redundant states. |
20:49 | <&McMartin> | Specifically, breadth-first search so that you get the shortest solution. |
20:49 | <&Derakon> | That is, permute the game board; is the board solved? If so done; otherwise, have I seen this state before? If not, add it to the queue of states to be permuted. |
20:49 | <&Derakon> | Right. |
20:49 | <&McMartin> | That's not the interesting part and I usually have to elide it |
20:50 | <&McMartin> | Though it's pretty astounding how many people Simply Don't Get It. |
20:50 | <&McMartin> | Like, Ever |
20:50 | <&Derakon> | Thus it is a good interview question! |
20:50 | <&McMartin> | No, that makes it a *terrible* interview question. |
20:50 | < Tarinaky> | Nyrggh |
20:51 | < Tarinaky> | Someone keeps checking .class files into git :/ |
20:51 | <&McMartin> | The point, and why it is a *good* interview question, is that a Klotski board is nice and abstract and has a bunch of moving parts that are a little bit tricky to represent sensibly. |
20:51 | <&Derakon> | So you'd still be interested in hiring people who Don't Get It? |
20:51 | <&McMartin> | As a rule, graph theory doesn't come up in the job. |
20:51 | <&Derakon> | Ah. |
20:52 | <&McMartin> | What I'm trying to actually test with the question is OO design sensibility. |
20:53 | <&Derakon> | So what you want is a design of the game board, not of the solver. |
20:53 | | * Vornucopia thinks about object encoding here. List of types of tile, list of locations for each type (sorted! Must be sorted or the comparator will get really complicated) |
20:54 | <&Derakon> | Keep in mind that different object types have different shapes. |
20:54 | < Vornucopia> | Right, which you cover in the move-availability calculator |
20:55 | < Vornucopia> | You want your board to be able to calculate the available spots, and that gives you the available moves for each tile. |
20:55 | <&Derakon> | At first glance, I'd probably have the tile have width, height, and "am I the key piece" attributes, and have the game board be an MxN grid of pointers to those objects or to NULL if empty. |
20:55 | <&Derakon> | Thus potentially multiple pointers to a given tile. |
20:56 | <&Derakon> | This is useful because you check if a tile is occupied far more often than you try to move a tile, so the extra bookkeeping in moving is paid off by the lesser bookkeeping in checking occupancy. |
20:58 | <&McMartin> | Yeah, that's a better design than I usually get =P |
20:58 | <&McMartin> | I usually get no board structure at all beyond a linked list of tiles. |
20:58 | <&McMartin> | If that |
20:58 | <&McMartin> | System programmers attempting it produces noticably hilarious results |
20:59 | <&McMartin> | My favorite one was a ridiculously hairy bitmask-based system that had no block objects at all. |
20:59 | < Vornucopia> | Der: but remember that you get multiple tiles of the same shape, and so your duplicate checking needs to straight-up permute different tiles of the same type if you do it that way. |
20:59 | <&McMartin> | IIRC, it was two arrays, one M long, one N long, each of which is a K bit integer where there are K blocks. |
20:59 | | * Derakon looks up. "Should be ''...check if a space is occupied far more often than you try to move a tile...''" |
21:00 | <&McMartin> | And it stored it basically as a nonogram. |
21:00 | <&Derakon> | ...fun. |
21:00 | <&McMartin> | To see what tile was at a specific point, you bitwise and the row with the column. |
21:00 | <&Derakon> | Vorn: okay, yeah, there's some memory waste there. |
21:00 | <&McMartin> | If you got zero, it was blank. |
21:00 | <&McMartin> | Well, that's also a time waste |
21:01 | < Vornucopia> | Both, because a duplicated state will build its own tree beneath it which is the duplicate of the other tree. |
21:01 | <&McMartin> | It's very hard to get "equivalent position" to be tested fast with individuated blocks, but it's very hard to do much without individuated blocks either. |
21:01 | <&McMartin> | Since I needed to write a Klotski solver to finish a Layton game, I did it in Haskell, and cheated like crazy~ |
21:01 | < Vornucopia> | Heh |
21:01 | <&Derakon> | It should be trivial to iterate over the grid and generate a hash. |
21:01 | <&McMartin> | You don't want a hash - you want a representation |
21:01 | <&Derakon> | Just assign a different number to each shape of tile. |
21:02 | <&McMartin> | This was the Haskell trick |
21:02 | <&Derakon> | If you're checking for state duplication? |
21:02 | <&Derakon> | Hashes should be sufficient. |
21:02 | <&McMartin> | A board is a sorted list of objects, which in turn are just position and dimensions. |
21:02 | < Vornucopia> | Ah, found it |
21:02 | <&McMartin> | A hash that literally never collides isn't a hash. |
21:02 | <&McMartin> | Since it's also reversible at taht point. |
21:03 | <&Derakon> | What I'm saying is that it's easy to generate a state of the game that doesn't have individuated blocks. |
21:03 | <&McMartin> | The fun thing about the sorted list of position/dimension tuples was that Haskell's core library could already deal with such objects for free, so jamming them into a set handled dedup and "where do I search next" automatically. |
21:03 | <&Derakon> | Given an internal representation that does. |
21:03 | < Vornucopia> | You can actually fake a representation with Der's method, because you know that individual objects will not rotate: just give each tile type a name and replace pointer with the name of the tile type and you now have an unambiguous string |
21:04 | <&McMartin> | Yeah, that'll work too |
21:05 | < Vornucopia> | But then deserializing might be a pain. |
21:05 | <&McMartin> | Anyway, as you can see, this is why going into design bits is a better interview question than a trivia quiz. |
21:05 | < Vornucopia> | Yes. |
21:06 | <&McMartin> | (Challenged on the spot to build a Klotski solver, about 90% of interviewees try to do some kind of goal-directed seeking approach) |
21:06 | | * Derakon nods. |
21:07 | <&McMartin> | And the more senior they are, the more likely they are to flail at it. |
21:07 | <&Derakon> | Usually the first response is "well, how would I solve it?" and then try to replicate that. |
21:07 | <&Derakon> | But that generally involves trying to implement intuition as a series of heuristics. |
21:07 | <&Derakon> | Which rarely works well. |
21:07 | <&McMartin> | Quite. |
21:08 | < Vornucopia> | Why would that be? |
21:08 | < Vornucopia> | (the flailing) |
21:08 | <&McMartin> | Vorn: Because "oh, you use BFS" is a trivia question. |
21:08 | <&McMartin> | People fresh out of university are better at those. |
21:08 | <&McMartin> | They've spent 15 years solving problems that aren't that. |
21:11 | <&McMartin> | If I'm really cynical, my questions are to test for what mental ruts they've been run into. |
21:11 | <&McMartin> | But watching a junior developer flail at designing anything usable *at all* from scratch is also instructive. |
21:12 | <&McMartin> | (And, well, yeah, "see how well they can react to problems way outside of their comfort zone" is useful too~) |
21:12 | <&McMartin> | (Since "ready for Literally Anything" is pretty much a job requirement, given how one can end up jumping from Qt-level app code to debugging filesystem drivers in a single day, or sometimes as part of the same bug) |
21:16 | < Tarinaky> | I kindof feel bad. Whenever my team mate suggests fixes to the code I've written I disagree with him >.> |
21:17 | < Vornucopia> | Tarinaky: What kind of fixes are the? |
21:19 | < Tarinaky> | I had a badly named method called getParameters that should, really, have been called parameters. He wants to add a addParameter while leaving getParameters unchanged. |
21:19 | < Vornucopia> | What are you calling parameters anyway? |
21:19 | <&Derakon> | What does this function do? |
21:19 | <&Derakon> | Functions should generally have a verb in their names IMO. |
21:19 | < Tarinaky> | getParameters currently returns a handle to a collection of Fields. |
21:19 | < Vornucopia> | I mean are you literally doing parameterized functions here? |
21:19 | < Tarinaky> | Field being the name of a class. |
21:19 | < Vornucopia> | Ah, this is probably poorly named! |
21:20 | <&Derakon> | Why not call it "getFields" then? |
21:20 | < Vornucopia> | Sounds like you're also probably violating Demeter here too. |
21:20 | < Tarinaky> | These fields represent the parameters of a method. |
21:20 | < Tarinaky> | It's supposed to be a UML drawing tool. |
21:21 | < Tarinaky> | Hence parameters and Fields etc... |
21:21 | < Tarinaky> | Demeter's Law is...? |
21:21 | < Vornucopia> | ah, then this might be problematic |
21:21 | | * Tarinaky can't remember it. |
21:21 | <&Derakon> | Demeter's Law is "don't dig into your friends' stuff", more or less. |
21:22 | <&Derakon> | E.g. self->children[0]->nodes.sort() instead of self->children[0].getNodes().sort(). |
21:22 | <&Derakon> | The former enforces heirarchies and makes your code brittle. |
21:22 | < Vornucopia> | though better yet self->children[0].sortNodes() |
21:22 | <&Derakon> | Quite. |
21:23 | < Tarinaky> | Java Collections are pretty immutable though. |
21:23 | < Tarinaky> | In terms of interface. |
21:24 | < Tarinaky> | And if the actual data needs to be changed it's still encapsulated - even if there's a cost of efficiency. |
21:26 | | * Tarinaky shrugs. |
21:27 | < Tarinaky> | Everything I write is probably crap. It's just it's my crap and I naturally want to defend it :p |
21:27 | <&Derakon> | Ahh, the ego problem. |
21:27 | < Vornucopia> | Anyway some of our complaints might be a little off the mark if you're doing UML drawing |
21:27 | < Vornucopia> | Because UML uses, naturally, a great many words that we as experienced programmers use generically |
21:28 | < Vornucopia> | And generic terms to us are smells. |
21:28 | <&Derakon> | Just try to make certain you aren't confusing hubris with infallibility. |
21:28 | <&Derakon> | That is to say, defend your designs...but only when they're right. :) |
21:28 | < Vornucopia> | No, defend your designs. Just listen to those who attack them, as well |
21:28 | < Tarinaky> | If I didn't at least think my designs were right I wouldn't have written them that way :p |
21:29 | < Vornucopia> | Because they might see something you don't! |
21:29 | < Tarinaky> | Unfortunately group projects tend to be assigned to mixed ability groups... |
21:30 | < Tarinaky> | And being as I'm currently on track to get a decent First I'm unlikely to have many people higher on the curve to learn from :( |
21:30 | < Tarinaky> | (Also: so they can do more work) |
21:30 | <&Derakon> | My perspective on this is basically "when I was in college, I thought I was hot stuff. Then I graduated and assumed I was even better. Now I know I was an idiot back then...who knows how I'll feel about today's work a few years down the line." |
21:31 | < Tarinaky> | Derakon: The best way to become a good programmer is to annoy great ones :p |
21:31 | <&Derakon> | ... |
21:31 | <&Derakon> | Surely practice has to enter into the equation. |
21:31 | <@TheWatcher> | Uh, no |
21:31 | < Tarinaky> | s/annoy/work with/ :p |
21:32 | | * Tarinaky didn't think you'd take it literally >.< |
21:32 | <&Derakon> | Hello, programmers~ |
21:32 | <@Tamber> | XD |
21:32 | < Tarinaky> | Although I learn lots from annoying you guys :p |
21:33 | < Vornucopia> | Tarinaky: I was pleased to see that you had good results from Perlin noise. |
21:33 | <@Tamber> | Sure, for one, you learn "Don't poke the programmers. They get bitey without their caffeine." |
21:34 | < Tarinaky> | ATM I'm trying to figure out a sensible way to generate a 3d model of say, a tree, from an L-System. |
21:35 | < Tarinaky> | And if it's worth implimenting it for the sake of a 7 minute presentation I don't get marked on... |
21:35 | < Tarinaky> | And if I really have time between struggling with maths work... |
21:35 | <&Derakon> | Convert each edge into a triangular prism. |
21:35 | < Tarinaky> | And the fact that my presentation, as a presentation, kindof sucks. |
21:35 | <&Derakon> | Don't bother making the nodes in the graph meet up nicely. |
21:36 | < Tarinaky> | Graph? |
21:36 | <&Derakon> | Sorry, I assumed we were dealing with some kind of graph-theory structure here. |
21:36 | < Tarinaky> | L-Systems are strings. |
21:37 | | * Derakon eyes the Wikipedia article. |
21:37 | < Vornucopia> | An L system is a graph rewriting tool |
21:37 | <&Derakon> | Okay, sure, but if you want to turn them into 3D models of trees then you need to convert them into edges. |
21:37 | < Vornucopia> | Well, okay, a string reriting tool. |
21:37 | < Tarinaky> | :) |
21:39 | < Tarinaky> | Anyway. I have some ideas. I'm just not very good or experienced with 3D graphics and meshes and stuff. |
21:41 | <&Derakon> | Well, the simplest approach would be glBegin(GL_LINES); glVertex3f(p[0], p[1], p[2]); etc... |
21:41 | < Tarinaky> | Panda3d so... even harder. |
21:41 | <&Derakon> | Of course that's drawing unshaded lines. |
21:41 | <&Derakon> | I have no experience with Panda3d. |
21:42 | < Tarinaky> | Panda3d kindof sucks for procedural content. If only because it's encapsulated so you don't have access to OpenGL primatives directly. |
21:43 | < Tarinaky> | I think it'd be quite cool to be able to demo a complete scene with a procedural tree on a procedural hill, with procedural textures swaying sinosoidaly. |
21:43 | < Tarinaky> | But I think that's a bit too much to do in 2 weeks with other things eating into my time. |
21:44 | <&Derakon> | If you can do one tree, them you might as well do a forest. |
21:44 | < Tarinaky> | Heh. |
21:45 | < Tarinaky> | Right, I'm going to try to get some Skyrim in before bed. |
21:45 | < Tarinaky> | Wuld! |
21:45 | < Vornucopia> | I really should learn how to actually do qhull on stuff. |
21:47 | <@TheWatcher> | (talking of skyrim, for a few minuts then it wasn't snowing in winterhold, egads) |
21:53 | | Vornucopia [NSwebIRC@C888DE.7F9621.4A1301.BBBE7B] has quit [[NS] Quit: Page closed] |
21:59 | <&McMartin> | Mustard JAR |
22:00 | | * McMartin reads backscroll |
22:01 | <&McMartin> | verbs in function names are usually good, but if you language has overloading, there's something to be said for, say, int noun() and void noun(int newVal). |
22:02 | <&McMartin> | For Java specifically, though, get/set/is is part of the closest thing it has to an actual standard, so that's a plus if you can swing it |
22:02 | <&McMartin> | (The "Beans" standard, which makes classes semi-self-documenting) |
22:16 | | Vash [Vash@Nightstar-cdeba41f.wlfrct.sbcglobal.net] has joined #code |
22:16 | | mode/#code [+o Vash] by ChanServ |
22:30 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
22:45 | < Tarinaky> | TheWatcher: Did you use Clear Skies? |
22:46 | <@TheWatcher> | nope. |
22:46 | <@TheWatcher> | Only mod I have is SkyUI |
22:46 | < Tarinaky> | No, Clear Skies is a Thu'um. |
22:46 | <@TheWatcher> | Oh, that. |
22:46 | <@TheWatcher> | No |
22:46 | <@TheWatcher> | Don't have it yet |
22:47 | < Tarinaky> | Ah. |
22:47 | < Tarinaky> | I haven't done a lot of side quests. |
22:47 | < Tarinaky> | The main quest is actually fun for a change. |
22:48 | <@TheWatcher> | I've stopped following it at Diplomatic Immunity, gone doing side quests. I'm lvl 40 now >.> |
22:48 | < Tarinaky> | It picks up again after Diplomatic Immunity >.> |
22:49 | < Tarinaky> | Any idea where I can get a large amount of Orichalcum? I just got Orcish Blacksmithing but I only have like, 3 ingots. |
22:50 | <@TheWatcher> | Nah, sorry - I levelled smithing straight through to Daedric on iron daggers ¬¬ |
22:51 | < Tarinaky> | Lol. |
22:57 | | rstamer [rstamer@genoce.org] has quit [Ping timeout: 121 seconds] |
22:57 | | rstamer [rstamer@Nightstar-e681a855.org] has joined #code |
23:53 | | You're now known as TheWatcher[T-2] |
23:54 | | Attilla [Obsolete@Nightstar-e4c009dc.as43234.net] has quit [Ping timeout: 121 seconds] |
23:56 | | You're now known as TheWatcher[zZzZ] |
--- Log closed Tue Feb 28 00:00:55 2012 |