INFO-VAX Thu, 18 Oct 2007 Volume 2007 : Issue 569 Contents: Re: CHECKSUM oddity? Re: CHECKSUM oddity? Itanium3: Tukwila pictures Re: NFS client accessing Windows acting badly (long) Re: NFS client accessing Windows acting badly (long) Re: NFS client accessing Windows acting badly (long) OT: RIAA is now attacking NNTP server operators Re: OT: RIAA is now attacking NNTP server operators OT: Space Station: Internal NASA Reports Explain Origins of June Computer Crisis Rare job posting Re: still not convinced global warming a hoax? Re: still not convinced global warming a hoax? Re: still not convinced global warming a hoax? Re: still not convinced global warming a hoax? Re: Which delete statement is faster? Re: Which delete statement is faster? Re: Which delete statement is faster? Re: Which delete statement is faster? Re: Which delete statement is faster? ---------------------------------------------------------------------- Date: 17 Oct 2007 14:39:16 -0500 From: koehler@eisner.nospam.encompasserve.org (Bob Koehler) Subject: Re: CHECKSUM oddity? Message-ID: In article , cornelius@encompasserve.org (George Cornelius) writes: > In article , glen herrmannsfeldt writes: >> Another interesting case is the ability to read tapes backwards. >> While many newer drives can't do that, most of the older ones did. > > IBM certainly did it. I used the 2400 series drives, which had that > capability, at least on mainframe channels. > As of the December 2000 doc CD, only TK50 was a supported tape that didn't support reading in reverse. I suspect that's changed, but when I tried to bring up the latest I/O User's Guide the I didn't wait to see how long the doc site would take to respond to the PDF file request. I wouldn't expect 8mm to read in reverse, either, but those never made it to full support. ------------------------------ Date: 17 Oct 2007 21:46:36 -0500 From: cornelius@encompasserve.org (George Cornelius) Subject: Re: CHECKSUM oddity? Message-ID: In article , koehler@eisner.nospam.encompasserve.org (Bob Koehler) writes: > In article , cornelius@encompasserve.org (George Cornelius) writes: >> In article , glen herrmannsfeldt writes: >>> Another interesting case is the ability to read tapes backwards. >>> While many newer drives can't do that, most of the older ones did. >> >> IBM certainly did it. I used the 2400 series drives, which had that >> capability, at least on mainframe channels. >> > > As of the December 2000 doc CD, only TK50 was a supported tape that > didn't support reading in reverse. I suspect that's changed, but when > I tried to bring up the latest I/O User's Guide the I didn't wait > to see how long the doc site would take to respond to the PDF file > request. Actually, I was thinking pre-history - about 10 years before VMS. And, yes, the VMS I/O User's Guide seems to list only TK50's, of the various obsolete drives it claims are supported, as being unable to read backwards. I just spit an IO$_READPBLK!IO$M_REVERSE at a STK 9840 that had advanced one record from load point and it happily fetched the VOL1 label into my input buffer, so VMS read reverse support is alive and well. -- George Cornelius cornelius(at)eisner.decus.org cornelius(at)mayo.edu > > I wouldn't expect 8mm to read in reverse, either, but those never made > it to full support. > ------------------------------ Date: Wed, 17 Oct 2007 19:20:50 -0700 From: Neil Rieck Subject: Itanium3: Tukwila pictures Message-ID: <1192674050.799066.300230@e9g2000prf.googlegroups.com> http://www.theinquirer.net/gb/inquirer/news/2007/10/17/idf-taiwan-itanium-news Neil Rieck Kitchener/Waterloo/Cambridge, Ontario, Canada. http://www3.sympatico.ca/n.rieck/links/cool_openvms.html http://www3.sympatico.ca/n.rieck/links/openvms_demos.html ------------------------------ Date: Wed, 17 Oct 2007 20:26:22 +0200 From: "P. Sture" Subject: Re: NFS client accessing Windows acting badly (long) Message-ID: In article <13h57rffd9oip1e@corp.supernews.com>, Gremlin wrote: > So, on the VMS side the username is SYSTEM and that maps to the Windows > Domain Administrator account, I can't do much better than that! Hi Gremlin, Please don't be fooled by thinking that SYSTEM gives you extra where NFS is concerned - it doesn't. You need to get the UID/GID to UIC mapping correct. -- Paul Sture Sue's OpenVMS bookmarks: http://eisner.encompasserve.org/~sture/ovms-bookmarks.html ------------------------------ Date: Wed, 17 Oct 2007 20:30:10 +0200 From: "P. Sture" Subject: Re: NFS client accessing Windows acting badly (long) Message-ID: In article <13h57masm788hec@corp.supernews.com>, Gremlin wrote: > Hi Paul > > That is one of the combinations that I tried and, although it maps, it > won't allow me to "see" any of the folders/files.....sigh It was worth a try. At least you now know that you aren't fighting incorrect syntax. With TCP/IP services, the general rule is that if you need to force lowercase, put it in double quotes. > P. Sture wrote: > > In article <13h3p7779620690@corp.supernews.com>, > > Gremlin wrote: > > > >> I have also tried the following mount commands (notice the alternate or > >> no use of leading / for the path): > >> > tcpip mount dnfs1:[data] /system/host="dl380"/path="nfsdata"/struc=5 > >> > tcpip mount dnfs1:[data] /system/host="dl380"/path="/nfsdata"/struc=5 > >> > tcpip mount dnfs1:[data] /system/host="dl380"/path="\nfsdata"/struc=5 > >> > >> also trying > >> > >> > tcpip mount dnfs1: /system/host=dl380/path=nfsdata/struc=5 > >> > tcpip mount dnfs1:[000000] /system/host=dl380/path=nfsdata/struc=5 > >> > >> and various combinations with/without the quotes. > > > > No Windoes box here, but here's the flavour that works to access the NFS > > server on my Mac: > > > > $ tcpip mount dnfs2:[paul] /host="mac" - > > /path="/Volumes/VMS_Backup"/system/structure=5 > > -- Paul Sture Sue's OpenVMS bookmarks: http://eisner.encompasserve.org/~sture/ovms-bookmarks.html ------------------------------ Date: Thu, 18 Oct 2007 08:45:24 +1000 From: Gremlin Subject: Re: NFS client accessing Windows acting badly (long) Message-ID: <13hd4473piuuc9@corp.supernews.com> Hi Paul The mapping may be a problem, but I have no idead if it is "real" or how to get around it. I have intentionally mis-mapped accounts and I am rewarded with a "mapping error" in the Windows log file, so I know what I "should" see if I have a mapping problem - I hope :) On the other hand, I am using an identical username on the Alpha and on the Windows server and they are mapped using the SFU tool - the proxy on the Alpha also uses the same names and UID/GID of 0, which is also used on Windows. I even have Anonymous (-2) configured and allowed - still not happening. There must be an easier way.......:( P. Sture wrote: > In article <13h57masm788hec@corp.supernews.com>, > Gremlin wrote: > >> Hi Paul >> >> That is one of the combinations that I tried and, although it maps, it >> won't allow me to "see" any of the folders/files.....sigh > > It was worth a try. At least you now know that you aren't fighting > incorrect syntax. With TCP/IP services, the general rule is that if you > need to force lowercase, put it in double quotes. > >> P. Sture wrote: >>> In article <13h3p7779620690@corp.supernews.com>, >>> Gremlin wrote: >>> >>>> I have also tried the following mount commands (notice the alternate or >>>> no use of leading / for the path): >>>> > tcpip mount dnfs1:[data] /system/host="dl380"/path="nfsdata"/struc=5 >>>> > tcpip mount dnfs1:[data] /system/host="dl380"/path="/nfsdata"/struc=5 >>>> > tcpip mount dnfs1:[data] /system/host="dl380"/path="\nfsdata"/struc=5 >>>> >>>> also trying >>>> >>>> > tcpip mount dnfs1: /system/host=dl380/path=nfsdata/struc=5 >>>> > tcpip mount dnfs1:[000000] /system/host=dl380/path=nfsdata/struc=5 >>>> >>>> and various combinations with/without the quotes. >>> No Windoes box here, but here's the flavour that works to access the NFS >>> server on my Mac: >>> >>> $ tcpip mount dnfs2:[paul] /host="mac" - >>> /path="/Volumes/VMS_Backup"/system/structure=5 >>> > ------------------------------ Date: Wed, 17 Oct 2007 14:28:32 -0400 From: JF Mezei Subject: OT: RIAA is now attacking NNTP server operators Message-ID: <811fc$47165452$cef8887a$5614@TEKSAVVY.COM> http://www.news.com/8301-13578_3-9798715-38.html RIAA is suing a NNTP provider, USENET.COM for auding people illegally download music. They chose USENET.COM because its marketing uncludes mention of the ability to download and upload MP3s. But once that precedent has been set, they can then sue every other NNTP server operator including universities etc etc. We need to seriously stop the RIAA. This really risks destroying what is left of NNTP because commercial servers may have to shutdown because of RIAA. (for those who don't realise this, comp.os.vms is a usenet newsgroup and it is bad enough that many ISPs have dropped support for NNTP, but with the RIAA now trying to shoot down the remaining server operators, it may be very bad news for NNTP services). ------------------------------ Date: Wed, 17 Oct 2007 21:29:19 +0200 From: Michael Unger Subject: Re: OT: RIAA is now attacking NNTP server operators Message-ID: <5nn68sFit8emU2@mid.individual.net> On 2007-10-17 20:28, "JF Mezei" wrote: > http://www.news.com/8301-13578_3-9798715-38.html > > RIAA is suing a NNTP provider, USENET.COM for auding people illegally > download music. They chose USENET.COM because its marketing uncludes > mention of the ability to download and upload MP3s. But once that > precedent has been set, they can then sue every other NNTP server > operator including universities etc etc. I don't think so -- there are many NNTP servers (including the one I'm using) which don't carry *binary* groups. Non-textual postings (and HTML content and attachments as well) are simply blocked. > [...] Michael -- Real names enhance the probability of getting real answers. My e-mail account at DECUS Munich is no longer valid. ------------------------------ Date: Wed, 17 Oct 2007 14:17:27 -0400 From: norm.raphael@metso.com Subject: OT: Space Station: Internal NASA Reports Explain Origins of June Computer Crisis Message-ID: This is a multipart message in MIME format. --=_related 0064774D85257377_= Content-Type: multipart/alternative; boundary="=_alternative 0064774D85257377_=" --=_alternative 0064774D85257377_= Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Spectrum OnLine http://www.spectrum.ieee.org/oct07/5598 Sponsored By IEEE Spectrum Space Station: Internal NASA Reports Explain Origins of June Computer=20 Crisis By: James Oberg=20 First Published October 2007 A mistake like that on the way to Mars would be fatal Photo: NASA=20 4 October 2007?Aboard the International Space Station, the three Russian=20 computers that control the station's orientation have been happily humming = away now for several weeks. And that's proof that the crisis in June that=20 crippled the ISS and bloodied the U.S.-Russian partnership that supports=20 it, has been solved. But the technological?and diplomatic?lessons of that crisis need to be=20 fully understood and appreciated. Because if the failure had occurred on=20 the way to Mars, say, it probably would have been fatal, and it will=20 likely be the same international partnership that builds the hardware for=20 a future Mars mission. The critical computer systems, it turned out, had been designed, built,=20 and operated incorrectly?and the failure was inevitable. Only being so=20 relatively close to Earth, in range of resupply and support missions,=20 saved the spacecraft from catastrophe. During the first days of the computer failure in June, the station's=20 atmosphere control system seized up. The failure also knocked out the=20 autopilot's ability to fire maneuvering thrusters to hold the station=20 steady during the undocking of the space shuttle, which had arrived on 10=20 June. The terse description in the NASA internal technical report on the=20 crisis, obtained by IEEE Spectrum, put it this way: ?On 13 June, a=20 complete shutdown of secondary power to all [three] central computer and=20 terminal computer channels occurred, resulting in the loss of capability=20 to control ISS Russian segment systems.? Russian officials were quick to blame NASA for ?zapping their computers?=20 with ?dirty? 28-volt power from a newly installed solar power wing.=20 Another Russian explanation was that the expanded station structure (the=20 main purpose of the shuttle visit) might be excessively charging up due to = its orbital speed through Earth's magnetic field. These were the first of=20 many bad guesses by top Russian program managers that would distract=20 engineers trying to get at the real problem. The initial assumption was that some external interference, such as noise=20 on the power supply, was responsible for generating false commands inside=20 the computer system. On the assumption that the bad commands were coming=20 from inside a power-monitoring device, the crew bypassed it on two of the=20 three downed computers, using jumper cables. By the time the shuttle=20 undocked on 19 June, the computers began to function normally?or so it=20 seemed. Replacement parts were quickly manifested on a robot supply ship,=20 while ground engineers wrestled with the fundamental question of cause and = effect. Analysis teams still had to determine why the computers failed, and why=20 the jumper cables seemed to fix the problem. More important, they needed=20 to know whether the problem really was fixed, or whether something could=20 again trigger the systemwide crash of the supposedly triply redundant=20 architecture. In the weeks that followed the crisis and apparent recovery, station=20 commander Fyodor Yurchikhin and his fellow cosmonaut Oleg Kotov=20 disassembled the boxes and cabling and inspected every angle of the=20 hardware, occasionally assisted by their American crewmate, Clayton=20 Anderson. Multiple scopes and probes had failed to find the flaw, but=20 their eyes and fingers eventually did. The connection pins from the power-monitoring device they'd bypassed=20 earlier, they found, were wet?and corroded. The final report described the = ?change in appearance? of fasteners on one box's connectors and noted ?the = presence of deposits and residue on the housings, and residue and spots on = the contact surfaces.? Continuity checks found that specific wires, called command lines, in the=20 cable coming out of the device had failed. And one of those lines had=20 short-circuited. Also, in a shocking design flaw, there was a ?power off?=20 command leading to all three of the supposedly redundant processing units. = The line was designed to protect the main computers, which are downstream=20 of the power monitor, from power glitches too great for normal power=20 filters to protect against. It does so by turning the computers off when=20 it senses trouble. But in a failure unanticipated by its designers, this=20 one command path itself was able to kill all three processing units due to = a single corrosion-induced short. That discovery was a great relief to spacecraft controllers in Houston and = Moscow. The bypass jumper cables were exactly what really was needed to=20 circumvent the false ?power off? command, because they forced that command = line to remain dormant. Using the cables did expose the computers to=20 damage from real power surges, but by then the power system had settled=20 into a benign and steady state. But what caused the corrosion? The source was quickly identified: water=20 condensation, one of the most frequent culprits in avionics problems. The=20 NASA report says the damage ?presumably? was ?the result of repeated=20 emissions of condensate from the air separation lines? of a nearby=20 dehumidifier. Air flow and power usage were supposed to keep the computer=20 cables warm enough to prevent water from condensing on them, but the=20 dehumidifier had been malfunctioning, and its frequent on-off cycles led=20 to surges of water vapor. Also, a stream of cold air from another location = on the dehumidifier helped drive the cable temperatures occasionally below = the dew point. During the August shuttle visit, the Russians were able to turn=20 stabilization control over to the American spaceship and tear down their=20 old computer network. The boxes and cables were replaced with fresh units, = built and supplied by the European Space Agency and sent up inside a=20 recently launched robot supply ship. ?Upon removal of the old unit, the crew reported that there was cold=20 condensate behind it,? notes an internal NASA ISS status report for 12=20 August obtained by IEEE Spectrum. ?Drops of humidity and mold were=20 discovered. The unit itself is humid.? To add to their headaches, the cosmonauts discovered that one of the new=20 cables was about 40 centimeters shorter than the one it was supposed to=20 replace?and it wouldn't reach. After careful visual inspection of the=20 original cable , the cosmonauts decided there were no signs of corrosion,=20 so there was no need to replace it. They also decided to rig a thermal=20 barrier out of a surplus reference book and all-purpose gray tape. As a=20 last step, they removed the jumper cables, verified the system was=20 functional, and closed the access panels. It is dismaying that after decades of experience with manned space=20 stations, Russian space engineers still couldn't keep unwanted=20 condensation at bay. But what's worse is that they designed circuitry that = would allow one spot of corrosion to fell a supposedly triply redundant=20 control computer complex. Another cause for dismay is that when trouble=20 did develop, the Russians' first instinct was to blame their American=20 partners. Such deficiencies need to be worked out in the years ahead, on=20 the space station, before both the technology and the diplomacy can be=20 thought reliable enough for far-ranging missions that replacement=20 shipments wouldn't be able to reach. About the Author JAMES OBERG, a 22-year veteran of NASA mission control, is now a writer=20 and consultant in Houston. --=_alternative 0064774D85257377_= Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable
Spectrum OnLine

