Sponsored Content
The Lounge War Stories Data Centre meets Vacuum Cleaner Post 303014244 by Don Cragun on Thursday 8th of March 2018 04:25:31 AM
Old 03-08-2018
Many years ago, while I was working at Sun Microsystems, Inc. on adding POSIX-conformance into SunOS 4.1, I was making changes to the OS and utilities during the day and running complete builds of the system overnight (starting a build just before I left work in the evening). This worked fine for several weeks until one Monday night when the system died at about 8:30pm killing the build-in-progress. There was no core dump, no indication of any hardware problems, and restarting the build when I got to work Tuesday morning completed normally (taking a little over three hours to complete).

The same thing happened the next three days in a row, with the system always dying sometime between 8:20pm and 8:40pm.

I decided to stay at work late Friday evening to see if I could figure out what was causing the crashes. I went to the bathroom at about 7pm so I would be sure that I could be at my computer by 7:15pm and would be able to stay there until I found out why my computer was dying every night. When I got back to my office five minutes later, I found that my computer had been unplugged by a member of the cleaning crew so he could plug in the vacuum cleaner they used to clean the hallway and offices where my office was located. (The way my office was arranged left a power strip close to the hallway while other offices in my area had their power strips in less accessible locations.) I unplugged the sweeper, plugged my computer back in, and waited for the cleaning guy to come back to my office.

I found out that:
  1. the cleaning crew comes in an hour and a half earlier on Friday that they did Monday through Thursday,
  2. they got a new vacuum cleaner on Monday with a cord that wouldn't reach from the plugs in the conference room to the other end of the building, and
  3. unplugging a computer is inconsequential to a janitor if doing so allows him to sweep the carpets at the end of the hallway.
 

6 More Discussions You Might Find Interesting

1. News, Links, Events and Announcements

The HP-UX Porting and Archive Centre

If you're looking for an easy source of free software for HP-UX, look no further. A consortium of major universities and HP user groups have banded together and operate what is simply the finest free software site in existence. The world's best HP-UX software engineers have ported each package... (0 Replies)
Discussion started by: Perderabo
0 Replies

2. Solaris

Sun Management Centre

Hi Guys, Does anyone ever use Sun MC before? If yes, can u share with me how to do the installation. Thanks (1 Reply)
Discussion started by: raziayub
1 Replies

3. Shell Programming and Scripting

Cleaner method for this if-then statement?

I have a script that runs once per month. It performs a certain task ONLY if the month is January, April, July, or October. MONTH=`date +%m` if || || || ; then do something else do a different thing fi Is there a neater way of doing it than my four separate "or" comparisons? That... (2 Replies)
Discussion started by: lupin..the..3rd
2 Replies

4. Shell Programming and Scripting

Cleaner way to use shell variable in awk /X/,/Y/ syntax?

$ cat data Do NOT print me START_MARKER Print Me END_MARKER Do NOT print me $ cat awk.sh start=START_MARKER end=END_MARKER echo; echo Is this ugly syntax the only way? awk '/'"$start"'/,/'"$end"'/ { print }' data echo; echo Is there some modification of this that would work? awk... (2 Replies)
Discussion started by: hanson44
2 Replies

5. Shell Programming and Scripting

A cleaner way to rearrange column

Hello, I have some tab delimited text data, index name chg_p chg_m 1 name,1 1 0 2 name,2 1 1 3 name,3 1 0 4 name,4 1 0 5 name,5 1 1 I need to duplicate the "index" column, call it "id" and insert it after the... (8 Replies)
Discussion started by: LMHmedchem
8 Replies

6. Shell Programming and Scripting

Maybe a cleaner way to generate a file?

greetings, to be clear, i have a solution but i'm wondering if anyone has a cleaner way to accomplish the following: the variable: LSB_MCPU_HOSTS='t70c7n120 16 t70c7n121 16 t70c7n122 16 t70c7n123 16 t70c7n124 16 t70c7n125 16 t70c7n126 16 t70c7n127 16 t70c7n128 16 t70c7n129 16 t70c7n130 16... (2 Replies)
Discussion started by: crimso
2 Replies
Basic(3)						User Contributed Perl Documentation						  Basic(3)

