Round 4 / packing (99.8%) / shipping (99.7%)

bebuxe

14 Nov 2012, 23:31

@webwit
Wait? There are girls on the internet?

I thought there were only cowboys and trolls. Gee, now I have to behave myself?

Where is CHCl₃ Cologne, Ma?

User avatar
vivalarevolución
formerly prdlm2009

15 Nov 2012, 01:51

7bit wrote:Please read this for better understanding of the waiting procedure:

Code: Select all

WAIT(P)                    POSIX Programmer's Manual                   WAIT(P)



NAME
       wait - await process completion

SYNOPSIS
       wait [pid...]

DESCRIPTION
       When  an  asynchronous list (see Asynchronous Lists ) is started by the
       shell, the process ID of the last command in each element of the  asyn‐
       chronous  list  shall become known in the current shell execution envi‐
       ronment; see Shell Execution Environment .

       If the wait utility is invoked with no operands, it  shall  wait  until
       all  process  IDs  known to the invoking shell have terminated and exit
       with a zero exit status.

       If one or more pid operands are specified that represent known  process
       IDs,  the wait utility shall wait until all of them have terminated. If
       one or more pid operands are specified that represent  unknown  process
       IDs,  wait  shall  treat  them  as  if they were known process IDs that
       exited with exit status 127. The exit status returned by the wait util‐
       ity  shall  be the exit status of the process requested by the last pid
       operand.

       The known process IDs are applicable only for invocations  of  wait  in
       the current shell execution environment.

OPTIONS
       None.

OPERANDS
       The following operand shall be supported:

       pid    One of the following:

               1. The  unsigned  decimal  integer process ID of a command, for
                  which the utility is to wait for the termination.

               2. A job control job ID (see the  Base  Definitions  volume  of
                  IEEE Std 1003.1-2001,  Section  3.203,  Job  Control Job ID)
                  that identifies a background process group to be waited for.
                  The job control job ID notation is applicable only for invo‐
                  cations of wait in the current shell execution  environment;
                  see  Shell  Execution  Environment . The exit status of wait
                  shall be determined by the last command in the pipeline.

              Note:
                     The job control job ID type of pid is only  available  on
                     systems supporting the User Portability Utilities option.


STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of wait:

       LANG   Provide  a  default value for the internationalization variables
              that are unset or null. (See  the  Base  Definitions  volume  of
              IEEE Std 1003.1-2001,  Section  8.2,  Internationalization Vari‐
              ables for the precedence of internationalization variables  used
              to determine the values of locale categories.)

       LC_ALL If  set  to a non-empty string value, override the values of all
              the other internationalization variables.

       LC_CTYPE
              Determine the locale for  the  interpretation  of  sequences  of
              bytes  of  text  data as characters (for example, single-byte as
              opposed to multi-byte characters in arguments).

       LC_MESSAGES
              Determine the locale that should be used to  affect  the  format
              and contents of diagnostic messages written to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of
              LC_MESSAGES .


ASYNCHRONOUS EVENTS
       Default.

STDOUT
       Not used.

STDERR
       The standard error shall be used only for diagnostic messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       If one or more operands were specified, all of them have terminated  or
       were  not known by the invoking shell, and the status of the last oper‐
       and specified is known, then the exit status of wait shall be the  exit
       status  information of the command indicated by the last operand speci‐
       fied. If the process terminated abnormally due to the receipt of a sig‐
       nal,  the  exit  status shall be greater than 128 and shall be distinct
       from the exit status generated by other signals, but the exact value is
       unspecified.  (See  the  kill  -l  option.) Otherwise, the wait utility
       shall exit with one of the following values:

           0  The wait utility was invoked with no operands  and  all  process
              IDs known by the invoking shell have terminated.

       1-126  The wait utility detected an error.

         127  The  command  identified  by  the  last pid operand specified is
              unknown.


CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       On most implementations, wait is a shell built-in. If it is called in a
       subshell  or separate utility execution environment, such as one of the
       following:


              (wait)
              nohup wait ...
              find . -exec wait ... \;

       it returns immediately because there are no known process IDs  to  wait
       for in those environments.

       Historical  implementations  of  interactive  shells have discarded the
       exit status  of  terminated  background  processes  before  each  shell
       prompt.  Therefore, the status of background processes was usually lost
       unless it terminated while wait was waiting for it.  This  could  be  a
       serious  problem  when  a  job that was expected to run for a long time
       actually terminated quickly  with  a  syntax  or  initialization  error
       because  the  exit  status  returned  was usually zero if the requested
       process ID was not found. This volume of IEEE Std 1003.1-2001  requires
       the  implementation  to  keep  the  status of terminated jobs available
       until the status is requested, so that scripts like:


              j1&
              p1=$!
              j2&
              wait $p1
              echo Job 1 exited with status $?
              wait $!
              echo Job 2 exited with status $?

       work without losing status on any of the jobs. The shell is allowed  to
       discard the status of any process if it determines that the application
       cannot get the process ID for that process from the shell. It  is  also
       required  to remember only {CHILD_MAX} number of processes in this way.
       Since the only way to get the process ID from the shell is by using the
       '!'  shell  parameter, the shell is allowed to discard the status of an
       asynchronous list if "$!" was not referenced before  another  asynchro‐
       nous  list was started. (This means that the shell only has to keep the
       status of the last asynchronous list started if the application did not
       reference  "$!" . If the implementation of the shell is smart enough to
       determine that a reference to "$!" was  not  saved  anywhere  that  the
       application  can retrieve it later, it can use this information to trim
       the list of saved information.  Note also that  a  successful  call  to
       wait  with  no  operands  discards  the exit status of all asynchronous
       lists.)

       If the exit status of wait is greater than 128, there is no way for the
       application to know if the waited-for process exited with that value or
       was killed by a signal. Since most utilities exit  with  small  values,
       there is seldom any ambiguity. Even in the ambiguous cases, most appli‐
       cations just need to know that the asynchronous job failed; it does not
       matter  whether  it  detected an error and failed or was killed and did
       not complete its job normally.

EXAMPLES
       Although the exact value used when a process is terminated by a  signal
       is  unspecified,  if  it is known that a signal terminated a process, a
       script can still reliably determine which signal by using kill as shown
       by the following script:


              sleep 1000&
              pid=$!
              kill -kill $pid
              wait $pid
              echo $pid was terminated by a SIG$(kill -l $?) signal.

       If the following sequence of commands is run in less than 31 seconds:


              sleep 257 | sleep 31 &
              jobs -l %%

       either  of the following commands returns the exit status of the second
       sleep in the pipeline:


              wait <pid of sleep 31>wait %%

RATIONALE
       The description of wait does not refer to the waitpid()  function  from
       the System Interfaces volume of IEEE Std 1003.1-2001 because that would
       needlessly overspecify this interface. However, the wording means  that
       wait  is  required  to wait for an explicit process when it is given an
       argument so that the status information of other processes is not  con‐
       sumed.  Historical  implementations  use the wait() function defined in
       the System  Interfaces  volume  of  IEEE Std 1003.1-2001  until  wait()
       returns  the  requested  process ID or finds that the requested process
       does not exist. Because this means that a shell script could not  reli‐
       ably  get  the status of all background children if a second background
       job was ever started before the first job finished, it  is  recommended
       that  the  wait utility use a method such as the functionality provided
       by the waitpid() function.

       The ability to wait for multiple pid  operands  was  adopted  from  the
       KornShell.

       This  new functionality was added because it is needed to determine the
       exit status of any asynchronous list accurately. The only compatibility
       problem that this change creates is for a script like


              while sleep 60 do
                  job& echo Job started $(date) as $!  done

       which  causes  the  shell  to monitor all of the jobs started until the
       script terminates or runs out of memory. This would not be a problem if
       the  loop  did  not  reference "$!" or if the script would occasionally
       wait for jobs it started.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Shell Command Language , kill() , sh , the System Interfaces volume  of
       IEEE Std 1003.1-2001, wait(), waitpid()

