I beg to differ. Just on my desktop, there are currently 14 processes recieving a slice of the CPU this second, and 200+ processes that will receive CPU time sometime in the next 10 seconds. 3 of those processes are always fighting for the CPU (this is on a single P4 SMT 2.8 Ghz machine). Sure 8core, 4 threads each might be overkill for my desktop. But 2 core 4 threads each wouldn't be. At that's this year.
Now, if you want to talk servers, I've got many processes I could rewrite to be much more parallel, but the hardware can't keep up. I've only got 2 SMT CPUs per machine, so I can only do heavy processing in 2 to 4 processes/threads. I would dearly love to have CPUs with 8 cores 4 thread each. Currently the code is unnecessarily procedural so that I don't drive the machine into the ground. A few programs would benefit from thousands of active threads, but most would benefit from ~50 active threads. Sure, I could buy more hardware, but if a slightly more expensive CPU will let me run ~16x faster after a rewrite to take advantage, I'll take 50 new CPUs.
I could be a biased sample. I'm a power Linux user on the desktop, and have a nice horizontally scalable database design. That horitzontal scalabilty automatically makes many of my tasks implicitly parallel.
I've noticed that too. It's particular irksome in my production environment when I login to my administrative account, then `su - mysql`. For some reason, the MySQL CLI tool continues to connect as my admin user, not the 'mysql' users.
Sure, I can override with --user=mysql, or I could take the time to track down the issue. I'm just using it as an example that 'su -' is still different from an actual login (and a potential warning for people using Role accounts w/ MySQL CLI).
Although it is handy for slowing down crackers. From the web servers, neither root nor nobody are llowed to connect to the database. It would help slow down attacker while they figure out how to connect, giving me more time to intervene.
That's what you get for buying the consumer version. I've got NetBackup DataCenter, and it freakin' rocks.
I paid an a$$load of cash upfront, plus yearly support contracts (I try not to remember the actual numbers *shudder*). But it's worth it when you need backups to "just work" and keep on doing so.
Responding here, since I don't want to register to post at LiveJournal. For what it's worth, I have no idea at all about the DS or GBA. I don't own either and don't plan on it. IAAEE (Electrical. Engr.)
I agree that the post sounds suspicious, but I'd like to play devils advocate. The refutation sounds almost as suspicious as the orginal post.
> Well, grounding an already grounded wire and grounding the antenna isn't going to get you anywhere my friends.
That depends on the current involved and the capacity of the traces. The extra current drain might be required to handle running the cart at 5V instead of 3.3V.
I can't think of a good reason for grounding the antenna, but I can think of some plausible areas to investigate. Since the DS's processor contains the GBA's processor (stealing data from other posts). It's not uncommon for pins on these dual-mode processors to required grounding when it doesn't make sense to use the pin in that mode. You usually only find this information in the processor manual though, so it's unlikely he'd stumble acrossed it through expermental hacking.
> How does connecting 2 points on the CPU allow you to magically get a Z80 to work, as well as having the correct voltage of 5v on GB/GBC games and 3.3v on GBA games correctly detected?
This is an unusual way to change processor modes. The usual way is by grounding a pin or forcing it to Vcc. I would guess that one of the 2 pins is a mode pin and normally open or connected to Vcc, and the other pin is a Ground pin (possibly Vcc if the mode pin is open). By bridging the two, it's pulling the mode pin to the reference voltage of the other pin. Even if the pin was Vcc and is being pulled to ground, the current is general low enough that it would affect the battery life.
As I mentioned above, I'm not saying the hack is legit. I just think the counter arguments are as flimsy as the orginal arguments. Have fun hacking!
You're either overindexing the tables, or you missed a few performance parameters.
I'll admit that INSERTs/UPDATEs are slower than SELECT, but they shouldn't be that painful. My Database is approximate 50/50 read/write by byte, and 66/33 read/write by query. During peak updates, I 'load data infile' about 10 Gig of data in 2 hours. It uses about 2 of the 4 Sparc 450MHz processors. 'load data infile' is quite a bit more efficient for bulk loads that 1 million INSERT statements.
I'll assume you have a reason for RAID 0, and have some insurance against the inevitable failure. My system uses a RAID 0 stripe, but only because I know that each "disk" is actually mirrored by the EMC behind the scenes.
Now, when you wish to do a backup, lock out access to the database, and do a snapshot of the logical volume it is on. Then restore access to the database. This won't take very long at all.
MySQL has a feature to do this automagically: FLUSH TABLES WITH READ LOCK
Although you may need to consider the transaction running on the machine. I can run the FLUSH & LOCK just fine on the machines that do small I/O, but I have an external locking mechanism for machines that do large SELECTs or UPDATEs. For example, the machine that does a LOAD DATA INFILE on a 1M row data file will be locked until the LOAD and the FLUSH finish. Took me a while to track that one down...
In my case, all the long running queries are backend, so I can live with the external mutex (managed by MySQL - see GET_LOCK()). If the web site had any long running queries, I'd have to setup replication and offload this process to the slave.
I keep meaning to, but by the time it's in the carboy, I usually don't want to mess with it. Between work and kids, it invariables sits in the carboy for 2 weeks. I've only made ales, so I know it's done after 2 weeks. It would be nice to know the alcohol content, but I'm going to drink it anyway.:-)
I am planning to do some lagering now that the whether is cooling off. I haven't gotten the brewing fridge yet, so I'll be brewing in the garage. I'll need the hydrometer to tell me when it's done.
Ditch the plastic water bottle and get a real glass carboy for sanitary reasons.
I agree. I think the plastic buckets are great way to get started cheap, but beginner should graduate to carboys after a while.
I am using a plastic carboy. It's pretty much the same shape and size as a glass one, just plastic. I assume they'll get damaged at some point. So far they're brand new, I've got 6 of 'em, and a bleach soak plus the bottle washer cleans them out, so no scratches inside. I'll wait on the glass carboy until my kids are a bit older.
Switch to plastic pop-bottle type bottles with screw on caps.
Personally, I went the swing-top route. I started saving my Fischer's 22oz and Grolsh 16oz empties, and now I've got enough for a single 5gal batch. I way overcarbonated on my 2nd batch, so I know they aren't going to explode. I was playing with putting the carbonation sugar in each bottle, rather than the whole batch. I think 1 bottle got 6x the amount of carbonation sugar it should've had. Foam shot 18" in the air when I uncapped, and I lost half the beer to foaming, but the bottle held. I have cracked a few bottles (probably during washing before I got the bottle washer). They didn't explode, they just came out with flat beer. Mixed them with carbonated beer, and it tasted fine.
I want to brew a batch that needs a lot of bottle conditioning (Russian Imperial Stout). I was planning on using the empties and bottle capper for these batches, leaving my swing tops free for quick turn around batches. I haven't decided if I should get more swing tops, or just save up for a beer fridge and start kegging.
Most Home Brew stores stock water additives for this purpose. If not, you can find them online. It's not an easy task to adjust your water though, which is why I swipe the bottled water from work.
Once you've got a 5 gallon jug, you can fill it up pretty cheap with good quality water at most US supermarkets. The supermarket down the street has reverse-osmosi filtered water for 25 cents per gallon.
And it's easy to get started. I swiped a 5 gallon jug from the office water cooler, saved up 5 twelve-packs worth of import bottles, and went to the local Home Brew store. (import bottles are important, most American bottles are twist off, and those won't work.)
They had a nice kit for getting started that had 2 plastic buckets, an airlock, some plastic tubing, and a bunch of stuff that I don't use (hydrometer). You can get off even cheaper if you're willing to use more elbow grease. On top of that, I needed a bottle capper, bottle caps, and a beer kit.
Followed the directions included in the kit, waited 2 weeks, filled the bottles, capped 'em, waiting another week, and enjoyed some great brew.
Initial outlay was about $100 (Starter kit was $80, Beer kit was $20). It'll cost $20 to $30 for every 5 gallon batch, if I buy the hold-your-hand Beer Kits. 5 gallons makes me about 50 12oz bottles. At $10-$15 per twelve pack in the store, I save $10 to $45, depending on what I buy at the store.:-)
Like any hobby, there are lot of toys you can add. I used the beginner setup for a couple years, but started to get tired of washing bottles my hand, and controlling the bottling flow by hand. Another $40, and I think I'm done with my washing and bottling accessories.
> I'm no 60wpm guy but I can hunt and peck as fast as I can speak and/or think with very good accuracy.
This is a good point. I can type 75 WPM, but I can't compose that fast. I get closer when I'm writting a letter or memo, but my coding speed is way lower than 75 WPM.
That's true. I was replying to the AC, which did recommend tarring a bunch of gzipped files (for different reasons), and I kinda got distracted during testing. I have a strange habit of using dd way more than any sane person should.
I haven't verified this (I don't really want to cut up tape for an experiment), but I think hardware compression on the tape drive follows a similiar vewipoint. But it wouldn't surprise me if newer tape drives have forgotten about this. Most people don't consider Exacto and Scotch Tape to be restoration tools, and modern tape drives are getting much better about tape scrubbing.
Personally, I don't really use tar much anymore.The tape backup software has it's own format and the tape heads have hardware compression. When I need to save disk, I just gzip the files (they're nearly always large enough that tarring them first won't save much). And rsync -z is much better for remote file copies than tarring, copying, and untarring.
Actually, no. tar (Tape ARchiver) would still have to process all the crap in front to find the gzipped file.
tar made the assumption that it was sending/receiving it's data from a sequential access device, not a random access one. This assumption heavily influenced the file format. So even on a random access device, it still has to slog through the preceeding data to get what it wants. But it has some nice advantages for data recovery. If you lose half the tape, you can still get the files back on the part you have. It doesn't matter if you only have the first half, the last half, or the middle half. As long as the complete file exist on a piece of tape you have, you can get that file back.
Because of this, tar won't even exit early if you only want one file and it's at the beginning of the archive.
clewis@localhost % time tar xvf test1.tar win2000Serv.cfg.bz2 win2000Serv.cfg.bz2 0.170u 1.940s 0:14.54 14.5% 0+0k 0+0io 250pf+0w
clewis@localhost % time tar xvf test2.tar win2000Serv.cfg.bz2 win2000Serv.cfg.bz2 0.160u 1.970s 0:12.31 17.3% 0+0k 0+0io 250pf+0w
It takes just as long to extract a single file from the beginning or end of the archive, and they both take the same amount of time as processing the whole archive. Now, extracting the whole archive is much slower, because that big file takes a lot of bidirectional Disk I/O, but it's the same time whether it's at the begin or the end.
Now watch this, we'll "Lose" the first 15KBytes, and everything after 30KBytes.
clewis@localhost % dd if=./test1.tar bs=1k skip=15 of=test1.1.tar clewis@localhost % ls -la test1.1.tar -rw-r--r-- 1 clewis users 15360 Jan 29 17:53 test1.1.tar clewis@localhost % time tar tvf./test1.1.tar tar: This does not look like a tar archive tar: Skipping to next header -rw-r--r-- clewis/users 1006 2004-01-13 13:41:20 win2000Serv.nvram.bz2 -rw-r--r-- clewis/users 342346881 2004-01-13 14:09:11 win2000Serv.vmdk.bz2 tar: Unexpected EOF in archive tar: Error is not recoverable: exiting now 0.010u 0.000s 0:00.03 33.3% 0+0k 0+0io 195pf+0w
I still got back the data that existed in the part that was saved. win2000Serv.vmdk.bz2 is corrupt, but win2000Serv.nvram.bz2 is fine.
Looking at the User's guide, it looks like you could use it's basic features on non IBM/Hitachi drives. You also might want to check out the other manufacturers sites and see if they've got something similiar.
I agree that MySQL's version of SQL isn't very portable. But if you're going to be picky, at least pick a good example.
CREATE TABLE foo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
bar CHAR(50) NOT NULL DEFAULT '' )
How exactly is id "some kind of ugly data type unto itself"?
I usually make my id's BIGINT UNSIGNED, but most people don't need 2^64 keys.
Now, it you want bastard hacks, how about 'REPLACE INTO...' instead of 'DELETE FROM...; INSERT INTO...'. All because MySQL only recently got commit/rollback. Although I've started to become fond of 'DROP TABLE IF EXISTS foo'
I'm still trying to get 3.23 to run without hanging. It appears that MySQL has some deadlock issues on 64 bit processors. I see it on Sparcs and they're haivng issues with Itanium2. 3.23.56 may have finally fixed this bug that I reported over 2 years ago. Not for lack of trying, but who the hell runs MySQL on a Sun cluster backed by a SAN? Er, besides me.
Now that 4.0 is officially stable, I'm willing to give it a go. I'll make it part of the next release cycle. If it makes it through a couple months on development, then I'll roll it out.
Since I pay MySQL for support, I'll trust their judgement on what consitutes "production" quality code. It's all about the blame.
The first legitimate use of the tag!
I beg to differ. Just on my desktop, there are currently 14 processes recieving a slice of the CPU this second, and 200+ processes that will receive CPU time sometime in the next 10 seconds. 3 of those processes are always fighting for the CPU (this is on a single P4 SMT 2.8 Ghz machine). Sure 8core, 4 threads each might be overkill for my desktop. But 2 core 4 threads each wouldn't be. At that's this year.
Now, if you want to talk servers, I've got many processes I could rewrite to be much more parallel, but the hardware can't keep up. I've only got 2 SMT CPUs per machine, so I can only do heavy processing in 2 to 4 processes/threads. I would dearly love to have CPUs with 8 cores 4 thread each. Currently the code is unnecessarily procedural so that I don't drive the machine into the ground. A few programs would benefit from thousands of active threads, but most would benefit from ~50 active threads. Sure, I could buy more hardware, but if a slightly more expensive CPU will let me run ~16x faster after a rewrite to take advantage, I'll take 50 new CPUs.
I could be a biased sample. I'm a power Linux user on the desktop, and have a nice horizontally scalable database design. That horitzontal scalabilty automatically makes many of my tasks implicitly parallel.
IBM posts as "dilvish_the_damned"?
I've noticed that too. It's particular irksome in my production environment when I login to my administrative account, then `su - mysql`. For some reason, the MySQL CLI tool continues to connect as my admin user, not the 'mysql' users.
Sure, I can override with --user=mysql, or I could take the time to track down the issue. I'm just using it as an example that 'su -' is still different from an actual login (and a potential warning for people using Role accounts w/ MySQL CLI).
Although it is handy for slowing down crackers. From the web servers, neither root nor nobody are llowed to connect to the database. It would help slow down attacker while they figure out how to connect, giving me more time to intervene.
I was thinking more of... sanitary... issues.
Maybe it's just me, but it seems like a laptop isn't the best porn delivery device...
That's what you get for buying the consumer version. I've got NetBackup DataCenter, and it freakin' rocks.
I paid an a$$load of cash upfront, plus yearly support contracts (I try not to remember the actual numbers *shudder*). But it's worth it when you need backups to "just work" and keep on doing so.
Try the mirror on their website. I'm getting 0.5 k/sec!
I tried to reply to a post, but it told me that Anonymous posting had been disabled for that thread. *Shrug*
Responding here, since I don't want to register to post at LiveJournal. For what it's worth, I have no idea at all about the DS or GBA. I don't own either and don't plan on it. IAAEE (Electrical. Engr.)
I agree that the post sounds suspicious, but I'd like to play devils advocate. The refutation sounds almost as suspicious as the orginal post.
> Well, grounding an already grounded wire and grounding the antenna isn't going to get you anywhere my friends.
That depends on the current involved and the capacity of the traces. The extra current drain might be required to handle running the cart at 5V instead of 3.3V.
I can't think of a good reason for grounding the antenna, but I can think of some plausible areas to investigate. Since the DS's processor contains the GBA's processor (stealing data from other posts). It's not uncommon for pins on these dual-mode processors to required grounding when it doesn't make sense to use the pin in that mode. You usually only find this information in the processor manual though, so it's unlikely he'd stumble acrossed it through expermental hacking.
> How does connecting 2 points on the CPU allow you to magically get a Z80 to work, as well as having the correct voltage of 5v on GB/GBC games and 3.3v on GBA games correctly detected?
This is an unusual way to change processor modes. The usual way is by grounding a pin or forcing it to Vcc. I would guess that one of the 2 pins is a mode pin and normally open or connected to Vcc, and the other pin is a Ground pin (possibly Vcc if the mode pin is open). By bridging the two, it's pulling the mode pin to the reference voltage of the other pin. Even if the pin was Vcc and is being pulled to ground, the current is general low enough that it would affect the battery life.
As I mentioned above, I'm not saying the hack is legit. I just think the counter arguments are as flimsy as the orginal arguments. Have fun hacking!
Took a look at top and you're right. I was going to suggest Opera anyway. It's better, but still not lightweight enough for this guy.
Opera 7.54 (shared) with 4 tabs open is using 82 Megs of RAM.
FireFox 1.0-2 (Fedora Core 3) with the same 4 tabs open is using 123 Megs of RAM.
You're either overindexing the tables, or you missed a few performance parameters.
I'll admit that INSERTs/UPDATEs are slower than SELECT, but they shouldn't be that painful. My Database is approximate 50/50 read/write by byte, and 66/33 read/write by query. During peak updates, I 'load data infile' about 10 Gig of data in 2 hours. It uses about 2 of the 4 Sparc 450MHz processors. 'load data infile' is quite a bit more efficient for bulk loads that 1 million INSERT statements.
I'll assume you have a reason for RAID 0, and have some insurance against the inevitable failure. My system uses a RAID 0 stripe, but only because I know that each "disk" is actually mirrored by the EMC behind the scenes.
Now, when you wish to do a backup, lock out access to the database, and do a snapshot of the logical volume it is on. Then restore access to the database. This won't take very long at all.
MySQL has a feature to do this automagically:
FLUSH TABLES WITH READ LOCK
Although you may need to consider the transaction running on the machine. I can run the FLUSH & LOCK just fine on the machines that do small I/O, but I have an external locking mechanism for machines that do large SELECTs or UPDATEs. For example, the machine that does a LOAD DATA INFILE on a 1M row data file will be locked until the LOAD and the FLUSH finish. Took me a while to track that one down...
In my case, all the long running queries are backend, so I can live with the external mutex (managed by MySQL - see GET_LOCK()). If the web site had any long running queries, I'd have to setup replication and offload this process to the slave.
Use your hydrometer.
:-)
I keep meaning to, but by the time it's in the carboy, I usually don't want to mess with it. Between work and kids, it invariables sits in the carboy for 2 weeks. I've only made ales, so I know it's done after 2 weeks. It would be nice to know the alcohol content, but I'm going to drink it anyway.
I am planning to do some lagering now that the whether is cooling off. I haven't gotten the brewing fridge yet, so I'll be brewing in the garage. I'll need the hydrometer to tell me when it's done.
Ditch the plastic water bottle and get a real glass carboy for sanitary reasons.
I agree. I think the plastic buckets are great way to get started cheap, but beginner should graduate to carboys after a while.
I am using a plastic carboy. It's pretty much the same shape and size as a glass one, just plastic. I assume they'll get damaged at some point. So far they're brand new, I've got 6 of 'em, and a bleach soak plus the bottle washer cleans them out, so no scratches inside. I'll wait on the glass carboy until my kids are a bit older.
Switch to plastic pop-bottle type bottles with screw on caps.
Personally, I went the swing-top route. I started saving my Fischer's 22oz and Grolsh 16oz empties, and now I've got enough for a single 5gal batch. I way overcarbonated on my 2nd batch, so I know they aren't going to explode. I was playing with putting the carbonation sugar in each bottle, rather than the whole batch. I think 1 bottle got 6x the amount of carbonation sugar it should've had. Foam shot 18" in the air when I uncapped, and I lost half the beer to foaming, but the bottle held. I have cracked a few bottles (probably during washing before I got the bottle washer). They didn't explode, they just came out with flat beer. Mixed them with carbonated beer, and it tasted fine.
I want to brew a batch that needs a lot of bottle conditioning (Russian Imperial Stout). I was planning on using the empties and bottle capper for these batches, leaving my swing tops free for quick turn around batches. I haven't decided if I should get more swing tops, or just save up for a beer fridge and start kegging.
Most Home Brew stores stock water additives for this purpose. If not, you can find them online. It's not an easy task to adjust your water though, which is why I swipe the bottled water from work.
Once you've got a 5 gallon jug, you can fill it up pretty cheap with good quality water at most US supermarkets. The supermarket down the street has reverse-osmosi filtered water for 25 cents per gallon.
And it's easy to get started. I swiped a 5 gallon jug from the office water cooler, saved up 5 twelve-packs worth of import bottles, and went to the local Home Brew store. (import bottles are important, most American bottles are twist off, and those won't work.)
:-)
They had a nice kit for getting started that had 2 plastic buckets, an airlock, some plastic tubing, and a bunch of stuff that I don't use (hydrometer). You can get off even cheaper if you're willing to use more elbow grease. On top of that, I needed a bottle capper, bottle caps, and a beer kit.
Followed the directions included in the kit, waited 2 weeks, filled the bottles, capped 'em, waiting another week, and enjoyed some great brew.
Initial outlay was about $100 (Starter kit was $80, Beer kit was $20). It'll cost $20 to $30 for every 5 gallon batch, if I buy the hold-your-hand Beer Kits. 5 gallons makes me about 50 12oz bottles. At $10-$15 per twelve pack in the store, I save $10 to $45, depending on what I buy at the store.
Like any hobby, there are lot of toys you can add. I used the beginner setup for a couple years, but started to get tired of washing bottles my hand, and controlling the bottling flow by hand. Another $40, and I think I'm done with my washing and bottling accessories.
Too bad it wasn't insured.
2 .s tm
http://news.bbc.co.uk/2/hi/entertainment/359070
> I'm no 60wpm guy but I can hunt and peck as fast as I can speak and/or think with very good accuracy.
This is a good point. I can type 75 WPM, but I can't compose that fast. I get closer when I'm writting a letter or memo, but my coding speed is way lower than 75 WPM.
That's true. I was replying to the AC, which did recommend tarring a bunch of gzipped files (for different reasons), and I kinda got distracted during testing. I have a strange habit of using dd way more than any sane person should.
I haven't verified this (I don't really want to cut up tape for an experiment), but I think hardware compression on the tape drive follows a similiar vewipoint. But it wouldn't surprise me if newer tape drives have forgotten about this. Most people don't consider Exacto and Scotch Tape to be restoration tools, and modern tape drives are getting much better about tape scrubbing.
Personally, I don't really use tar much anymore.The tape backup software has it's own format and the tape heads have hardware compression. When I need to save disk, I just gzip the files (they're nearly always large enough that tarring them first won't save much). And rsync -z is much better for remote file copies than tarring, copying, and untarring.
Actually, no. tar (Tape ARchiver) would still have to process all the crap in front to find the gzipped file.
./test1.1.tar
tar made the assumption that it was sending/receiving it's data from a sequential access device, not a random access one. This assumption heavily influenced the file format. So even on a random access device, it still has to slog through the preceeding data to get what it wants. But it has some nice advantages for data recovery. If you lose half the tape, you can still get the files back on the part you have. It doesn't matter if you only have the first half, the last half, or the middle half. As long as the complete file exist on a piece of tape you have, you can get that file back.
Because of this, tar won't even exit early if you only want one file and it's at the beginning of the archive.
Watch:
crlewis@localhost % time tar tvf test1.tar
-rw-r--r-- clewis/users 439 2004-01-13 13:41:20 win2000Serv.cfg.bz2
-rw-r--r-- clewis/users 14735 2004-01-13 13:41:20 win2000Serv.log.bz2
-rw-r--r-- clewis/users 1006 2004-01-13 13:41:20 win2000Serv.nvram.bz2
-rw-r--r-- clewis/users 342346881 2004-01-13 14:09:11 win2000Serv.vmdk.bz2
0.080u 2.280s 0:13.95 16.9% 0+0k 0+0io 191pf+0w
crlewis@localhost % time tar tvf test2.tar
-rw-r--r-- clewis/users 342346881 2004-01-13 14:09:11 win2000Serv.vmdk.bz2
-rw-r--r-- clewis/users 439 2004-01-13 13:41:20 win2000Serv.cfg.bz2
-rw-r--r-- clewis/users 14735 2004-01-13 13:41:20 win2000Serv.log.bz2
-rw-r--r-- clewis/users 1006 2004-01-13 13:41:20 win2000Serv.nvram.bz2
0.170u 2.070s 0:13.59 16.4% 0+0k 0+0io 191pf+0w
clewis@localhost % time tar xvf test1.tar win2000Serv.cfg.bz2
win2000Serv.cfg.bz2
0.170u 1.940s 0:14.54 14.5% 0+0k 0+0io 250pf+0w
clewis@localhost % time tar xvf test2.tar win2000Serv.cfg.bz2
win2000Serv.cfg.bz2
0.160u 1.970s 0:12.31 17.3% 0+0k 0+0io 250pf+0w
It takes just as long to extract a single file from the beginning or end of the archive, and they both take the same amount of time as processing the whole archive. Now, extracting the whole archive is much slower, because that big file takes a lot of bidirectional Disk I/O, but it's the same time whether it's at the begin or the end.
Now watch this, we'll "Lose" the first 15KBytes, and everything after 30KBytes.
clewis@localhost % dd if=./test1.tar bs=1k skip=15 of=test1.1.tar
clewis@localhost % ls -la test1.1.tar
-rw-r--r-- 1 clewis users 15360 Jan 29 17:53 test1.1.tar
clewis@localhost % time tar tvf
tar: This does not look like a tar archive
tar: Skipping to next header
-rw-r--r-- clewis/users 1006 2004-01-13 13:41:20 win2000Serv.nvram.bz2
-rw-r--r-- clewis/users 342346881 2004-01-13 14:09:11 win2000Serv.vmdk.bz2
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
0.010u 0.000s 0:00.03 33.3% 0+0k 0+0io 195pf+0w
I still got back the data that existed in the part that was saved. win2000Serv.vmdk.bz2 is corrupt, but win2000Serv.nvram.bz2 is fine.
The news.com.com artcile has more meat.
I can't find 'John Thorensen' on the internal employee search engine. Although that doesn't mean it isn't astroturfing...
I was looking for some support tools for my Deskstar yesterday, and ran acrossed this tool for OEM's from Hitachi.
Hitachi DDD-SI
Looking at the User's guide, it looks like you could use it's basic features on non IBM/Hitachi drives. You also might want to check out the other manufacturers sites and see if they've got something similiar.
I agree that MySQL's version of SQL isn't very portable. But if you're going to be picky, at least pick a good example.
...' instead of 'DELETE FROM ...; INSERT INTO ...'. All because MySQL only recently got commit/rollback. Although I've started to become fond of 'DROP TABLE IF EXISTS foo'
CREATE TABLE foo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
bar CHAR(50) NOT NULL DEFAULT ''
)
How exactly is id "some kind of ugly data type unto itself"?
I usually make my id's BIGINT UNSIGNED, but most people don't need 2^64 keys.
Now, it you want bastard hacks, how about 'REPLACE INTO
I'm still trying to get 3.23 to run without hanging. It appears that MySQL has some deadlock issues on 64 bit processors. I see it on Sparcs and they're haivng issues with Itanium2. 3.23.56 may have finally fixed this bug that I reported over 2 years ago. Not for lack of trying, but who the hell runs MySQL on a Sun cluster backed by a SAN? Er, besides me.
Now that 4.0 is officially stable, I'm willing to give it a go. I'll make it part of the next release cycle. If it makes it through a couple months on development, then I'll roll it out.
Since I pay MySQL for support, I'll trust their judgement on what consitutes "production" quality code. It's all about the blame.