NAME
PDL::Basic -- Basic utility functions for PDL DESCRIPTION
This module contains basic utility functions for creating and manipulating piddles. Most of these functions are simplified interfaces to the more flexible functions in the modules PDL::Primitive and PDL::Slices. SYNOPSIS
use PDL::Basic; FUNCTIONS
xvals Fills a piddle with X index values $x = xvals($somearray); $x = xvals([OPTIONAL TYPE],$nx,$ny,$nz...); etc. see zeroes. perldl> print xvals zeroes(5,10) [ [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] ] yvals Fills a piddle with Y index values $x = yvals($somearray); yvals(inplace($somearray)); $x = yvals([OPTIONAL TYPE],$nx,$ny,$nz...); etc. see zeroes. perldl> print yvals zeroes(5,10) [ [0 0 0 0 0] [1 1 1 1 1] [2 2 2 2 2] [3 3 3 3 3] [4 4 4 4 4] [5 5 5 5 5] [6 6 6 6 6] [7 7 7 7 7] [8 8 8 8 8] [9 9 9 9 9] ] zvals Fills a piddle with Z index values $x = zvals($somearray); zvals(inplace($somearray)); $x = zvals([OPTIONAL TYPE],$nx,$ny,$nz...); etc. see zeroes. perldl> print zvals zeroes(3,4,2) [ [ [0 0 0] [0 0 0] [0 0 0] [0 0 0] ] [ [1 1 1] [1 1 1] [1 1 1] [1 1 1] ] ] xlinvals X axis values between endpoints (see xvals). $a = zeroes(100,100); $x = $a->xlinvals(0.5,1.5); $y = $a->ylinvals(-2,-1); # calculate Z for X between 0.5 and 1.5 and # Y between -2 and -1. $z = f($x,$y); "xlinvals", "ylinvals" and "zlinvals" return a piddle with the same shape as their first argument and linearly scaled values between the two other arguments along the given axis. ylinvals Y axis values between endpoints (see yvals). See xlinvals for more information. zlinvals Z axis values between endpoints (see zvals). See xlinvals for more information. hist Create histogram of a piddle $hist = hist($data,[$min,$max,$step]); ($xvals,$hist) = hist($data,[$min,$max,$step]); If requested, $xvals gives the computed bin centres A nice idiom (with PDL::Graphics::PGPLOT) is bin hist $data; # Plot histogram perldl> p $y [13 10 13 10 9 13 9 12 11 10 10 13 7 6 8 10 11 7 12 9 11 11 12 6 12 7] perldl> $h = hist $y,0,20,1; # hist with step 1, min 0 and 20 bins perldl> p $h [0 0 0 0 0 0 2 3 1 3 5 4 4 4 0 0 0 0 0 0] whist Create a weighted histogram of a piddle $hist = whist($data, $wt, [$min,$max,$step]); ($xvals,$hist) = whist($data, $wt, [$min,$max,$step]); If requested, $xvals gives the computed bin centres. $data and $wt should have the same dimensionality and extents. A nice idiom (with PDL::Graphics::PGPLOT) is bin whist $data, $wt; # Plot histogram perldl> p $y [13 10 13 10 9 13 9 12 11 10 10 13 7 6 8 10 11 7 12 9 11 11 12 6 12 7] perldl> $wt = grandom($y->nelem) perldl> $h = whist $y, $wt, 0, 20, 1 # hist with step 1, min 0 and 20 bins perldl> p $h [0 0 0 0 0 0 -0.49552342 1.7987439 0.39450696 4.0073722 -2.6255299 -2.5084501 2.6458365 4.1671676 0 0 0 0 0 0] sequence Create array filled with a sequence of values $a = sequence($b); $a = sequence [OPTIONAL TYPE], @dims; etc. see zeroes. perldl> p sequence(10) [0 1 2 3 4 5 6 7 8 9] perldl> p sequence(3,4) [ [ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11] ] rvals Fills a piddle with radial distance values from some centre. $r = rvals $piddle,{OPTIONS}; $r = rvals [OPTIONAL TYPE],$nx,$ny,...{OPTIONS}; Options: Centre => [$x,$y,$z...] # Specify centre Center => [$x,$y.$z...] # synonym. Squared => 1 # return distance squared (i.e., don't take the square root) perldl> print rvals long,7,7,{Centre=>[2,2]} [ [2 2 2 2 2 3 4] [2 1 1 1 2 3 4] [2 1 0 1 2 3 4] [2 1 1 1 2 3 4] [2 2 2 2 2 3 4] [3 3 3 3 3 4 5] [4 4 4 4 4 5 5] ] For a more general metric, one can define, e.g., sub distance { my ($a,$centre,$f) = @_; my ($r) = $a->allaxisvals-$centre; $f->($r); } sub l1 { sumover(abs($_[0])); } sub euclid { use PDL::Math 'pow'; pow(sumover(pow($_[0],2)),0.5); } sub linfty { maximum(abs($_[0])); } so now distance($a, $centre, &euclid); will emulate rvals, while "&l1" and "&linfty" will generate other well-known norms. axisvals Fills a piddle with index values on Nth dimension $z = axisvals ($piddle, $nth); This is the routine, for which xvals, yvals etc are mere shorthands. "axisvals" can be used to fill along any dimension. Note the 'from specification' style (see zeroes) is not available here, for obvious reasons. allaxisvals Generates a piddle with index values $z = allaxisvals ($piddle); "allaxisvals" produces an array with axis values along each dimension, adding an extra dimension at the start. "allaxisvals($piddle)->slice("($nth)")" will produce the same result as "axisvals($piddle,$nth)" (although with extra work and not inplace). It's useful when all the values will be required, as in the example given of a generalized rvals. transpose transpose rows and columns. $b = transpose($a); $b = ~$a; Also bound to the "~" unary operator in PDL::Matrix. perldl> $a = sequence(3,2) perldl> p $a [ [0 1 2] [3 4 5] ] perldl> p transpose( $a ) [ [0 3] [1 4] [2 5] ] perl v5.8.0 2001-10-24 Basic(3)
All times are GMT -4. The time now is 02:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy