Older blog entries for matman (starting at number 7)

Well, I'm waiting for a client to give the go-ahead to order a bunch of boxes for their in-office network... and in the meantime I'm reading up on stuff...

I wish that I was in university right now... I'm trying to pick up signalling (for networks and telecom and stuff) from some books, but I dont have the background to get all of it... One of the biggest questions that I have, is how do you fit more than one signal onto one wire - if you have more than one signal, how does the reciever sperate them out, since all the receiver sees is voltage going up and down. hmm.

Not much else going on.

Lately I've been looking at PAM, and I wish that unix programs would log error CODES not text. Writing stuff to parse out textual messages meant for human consumption is a pain in the ass. We need error codes, arguements, and THEN a textual message. Otherwise, PAM is cool. I had my box authenticating against a Windows 2000 domain controller at school just for fun, and I'm working on implementing more pain in the ass causing security policies with it :)

I was also looking at pptp. So far, most explanations havnt been too clear. My current understanding of it thus far, is that you make a tcp connection to a pptp server, and then encapsulate your packets in ppp, then gre, and then stick them into the tcp connection. For example, say you have a tcp segment, in an ip datagram, and want to send it out over the pptp tunnel; it'd look like this:

(ip (tcp (gre (ppp (ip (tcp (data)))))))

Correct me if I'm wrong, please. :)

On a more unrelated note... I was listening to the 'sunday night jazz show' which was on the local university radio station last week, and called in and won a cd, and was entered into a contest to win tickets to see Holly Cole in my home city, Stratford. And hey, I won! I don't think that I've ever won a contest before. And, infact, I won more than just tickets, I got a bunch of CDs of hers, and I get to meet her; and that's weird because I'm not really even a fan. hehe. I mean, I like her, but, not THAT much :) I'll probably just say hi, and that I don't have anything to say :)

Mazeone: The best way to build pages using templates, while still giving you a lot of flexability (that I've been able to come up with so far) is using an object oriented template.

for example...
class pageTemplate() {
function useTemplate($path)
This function loads a template

function registerKey($key, $value)
This function sets an array $array[$key] = $value

function renderPage()
This basically does an echo $this-returnPage();
exit;

function returnPage()
This function replaces all instances of each
key in the array with their respective values
and returns the composite

function renderError($errorCode)
Builds an error reporting page and prints the
$errorCode

So, it's pretty simple really. You can even use this to build menus from menu templates, and then plug that content into your page template.

The examples are in pseudo php btw. :) If you want further examples, you can email me (johnston@megaepic.com)

By the way, sorry for the non-indenting. I'm not sure how to tab stuff in on here. Ideas?

10 Nov 2000 (updated 10 Nov 2000 at 06:15 UTC) »

I wrote an article directed towards end users about network security - just a first draft so far. If anyone wants to read it, it's at http://www.megaepic.com:8086/~johnston/article.html. If anyone has suggestions/comments, feel free to email me at johnston@megaepic.com. Of course, I don't know where to publish such an article; anywhere where the target audience of my article and the site are the same would be good, but, where is such a place that would publish it? Oh well.

Tonite I'm rewriting some more of that exam program. Getting there. I get distracted a lot. I go thru phases of academic (reading), artistic (web design) and problem solving interests. In between, I get distracted lots, and progress is slow. Hopefully, I'll settle down soon :)

I have a leopard gecko. It's tank is beside me here... it really stares at people... especially my girlfriend - badass lizard. One night, as a joke, she put a cd case infront of the lizard so that it couldnt see her. A minute later she looked over, and the lizard was peering over the top of the case. It's also picky; it wont poop unless it's pooping area (it always poops in the same place) is free of old poop.

Oh, I also certified myself as apprentice, because I feel that I could learn a fair bit from discussions if I could participate in them, and this place seems like a place that I'll be spending time in more.

School again.

I'm playing with making a gtkrc theme. I'm wanting one like blueheart, but pixmap themes are too slow (refreshing). So, I'm writing a flat one. Too bad gtk doesnt do gradients in themes. Darker themes are easier on my eyes.

One thing that I discovered about windows 2000 over the past day, is that the mechanism that saves profiles to disk on logout does it irrispective of file permissions. You can set the files to immutable, but it'll still do it. I'd like to try it over a network connection. There's a program running as SUPER super user, that users pass data to. Silly. I wonder if you could use it to save/change other files on the disk? Really though, why didnt they just make it run as the user who is logged in? They're the only people that would need any write access. I tested this by setting all profile files to immutable (no write or modify) to all users, however, the system would still write it. Dumb.

Anyway, off for now.

I'm at school. They're teaching MS Active Directory stuff. I'm just thinking, "poor samba team." It must be disappointing for the developers that they havn't even got the NT PDC stuff done, and it'sobsolete now because lots of people are going to be moving to the AD stuff. Somehow, I think that it wouldbe more worthwhile to design some filesharing thing from scratch to compete with Windows based networking. Oh well.

More rewriting of the driving school testing program was done this weekend. I should have the main 'exam' object done soon.