COPYRIGHT
       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .



IEEE/The Open Group                  2003                              WAIT(P)
:?

If I was a programmer, this would be a lot funnier to me.

bebuxe

15 Nov 2012, 05:12

@prdlm2009
Yes, yes it would. And that fact that that it is a shell call or program, instead of a piece of code, would make you laugh even harder.

At the least you can sing with me the waiting song. It would at at least calm every body's nerves¹.

¹
Spoiler:
All puns seriously™ intended, for all intents and purposes. Nobody was harmed in the making of these texts, or any recurring patterns accidents of the LOLz OMG ©ᴼ ᴿ ᴾ of UNaCO

User avatar
aggiejy

25 Nov 2012, 05:05

It's be super nice if the first post always had the latest updates in it. Checking once a month or so, it's hard to figure out where we are. :)

bebuxe

25 Nov 2012, 06:40

@aggiejy
I concur.

Also, 7bit, what was with that email:

Code: Select all

Dear bebuxe,

 all NW-switches (PCB-mount) are sold out, so I have to order more.

 If you want PCB-mount switches, please send your order to
 CherryMX at Deskthority as soon as possible.

 In a few days, some switches might be sold out again!

 Thanks!

 7bit.


 Order-ID     |Ordered|   Stock|Price|Product code
 MXBLACK      |    324|sold out|  0.8|MX1A-11NN
 MXDARKGREY   |    263|     237|  0.8|MX1A-21NN
 MXLOCK       |     56|      24|  3.6|MX1A-31NW
 MXWHITE      |    760|in stock|  0.6|MX1A-A1NN
 MXCLEAR      |   2543|in stock|  0.6|MX1A-C1NN
 MXGREY       |    922|     248|  0.8|MX1A-D1NN (12/2012)
 MXBLUE       |    698|in stock|  0.6|MX1A-E1NN
 MXGREEN      |   2366|preorder|  0.6|MX1A-F1NN
 MXBROWN      |    444|in stock|  0.6|MX1A-G1NN
 MXRED        |    990|in stock|  0.6|MX1A-L1NN
 MXBLACK/NW   |      0|preorder|  0.8|MX1A-11NW (12/2012)
 MXDARKGREY/NW|    295|preorder|  0.8|MX1A-21NW (12/2012)
 MXLOCK/NW    |    150|      90|  3.6|MX1A-31NW
 MXWHITE/NW   |    212|preorder|  0.8|MX1A-A1NW
 MXCLEAR/NW   |      0|preorder|  0.8|MX1A-C1NW
 MXGREY/NW    |    422|preorder|  0.8|MX1A-D1NW (12/2012)
 MXBLUE/NW    |      0|preorder|  0.8|MX1A-E1NW (12/2012)
 MXGREEN/NW   |    638|preorder|  0.8|MX1A-F1NW (12/2012)
 MXBROWN/NW   |      4|preorder|  0.8|MX1A-G1NW (12/2012)
 MXRED/NW     |    140|preorder|  0.8|MX1A-L1NW (12/2012)
 CHERRYBOX    |      3|       3|    7|Cherry box for 800 switches
 CHERRYBOX2   |      0|       4|   12|Cherry box for 800 switches (2x)
 CHERRYBOX3   |      0|       3|   16|Cherry box for 800 switches (3x)
 CHERRYBOX4   |      0|       2|   20|Cherry box for 800 switches (4x)
 CHERRYBOX5   |      0|       2|   24|Cherry box for 800 switches (5x)
       .
@et al.:
While you wait, please watch, enjoy the lulz:
[youtube]http://www.youtube.com/watch?v=hFzz6EZmkq8[/youtube]

User avatar
7bit

25 Nov 2012, 09:45

It was a spam mail to trick you ordering more switches!

User avatar
hsu

25 Nov 2012, 14:15

aggiejy wrote:It's be super nice if the first post always had the latest updates in it. Checking once a month or so, it's hard to figure out where we are. :)
Indeed, I even thought the thread had achieved some kind of limit because we're at 100 pages...

(Unrelated: any idea which keyboard could go well with the spherical keycaps? I can't really find the combination white+mx blues+tenkeyless anywhere - no filco majestouch for that combination etc)

User avatar
BimboBB

25 Nov 2012, 15:06

yep, some kind of update whats left in stock would be great. last update is from end Oct.

User avatar
blighty

25 Nov 2012, 15:39

hsu wrote:
aggiejy wrote:It's be super nice if the first post always had the latest updates in it. Checking once a month or so, it's hard to figure out where we are. :)
Indeed, I even thought the thread had achieved some kind of limit because we're at 100 pages...

