In the case of postgres there are three digits in the version - a.b.c
If your upgrade increases either a or b then the on-disk structure of the database has changed, and
as part of the upgrade you'll need to dump the database out
to a backup file and restore it.
If the only change is in the final digit c then there's
no on-disk change and you can upgrade just by upgrading the binaries. That tends to mean that final digit upgrades are bug fixes, and you should always do the upgrade.
So if you're running 7.4.1 you can easily, and definitely should, upgrade to 7.4.3. But upgrading to 8.0 is a marginally
more time-consuming upgrade that you may not want to make
on a production system unless you want the new features in 8.0
There's no 'technical' difference between a first digit change
upgrade and a second digit upgrade. There's a difference in expectations though, and the version following 7.4.* has enough major new features to justify a major version jump to 8.0.0, with all the positives and negatives that jump implies. The upgrade path would have been identical had it been called 7.5.0 though.
Besides, the re-training thing is just as bad when switching from Windows 98/NT to Windows XP anyway....
Hmm. Lets look at two transition scenarios for a typical
office worker.
Windows Anything to Windows Anything
Microsoft Office -> Microsoft Office
Internet Explorer -> Internet Explorer
Outlook -> Outlook
Windows Explorer (or predecessor) -> Windows Explorer
Half Dozen Productivity Tools -> Same Half Dozen Tools
Windows Anything to Linux
Microsoft Office -> Open Office
Internet Explorer -> Konqueror
Outlook -> Nothing comparable
Windows Explorer -> ?
Prouctivity Tools -> ?
One of these scenarios has drastically higher training
costs than the other. Even if you believe the long-term benefits outweight the short term training and support costs (which they may, or may not, depending on the particular situation) the short term costs in training, IT support and lost productivity will be pretty large.
Learning forth will help you learn reverse polish notation,
one specific trick for building high-performance interpreted
languages and a very lightweight, easily extensible and embeddable scripting language.
It won't, though, teach you anything about computers
work beyond the small amount you'll pick up by learning
any new language. Including French.
If you want to learn how computers work there are
far better things to play with. Assembly language, obviously,
whether it be a synthetic assembly language such as DLX or
a real architecture. x86 isn't the most enlightening assembly
language to start with (6502 is excellent, MIPS or for a really
nice architecture, Alpha) but it'll run on your PC.
Books. Patterson and Hennesey, Computer Organization and Design, The Hardware/Software Interface is pretty
good for a programmers intro, but Hennesey and Patterson,
Computer Architecture, A Quantative Approach will
teach you a lot more, as will most texts with Superscalar in the title
Learn a hardware description language. Verilog is better,
but VHDL is OK. Compilers and simulators are freely available
for both.
Get an FPGA development kit. Compile yourself some hardware. You can put full CPUs on a fairly cheap FPGA
development board.
Design your own CPU. It's possible for an individual or
a small group to design a CPU and have it fabricated as a
tinychip. I've seen individuals design a full, if tiny, CPU at mask
level in a couple of months, and a small group put together
a fairly decent gate level design in a few more. Commonly done as part of a college course, but an individual can have a tinychip
fabricated for around $1000. Not cheap, but cheaper than some
hobbies.
You can do full circuit level design and simulate it using
either gate level or spice transistor level simulators and see
just why addition or multiplication takes as long as it does.
As a general rule I've found that some of the best software engineers have some hardware design background, and a good understanding of computer architecture, so even if you never plan to do any hardware design, understanding how it all works
is a good idea.
Of course, I've also found that a large fraction of good
software engineers have also spent time working as theatre
technicians, so who knows what the correlations are...
So far this week I've received spam from Vonage claiming to be referrals from a wide range of people. They were sent to several different email addresses that were harvested from the Corenic whois server (or bought from another spammer who harvested them from there)
Each spam claimed that it was being sent because someone
with this email address had referred me. Most of the email addresses I didn't recognise. One of them I did. The email address I recognised a) belongs to my wife, who is about as anti-spam as I am (and, BTW, not a Vonage customer) and b) is
not an email address she uses, but one that is regularly harvested by spammers.
Vonage is spamming (or, more likely, paying some spammer
to spam for them). No question about it.
But test carefully before relying on it. For business use voice quality is pretty important and VoIP is at the "about as good as POTS" level, which might be acceptable or might not, depending
on how sensitive you are to the difference in sound distortion between consumer grade VoIP and consumer grade POTS.
That's the real beauty of A4/A3 etc. All the sizes in a given
series (A00, A0, A1, A2, A3, A4, A5... or B1, B2, B3...) are
the same shape.
So you can photocopy an A4 document onto A3 paper expanding it by the right proportion and it'll fit perfectly. And
you can copy two A4 documents onto A3 paper and it'll
fit perfectly. Or use psnup to put A4 formatted documents
reduced to 2-up on A4 paper with no wasted space.
I'd kill all of you for focus-follows-mouse in OSX.
No need. From an xterm, enter
defaults write com.apple.x11 wm_ffm true
exit X and restart it. Lo, you have focus follows mouse for any X application.
There's a similar setting for terminal, and probably other native
applications.
Physicus is a kids adventure game, but was pretty fun to play when I wasn't looking for anything too challenging. All
the puzzles in the game have some vaguely physics related
theme, and there's a bunch of physics related info in the game
encyclopedia too.
Definitely educational, and fun enough to play I'm keeping
an eye open for Chemicus.
Viva Media are the publisher, and they
do Mac as well as Windows.
Frozen Bubble and Enigmo aren't really simulations, but
they're good, very G rated, games that are available for Mac.
Frozen Bubble is freeware, Enigmo shareware.
Rather than muffling it...
on
Quieting Your G5?
·
· Score: 4, Insightful
You don't need all that G5 power for recording. On my G4 laptop
I can go into energy saver in system preferences and set the
processor performance to 'Reduced'. That burns less power, creates less heat and the fans don't turn on. You may be able to do the same on your desktop.
Also, if you have a lot of junk software on the machine burning CPU cycles it's going to create more heat and more noise. Shut down power-hungry apps.
Re:Anyone succeed in a rebuild from escrowed sourc
on
Source Code Escrow
·
· Score: 2, Informative
Absolutely, anyone can build from an escrowed source. If the developer wants them to be able to.
We sell software. Fairly specialised software to a small
number of customers. We put the code into escrow for a
number of reasons. One is so that if we go out of business
our customers aren't completely screwed. They can get together and use either some of their in-house developers or an external developer and have the code maintained. An added bonus is that it makes the customers happy to have that safety net.
(Another advantage is that the code escrow company also acts as an additional off-site backup for our code tree. Should something go horribly wrong and our development sites were to all be destroyed by an earthquake there'd still be yet another copy of the development tree at the code escrow company. And the code escrow company is a lot cheaper than most off-site data backup agencies...)
We cut each build from a CVS tree that contains all the source and configuration information. Immediately after a release build is done, we burn the CVS tree to CD. If it passes all the QA, we ship the CD to the escrow company.
Anyone with perl and a C++ compiler can build the full application from that CD. So, in our case, every escrowed source release can be retrieved and rebuilt (and the escrow company specialises in code escrow, and has for many years, so they're pretty good at version and media tracking).
If I were doing it again I'd create the build environment around Vesta rather than CVS, so guaranteeing that it can
be rebuilt from archives to a bit-identical binary at any
time, but Vesta wasn't really stable for production use when
we started this project.
So code escrow works for us, but we (the software developer) are actively using it, rather than doing so grudgingly because a customer requires it, and that may not be the usual case. But it could be improved massively, by updating to newer technology. I don't want
to have to ship CDs - I want to rsync or scp data. In fact, there's a lot to be said for giving the source not only to the
escrow company, but also giving it (encrypted) to every customer, and giving the password to another escrow company that didn't need to do anything more than have an arrangement to release a password to each of our customers if we were to go under. There's a potential market there.
What's the advantage of having a code escrow company do this, rather than just having in our contract the commitment to release source if we go bust? Simple - many of the ways in which we could go bust, as a small company, could involve everyone involved being dead, or could involve legal action that ties all our assets up in court for years. In either case the escrow company can release the data as an independent third party.
(And why don't we "just open source our code" as many
here suggest? It just doesn't work that way in the particular section of business we're in. In some fields it can work, in others it doesn't. We're in one where it doesn't. It's not that
we're an anti-open-source company - just the opposite, we release a few open-source packages, and have a policy of going open-source with in-house tools where they'd be of
broader value.)
I mean, honestly -- have YOU ever seen a function or class or subroutine in Linux that WASN'T damn near perfectly coded?
Yes, most of it. The majority of recent open-source
software is badly-written, non-portable dreck that'll
build, sometimes, on a short list of Linux platforms.
All the worlds a RedHat box is as bad an assumption
as all the world's a Sun or all the world's a VAX.
The redeeming factor is that a major reason for this is that there's so much open
source code. So while the fraction that is well
written, stable and portable isn't that high the absolute
amount is pretty large and climbing.
If you look back, at the time AT&T would have been filing the patent they were in the consumer ISP business.
Odds are it was filed as an offensive tool to use against spammers.
A patent such as this could be used as a hammer against spammers using filter evasion approaches. The value of that for an ISP of the size of AT&T far exceeds the cost of filing a patent.
(AT&T are pretty clueless on many levels, but this looks like it was a smart move. It'll be interestng to see what, if anything, they do with it.)
Those spam-catching tools work by doing a reverse-dns lookup of the IP address that is trying to send the mail. This is different than doing a "forward"-dns lookup.
Not so.
A common spam filtering method is to check the envelope sender to see if the domain exists. Any mail that is sent with a faked envelope sender to which bounces can't be sent is spam.
That means querying for either an MX record or A record for that domain, and bouncing all the spam that doesn't have either. Now, thanks to verisign, all spam sent with forged envelope senders in.com or.net wil go straight through this spam filter, increasing the amount of spam in many peoples mailboxes.
Yes, in theory you could look for the magic A record returned, but to do so is something of an operational nightmare, and impossible to do with most current MTAs.
So thanks, antivirus programmers. Thanks for wasting my time instead of doing your job correctly. How long would have taken to add an extra if(){} to your code, and another boolean field to your virus database?
They are doing their job correctly. They're using spam (email? check. bulk? check. unsolicited? check. heck, commercial? check) to advertise their virus filtering products.
They're violating various state anti-spam laws, so
there's one obvious way to encourage them to stop spamming.
Has anyone considered what this will really do? It'll have
next to no impact on spammers.
However, lots and lots of legitimate opt-in mailing lists are following best practices by requiring a closed-loop opt-in with a magic cookie to prevent forged signups.
How do they work? Well, usually you follow a URL containing a magic cookie in a challenge email to confirm you want to sign up for the mailing list. Oops.
(For added brokenness, combine this with the other flawed anti-spam fad-du-jour, challenge/response).
Yeah, most of it was spam. AOL makes it so trivial to harvest AOL email addresses that they're a major target.
But a chunk of the mail randomly thrown away
wasn't spam. It was email people had asked for
that was discarded by faulty spam filters.
Mr. Ng claims that spam is 'unsolicited commercial e-mail.' Unfortunately it seems this definition is held by all, but shouldn't we really say that spam is 'any unsolicited mass e-mail for personal gain?' That way, we cover political sharks, over-eager charities, AND commercial enterprises.
The clued use the definition "Unsolicited Bulk Email", not "Unsolicited Commercial Email". This was UBE, hence spam.
The deluge of spam itself causes some of the damage, causing people to
be wary about giving out their email addresses, afraid to post
publically on mailing lists, or in some cases changing their email
addresses and only giving them out to close family and friends. This
retreat into 'email enclaves' destroys one of the best things about
email - the ability to communicate with someone on the other side of
the world, even if it's just a "Hi from China, I really liked your
webpage!".
The other widely used approach to avoid spam is the use of aggressive
blocking lists to ghettoize huge sections of the internet, preventing
them from communicating with those sections of the internet that use
those lists. This, too is causing massive damage to email as a medium
for communication.
The third part of the problem is the fear some organizations have of
being labelled spammers for behaviour that would have been considered
quite reasonable a few years ago. This chilling of communication isn't
as big a problem as the previous two, but it's getting worse.
A combination of spammers and ill-conceived responses to spammers is balkanizing email, making
it less and less viable as a means of person-to-person communication.
And losing email would be a huge, huge loss, as more than anything else
it sums up what is good about the growth of the Internet - letting
people talk to other people.
In the case of postgres there are three digits in the version - a.b.c
If your upgrade increases either a or b then the on-disk structure of the database has changed, and as part of the upgrade you'll need to dump the database out to a backup file and restore it.
If the only change is in the final digit c then there's no on-disk change and you can upgrade just by upgrading the binaries. That tends to mean that final digit upgrades are bug fixes, and you should always do the upgrade.
So if you're running 7.4.1 you can easily, and definitely should, upgrade to 7.4.3. But upgrading to 8.0 is a marginally more time-consuming upgrade that you may not want to make on a production system unless you want the new features in 8.0
There's no 'technical' difference between a first digit change upgrade and a second digit upgrade. There's a difference in expectations though, and the version following 7.4.* has enough major new features to justify a major version jump to 8.0.0, with all the positives and negatives that jump implies. The upgrade path would have been identical had it been called 7.5.0 though.
Besides, the re-training thing is just as bad when switching from Windows 98/NT to Windows XP anyway....
Hmm. Lets look at two transition scenarios for a typical office worker.
Windows Anything to Windows Anything
Windows Anything to Linux
One of these scenarios has drastically higher training costs than the other. Even if you believe the long-term benefits outweight the short term training and support costs (which they may, or may not, depending on the particular situation) the short term costs in training, IT support and lost productivity will be pretty large.
Forth? No.
Learning forth will help you learn reverse polish notation, one specific trick for building high-performance interpreted languages and a very lightweight, easily extensible and embeddable scripting language.
It won't, though, teach you anything about computers work beyond the small amount you'll pick up by learning any new language. Including French.
If you want to learn how computers work there are far better things to play with. Assembly language, obviously, whether it be a synthetic assembly language such as DLX or a real architecture. x86 isn't the most enlightening assembly language to start with (6502 is excellent, MIPS or for a really nice architecture, Alpha) but it'll run on your PC.
Books. Patterson and Hennesey, Computer Organization and Design, The Hardware/Software Interface is pretty good for a programmers intro, but Hennesey and Patterson, Computer Architecture, A Quantative Approach will teach you a lot more, as will most texts with Superscalar in the title
Learn a hardware description language. Verilog is better, but VHDL is OK. Compilers and simulators are freely available for both.
Get an FPGA development kit. Compile yourself some hardware. You can put full CPUs on a fairly cheap FPGA development board.
Design your own CPU. It's possible for an individual or a small group to design a CPU and have it fabricated as a tinychip. I've seen individuals design a full, if tiny, CPU at mask level in a couple of months, and a small group put together a fairly decent gate level design in a few more. Commonly done as part of a college course, but an individual can have a tinychip fabricated for around $1000. Not cheap, but cheaper than some hobbies.
You can do full circuit level design and simulate it using either gate level or spice transistor level simulators and see just why addition or multiplication takes as long as it does.
As a general rule I've found that some of the best software engineers have some hardware design background, and a good understanding of computer architecture, so even if you never plan to do any hardware design, understanding how it all works is a good idea.
Of course, I've also found that a large fraction of good software engineers have also spent time working as theatre technicians, so who knows what the correlations are...
AFAIK, Vonage doesn't spam.
Well, your knowledge is limited.
So far this week I've received spam from Vonage claiming to be referrals from a wide range of people. They were sent to several different email addresses that were harvested from the Corenic whois server (or bought from another spammer who harvested them from there)
Each spam claimed that it was being sent because someone with this email address had referred me. Most of the email addresses I didn't recognise. One of them I did. The email address I recognised a) belongs to my wife, who is about as anti-spam as I am (and, BTW, not a Vonage customer) and b) is not an email address she uses, but one that is regularly harvested by spammers.
Vonage is spamming (or, more likely, paying some spammer to spam for them). No question about it.
Well, I was just spammed advertising Vonage not more than an hour ago, so they're definitely out.
Voicepulse or for the true geek Voicepulse Connect are well worth a look.
I've also heard good things about nufone
But test carefully before relying on it. For business use voice quality is pretty important and VoIP is at the "about as good as POTS" level, which might be acceptable or might not, depending on how sensitive you are to the difference in sound distortion between consumer grade VoIP and consumer grade POTS.
But 11x17 is not the same shape as 8 1/2x11.
That's the real beauty of A4/A3 etc. All the sizes in a given series (A00, A0, A1, A2, A3, A4, A5... or B1, B2, B3...) are the same shape.
So you can photocopy an A4 document onto A3 paper expanding it by the right proportion and it'll fit perfectly. And you can copy two A4 documents onto A3 paper and it'll fit perfectly. Or use psnup to put A4 formatted documents reduced to 2-up on A4 paper with no wasted space.
Try that with letter or legal size....
I'd kill all of you for focus-follows-mouse in OSX.
No need. From an xterm, enter
defaults write com.apple.x11 wm_ffm true
exit X and restart it. Lo, you have focus follows mouse for any X application. There's a similar setting for terminal, and probably other native applications.
It'll cost you over $2000 a year to get a .mail domain, so it's
unlikely that individual users will want to play.
The year 2000 called, they miss your opinions.
In other words, your data is so out of date as to be positively misleading.
Open relays are dead. Open proxies are so 2003.
All the cool kids are using virus distributed trojans these days, some of 'em proxies, some dedicated spamware.
Physicus is a kids adventure game, but was pretty fun to play when I wasn't looking for anything too challenging. All the puzzles in the game have some vaguely physics related theme, and there's a bunch of physics related info in the game encyclopedia too.
Definitely educational, and fun enough to play I'm keeping an eye open for Chemicus.
Viva Media are the publisher, and they do Mac as well as Windows.
Frozen Bubble and Enigmo aren't really simulations, but they're good, very G rated, games that are available for Mac. Frozen Bubble is freeware, Enigmo shareware.
You don't need all that G5 power for recording. On my G4 laptop I can go into energy saver in system preferences and set the processor performance to 'Reduced'. That burns less power, creates less heat and the fans don't turn on. You may be able to do the same on your desktop.
Also, if you have a lot of junk software on the machine burning CPU cycles it's going to create more heat and more noise. Shut down power-hungry apps.
Absolutely, anyone can build from an escrowed source. If the developer wants them to be able to.
We sell software. Fairly specialised software to a small number of customers. We put the code into escrow for a number of reasons. One is so that if we go out of business our customers aren't completely screwed. They can get together and use either some of their in-house developers or an external developer and have the code maintained. An added bonus is that it makes the customers happy to have that safety net.
(Another advantage is that the code escrow company also acts as an additional off-site backup for our code tree. Should something go horribly wrong and our development sites were to all be destroyed by an earthquake there'd still be yet another copy of the development tree at the code escrow company. And the code escrow company is a lot cheaper than most off-site data backup agencies...)
We cut each build from a CVS tree that contains all the source and configuration information. Immediately after a release build is done, we burn the CVS tree to CD. If it passes all the QA, we ship the CD to the escrow company.
Anyone with perl and a C++ compiler can build the full application from that CD. So, in our case, every escrowed source release can be retrieved and rebuilt (and the escrow company specialises in code escrow, and has for many years, so they're pretty good at version and media tracking).
If I were doing it again I'd create the build environment around Vesta rather than CVS, so guaranteeing that it can be rebuilt from archives to a bit-identical binary at any time, but Vesta wasn't really stable for production use when we started this project.
So code escrow works for us, but we (the software developer) are actively using it, rather than doing so grudgingly because a customer requires it, and that may not be the usual case. But it could be improved massively, by updating to newer technology. I don't want to have to ship CDs - I want to rsync or scp data. In fact, there's a lot to be said for giving the source not only to the escrow company, but also giving it (encrypted) to every customer, and giving the password to another escrow company that didn't need to do anything more than have an arrangement to release a password to each of our customers if we were to go under. There's a potential market there.
What's the advantage of having a code escrow company do this, rather than just having in our contract the commitment to release source if we go bust? Simple - many of the ways in which we could go bust, as a small company, could involve everyone involved being dead, or could involve legal action that ties all our assets up in court for years. In either case the escrow company can release the data as an independent third party.
(And why don't we "just open source our code" as many here suggest? It just doesn't work that way in the particular section of business we're in. In some fields it can work, in others it doesn't. We're in one where it doesn't. It's not that we're an anti-open-source company - just the opposite, we release a few open-source packages, and have a policy of going open-source with in-house tools where they'd be of broader value.)
SpamCop is not a revenue stream.
Porn spammers are. And, yes, porn spammers use IronPort.
I mean, honestly -- have YOU ever seen a function or class or subroutine in Linux that WASN'T damn near perfectly coded?
Yes, most of it. The majority of recent open-source software is badly-written, non-portable dreck that'll build, sometimes, on a short list of Linux platforms.
All the worlds a RedHat box is as bad an assumption as all the world's a Sun or all the world's a VAX.
The redeeming factor is that a major reason for this is that there's so much open source code. So while the fraction that is well written, stable and portable isn't that high the absolute amount is pretty large and climbing.
If you look back, at the time AT&T would have been filing the patent they were in the consumer ISP business.
Odds are it was filed as an offensive tool to use against spammers.
A patent such as this could be used as a hammer against spammers using filter evasion approaches. The value of that for an ISP of the size of AT&T far exceeds the cost of filing a patent.
(AT&T are pretty clueless on many levels, but this looks like it was a smart move. It'll be interestng to see what, if anything, they do with it.)
Those spam-catching tools work by doing a reverse-dns lookup of the IP address that is trying to send the mail. This is different than doing a "forward"-dns lookup.
Not so.
A common spam filtering method is to check the envelope sender to see if the domain exists. Any mail that is sent with a faked envelope sender to which bounces can't be sent is spam.
That means querying for either an MX record or A record for that domain, and bouncing all the spam that doesn't have either. Now, thanks to verisign, all spam sent with forged envelope senders in .com or .net wil go straight through this spam filter, increasing the amount of spam in many peoples mailboxes.
Yes, in theory you could look for the magic A record returned, but to do so is something of an operational nightmare, and impossible to do with most current MTAs.
So thanks, antivirus programmers. Thanks for wasting my time instead of doing your job correctly. How long would have taken to add an extra if(){} to your code, and another boolean field to your virus database?
They are doing their job correctly. They're using spam (email? check. bulk? check. unsolicited? check. heck, commercial? check) to advertise their virus filtering products.
They're violating various state anti-spam laws, so there's one obvious way to encourage them to stop spamming.
Has anyone considered what this will really do? It'll have next to no impact on spammers.
However, lots and lots of legitimate opt-in mailing lists are following best practices by requiring a closed-loop opt-in with a magic cookie to prevent forged signups.
How do they work? Well, usually you follow a URL containing a magic cookie in a challenge email to confirm you want to sign up for the mailing list. Oops.
(For added brokenness, combine this with the other flawed anti-spam fad-du-jour, challenge/response).
And there is no way Spam Arrest are the good guys here.
SpamArrest are spammers
Yeah, most of it was spam. AOL makes it so trivial to harvest AOL email addresses that they're a major target. But a chunk of the mail randomly thrown away wasn't spam. It was email people had asked for that was discarded by faulty spam filters.
The clued use the definition "Unsolicited Bulk Email", not "Unsolicited Commercial Email". This was UBE, hence spam.
Email as a communication medium is under attack.
The deluge of spam itself causes some of the damage, causing people to be wary about giving out their email addresses, afraid to post publically on mailing lists, or in some cases changing their email addresses and only giving them out to close family and friends. This retreat into 'email enclaves' destroys one of the best things about email - the ability to communicate with someone on the other side of the world, even if it's just a "Hi from China, I really liked your webpage!".
The other widely used approach to avoid spam is the use of aggressive blocking lists to ghettoize huge sections of the internet, preventing them from communicating with those sections of the internet that use those lists. This, too is causing massive damage to email as a medium for communication.
The third part of the problem is the fear some organizations have of being labelled spammers for behaviour that would have been considered quite reasonable a few years ago. This chilling of communication isn't as big a problem as the previous two, but it's getting worse.
A combination of spammers and ill-conceived responses to spammers is balkanizing email, making it less and less viable as a means of person-to-person communication. And losing email would be a huge, huge loss, as more than anything else it sums up what is good about the growth of the Internet - letting people talk to other people.
In fact, one of them was to an email address that either
Even Bernie isn't stupid enough to do number 5, is he? Silly question, I guess.