The program is to be run via a web page. There's 1 class/object called Exam, which keeps the state of the exam (answers, questions, notes, state, time left, etc). It has some functions for beginning the exam, for scoring, for answering a question, for pulling various data out of a database, etc.

The design issues which the rewrite are intended to clarify are mainly error handling, and increasing ease of modification. It was my first project written in an OO fassion. Instead of using seperate files/pages (.php files) for each task/command, I wrote a 'conductor' object to take commands from the url, and do what needs to be done for each command. This sorta made the program ugly, hard to keep track of. Also, I have a template object for building a page. If there was an error in a called function, I was calling the renderError function in the page template instead of just returning an error and letting the client function deal with it. So this time, I'm writing each 'command' on it's own page and errors are returned as -1 by functions. Also, I'm passing an errorCode variable in reference to functions to let them return detailed error info. Hopefully this should improve things.

If anyone can tell me better ways of doing this stuff, feel free to tell me :) (johnston@megaepic.com)

But, yah. Not much else going on.

My friend, Mike, until recently a vegetarian, is a carnavore.

This is the meat consumption weekend. My girlfriend, who is a vegitarian, has left to visit her family. It's his chance to eat some meat, without her bugging him - not that she really would, but it's more fun to bug her.

Our plan is to make a roast chicken. We were going to make a roast chicken stuffed with a roast beef - which we may still, however we fear that the beef and the chicken won't jive flavor wise, and thus we may cook them seperatly. I think that I've come up with a rather innovative approach to chicken cooking. It results in a chicken with crispier skin, and tastier 'close to skin' meat. How, you ask? Well, I'm going to slit the skin of the chicken open along the spine, and seperate the skin from the body; this results in an envelope sort of. Then, a maranade/sauce is drizzled into the cavity.

The sauce was made by mixing sage, rosmary, paprica, curry powder, chilli powder, olive oil, salt, water, soya sauce, and black pepper and blended up into a paste. Then, seperating the liquid from solid herb. I end up with a semi-dry rub, and a sauce. But, I digress.

Then you stuff a bunch of stuffing (your standard onion, celery, sage, rosemary, butter and bread mixture) into the skin-flesh envelope. The herb rub is rubbed onto the outside of the chicken.

Tonite, we made a prototype out of a quarter chicken. It worked quite well actually.

Mike ate most of it... including the tendons, grizzle, and bone marrow.

Earlier meat consumption of the night included roast beef in a caribbean style tomato sauce, a stir fry with some beef in it, and 2 litres of jello (which contains gelatin). This reminds me of the time that we made a 4.5lb hamburger - the prophecy burger.

More on the topic of software development - hehe. I added some date parsing stuff to the course schedule program for the school today. It was pretty straight forward. Last night I rewrote a big method in my drivers training testing engine. It's the one that does the scoring of exams... I think that it's easier to read and maintain now; hopefully more stable too. I want to learn some proper techniques for enumerating possibilities when designing software - especially error handling stuff. Also, I'd be interested in learning how to handle errors in the most graceful manner. I imagine that it depends somewhat on the type of software you're writing.

It doesn't seem as if advogato provides a mechanism for responce/threaded discussion, especially within diary entries. Too bad.

My email is johnston@DONTSPAMMEPLEASEmegaepic.com (obviously remove the DONTSPAMMEPLEASE)

Well, thats it for this entry. Goodnight :)

First post ;) Funny, I've never done that before.

I'll introduce myself. I'm Mat, a 19 year old student in London Ontario. I was silly, and didn't work too hard in high school - too busy fiddling with other things. So, instead of being enrolled in university, I just use it's library. At the moment I'm enrolled in an MCSE course, because I know that if I don't have someone teach it to me, I wont learn windows 2000 very quickly, as I don't use MS operating systems anymore if I can help it.

The course is alright, but for the first month I found that I knew WAY more than the teacher. Now we're on to topics that she knows more about, which is less annoying. Fortunatly, I got money back for the first month, as it was pretty useless.

I'm actually doing the company's website. That's one of the things that I do - web sites. I think that I do them pretty well. Another project that I'm working on is a web based testing engine for a driving school. I'm focusing on backend functionality now, and cleaning my code up where I can. Infact, I'm rewriting a big piece of code that I had just finished - it didn't give me good vibes, so I'm cleaning it up. You know, defining object interfaces and data structures before coding anything, using more sane error handling, more error checking, general tidying.

I do most of my programming in PHP so far; I had gotten pretty good at TCL in the past though. I'm dabbling in C and Eiffel lately as well; Eiffel seems pretty neat, and it has been highly recommended to me. I hope that I can pick it up sometime soon.

I have a general direction in which I want my career to go. Network security. I'm trying to pick up a wide variety of knowledge and understanding so that I can comprehend how everything works togeather a little more fully.

I've got a big wad of cash from my parents to live off of for a few months, but I'll have to be getting a job soon. I hope that I'll be able to get one related to my interests that jives with my schedule.

Anyway, now you know a bit about me. Thanks for reading. :)

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!