(Unrelated: any idea which keyboard could go well with the spherical keycaps? I can't really find the combination white+mx blues+tenkeyless anywhere - no filco majestouch for that combination etc)
http://geekhack.org/index.php?topic=37487.0
jdcarpe on GH is/was selling a white Filco MJ2 with MX blues?

Also for an update, you could always send ";asdjkl gfaweo;ihja" to 7bit_R4, and get the updated list sent to you.

User avatar
hsu

26 Nov 2012, 02:09

Thank you blighty, perfect match.

User avatar
7bit

27 Nov 2012, 00:51


Order-ID..................orders|qty|stock.......price|description
SPH/SPACE/BLUE..............|.69|..1|1.left......|..$3|6.25.units.Filco/Cherry/Leopold
SPH/SPACETIPRO..............|.20|..1|1.left......|..$3|4.units.(SA-family.only!)
SPH/SPACETIPRO/BLUE.........|.12|..1|2.left......|..$3|4.units.(SA-family.only!)
SPH/SPACEUNI................|.37|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/BLUE...........|.17|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/VIOLETT........|..9|..1|in.stock....|..$4|7.units.(SA-family.only!)
SPH/KBDRUNNER...............|103|..1|2.left......|..$1|keyboard.runner.white.on.red
SPH/LOTUSESC................|.32|..1|2.left......|..$2|Lotus.key.(1....unit,..row.3)
SPH/LOTUS125................|.17|..1|in.stock....|..$2|Lotus.key.(1.25.units,.row.3)
ROUND3/MODIFIER150..........|..6|.18|2.left......|.$18|Modifier.kit.(1.5.units.extra.keys)
ROUND3/SPACE/BLACK..........|.64|..1|1.left......|..$2|6.25.units.Filco/Cherry/Leopold
ROUND3/SPACENEW/GREY........|..3|..1|in.stock....|.$12|6.units.(114;38,57)
ROUND3/SPACEOLD/BLACK.......|.19|..1|1.left......|..$2|7.units.Cherry.no.Windows
ROUND3/SPACEOLD/ORANGE......|..8|..1|in.stock....|..$2|7.units.Cherry.no.Windows
ROUND3/FR...................|..3|.30|in.stock....|.$28|French.language.kit
ROUND3/PT...................|..2|.21|2.left......|.$24|Portuguese.language.kit
ROUND3/MUSIC/ORANGE.........|..5|.12|2.left......|.$24|Music.Function.kit
ROUND3/COMMAND125...........|..2|..1|in.stock....|..$2|Command.key.(1.25.unit,.row.4)
ROUND3/PHANTOMESC...........|.14|..1|2.left......|..$2|Phantom.Escape.(1.unit,.row.1)
RETRO/ALPHA/GREY............|..3|.53|1.left......|.$37|A-Z.and.Punctuation.keys
RETRO/MODIFIER150...........|..5|..9|1.left......|.$12|Modifier.kit.(1.5.units)
RETRO/FUNCTION12............|..3|.12|2.left......|.$15|F1-F12.(row.1,.1.unit,.1.color)
RETRO/SPACENEW..............|..5|..1|in.stock....|.$12|6.units.(114;38,57)
RETRO/SPACEOLD/BLUE.........|..6|..1|1.left......|..$6|7.units.Cherry.no.Windows
RETRO/SPACEOLD/RED..........|..4|..1|in.stock....|..$6|7.units.Cherry.no.Windows
RETRO/ES....................|..1|.24|2.left......|.$24|Spanish.language.kit
RETRO/DVORAK................|..2|.25|2.left......|.$32|Dvorak.language.kit
RETRO/GAMERMINI/BLUE........|..3|.32|1.left......|.$22|Gamer.kit.(WASD/Gamer.function.keys)
NOIR/SPACE..................|.98|..1|1.left......|..$2|6.25.units.Filco/Cherry/Leopold
NOIR/SPACENEW...............|..8|..1|in.stock....|.$12|6.units.(114;38,57)
NOIR/SPACEOLD...............|.29|..1|1.left......|..$2|7.units.Cherry.no.Windows
NOIR/FR.....................|..0|.31|in.stock....|.$24|French.language.kit
NOIR/ES.....................|..1|.24|1.left......|.$24|Spanish.language.kit
NOIR/UK.....................|..2|..7|1.left......|.$16|UK.language.kit
NOIR/DVORAK.................|..4|.25|1.left......|.$24|Dvorak.language.kit
NOIR/PHANTOMESC.............|.35|..1|in.stock....|..$2|Phantom.Escape.(1.unit,.row.1)
DUMMY.......................|647|..0|in.stock....|..$1|Dummy.kit/1.share.of.10k.leftover.keys
COLORCHAINPBT...............|..2|200|in.stock....|.$35|Color.Sample.Chain.PBT
COLORCHAINABS...............|..5|200|in.stock....|.$35|Color.Sample.Chain.ABS
BLANKSPH/R3U100C/SPHGREY....|..2|..1|in.stock....|..$3|Blank.1.unit.key.with.center.nub
BLANKSPH/R3U125/SPHGREY.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U200P/SPHGREY....|..3|..1|in.stock....|..$4|Blank.2.units.(POS.row.3)
BLANKSPH/R2U150/SPHGREY.....|..4|..1|in.stock....|..$3|Blank.1.5..units.(row.2./.QWERTY.row)
BLANKSPH/R2U150/SPHBLUE.....|..5|..1|2.left......|..$3|Blank.1.5..units.(row.2./.QWERTY.row)
BLANKSPH/R3U125/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANKSPH/R4U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.4./.ZXCVBN.row)
BLANK/R1U100/BLACK..........|.13|..1|1.left......|$1.2|Blank.1.unit.key.(row.1./.Function.row)
BLANK/R3U175/BLACK..........|..5|..1|2.left......|..$4|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANK/R4U150/BLACK..........|.10|..1|1.left......|..$3|Blank.1.5..units.(row.4./.ZXCVBN.row)
BLANK/R4U200H/BLACK.........|..5|..1|2.left......|..$4|Blank.2.units.horizontal.(row.4)
BLANK/R3U225/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.2.25.units.(row.3,.Return)
BLANK/R4U200H/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.horizontal.(row.4)
BLANK/R4U200V/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.vertical.(row.4)
BLANK/R4U275/VERYDARKGREY...|..3|..1|in.stock....|..$5|Blank.2.75.units.(row.4,.Shift.right)
BLANK/BLANKJRET/ORANGE......|..7|..1|1.left......|..$8|Blank.J-shape.Return.(ISO)
BLANK/SPACEOLD/CLEAR........|..4|..1|in.stock....|..$5|7.units.Cherry.no.Windows
BLANK/R3U200V/LIGHTGREY.....|..6|..1|1.left......|..$4|Blank.2.units.vertical.(row.3)
BLANK/R4U225/LIGHTGREY......|..3|..1|in.stock....|..$6|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R4U225/VERYDARKGREY...|..4|..1|in.stock....|..$5|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R4U275/LIGHTGREY......|..5|..1|2.left......|..$6|Blank.2.75.units.(row.4,.Shift.right)
BLANK/R1U125/BLACK..........|..4|..1|in.stock....|..$4|Blank.1.25.units.(row.1./.Function.row)
BLANK/SPACE/WHITE...........|..6|..1|1.left......|..$6|6.25.units.Filco/Cherry/Leopold
BLANK/BLANK100/LIGHTGREY....|..6|.16|1.left......|.$16|Blank.1.unit.keys.4.keys.per.row
BLANK/BLANKJRET/VERYDARKGREY|..4|..1|in.stock....|..$6|Blank.J-shape.Return.(ISO)
BLANK/R4U275/CLEAR..........|..1|..1|in.stock....|..$8|Blank.2.75.units.(row.4,.Shift.right)
BLANK/R1U200H/VERYDARKGREY..|..1|..1|in.stock....|..$5|Blank.2.units.horizontal.(row.1)
BLANK/R3U175/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.1.75.unit.key.(row.3./.ASDFGH.row).
BLANK/R1U100/LIGHTGREY......|..1|..1|in.stock....|$1.5|Blank.1.unit.key.(row.1./.QWERTY.row).
BIANCO/LOTUSESC/RED.........|.43|..1|1.left......|..$2|Lotus.key.red.(1.unit,.row.1)
BIANCO/LOTUSESC/GREEN.......|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)
BIANCO/LOTUSESC/BLUE........|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)
BIANCO/LOTUS125/BLACK.......|..5|..1|in.stock....|..$3|Lotus.key.(1.25.units,.row.4)
BIANCO/LOTUS125/RED.........|.33|..1|1.left......|..$2|Lotus.key.(1.25.units,.row.4)
:roll:

User avatar
fossala
Elite +1

27 Nov 2012, 01:13

Are all the spherical the same profile?

User avatar
Acanthophis

27 Nov 2012, 01:18

fossala wrote:Are all the spherical the same profile?
No.

User avatar
fossala
Elite +1

27 Nov 2012, 01:23

DeathAdder wrote:
fossala wrote:Are all the spherical the same profile?
No.
Thanks.

nebo

27 Nov 2012, 01:42

bebuxe wrote:@prdlm2009
Yes, yes it would. And that fact that that it is a shell call or program, instead of a piece of code, would make you laugh even harder.

At the least you can sing with me the waiting song. It would at at least calm every body's nerves¹.