http://www.spectrum.ieee.org/oct07/5598

Sponsored By IEEE Spectrum<= font size=3D1 color=3Dblue>


Space Station: Internal NASA Reports Explain Origins of June Computer Crisis
By: James Oberg
First Published October= 2007


A mistake like that on = the way to Mars would be fatal


Photo: NASA

4 October 2007—Aboard the International Space Stati= on, the three Russian computers that control the station's orientation have been happily humming away now for several weeks. And that's proof that the crisis in June that crippled the ISS and bloodied the U.S.-Russian partnership that supports it, has been solved.

But the technological—and diplomatic—lessons = of that crisis need to be fully understood and appreciated. Because if the failure had occurred on the way to Mars, say, it probably would have been fatal, and it will likely be the same international partnership that builds the hardware for a future Mars mission.

The critical computer systems, it turned out, had been designed, built, and operated incorrectly—and the failure was inevita= ble. Only being so relatively close to Earth, in range of resupply and support missions, saved the spacecraft from catastrophe.

During the first days of the computer failure in June, the station's atmosphere control system seized up. The failure also knocked out the autopilot's ability to fire maneuvering thrusters to hold the stati= on steady during the undocking of the space shuttle, which had arrived on 10 June. The terse description in the NASA internal technical report on the crisis, obtained by IEEE Spectrum, put it this way: “On 13 June, a complete shutdown of secondary power to all [three] central computer and terminal computer channels occurred, resulting in the loss of capability to control ISS Russian segment systems.”

