Google announced their Chrome OS today:
“We’re designing the OS to be fast and lightweight, to start up and get you onto the Web in a few seconds.”
A couple of years ago, my kids' computer was infected by a virus. They said "oh, just re-image it, we don't need anything on the disk."
I'm slowly repairing a goof on my music collection where I erased all track numbers, not a huge deal, but time consuming. But I look at that time, then at my wife happily using Pandora, and wonder why bother.
Where is your personal data? Mine, currently, is mostly on a server hosted on the opposite side of the country for dirt cheap. I ran a server in my house for a decade, but the hassle became far more expensive than the cheap hosting available. So is the data really mine anymore? Probably not, the hosting company has access to it, though that would be outside the terms of service. I still have my old server, with tons of pictures and music, too expensive to host remotely.
Ancient history: the behemoth computer that ran jobs constantly, and mere mortals could only have jobs run during the wee hours of the morning. Your data was on punched cards, and you got more data back in the form of a print-out. Then time-sharing came along, and instead of waiting overnight, you sat frustrated at the terminal hitting enter and wondering how many other damn people were using it. Your data was in an air-conditioned room somewhere, perhaps on a disk drive looking like a washing machine with a label on the front saying "don't place anything on this disk drive, it will break if you do." Then there was the personal computer, and you didn't have to wait for anyone else, but it couldn't do very much. Your data was on floppies, or maybe a 10 megabyte hard drive.
Then networking came into the picture, and where data lived got confused. At first, it was pretty clear. When you got an e-mail, it was downloaded to your account or PC and removed from the server. But then, laptops and multiple accounts came into the picture. I want my mail available no matter where I am, or what computer I am on, and of course I don't want anyone else to read it. I have a cool music playing program at home, why can't I use it at work? Or at the coffee shop? I can get to my bank account from anywhere, why not music?
Where is your personal data? What is your personal data?
How is it backed up or saved from loss?
How is your privacy protected?
Why would you buy a desktop system for home use?
These aren't rhetorical, I'd like to know. For me - my data is on my server, or my old server. It is websites, e-mail, notes, music and pictures. It's backed up by various means, including RAID. It used to be privacy was protected by me being the only one with access to my server, but that's no longer true. Now I don't know. And I don't think I'll ever buy a desktop system again. The only reason for this would be because I needed a lot of CPU power, memory or hard disk space, say for software development (other people might want it for gaming or similar high demand applications). But right now I access powerful remote systems to do software development, I don't need the power at home.
Tuesday, July 7, 2009
Thursday, July 31, 2008
What is U-Haul up to?
I moved - a pain, but not really blog-worthy. Except: I rented a U-Haul truck to carry our belongings across town. One of the big ones, fun to drive, gets 7mpg if going downhill with a tail wind.
There was this mystery box on the side of the cab, below the dash, just next to my left calf. Had a digital readout, two LED digits, that perhaps were tracking time, they went from 70 to 74 while I was using it. I'm remembering vague stories about rental car companies charging a fortune because their secret GPS tracked the guy going 80mph (which is a little amazing itself, my GPS once tracked me doing 150MPH even though I was doing about 60) so I watched my speed.
I asked the guy when I returned it: "so... what's that little box there with the readout". "Oh, it's for the brakes... you know... the brakes on these big trucks". I replied "yes, I know about air brakes, but what's that box *for*"? He's kind of blustery: "it's the brakes, you know... These big truck brakes...". I didn't question further.
I'm pretty sure it isn't for the brakes: it's an add-on box, and brakes are pretty integral. Plus, I don't think a gradually increasing pressure from 70 to 74 would be a good sign.
The question is: what is it? What sneaky data is U-Haul capturing?
And as long as we're on this subject, did you ever notice that Nickelback's song "Leader of Men", when played on the radio, leaves out the half verse that states "Turn your television off, and I will sing a song, and if you happen to have the urge, well you can sing along". It's a conspiracy between the music industry and U-Haul, I tell ya....
I'm going to go make a tin foil hat now.
There was this mystery box on the side of the cab, below the dash, just next to my left calf. Had a digital readout, two LED digits, that perhaps were tracking time, they went from 70 to 74 while I was using it. I'm remembering vague stories about rental car companies charging a fortune because their secret GPS tracked the guy going 80mph (which is a little amazing itself, my GPS once tracked me doing 150MPH even though I was doing about 60) so I watched my speed.
I asked the guy when I returned it: "so... what's that little box there with the readout". "Oh, it's for the brakes... you know... the brakes on these big trucks". I replied "yes, I know about air brakes, but what's that box *for*"? He's kind of blustery: "it's the brakes, you know... These big truck brakes...". I didn't question further.
I'm pretty sure it isn't for the brakes: it's an add-on box, and brakes are pretty integral. Plus, I don't think a gradually increasing pressure from 70 to 74 would be a good sign.
The question is: what is it? What sneaky data is U-Haul capturing?
And as long as we're on this subject, did you ever notice that Nickelback's song "Leader of Men", when played on the radio, leaves out the half verse that states "Turn your television off, and I will sing a song, and if you happen to have the urge, well you can sing along". It's a conspiracy between the music industry and U-Haul, I tell ya....
I'm going to go make a tin foil hat now.
Wednesday, February 13, 2008
An honest mistake?
I was watching the City Council on television one night, and they were dealing with restaurant owners who had failed the City's sting operation and served alcohol to a minor. One owner's defense - "It was an honest mistake" - was ignored (and probably correctly so).
But something happened recently that made me realize there are errors and there are errors, and perhaps an honest mistake is different than intentional malice.
Suppose we are managing a database of CDs, just a listing of CDs, their artists, titles and track names. Input comes from the community at large. Someone puts a new CD in their computer, it looks it up in the online database (via the Internet), and if it isn't found, they type in the info and it is submitted.
Suppose that instead of typing "The White Stripes", they enter "The White Stirpes". Or suppose that instead of entering all the track info carefully, they enter the first one, then get bored and then enter "track 2", "track 3", ... or worse, "asdf", "lkjh", ...
If the database is smart, it will recognized that "The White Stripes" and "The White Stirpes" are the same artist. And by carefully culling data from the online community, it can recognize that "The White Stripes" is correct, and "The White Stirpes" is a misspelling. Anyone else asking for info about "The White Stirpes" will then receive information about "The White Stripes", which is almost certainly what they want. (Yes, it's possible that Weird Al Yankovic will for a new band called "The White Stirpes"). This kind of error provides valuable information to the database.
But "track 2", "track 3" or "asdf", "lkjh" are not as valuable. "Track 2" is recognizable as filler, but random characters aren't. Neither provide the same information that an "honest" misspelling does.
In this case, honest mistakes are far better than intentional malice (well, intentional laziness).
Any other cases? Counterexamples?
But something happened recently that made me realize there are errors and there are errors, and perhaps an honest mistake is different than intentional malice.
Suppose we are managing a database of CDs, just a listing of CDs, their artists, titles and track names. Input comes from the community at large. Someone puts a new CD in their computer, it looks it up in the online database (via the Internet), and if it isn't found, they type in the info and it is submitted.
Suppose that instead of typing "The White Stripes", they enter "The White Stirpes". Or suppose that instead of entering all the track info carefully, they enter the first one, then get bored and then enter "track 2", "track 3", ... or worse, "asdf", "lkjh", ...
If the database is smart, it will recognized that "The White Stripes" and "The White Stirpes" are the same artist. And by carefully culling data from the online community, it can recognize that "The White Stripes" is correct, and "The White Stirpes" is a misspelling. Anyone else asking for info about "The White Stirpes" will then receive information about "The White Stripes", which is almost certainly what they want. (Yes, it's possible that Weird Al Yankovic will for a new band called "The White Stirpes"). This kind of error provides valuable information to the database.
But "track 2", "track 3" or "asdf", "lkjh" are not as valuable. "Track 2" is recognizable as filler, but random characters aren't. Neither provide the same information that an "honest" misspelling does.
In this case, honest mistakes are far better than intentional malice (well, intentional laziness).
Any other cases? Counterexamples?
Thursday, January 10, 2008
Spam from Coffee shops?
Bruce Schneier, one of my heroes, wrote that he runs an open WiFi at his home. One of his reasons was:
I run my own mail server at home, and originally configured it to accept the STARTTLS command. Running an open relay is a no-no, and so unless you have authentication credentials, connecting to my server from outside will only allow local delivery. With the credentials, you can send mail to anywhere.
One day soon after configuring this, I was sitting in a local coffee shop (I think it was Caribou, but I am not sure), sending an e-mail and got a strange error message: it didn't recognize the STARTTLS command. After a few minutes head scratching trying to understand why my server wasn't recognizing it, I realized that I wasn't connecting to my home server. The coffee shop wireless (on top of their auto-sign-in process) was stealing all port 25 traffic and feeding it to their own server. I'm just guessing, but I'd bet a lot that this is to prevent someone from walking in, grabbing a delicious cup of coffee and a scone, and sending a few thousand e-mails saying "Dearest one, I am a 200 year old senile senior citizen who wants to give you a 25,123,999 (twenty five million, one hundred twenty three thousand, nine hundred ninety nine) U. S. Dollars".
I began running a second mail server on a different port, and now it works fine. Port 25 is still for anyone sending me mail (including, unfortunately, spammers) and the other port is for me when I'm away from home.
One of the reasons I set up my own mail server was security: checking e-mail is done via secure IMAP, sending is done via encrypted SMTP, and theoretically, I can send myself a message and later read it, from anywhere in the world, securely. I don't have anything that really requires that much security, but it's cool to have it.
And yet, it's not perfect. A coffee shop/hot spot could run a man-in-the-middle attack by carefully watching my outgoing traffic, and if I'm not careful about certificates, they've got me. I'm not sure why they'd want to, but it's possible.
I can count five open wireless networks in coffee shops within a mile of my house, and any potential spammer is far more likely to sit in a warm room with a cup of coffee and a scone than in a cold car outside my house.
I run my own mail server at home, and originally configured it to accept the STARTTLS command. Running an open relay is a no-no, and so unless you have authentication credentials, connecting to my server from outside will only allow local delivery. With the credentials, you can send mail to anywhere.
One day soon after configuring this, I was sitting in a local coffee shop (I think it was Caribou, but I am not sure), sending an e-mail and got a strange error message: it didn't recognize the STARTTLS command. After a few minutes head scratching trying to understand why my server wasn't recognizing it, I realized that I wasn't connecting to my home server. The coffee shop wireless (on top of their auto-sign-in process) was stealing all port 25 traffic and feeding it to their own server. I'm just guessing, but I'd bet a lot that this is to prevent someone from walking in, grabbing a delicious cup of coffee and a scone, and sending a few thousand e-mails saying "Dearest one, I am a 200 year old senile senior citizen who wants to give you a 25,123,999 (twenty five million, one hundred twenty three thousand, nine hundred ninety nine) U. S. Dollars".
I began running a second mail server on a different port, and now it works fine. Port 25 is still for anyone sending me mail (including, unfortunately, spammers) and the other port is for me when I'm away from home.
One of the reasons I set up my own mail server was security: checking e-mail is done via secure IMAP, sending is done via encrypted SMTP, and theoretically, I can send myself a message and later read it, from anywhere in the world, securely. I don't have anything that really requires that much security, but it's cool to have it.
And yet, it's not perfect. A coffee shop/hot spot could run a man-in-the-middle attack by carefully watching my outgoing traffic, and if I'm not careful about certificates, they've got me. I'm not sure why they'd want to, but it's possible.
Thursday, December 13, 2007
Embrace and Extend or Standardize and Stultify
The operator precedence in the title is correct: and binds tighter than or.
I've long been a fan of the GNU compiler (since at least the early 90s), but I'm a little disappointed with their current direction.
Let's say you wanted a C++ class for string handling. We'll just put in a char * member variable (the only data member) and some cool functions like Left, Capitalize, Parse and Rot13 (also known as SuperSecretEncryption).
A cool thing to do with strings like this is to pass them to printf:
Should this work? Consider:
The arguments to printf are a pointer to a string, and a pointer to a string. Now, for the MyString printf, the first argument is still a pointer to a string. The second is an object, and what actually gets put on the argument list is the contents of the object, which is, you guessed it, a pointer to a string.
So it should work. And it does with Microsoft's Visual C++ compiler (which is where I happened to meet this idiom).
However, the GNU C++ compiler complains with this message:
If you take a look at this thread in the GNU C++ compiler mailing list, you'll see that it is not supported, because it is not standard. Worse, the compiler, in pursuit of standardness, does not issue an error message, and instead emits code causing the program to abort.
That's right: they print a warning, and if you ignore the warning and run the program: CORE DUMP. A little unfriendly...
The Intel C++ compiler does better, it prints a warning but emits code to do the right thing.
While Microsoft is often guilty of Embrace and Extending common standards (such as HTML so that web pages only correctly display in Internet Explorer), in this case I don't think they've done anything wrong. The metaphor is very useful, and there is no benefit to forcing programmers to use the clumsier:
(assuming that there is a conversion operator for CStrings).
The GNU compiler group is guilty of an equally evil technique: let's call it "Standardize and Stultify". When I pointed out that the metaphor was useful, I received the terse reply:
Meaning basically "we're sticking to the standard, broken though it may be".
The Intel compiler got it right, but of course this would tie me to Intel and AMD platforms.
I've long been a fan of the GNU compiler (since at least the early 90s), but I'm a little disappointed with their current direction.
Let's say you wanted a C++ class for string handling. We'll just put in a char * member variable (the only data member) and some cool functions like Left, Capitalize, Parse and Rot13 (also known as SuperSecretEncryption).
class CString {
public:
CString Left(int NumberCharacters);
void Capitalize();
int Parse(char *Format, ...);
void Rot13();
private:
char *m_Data;
};
A cool thing to do with strings like this is to pass them to printf:
CString MyString;
...
printf("Here it is: <%s>\n", MyString);
...
Should this work? Consider:
char *foo; printf("%s", foo);The arguments to printf are a pointer to a string, and a pointer to a string. Now, for the MyString printf, the first argument is still a pointer to a string. The second is an object, and what actually gets put on the argument list is the contents of the object, which is, you guessed it, a pointer to a string.
So it should work. And it does with Microsoft's Visual C++ compiler (which is where I happened to meet this idiom).
However, the GNU C++ compiler complains with this message:
cannot pass objects of non-POD type 'CString' through '...'
If you take a look at this thread in the GNU C++ compiler mailing list, you'll see that it is not supported, because it is not standard. Worse, the compiler, in pursuit of standardness, does not issue an error message, and instead emits code causing the program to abort.
That's right: they print a warning, and if you ignore the warning and run the program: CORE DUMP. A little unfriendly...
The Intel C++ compiler does better, it prints a warning but emits code to do the right thing.
While Microsoft is often guilty of Embrace and Extending common standards (such as HTML so that web pages only correctly display in Internet Explorer), in this case I don't think they've done anything wrong. The metaphor is very useful, and there is no benefit to forcing programmers to use the clumsier:
printf("%s", (char *)MyStringObject);(assuming that there is a conversion operator for CStrings).
The GNU compiler group is guilty of an equally evil technique: let's call it "Standardize and Stultify". When I pointed out that the metaphor was useful, I received the terse reply:
> The class is a non POD.
Meaning basically "we're sticking to the standard, broken though it may be".
The Intel compiler got it right, but of course this would tie me to Intel and AMD platforms.
Subscribe to:
Posts (Atom)