¹
Spoiler:
All puns seriously™ intended, for all intents and purposes. Nobody was harmed in the making of these texts, or any recurring patterns accidents of the LOLz OMG ©ᴼ ᴿ ᴾ of UNaCO
We can fix that...

Code: Select all

WAIT(2)                    Linux Programmer's Manual                   WAIT(2)



NAME
       wait, waitpid, waitid - wait for process to change state

SYNOPSIS
       #include <sys/types.h>
       #include <sys/wait.h>

       pid_t wait(int *status);

       pid_t waitpid(pid_t pid, int *status, int options);

       int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       waitid():
           _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

DESCRIPTION
       All of these system calls are used to wait for state changes in a child
       of  the  calling  process, and obtain information about the child whose
       state has changed.  A state change is considered to be: the child  ter‐
       minated; the child was stopped by a signal; or the child was resumed by
       a signal.  In the case of a terminated child, performing a wait  allows
       the  system  to  release  the resources associated with the child; if a
       wait is not performed, then the terminated child remains in a  "zombie"
       state (see NOTES below).

       If  a  child has already changed state, then these calls return immedi‐
       ately.  Otherwise they block until either a child changes  state  or  a
       signal  handler interrupts the call (assuming that system calls are not
       automatically restarted using the SA_RESTART flag of sigaction(2)).  In
       the  remainder  of this page, a child whose state has changed and which
       has not yet been waited upon by one of these  system  calls  is  termed
       waitable.

   wait() and waitpid()
       The  wait() system call suspends execution of the calling process until
       one of its children terminates.  The call wait(&status)  is  equivalent
       to:

           waitpid(-1, &status, 0);

       The  waitpid()  system  call  suspends execution of the calling process
       until a child specified by pid argument has changed state.  By default,
       waitpid() waits only for terminated children, but this behavior is mod‐
       ifiable via the options argument, as described below.

       The value of pid can be:

       < -1   meaning wait for any child process whose  process  group  ID  is
              equal to the absolute value of pid.

       -1     meaning wait for any child process.

       0      meaning  wait  for  any  child process whose process group ID is
              equal to that of the calling process.

       > 0    meaning wait for the child whose process  ID  is  equal  to  the
              value of pid.

       The  value  of  options  is an OR of zero or more of the following con‐
       stants:

       WNOHANG     return immediately if no child has exited.

       WUNTRACED   also return if a child has  stopped  (but  not  traced  via
                   ptrace(2)).   Status for traced children which have stopped
                   is provided even if this option is not specified.

       WCONTINUED (since Linux 2.6.10)
                   also return if a stopped child has been resumed by delivery
                   of SIGCONT.

       (For Linux-only options, see below.)

       If status is not NULL, wait() and waitpid() store status information in
       the int to which it points.  This integer can  be  inspected  with  the
       following  macros  (which take the integer itself as an argument, not a
       pointer to it, as is done in wait() and waitpid()!):

       WIFEXITED(status)
              returns true if the child terminated normally, that is, by call‐
              ing exit(3) or _exit(2), or by returning from main().

       WEXITSTATUS(status)
              returns  the  exit  status  of  the child.  This consists of the
              least significant 8 bits of the status argument that  the  child
              specified  in  a  call to exit(3) or _exit(2) or as the argument
              for a return statement in main().  This  macro  should  only  be
              employed if WIFEXITED returned true.

       WIFSIGNALED(status)
              returns true if the child process was terminated by a signal.

       WTERMSIG(status)
              returns  the  number of the signal that caused the child process
              to terminate.  This macro should only be employed if WIFSIGNALED
              returned true.

       WCOREDUMP(status)
              returns  true  if  the  child  produced a core dump.  This macro
              should only be employed  if  WIFSIGNALED  returned  true.   This
              macro  is  not specified in POSIX.1-2001 and is not available on
              some UNIX implementations (e.g., AIX,  SunOS).   Only  use  this
              enclosed in #ifdef WCOREDUMP ... #endif.

       WIFSTOPPED(status)
              returns  true  if the child process was stopped by delivery of a
              signal; this is only possible if the call was  done  using  WUN‐
              TRACED or when the child is being traced (see ptrace(2)).

       WSTOPSIG(status)
              returns the number of the signal which caused the child to stop.
              This macro should only be employed if WIFSTOPPED returned true.

       WIFCONTINUED(status)
              (since Linux 2.6.10) returns  true  if  the  child  process  was
              resumed by delivery of SIGCONT.

   waitid()
       The  waitid()  system  call (available since Linux 2.6.9) provides more
       precise control over which child state changes to wait for.

       The idtype and id arguments select the child(ren) to wait for, as  fol‐
       lows:

       idtype == P_PID
              Wait for the child whose process ID matches id.

       idtype == P_PGID
              Wait for any child whose process group ID matches id.

       idtype == P_ALL
              Wait for any child; id is ignored.

       The  child state changes to wait for are specified by ORing one or more
       of the following flags in options:

       WEXITED     Wait for children that have terminated.

       WSTOPPED    Wait for children that have been stopped by delivery  of  a
                   signal.

       WCONTINUED  Wait  for  (previously  stopped)  children  that  have been
                   resumed by delivery of SIGCONT.

       The following flags may additionally be ORed in options:

       WNOHANG     As for waitpid().

       WNOWAIT     Leave the child in a waitable state; a later wait call  can
                   be used to again retrieve the child status information.

       Upon  successful  return, waitid() fills in the following fields of the
       siginfo_t structure pointed to by infop:

       si_pid      The process ID of the child.

       si_uid      The real user ID of the child.  (This field is not  set  on
                   most other implementations.)

       si_signo    Always set to SIGCHLD.

       si_status   Either  the  exit status of the child, as given to _exit(2)
                   (or exit(3)), or the signal that caused the child to termi‐
                   nate,  stop, or continue.  The si_code field can be used to
                   determine how to interpret this field.

       si_code     Set  to  one  of:  CLD_EXITED  (child   called   _exit(2));
                   CLD_KILLED  (child  killed  by  signal);  CLD_DUMPED (child
                   killed by signal,  and  dumped  core);  CLD_STOPPED  (child
                   stopped by signal); CLD_TRAPPED (traced child has trapped);
                   or CLD_CONTINUED (child continued by SIGCONT).

       If WNOHANG was specified in options and there were  no  children  in  a
       waitable  state,  then  waitid() returns 0 immediately and the state of
       the siginfo_t structure pointed to by infop is unspecified.  To distin‐
       guish  this  case from that where a child was in a waitable state, zero
       out the si_pid field before the call and check for a nonzero  value  in
       this field after the call returns.

RETURN VALUE
       wait():  on success, returns the process ID of the terminated child; on
       error, -1 is returned.

       waitpid(): on success, returns the process ID of the child whose  state
       has changed; if WNOHANG was specified and one or more child(ren) speci‐
       fied by pid exist, but have not yet changed state, then 0 is  returned.
       On error, -1 is returned.

       waitid():  returns  0  on  success  or  if WNOHANG was specified and no
       child(ren) specified by id has yet  changed  state;  on  error,  -1  is
       returned.   Each  of  these calls sets errno to an appropriate value in
       the case of an error.

