A watch that is the mark of a true geek should have an anti-static grounding point on the band, so that you don't waste any time hunting for an anti-static wristband when the urge to start taking apart your computers strikes...
Anything else (calculator, GPS, biorhythm display) is just gravy...
quicktime sucks anyway with this sorenson shit - a codec you can smoke in a pipe...
Do you realize that sorenson is not the only codec that quicktime can use?
Personally, I've been using the open source vp3 codec for a lot of the videos I've encoded lately. In my opinion, it beats the free version of sorenson at moderate bit rates, and as the source code is available, someone should be able to plug it into one of the Quicktime frameworks that run under [Free,Open,Net]BSD or Linux.
Direct SQL is icky? Not if you grok functional languages.
I like SQL - I have no problems understanding SQL. I meant that statement in the sense that it feels more clean (to me) to call a stored procedures in the database from the outside, rather than sending the SQL statements to the database over and over.
It also serves as a handly layer of abstraction from your code, in the event that you want to make drastic changes to the structure of the underlying database.
Maybe I've just seen too much code with SQL commands scattered all over the place, doing the same thing in different fashions at different times, and using strange DB specific constructs at random.
I would prefer to keep the DB specific SQL extensions (if they must be used at all) in stored procedures in the database, and present a consistant interface of stored procedures to the external program. That way, you can support different databases, using the special features they each offer, by providing different database initialization files, and not require any changes to the main program.
You Said: Actually, this is not the fault of the database. If you mod a post that is already +5 up or mod a -1 post down you will lose
a mod point and the score will go unchanged (the moderation total values will increase though)
I Reply:
I have a hard time believing that this behavior
started out as a feature. I find it much more likely that it was initially a bug. This bug, being found useful was then elevated to the status of a "feature". You are correct that it is not the fault of the database, but transaction and constraint support at the database level would have made it easy to prevent this problem from ever cropping up in the first place.
You Said: the use of a transaction to record a moderation is fairly frivilous and probably more of a waste of CPU time than moderation point
I Reply:
For a system which recieves as much activity as Slashdot, and with a constant stream of friendly trolls looking for any crack in the system that they can use to share the sight of their favorite gaping asshole with the unwilling members of the rest of the population, if I were coding it, I would insist on inserting checks of basic constraints at different levels of the system. The database layer is your last line of defense against abuse of the system.
Secondly, these double checks are useful for finding errors in other levels of the system. Remember the problems that used to crop up from time to time with comments being moderated to -2 or to 6? If the value of the moderations was constrained in the database, not only would users not see this problem, but an error log generated (for the admins only) when a transaction is rolled back in a situaition where it is not expected would have helped isolate the fault very quickly.
The database level checks would also help against rogue activity of people in positions of (limited) trust. Worried about an editor editing one of their accounts to give themselves a huge number of modpoints? Cap the level in the database at 5; it would make it impossible for this nefarious subterfuge to take place.
As for the speed issue; if you are willing to sacrefice verification of correct operation for a small increase in speed, you have severly underspecified your hardware requirements.
Finally, I would like to include a small SQL fragment, showing some of the checks that I would feel are absolutely necessary for a web based discussion system that people are trying to subvert:
--First we create a table for a couple of users
CREATE TABLE "users" (
"uid" integer serial,
"mod_points" integer default 0,
"name" text not null,
CONSTRAINT "user_mod_const" CHECK (((mod_points > -1) AND (mod_points <
6)))
);
--now a table for some posts
CREATE TABLE "posts" (
"date" timestamp with time zone DEFAULT 'now()',
"pid" serial,
"parent" int4
"uid" int4,
"mod" integer DEFAULT 1,
"body" text not null,
"section" integer,
CONSTRAINT "mod_const" CHECK (((mod > -2) AND (mod < 6))),
CONSTRAINT "user_key" FOREIGN KEY (uid) REFERENCES users(uid)
on delete cascade
on update cascade
); -- the constraint to ensure parent is equal to zero, or another pid in the posts table is left to the reader.
--And now for a function to access them. (Remember - direct SQL is icky; run things through functions to ensure a consistant interface)
CREATE FUNCTION "mod_down" (integer,integer) RETURNS integer AS '
begin;
update users set mod_points=mod_points-1 where uid=($1);
update posts set mod=mod-1 where pid=($2);
commit;
select mod from posts where pid=($2);
' LANGUAGE 'sql';
As you can see, this nicely serves as a check to ensure the restrictions I mentioned above. With it being so trivial to add the checks, I can't see any reason to not take this extra step to eliminate nasty surprises.
Here's an example of why an ACID database is useful that hits close to all of our hearts - Slashdot moderation:
You may have noticed that if several people try to whack a troll at the same time, they all expend one moderator point, even if only a fraction of those points were required to push that troll down into the dreaded depths of -1.
If an ACID complient database were used, and the two steps of whacking the troll, and deducting the moderator points were placed in the same transaction (with a check constraint on the score of the posts to prevent them from dropping below -1) then the later moderators who tried to whack the troll would not have their points deducted, as the transaction would rollback when the constraint on the score of the post was exceeded.
Alas, mysql is not ACID complient, and so this sensless waste of moderator points continues to this day...
I hit submit rather than preview and neglected to add this:
There is a good background writeup on nixie tubes here on part of the WPS site.
Please don't bother moderating this up - it's at a high enough level that people will see it, and I've been at the cap for quite a while. (now, if someone were to flip my rtbl flag I'd be thankful...
The coolest looking nixie tube based clocks I've seen on the web are these over at World Power Systems. (Be sure to check out the Story Teller if you go to that site - extremely cool!)
How about (to make things a little more exciting) if you miss the ball without hitting n (a randomly selected number ) bricks, there is a 1 in 10 chance that your bootsector gets wiped.
It would really help increase average uptimes, as admins would find new and innovative ways to avoid having to reboot. Linux would reach the tops of the Netcraft uptime chart in no time!
No, I spent $45 on a very well designed knob shaped input device. The fact that it also makes an excellent volume control is (to me) just a bonus.
I love it - it's really amazing how many tasks are made easier by having a knob you can fiddle with.
When I'm grabbing frames from a video I took on vacation to make a QTVR file, I use left and right to pan through the track, and a click to save the current frame. If I'm actually editing the video, I reassign the click to split the current track.
For editing code, or using a console, I set left and right to the up and down arrows, and the click to return. It's great to twirl it with one finger, and use it to scroll through long documents, or to just give it a twist and a press to zip through my command history, and repeat a command I know I typed sometime in the past 10 minutes or so.
Music? Well, I must admit, it does make a very nice volume control...
That the Powermate is also a blinkenlight - you can adjust the pulse rate from stroboscopic, to a nice slow pulse of about 30 seconds for a cycle.
I have one - it rocks. In addition to it being a cool looking blinking object on my desk, I use it for scrubbing through video in iMovie, and scrolling through text in project builder. It is also, I admit, a great volume control for iTunes...
Well, curl -I http://www.codeweavers.com/~jwhite/tunney.html gives the following information:
Last-Modified: Tue, 22 Jan 2002 21:25:09 GMT
So I would assume that it is this upcoming monday, January 28th.
Perhaps legally, but this is not true in practice. I have crossed the US/Canada border several times without ever once presenting proof of citizenship
When driving, I've only needed to show both proof of identity and citizenship twice:
When I was traveling with a non-us citizen
When I ran into "Operation Power Play"
Since I live in Michigan, and often cross over into Ontario, the percentage of times I've needed both documents is tiny; however I was very glad I had them when I needed them.
If, on the other hand, you are flying into Canada, then (in my experience) the airline will not issue you a boarding pass, unless you prove both identity and citizenship. Additionaly, you will likely end up in customs with all of the other international arrivals, and go through the same checks as someone from (for example) Germany or the UK.
So, if you are flying, carrying these two slips of paper jumps from being a good idea to being essential.
As a US citizen crossing between the US and Canada, you need two things:
Proof of Citizenship
Proof of Identity
A drivers license serves as proof of identity, but not as proof of citizenship. You would need something else (such as a birth certificate) that proves citizenship (a birth certificate proves citizenship, but not identity).
A passport proves both citizenship and identity, so it's the easiest solution if you want to make sure you don't get held up at the border.
What you should do now is to let people's friend/foe lists build up for a while; once they've gotten complex enough, make a digraph of the friend/foe relationships, and sell posters.
It probably would look cooler than those internet map posters I see Thinkgeek advertise from time to time - plus there would be the added fun of trying to find your node in the graph!
So THAT is why Comcast was handing out self install kits with 2 months of free service at Lakeside a couple of weeks ago!
Let people have it for free while they expect to be down anyway - no money to refund, and they get people hooked on high bandwidth who would not normally have subscribed...
-Pathwalker (Also in Clinton Township)
For a while (about 6 months) whenever I had a telemarketer call, I would explain that
I was busy, and ask them for a number at which I could call them back.
Only one actually left a number - I looked it up on Google, and got a hit. It turned out that they were an artist, who I would assume was doing telemarketing as their day job. It really weirded them out
when I commented on one of their paintings when I called them back:-)
Nowdays, I don't deal with telemarketers - I leave the phone off the hook most of the day, as I work nights.
Spammers I just stick in/etc/smtp.cdb and never hear from again...
He mentions raising it from 4 - doesn't the LINT config have maxusers set to some really low value (4 sounds about right) ?
He probably just assumed that the settings in LINT
were the default settings, and copied them over. (unless he based his config off of LINT rather than GENERIC - but would that even boot? I've never tried it...)
I just added an external antenna to my airport last week - it was pretty easy; it took about 15-20 minutes.
A few things to keep in mind if you do it:
Carve a big chunk out of that black ring that supports everything - that plug takes more space than you might first guess.
Have the cable exit the outer shell on the other side of the airport from where the cable connector is - it is much easier to run the cable
around between the black framework and the outer shell instead of trying to get a tight enough bend in it to exit near the jack
Be careful not to scratch the inside of the plastic shell - scratches really show up
Signal strength seems much higher - I haven't gone for a long walk with my laptop yet, but I am at full strength in my yard rather than 50% strength.
You might want to check out the Apple Public Source License It is pretty close to what you want, although it is not GPL compatable. If you are writing your own, it might be a useful starting point.
There is a nice list of other licenses here - always a good spot to start exploring.
That would be really stupid. If the machine is not working anymore
Now, wouldn't it be nasty if the next worm did something really really destructive, iff it noticed
that some set of security patches had been installed; otherwise, it would just spread normally.
This might help it preserve it's ecosystem (unpatched IIS systems) by discouraging people from installing security patches unless they make sure that there is no way for the worm to get in.
Even that wouldn't concern me very much - spreading and wiping out systems is not actually the most destructive action that can be taken. What scares me, is the possibility of a worm designed to be hard to notice, that just changes data and erases all traces that it was there. - changing a few numbers on a spreadsheet, changing tolerances in an engineering design.
Little things, that might be nothing, but might result in a company being closed down for tax law violations, or a bridge collapsing decades in the future.
A watch that is the mark of a true geek should have an anti-static grounding point on the band, so that you don't waste any time hunting for an anti-static wristband when the urge to start taking apart your computers strikes...
Anything else (calculator, GPS, biorhythm display) is just gravy...
quicktime sucks anyway with this sorenson shit - a codec you can smoke in a pipe...
Do you realize that sorenson is not the only codec that quicktime can use?
Personally, I've been using the open source vp3 codec for a lot of the videos I've encoded lately.
In my opinion, it beats the free version of sorenson at moderate bit rates, and as the source code is available, someone should be able to plug it into one of the Quicktime frameworks that run under [Free,Open,Net]BSD or Linux.
Direct SQL is icky? Not if you grok functional languages.
I like SQL - I have no problems understanding SQL. I meant that statement in the sense that it feels more clean (to me) to call a stored procedures in the database from the outside, rather than sending the SQL statements to the database over and over.
It also serves as a handly layer of abstraction from your code, in the event that you want to make drastic changes to the structure of the underlying database.
Maybe I've just seen too much code with SQL commands scattered all over the place, doing the same thing in different fashions at different times, and using strange DB specific constructs at random.
I would prefer to keep the DB specific SQL extensions (if they must be used at all) in stored procedures in the database, and present a consistant interface of stored procedures to the external program. That way, you can support different databases, using the special features they each offer, by providing different database initialization files, and not require any changes to the main program.
You Said:
Actually, this is not the fault of the database. If you mod a post that is already +5 up or mod a -1 post down you will lose a mod point and the score will go unchanged (the moderation total values will increase though)
I Reply:
I have a hard time believing that this behavior started out as a feature. I find it much more likely that it was initially a bug. This bug, being found useful was then elevated to the status of a "feature".
You are correct that it is not the fault of the database, but transaction and constraint support at the database level would have made it easy to prevent this problem from ever cropping up in the first place.
You Said:
the use of a transaction to record a moderation is fairly frivilous and probably more of a waste of CPU time than moderation point
I Reply:
For a system which recieves as much activity as Slashdot, and with a constant stream of friendly trolls looking for any crack in the system that they can use to share the sight of their favorite gaping asshole with the unwilling members of the rest of the population, if I were coding it, I would insist on inserting checks of basic constraints at different levels of the system. The database layer is your last line of defense against abuse of the system.
Secondly, these double checks are useful for finding errors in other levels of the system. Remember the problems that used to crop up from time to time with comments being moderated to -2 or to 6? If the value of the moderations was constrained in the database, not only would users not see this problem, but an error log generated (for the admins only) when a transaction is rolled back in a situaition where it is not expected would have helped isolate the fault very quickly.
The database level checks would also help against rogue activity of people in positions of (limited) trust. Worried about an editor editing one of their accounts to give themselves a huge number of modpoints? Cap the level in the database at 5; it would make it impossible for this nefarious subterfuge to take place.
As for the speed issue; if you are willing to sacrefice verification of correct operation for a small increase in speed, you have severly underspecified your hardware requirements.
Finally, I would like to include a small SQL fragment, showing some of the checks that I would feel are absolutely necessary for a web based discussion system that people are trying to subvert:
--First we create a table for a couple of users
CREATE TABLE "users" (
"uid" integer serial,
"mod_points" integer default 0,
"name" text not null,
CONSTRAINT "user_mod_const" CHECK (((mod_points > -1) AND (mod_points < 6)))
);
--now a table for some posts
CREATE TABLE "posts" (
"date" timestamp with time zone DEFAULT 'now()',
"pid" serial,
"parent" int4
"uid" int4,
"mod" integer DEFAULT 1,
"body" text not null,
"section" integer,
CONSTRAINT "mod_const" CHECK (((mod > -2) AND (mod < 6))),
CONSTRAINT "user_key" FOREIGN KEY (uid) REFERENCES users(uid)
on delete cascade
on update cascade
);
-- the constraint to ensure parent is equal to zero, or another pid in the posts table is left to the reader.
--And now for a function to access them. (Remember - direct SQL is icky; run things through functions to ensure a consistant interface)
CREATE FUNCTION "mod_down" (integer,integer) RETURNS integer AS '
begin; update users set mod_points=mod_points-1 where uid=($1);
update posts set mod=mod-1 where pid=($2);
commit;
select mod from posts where pid=($2);
' LANGUAGE 'sql';
As you can see, this nicely serves as a check to ensure the restrictions I mentioned above. With it being so trivial to add the checks, I can't see any reason to not take this extra step to eliminate nasty surprises.
Here's an example of why an ACID database is useful that hits close to all of our hearts - Slashdot moderation:
You may have noticed that if several people try to whack a troll at the same time, they all expend one moderator point, even if only a fraction of those points were required to push that troll down into the dreaded depths of -1.
If an ACID complient database were used, and the two steps of whacking the troll, and deducting the moderator points were placed in the same transaction (with a check constraint on the score of the posts to prevent them from dropping below -1) then the later moderators who tried to whack the troll would not have their points deducted, as the transaction would rollback when the constraint on the score of the post was exceeded.
Alas, mysql is not ACID complient, and so this sensless waste of moderator points continues to this day...
I hit submit rather than preview and neglected to add this:
There is a good background writeup on nixie tubes here on part of the WPS site.
Please don't bother moderating this up - it's at a high enough level that people will see it, and I've been at the cap for quite a while.
(now, if someone were to flip my rtbl flag I'd be thankful...
The coolest looking nixie tube based clocks I've seen on the web are these over at World Power Systems.
(Be sure to check out the Story Teller if you go to that site - extremely cool!)
How about (to make things a little more exciting) if you miss the ball without hitting n (a randomly selected number ) bricks, there is a 1 in 10 chance that your bootsector gets wiped.
It would really help increase average uptimes, as admins would find new and innovative ways to avoid having to reboot.
Linux would reach the tops of the Netcraft uptime chart in no time!
Cool game - Any connection between you and the people who made Alpha Waves back in 1990?
No, I spent $45 on a very well designed knob shaped input device. The fact that it also makes an excellent volume control is (to me) just a bonus.
I love it - it's really amazing how many tasks are made easier by having a knob you can fiddle with.
When I'm grabbing frames from a video I took on vacation to make a QTVR file, I use left and right to pan through the track, and a click to save the current frame. If I'm actually editing the video, I reassign the click to split the current track.
For editing code, or using a console, I set left and right to the up and down arrows, and the click to return. It's great to twirl it with one finger, and use it to scroll through long documents, or to just give it a twist and a press to zip through my command history, and repeat a command I know I typed sometime in the past 10 minutes or so.
Music? Well, I must admit, it does make a very nice volume control...
And that is what he did, by setting the default AOL phone numbers to two numbers with caller id, and watched for a modem to call both.
That the Powermate is also a blinkenlight - you can adjust the pulse rate from stroboscopic, to a nice slow pulse of about 30 seconds for a cycle.
I have one - it rocks. In addition to it being a cool looking blinking object on my desk, I use it for scrubbing through video in iMovie, and scrolling through text in project builder.
It is also, I admit, a great volume control for iTunes...
Well, curl -I http://www.codeweavers.com/~jwhite/tunney.html gives the following information:
Last-Modified: Tue, 22 Jan 2002 21:25:09 GMT
So I would assume that it is this upcoming monday, January 28th.
When driving, I've only needed to show both proof of identity and citizenship twice:
When I was traveling with a non-us citizen
When I ran into "Operation Power Play"
Since I live in Michigan, and often cross over into Ontario, the percentage of times I've needed both documents is tiny; however I was very glad I had them when I needed them.
If, on the other hand, you are flying into Canada, then (in my experience) the airline will not issue you a boarding pass, unless you prove both identity and citizenship.
Additionaly, you will likely end up in customs with all of the other international arrivals, and go through the same checks as someone from (for example) Germany or the UK.
So, if you are flying, carrying these two slips of paper jumps from being a good idea to being essential.
- Proof of Citizenship
- Proof of Identity
A drivers license serves as proof of identity, but not as proof of citizenship.You would need something else (such as a birth certificate) that proves citizenship (a birth certificate proves citizenship, but not identity).
A passport proves both citizenship and identity, so it's the easiest solution if you want to make sure you don't get held up at the border.
What you should do now is to let people's friend/foe lists build up for a while; once they've gotten complex enough, make a digraph of the friend/foe relationships, and sell posters.
It probably would look cooler than those internet map posters I see Thinkgeek advertise from time to time - plus there would be the added fun of trying to find your node in the graph!
Parts One and Two are now completely copied.
I'll try for the high quality versions now.
There is a complete mirror of the single file version of part 2 in here.
Part one is at about 75%, and still downloading right now.
Pick a large university near you, and do a whois on them to see what their nameservers are.
They'll probably be a good choice.
So THAT is why Comcast was handing out self install kits with 2 months of free service at Lakeside a couple of weeks ago!
Let people have it for free while they expect to be down anyway - no money to refund, and they get people hooked on high bandwidth who would not normally have subscribed...
-Pathwalker (Also in Clinton Township)
For a while (about 6 months) whenever I had a telemarketer call, I would explain that I was busy, and ask them for a number at which I could call them back.
:-)
/etc/smtp.cdb and never hear from again...
Only one actually left a number - I looked it up on Google, and got a hit. It turned out that they were an artist, who I would assume was doing telemarketing as their day job. It really weirded them out when I commented on one of their paintings when I called them back
Nowdays, I don't deal with telemarketers - I leave the phone off the hook most of the day, as I work nights.
Spammers I just stick in
He mentions raising it from 4 - doesn't the LINT config have maxusers set to some really low value (4 sounds about right) ?
He probably just assumed that the settings in LINT were the default settings, and copied them over.
(unless he based his config off of LINT rather than GENERIC - but would that even boot? I've never tried it...)
A few things to keep in mind if you do it:
Carve a big chunk out of that black ring that supports everything - that plug takes more space than you might first guess.
Have the cable exit the outer shell on the other side of the airport from where the cable connector is - it is much easier to run the cable around between the black framework and the outer shell instead of trying to get a tight enough bend in it to exit near the jack
Be careful not to scratch the inside of the plastic shell - scratches really show up
Signal strength seems much higher - I haven't gone for a long walk with my laptop yet, but I am at full strength in my yard rather than 50% strength.
You might want to check out the Apple Public Source License
It is pretty close to what you want, although it is not GPL compatable.
If you are writing your own, it might be a useful starting point.
There is a nice list of other licenses here - always a good spot to start exploring.
That would be really stupid. If the machine is not working anymore
Now, wouldn't it be nasty if the next worm did something really really destructive, iff it noticed that some set of security patches had been installed; otherwise, it would just spread normally.
This might help it preserve it's ecosystem (unpatched IIS systems) by discouraging people from installing security patches unless they make sure that there is no way for the worm to get in.
Even that wouldn't concern me very much - spreading and wiping out systems is not actually the most destructive action that can be taken. What scares me, is the possibility of a worm designed to be hard to notice, that just changes data and erases all traces that it was there. - changing a few numbers on a spreadsheet, changing tolerances in an engineering design.
Little things, that might be nothing, but might result in a company being closed down for tax law violations, or a bridge collapsing decades in the future.
That thought scares me.