Russian officials were quick to blame NASA for “zap= ping their computers” with “dirty” 28-volt power from a newly = installed solar power wing. Another Russian explanation was that the expanded station struc= ture (the main purpose of the shuttle visit) might be excessively charging up due to its orbital speed through Earth's magnetic field. These were the first of many bad guesses by top Russian program managers that would distra= ct engineers trying to get at the real problem.

The initial assumption was that some external interferenc= e, such as noise on the power supply, was responsible for generating false commands inside the computer system. On the assumption that the bad commands were coming from inside a power-monitoring device, the crew bypassed it on two of the three downed computers, using jumper cables. By the time the shuttle undocked on 19 June, the computers began to function normally&#= 8212;or so it seemed. Replacement parts were quickly manifested on a robot supply ship, while ground engineers wrestled with the fundamental question of cause and effect.

Analysis teams still had to determine why the computers failed, and why the jumper cables seemed to fix the problem. More important, they needed to know whether the problem really was fixed, or whether someth= ing could again trigger the systemwide crash of the supposedly triply redundant architecture.

In the weeks that followed the crisis and apparent recove= ry, station commander Fyodor Yurchikhin and his fellow cosmonaut Oleg Kotov disassembled the boxes and cabling and inspected every angle of the hardwar= e, occasionally assisted by their American crewmate, Clayton Anderson. Multiple scopes and probes had failed to find the flaw, but their eyes and fingers eventually did.

The connection pins from the power-monitoring device they= 'd bypassed earlier, they found, were wet—and corroded. The final report described the “change in appearance” of fasteners on one box's = connectors and noted “the presence of deposits and residue on the housings, and = residue and spots on the contact surfaces.”

Continuity checks found that specific wires, called comma= nd lines, in the cable coming out of the device had failed. And one of those lines had short-circuited. Also, in a shocking design flaw, there was a “power off” command leading to all three of the supposedly redu= ndant processing units. The line was designed to protect the main computers, which are downstream of the power monitor, from power glitches too great for normal power filters to protect against. It does so by turning the computers off when it senses trouble. But in a failure unanticipated by its designers, this one command path itself was able to kill all three processing units due to a single corrosion-induced short.

That discovery was a great relief to spacecraft controlle= rs in Houston and Moscow. The bypass jumper cables were exactly what really was needed to circumvent the false “power off” command, because= they forced that command line to remain dormant. Using the cables did expose the computers to damage from real power surges, but by then the power system had settled into a benign and steady state.

But what caused the corrosion? The source was quickly ide= ntified: water condensation, one of the most frequent culprits in avionics problems. The NASA report says the damage “presumably” was “the res= ult of repeated emissions of condensate from the air separation lines” of a nearby de= humidifier. Air flow and power usage were supposed to keep the computer cables warm enough to prevent water from condensing on them, but the dehumidifier had been malfunctioning, and its frequent on-off cycles led to surges of water vapor. Also, a stream of cold air from another location on the dehumidifier helped drive the cable temperatures occasionally below the dew point.

During the August shuttle visit, the Russians were able to turn stabilization control over to the American spaceship and tear down their old computer network. The boxes and cables were replaced with fresh units, built and supplied by the European Space Agency and sent up inside a recently launched robot supply ship.

“Upon removal of the old unit, the crew reported th= at there was cold condensate behind it,” notes an internal NASA ISS stat= us report for 12 August obtained by IEEE Spectrum. “Drops of humidity and mold were discovered. The unit itself is humid.”