ERRORS
       ECHILD (for wait()) The calling process does not have any  unwaited-for
              children.

       ECHILD (for  waitpid() or waitid()) The process specified by pid (wait‐
              pid()) or idtype and id (waitid()) does not exist or  is  not  a
              child  of  the  calling process.  (This can happen for one's own
              child if the action for SIGCHLD is set to SIG_IGN.  See also the
              Linux Notes section about threads.)

       EINTR  WNOHANG  was  not  set  and an unblocked signal or a SIGCHLD was
              caught; see signal(7).

       EINVAL The options argument was invalid.

CONFORMING TO
       SVr4, 4.3BSD, POSIX.1-2001.

NOTES
       A child that terminates, but has not been waited for  becomes  a  "zom‐
       bie".  The kernel maintains a minimal set of information about the zom‐
       bie process (PID, termination status, resource  usage  information)  in
       order to allow the parent to later perform a wait to obtain information
       about the child.  As long as a zombie is not removed  from  the  system
       via  a wait, it will consume a slot in the kernel process table, and if
       this table fills, it will not be possible to create further  processes.
       If a parent process terminates, then its "zombie" children (if any) are
       adopted by init(8), which automatically performs a wait to  remove  the
       zombies.

       POSIX.1-2001  specifies  that  if  the disposition of SIGCHLD is set to
       SIG_IGN or the SA_NOCLDWAIT flag is set for SIGCHLD (see sigaction(2)),
       then children that terminate do not become zombies and a call to wait()
       or waitpid() will block until all children have  terminated,  and  then
       fail  with  errno set to ECHILD.  (The original POSIX standard left the
       behavior of setting SIGCHLD to SIG_IGN  unspecified.   Note  that  even
       though  the default disposition of SIGCHLD is "ignore", explicitly set‐
       ting the disposition to SIG_IGN results in different treatment of  zom‐
       bie process children.)  Linux 2.6 conforms to this specification.  How‐
       ever, Linux 2.4 (and earlier) does not: if a wait() or  waitpid()  call
       is made while SIGCHLD is being ignored, the call behaves just as though
       SIGCHLD were not being ignored, that is, the call blocks until the next
       child  terminates  and  then  returns the process ID and status of that
       child.

   Linux Notes
       In the Linux kernel, a kernel-scheduled thread is not a  distinct  con‐
       struct  from  a process.  Instead, a thread is simply a process that is
       created using the Linux-unique clone(2)  system  call;  other  routines
       such  as  the  portable  pthread_create(3)  call  are implemented using
       clone(2).  Before Linux 2.4, a thread was just  a  special  case  of  a
       process, and as a consequence one thread could not wait on the children
       of another thread, even when the latter  belongs  to  the  same  thread
       group.   However,  POSIX prescribes such functionality, and since Linux
       2.4 a thread can, and by  default  will,  wait  on  children  of  other
       threads in the same thread group.

       The  following Linux-specific options are for use with children created
       using clone(2); they cannot be used with waitid():

       __WCLONE
              Wait for "clone" children only.  If omitted then wait for  "non-
              clone" children only.  (A "clone" child is one which delivers no
              signal, or a signal other than SIGCHLD to its parent upon termi‐
              nation.)  This option is ignored if __WALL is also specified.

       __WALL (since Linux 2.4)
              Wait  for  all  children,  regardless  of type ("clone" or "non-
              clone").

       __WNOTHREAD (since Linux 2.4)
              Do not wait for children of other threads  in  the  same  thread
              group.  This was the default before Linux 2.4.

EXAMPLE
       The  following  program  demonstrates the use of fork(2) and waitpid().
       The program creates a child process.  If no  command-line  argument  is
       supplied  to  the  program, then the child suspends its execution using
       pause(2), to allow the user to send signals to the  child.   Otherwise,
       if  a  command-line  argument is supplied, then the child exits immedi‐
       ately, using the integer supplied on the command line as the exit  sta‐
       tus.   The parent process executes a loop that monitors the child using
       waitpid(), and uses the W*() macros described above to analyze the wait
       status value.

       The following shell session demonstrates the use of the program:

           $ ./a.out &
           Child PID is 32360
           [1] 32359
           $ kill -STOP 32360
           stopped by signal 19
           $ kill -CONT 32360
           continued
           $ kill -TERM 32360
           killed by signal 15
           [1]+  Done                    ./a.out
           $

   Program source

       #include <sys/wait.h>
       #include <stdlib.h>
       #include <unistd.h>
       #include <stdio.h>

       int
       main(int argc, char *argv[])
       {
           pid_t cpid, w;
           int status;

           cpid = fork();
           if (cpid == -1) {
               perror("fork");
               exit(EXIT_FAILURE);
           }

           if (cpid == 0) {            /* Code executed by child */
               printf("Child PID is %ld\n", (long) getpid());
               if (argc == 1)
                   pause();                    /* Wait for signals */
               _exit(atoi(argv[1]));

           } else {                    /* Code executed by parent */
               do {
                   w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);
                   if (w == -1) {
                       perror("waitpid");
                       exit(EXIT_FAILURE);
                   }

                   if (WIFEXITED(status)) {
                       printf("exited, status=%d\n", WEXITSTATUS(status));
                   } else if (WIFSIGNALED(status)) {
                       printf("killed by signal %d\n", WTERMSIG(status));
                   } else if (WIFSTOPPED(status)) {
                       printf("stopped by signal %d\n", WSTOPSIG(status));
                   } else if (WIFCONTINUED(status)) {
                       printf("continued\n");
                   }
               } while (!WIFEXITED(status) && !WIFSIGNALED(status));
               exit(EXIT_SUCCESS);
           }
       }

SEE ALSO
       _exit(2),  clone(2),  fork(2),  kill(2),  ptrace(2), sigaction(2), sig‐
       nal(2), wait4(2), pthread_create(3), credentials(7), signal(7)

COLOPHON
       This page is part of release 3.40 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.



Linux                             2010-09-26                           WAIT(2)

pasph

27 Nov 2012, 02:43

order sent

bebuxe

27 Nov 2012, 03:01

@nebo
You may not with incorrect permissions.

Code: Select all

PAM(3)		       FreeBSD Library Functions Manual 		PAM(3)

NAME
     pam_acct_mgmt, pam_authenticate, pam_chauthtok, pam_close_session,
     pam_end, pam_get_data, pam_get_item, pam_get_user, pam_getenv,
     pam_getenvlist, pam_open_session, pam_putenv, pam_set_data, pam_set_item,
     pam_setcred, pam_start, pam_strerror -- Pluggable Authentication Modules
     Library

LIBRARY
     Pluggable Authentication Module Library (libpam, -lpam)

SYNOPSIS
     #include <security/pam_appl.h>

     int
     pam_acct_mgmt(pam_handle_t *pamh, int flags);

     int
     pam_authenticate(pam_handle_t *pamh, int flags);

     int
     pam_chauthtok(pam_handle_t *pamh, int flags);

     int
     pam_close_session(pam_handle_t *pamh, int flags);

     int
     pam_end(pam_handle_t *pamh, int status);

     int
     pam_get_data(const pam_handle_t *pamh, const char *module_data_name,
	 const void **data);

     int
     pam_get_item(const pam_handle_t *pamh, int item_type, const void **item);

     int
     pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt);

     const char *
     pam_getenv(pam_handle_t *pamh, const char *name);

     char **
     pam_getenvlist(pam_handle_t *pamh);

     int
     pam_open_session(pam_handle_t *pamh, int flags);

     int
     pam_putenv(pam_handle_t *pamh, const char *namevalue);

     int
     pam_set_data(pam_handle_t *pamh, const char *module_data_name,
	 void *data,
	 void (*cleanup)(pam_handle_t *pamh, void *data, int pam_end_status));

     int
     pam_set_item(pam_handle_t *pamh, int item_type, const void *item);

     int
     pam_setcred(pam_handle_t *pamh, int flags);

     int
     pam_start(const char *service, const char *user,
	 const struct pam_conv *pam_conv, pam_handle_t **pamh);

     const char *
     pam_strerror(const pam_handle_t *pamh, int error_number);

