code logs -> 2006 -> Mon, 11 Sep 2006< code.20060910.log - code.20060912.log >
--- Log opened Mon Sep 11 00:00:54 2006
00:34 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: reboot brb]
00:37 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
00:37 mode/#code [+o Mahal] by ChanServ
00:40 ReivSLEPforReal is now known as ReivClass
00:47 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
00:47 mode/#code [+o Chalcy] by ChanServ
00:48 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
01:20 himi-coffee is now known as himi-heading-to-work
01:31 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: brb.]
01:32 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
01:32 mode/#code [+o Mahal] by ChanServ
01:42 takyoji [~caleblang@Nightstar-25427.dhcp.roch.mn.charter.com] has joined #code
01:42
< takyoji>
hooly crap this place grew..
01:44
<@ToxicFrog>
Yes.
01:57
<@Mahal>
People in code is a Good Thing :)
01:58
< takyoji>
heh, true
01:59
< Vornicus-Latens>
Yes.
02:06
< takyoji>
quick little question... I'm basically STILL trying to set up that one wireless router that I came here to ask questions about like.. 3 months ago, anyway. Let's say I have one computer connected directly to the router, and and I have a laptop which is operating through wireless, and they are both able to access the router's settings, but.. they can't ping each other, nor connect to the internet, plus, when I use ipconfig in MS-DO
02:11
< takyoji>
hmmm.. nobody?
02:13
<@Mahal>
.... bizarre.
02:13
<@Mahal>
dhcp?
02:13
<@Mahal>
fixed ip?
02:14
<@Mahal>
I can think of four or five possibilities, so.
02:19
< takyoji>
it's on a Dynamic IP Address
02:20
< takyoji>
charter cable internet
02:21
<@Mahal>
No, inside the network.
02:21
<@Mahal>
Um, I'll explain how my network works to tell you why I'm asking.
02:22
<@Mahal>
Outside World <- Router <- wireless <- laptop
02:22
<@Mahal>
^
02:22
<@Mahal>
My desktop
02:22
<@Mahal>
Which is pretty much that setup.
02:23
<@Mahal>
I have a dynamic ip to the router.
02:23
<@Mahal>
Inside the network, I have a DHCP setup.
02:23
<@Mahal>
which is only visible inside the network.
02:23
<@Mahal>
so my desktop and my laptop have dhcp, provided by my router.
02:23
<@Mahal>
The router deals with the sharing the internet out.
02:23
<@Mahal>
does that make senses?
02:24
< takyoji>
yes, I believe it might be DHCP
02:24
< takyoji>
The router is basically the commonly known router of Linksys, which is the WRT54G router
02:25
<@ToxicFrog>
In which case it should automatically handle DHCP and NAT.
02:25
<@ToxicFrog>
Your earlier message got cut off, BTW.
02:25
<@ToxicFrog>
"they can't ping each other, nor connect to the internet, plus, when I use ipconfig in MS-DO"
02:26
< takyoji>
" when I use ipconfig in MS-DOS the default gateway is missing"
02:30
<@ToxicFrog>
That would likely be a large part of the problem, yes.
02:31
<@ToxicFrog>
What IP addresses do they report?
02:31
< takyoji>
crap.. can't remember
02:31
<@ToxicFrog>
Can you remember the first two octets?
02:32
< takyoji>
the IP started with 162.. but can't remember the 2nd
02:32
<@ToxicFrog>
DHCP isn't working.
02:32
<@ToxicFrog>
Or the systems can't communicate with the router properly.
02:33
<@Mahal>
Indeed.
02:33
< takyoji>
another thing, was that my friend suggested that I'd turn off MAC filtering, which I'm not sure if its on
02:33
<@ToxicFrog>
That only applies to wireless anyways.
02:33
< takyoji>
oh
02:33
<@ToxicFrog>
But yes, if you can get the wired connection working but not the wireless, that's something to check.
02:34
< takyoji>
but yea, the computers work just great without the router
02:34
< takyoji>
If I directly connect them to the cable modem
02:35
<@ToxicFrog>
Alright. Step one: check to make sure DHCP is enabled in the router.
02:35
< takyoji>
and one problem.. I'm not by the network at the moment
02:35
<@ToxicFrog>
...except you can't access the router because none of the systems have valid IP settings. Right.
02:35
< takyoji>
soo.. maybe tomorrow
02:35
<@ToxicFrog>
Aah.
02:36
<@ToxicFrog>
Anyways, even without DHCP, you can use # route and # ifconfig to configure your interfaces and (hopefully) talk to the router and do any fixing needed.
02:38
< takyoji>
and as another thing.. on my brother's old computer, he used to use it at a collage which used a PPPoE type of connection, and apparently, if I have it connected to the internet, it'll prompt for the username and password, I'd click cancel and it'd work just find, do you happen to know how I would be able to disable this on a Win98 SE?
02:38
< takyoji>
fine*
02:38
<@ToxicFrog>
I haven't used win98 in years.
02:38
<@ToxicFrog>
Thank god.
02:38
<@Mahal>
Me either.
02:38
< takyoji>
heh, me either
02:39
<@ToxicFrog>
And even when I did, I never used it with PPPoE; it was gatewayed through a Linux firewall that handled the modem.
02:39
< takyoji>
and soon we'll have Vista..
02:39
<@ToxicFrog>
You might, I sure as hell won't.
02:39
< takyoji>
why not?
02:39
<@Mahal>
I'm not touching vista with a bargepole.
02:40
<@ToxicFrog>
Because while I accept the fact that I require at least one windows machine for gaming purposes and cross-platform dev testing, I prefer it to suck as little as possible.
02:40
<@ToxicFrog>
Insofar as this is possible with windows.
02:40
<@ToxicFrog>
This means, among other things, never installing 95, ME, NT or Vista on it.
02:41
< takyoji>
ahh
02:42
<@ToxicFrog>
Because, based on what we've seen so far, and on playing with the Vista beta machine at work, what they've basically done is taken all the worst ideas from XP and OSX, thrown out all the marginally good ideas that they hyped up years ago when Vista was just being announced, and wrapped it in a window manager that's a blatant ripoff of XGL - only with several orders of magnitude higher system requirements.
02:43
<@ToxicFrog>
And, for the finishing metaphorical kick to the groin for their customer base, they're selling the only useful version for ~$500-$600 per.
02:43
<@ToxicFrog>
Which is admittedly only an issue if you would actually be /purchasing/ it, but even so that's insulting.
02:44
< takyoji>
oh lord..
02:44 SyNotHere [Syloq@Nightstar-25230.hsd1.mn.comcast.net] has quit [Connection reset by peer]
02:44
< takyoji>
you mean $500-$600 alone for an installation disc
02:44
<@ToxicFrog>
So, if I want a shitty UI, I have a mac emulator; if I want a pointlessly shiny window manager, I have XGL, which is not only free but runs flawlessly on five year old hardware; and if I want to game on an OS that /doesn'
02:44
<@Mahal>
Yes, takyoji
02:45
<@ToxicFrog>
t/ grab 800MB of main memory just by booting, I have win2k.
02:45
<@Mahal>
Frog, OSX isn't actually a bad UI :P
02:45
<@ToxicFrog>
Mahal: it's an OS7 emulator.
02:45
<@Mahal>
HA.
02:45
<@Mahal>
*Ah.
02:45
<@Mahal>
Yes, that /does/ count as a shiity UI.
02:45 SyNotHere [Syloq@Nightstar-25230.hsd1.mn.comcast.net] has joined #code
02:46
<@ToxicFrog>
takyoji: well, for an installation license, ie, the disk + the right to install it on one machine.
02:46 * Mahal nods
02:47
<@ToxicFrog>
In actuality they have a price range going from something like $200 (uselessly crippled, only people who have had railway spikes blown through their heads in freak accidents will buy this) through $400 (useful for word processing and other boring, but sometimes important tasks) to $600 (useful for the only thing windows is ever useful for, gaming)
02:47 * Mahal nods
02:48 * Vornicus-Latens will be sticking with his mac, thanks.
02:49 * Mahal likes her mac too.
02:49
<@Mahal>
Especially cos it was FREE.
02:49
<@Mahal>
:D
02:49
<@Mahal>
(Go birthday presents!!)
02:49 * Vornicus-Latens bought his.
02:49
< Vornicus-Latens>
It's getting kinda old tho
02:49
<@Mahal>
I will be sticking with mac, I think
02:49
<@Mahal>
this is just such a shiny machine.
02:51 takyoji [~caleblang@Nightstar-25427.dhcp.roch.mn.charter.com] has quit [Quit: ]
02:52
<@ToxicFrog>
I have one use, and one use only for macs, and that's Pathways Into Darkness.
02:52
<@ToxicFrog>
Hence the mac emulator.
02:54
<@ToxicFrog>
Well, actually, not quite true.
02:55
<@ToxicFrog>
An OSX box might be handy for crossplatform testing.
03:14 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
03:15 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
03:15 mode/#code [+o Chalcedon] by ChanServ
03:51 ReivUni [~82d94c4d@85.219.239.ns-22164] has joined #Code
05:04 ReivUni [~82d94c4d@85.219.239.ns-22164] has quit [Quit: Classtime.]
06:32 Thokk is now known as EvilDarkLord
06:55 ReivClass is now known as Reiver
07:29 * Reiver scribbles.
07:29 Raif [~corvusign@Admin.Nightstar.Net] has joined #Code
07:30 mode/#code [+o Raif] by ChanServ
07:30
<@Raif>
Whatcha need?
07:31
< EvilDarkLord>
Cookies.
07:31 McMartin [~mcmartin@Nightstar-8994.dsl.pltn13.pacbell.net] has joined #code
07:31 mode/#code [+o McMartin] by ChanServ
07:31
<@Raif>
Reiver invited me in...
07:31
< Reiver>
Yup.
07:31
< Reiver>
And now I invited the other one that is apparently awake.
07:31
<@Mahal>
Wassup, Reiver?
07:31
< Reiver>
My new assignment...
07:31
<@Mahal>
Hehe.
07:31
< Reiver>
So, I'm meant to program an organiser/scheduler software thingy.
07:32
<@Mahal>
(Calendar, lad.)
07:32
< Reiver>
(Right, that thing.)
07:32
< Reiver>
In Java, with a GUI, and using All The OO You Can Eat.
07:32
< Reiver>
I'm currently trying to get my head around just how many thousand objects I'm meant to have.
07:33
< Reiver>
The actual assignment is http://www.cs.waikato.ac.nz/Teaching/COMP209B/assignments/Assignment2.pdf
07:33
< Reiver>
And surprisingly brief. I get the impression that as long as it works, they don't much care about the specifics - which implies that getting it to work is going to be a PITA.
07:34 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: brb]
07:34
< Reiver>
I am thinking that obviously, I need an... Event object, or something better named, for each individual entry. This would hold the start/end times, importance, name? and the descriptive text, I'm assuming.
07:35
<@Raif>
Hold on, I can't pay attention yet.
07:35
< Reiver>
NP.
07:36
<@Raif>
Sorry, lyn was trying to pass the buck to me. :)
07:36
<@McMartin>
Uh, so have they actually taught you any GUI programming, or did they just chuck the thousand pages of Swing spec at you and say "sink or swim"?
07:37
<@Raif>
Lemme install a PDF reader. :P
07:37
< Reiver>
We've been taught the extreme basics of Swing and EventListeners and other button pariphenalia.
07:37
< Vornicus-Latens>
...so, uh
07:37
< Vornicus-Latens>
sink or swim.
07:37
< Reiver>
Basically. >.>
07:37
< Vornicus-Latens>
Cute.
07:38
< Reiver>
Well, we've been taught how to put buttons on panels and the difference between BorderLayout and FlowLayout and BoxLayout...
07:38 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
07:38 mode/#code [+o Mahal] by ChanServ
07:38
< Reiver>
And the basics of embedding images, vector graphics, and other such basics.
07:39
<@Raif>
...
07:39
<@McMartin>
My idea of "basics" is clearly very different from theirs.
07:39
<@Raif>
Refresh me, swing is NOT the language flash uses, is it?
07:39
<@McMartin>
No.
07:39
<@McMartin>
Swing is the default Java library that doesn't utterly suck.
07:39
<@McMartin>
As much as any GUI library can fail to utterly suck.
07:39
<@Raif>
Ah.
07:40
<@McMartin>
As far as I'm concerned, the only correct way to write GUI code is with a code generator.
07:40
<@Raif>
Yeah, I haven't used one I'm happy with yet... though ATL does a decent enough job.
07:40
< Reiver>
Ah. I get to do it the hard way then. >.>
07:40
<@McMartin>
Glade/GTK is my current favorite.
07:40
<@Raif>
Haven't had any experience with Glade.
07:40 * Vornicus-Latens needs to learn Glade.
07:41
< EvilDarkLord>
Did they actually bar you from using code generators, Reiver?
07:41
< Reiver>
EDL: They'll be marking the quality of our code, and haven't taught us how to use a code generator.
07:41
< Reiver>
Ergo...
07:41
<@McMartin>
There aren't any good Java-based generators, anyway.
07:42
<@McMartin>
GTK is a crawling cthulhoid horror. Glade wraps it in a paintbox interface and then renders GTK windows based on XML specs generated by said paintbox.
07:42
<@McMartin>
It's a C/C++ thing primarily.
07:42
<@McMartin>
Serious Java applications appear to favor SWT, but that's mostly a thin wrapper around the aforementioned crawling cthulhoid horrors.
07:43
< Vornicus-Latens>
SWT is what Eclipse, Azureus, and Resmark use.
07:43 * Raif hisses at XML.
07:43
< Reiver>
We've not yet been taught how to write files yet either. This is predicted to be the Next Thing To Learn though, as it's about two chapters further into the textbook than we already are, so~)
07:43
<@Raif>
Reiver: How do you feel about learning that on your own ahead of time?
07:44
<@Raif>
18 october? Shit, you've got over a month...
07:45
< Reiver>
Raif: Given we go through about a chapter per lecture, I'm more inclined to just wait till the end of the week?~
07:45
< Reiver>
Aye.
07:45
< Reiver>
I'm, uh. I generally start early.
07:45
<@McMartin>
*cough*
07:45
<@Raif>
Ok, you're not on the schedule that I was assuming. :)
07:45
< Reiver>
But last time I started early, asked for help late.
07:45
<@McMartin>
File writing is fairly easy, all told.
07:45
< Reiver>
And ended up crunching and panicing and asking more stupid questions than was fair to ask.
07:45 * Raif is used to classes where they give you no more than 2 weeks and the entire point is to overload you with a month's work.
07:45
< Reiver>
So this time, I'm admitting my stupidity early~
07:46
<@McMartin>
Any object that implements Serializable -- and that's most of the important ones -- you can just jam into an ObjectOutputStream.
07:46
< Reiver>
Raif: Given the way our course structures work, they'd probably get hanged for that.
07:46
< Reiver>
(As everything is going to be due the week of October 18. It's the week before exams.)
07:47
<@Raif>
Honestly, I think those classes are the ones that did the most for me. All the others I skated through without effort and learned nothing. These I had to apply effort and learned quite a lot about scheduling and maintainability. :)
07:47
< Reiver>
Raif: Well, the general assumption is that you'll leave it to the last minute anyway.
07:47
<@Raif>
(maintainability because every assignment built off the previous one, meaning that if you failed the first you were almost guaranteed to fail the class because you'd never make up the shortcoming)
07:48
< Reiver>
But if they give it to us now, we can't protest 'workload' as an excuse for an extension later. :p
07:48
< Reiver>
(Clever. Ours are, uh, start-from-scratchers until third year, IIRC.)
07:48
<@Raif>
That never flew for us either, though it was a valid excuse. The worst class, about 80% failed. I got a little better than a B (3.0 out of 4)
07:49
<@Raif>
I agree, it was clever. Not remotely fair, but it's the education I was looking for. :)
07:49
< Reiver>
Raif: ...an 80% fail rate in a second year paper would get the lecturer in trouble. >.>
07:49
<@McMartin>
(We handed out Working Solutions after each project ended.)
07:49
<@McMartin>
(Compilers tend to be kind of cumulative.)
07:50
<@Raif>
This lecturer was good enough in his field that even though he was reprimanded, repeatedly, he didn't much care.
07:50
<@Mahal>
Reiver, you are a lucky bastard.
07:50
<@Mahal>
EVERY pogramming project I ever had built on previous ones through the course.
07:50
< Reiver>
Mahal: Interesting.
07:50
<@Raif>
Ass teacher, to be honest, if you succeeded you pretty much had to teach yourself what you needed to know, but meh... in college, 85% of what you're paying for is motivation.
07:50
< Reiver>
I'd quite like it if they did that.
07:51
<@McMartin>
We had a professor like that at Berkeley.
07:51
<@Raif>
Reiver: Yeah, gives you a chance to shine and pull ahead if you know how to code. :P
07:51
<@McMartin>
The Student Shadow Government tended to go out of its way to warn frosh about him.
07:51
< Reiver>
...I must wonder if it's the way our courses are so heavily modular.
07:51
<@McMartin>
He'd teach every other term, because he'd be suspended after failing half his class for no good reason each time he taught it, but he could not be fired.
07:51
< Reiver>
Everything is required to be semesterised and modular and able to be compared to the national standard and and and... >.>
07:52
<@Raif>
Our admins stopped inflicting Ghali (for that is his name) on the underclassmen... right after I finished my underclass work.
07:52
< Reiver>
(Also worth noting: NZ doesn't have tenure, IIRC.)
07:52
< Reiver>
(So if you're a crap lecturer, you find another job. >.>)
07:52
<@Raif>
So I thought I was done with him after year 2, and then he started doing year 3-4 stuff. :P
07:52 * McMartin understands the general need for it, especially at research universities such as Berkeley.
07:53
<@Raif>
McMartin: Tenure?
07:54 * Reiver does note, mind you, that NZ has significantly more labour-friendly laws than the US, so whilst there may not be tenure, there /is/ a greater deal of job stability otherwise?
07:54
<@Raif>
Depends what you do.
07:54
< Reiver>
Well, you can't fire someone without 'just cause', fair warning, etc etc.
07:54
<@Raif>
In our school, not even a petition circulated and signed by most of the student body, REPEATEDLY, could get a non-tenured prof. fired.
07:54
<@Raif>
Oh how we tried...
07:54
< Reiver>
...Ow.
07:55
<@Raif>
He's senile and painfully ignorant.
07:55
<@McMartin>
Raif: Yes. More particularly, you do not want pinhead administrators firing people doing Real Work because their research isn't buzzword-compliant enough.
07:56
<@McMartin>
This goes at least triple or quadruple when a sizable fraction of the pinhead administrators work for the American Government.
07:56
<@Raif>
Example: He understands the Heisenburg uncertainty principal to mean that "If you can't observe something, you don't know where it is, ergo if you all face the front of the room and don't look at me, I can walk through a wall. There was a very, very loud thump from the back of the room.
07:56
<@Raif>
McMartin: At the same time, you don't want to keep on teachers that suck because they're doing good research. They shouldn't be teaching.
07:56
<@McMartin>
Ideally, you shunt them to things they're good at.
07:57
<@McMartin>
I didn't say the system was ideal.
07:57
<@McMartin>
Merely mostly necessary.
07:57 * Reiver nods.
07:57
<@McMartin>
Berkeley had professional lecturers, too, but they weren't noticably more stable than the researchers.
07:57
<@Raif>
I'm not sure I agree. Why do you need to keep researchers on as teachers at all?
07:57 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: It's hard to be mad at someone who misses you while you're asleep. ]
07:58
<@McMartin>
Well, most highest-level courses are "professors show up and talk about the various bits of research they've been doing"
07:58
<@McMartin>
And even midlevel ones are expected to expose you to something on the bleeding edge, at least in CS.
07:58
<@McMartin>
For my OpenGL class, this wound up actually being unusual developments in high-speed photography.
07:58
<@Raif>
Ours did, but in the way that they brought in experts to teach, and they taught (AFTER being in the field and doing Real Work)
07:58
<@McMartin>
(Hey, it's "computer graphics"...)
07:59
<@McMartin>
I'm defining "Real Work" by the Ivory Tower standard here~
07:59
<@Raif>
We had some pretty cutting edge graphics stuff... graphics is more or less my school's specialization.
07:59
<@Raif>
though physics is starting to become a real option for focus.
07:59 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
08:00 mode/#code [+o Mahal] by ChanServ
08:00
< Reiver>
Waikato seems to be doing a lot on internet/security.
08:00
<@Raif>
Yeah... I don't have much use for pure theory research... If you haven't implemented it, your research is only half done.
08:00
<@McMartin>
IME, the theory people eat more cycles than anyone else.
08:00
< Reiver>
I suspect it has something to do with being NZ's first internet gateway, although there is a distinct chicken and egg effect there I think~
08:00
< Reiver>
(So sad that they sold it off. ;_;)
08:00
< Reiver>
(Cheap internets ftw before then!)
08:01
<@Raif>
So, your assignment... did you get what you needed?
08:02
< Reiver>
Uh. I didn't actually ask the question yet. :)
08:02 * Reiver tries to find it.
08:02
<@McMartin>
To answer the question you implied, load/save stuff is handled by the various subclasses of java.io.InputStream and java.io.OutputStream.
08:02
< Reiver>
load/save doesn't bother me.
08:02
< Reiver>
More... general program structure?
08:03
< Reiver>
Ok. Uh. I have a calender/scheduler thing. There will be an "Entry" class or some such for entries into the calenders.
08:03
<@Raif>
In something like this? Are you familiar with Model/View?
08:03
< Reiver>
...I remember the name vaugely, which implies 'probably'.
08:03
< Reiver>
(Memory impairment. Names + me = not get along.)
08:04
<@Raif>
Your data and your GUI are seperate entities. Design your data to flow easily, build your UI on top... don't let your data depend on your UI at all.
08:04 * Reiver nods.
08:04
<@Raif>
In other words, build this thing so it works in a console, then build your GUI after it works.
08:05
< Reiver>
Right.
08:05
<@McMartin>
The appropriate buzzword for this is "Model/View/Controller architecture", but the "Controller" side of things is pretty much handled by the guts of JFrame and friends.
08:05 * Raif nods.
08:05
<@Raif>
Controller is usually a non-entity in simple stuff like this. :P
08:05
< Reiver>
So I make a database, so to speak, and then let the UI just display and provide easy access to modifying it?
08:05
<@Raif>
Pretty much.
08:06
< Reiver>
Right.
08:06
<@Raif>
Though be careful with the word "database". :P
08:06 * Reiver flails. You know what he means. >.>
08:06
<@Raif>
I do.
08:06
< Reiver>
Hm.
08:07
< Reiver>
So I have an Entry object, or some such name. This stores, well, everything in that list for the entries, I think.
08:08
<@Raif>
ok, and you need to search by all fields (thus access/index by all fields)
08:08
< Reiver>
I then have a Calendar object, which at the least holds the name of the calendar and a method for digging up which Entries belong to it, and at most actually stores the Entries themselves?
08:08
<@Raif>
well, not index by all fields.
08:08
<@Raif>
So think about how you organize a calendar.
08:08
<@Raif>
Generally it's chronological, and everything else is tacked on as extra data, right?
08:09
<@Raif>
So perhaps index and sort by start date/time and allow easy access to everything else... you don't need high performance, so you can pretty much iterate through every event when you search, I assume?
08:10 * Reiver nods.
08:10
<@Raif>
In other words, all you need is a list of these entries to start with.
08:11
<@Raif>
You might want to enclose that into a more specific collection (as you mentioned, a Calendar), with which you can sort, pull subsets, etc (like: Gimme every event in October)
08:11
< Reiver>
Hmm.
08:11
<@Raif>
or give me every event on October 13th (which happens to be a friday... heh)
08:12
< Reiver>
So basically all the Calendar objects are is a name and a set of search criteria?
08:12
<@Raif>
Clarify?
08:12
< Reiver>
Er. The scheduler has to be able to use multiple calendars.
08:12
<@Raif>
(Lemme know if I'm talking to much, I'm mostly just prodding you to something you can run with)
08:12
< Reiver>
So you can have one for 'work', and 'home'.
08:13
< Reiver>
Er. *and one for 'home'.
08:13
< Reiver>
And you can save and load a calender, and do so individually.
08:13
<@Raif>
Sure, you can have a collection of calendars like that pretty easily.
08:14
<@Raif>
The thing that's important about this setup is that it's simple, all your relations are one-way.
08:14
< Reiver>
Hrm.
08:15
<@Raif>
(An event doesn't need to know it's parent calendar, a calendar doesn't need to know its parent collection, or even necessarily its name)
08:15 * Reiver tries to think just what each class would hold. Are the Entries standalone from the Calendar, or does the Calendar store them?
08:15
< Reiver>
...Ah.
08:16
<@Raif>
So think of a calendar as a collection, a specialization of a list that knows a little bit more about its held data.
08:17
<@Raif>
So yeah, I run at the mouth a bit. :) All you need to know is to keep it simple, and don't think of it as a relational database because you'll overengineer it to the point of madness.
08:17
< Reiver>
Right.
08:17
< Reiver>
The thing that I'm just trying to work out is, er, the relationship between Entries and Calendars.
08:18
< Reiver>
Are Entries completely standalone, or are they actually objects stored inside a Calendar?
08:18
<@Raif>
Is there any reason they can't be standalone chunks of data?
08:19
< Reiver>
This is the sticking point. I'm not sure.
08:19
< Reiver>
Because I need to be able to load and save seperate Calendars.
08:19
< Reiver>
Which suggests that no, they can't be standalone, because when you save a Calendar, the entries need to go along with it.
08:19
<@Raif>
Why can't an entry make itself serializable?
08:19
< Reiver>
Beg pardon?
08:19
<@Raif>
Then all the calendar has to do is shove the entry into the data stream.
08:20
<@Raif>
(the entry object is serializable means that it can convert itself independently into a series of bytes that can get stored into a file)
08:20
<@Mahal>
Feel free to tell me I'm talking ass, folks, but:
08:20
<@Mahal>
Entry is a standalone
08:20
<@Mahal>
Each calendar knows what entries it needs to bring up.
08:20
<@Mahal>
Does that make sense?
08:20
<@Raif>
Exactly.
08:21 * Mahal notes she is /not/ a java programmer.
08:21
< Reiver>
That's the first model I'm pondering.
08:21
< Reiver>
The second model being that Entries are stored /within/ Calendars.
08:21
<@Mahal>
Makes it hard to bring up an entry that belongs to two calendars though
08:21
<@Raif>
So here's what I'll tell you: Entries are standalone, as are seperate calendars (though they of course have to know about entries).
08:21
<@Raif>
If you run into a case where this doesn't look to be true, you need a refactor.
08:22
<@Raif>
Should there be a need for entries to belong to two calendars?
08:22
< Reiver>
There's not strictly any need for two-calenders, no.
08:23
< Reiver>
And when I think about it so long as someone didn't try to move a calender, it wouldn't hurt to have entries being seperate from the calender.
08:23
< Vornicus-Latens>
Entries are standalones -however, they must be serializable in a way that you can tell where one entry begins and another ends.
08:23
<@Raif>
And even if there is, you could just as easily store a seperate list of entries, index them by unique ID, and have calendars store a reference to that piece of data instead of the data itself.
08:23
< Vornicus-Latens>
Calendars are standalones, and serialize their entries when they get serialized.
08:24
< Reiver>
Right! So are, er, filters in a sense. "Find and output all entries between date X and date Y".
08:24
<@Raif>
Yep.
08:24 * Reiver nods.
08:24
< Reiver>
Hm.
08:24
<@Raif>
And also "Find all entries with X text in any particular field representation)
08:25 * Reiver nods. Ponders.
08:25
< Reiver>
If I arrange things right, the search function should be 90% of the program (other than the bastard of a GUI). Hm.
08:25
<@Raif>
pretty much.
08:26
<@Raif>
the text search will probably take up most of that.
08:26
<@Raif>
search by date should be trivial.
08:26
< Reiver>
So... entries are entries. Cool enough. Stored in an Arraylist within the program; outside the program... Eh, I shall have faith we'll be taught that, so I won't think about it yet.
08:29
<@McMartin>
Heh.
08:29
<@Raif>
Yep, you seem like you've got a good handle on it now.
08:29
<@McMartin>
If you are careful about how you set things up, you may be able to just tell Java "Write this object and all those that it refers to to a file, plz"
08:30
<@McMartin>
And then later, "read one of these here Objects in, plzkthx"
08:30
<@McMartin>
For file i/o of all of three or four lines.
08:32
< Reiver>
McM: I suspect I'd follow that better once I've learned the nuances of the I/O.
08:32 * Reiver ponders, fiddles in his head.
08:33
<@Raif>
Yeah, if you don't understand serializable yet, wait for that lecture, worry about actually storing the data in file a bit later... if he still doesn't cover it, google to the rescue.
08:33 * Mahal has amusing mental image of Reiver inserting screwdriver in ear for emergency adjustment
08:33
<@Raif>
Hehe
08:34
< Reiver>
There isn't really a 'hard part' to this (Other than getting a really solid search function set up for ArrayLists, if done right I can /hopefully/ only have the one, but I'm not certain of that point yet), but it'll be the GUI that is the really /tedious/ part, right?
08:34
<@McMartin>
Yeah
08:34
<@McMartin>
Though getting to "good enough" is easier than getting it, you know, right.
08:35
<@Raif>
Yeah, I doubt he'll expect miracles on GUI... you know what they say about letting engineers near the interface.
08:35 * Reiver nods.
08:36 * Reiver has a few mental images, and suspects he will be abusing the Panels function unless something better comes up.
08:36 * Reiver ponders.
08:36
<@Raif>
So long as it has all the features required...
08:37
< Reiver>
Is there a straightforward way to get the monthly views working right? It sort of needs a table.
08:37 * Reiver hopes java can handle tables cleanly [enough] somehow...
08:38
< Reiver>
Failing that I need to think how the hell to get a 7x5 grid with empty squares at beginning and end. >.>
08:40 You're now known as TheWatcher
08:40
<@McMartin>
GridLayout ftw.
08:42
< Reiver>
...Thank heavens.
08:42
< Reiver>
OK.
08:43
< Reiver>
Then I think I got it. Or at least enough to start scribbling general plans tonight.
08:43
< Reiver>
Thankye for the help. :)
08:43 * Reiver will no doubt continue to bug as time goes on. >.>
09:16
<@Raif>
No problem.
09:29 Reiver is now known as ReivDishes
10:09 himi-heading-to-work is now known as himi
11:35 ReivDishes is now known as Reiver
12:02 Reivles [~reaverta@IRCop.Nightstar.Net] has joined #Code
12:03 Reiver [~reaverta@IRCop.Nightstar.Net] has quit [Ping Timeout]
12:04 Reivlin [~reiver@Nightstar-28251.ubs-dsl.xnet.co.nz] has quit [Ping Timeout]
12:04 Reivlin [~reiver@Nightstar-2471.ubs-dsl.xnet.co.nz] has joined #Code
12:27 You're now known as TheWatcher[swim]
12:50 Reivles is now known as Reiver
13:18 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
13:18 mode/#code [+o Chalcy] by ChanServ
13:19 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
13:25 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: The computer, she is snoring now.]
13:45 You're now known as TheWatcher[wr0k]
14:14 EvilDarkLord is now known as EvilNromLord
15:21 EvilNromLord is now known as EvilDarkLord
15:42 Reiver is now known as ReivZzz
16:00 ReivZzz is now known as ReivSLEP
16:02
<@Chalain>
Okay, I need some PHP-fu. Given the presence of system() on the server, I'll also accept perl-fu, python-fu, or ruby-fu.
16:03
<@Chalain>
I know how to do what I need done, but not off the top of my head, and I don't have time to research it.
16:04
< ReivSLEP>
...I can't help, but Mahal might be able to in five hours when she wakes up... *cough* Sorry.
16:05
<@Chalain>
I have an html file that has two tags in it, <!-- BEGIN BLOG --> and <!-- END BLOG -->. Between these tags is the contents of Howard's blog. I have an html file that contains only the contents of the blog, which Howard can now update at the push of a button.
16:05
<@Chalain>
I need scriptage that will open the html file, rip out everything between those tags, and replace them with the new contents.
16:06
<@Chalain>
In perl, this is a one-liner if I could just remember the flag to s/// that says "multi line compare".
16:11
<@TheWatcher[wr0k]>
s///s
16:12
<@TheWatcher[wr0k]>
the s flag lets . match newline.
16:13 * Vornicus-Latens considers bash-fu.
16:13
<@TheWatcher[wr0k]>
so $page =~ s/$start.*$end/$start$body$end/s; should work...
16:16
<@Chalain>
Vornicus-Latens: you're gonna haul out that nasty-ass sed script, aren't you. :-)
16:17 You're now known as TheWatcher
16:17
<@TheWatcher>
Vorn should be in bed ;P
16:17
< ReivSLEP>
So should I!
16:17
< ReivSLEP>
>.>
16:17
< ReivSLEP>
(ni)
16:18
< EvilDarkLord>
Ni. And stay down :)
16:18 ReivSLEP is now known as ReivSLEPforRealDamnit
16:18
<@Chalain>
Actually, vorn should be AT WORK
16:18
< ReivSLEPforRealDamnit>
...
16:18
<@Chalain>
muhuhahaha.
16:18
< ReivSLEPforRealDamnit>
tsk
16:18
< ReivSLEPforRealDamnit>
>.>
16:18
< ReivSLEPforRealDamnit>
(bye)
16:18
<@Chalain>
nini Reiv
16:18
<@TheWatcher>
Ah, oh. Ahwell
16:18
<@TheWatcher>
(ohyes, he works for you now, don't he?)
16:19 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
16:19
<@Chalain>
For sufficiently "not showing up in the morning" values of work, yes. :-P (He's actually not due for another 45 minutes)
16:19 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
16:19 mode/#code [+o ToxicFrog] by ChanServ
16:19
<@TheWatcher>
Pfft
16:20
<@TheWatcher>
Poor vorn, you've fallen in with a slave driver there ;D
16:20 * TheWatcher flrrrd
16:20
<@Chalain>
It's true, it's true.
16:21
<@Chalain>
Erk, what's perl for "read the whole file into a variable"? Something like FILE = ??mumble??; @contents = <FILE>
16:22
<@TheWatcher>
I just do
16:22
<@Chalain>
(actually what I've forgotten is perl for "fopen()"
16:22
<@Chalain>
)
16:22
<@TheWatcher>
open(FILE, $filename); $/ = undef; my $file = <FILE>; $/ = "\n"; close(FILE);
16:23
<@TheWatcher>
$/ = undef; removes the input record seperator, otherwise <FILE> will only read a line at a time.
16:24
<@Chalain>
Ahh, ok. Hmm, just found a similar thing on perl.com. Ah, this is a bit cleaner, it doesn't leave $/ dirty (you don't know it was set to "\n" when you started): 'local $/; my $foo=<FILE>;'
16:25 * TheWatcher nods
16:27
<@Chalain>
perl -e 'open(F, "blogtest1.html"); local $/; $cx=<F>; close(F); open(F, "blogdata1.html"); $bx=<F>; close($bx); $cx=~s/(\n)?\<\!-- BEGIN BLOG --\>.*\<\!-- END BLOG --\>(\n)?/\n<!-- BEGIN BLOG -->\n$bx<!-- END BLOG -->\n/s; print $cx;'
16:28
<@Chalain>
That seems to work.
16:31
<@TheWatcher>
You should be able to do \n? instead of (\n)?, and you don't need to escape the angle brackets or !
16:31
<@TheWatcher>
(least, I'm pretty sure you don't anyway)
16:32
<@Chalain>
seems to work.
16:32
<@Chalain>
Yup, worky.
16:32
<@Chalain>
perl -e 'open(F, "blogtest1.html"); local $/; $cx=<F>; close(F); open(F, "blogdata1.html"); $bx=<F>; close($bx); $cx=~s/\n?<!-- BEGIN BLOG -->.*<!-- END BLOG -->\n?/\n<!-- BEGIN BLOG -->\n$bx<!-- END BLOG -->\n/s; open(F, ">blogtest1.html"); print F $cx; close(F);'
16:33
<@TheWatcher>
And if you want to shorten it even more... perl -e 'open(F, "blogtest1.html"); local $/; $cx=<F>; close(F); open(F, "blogdata1.html"); $bx=<F>; close($bx); $cx=~s/\n?(<!-- BEGIN BLOG -->).*(<!-- END BLOG -->)\n?/\n$1\n$bx$2\n/s; print $cx;'
16:34
<@Chalain>
Ahh, good call.
16:35
<@TheWatcher>
(makes it easier to change the start/end markers if needed, too)
16:35
<@Chalain>
Better still, I can put the \n?'s inside and it will preserve the whitespacing (or absence thereof)
16:35 * TheWatcher nods
16:48 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
16:51 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
16:51 mode/#code [+o ToxicFrog] by ChanServ
17:00 Raif [~corvusign@Admin.Nightstar.Net] has quit [Killed (NickServ (GHOST command used by Raif_))]
17:00 Raif_ [~corvusign@Nightstar-7918.hsd1.mn.comcast.net] has joined #Code
17:00 Raif_ is now known as Raif
17:14 Vornicus [~vorn@Nightstar-18307.slkc.qwest.net] has joined #code
17:14 mode/#code [+o Vornicus] by ChanServ
17:18 You're now known as TheWatcher[afk]
--- Log closed Mon Sep 11 17:33:13 2006
--- Log opened Mon Sep 11 17:33:48 2006
17:33 TheWatcher[afk] [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code
17:33 Irssi: #code: Total of 18 nicks [7 ops, 0 halfops, 0 voices, 11 normal]
17:33 mode/#code [+o TheWatcher[afk]] by ChanServ
17:34 Irssi: Join to #code was synced in 23 secs
18:19 SyNotHere [Syloq@Nightstar-25230.hsd1.mn.comcast.net] has quit [Ping Timeout]
18:41 You're now known as TheWatcher
--- Log closed Mon Sep 11 19:37:41 2006
--- Log opened Mon Sep 11 19:41:01 2006
19:41 TheWatcher [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code
19:41 Irssi: #code: Total of 17 nicks [7 ops, 0 halfops, 0 voices, 10 normal]
19:41 mode/#code [+o TheWatcher] by ChanServ
19:41 Irssi: Join to #code was synced in 20 secs
20:00 You're now known as TheWatcher[afk]
20:22 * Vornicus has determined that he plays Minesweeper too much.
20:22
<@Vornicus>
167 seconds.
20:24 You're now known as TheWatcher
20:49 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
20:49 mode/#code [+o Mahal] by ChanServ
21:44 You're now known as TheWatcher[afk]
21:54 * Chalcy gives Vorn a cookie
21:54 Chalcy is now known as Calcedon
21:54 Calcedon is now known as Chalcedon
21:55 * Vornicus plays minesweeper on the cookie.
21:56
<@Chalcedon>
what are you looking for? the chocolate chips?
21:57 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has quit [Quit: The computer, she is snoring now.]
21:58 * jerith replaces Vorn's minesweeper with Frozen Bubble.
21:59
<@jerith>
By the way, you're spending a lot of time discussing minesweeper for someone whose boss is in-channel...
22:06
<@Vornicus>
:P
22:10
<@jerith>
topic Welcome to #Code. It's like Swiss bank accounts, but for NS coders! | Yay for the southern hemisphere! | Stoatburger! | Discussing your minesweeper playing while your boss is in channel may be a career-limiting move.
22:11
<@ToxicFrog>
Who's Vorn's boss?
22:11
<@jerith>
Chalain. :-)
22:12
<@jerith>
Unless things have changed since I was last around?
22:20
<@Vornicus>
THings have not changed.
22:21
<@Vornicus>
Secretly, however, noni is my boss.
22:35 Mahal [~Mahal@Nightstar-13918.worldnet.co.nz] has joined #code
22:35 mode/#code [+o Mahal] by ChanServ
22:54
<@Vornicus>
oh look, what nice timing. Email is down.
--- Log closed Tue Sep 12 00:00:49 2006
code logs -> 2006 -> Mon, 11 Sep 2006< code.20060910.log - code.20060912.log >