To add to their headaches, the cosmonauts discovered that one of the new cables was about 40 centimeters shorter than the one it was supposed to replace—and it wouldn't reach. After careful visual i= nspection of the original cable , the cosmonauts decided there were no signs of corro= sion, so there was no need to replace it. They also decided to rig a thermal barrier out of a surplus reference book and all-purpose gray tape. As a last step, they removed the jumper cables, verified the system was function= al, and closed the access panels.

It is dismaying that after decades of experience with man= ned space stations, Russian space engineers still couldn't keep unwanted conden= sation at bay. But what's worse is that they designed circuitry that would allow one spot of corrosion to fell a supposedly triply redundant control computer complex. Another cause for dismay is that when trouble did develop, the Russians' first instinct was to blame their American partners. Such deficie= ncies need to be worked out in the years ahead, on the space station, before both the technology and the diplomacy can be thought reliable enough for far-ranging missions that replacement shipments wouldn't be able to reach.<= /font>

About the Author

JAMES OBERG, a 22-year veteran of NASA mission control, is now a writer and consultant in Houston.
--=_alternative 0064774D85257377_=-- --=_related 0064774D85257377_= Content-Type: image/jpeg Content-ID: <_2_0608D63C0608D2800064768785257377> Content-Transfer-Encoding: base64 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 --=_related 0064774D85257377_=-- ------------------------------ Date: Wed, 17 Oct 2007 23:03:03 -0400 From: =?ISO-8859-1?Q?Arne_Vajh=F8j?= Subject: Rare job posting Message-ID: <4716cce6$0$90265$14726298@news.sunsite.dk> I just saw a job posting in Denmark. Required skills: VMS, Cobol, ACMS, DECForms, VAX and Alpha. Long time since I last saw one of those. Arne ------------------------------ Date: Wed, 17 Oct 2007 21:55:49 +0200 From: "Dr. Dweeb" Subject: Re: still not convinced global warming a hoax? Message-ID: <471668c6$0$7609$157c6196@dreader2.cybercity.dk> AEF wrote: > On Oct 17, 7:32 am, b...@cs.uofs.edu (Bill Gunshannon) wrote: >> In article <1192578944.310398.75...@v29g2000prd.googlegroups.com>, >> AEF writes: >> >>> On Oct 16, 8:40 am, b...@cs.uofs.edu (Bill Gunshannon) wrote: >>>> In article <47141695.7CEF3...@spam.comcast.net>, >>>> David J Dachtera writes: >> >>>>> Neil Rieck wrote: >> >>>>>> On Oct 12, 9:00 am, koeh...@eisner.nospam.encompasserve.org (Bob >>>>>> Koehler) wrote: >>>>>>> Congrats to Al Gore and the UN panel on the environment on >>>>>>> the Nobel Peace Prize. >> >>>>>> Some scientists predicted that the long sought after "North West >>>>>> Passage" would be permanently open sometime before 2015. Guess >>>>>> what? It opened last month. >> >>>>>> http://news.bbc.co.uk/1/hi/world/americas/6995999.stm >> >>>>> Folks here probably know how Greenland got its name. >> >>>> Greenland, hell.... Hasn't anyone here ever read aboiut what they >>>> find in core samples taken through the ice in Antarctica? >> >>>>> Suffice it to say - circles are never-ending, and this is the >>>>> next time around this circle, one of many that comprise the >>>>> cycles of this planet. >> >>>> But espousing that won't get you grant money to study Global >>>> Warming. >> >>> Bill, >> >>> Quick question: Suppose global warming really is what the scientists >>> say it is. What would be different that you or I would be able to >>> read of see compared to if it weren't? If you can't come up with >>> some significant difference, you can't rule out GW. >> >> But, based on existing data, I can rule out the supposed >> contribution of man. Major volcanic eruptions like Mt. >> Pinataubo and Mount St. Helens generate more greenhouse >> gases in a short period of time than man has since the >> start of the industrial age (this was measured, I think for >> the first time, when Mt. Pinataubo erupted. The information > > Can you supply a reference? Where did you learn this from? "More > greenhouse gases" is a bit vague. Can you be more specific? Which > greenhouse gases and how much? > > And if this is true, why doesn't anyone bring this up? Surely the Wall > St. Journal would have a few full-page articles about it! And FOX News > would trumpet it. Etc. All I hear is things like the Weather Service > placing thermometers next to chimneys and down volcanoes and other > nonsense like that. > >> was published widely at the time, but is now buried away as >> it fails to support current trends.) I don't doubt that >> Global Warming exists. I just don't believe the crap put >> out by people like Al Gore who's purpose is anything but >> saving the world. >> >> Go back to my line above: "espousing that won't get you grant money >> to study Global Warming." I read articles everyday about >> "scientific" studies using faked data in order to prolong the flow >> of grant money. >> I have no reason to believe and lots of evidence to disbelieve that >> this is anything different. The scientific method is dead, long live >> the dollar. > > The dollar didn't work for cold fusion, n-rays, and the fifth force. > These were bogus and were easily shown to be. So science lives. And > most of our whiz-bang technology works based on scientific results. > For example, see recent articles about this year's Nobel prize in > physics, rewarding two scientists who discovered an important > previously unknown property of thin layers of atoms that makes iPods > and the like possible. I don't think iPods would work if this science > were faked. So science is not dead. > The Volcano thing is not as significant as previously claimed. Knock yourself out with google - start here. http://volcano.und.edu/vwdocs/Gases/man.html http://www.gaspig.com/volcano.htm Dweeb > OTOH, there is string theory! But the genius of that is that it is not > testable! It is controversial if it is promising and worth further > funding, but if it starts making verifiable predictions, we can test > it and act according to the results. But you still can't rule it out > until you can test it. > > AEF > >> >> bill >> >> -- >> Bill Gunshannon | de-moc-ra-cy (di mok' ra see) n. Three >> wolves b...@cs.scranton.edu | and a sheep voting on what's for >> dinner. University of Scranton | >> Scranton, Pennsylvania | #include ------------------------------ Date: 17 Oct 2007 13:56:38 -0700 From: AEF Subject: Re: still not convinced global warming a hoax? Message-ID: <1192645291.814498.236870@y27g2000pre.googlegroups.com> On Oct 17, 9:33 am, b...@cs.uofs.edu (Bill Gunshannon) wrote: > In article <1192626288.976787.16...@t8g2000prg.googlegroups.com>, > AEF writes: > > > On Oct 17, 7:32 am, b...@cs.uofs.edu (Bill Gunshannon) wrote: > >> In article <1192578944.310398.75...@v29g2000prd.googlegroups.com>, > >> AEF writes: > > >> > On Oct 16, 8:40 am, b...@cs.uofs.edu (Bill Gunshannon) wrote: > >> >> In article <47141695.7CEF3...@spam.comcast.net>, > >> >> David J Dachtera writes: > > >> >> > Neil Rieck wrote: > > >> >> >> On Oct 12, 9:00 am, koeh...@eisner.nospam.encompasserve.org (Bob > >> >> >> Koehler) wrote: > >> >> >> > Congrats to Al Gore and the UN panel on the environment on the > >> >> >> > Nobel Peace Prize. > > >> >> >> Some scientists predicted that the long sought after "North West > >> >> >> Passage" would be permanently open sometime before 2015. Guess what? > >> >> >> It opened last month. > > >> >> >>http://news.bbc.co.uk/1/hi/world/americas/6995999.stm > > >> >> > Folks here probably know how Greenland got its name. > > >> >> Greenland, hell.... Hasn't anyone here ever read aboiut what they find > >> >> in core samples taken through the ice in Antarctica? > > >> >> > Suffice it to say - circles are never-ending, and this is the next time around > >> >> > this circle, one of many that comprise the cycles of this planet. > > >> >> But espousing that won't get you grant money to study Global Warming. > > >> > Bill, > > >> > Quick question: Suppose global warming really is what the scientists > >> > say it is. What would be different that you or I would be able to read > >> > of see compared to if it weren't? If you can't come up with some > >> > significant difference, you can't rule out GW. > > >> But, based on existing data, I can rule out the supposed > >> contribution of man. Major volcanic eruptions like Mt. > >> Pinataubo and Mount St. Helens generate more greenhouse > >> gases in a short period of time than man has since the > >> start of the industrial age (this was measured, I think for > >> the first time, when Mt. Pinataubo erupted. The information > > > Can you supply a reference? Where did you learn this from? > > I'm sure it's still out on the Web somewhere. That was a long time > ago. So why is that any more credible than current warnings about GW? > > > "More > > greenhouse gases" is a bit vague. Can you be more specific? Which > > greenhouse gases and how much? > > Prety much all of them. The output from a volcano is rather noxious. But aren't they counteracted by cooling aerosols? :-) > > And if this is true, why doesn't anyone bring this up? Surely the Wall > > St. Journal would have a few full-page articles about it! And FOX News > > would trumpet it. Etc. > > No, they woukldn't. Why? Because there's no money in it. Just Oil companies would find money in it, no? The WSJ did run an editorial or article about some supposed warm bump in the climatological record not very long agon that they claim the scientists are ignoring. Why not more on that? Look at Lou Dobbs? Couldn't there be an anti-AGW counterpart to him? > like the fact that although people here are still trumpeting the > "Bush stole Florida" mantra. The votes were gathered up and > recounted by a totally independant body interested in it purely > for research and the finding was that Bush actually won. This How do you know they were independent? > got less than a column inch on the backpage of a few obscure > newspapers and no coverage at all in the mainstream press. Same > reason. Controversy sells newspapers and magazines. I think I heard about it but I don't remember in detail. I think there were other "independent" bodies who concluded otherwise, but I'm not sure. > > > All I hear is things like the Weather Service > > placing thermometers next to chimneys and down volcanoes and other > > nonsense like that. > > The NWS does this kind of research all the time. I think they I'm talking about Boob's post about regular temperature readings -- I just made up the volcano one, I think. You're on Boob's side in this, you realize. ;-) What, the weather service studies chimney temperatures? > are one of the organizations with sensors on the Hawaiian volcanoes. > But, when they come out with a statement that contradicts current > popular trends (like when they said Katrina was perfectly inline > with normal and natural weather patterns) they get no coverage. > Why? See above!! I only heard that you can't prove any one storm is the result of GW. I never heard any conclusive words to the contrary. > > > > >> was published widely at the time, but is now buried away as > >> it fails to support current trends.) I don't doubt that > >> Global Warming exists. I just don't believe the crap put > >> out by people like Al Gore who's purpose is anything but > >> saving the world. > > >> Go back to my line above: "espousing that won't get you grant money > >> to study Global Warming." I read articles everyday about "scientific" > >> studies using faked data in order to prolong the flow of grant money. > >> I have no reason to believe and lots of evidence to disbelieve that > >> this is anything different. The scientific method is dead, long live > >> the dollar. > > > The dollar didn't work for cold fusion, n-rays, and the fifth force. > > I didn't say the dollar makes things possible. I said that if it is > a choice between reality and money the scientist will choose money > everytime. Can't live on reality. I don't know what you're saying here. > > > These were bogus and were easily shown to be. > > After receiving millions (if not billions) in grant money. They're Cold fusion was a table-top experiment. Hardly millions. N-rays? Table top. Fifth force? Copper balls floating in water. Drilling into the ice and hanging plumbums therein. Hardly budget busters! And even so: How should it have been done? If you refuse to fund anything that's not already proven, then it could never have been proven or refuted in the first place. Sort of like the "tried and true" catch-22 (it rhymes!) we heard about recently. Proven things start out the same way. They have to prove themselves, but they have to be given a chance. Otherwise, there is no progress. > only problem was they were too provable and didn't last. Global warming, Which shows that science lives. You can't reject every idea or you'd never make progress. > as espoused by current science, won't be proven for hundreds of years. > That's a pretty long gravy-train. Why would you think anyone would risk > de-railing it early? The oil companies would want to, I think. > > > So science lives. And > > most of our whiz-bang technology works based on scientific results. > > We're not talking "whiz-bang technology" here. We are talking natural > vs. man-made global warming. YOU mentioned the end of the scientific method. You didn't limit it to AGW. > > > For example, see recent articles about this year's Nobel prize in > > physics, rewarding two scientists who discovered an important > > previously unknown property of thin layers of atoms that makes iPods > > and the like possible. I don't think iPods would work if this science > > were faked. So science is not dead. > > And the iPod is an advance? Some of us think it's just a terrible > waste of time, energy and resources. And probably contributes to > man-made global warming!!! Why is it a waste of time? Bill, just exactly how do you think processor speeds double every 18 mos.? How do you think we got lasers and transistors and disk drives and such in the first place? You think those actors in the colorful clean-room suits on the old Intel commercials are whipping up magic potions in a big pot of boiling oil to invent these things? I got news for you -- it's from physcists doing science. > > OTOH, there is string theory! But the genius of that is that it is not > > testable! It is controversial if it is promising and worth further > > funding, but if it starts making verifiable predictions, we can test > > it and act according to the results. But you still can't rule it out > > until you can test it. > > And if you can supress (or just ignore) all the data that doesn't > support your pet theory you can ride the research gravy-train for > a long time. 'Can' is not the same as 'always'. > > bill > > -- > Bill Gunshannon | de-moc-ra-cy (di mok' ra see) n. Three wolves > b...@cs.scranton.edu | and a sheep voting on what's for dinner. > University of Scranton | > Scranton, Pennsylvania | #include AEF ------------------------------ Date: Wed, 17 Oct 2007 20:24:24 -0500 From: David J Dachtera Subject: Re: still not convinced global warming a hoax? Message-ID: <4716B5C8.F86BB1E2@spam.comcast.net> Bob Koehler wrote: > > In article <4715567C.58E31DA4@spam.comcast.net>, David J Dachtera writes: > > Repeat after me: > > Global warming is both natural and man-made, there is overwhelming evidence. > [snip] Overwhelming, eh... If there were, would we be having this debate? Is there proof-positive one way or the other whether warming increases so-called "green-house" gases or increases in so-called "green-house" gases give rise to warming? If there is, no one's talking about it. Science THINKS gases increase warming, but there's no incontrovertible proof one way or the other. -- David J Dachtera dba DJE Systems http://www.djesys.com/ Unofficial OpenVMS Marketing Home Page http://www.djesys.com/vms/market/ Unofficial Affordable OpenVMS Home Page: http://www.djesys.com/vms/soho/ Unofficial OpenVMS-IA32 Home Page: http://www.djesys.com/vms/ia32/ Unofficial OpenVMS Hobbyist Support Page: http://www.djesys.com/vms/support/ ------------------------------ Date: Thu, 18 Oct 2007 00:05:26 -0400 From: JF Mezei Subject: Re: still not convinced global warming a hoax? Message-ID: David J Dachtera wrote: > Is there proof-positive one way or the other whether warming increases so-called > "green-house" gases or increases in so-called "green-house" gases give rise to > warming? If there is, no one's talking about it. It depends on where you live and which entertainment news you watch. Did you know that Rupert Murdoch (News Corp) has instructed its news outlets to be negative on global warming ? Are you aware that the staff at the Wall Street Journal tried very hard to block News Corp's takeover of their newpaper exactly because of Murdoch's editorial interventions ? Do you realise that the so called "news" networks in the USA are now entertainment networks driven by ratings in order to get advertising dollars ? And to get the ratings, they have made editorial decisions to cover news in a way that pleases their viewers ? So instead of telling people what they NEED to know, they tell them what they want to know. If polls show that peoble believe Bush's lies, then the networks decide to not question Bush's lies. The irony there is that the white house had tangible proof of global warming from its NOAA/NASA studies, it decided to put a gag order on the scientists forcing all studies to be funnelled through the white house. Those documents had proof but the white house changed words such as "is occuring" to "might be occuring" so that they could then use "inconclusive" in their speeches. So they had proof of global warming which they squandered, but had no proof of Iraq and have to concuct arguments that were presented as evidence to the gullible american media who had chosen to not question it. Ask yourself how come, when the evidence that the white house had been tampeting with scientific studies from NOAA/NASA became known to the rest of the world, the USA media outlets did not hound the white house to make a big fuss about falsified evidence ? Outside of the USA, global warming is not being questioned. Even in Canada where the current minority prime minister is intent on following in his uncle's footsteps and kill Kyoto, there is no debate on global warming. It is very clear that George W Harper was funded by the oil industry in western canada and killing kyoto is just payback for all the money they gave him. ------------------------------ Date: Wed, 17 Oct 2007 14:06:07 -0400 From: JF Mezei Subject: Re: Which delete statement is faster? Message-ID: Have you considered renaming the files needing to be deleted to a different directory, and then deleting them in that directory where the size will be more manageable ? Also, delete az*.*;* delete ay*.*;* delete ax*.*;* ... delete ac*.*;* delete ab*.*;* delete aa*.*;* would be faster since it would begin the deletes further down the list and while not a full "reverse order" delete, it would reduce the amount of shuffling it needs to do for each delete. Also, make sure your volume is not set to "erase on delete" as this will greatly slow down deletes. (SHOW DEV /FULL) will tell you if it is set or not). (SET VOLUME is the command to set/unset that feature). ------------------------------ Date: Wed, 17 Oct 2007 19:49:22 +0000 (UTC) From: helbig@astro.multiCLOTHESvax.de (Phillip Helbig---remove CLOTHES to reply) Subject: Re: Which delete statement is faster? Message-ID: In article <13ha3tiakjblj1b@corp.supernews.com>, "Mike Minor" writes: > I have a directory with 200000+files, all in the a*.txt;1 range. I need to > ftp these files to another server. Why not put them in a backup saveset or zip archive before the transfer? ------------------------------ Date: Wed, 17 Oct 2007 21:21:42 -0000 From: Hein RMS van den Heuvel Subject: Re: Which delete statement is faster? Message-ID: <1192656102.000751.316470@q5g2000prf.googlegroups.com> On Oct 17, 3:49 pm, hel...@astro.multiCLOTHESvax.de (Phillip Helbig--- remove CLOTHES to reply) wrote: > In article <13ha3tiakjbl...@corp.supernews.com>, "Mike Minor" > > writes: > > I have a directory with 200000+files, all in the a*.txt;1 range. I need to > > ftp these files to another server. > > Why not put them in a backup saveset or zip archive before the transfer? Because once you are in this situation it is too late? You can out tham in an archive, but the removal will still cost as much. JF wrote... > Have you considered renaming the files needing to be deleted to a > different directory, and then deleting them in that directory where the > size will be more manageable ? That's what I suggested early on, along with the hint, to do a double renaming making sure only to take from teh end, and add to the end. I even included a pointer to a and a working example in perl, But in the mean time I hacked up something cute.... Attached a tool which can split a directory in two parts in units of disk-clusters. It takes the time of a file create and a handfull of IOs for ANY number of files. 10 files or 10,000 files move literally just as quickly with a slide of hands. Perfect scaling! :-) It's all done with smoke and mirrors involving file headers and mapping pointers. Very minimal testing to date... just with empty files on an small LD device. I did test the cluster size code, but I really only tested 1 Retrieval Pointer format for now. Check this out though... :-) $ ld create sys$login:lda4.disk /size=10000 $ ld connec sys$login:lda4.disk lda4: $ init lda4: lda4 $ moun lda4: lda4 $ create/dir lda4:[A] $ perl -e "foreach $i (1..1000) { open X,"">lda4:[A]$ {i}_blah_blah_blah_${i}""}" ! A little random order $ dir LDA4:[A] Directory LDA4:[A] 1000_BLAH_BLAH_BLAH_1000.;1 100_BLAH_BLAH_BLAH_100.;1 101_BLAH_BLAH_BLAH_101.;1 102_BLAH_BLAH_BLAH_102.;1 103_BLAH_BLAH_BLAH_103.;1 104_BLAH_BLAH_BLAH_104.;1 : 998_BLAH_BLAH_BLAH_998.;1 999_BLAH_BLAH_BLAH_999.;1 99_BLAH_BLAH_BLAH_99.;1 9_BLAH_BLAH_BLAH_9.;1 Total of 1000 files. $ mcr dev:[disk]SPLIT_DIRECTORY lda4:[000000]a.dir lda4:[000000]b.dir 9 ! First filename after split: 161_BLAH_BLAH_BLAH_161.;1 $ dir lda4:[a] Directory LDA4:[A] 161_BLAH_BLAH_BLAH_161.;1 162_BLAH_BLAH_BLAH_162.;1 163_BLAH_BLAH_BLAH_163.;1 164_BLAH_BLAH_BLAH_164.;1 : 99_BLAH_BLAH_BLAH_99.;1 9_BLAH_BLAH_BLAH_9.;1 Total of 932 files. $ dir lda4:[b] Directory LDA4:[B] 1000_BLAH_BLAH_BLAH_1000.;1 100_BLAH_BLAH_BLAH_100.;1 : 158_BLAH_BLAH_BLAH_158.;1 159_BLAH_BLAH_BLAH_159.;1 15_BLAH_BLAH_BLAH_15.;1 160_BLAH_BLAH_BLAH_160.;1 Total of 68 files. $ mcr dev:[disk]SPLIT_DIRECTORY lda4:[000000]a.dir lda4:[000000]c.dir 20 ! First filename after split: 291_BLAH_BLAH_BLAH_291.;1 $ dir/total lda4:[*...] Directory LDA4:[A] Total of 788 files. Directory LDA4:[B] Total of 68 files. Directory LDA4:[C] Total of 144 files. Grand total of 3 directories, 1000 files. I'll check more configurations if there (ever) is a business justification. In the mean time, if I was in a crunch and needed a tool like this then I would - mark the directory no-dir - take a copy - re-mark as directory Hope this helps someone, somewhere, somehow Please let me know if it does! Hein van den Heuvel (at gmail dot com) HvdH Performance Consulting /* ** split_directory.c ** Copyright ... Hein van den Heuvel, Oct 2007 ** ** This program can be used to split a directory into two, for faster deletes ** and renames. This is mostly just a fun excercise, but it could come in handy ** some day. This program workings are relatively simple because directory files ** are contiguous. So there is just one mapping pointer and extention headers ** are not likely (!-). We can take a number of blocks (multiple of cluster ** size) from the bottom of the mapped area and bequeat them to an other file. ** Then adjust that mapping pointer and the EOF and such and be done with ** just a file create an a handful IOs. ** ** Method: ** 1) create an empty normal file, on the selected disk ** The main data in the file header for this file will be replaced ** by adjusted data from the source directory. ** 2) copy the file header attributes from the source directory, ** over the target file header. ** - set eof-block to select high-block ** - adjust mapping pointer (just one.... directories are contiguous) ** - adjust file-id to clone file id ** - re-calculate checksum and write out ** 3) Write out fresh split. ** 4) On succes touch up original and write out. ** 5) According to the very last page in Kirby McCoy's VMS File System Internals, ** the vbn write to indexf.sys will trigger a flush of the associated caches. ** 8.6.7 "User Invalidation if Cached Buffers. ** Seems almost too easy. No poking of the volume lock needed to do cause ** the RM$DIRCACHE_BLKAST, No poking of the the file serialization lock ** for the (source) directory?! ** ** ** Enjoy! ** Hein, HvdH Performance Consulting ** */ /* ** cc SPLIT_DIRECTORY.C+SYS$COMMON:[SYSLIB]SYS$LIB_C.TLB/lib ** ** libr/extr=fatdef/out=fatdef.h sys$library:sys$lib_c.tlb */ #include fh2def #include fatdef #include fm2def #include rms #include stdio #include stdlib #include string #include dvidef #include ssdef typedef struct { short len, cod; void *address; int *retlen; } item; int sys$open(), sys$connect(), sys$read(), sys$write(), sys$close(); int sys$create(), sys$parse(), sys$search(), sys$erase(); int sys$getdvi(), lib$spawn(); main(argc,argv) int argc; char *argv[]; { int checksum, i, spawn_status; FAT *source_fat, *target_fat; unsigned char *p; union { unsigned int ebk; struct { unsigned short int lo; /* high order word */ unsigned short int hi; /* low order word */ } words; } ebk; static unsigned short source_header[256], target_header[256]; static char *usage = "Usage: $ split_directory old_name new_name \n"; static char esa[256], rsa[256], command[256]; static int status, channel, bytes, blocks_to_split=0, vbn=1; static int file_hbk, file_nbytes, spec_nbytes; static int index_file_id_offset, index_file_bitmap_size, index_file_bitmap_vbn; static int maxfiles, cluster, source_fid, target_fid; static struct FAB fab; static struct RAB rab; static struct NAM nam; // static struct XABFHC fhc; FH2 *source_fh2, *target_fh2; FM2 *source_fm2, *target_fm2; item getdvi_items[] = { 4, DVI$_MAXFILES, &maxfiles, 0, 4, DVI$_CLUSTER, &cluster, 0, 0, 0, 0, 0 } ; struct { int len; char *addr; } devnam_desc, command_desc; / ******************************************************************************/ /* Verify that we've been properly invoked */ if (argc != 4) printf("%s",usage), exit(1); /* Use RMS to parse the file so that we get a FID for the header clone */ fab = cc$rms_fab; fab.fab$b_shr = FAB$M_NIL; /* want to be alone for thie */ fab.fab$b_fac = FAB$M_PUT | FAB$M_GET | FAB$M_BIO; /* not really... */ fab.fab$l_fna = argv[1]; fab.fab$b_fns = strlen (argv[1]); fab.fab$l_nam = &nam; // fab.fab$l_xab = &fhc; // fhc = cc$rms_xabfhc; nam = cc$rms_nam; nam.nam$l_esa = esa; nam.nam$b_ess = sizeof (esa) - 1; nam.nam$l_rsa = rsa; nam.nam$b_rss = sizeof (rsa) - 1; rab = cc$rms_rab; rab.rab$l_fab = &fab; rab.rab$w_usz = 512; /* ** Pick up the file ID for the source file... ** re-use the FAB and NAM for target later */ status=sys$parse(&fab); if (status & 1 ) status=sys$search(&fab); if (status & 1 ) status=sys$open(&fab); if (!(status & 1 )) return status; source_fid = nam.nam$b_fid_nmx << 16; source_fid += nam.nam$w_fid_num; /* ** Get maxfile and cluster size from GETDVI, in order to calculate ** the offset to apply to the file ID to get the VBN in indexf.sys */ devnam_desc.addr = nam.nam$l_dev; devnam_desc.len = nam.nam$b_dev; status = sys$getdvi ( 0, 0, &devnam_desc, getdvi_items,0,0,0,0); index_file_id_offset = 4 * cluster + ( maxfiles/4096 ) + 1; blocks_to_split = atoi(argv[3]); if (!blocks_to_split || blocks_to_split % cluster ) { printf ("blocks_to_split (%d) must be a multiple of the device" " clustersize (%d).\n", blocks_to_split, cluster); printf ("(Yeah, I could round up for you, but this needs to be" " a concious choice.\n"); return (16); } /* ** EBK check replace by reading beyond split point. ** if (fhc.xab$l_ebk < blocks_to_split) return ( RMS$_EOF ); */ if (!fab.fab$v_ctg) return ( SS$_FILNOTCNTG ); rab.rab$l_bkt = blocks_to_split + 1; p = (void *) source_header; rab.rab$l_ubf = (void *) p; status = sys$connect(&rab); if (status & 1 ) status = sys$read(&rab); if (status & 1 ) status = sys$close(&fab); if (!(status & 1 )) return status; i = p[5]; // DIR$B_NAME_COUNT printf ("! First filename after split: %*s;%d\n", i, &p[6], source_header[(6+i+1)/2] ); /* ** Re-use the FAB and NAM to create a target file. ** Must be on the same disk. ** We'll use this header to clone the target header into. ** Close it and stash away its file ID. */ nam.nam$w_fid_num = 0; nam.nam$w_fid_seq = 0; nam.nam$b_fid_nmx = 0; fab.fab$l_fna = argv[2]; fab.fab$b_fns = strlen (argv[2]); fab.fab$l_dna = nam.nam$l_dev; fab.fab$b_dns = nam.nam$b_dev; fab.fab$l_alq = 0; status = sys$create(&fab); if (status & 1) status = sys$close(&fab); if (!(status & 1 )) return status; target_fid = nam.nam$b_fid_nmx << 16; target_fid += nam.nam$w_fid_num; /* ** re-use the FAB and NAM again to open INDEXF.SYS (id=1,1) */ nam.nam$w_fid_num = 1; nam.nam$w_fid_seq = 1; nam.nam$b_fid_nmx = 0; fab.fab$l_fop = FAB$M_NAM; fab.fab$b_shr = FAB$M_UPI | FAB$M_SHRPUT | FAB$M_SHRGET; status = sys$open(&fab); if (status & 1 ) status = sys$connect(&rab); if (!(status & 1 )) return status; /* ** Read original header. UBF already set up. */ rab.rab$l_bkt = source_fid + index_file_id_offset; status = sys$read(&rab); if (!(status & 1 )) return status; /* ** Read target header. */ rab.rab$l_bkt = target_fid + index_file_id_offset; rab.rab$l_ubf = (void *) target_header; status = sys$read(&rab); if (!(status & 1 )) return status; /* ** Copy record attribute area */ source_fh2 = (void *) source_header; target_fh2 = (void *) target_header; source_fat = (void *) &source_fh2->fh2$w_recattr; target_fat = (void *) &target_fh2->fh2$w_recattr; for (i = 10; i<(sizeof (FAT) / 2); i++) { target_header[i] = source_header[i]; } target_fh2->fh2$l_filechar = source_fh2->fh2$l_filechar; /* ** Set the adjusted, word swapped, End-Of-File-Blocks. */ ebk.words.lo = source_fat->fat$w_efblkl; ebk.words.hi = source_fat->fat$w_efblkh; ebk.ebk -= blocks_to_split; source_fat->fat$w_efblkl = ebk.words.lo; source_fat->fat$w_efblkh = ebk.words.hi; ebk.words.lo = source_fat->fat$w_hiblkl; ebk.words.hi = source_fat->fat$w_hiblkh; ebk.ebk -= blocks_to_split; source_fat->fat$w_hiblkl = ebk.words.lo; source_fat->fat$w_hiblkh = ebk.words.hi; ebk.ebk = blocks_to_split + 1; target_fat->fat$w_efblkl = ebk.words.lo; target_fat->fat$w_efblkh = ebk.words.hi; target_fat->fat$w_hiblkl = ebk.words.lo; target_fat->fat$w_hiblkh = ebk.words.hi; target_fh2->fh2$l_highwater = ebk.ebk; /* ** Now for the tricky part... the mapping pointer. */ int mpoffset, map_inuse, lbn, count; mpoffset = source_fh2->fh2$b_mpoffset; map_inuse = source_fh2->fh2$b_map_inuse; source_fm2 = (void *) &source_header[mpoffset]; target_fm2 = (void *) &target_header[mpoffset]; if ( target_fh2->fh2$b_map_inuse ) return (SS$_BADFILEHDR); target_fh2->fh2$b_map_inuse = map_inuse; for (i = mpoffset; i < (mpoffset + map_inuse); i++) { target_header[i] = source_header[i]; } target_fh2->fh2$l_filechar = source_fh2->fh2$l_filechar; switch (source_fm2->fm2$v_format) { case FM2$C_FORMAT1: lbn = source_fm2->fm2$w_lowlbn + (source_fm2->fm2$v_highlbn <<16); lbn += blocks_to_split; // That had better fit! source_fm2->fm2$w_lowlbn = lbn & 0xFFFF; source_fm2->fm2$v_highlbn = lbn >> 16; source_fm2->fm2$b_count1 -= blocks_to_split; target_fm2->fm2$b_count1 = blocks_to_split - 1; break; case FM2$C_FORMAT2: ((FM2_1 *) source_fm2)->fm2$l_lbn2 += blocks_to_split; source_fm2->fm2$v_count2 -= blocks_to_split; target_fm2->fm2$v_count2 = blocks_to_split - 1; break; case FM2$C_FORMAT3: ((FM2_2 *) source_fm2)->fm2$l_lbn3 += blocks_to_split; count = ((FM2_2 *) source_fm2)->fm2$w_lowcount + (source_fm2- >fm2$v_count2 << 16); count -= blocks_to_split; ((FM2_2 *) source_fm2)->fm2$w_lowcount = count & 0xFFFF; source_fm2->fm2$v_count2 = count >> 16; count = blocks_to_split - 1; ((FM2_2 *) target_fm2)->fm2$w_lowcount = count & 0xFFFF; target_fm2->fm2$v_count2 = count >> 16; break; case FM2$C_PLACEMENT: printf ("Don't want to deal with placement headers.\n"); return SS$_BADFILEHDR; break; } /* ** Write out target header first, in case that is a problem. ** It was the last read, RAB still set up for BKT, RBF, RSZ. */ checksum = 0; for (i = 0; i<255; i++) { checksum += target_header[i]; } target_header[i] = checksum & 0xFFFF; status = sys$write(&rab); if (!(status & 1)) return status; /* ** Write out target header first, in case that is a problem. */ checksum = 0; for (i = 0; i<255; i++) { checksum += source_header[i]; } source_header[i] = checksum & 0xFFFF; rab.rab$l_bkt = source_fid + index_file_id_offset; rab.rab$l_rbf = (void *) source_header; status = sys$write(&rab); if (status & 1 ) status = sys$close(&fab); /* close indexf.sys */ return status; } ------------------------------ Date: Thu, 18 Oct 2007 10:24:53 +1000 From: Jim Duff Subject: Re: Which delete statement is faster? Message-ID: <4716a7d8@dnews.tpgi.com.au> Hein RMS van den Heuvel wrote: > On Oct 17, 3:49 pm, hel...@astro.multiCLOTHESvax.de (Phillip Helbig--- > remove CLOTHES to reply) wrote: >> In article <13ha3tiakjbl...@corp.supernews.com>, "Mike Minor" >> >> writes: >>> I have a directory with 200000+files, all in the a*.txt;1 range. I need to >>> ftp these files to another server. >> Why not put them in a backup saveset or zip archive before the transfer? > > Because once you are in this situation it is too late? > You can out tham in an archive, but the removal will still cost as > much. > > JF wrote... >> Have you considered renaming the files needing to be deleted to a >> different directory, and then deleting them in that directory where the >> size will be more manageable ? > > That's what I suggested early on, along with the hint, to do a double > renaming making sure only to take from teh end, and add to the end. > I even included a pointer to a and a working example in perl, > > But in the mean time I hacked up something cute.... > > Attached a tool which can split a directory in two parts in units of > disk-clusters. > > It takes the time of a file create and a handfull of IOs for ANY > number of files. > 10 files or 10,000 files move literally just as quickly with a slide > of hands. > Perfect scaling! :-) > > It's all done with smoke and mirrors involving file headers and > mapping pointers. > Very minimal testing to date... just with empty files on an small LD > device. > I did test the cluster size code, but I really only tested 1 Retrieval > Pointer format for now. > > > [code snipped] Scary cute ;-) I must say I'd be tempted to take out the volume blocking lock, no matter what McCoy says. I tend to be "belt and suspenders" when it comes to stuff like this. Minor nit: sys$getdvi seems to be missing a "W" on the end, an IOSB, and return status checks. Cheers, Jim. -- www.eight-cubed.com ------------------------------ Date: Wed, 17 Oct 2007 20:27:05 -0500 From: David J Dachtera Subject: Re: Which delete statement is faster? Message-ID: <4716B669.13D8DEBF@spam.comcast.net> Mike Minor wrote: > > intersystems.public.cache at news.intersystems.com AH! Ever seen MUMPS code? Are there any other questions? -- David J Dachtera dba DJE Systems http://www.djesys.com/ Unofficial OpenVMS Marketing Home Page http://www.djesys.com/vms/market/ Unofficial Affordable OpenVMS Home Page: http://www.djesys.com/vms/soho/ Unofficial OpenVMS-IA32 Home Page: http://www.djesys.com/vms/ia32/ Unofficial OpenVMS Hobbyist Support Page: http://www.djesys.com/vms/support/ ------------------------------ End of INFO-VAX 2007.569 ************************