DESCRIPTION
     The Pluggable Authentication Modules (PAM) library abstracts a number of
     common authentication-related operations and provides a framework for
     dynamically loaded modules that implement these operations in various
     ways.

   Terminology
     In PAM parlance, the application that uses PAM to authenticate a user is
     the server, and is identified for configuration purposes by a service
     name, which is often (but not necessarily) the program name.

     The user requesting authentication is called the applicant, while the
     user (usually, root) charged with verifying his identity and granting him
     the requested credentials is called the arbitrator.

     The sequence of operations the server goes through to authenticate a user
     and perform whatever task he requested is a PAM transaction; the context
     within which the server performs the requested task is called a session.

     The functionality embodied by PAM is divided into six primitives grouped
     into four facilities: authentication, account management, session manage-
     ment and password management.

   Conversation
     The PAM library expects the application to provide a conversation call-
     back which it can use to communicate with the user.  Some modules may use
     specialized conversation functions to communicate with special hardware
     such as cryptographic dongles or biometric devices.  See pam_conv(3) for
     details.

   Initialization and Cleanup
     The pam_start() function initializes the PAM library and returns a handle
     which must be provided in all subsequent function calls.  The transaction
     state is contained entirely within the structure identified by this han-
     dle, so it is possible to conduct multiple transactions in parallel.

     The pam_end() function releases all resources associated with the speci-
     fied context, and can be called at any time to terminate a PAM transac-
     tion.

   Storage
     The pam_set_item() and pam_get_item() functions set and retrieve a number
     of predefined items, including the service name, the names of the
     requesting and target users, the conversation function, and prompts.

     The pam_set_data() and pam_get_data() functions manage named chunks of
     free-form data, generally used by modules to store state from one invoca-
     tion to another.

   Authentication
     There are two authentication primitives: pam_authenticate() and
     pam_setcred().  The former authenticates the user, while the latter man-
     ages his credentials.

   Account Management
     The pam_acct_mgmt() function enforces policies such as password expiry,
     account expiry, time-of-day restrictions, and so forth.

   Session Management
     The pam_open_session() and pam_close_session() functions handle session
     setup and teardown.

   Password Management
     The pam_chauthtok() function allows the server to change the user's pass-
     word, either at the user's request or because the password has expired.

   Miscellaneous
     The pam_putenv(), pam_getenv() and pam_getenvlist() functions manage a
     private environment list in which modules can set environment variables
     they want the server to export during the session.

     The pam_strerror() function returns a pointer to a string describing the
     specified PAM error code.

RETURN VALUES
     The following return codes are defined by <security/pam_constants.h>:

     [PAM_ABORT]	 General failure.

     [PAM_ACCT_EXPIRED]  User account has expired.

     [PAM_AUTHINFO_UNAVAIL]
			 Authentication information is unavailable.

     [PAM_AUTHTOK_DISABLE_AGING]
			 Authentication token aging disabled.

     [PAM_AUTHTOK_ERR]	 Authentication token failure.

     [PAM_AUTHTOK_EXPIRED]
			 Password has expired.

     [PAM_AUTHTOK_LOCK_BUSY]
			 Authentication token lock busy.

     [PAM_AUTHTOK_RECOVERY_ERR]
			 Failed to recover old authentication token.

     [PAM_AUTH_ERR]	 Authentication error.

     [PAM_BUF_ERR]	 Memory buffer error.

     [PAM_CONV_ERR]	 Conversation failure.

     [PAM_CRED_ERR]	 Failed to set user credentials.

     [PAM_CRED_EXPIRED]  User credentials have expired.

     [PAM_CRED_INSUFFICIENT]
			 Insufficient credentials.

     [PAM_CRED_UNAVAIL]  Failed to retrieve user credentials.

     [PAM_DOMAIN_UNKNOWN]
			 Unknown authentication domain.

     [PAM_IGNORE]	 Ignore this module.

     [PAM_MAXTRIES]	 Maximum number of tries exceeded.

     [PAM_MODULE_UNKNOWN]
			 Unknown module type.

     [PAM_NEW_AUTHTOK_REQD]
			 New authentication token required.

     [PAM_NO_MODULE_DATA]
			 Module data not found.

     [PAM_OPEN_ERR]	 Failed to load module.

     [PAM_PERM_DENIED]	 Permission denied.

     [PAM_SERVICE_ERR]	 Error in service module.

     [PAM_SESSION_ERR]	 Session failure.

     [PAM_SUCCESS]	 Success.

     [PAM_SYMBOL_ERR]	 Invalid symbol.

     [PAM_SYSTEM_ERR]	 System error.

     [PAM_TRY_AGAIN]	 Try again.

     [PAM_USER_UNKNOWN]  Unknown user.

SEE ALSO
     openpam(3), pam_acct_mgmt(3), pam_authenticate(3), pam_chauthtok(3),
     pam_close_session(3), pam_conv(3), pam_end(3), pam_get_data(3),
     pam_getenv(3), pam_getenvlist(3), pam_get_item(3), pam_get_user(3),
     pam_open_session(3), pam_putenv(3), pam_setcred(3), pam_set_data(3),
     pam_set_item(3), pam_start(3), pam_strerror(3)

STANDARDS
     X/Open Single Sign-On Service (XSSO) - Pluggable Authentication Modules,
     June 1997.

AUTHORS
     The OpenPAM library and this manual page were developed for the FreeBSD
     Project by ThinkSec AS and Network Associates Laboratories, the Security
     Research Division of Network Associates, Inc. under DARPA/SPAWAR contract
     N66001-01-C-8035 (``CBOSS''), as part of the DARPA CHATS research pro-
     gram.

FreeBSD 8.3		       December 21, 2007		   FreeBSD 8.3
Spoiler:
I feel like I am stretching it. So I am going to end it here. Good comeback.

User avatar
rindorbrot

27 Nov 2012, 07:13

Any update on the production progress?

User avatar
7bit

27 Nov 2012, 09:36

No.


