--- Log opened Wed Oct 04 00:00:05 2006 |
00:01 | | EvilDarkLord is now known as EvilSLEPLord |
00:12 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:12 | | mode/#code [+o Chalcy] by ChanServ |
00:13 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
00:22 | < Vornotron> | Okay. the three dump jobs are prepared... |
00:22 | < Vornotron> | finally... |
00:23 | < Vornotron> | now to burn the CD. |
00:44 | | MahalOut [~Mahal@Nightstar-4718.worldnet.co.nz] has quit [Ping Timeout] |
00:52 | | Mahal [~Mahal@Nightstar-20316.worldnet.co.nz] has joined #Code |
00:52 | | mode/#code [+o Mahal] by ChanServ |
01:00 | < Vornotron> | Clearing my throat and gripping the lectern I smile and face my audience clearing his throat and smiling with his hands on the bathroom sink |
01:26 | < Vornotron> | Okay. Burning a CD uses, um, mkisofs, and then... cdrecord? |
01:27 | <@ToxicFrog> | I think so. |
01:27 | <@ToxicFrog> | I've never burned a CD from the shell. |
01:28 | < Vornotron> | I have to, I'm doing the burn as part of a cron job. |
01:35 | | Chalcy is now known as Chalcedon |
01:37 | <@ToxicFrog> | I know. |
01:37 | <@ToxicFrog> | I'm just saying, my knowledge of such things approaches nil. |
01:38 | <@ToxicFrog> | I know you use mkisofs to make the image, but as for burning it, all I can say is that I think you only need cdrecord. |
01:38 | < Vornotron> | yeah - I'll have to hunt down some actual experts. |
01:47 | | Chalcedon is now known as ChalcyCleaning |
01:50 | | Syloqs-AFH [Syloq@NetAdmin.Nightstar.Net] has quit [Connection reset by peer] |
01:54 | | Vornotron [~vorn@Nightstar-18307.slkc.qwest.net] has quit [Quit: ] |
02:01 | | ReivZzz is now known as Reiver |
02:14 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: Jouets de Dieu, jouets de jouets, et les jouets de me, fait naƮtre Clair voire.] |
03:22 | | Mahal is now known as MahalChores |
04:36 | | MahalChores is now known as Mahal |
04:48 | | ChalcyCleaning is now known as Chalcedon |
04:51 | | Mahal [~Mahal@Nightstar-20316.worldnet.co.nz] has quit [Quit: It's hard to be mad at someone who misses you while you're asleep. ] |
04:51 | | Mahal [~Mahal@Nightstar-20316.worldnet.co.nz] has joined #Code |
04:51 | | mode/#code [+o Mahal] by ChanServ |
04:55 | | Chalcedon is now known as ChalcyGuest |
06:03 | | Thaqui is now known as ThaquiWork |
06:47 | | Mahal is now known as MahalOut |
06:48 | | EvilSLEPLord is now known as EvilDarkLord |
07:49 | | ChalcyGuest is now known as ChalcyShopping |
07:56 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
07:56 | | mode/#code [+o Chalcy] by ChanServ |
07:57 | | ChalcyShopping [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
08:14 | | You're now known as TheWatcher |
08:16 | | Vornicus is now known as Vornicus-Latens |
08:52 | | himi [~fow035@152.83.10.ns-12024] has joined #code |
08:52 | < himi> | Anyone active in here? |
09:00 | | Chalc [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
09:01 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
09:14 | | MahalOut is now known as Mahal |
09:16 | | Chalc is now known as Chalcedon |
09:16 | | * Chalcedon is here! |
09:18 | | * EvilDarkLord announces his presence, since the cool kid is doing it. |
09:18 | | * Mahal waves to Himi |
09:18 | < himi> | Anyone got experience with admining Unix dhcp servers? |
09:18 | <@Mahal> | Some. |
09:19 | <@Mahal> | Why? |
09:19 | <@Mahal> | (Some = I have installed and successfully run one for ~6 mo) |
09:19 | < himi> | In a reasonable sized business environment? |
09:19 | <@Mahal> | ~100 users |
09:19 | < himi> | Cool |
09:20 | <@Mahal> | Were no rules setup or anything though |
09:20 | <@Mahal> | Was jsut a free-for-all DHCP |
09:20 | < himi> | Ah |
09:20 | < himi> | Well, let me run a project I'm working on by you |
09:20 | < himi> | Just give me a few minutes |
09:31 | < himi> | . . . or a bit more than a few minutes . . . |
09:31 | <@Mahal> | :) |
09:37 | < himi> | Hah |
09:37 | | * himi just sent a licensing flame to one of the top Linux kernel developers |
09:37 | <@TheWatcher> | wut? |
09:39 | < himi> | You wouldn't happen to be an LWN subscriber? |
09:39 | <@TheWatcher> | Nope, link? |
09:40 | < himi> | http://lwn.net |
09:40 | < himi> | The article is http://lwn.net/Articles/202106/ |
09:41 | < himi> | LWN is a high quality Linux news site |
09:42 | < himi> | Subscription only for a week, after that freely available |
09:42 | | * TheWatcher shrugs |
09:42 | <@TheWatcher> | summary? |
09:43 | < himi> | Al Viro was participating in a general GPLv3 hate-fest, and I responded to some of his points |
09:44 | < himi> | . . . . some rather dumb points, really, since they seem to have been predicated on forks doing wholesale relicensing of code under the GPLv3 /only/, rather than the normal GPLv2 or later wording |
09:44 | <@TheWatcher> | My experiences of th eOSS community would suggest such reactions are fairly standard among some groups. |
09:45 | | * himi notes that it's rather hard to do wholesale relicensing of code, unless you happen to /own/ the code, and hey, if you own the code maybe, just /maybe/, you have every right to license it however you want |
09:45 | < himi> | Yeah |
09:45 | < himi> | It's irritating to see it from people who are probably among the best coders on the planet, though |
09:46 | < himi> | Anyway |
09:46 | < himi> | My dhcp stuff |
09:47 | | * himi tempts Mahal back into the channel with a Tim Tam |
09:47 | | * Mahal is here. |
09:47 | | * himi gives Mahal the Tim Tam, then |
09:47 | < himi> | Okay |
09:48 | < himi> | The basic idea is to build dhcp configs based on the contents of an organisational inventory management database |
09:48 | <@Mahal> | *nod* |
09:49 | < himi> | This is a sizable organisation, with lots of sites and a complex network, so the approach needs to be reasonably flexibl |
09:49 | < himi> | e |
09:49 | | * Mahal nod |
09:50 | < himi> | What I'm looking at doing is storing configuration information for each subnet, and each host entry, in the database |
09:50 | <@Mahal> | *nod* |
09:51 | < himi> | Then, I'll have a set of scripts that read template files, query the database, and build the final configuration files |
09:51 | <@Mahal> | *nod* |
09:51 | | * Mahal approve of idea thus far |
09:52 | < himi> | I'm looking at making the template file format identical to the real dhcpd.conf format, with two additional things |
09:52 | <@Mahal> | *nod* |
09:52 | < himi> | An @subnet block, and an @hosts block |
09:52 | <@Mahal> | *nod* |
09:53 | < himi> | They're both in the format @subnet [query] { # block } |
09:53 | < himi> | Where query is something like networkid:entomology-bm |
09:54 | < himi> | That tells the script to replace the @subnet block with a normal subnet block, with the data from a database query for the networkid matching 'entomology-bm' |
09:55 | <@Mahal> | *nods8 |
09:55 | < himi> | So you'd get something like |
09:56 | < himi> | subnet 152.83.144.0 netmask 255.255.248.0 { |
09:56 | < himi> | router 152.83.144.1; |
09:56 | < himi> | blah |
09:56 | < himi> | blah |
09:56 | < himi> | } |
09:56 | | * Mahal nods |
09:56 | < himi> | The contents of # block would go after all the stuff that came out of the database |
09:57 | < himi> | An @hosts block would be similar, except it'd output one entry for each row returned |
09:57 | < himi> | The idea being that you could do a really basic template with something as simple as |
09:58 | < himi> | @subnet [networkid:entomology-bm] { |
09:58 | < himi> | |
09:58 | < himi> | @hosts [networkid:entomology-bm] { |
09:58 | < himi> | } |
09:58 | < himi> | } |
09:58 | < himi> | Which would output a normal, single subnet config with a list of all the hosts in that subnet |
09:59 | < himi> | Or, for a more complicated server, you could do something bigger and nastier, with groups and sharednets and multiple subnets and things like that, with all the actual data coming out of the database |
10:00 | < himi> | Does this sound like overkill, or sensible? |
10:00 | < himi> | . . . . or just plain insane? |
10:03 | < himi> | . . . . . . I put her to sleep |
10:04 | <@Reiver> | She's not well, himi, and preparing for an unwanted work tomorrow. |
10:04 | <@Reiver> | Give her a few moments to get back and reply. |
10:04 | < himi> | Oh |
10:06 | | Mahal is now known as MahalAFK |
10:07 | | MahalAFK is now known as MahalZzz |
10:07 | < himi> | Sleep well, Mahal . . . |
10:07 | | * MahalZzz argh, sorry. |
10:07 | <@MahalZzz> | And yes, it sounds sensible. |
10:07 | <@MahalZzz> | :) |
10:08 | < himi> | Okay |
10:08 | < himi> | . . . . how about allowing an sql: query? With an arbitrary sql query string in it . . . |
10:09 | | * MahalZzz ponder. |
10:09 | | * himi suspects /that's/ insane, though it makes things /really/ powerful and flexible |
10:09 | <@MahalZzz> | It might be useful. |
10:09 | <@MahalZzz> | Suggest that as second incarnation. |
10:09 | | * himi nods |
10:09 | <@MahalZzz> | I now sleep. |
10:09 | <@MahalZzz> | Tired, sick,e tc. |
10:09 | < himi> | Sleep well |
10:09 | < himi> | Get better, too |
10:10 | < himi> | Okay, I go home now |
10:10 | | himi is now known as himi-heading-home |
10:16 | | Chalcedon is now known as ChalcyZzz |
11:14 | | ThaquiWork is now known as Thaqui |
11:15 | | * TheWatcher hereby declares that php is a pile of utter, steaming crap |
11:17 | <@TheWatcher> | I've just spent half an hour trying to work out why a database query was returnign no records. Turned out that the PConnect was returning a connection index even though the database was refusing permission to open the connection! >.< |
12:03 | | Reiver is now known as ReivZzz |
14:06 | | Thaqui is now known as ThaquiSleep |
14:49 | | ChalcyZzz [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
14:55 | | EvilDarkLord is now known as EvilNotOnIRCLord |
15:46 | | ToxicFrog|Lab [~ToxicFrog@Nightstar-2174.cpe.net.cable.rogers.com] has quit [Ping Timeout] |
15:46 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Ping Timeout] |
15:51 | | EvilNotOnIRCLord is now known as EvilDarkLord |
16:00 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
16:00 | | mode/#code [+o ToxicFrog] by ChanServ |
16:08 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
16:16 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
16:16 | | mode/#code [+o ToxicFrog] by ChanServ |
16:33 | | EvilDarkLord [althalas@Nightstar-17046.a80-186-184-83.elisa-laajakaista.fi] has quit [Ping Timeout] |
16:46 | | EvilDarkLord [althalas@Nightstar-17046.a80-186-184-83.elisa-laajakaista.fi] has joined #code |
16:52 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out] |
16:58 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
16:58 | | mode/#code [+o ToxicFrog] by ChanServ |
17:23 | | Vornicus [~vorn@Nightstar-18307.slkc.qwest.net] has joined #code |
17:23 | | mode/#code [+o Vornicus] by ChanServ |
17:24 | | You're now known as TheWatcher[afk] |
18:41 | | You're now known as TheWatcher |
18:43 | | ToxicFrog|Lab [~ToxicFrog@Nightstar-2174.cpe.net.cable.rogers.com] has joined #code |
18:50 | <@Vornicus> | from a cdrecord howto: When you are mentally prepared, dress up in a black robe, multiply the SCSI-id of the CD-writer with its SCSI-revision and light as many candles, speak two verses of the ASR-FAQ (newsgroup alt.sysadmin.recovery) and finally type: |
18:50 | <@Vornicus> | Well, at least I'm not the only one who thinks this stuff is deep voodoo |
18:51 | <@TheWatcher> | *snrk* |
19:20 | < Ev3> | Hehe. |
19:21 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
19:21 | | mode/#code [+o Chalcedon] by ChanServ |
19:40 | | * Vornicus fiddles with things. |
19:41 | <@Vornicus> | THis document is six years old. |
19:42 | | * Chalcedon gives Vorn a meringue |
19:42 | <@Vornicus> | Which means that I have to figure out what is out of date, what my OS already does for me, etc etc etc. |
19:44 | | MahalZzz is now known as Mahal |
19:52 | | * Ev3 PatPats Vornicus. |
19:59 | | * jerith sneaks in the back door. |
20:44 | | * Vornicus applies deep voodoo to jerith. |
20:45 | | * jerith shambles around the channel eating all the nice, juicy braaaaains. |
20:50 | | ReivZzz is now known as ReivClass |
--- Log closed Wed Oct 04 21:03:33 2006 |
--- Log opened Wed Oct 04 21:03:38 2006 |
21:03 | | TheWatcher [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code |
21:03 | | Irssi: #code: Total of 16 nicks [9 ops, 0 halfops, 0 voices, 7 normal] |
21:03 | | mode/#code [+o TheWatcher] by ChanServ |
21:03 | | Irssi: Join to #code was synced in 24 secs |
21:07 | | Syloq [Syloq@Admin.Nightstar.Net] has joined #code |
21:47 | | ThaquiSleep is now known as Thaqui |
21:49 | | aoanla [~sam@Nightstar-16113.range81-132.btcentralplus.com] has joined #code |
23:01 | | ReivUni [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #Code |
23:06 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #code |
23:14 | < Janus> | May I ask a small question about C++, please..? |
23:14 | <@Vornicus> | NEVER |
23:14 | <@Vornicus> | :P |
23:14 | <@Vornicus> | what's up? |
23:16 | | You're now known as TheWatcher[T-2] |
23:17 | <@ToxicFrog> | Proceed, mortal. |
23:18 | < Janus> | Alrighty~ Well, some of this is going to be really, uh, out-of-context specific, but I think you can get the gist if you squint a little. |
23:18 | < Janus> | http://rafb.net/paste/results/96f2Na53.html |
23:18 | <@Vornicus> | n < population |
23:18 | <@Vornicus> | not n > population |
23:19 | < Janus> | |
23:19 | <@ToxicFrog> | Also, I don't think that code will compile. |
23:19 | <@Vornicus> | heh |
23:19 | <@ToxicFrog> | Unless you are ignoring convention and population is actually a constant. |
23:19 | <@Vornicus> | oh, yeah, that too - you cannot dynamically allocate arrays even that way. |
23:20 | | * ReivUni hrm. Pokes at Java constructors. |
23:20 | < Janus> | population isn't a constant, but it compiled just fine. |
23:20 | | * ReivUni decides he will ask for a bit of advice in a little bit though, leaves folks to stab C++ for the moment. :) |
23:20 | <@ToxicFrog> | Yeah. If statically allocating, the size must be determinable at compile time. |
23:20 | <@ToxicFrog> | ... |
23:20 | | ReivUni is now known as ReivUni[Appt] |
23:20 | <@ToxicFrog> | What compiler are you using, and how is population declared? |
23:21 | <@ToxicFrog> | Because if the value of population cannot be determined at compile time lines 3 and 4 should be errors. |
23:21 | < Janus> | Population is a member of the class, to which that code is also an excert of a function to the same class. It's declared as a plain ole' unsigned int. |
23:21 | <@ToxicFrog> | (I would not put it past msdev to compile it anyways, but g++ should be above such things) |
23:22 | < Janus> | Dev-Cpp (Sorry, but Eclipse scares me.) |
23:22 | <@ToxicFrog> | So, it's a uint member value of the class of which this is also a member function. |
23:22 | <@ToxicFrog> | DevCPP is the IDE. |
23:22 | <@ToxicFrog> | This means you're probably using g++. |
23:23 | < Janus> | If I am, I don't know it-- |
23:23 | | * Janus should probably fix that. |
23:23 | <@ToxicFrog> | DevCPP is only responsible for editing and managing the build system. |
23:23 | <@ToxicFrog> | For the actual compilation, it invokes a seperate program. |
23:24 | <@ToxicFrog> | By default, this is gcc/g++, but you can configure it to use other compilers. |
23:24 | <@ToxicFrog> | Assuming you aren't using some wacky custom package and haven't reconfigured it, it should be using gcc. |
23:24 | <@ToxicFrog> | Which should not compile the above the above code. |
23:25 | | * aoanla eyes how bad his C++ has become in only a few months. |
23:25 | < aoanla> | Would it work with a new float[population]? |
23:25 | <@ToxicFrog> | Yes. |
23:25 | < aoanla> | Good. |
23:25 | < aoanla> | My C++ works in my head, then. |
23:25 | <@ToxicFrog> | That dynamically allocates an array of float of length population. |
23:25 | | GeoTube [~Someone@Nightstar-2676.cable.ubr01.dund.blueyonder.co.uk] has joined #Code |
23:26 | <@ToxicFrog> | And, because...god knows why, you free it with delete[] rather than delete. |
23:26 | < aoanla> | Indeed. |
23:26 | < GeoTube> | Indeed. |
23:26 | | You're now known as TheWatcher[zZzZ] |
23:26 | < aoanla> | Because of the metainformation C++ uses to deal with arrays. |
23:26 | < aoanla> | (well, and C) |
23:26 | | * ToxicFrog crushes GeoTube's liver. |
23:26 | <@ToxicFrog> | aoanla: except in C, you don't need to do that! |
23:27 | < Janus> | I've already made a bit of a mess overusing (or miss-using rather) Malloc(), so I was trying to edge away from that. However, I guess I could give it another shot. |
23:27 | <@ToxicFrog> | free() works fine no matter what it points to! |
23:27 | | * GeoTube sells Pi on ebay for another.. |
23:27 | < aoanla> | ...true. |
23:27 | <@ToxicFrog> | Janus: if you're using C++, you should be using new/delete, not malloc/free. |
23:27 | < aoanla> | Malloc() is more evil than new, Janus. |
23:27 | < aoanla> | new/delete are mostly lovely. |
23:27 | <@ToxicFrog> | For C++, anyways. |
23:27 | < aoanla> | Other than the delete/delete[] thing. |
23:28 | < Janus> | How is it different..? |
23:28 | <@ToxicFrog> | For one thing, new and delete will automatically invoke constructors and destructors. |
23:28 | <@ToxicFrog> | And will automatically calculate the size you need. |
23:28 | <@ToxicFrog> | For example (and the 'using malloc' part of this probably isn't even legal C++): |
23:28 | <@ToxicFrog> | Using malloc: |
23:29 | < Janus> | They will? ... I actually had to make a seperate initialization function for that... |
23:29 | < aoanla> | No, they will. |
23:29 | <@ToxicFrog> | foo * var = malloc(sizeof(foo)); // allocate space for a foo |
23:29 | <@ToxicFrog> | var->foo(ctor_args); // this is a segfault because the vtable isn't set up! |
23:30 | <@Vornicus> | THat's c. |
23:30 | <@Vornicus> | you want to use new |
23:30 | < Janus> | Other than the (foo*) type cast, that seems right... |
23:30 | <@ToxicFrog> | delete var; // this leaves random resources lying open because the destructor wasn't called! |
23:30 | <@ToxicFrog> | // for the love of god! Don't do that! |
23:30 | <@ToxicFrog> | Or, using new: |
23:30 | < GeoTube> | // hax! |
23:30 | <@ToxicFrog> | foo * var = new foo(ctor_args); // automatically allocate space, set up metadata and call constructor |
23:31 | <@ToxicFrog> | delete var; // automatically call destructor and free space |
23:31 | < aoanla> | And everyone is happy. |
23:31 | <@ToxicFrog> | So, yeah. There are really very few reasons to use malloc/free rather than new/delete in C++ |
23:32 | < Janus> | I should probably be replacing Malloc() for new then, right? I always wondered why it was a reserved word... |
23:32 | <@Vornicus> | yes |
23:32 | < aoanla> | definitely |
23:32 | <@ToxicFrog> | ...yes |
23:32 | < GeoTube> | Indeed. |
23:33 | <@ToxicFrog> | GeoTube, do you actually know any C++? |
23:33 | < GeoTube> | ... maybe ... |
23:33 | < GeoTube> | <_< |
23:34 | < Janus> | Alrighty. I'll do that, then fix up the Brooklin Scholastic system of a function you seen, and I'll see what else goes wrong~ |
23:34 | < GeoTube> | printf(":E\n") |
23:35 | < aoanla> | Ah, C. |
23:35 | < aoanla> | std::cout << ":E" << std::endl; |
23:35 | < GeoTube> | I get mixed up with languages >_> |
23:35 | < aoanla> | would be Modern C++. |
23:35 | < GeoTube> | I remember the cout after you mentioned it <_< |
23:36 | <@ToxicFrog> | aoanla: or just using namespace std; |
23:36 | < aoanla> | Well, /yes/. |
23:36 | < aoanla> | But, especially in large code, I like to keep the namespace explicit. |
23:37 | < aoanla> | Otherwise I'll do something stupid and end up redefining something important. |
23:37 | <@ToxicFrog> | Hmm. I can't remember the last large C++ I worked on that used std. |
23:37 | | * Vornicus hateses C++ namespaces. |
23:38 | | aoanla is now known as caps[t-2] |
23:38 | < caps[t-2]> | I'm ambivalent about them. |
23:39 | <@ToxicFrog> | They are useful. |
23:39 | < caps[t-2]> | They are. |
23:39 | <@McMartin> | You can use classes to get the same effect, though |
23:39 | <@McMartin> | Also, their introduction broke every single extant C++ program in the entire fucking world. |
23:39 | < caps[t-2]> | ...yes, that was a flaw. |
23:40 | <@McMartin> | Not that I hold grudges for a long time or anything, no. |
23:40 | < caps[t-2]> | But, omlettes/eggs. |
23:40 | <@ToxicFrog> | See, I'm not nearly as bitter about that as you are, because when that happened I wasn't using C++. |
23:40 | <@Vornicus> | In addition to breaking all C++ ever, they seem tacked on. |
23:40 | | * caps[t-2] notes that this is one of Those discussions. |
23:40 | | caps[t-2] [~sam@Nightstar-16113.range81-132.btcentralplus.com] has quit [Quit: Leaving] |
23:41 | <@ToxicFrog> | Although, yes, it's true, "namespace foo" is basically shorthand for "class foo { private foo() {};" |
23:41 | <@ToxicFrog> | With everything static. |
23:41 | <@McMartin> | Indeed |
23:41 | <@McMartin> | Which is how sensible Java programmers use namespaces and also refrain from having 14,973 12-line source files. |
23:42 | <@ToxicFrog> | Personally, I feel that adding "namespace" as a syntatic sugar is a worthy trade for not having to prefix every single member function and variable with "static" and stick a private constructor on top. |
23:42 | <@Vornicus> | onl 14,973? |
23:43 | <@ToxicFrog> | This is because Java is of the opinion that it's ok to require the programmer to write six times as much stuff as long as it's no more readable than C++~ |
23:43 | <@McMartin> | Actually, that's to buy you symbolic dynamic linking at run-time. |
23:44 | <@McMartin> | Though that should really only apply to .class files, not .java ones. |
23:44 | <@ToxicFrog> | Ok, granted. |
23:44 | <@McMartin> | On the other hand, they need to fix a few stupidities in the classfile format, too. |
23:44 | <@McMartin> | At minimum, the ones which have footnotes saying "In retrospect, this was stupid" in the spec itself. |
23:44 | <@ToxicFrog> | And I admit that working on POD has taken my opinion of Java, already quite low, and systematically hammered it into the ground so that it is now floating somewhere around the lower mantle. |
23:45 | <@McMartin> | And I admit that having C++ mutate twice under me -- and that my only paid development job required writing for it when it was in an unusable form -- has informed much of my opinion of it. |
23:46 | <@Vornicus> | actually I've broken Java. |
23:47 | <@McMartin> | Java only broke once, but maintained backwards compatibility. |
23:48 | <@Vornicus> | I had a thing that had a LinkedList<something> in it, and then changed another java file that referred to it from thinking about LinkedList to Collection |
23:48 | <@Vornicus> | and it didn't like that. |
23:48 | | * ToxicFrog nods. |
23:49 | <@ToxicFrog> | C++-wise, I didn't start seriously using it until after the mutation. |
23:49 | <@ToxicFrog> | And CacheOS was basically almost completely unaffected by it. |
23:49 | <@Vornicus> | I started using it just as namespaces were starting to show up |
23:49 | <@Vornicus> | So I learned that they existed but didn't have to do anything about it-- so I didn't. |
23:50 | <@McMartin> | I had to use STL before STL was properly implemented. |
23:50 | <@McMartin> | Anywhere in the universe. |
23:50 | <@ToxicFrog> | ...ow. |
23:50 | <@ToxicFrog> | I have never had to use the STL. |
23:50 | <@ToxicFrog> | Thank god. |
23:51 | <@McMartin> | vector<> and deque<> are now vaguely usable. |
23:52 | <@McMartin> | I hear string is too, but being more usable than C strings is Not Fucking Hard. |
23:55 | < ReivUni[Appt]> | ...Not to derail a general grumblefest over arcane languages, but, err, I was wondering as to proper coder practice for constructors and such? |
23:55 | | ReivUni[Appt] is now known as ReivUni |
23:55 | < ReivUni> | (Java.) |
23:55 | < ReivUni> | If folks have time/inclination at the moment, I mean. |
23:57 | | * ReivUni is trying to create an Appointment class to store the appointments for his appointment scheduler program. In it, it has instance variables for start time, end time, alarm time, location, description and priority. Three Dates, two strings, and an integer. |
23:58 | <@McMartin> | The standard practice for Java is to have the Constructor do everything |
23:58 | <@McMartin> | So you'd have one with six arguments |
23:58 | <@McMartin> | And then other ones with fewer arguments to supply sensible defaults if possible. |
23:59 | < ReivUni> | ...Is it /really/ a good idea to use Constructors to set those up for an Appointment, and if so, should the constructors insert default values, or should default values (For blank fields) be handled by their creator class? |
23:59 | | * ReivUni ponders. Nods. |
23:59 | <@McMartin> | C++ standard practice, AIUI, is to have a class be unusable after construction until the creator calls setter methods. |
23:59 | <@McMartin> | Java practice has generally frowned on this. |
23:59 | | * ReivUni nods. |
--- Log closed Thu Oct 05 00:00:10 2006 |