Order-ID..................orders|qty|stock.......price|description
SPH/SPACETIPRO..............|.20|..1|1.left......|..$3|4.units.(SA-family.only!)
SPH/SPACETIPRO/BLUE.........|.12|..1|2.left......|..$3|4.units.(SA-family.only!)
SPH/SPACEUNI................|.37|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/BLUE...........|.17|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/VIOLETT........|..9|..1|in.stock....|..$4|7.units.(SA-family.only!)
SPH/KBDRUNNER...............|103|..1|2.left......|..$1|keyboard.runner.white.on.red
SPH/LOTUSESC................|.32|..1|2.left......|..$2|Lotus.key.(1....unit,..row.3)
SPH/LOTUS125................|.17|..1|in.stock....|..$2|Lotus.key.(1.25.units,.row.3)
ROUND3/SPACENEW/GREY........|..3|..1|in.stock....|.$12|6.units.(114;38,57)
ROUND3/SPACEOLD/ORANGE......|..9|..1|2.left......|..$2|7.units.Cherry.no.Windows
ROUND3/FR...................|..3|.30|in.stock....|.$28|French.language.kit
ROUND3/PT...................|..3|.21|1.left......|.$24|Portuguese.language.kit
ROUND3/MUSIC/ORANGE.........|..6|.12|1.left......|.$24|Music.Function.kit
ROUND3/COMMAND125...........|..6|..1|1.left......|..$2|Command.key.(1.25.unit,.row.4)
ROUND3/PHANTOMESC...........|.14|..1|2.left......|..$2|Phantom.Escape.(1.unit,.row.1)
RETRO/FUNCTION12............|..4|.12|1.left......|.$15|F1-F12.(row.1,.1.unit,.1.color)
RETRO/SPACENEW..............|..5|..1|in.stock....|.$12|6.units.(114;38,57)
RETRO/SPACEOLD/RED..........|..5|..1|2.left......|..$6|7.units.Cherry.no.Windows
RETRO/ES....................|..2|.24|1.left......|.$24|Spanish.language.kit
RETRO/DVORAK................|..2|.25|2.left......|.$32|Dvorak.language.kit
RETRO/GAMERMINI/BLUE........|..3|.32|1.left......|.$22|Gamer.kit.(WASD/Gamer.function.keys)
NOIR/SPACENEW...............|..8|..1|in.stock....|.$12|6.units.(114;38,57)
NOIR/FR.....................|..0|.31|in.stock....|.$24|French.language.kit
NOIR/UK.....................|..2|..7|1.left......|.$16|UK.language.kit
NOIR/DVORAK.................|..4|.25|1.left......|.$24|Dvorak.language.kit
NOIR/PHANTOMESC.............|.35|..1|in.stock....|..$2|Phantom.Escape.(1.unit,.row.1)
DUMMY.......................|647|..0|in.stock....|..$1|Dummy.kit/1.share.of.10k.leftover.keys
COLORCHAINPBT...............|..2|200|in.stock....|.$35|Color.Sample.Chain.PBT
COLORCHAINABS...............|..5|200|in.stock....|.$35|Color.Sample.Chain.ABS
BLANKSPH/R3U100C/SPHGREY....|..2|..1|in.stock....|..$3|Blank.1.unit.key.with.center.nub
BLANKSPH/R3U125/SPHGREY.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U200P/SPHGREY....|..3|..1|in.stock....|..$4|Blank.2.units.(POS.row.3)
BLANKSPH/R2U150/SPHGREY.....|..4|..1|in.stock....|..$3|Blank.1.5..units.(row.2./.QWERTY.row)
BLANKSPH/R2U150/SPHBLUE.....|..5|..1|2.left......|..$3|Blank.1.5..units.(row.2./.QWERTY.row)
BLANKSPH/R3U125/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANKSPH/R4U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.4./.ZXCVBN.row)
BLANK/R1U100/BLACK..........|.13|..1|1.left......|$1.2|Blank.1.unit.key.(row.1./.Function.row)
BLANK/R3U175/BLACK..........|..5|..1|2.left......|..$4|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANK/R4U150/BLACK..........|.10|..1|1.left......|..$3|Blank.1.5..units.(row.4./.ZXCVBN.row)
BLANK/R4U200H/BLACK.........|..5|..1|2.left......|..$4|Blank.2.units.horizontal.(row.4)
BLANK/R3U225/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.2.25.units.(row.3,.Return)
BLANK/R4U200H/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.horizontal.(row.4)
BLANK/R4U200V/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.vertical.(row.4)
BLANK/R4U275/VERYDARKGREY...|..3|..1|in.stock....|..$5|Blank.2.75.units.(row.4,.Shift.right)
BLANK/SPACEOLD/CLEAR........|..4|..1|in.stock....|..$5|7.units.Cherry.no.Windows
BLANK/R3U200V/LIGHTGREY.....|..6|..1|1.left......|..$4|Blank.2.units.vertical.(row.3)
BLANK/R4U225/LIGHTGREY......|..3|..1|in.stock....|..$6|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R4U225/VERYDARKGREY...|..4|..1|in.stock....|..$5|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R4U275/LIGHTGREY......|..5|..1|2.left......|..$6|Blank.2.75.units.(row.4,.Shift.right)
BLANK/R1U125/BLACK..........|..4|..1|in.stock....|..$4|Blank.1.25.units.(row.1./.Function.row)
BLANK/BLANK100/LIGHTGREY....|..6|.16|1.left......|.$16|Blank.1.unit.keys.4.keys.per.row
BLANK/R4U275/CLEAR..........|..1|..1|in.stock....|..$8|Blank.2.75.units.(row.4,.Shift.right)
BLANK/R1U200H/VERYDARKGREY..|..1|..1|in.stock....|..$5|Blank.2.units.horizontal.(row.1)
BLANK/R3U175/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.1.75.unit.key.(row.3./.ASDFGH.row).
BLANK/R1U100/LIGHTGREY......|..1|..1|in.stock....|$1.5|Blank.1.unit.key.(row.1./.QWERTY.row).
BIANCO/LOTUSESC/RED.........|.43|..1|1.left......|..$2|Lotus.key.red.(1.unit,.row.1)
BIANCO/LOTUSESC/GREEN.......|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)
BIANCO/LOTUSESC/BLUE........|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)
:roll:

emptythecache

27 Nov 2012, 15:59

you should hassle them for one.

pasph

28 Nov 2012, 00:05

paid

User avatar
sth
2 girls 1 cuprubber

29 Nov 2012, 04:06

fossala wrote:
DeathAdder wrote:
fossala wrote:Are all the spherical the same profile?
No.
Thanks.
huh i was under the impression that we were getting row 3 of everything for sph.

User avatar
7bit

29 Nov 2012, 10:00

[quote="sth"huh i was under the impression that we were getting row 3 of everything for sph.[/quote]
No, except for:
keys larger than 1 units (modifiers etc), function keys and there where special kits with row-3 alnum keys.

BTW: I got a message from SP that they are currently producing the lightgrey RETRO-style keys.

User avatar
dirge

29 Nov 2012, 10:20

7bit wrote: BTW: I got a message from SP that they are currently producing the lightgrey RETRO-style keys.
They need to take photo's for us, seeing things being made and the progress would be great. Would pad out the small round 4 area on the wiki too :evilgeek:

User avatar
7bit

29 Nov 2012, 16:26


Order-ID..................orders|qty|stock.......price|description
SPH/SPACETIPRO..............|.20|..1|1.left......|..$3|4.units.(SA-family.only!)
SPH/SPACEUNI................|.37|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/BLUE...........|.17|..1|2.left......|..$4|7.units.(SA-family.only!)
SPH/SPACEUNI/VIOLETT........|..9|..1|in.stock....|..$4|7.units.(SA-family.only!)

SPH/KBDRUNNER...............|104|..1|1.left......|..$1|keyboard.runner.white.on.red<----!!!
SPH/LOTUSESC................|.32|..1|2.left......|..$2|Lotus.key.(1....unit,..row.3)<----!!!
SPH/LOTUS125................|.17|..1|in.stock....|..$2|Lotus.key.(1.25.units,.row.3)<----!!!

ROUND3/SPACENEW/GREY........|..3|..1|in.stock....|.$12|6.units.(114;38,57)
ROUND3/SPACEOLD/ORANGE......|..9|..1|2.left......|..$2|7.units.Cherry.no.Windows

ROUND3/FR...................|..3|.30|in.stock....|.$28|French.language.kit
ROUND3/PT...................|..3|.21|1.left......|.$24|Portuguese.language.kit
ROUND3/MUSIC/ORANGE.........|..6|.12|1.left......|.$24|Music.Function.kit<----!!!
ROUND3/COMMAND125...........|..6|..1|1.left......|..$2|Command.key.(1.25.unit,.row.4)<----!!!
ROUND3/PHANTOMESC...........|.14|..1|2.left......|..$2|Phantom.Escape.(1.unit,.row.1)<----!!!


RETRO/FUNCTION12............|..4|.12|1.left......|.$15|F1-F12.(row.1,.1.unit,.1.color)
RETRO/SPACENEW..............|..5|..1|in.stock....|.$12|6.units.(114;38,57)
RETRO/SPACEOLD/RED..........|..5|..1|2.left......|..$6|7.units.Cherry.no.Windows
RETRO/ES....................|..2|.24|1.left......|.$24|Spanish.language.kit
RETRO/DVORAK................|..2|.25|2.left......|.$32|Dvorak.language.kit

RETRO/GAMERMINI/BLUE........|..3|.32|1.left......|.$22|Gamer.kit.(WASD/Gamer.function.keys)<----!!!

NOIR/SPACENEW...............|..8|..1|in.stock....|.$12|6.units.(114;38,57)
NOIR/FR.....................|..0|.31|in.stock....|.$24|French.language.kit
NOIR/UK.....................|..2|..7|1.left......|.$16|UK.language.kit
NOIR/DVORAK.................|..4|.25|1.left......|.$24|Dvorak.language.kit

NOIR/PHANTOMESC.............|.35|..1|in.stock....|..$2|Phantom.Escape.(1.unit,.row.1)<----!!!

BLANKSPH/R3U100C/SPHGREY....|..2|..1|in.stock....|..$3|Blank.1.unit.key.with.center.nub
BLANKSPH/R3U125/SPHGREY.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U200P/SPHGREY....|..3|..1|in.stock....|..$4|Blank.2.units.(POS.row.3)
BLANKSPH/R2U150/SPHGREY.....|..4|..1|in.stock....|..$3|Blank.1.5..units.(row.2./.QWERTY.row)

BLANKSPH/R2U150/SPHBLUE.....|..5|..1|2.left......|..$3|Blank.1.5..units.(row.2./.QWERTY.row)
BLANKSPH/R3U125/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.25.units.(row.3./.ASDFGH.row)
BLANKSPH/R3U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANKSPH/R4U175/SPHBLUE.....|..2|..1|in.stock....|..$3|Blank.1.75.units.(row.4./.ZXCVBN.row)

BLANK/R1U100/BLACK..........|.13|..1|1.left......|$1.2|Blank.1.unit.key.(row.1./.Function.row)
BLANK/R3U175/BLACK..........|..5|..1|2.left......|..$4|Blank.1.75.units.(row.3./.ASDFGH.row)
BLANK/R4U150/BLACK..........|.10|..1|1.left......|..$3|Blank.1.5..units.(row.4./.ZXCVBN.row)
BLANK/R4U200H/BLACK.........|..5|..1|2.left......|..$4|Blank.2.units.horizontal.(row.4)

BLANK/R3U225/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.2.25.units.(row.3,.Return)
BLANK/R4U200H/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.horizontal.(row.4)
BLANK/R4U200V/VERYDARKGREY..|..1|..1|in.stock....|..$4|Blank.2.units.vertical.(row.4)
BLANK/R4U275/VERYDARKGREY...|..3|..1|in.stock....|..$5|Blank.2.75.units.(row.4,.Shift.right)

BLANK/SPACEOLD/CLEAR........|..4|..1|in.stock....|..$5|7.units.Cherry.no.Windows
BLANK/R4U275/CLEAR..........|..1|..1|in.stock....|..$8|Blank.2.75.units.(row.4,.Shift.right)

BLANK/R3U200V/LIGHTGREY.....|..6|..1|1.left......|..$4|Blank.2.units.vertical.(row.3)
BLANK/R4U225/LIGHTGREY......|..3|..1|in.stock....|..$6|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R4U275/LIGHTGREY......|..5|..1|2.left......|..$6|Blank.2.75.units.(row.4,.Shift.right)
BLANK/BLANK100/LIGHTGREY....|..6|.16|1.left......|.$16|Blank.1.unit.keys.4.keys.per.row
BLANK/R1U100/LIGHTGREY......|..1|..1|in.stock....|$1.5|Blank.1.unit.key.(row.1./.QWERTY.row).

BLANK/R4U225/VERYDARKGREY...|..4|..1|in.stock....|..$5|Blank.2.25.units.(row.4,.Shift.left)
BLANK/R1U200H/VERYDARKGREY..|..1|..1|in.stock....|..$5|Blank.2.units.horizontal.(row.1)
BLANK/R3U175/VERYDARKGREY...|..1|..1|in.stock....|..$5|Blank.1.75.unit.key.(row.3./.ASDFGH.row).

BLANK/R1U125/BLACK..........|..4|..1|in.stock....|..$4|Blank.1.25.units.(row.1./.Function.row)

BIANCO/LOTUSESC/RED.........|.43|..1|1.left......|..$2|Lotus.key.red.(1.unit,.row.1)<------!!!
BIANCO/LOTUSESC/GREEN.......|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)<------!!!
BIANCO/LOTUSESC/BLUE........|..9|..1|1.left......|..$4|Lotus.key.green.(1.unit,.row.1)<------!!!
:roll:

User avatar
kps

29 Nov 2012, 19:42

What does “⇠‼” mean?

User avatar
7bit

29 Nov 2012, 19:44

kps wrote:What does “⇠‼” mean?
Kits with keys that are non-blank.

I just want to draw attention to these kits, so maybe the sell easier.

User avatar
The_Ed
Asperger's... SQUIRREL!

30 Nov 2012, 11:34

I was just looking through my old posts and found something that gave me a laugh. An excerpt from my fifth ever post on GH:

Sun, 28 August 2011, 18:24:09
The_Ed wrote: [...] I still can't wait... forever is taking fucking forever... And GB4 is in the next universe after this one implodes... But at least I'll get this before then... hopefully...I guess...
How right I was!

User avatar
7bit

30 Nov 2012, 12:03

In 20111 we where in the interest check phase, so that does not count!

It seems that SP underestimated the time they need to do the production.

bebuxe

30 Nov 2012, 12:25

7bit wrote:In 20111 we where in the interest check phase, so that does not count!

It seems that SP underestimated the time they need to do the production.
Good thing we made a quantum leap to the past to get them in production time.
Spoiler:
I can almost hear you wail at your grave error. I shall keep it here as a reminder; you have made history regardless of intent.
Last edited by bebuxe on 01 Dec 2012, 03:53, edited 1 time in total.

Post Reply

Return to “Group buys”