ZOO(1) ZOO(1) NAME zoo - manipulate archives of files in compressed form SYNOPSIS zoo {acfDeghHlLPTuUvVx}[aAcCdEfghImMnNoOpPqSu1:/.@n+-=] archive [file] ... zoo -command archive [file] ... zoo h DESCRIPTION Zoo is used to create and maintain collections of files in compressed form. It uses a Lempel-Ziv compression algorithm that gives space sav‐ ings in the range of 20% to 80% depending on the type of file data. Zoo can store and selectively extract multiple generations of the same file. Data can be recovered from damaged archives by skipping the damaged por‐ tion and locating undamaged data with the help of fiz(1). This documentation is for version 2.1. Changes from previous versions are described in the section labelled CHANGES. The command zoo h gives a summary of commands. Extended multiscreen help can be obtained with zoo H. Zoo will not add an archive to itself, nor add the archive's backup (with .bak extension to the filename) to the archive. Zoo has two types of commands: Expert commands, which consist of one command letter followed by zero or more modifier characters, and Novice commands, which consist of a hyphen (`-') followed by a command word that may be abbreviated. Expert commands are case-sensitive but Novice com‐ mands are not. When zoo adds a file to an existing archive, the default action is to maintain one generation of each file in an archive and to mark any older generation as deleted. A limit on the number of generations to save can be specified by the user for an entire archive, or for each file individ‐ ually, or both. Zoo deletes a stored copy of an added file if necessary to prevent the number of stored generations from exceeding the user-spec‐ ified limit. Deleted files may be later undeleted. Archives may be packed to recover space occupied by deleted files. All commands assume that the archive name ends with the characters .zoo unless a different extension is supplied. Novice commands Novice commands may be abbreviated to a hyphen followed by at least one command character. Each Novice command works in two stages. First, the command does its intended work. Then, if the result was that one or more files were deleted in the specified archive, the archive is packed. If packing occurs, the original unpacked archive is always left behind with an extension of .bak. No Novice command ever stores the directory prefix of a file. The Novice commands are as follows. -add Adds the specified files to the archive. -freshen Adds a specified file to the archive if and only if an older file by the same name already exists in the archive. -delete Deletes the specified files from the archive. -update Adds a specified file to the archive either: if an older file by the same name already exists in the archive or: if a file by the same name does not already exist in the archive. -extract Extracts the specified files from the archive. If no file is specified all files are extracted. -move Equivalent to -add except that source files are deleted after addition. -print Equivalent to -extract except that extracted data are sent to standard output. -list Gives information about the specified archived files including any attached comments. If no files are specified all files are listed. Deleted files are not listed. -test Equivalent to -extract except that the extracted data are not saved but any errors encountered are reported. -comment Allows the user to add or update comments attached to archived files. When prompted, the user may: type a carriage return to skip the file, leaving any current comment unchanged; or type a (possibly null) comment of up to 32,767 characters terminated by /end (case-insensitive) on a separate line; or type the end-of- file character (normally control D) to skip all remaining files. -delete Deletes the specified files. The correspondence between Novice and Expert commands is as follows. tab(@); l l l. Novice@@Equivalent Command@Description@Expert Command _ -add@add files to archive@aP: -extract@extract files from archive@x -move@move files to archive@aMP: -test@test archive integrity@xNd -print@extract files to standard output@xp -delete@delete files from archive@DP -list@list archive contents@VC -update@add new or newer files@aunP: -freshen@by add newer files@auP: -comment@add comments to files@c Expert commands The general format of expert commands is: zoo {acfDeghHlLPTuUvVx}[aAcCdEfghImMnNoOpPqSu1:/.@n+-=] archive [file] ... The characters enclosed within {} are commands. Choose any one of these. The characters enclosed within [] just to the right of the {} are modi‐ fiers and zero or more of these may immediately follow the command char‐ acter. All combinations of command and modifier characters may not be valid. Files are added to an archive with the command: zoo {au}[cfhIMnPqu:+-] archive [file] ... Command characters are: a Add each specified file to archive. Any already-archived copy of the file is deleted if this is necessary to avoid exceeding the user-specified limit on the number of generations of the file to maintain in the archive. u Do an update of the archive. A specified file is added to the ar‐ chive only if a copy of it is already in the archive and the copy being added is newer than the copy already in the archive. The following modifiers are specific to these commands. M Move files to archive. This makes zoo delete (unlink) the origi‐ nal files after they have been added to the archive. Files are deleted after addition of all files to the archive is complete and after any requested packing of the archive has been done, and only if zoo detected no errors. n Add new files only. A specified file is added only if it isn't already in the archive. h Use the high performance compression algorithm. This option may be used with either the add (a) or filter (f) commands to gain extra compression at the expense of using somewhat more processor time. Extracting files compressed with the method is usually slightly faster than those saved with the default method. P Pack archive after files have been added. u Applied to the a command, this modifier makes it behave identi‐ cally to the u command. The combination of the n modifier with the u modifier or u command causes addition of a file to the archive either if the file is not already in the archive, or if the file is already in the archive but the archived copy is older than the copy being added. : Do not store directory names. In the absence of this modifier zoo stores the full pathname of each archived file. I Read filenames to be archived from standard input. Zoo will read its standard input and assume that each line of text contains a filename. Under AmigaDOS and the **IX family, the entire line is used. Under MS-DOS and VAX/VMS, zoo assumes that the filename is terminated by a blank, tab, or newline; thus it is permissible for the line of text to contain more than one field separated by white space, and only the first field will be used. Under the **IX family of operating systems, zoo can be used as follows in a pipeline: find . -print | zoo aI sources If the I modifier is specified, no filenames may be supplied on the command line itself. +,- These modifiers take effect only if the a command results in the creation of a new archive. + causes any newly-created archive to have generations enabled. - is provided for symmetry and causes any newly-created archive to have generations disabled; this is also the default if neither + nor - is specified. Files are extracted from an archive with the command: zoo {ex}[dNoOpqS./@] archive [file] ... The e and x commands are synonymous. If no file was specified, all files are extracted from the archive. The following modifiers are specific to the e and x commands: N Do not save extracted data but report any errors encountered. O Overwrite files. Normally, if a file being extracted would over‐ write an already-existing file of the same name, zoo asks you if you really want to overwrite it. You may answer the question with `y', which means yes, overwrite; or `n', which means no, don't overwrite; or `a', which means assume the answer is `y' for this and all subsequent files. The O modifier makes zoo assume that files may always be overwritten. Neither answering the question affirmatively nor using O alone will cause read-only files to be overwritten. On **IX systems, however, doubling this modifier as OO will force zoo to unconditionally overwrite any read-protected files with extracted files if it can do so. The O, N, and p modifiers are mutually exclusive. S Supersede newer files on disk with older extracted files. Unless this modifier is used, zoo will not overwrite a newer existing file with an older extracted file. o This is equivalent to the O modifier if and only if it is given at least twice. It is otherwise ignored. p Pipe extracted data to standard output. Error messages are piped to standard output as well. However, if a bad CRC is detected, an error message is sent both to standard error and to standard out‐ put. / Extract to original pathname. Any needed directories must already exist. In the absence of this modifier all files are extracted into the current directory. If this modifier is doubled as //, required directories need not exist and are created if necessary. The management of multiple generations of archived files is done with the commands: zoo gl[Aq]{+-=}number archive files .. zoo gc[q]{+-=}number archive files .. zoo gA[q]- archive zoo gA[q]+ archive The first form, gl, adjusts the generation limit of selected files by the specified value. If the form =n is used, where n is a decimal number, this sets the generation limit to the specified value. If + or - are used in placed of = the effect is to increment or decrement the genera‐ tion limit by the specified value. For example, the command zoo gl=5 xyz : sets the generation limit of each file in the archive xyz.zoo to a value of 5. The command zoo gl-3 xyz : decrements the generation limit of each file in the archive to 3 less than it currently is. If the A modifier is used, the archive-wide generation limit is adjusted instead. The number of generations of a file maintained in an archive is limited by the file generation limit, or the archive generation limit, whichever is lower. As a special case, a generation limit of 0 stands for no limit. Thus the default file generation limit of 0 and archive genera‐ tion limit of 3 limits the number of generations of each file in a newly- created archive to three. The generation limit specified should be in the range 0 through 15; any higher numbers are interpreted modulo 16. The second form of the command, using gc, adjusts the generation count of selected files. Each file has a generation count of 1 when it is first added to an archive. Each time a file by the same name is added again to an archive, it receives a generation count that is one higher than the highest generation count of the archived copy of the file. The permissi‐ ble range of generation counts is 1 through 65535. If repeated manipula‐ tions of an archive result in files having very high generation counts, they may be set back to lower numbers with the gc command. The syntax of the command is analogous to the syntax of the gl command, except that the A modifier is not applicable to the gc command. The third form, gA-, disables generations in an archive. Generations are off when an archive is first created, but may be enabled with the fourth form of the command, gA+. When generations are disabled in an archive, zoo will not display generation numbers in archive listings or maintain multiple generations. Generations can be re-enabled at any time, though manipulation of an archive with repeated interspersed gA- and gA+ com‐ mands may result in an archive whose behavior is not easily understand‐ able. Archived files are listed with the command: zoo {lLvV}[aAcCdfgmqvV@/1+-] archive[.zoo] [file] ... l Information presented includes the date and time of each file, its original and current (compressed) sizes, and the percentage size decrease due to compression (labelled CF or compression factor). If a file was added to the archive in a different timezone, the difference between timezones is shown in hours as a signed number. As an example, if the difference is listed as +3, this means that the file was added to the archive in a timezone that is 3 hours west of the current timezone. The file time listed is, however, always the original timestamp of the archived file, as observed by the user who archived the file, expressed as that user's local time. (Timezone information is stored and displayed only if the underlying operating system knows about timezones.) If no filename is supplied all files are listed except deleted files. Zoo selects which generation(s) of a file to list according to the following algorithm. If no filename is supplied, only the latest generation of each file is listed. If any filenames are specified, and a generation is specified for an argument, only the requested generation is listed. If a filename is specified ending with the generation character (`:' or `;'), all generations of that file are listed. Thus a filename argument of the form zoo.c will cause only the latest generation of zoo.c to be listed; an argument of the form zoo.c:4 will cause generation 4 of zoo.c to be listed; and an argument of the form zoo.c: or zoo.c:* will cause all generations of zoo.c to be listed. L This is similar to the l command except that all supplied argu‐ ments must be archives and all non-deleted generations of all files in each archive appear in the listing. On **IX systems, on which the shell expands arguments, if multiple archives are to be listed, the L command must be used. On other systems (VAX/VMS, AmigaDOS, MSDOS) on which wildcard expansion is done internally by zoo, wildcards may be used in the archive name, and a multiple archive listing obtained, using the l command. v This causes any comment attached to the archive to be listed in addition to the other information. V This causes any comment attached to the archive and also any com‐ ment attached to each file to be listed. Both the V and v command characters can also be used as modifiers to the l and L commands. In addition to the general modifiers described later, the following modi‐ fiers can be applied to the archive list commands. a This gives a single-line format containing both each filename and the name of the archive, sorted by archive name. It is especially useful with the L command, since the result can be further sorted on any field to give a master listing of the entire contents of a set of archives. A This causes any comment attached to the archive to be listed. g This modifier causes file generation information to be listed about the archive. For each file listed, the user-specified gen‐ eration limit, if any, is listed. For example, `3g' for a file means that the user wants no more than three generations of the file to be kept. In archives created by older versions of zoo, the listing will show `-g', meaning that no generation information is kept and multiple generations of the file are not being main‐ tained. In addition to the generation information for each file, the ar‐ chive-wide generation limit, if any, is shown at the end of the listing. If generations have been disabled by the user, this is so indicated, for example: Archive generation limit is 3 (generations off). For more information about generations see the description of the g command. m This modifier is currently applicable to **IX systems only. It causes the mode bits (file protection code) of each file to be listed as a three-digit octal number. Currently zoo preserves only the lowest nine mode bits. Their meanings are as described in the **IX documentation for the chmod(1) command. C This modifier causes the stored cyclic redundancy code (CRC) for each archived file to be shown as a four-digit hexadecimal number. 1 This forces one filename to be listed per line. It is most useful in combination with the f modifier. / This forces any directory name to be always listed, even in fast columnized listings that do not normally include any directory names. +,- The - modifier causes trailing generation numbers to be omitted from filenames. The + modifier causes the trailing generation numbers to be shown, which is also the default if neither - nor + is specified. Files may be deleted and undeleted from an archive with the following commands: zoo {DU}[Pq1] archive file ... The D command deletes the specified files and the U command undeletes the specified files. The 1 modifier (the digit one, not the letter ell) forces deletion or undeletion of at most one file. If multiple instances of the same file exist in an archive, use of the 1 modifier may allow selective extraction of one of these. Comments may be added to an archive with the command: zoo c[A] archive Without the modifier A, this behaves identically to the -comment command. With the modifier A, the command serves to add or update the comment attached to the archive as a whole. This comment may be listed with the lA, LA, v, and V commands. Applying the cA command to an archive that was created with an older version of zoo will result in an error message requesting that the user first pack the archive with the P command. This reorganizes the archive and creates space for the archive comment. The timestamp of an archive may be adjusted with the command: zoo T[q] archive Zoo normally attempts to maintain the timestamp of an archive to reflect the age of the newest file stored in it. Should the timestamp ever be incorrect it can be fixed with the T command. An archive may be packed with the command: zoo P[EPq] archive If the backup copy of the archive already exists, zoo will refuse to pack the archive unless the P modifier is also given. The E modifier causes zoo not to save a backup copy of the original archive after packing. A unique temporary file in the current directory is used to initially hold the packed archive. This file will be left behind if packing is inter‐ rupted or if for some reason this file cannot be renamed to the name of the original archive when packing is complete. Packing removes any garbage data appended to an archive because of Xmodem file transfer and also recovers any wasted space remaining in an archive that has been frequently updated or in which comments were replaced. Packing also updates the format of any archive that was created by an older version of zoo so that newer features (e.g. archive-wide generation limit, archive comment) become fully available. Zoo can act as a pure compression or uncompression filter, reading from standard input and writing to standard output. This is achieved with the command: zoo f{cu}[h] where c specifies compression, u specifies uncompression, and h used in addition requests the high-performance compression be used. A CRC value is used to check the integrity of the data. The compressed data stream has no internal archive structure and contains multiple files only if the input data stream was already structured, as might be obtained, for exam‐ ple, from tar or cpio. Modem transfers can be speeded up with these commands: zoo fc < file | sz ... rz | zoo fu > file General modifiers The following modifiers are applicable to several commands: c Applied to the a and u commands, this causes the user to be prompted for a comment for each file added to the archive. If the file being added has replaced, or is a newer generation of, a file already in the archive, any comment attached to that file is shown to the user and becomes attached to the newly-added file unless the user changes it. Possible user responses are as described for the -comment command. Applied to the archive list command l, the c modifier causes the listing of any comments attached to archived files. . In conjunction with / or // this modifier causes any extracted pathname beginning with `/' to be interpreted relative to the cur‐ rent directory, resulting in the possible creation of a subtree rooted at the current directory. In conjunction with the command P the . modifier causes the packed archive to be created in the current directory. This is intended to allow users with limited disk space but multiple disk drives to pack large archives. d Most commands that act on an archive act only on files that are not deleted. The d modifier makes commands act on both normal and deleted files. If doubled as dd, this modifier forces selection only of deleted files. f Applied to the a and u commands, the f modifier causes fast ar‐ chiving by adding files without compression. Applied to l it causes a fast listing of files in a multicolumn format. q Be quiet. Normally zoo lists the name of each file and what action it is performing. The q modifier suppresses this. When files are being extracted to standard output, the q modifier sup‐ presses the header preceding each file. When archive contents are being listed, this modifier suppresses any header and trailer. When a fast columnized listing is being obtained, this modifier causes all output to be combined into a single set of filenames for all archives being listed. When doubled as qq, this modifier suppresses WARNING messages, and when tripled as qqq, ERROR messages are suppressed too. FATAL error messages are never suppressed. Recovering data from damaged archives The @ modifier allows the user to specify the exact position in an ar‐ chive where zoo should extract a file from, allowing damaged portions of an archive to be skipped. This modifier must be immediately followed by a decimal integer without intervening spaces, and possibly by a comma and another decimal integer, giving a command of the form l@m or l@m,n (to list archive contents) or x@m or x@m,n (to extract files from an ar‐ chive). Listing or extraction begin at position m in the archive. The value of m must be the position within the archive of an undamaged direc‐ tory entry. This position is usually obtained from fiz(1) version 2.0 or later. If damage to the archive has shortened or lengthened it, all positions within the archive may be changed by some constant amount. To compensate for this, the value of n may be specified. This value is also usually obtained from fiz(1). It should be the position in the archive of the file data corresponding to the directory entry that has been specified with m. Thus if the command x@456,575 is given, it will cause the first 456 bytes of the archive to be skipped and extraction to begin at offset 456; in addition, zoo will attempt to extract the file data from posi‐ tion 575 in the archive instead of the value that is found in the direc‐ tory entry read from the archive. For example, here is some of the out‐ put of fiz when it acts on a damaged zoo archive: **************** 2526: DIR [changes] ==> 95 2587: DATA **************** 3909: DIR [copyright] ==> 1478 3970: DATA 4769: DATA **************** In such output, DIR indicates where fiz found a directory entry in the archive, and DATA indicates where fiz found file data in the archive. Filenames located by fiz are enclosed in square brackets, and the nota‐ tion "==> 95" indicates that the directory entry found by fiz at posi‐ tion 2526 has a file data pointer to position 95. (This is clearly wrong, since file data always occur in an archive after their directory entry.) In actuality, fiz found file data at positions 2587, 3970, and 4769. Since fiz found only two directory entries, and each directory entry corresponds to one file, one of the file data positions is an arti‐ fact. In this case, commands to try giving to zoo might be x@2526,2587 (extract beginning at position 2526, and get file data from position 2587), x@3090,3970 (extract at 3090, get data from 3970) and x@3909,4769 (extract at 3909, get data from 4769). Once a correctly-matched direc‐ tory entry/file data pair is found, zoo will in most cases synchronize with and correctly extract all files subsequently found in the archive. Trial and error should allow all undamaged files to be extracted. Also note that self-extracting archives created using sez (the Self-Extracting Zoo utility for MS-DOS), which are normally executed on an MS-DOS system for extraction, can be extracted on non-MSDOS systems using zoo's dam‐ aged-archive recovery method using the @ modifier. Wildcard handling Under the **IX family of operating systems, the shell normally expands wildcards to a list of matching files. Wildcards that are meant to match files within an archive must therefore be escaped or quoted. When selecting files to be added to an archive, wildcard conventions are as defined for the shell. When selecting files from within an archive, wildcard handling is done by zoo as described below. Under MS-DOS and AmigaDOS, quoting of wildcards is not needed. All wild‐ card expansion of filenames is done by zoo, and wildcards inside direc‐ tory names are expanded only when listing or extracting files but not when adding them. The wildcard syntax interpreted by zoo is limited to the following char‐ acters. * Matches any sequence of zero or more characters. ? Matches any single character. Arbitrary combinations of * and ? are allowed. / If a supplied pattern contains a slash anywhere in it, then the slash separating any directory prefix from the filename must be matched explicitly. If a supplied pattern contains no slashes, the match is selective only on the filename. c-c Two characters separated by a hyphen specify a character range. All filenames beginning with those characters will match. The character range is meaningful only by itself or preceded by a directory name. It is not specially interpreted if it is part of a filename. : and ; These characters are used to separate a filename from a generation number and are used when selecting specific generations of archived files. If no generation character is used, the filename specified matches only the latest generation of the file. If the generation character is specified, the filename and the generation are matched independently by zoo's wildcard mechanism. If no gen‐ eration is specified following the : or ; character, all genera‐ tions of that file will match. As a special case, a generation number of 0 matches only the latest generation of a file, while ^0 matches all generations of a file except the latest one. If no filename is specified preceding the generation character, all filenames will match. As a corollary, the generation character by itself matches all generations of all files. MS-DOS users should note that zoo does not treat the dot as a special character, and it does not ignore characters following an asterisk. Thus * matches all filenames; *.* matches filenames containing a dot; *_* matches filenames containing an underscore; and *z matches all filenames that end with the character z, whether or not they contain a dot. Usage hints The Novice command set in zoo is meant to provide an interface with func‐ tionality and format that will be familiar to users of other similar ar‐ chive utilities. In keeping with this objective, the Novice commands do not maintain or use any subdirectory information or allow the use of zoo's ability to maintain multiple generations of files. For this rea‐ son, users should switch to exclusively using the Expert commands as soon as possible. Although the Expert command set is quite large, it should be noted that in almost every case, all legal modifiers for a command are fully orthog‐ onal. This means that the user can select any combination of modifiers, and when they act together, they will have the intuitively obvious effect. Thus the user need only memorize what each modifier does, and then can combine them as needed without much further thought. For example, consider the a command which is used to add files to an ar‐ chive. By itself, it simply adds the specified files. To cause only already-archived files to be updated if their disk copies have been modi‐ fied, it is only necessary to add the u modifier, making the command au. To cause only new files (i.e., files not already in the archive) to be added, the n modifier is used to create the command an. To cause both already-archived files to be updated and new files to be added, the u and n modifiers can be used together, giving the command aun. Since the order of modifiers is not significant, the command could also be anu. Further, the c modifier can be used to cause zoo to prompt the user for a comment to attach to each file added. And the f modifier can cause fast addition (addition without compression). It should be obvious then that the command auncf will cause zoo to update already-archived files, add new files, prompt the user for comments, and do the addition of files without any compression. Furthermore, if the user wishes to move files to the archive, i.e., delete the disk copy of each file after it is added to the archive, it is only necessary to add the M modifier to the com‐ mand, so it becomes auncfM. And if the user also wishes to cause the ar‐ chive to be packed as part of the command, thus recovering space from any files that are replaced, the command can be modified to auncfMP by adding the P modifier that causes packing. Similarly, the archive listing commands can be built up by combining mod‐ ifiers. The basic command to list the contents of an archive is l. If the user wants a fast columnized listing, the f modifier can be added to give the lf command. Since this listing will have a header giving the archive name and a trailer summarizing interesting information about the archive, such as the number of deleted files, the user may wish to "qui‐ eten" the listing by suppressing these; the relevant modifier is q, which when added to the command gives lfq. If the user wishes to see the **IX mode (file protection) bits, and also information about multiple generations, the modifiers m (show mode bits) and g (show generation information) can be added, giving the command lfqmg. If the user also wishes to see an attached archive comment, the modifier A (for archive) will serve. Thus the command lfqmgA will give a fast columnized listing of the archive, suppressing any header and trailer, showing mode bits and generation information, and showing any comment attached to the archive as a whole. If in addition individual comments attached to files are also needed, simply append the c modifier to the command, making it lfqm‐ gAc. The above command will not show any deleted files, however; to see them, use the d modifier, making the command lfqmgAcd (or double it as in lfqmgAcdd if only the deleted files are to be listed). And if the user also wishes to see the CRC value for each file being listed, the modifier C will do this, as in the command lfqmgAcdC, which gives a fast colum‐ nized listing of all files, including deleted files, showing any archive comment and file comments, and file protection codes and generation information, as well as the CRC value of each file. Note that the above command lfqmgAcdC could also be abbreviated to VfqmgdC because the command V is shorthand for lcA (archive listing with all comments shown). Similarly the command v is shorthand for lA (ar‐ chive listing with archive comment shown). Both V and v can be used as modifiers to any of the other archive listing commands. Generations By default, zoo assumes that only the latest generation of a specified file is needed. If generations other than the latest one need to be selected, this may be done by specifying them in the filename. For exam‐ ple, the name stdio.h would normally refer to the latest generation of the file stdio.h stored in a zoo archive. To get an archive listing showing all generations of stdio.h in the archive, the specification stdio.h:* could be used (enclosed in single quotes if necessary to pro‐ tect the wildcard character * from the shell). Also, stdio.h:0 selects only the latest generation of stdio.h, while stdio.h:^0 selects all gen‐ erations except the latest one. The : character here separates the file‐ name from the generation number, and the character * is a wildcard that matches all possible generations. For convenience, the generation itself may be left out, so that the name stdio.h: (with the : but without a gen‐ eration number or a wildcard) matches all generations exactly as stdio.h:* does. If a generation is specified but no filename is present, as in :5, :*, or just :, all filenames of the specified generation will be selected. Thus :5 selects generation 5 of each file, and :* and : select all generations of all files. It is important to note that zoo's idea of the latest generation of a file is not based upon searching the entire archive. Instead, whenever zoo adds a file to an archive, it is marked as being the latest genera‐ tion. Thus, if the latest generation of a file is deleted, then no gen‐ eration of that file is considered the latest any more. This can be sur‐ prising to the user. For example, if an archive already contains the file stdio.h:5 and a new copy is added, appearing in the archive listing as stdio.h:6, and then stdio.h:6 is deleted, the remaining copy stdio.h:5 will no longer be considered to be the latest generation, and the file stdio.h:5, even if undeleted, will no longer appear in an archive listing unless generation 5 (or every generation) is specifically requested. This behavior will likely be improved in future releases of zoo. FILES xXXXXXX - temporary file used during packing archive_name.bak - backup of archive SEE ALSO compress(1), fiz(1) BUGS When files are being added to an archive on a non-MS-DOS system, it is possible for zoo to fail to detect a full disk and hence create an invalid archive. This bug will be fixed in a future release. Files with generation counts that wrap around from 65535 to 1 are not currently handled correctly. If a file's generation count reaches a value close to 65535, it should be manually set back down to a low num‐ ber. This may be easily done with a command such as gc-65000, which sub‐ tracts 65000 from the generation count of each specified file. This problem will be fixed in a future release. Although zoo on **IX systems preserves the lowest nine mode bits of regu‐ lar files, it does not currently do the same for directories. Currently zoo's handling of the characters : and ; in filenames is not robust, because it interprets these to separate a filename from a genera‐ tion number. A quoting mechanism will eventually be implemented. Standard input cannot be archived nor can a created archive be sent to standard output. Spurious error messages may appear if the filename of an archive is too long. Since zoo never archives any file with the same name as the archive or its backup (regardless of any path prefixes), care should be taken to make sure that a file to be archived does not coincidentally have the same name as the archive it is being added to. It usually suffices to make sure that no file being archived is itself a zoo archive. (Previous versions of zoo sometimes tried to add an archive to itself. This bug now seems to be fixed.) Only regular files are archived; devices and empty directories are not. Support for archiving empty directories and for preserving directory attributes is planned for the near future. Early versions of MS-DOS have a bug that prevents "." from referring to the root directory; this leads to anomalous results if the extraction of paths beginning with a dot is attempted. VAX/VMS destroys case information unless arguments are enclosed in double quotes. For this reason if a command given to zoo on a VAX/VMS system includes any uppercase characters, it must be enclosed in double quotes. Under VAX/VMS, zoo does not currently restore file timestamps; this will be fixed as soon as I figure out RMS extended attribute blocks, or DEC supplies a utime() function, whichever occurs first. Other VMS bugs, related to file structures, can often be overcome by using the program bilf.c that is supplied with zoo. It is not currently possible to create a zoo archive containing all zoo archives that do not contain themselves. DIAGNOSTICS Error messages are intended to be self-explanatory and are divided into three categories. WARNINGS are intended to inform the user of an unusual situation, such as a CRC error during extraction, or -freshening of an archive containing a file newer than one specified on the command line. ERRORS are fatal to one file, but execution continues with the next file if any. FATAL errors cause execution to be aborted. The occurrence of any of these causes an exit status of 1. Normal termination without any errors gives an exit status of 0. (Under VAX/VMS, however, to avoid an annoying message, zoo always exits with an error code of 1.) COMPATIBILITY All versions of zoo on all systems are required to create archives that can be extracted and listed with all versions of zoo on all systems, regardless of filename and directory syntax or archive structure; fur‐ thermore, any version of zoo must be able to fully manipulate all ar‐ chives created by all lower-numbered versions of zoo on all systems. So far as I can tell, this upward compatibility (all manipulations) and downward compatibility (ability to extract and list) is maintained by zoo versions up to 2.01. Version 2.1 adds the incompatibility that if high- performance compression is used, earlier versions cannot extract files compressed with version 2.1. CHANGES Here is a list of changes occurring from version 1.50 to version 2.01. In parentheses is given the version in which each change occurred. - (1.71) New modifiers to the list commands permit optional suppres‐ sion of header and trailer information, inclusion of directory names in columnized listings, and fast one-column listings. - (1.71) Timezones are handled. - (1.71) A bug was fixed that had made it impossible to individually update comments for a file whose name did not correspond to MS-DOS format. - (1.71) A change was made that now permits use of the shared library on the **IX PC. - (1.71) VAX/VMS is now supported reasonably well. - (2.00) A comment may now be attached to the archive itself. - (2.00) The OO option allows forced overwriting of read-only files. - (2.00) Zoo will no longer extract a file if a newer copy already exists on disk; the S option will override this. - (2.00) File attributes are preserved for **IX systems. - (2.00) Multiple generations of the same file are supported. - (2.00) Zoo will now act as a compression or decompression filter on a stream of data and will use a CRC value to check the integrity of a data stream that is uncompressed. - (2.00) A bug was fixed that caused removal of a directory link if files were moved to an archive by the superuser on a **IX system. - (2.00) The data recovery modifier @ was greatly enhanced. Self- extracting archives created for MS-DOS systems can now be extracted by zoo on any system with help from fiz(1). - (2.01) A bug was fixed that had caused the first generation of a file to sometimes unexpectedly show up in archive listings. - (2.01) A bug was fixed that had caused the MS-DOS version to silently skip files that could not be extracted because of insuf‐ ficient disk space. - (2.01) A bug was fixed that had sometimes made it impossible to selectively extract a file by specifying its name, even though all files could be extracted from the archive by not specifying any filenames. This occurred when a file had been archived on a longer-filename system (e.g. AmigaDOS) and extraction was attempted on a shorter-filename system (e.g. MS-DOS). - (2.01) A change was made that will make zoo preserve the mode (file protection) of a zoo archive when it is packed. This is effective only if zoo is compiled to preserve and restore file attributes. Currently this is so only for **IX systems. - (2.01) A bug was fixed that had caused an update of an archive to not always add all newer files. - (2.01) Blanks around equal signs in commands given to "make" were removed from the mk* scripts for better compatibility with more **IX implementations including Sun's. - (2.1) Compression is now greatly improved if the "h" option is used. - (2.1) The default behavior is to preserve full pathnames during extraction. - (2.1) On some systems, extraction of files using the older (default) compression method is greatly speeded up. - (2.1) Extended multiscreen help is available. - (2.1) Memory allocation is improved, so that the MS-DOS version will not prematurely abort when updating a large archive. - (2.1) The VAX/VMS version preserves file timestamps during extrac‐ tion. - (2.1) The default archive-wide generation limit, when generations are enabled, is 3. FUTURE DIRECTIONS A revised version of zoo is in the works that will be able to write newly-created archives to standard output and will support multivolume archives. It will be upward and downward compatible with this version of zoo. ACKNOWLEDGEMENTS The zoo archiver was initially developed using Microsoft C 3.0 on a PC clone manufactured by Toshiba of Japan and almost sold by Xerox. Avail‐ ability of the following systems was helpful in achieving portability: Paul Homchick's Compaq running Microport System V/AT; The Eskimo BBS somewhere in Oregon running Xenix/68000; Greg Laskin's system 'gryphon' which is an Intel 310 running Xenix/286; Ball State University's AT&T 3B2/300, UNIX PC, and VAX-11/785 (4.3BSD and VAX/VMS) systems. In addi‐ tion J. Brian Waters provided feedback to help me make the code compil‐ able on his Amiga using Manx/Aztec C. The executable version 2.0 for MS- DOS is currently compiled with Borland's Turbo C++ 1.0. Thanks are due to the following people and many others too numerous to mention. J. Brian Waters<EMAIL_ADDRESS>who has worked diligently to port zoo to AmigaDOS, created Amiga-specific code, and continues keeping it updated. Paul Homchick <rutgers!cgh!paul>, who provided numerous detailed reports about some nasty bugs. Bill Davidsen<EMAIL_ADDRESS>who provided numerous improvements to this manual, contributed multiscreen help, and provided many useful bug reports, bug fixes, code improvements, and suggestions. Mark Alexander <amdahl!drivax!alexande>, who provided me with some bug fixes. Haruhiko Okumura, who wrote the ar archiver and some excellent compres‐ sion code, which I adapted for use in zoo. Randal L. Barnes<EMAIL_ADDRESS>who (with Randy Magnu‐ son) wrote the code to support the preservation of file timestamps under VAX/VMS. Raymond D. Gardner, who contributed replacement uncompression code that on some systems is twice as fast as the original. Greg Yachuk and Andre Van Dalen, who independently modified MS-DOS zoo to support multivolume archives. (This support is not yet in this official release.) AUTHOR Rahul Dhesi 7th Edition July 7, 1991 ZOO(1)


Scream 2 (1997)
Seen on 20 December 1997 with Lynne and Sandy at the Great Neck Squire for $24 for their birthdays.
Sequels, especially to successful horror movies, are renowned for their failure to retain the spirit and character of the original. But, director Wes Craven and writer Kevin Williamson have teamed up again and created not only a sequel that stands up on its own, but another effective horror movie.
It's a year after the murders in *Scream*, and a movie, "Stab", is capitalizing on the sensationalism. This puts the spotlight on Sidney Prescott (Neve Campbell) again, and it puts her in danger again, as murders mirroring the incidents from the year before start happening around the campus. Also back from the original are Jamie Kennedy as the geeky Randy Meeks, David Arquette as the bumbling deputy Dewey Riley, Courteney Cox as the ambitious TV reporter (and "Stab" author) Gale Weathers, and Liev Schreiber as the innocent victim and possible killer Cotton Weary.
There are also a lot of newcomers, and a lot of dead people by the end of the movie.
There is also a lot of parodying from other horror movies, and from *Scream* itself. Having seen *Scream* is a plus, but I think *Scream 2* succeeds on its own. But, if you saw the first movie, seeing Tori Spelling recreating the opening of Scream in the opening of "Stab," it's a lot more fun--more than just how funny it is seeing Tori Spelling in *anything.*
Unlike most horror movies, *Scream 2* actually shows the intelligence of its creators in the dialogue and the cinematography. Added but not necessary are discussions of sequels that were better than the originals, the film within a film, Gale being hounded by grade-B local reporter Debbie Salt (Laurie Metcalf), and the terror for Sidney as she is surrounded by masked figures while rehearsing in a Greek tragedy. There is also a wonderful scene where the killer has called his next victim on a cellular phone while in the middle of a campus quad.
I don't want to give too much away, so I'll just finish by saying that the movie plays with the cliches without succumbing to them, and that the cast really does a great job in this surprisingly literate film. It's always wonderful to watch a movie of the genre created by people who love it.
The only thing I didn't like about the movie was its title. I would've liked any of the alternate working titles: *Scream Again*, *Scream Louder*, or *Scream: The Sequel*. Then there's my idea: *Keep Screaming*. Apparently, there is a Scream 3 in the works. Let's hope it lives up to its two predecessors.
Also starring Sarah Michelle Gellar, Elise Neal, Jerry O'Connell, Jada Pinkett, Omar Epps, Rebecca Gayheart, and Malcolm McDowell as the film professor. Cinematography by Peter Deming.
More movie reviews by Seth Bookey, with graphics, can be found at http://www.geocities.com/Athens/2679/kino.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{# In some cases a user submits a value, then authenticates, and the needs to post the result Because it's a post, and we need the IP address of the user to stay intact, it needs to be done browser side posted to the API THis is a blanco page, the redirectUrl should be set so after post the user is send to another page. #} {% extends "layout.html" %} {% block title %}Submitting form...{% endblock %} {% block main %}
{% endblock %}


WikiLeaks Founder Julian Assange’s Supporters Gather in London - Video
The whistleblower’s supporters are holding rallies in London ahead of the extradition hearings. In October, they gathered near Westminster Magistrates' Court, carrying banners in protest against the prosecution of Assange.
Supporters of WikiLeaks founder Julian Assange are gathering on Saturday on Trafalgar Square to rally against his possible extradition to the United States.
Assange is currently facing criminal charges in three countries – Sweden, the United States, and the United Kingdom. In the latter, he is serving a 50-week sentence for breaching bail and seeking asylum in the Ecuadorian Embassy in London, which threw him out in April.
The next hearing in his case is scheduled to take place on 18 November. In the United States, he is facing espionage charges for his work related to WikiLeaks, which published a large number of leaked classified documents.
Follow Sputnik's live feed to find out more.


fn() topologicalSortPerforms a topological sort on a directed acyclic graph (DAG).
Performs a topological sort on a directed acyclic graph (DAG).
| Defined in | <seqan/graph_algorithms.h> |
|---|---|
| Signature |
void topologicalSort(topSort, g);
|
Parameters
topSort
|
A topological ordering of the vertices. Types: String. |
|---|---|
g
|
A directed acyclic graph. Types: Directed Graph |
Detailed Description
A topological sort is a linear ordering of all its vertices such that if the graph contains an edge (u,v) then u appears before v in the ordering.
Example
#include <iostream> #include <seqan/graph_algorithms.h> using namespace seqan; int main() { typedef Graph<Directed<> > TGraph; typedef VertexDescriptor<TGraph>::Type TVertexDescriptor; typedef Size<TGraph>::Type TSize; // Create graph with 9 directed edges (0,3), (0,1), ... TSize numEdges = 9; TVertexDescriptor edges[] = {0, 3, 0, 1, 1, 2, 3, 2, 5, 7, 5, 6, 6, 7, 6, 3, 8, 7}; TGraph g; addEdges(g, edges, numEdges); // Print graph. std::cout << g << "\n"; // Create external property map with vertex labels. String<std::string> nameMap; std::string names[] = {"shirt", "tie", "jacket", "belt", "watch", "undershorts", "pants", "shoes", "socks"}; assignVertexMap(nameMap, g, names); // Get vertex descriptor in topological sort order. String<TVertexDescriptor> order; topologicalSort(order, g); // Write the result to stdout. std::cout << "Topological sort: \n"; typedef Iterator<String<TVertexDescriptor> >::Type TStringIterator; TStringIterator it = begin(order); TStringIterator itEnd = end(order); while (it != itEnd) { std::cout << getProperty(nameMap, getValue(it)) << ","; goNext(it); } std::cout << "\n"; return 0; }
Adjacency list: 0 -> 1,3, 1 -> 2, 2 -> 3 -> 2, 4 -> 5 -> 6,7, 6 -> 3,7, 7 -> 8 -> 7, Edge list: Source: 0,Target: 1 (Id: 1) Source: 0,Target: 3 (Id: 0) Source: 1,Target: 2 (Id: 2) Source: 3,Target: 2 (Id: 3) Source: 5,Target: 6 (Id: 5) Source: 5,Target: 7 (Id: 4) Source: 6,Target: 3 (Id: 7) Source: 6,Target: 7 (Id: 6) Source: 8,Target: 7 (Id: 8) Topological sort: socks,undershorts,pants,shoes,watch,shirt,belt,tie,jacket,
Data Races
Thread safety unknown!


Husbands' stress increases if wives earn more than 40% of household income
Study of US data shows persistent social norms about male breadwinning can harm men's mental health
| Source: | University of Bath |
| Summary: | Husbands are least stressed when their wives earn up to 40% of household income but they become increasingly uncomfortable as their spouse's wages rise beyond that point. |
Husbands are least stressed when their wives earn up to 40% of household income but they become increasingly uncomfortable as their spouse's wages rise beyond that point and are most stressed when they are entirely economically dependent on their partner, new research from the University of Bath shows.
The study of over 6,000 American heterosexual couples over 15 years showed husbands are at their most anxious when they are the sole breadwinner, shouldering all the burden of responsibility for the household's finances. Stress levels decline as their wives' earnings approach 40% of household income. But as women's earnings go through that point, the study showed husbands' stress levels gradually increasing.
"These findings suggest that social norms about male breadwinning — and traditional conventions about men earning more than their wives — can be dangerous for men's health. They also show how strong and persistent are gender identity norms," said Dr Joanna Syrda, an economist at the University of Bath's School of Management.
"This is a large study but of a specific group — other conventions apply in other groups and societies and the results may change as times move on. However, the results are strong enough to point to the persistence of gender identity norms, and to their part in male mental health issues. Persistent distress can lead to many adverse health problems, including physical illness, and mental, emotional and social problems," she said.
Dr Syrda noted the study also showed that husbands did not suffer psychological distress about their wives' income if their wife was the higher earner before marriage and the existing and potential income gap was clear to them.
Figures from the Pew Research Centre in the US show only 13% of married women earned more than their husbands in 1980. But by 2017 the figure was close to one third and the trend was likely to continue. Dr Syrda said she and other researchers were increasingly interested in how this would affect social norms, wellbeing, and our understanding of masculinity.
"The consequences of traditional gender role reversals in marriages associated with wives' higher earnings span multiple dimensions, including physical and mental health, life satisfaction, marital fidelity, divorce, and marital bargaining power," Dr Syrda said.
"With masculinity closely associated with the conventional view of the male breadwinner, traditional social gender norms mean men may be more likely to experience psychological distress if they become the secondary earner in the household or become financially dependent on their wives, a finding that has implications for managing male mental health and society's understanding of masculinity itself," she said.
Dr Syrda said her study also shed light on the 'bargaining power' between husband and wife.
"The elevated psychological distress that comes with husbands' economic dependence on their wives can also have practical underpinnings due to bargaining in the shadow of dissolution or the fear of reduced economic status in the event of an actual divorce. These effects are larger among cohabiting couples, possibly due to the higher probability of dissolution," she said.
The study also showed a disparity in the way husbands and wives assessed their own psychological distress and that of their partner. Survey respondents were asked to measure distress in terms of feeling sad, nervous, restless, hopeless, worthless, or that everything was an effort. Men reported better mental health than their wives reported on their behalf.
"This too may be down to gender norms. If masculine social roles preclude the admission of vulnerability, and men are inclined to hide symptoms of stress and depression, it follows that wives' responses [about their spouses] will be less accurate," Dr Syrda said.
In fact, wives reported their husbands' lowest distress level was when they were contributing 50% of the household income, while husbands reported lowest distress when their wives contributed 40%.
"The fact that a wife observes to a lesser degree her husband's elevated psychological distress when he is financially dependent on her may be simply because he does not communicate it — this may be yet another manifestation of gender norms," she said.
make a difference: sponsored opportunity
Story Source:
Materials provided by University of Bath.
Note: Content may be edited for style and length.
Journal Reference:
- Joanna Syrda. Spousal Relative Income and Male Psychological Distress. Personality and Social Psychology Bulletin, 2019;<PHONE_NUMBER>88361 DOI: 10.1177/0146167219883611
Cite This Page:
| MLA | University of Bath. "Husbands' stress increases if wives earn more than 40% of household income: Study of US data shows persistent social norms about male breadwinning can harm men's mental health." ScienceDaily. ScienceDaily, 19 November 2019. <www.sciencedaily.com/releases/2019/11/191119105549.htm>. |
| APA | University of Bath. (2019, November 19). Husbands' stress increases if wives earn more than 40% of household income: Study of US data shows persistent social norms about male breadwinning can harm men's mental health. ScienceDaily. Retrieved November 22, 2019 from www.sciencedaily.com/releases/2019/11/191119105549.htm |
| Chicago | University of Bath. "Husbands' stress increases if wives earn more than 40% of household income: Study of US data shows persistent social norms about male breadwinning can harm men's mental health." ScienceDaily. www.sciencedaily.com/releases/2019/11/191119105549.htm (accessed November 22, 2019). |


--- layout: post title: Bounded Context date: 2009-04-21 02:57:03.000000000 -06:00 type: post published: true status: publish categories: [] tags: [] meta: _gcid: '91' _gcuser: Vladimir Gitlevich content_type: wikipage _bitly_trim: http://dddcommunity.org/?p=66 author: login: Vladimir Gitlevich email<EMAIL_ADDRESS>display_name: Vladimir Gitlevich first_name: Vladimir Gitlevich last_name: '' ---
Definition: The delimited applicability of a particular model. BOUNDING CONTEXTS gives team members a clear and shared understanding of what has to be consistent and what can develop independently.
Problem: Multiple models are in play on any large project. Yet when code based on distinct models is combined, software becomes buggy, unreliable, and difficult to understand. Communication among team members becomes confused. It is often unclear in what context a model should not be applied.
Solution: Explicitly define the context within which a model applies. Explicitly set boundaries in terms of team organization, usage within specific parts of the application, and physical manifestations such as code bases and database schemas. Keep the model strictly consistent within these bounds, but don?t be distracted or confused by issues outside.


Top 5 Best Cartoon Avatar Maker Apps for Android
by Amarnath ChakrabortyWith these five Android apps, you can create cartoony representations of yourself easily. So, let’s check out the five best Cartoon Avatar Maker Apps for Android 2019.
Cartoon avatar of yourself is much needed these days, especially on the internet. Just take a brief look at your Facebook’s friend list, you will find people hiding their identity behind a cartoon avatar. Not only on Facebook, but cartoon avatars are the latest trend on every social networking site, including Instagram, Twitter, WhatsApp, etc.
Contents:
Top 5 Best Cartoon Avatar Maker Apps for Android
Creating your own cartoon avatar is never easy. On the computer, you need to be good at photoshop to create attractive cartoon avatars. Similarly, things are neither easy on Android also. Some users rely entirely on Android for creating and editing images. For those users, we are going to share a list of best Android apps that lets you create your cartoony avatar.
#1 Androidify
Well, Androidify is not precisely an avatar maker, but it lets you create, accessorize, and share Android characters that look exactly like you. So, its an app that can be used to create a bug droid version of yourself. For customizing the avatar, the app provides users multiple color options, shapes, sizes, and different accessories. So, Androidify is the best cartoon avatar maker 2019 that you can use right now.
#2 Bitmoji
Bitmoji is one of the best and top-rated avatar maker app that you can use on your Android smartphone. Millions of users right now use the app, and it allows users to create expressive cartoon avatars. The key thing is that Bitmoji creates avatars based on emotions. For instance, you can create a laughing version of yourself, crying ones, etc. So, Bitmoji is definitely the best cartoon avatar maker app that you can use on your Android smartphone.
#3 FaceQ
FaceQ is for those who have been searching for an easy to use, yet powerful avatar maker app for Android smartphones. The app has a great user interface that aligns all features in a straightforward way. Even if you have zero knowledge regarding how to draw, you can easily create your own expressive cartoon avatar through FaceQ. So, FaceQ is another best free cartoon avatar maker apps that you can use today.
#4 Cartoon Avatar Photo Maker
Cartoon Avatar Photo Maker is another best free and unique avatar maker app on the list that you can use to create cartoon avatars that looks like you. Unlike other apps, Cartoon Avatar Photo Make offers various avatar editing features like mouth style, face style, sunglasses, hair colors, etc. In short, you can customize almost everything while creating a custom cartoon avatar.
#5 SuperMii
SuperMii is not much popular, but it’s one of the best avatar maker app available out there. The app lets you create custom avatars whose every aspect can be edited. The Avatar app for Android closely follows the Japanese anime concept and tries to give an anime feel on the avatars. So, SuperMii is another best Android avatar app 2019 that you can use right now.
These are the five best cartoon avatar maker apps in 2019 that you can use right now. If you know any other such apps, let us know in the comment box below.


{{ foo.bar.baz }} {{ quux }}!
{{ char }} {{ index }}
First paragraph
Second paragraph
This should disappear.


Lately, I have started using Instagram. I am sorry, but I stalk your profile each day and it is the part of my life.
..............
Dear my first love,
“I love you”, “I really do like you”. Dozens of poems and tens of stories of you and me, we just the characters of those tales, hundreds of love quotes in your name. I remember each one of those I used to keep inscribing with black ink on your name. How precious each word associated with your name, just the way you are precious to me. I hope those words were enough to describe the feelings and emotions I had in my heart for you.
A shy boy with minimal social skills and possibly the outlasted & never visually seen classmate of yours’, nurturing thoughts and love in each part of his heart. Me trying to cross the boundary and break the walls, the darkest separating lines drawn between you and me. I must be foolish, I must admit it, I never deserved you, I never will, you the princess and dream girl of any guy out there and me the unsung one with zero self-esteem, zero self-confidence and literally underlying talent. You that super duper cool girl with ultimate talents and skills, and me the last among every other. Still the thoughts of being with you, to spend days where we are par from every virtual thing we owe, provoking each social beliefs that created a boundary between us, creating a world where there’s no limit of love we have for each other. You were the charm to my dull life and color to my black and white living. Yes, you were my everything, you were and is my first love.
I can never explain how much I used to think of you, us being in the same square room for 2 years were the best of the days I possibly could ever have. I went unnoticed all those years but I used to think you, feel you each moment. Every fickle of seconds our eyes met intentionally or by the flavor of the time, a strong breeze of comfort stringed beats of love, the heart throbbed in the rhythm of fulfillment.
 The art of killing with a smile aligned with pink glossy lips is something that you must have mastered in, you the professor of making fall in love for you every time I see you. And the ring-finger tip-sized red tika in your broad forehead, the bonus craft to your charm.
Dear, my first love, you remember the farewell program right. The day, I, you and we separated with thousands of memories, hundreds of thoughts and dozens of sad faces. The indeed last time, I saw you, the day I literally cried of being far from you, you being far from my sight. Tears rolled down my eyes like its been never, I couldn’t show you what you meant to me, how much I adore you, how much I feel for you. A feeling of being alienated forever from your eyes started killing since then. Unfortunately, I went undiscovered that day too from your eyes. I saw you talking with literally everyone, However, me! how I went unseen? Sometimes, these sorts of memories wet my thoughts and dry my mind.
The day I remember for another reason, I saw you wearing saree for the first time. The purple and sky-blue mixed saree, how someone can be beautiful as you were that day.  I really wish I had said “Oh! my love. You look so great today.” All-day all I been doing was tracing your presence through my eyes. Forgive me, its pervert act of mine, but the delights in your eyes made me be so. Dates and numbers freak me out, I always feel difficult to remember them. However, a date that I don’t have to force my mind to remember. Undoubtedly your date of birth, the date of March 9, 2014. The date that is something that I will never forget. The precious date of my life. Firstly, your birthday unforgettable for a reason and in another, we talked with each other for the first time. Yes, the same moment I live with each day, the same 5-second talk that keeps looping in my mind.  In between others’ wishes, mine filtered but I know you replied for it. For me, more than that definite interval, the specific interval matters the most.
And now, years have passed, we moved on with our pace of life, we changed and things have changed. Paths diverted to an extent from where merging us is never possible. You may or may not remember me, but I do remember you each day. You were, is and will always be my first love, your memories are not going to vanish within me till the last breath. How can I forget the girl who was the reason to attend schools, the one to heal the pain of loneliness, how can I forget the girl whose eyes whenever met with me though implicitly always made my day.
You are the breeze of the spring, the color of fall, the art of the summer and beauty of the winter. In fact, you are the shadow of my living and the warmth of the chilly nights. Every drop of rain falling from the cotton sized clouds makes me remember you. Sunlight each day makes me hopeful of meeting you someday, and the nights give me dreams of you. I live you in each presence, in every second I see you.  It penetrates my heart, I sometimes cry and sadness entitles me. All I see is you and your image and thinking you to be with someone else burns my heart and soul. I almost die in every thought of yours. How painful is it to let go your beloved eloped away? I know my love is one-sided and I may never be able to confess with you but still, I can’t accept the fact of you becoming someones else queen.
Lately, I have started using Instagram and started to follow you. Sorry, but stalking your profile has been part of my daily routine. Your TikTok videos and those funny posed pictures, I see all-not for once, repeatedly.  He constantly asks me to forget you and live a life above your memories but I know my inner me will never do that though I nod my head in front of him. I see you mentioning him sometimes in your posts and uploads your couple goals memes, and sometimes those emotional sad quotes. You are still unpredictable. Its 3 in the morning
Few hours, before a bird starts to chirp A song of good morning And I am here stalking your profile Like another crazy stalker May be I am, but why I am? The reason you will never know.
.................
“If I fell off tomorrow would you still love me?
If I didn’t smell so good would you still hug me?
If I locked up and sentenced to a quarter-century,
Could I count on you to be there to support me mentally?”
--> Tags


Doug Martin
grunt-link allows the linking of local modules.
To add grunt link to your project
npm install --save-dev grunt-link
And in your Gruntfile
grunt.loadNpmTask("grunt-link");
Open project1.
Run
npm install
grunt link
gofigure is a module that loads your configuration files and handles the merging and monitoring of configuration properties based on the current environment.
To add gofigure to your project
npm install --save gofigure
Building off of the previous example lets add some logic to our config module!
At c2fo we use a module called comb which contains utilities that we use in all of our projects.
In this example we will use the comb logger.
npm install --save comb
Lets add some logging to our modules.
Node has a core module called cluster which allows a scaling across cores but has some drawbacks.
werker is a module for creating a pool of werker processes for scaling across cores.
hare is a wrapper around node-amqp that makes setting up different types messaging configurations easy.


I Must Ask You A Question...
September 2, 2015
What's wrong with this post? Like, the words and stuff, what's wrong with them? You might already be able to come up with some things I could change, but it'd be helpful to have some more info--a little background, a little insight, a little clarification on what, exactly, I'm asking for. Right?
What makes a good question? A big part of it is providing context and enough background to help the askee understand where the question is coming from.
This is a common trend I see in posts with coding question. Questions like "Can someone explain why I'm getting this error...?" without providing the code that got you there or what you're trying to accomplish can lead to an unanswered question or a lot of back-and-forth.
So make sure your question is specific and you provide enough detail so that others can replicate the problem you're having. Let me re-ask my question. I'm worried I might have some grammatical errors in the body of this post. Can you proof-read it to see if there are any? Now if I hadn't gotten more specific with my question or provided you with the entirity of the post, I may have unnecessarily had my feelings hurt when you came back with all sorts of other things wrong with this post. Glad I clarified that I'm only asking about grammatical errors! Phew!


With no one person in charge of it, the internet has no set invention date or inventor but rather is continuously evolving after engineers, computer scientists, and programmers. The idea behind creating the internet was to link multiple heterogeneous computers together and be able to share files among them. The internet continued to develop into something the inventors never imagined. It became the primary method of communication with people all around the world and later into world’s largest market place holding the most information in the world.
ARPANET was created in the 1960s where mini computers or Interface Message Processors (IMPs) were use with packet switching as a method of electronically transmitting data across multiple computers. The “packets” were the data files and the team of scientist and engineers had to work together with the BBN team to determine how long these packets will last on the web and how the packets know where and how far to go. After being built at BBN for months, the first IMP was transported to UCLA to be tested in September 1969 and it worked.
After a successful first run, the teams worked tirelessly to continue to improve this new form of communication. This led to the invention of electronic mail. E-mail was first invented by Raymond Tomlinson who developed the programming code that became e-mail. For over twenty years, the internet was only used for these two functions. In the 1990s when the World Wide Web was created. Websites and online data was becoming more and more accessible to the general public.


TIFFClose
Section: Misc. Reference Manual Pages (3T)
Updated: May 2, 1990
Index
Return to Main Contents
NAME
TIFFClose - close a previously opened
TIFF
file
SYNOPSIS
#include <tiffio.h>
void TIFFClose(TIFF* tif)
DESCRIPTION
TIFFClose
closes a file that was previously opened with
TIFFOpen(3T).
Any buffered data are flushed to the file, including the contents of
the current directory (if modified); and all resources
are reclaimed.
DIAGNOSTICS
All error messages are directed to the
TIFFError(3T)
routine.
Likewise, warning messages are directed to the
TIFFWarning(3T)
routine.
SEE ALSO
libtiff(3T),
TIFFOpen(3T)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- DIAGNOSTICS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 01:31:37 GMT, November 23, 1999


"x"
"1" "OVERTON,M, THREADGILL,MD, CHIPMAN,JK, GESCHER,A AND HICKMAN,JA, THEFORMATION AND METABOLISM OF N-HYDROXYMETHYL COMPOUNDS. IX.N-(ACETOXYMETHYL)-4-CHLOROBENZAMIDE, AN ELECTROPHILE BUT NOT A MUTAGEN INSA __ LMONELLA TYPHIMURIUM, BIOCHEM. PHARMACOL. 35(23):4161-4165, 1986"


Welcome back, Michael.
You have 6 notifications. View
PreferencesProfileLog out
Dashboard
Analytics
Tables
Calendar
Widgets
Grid
File Manager
Gallery
Icons
Error Pages
Typography
With the jQuery Flot plugin, your geeky analytical side will be pleased with the charting possibilities.


Black Hat Investigations Secure Communication Link Open
Detective, your solution is incorrect.
Did we hire the right person for this job?


Tutorial 2: Attacking a Network¶
There are two primary ways a network can become damaged: (1) natural failure and (2) targeted attack. Natural failures typically occur when a piece of equipment breaks down from natural causes. In the study of graphs, this would correspond to the removal of a node or edge in the graph. While random network failures regularly occur, they are typically less severe than targeted attacks. In contrast, targeted attacks carefully select nodes and edges in the network for removal in order to maximally disrupt network functionality. As such, we focus the majority of our attention to targeted attacks.
We showcase an example attack in the figure below on the Kentucky KY-2 water distribution network. The network starts under normal conditions (far left), and at each step an additional node is removed by the attacker (red nodes). After removing only 13 of the 814 nodes, the network is split into two separate regions. By step 27, the network splits into four disconnected regions. In this simulation, and in general, attack strategies rely on node and edge centrality measures to identify candidates. If we look carefully, we observe that certain nodes (and edges) in the network act as key bridges between various network regions. As a result, attacks able to identify these bridges are highly effective in disrupting this network. Below, we discuss several attack strategies contained in TIGER and then compare their effectiveness on attacking the Kentucky KY-2 water distribution network.
Initial degree removal (ID) targets nodes with the highest degree \($\delta_v\). This has the effect of reducing the total number of edges in the network as fast as possible. Since this attack only considers its neighbors when making a decision, it is considered a local attack. The benefit of this locality is low computational overhead.
Initial betweenness removal (IB) targets nodes with high betweenness centrality \(b_v\). This has the effect of destroying as many paths as possible. Since path information is aggregated from across the network, this is considered a global attack strategy. Unfortunately, global information comes with significant computational overhead compared to a local attacks.
Recalculated degree (RD) and betweenness removal (RB) follow the same process as ID and IB, respectively, with one additional step to recalculate the degree (or betweenness) distribution after a node is removed. This recalculation often results in a stronger attack, however, recalculating these distributions adds a significant amount of computational overhead to the attack.
In the figure below, we can see the effectiveness of each attack strategy when used to remove nodes and edges from a network, where attack success is measured based on how fractured the network becomes when removing nodes from the network (i.e., largest connected component). We identify three key observations: (i) random node removal (RND) is not an effective strategy on this network structure; (ii) RB is the most effective attack strategy; and (iii) the remaining three attacks are roughly equivalent, falling somewhere between RND and RB. Now lets take a look at how to implement this in code using TIGER. We begin by setting up the attack parameters and creating an attack visualization on the Kentucky KY-2 water distribution network.
import os
import sys
import matplotlib.pyplot as plt
from collections import defaultdict
from graph_tiger.attacks import Attack
from graph_tiger.graphs import graph_loader
graph = graph_loader(graph_type='water', seed=1)
params = {
'runs': 1,
'steps': 30,
'seed': 1,
'attack': 'rb_node',
'attack_approx': int(0.1*len(graph)),
'plot_transition': True,
'gif_animation': True,
'gif_snaps': True,
'edge_style': None,
'node_style': None,
'fa_iter': 20
}
print("Creating example visualization")
a = Attack(graph, \**params)
a.run_simulation()
Next, we want to test the effectiveness of a variety of node-based attacks on the water network. In addition, we average the results over multiple runs to obtain representative results.
params['runs'] = 10
params['steps'] = len(graph) - 1
params['plot_transition'] = False
params['gif_animation'] = False
params['gif_snaps'] = False
print("Running node attacks")
results = defaultdict(str)
for attack in node_attacks:
params['attack'] = attack
if 'rb' in attack or 'ib' in attack:
params['attack_approx'] = int(0.1*len(graph))
else:
params['attack_approx'] = None
a = Attack(graph, **params)
results[attack] = a.run_simulation()
plot_results(graph, params['steps'], results, title='water:node-attacks_runs={}'.format(params['runs']))
Now we repeat the attacks to identify critical edges, instead of attack network nodes.
print("Running edge attacks")
results = defaultdict(str)
for attack in edge_attacks:
params['attack'] = attack
if 'rb' in attack or 'ib' in attack:
params['attack_approx'] = int(0.1*len(graph))
else:
params['attack_approx'] = None
a = Attack(graph, **params)
results[attack] = a.run_simulation()
plot_results(graph, params['steps'], results, title='water:edge-attacks_runs={}'.format(params['runs']))
Finally, we use this helper function to make all of the plots.
def plot_results(graph, steps, results, title):
plt.figure(figsize=(6.4, 4.8))
for method, result in results.items():
result = [r / len(graph) for r in result]
plt.plot(list(range(steps)), result, label=method)
plt.ylim(0, 1)
plt.ylabel('LCC')
plt.xlabel('N_rm / N')
plt.title(title)
plt.legend()
save_dir = os.getcwd() + '/plots/'
os.makedirs(save_dir, exist_ok=True)
plt.savefig(save_dir + title + '.pdf')
plt.show()
plt.clf()


@(loggedInUser: common.User, breadcrumbs: String, localhost: Boolean) @views.html.gui.main(loggedInUser, breadcrumbs, localhost){


While autonomous vehicles have the potential to greatly improve our daily lives, there are also challenges and potential downsides to these systems. In this workshop, we intend to foster discussions about the potential negative aspects of autonomous cars in hopes of surfacing challenges that should be considered during the design process rather than after deployment. We will spur these conversations through a review of participant position statements and through group discussion facilitated by a card game called What Could Go Wrong? Our goal is to consider the autonomous vehicle's benefits — improving safety, increasing mobility, reducing emissions — against potential drawbacks. By identifying potential harms and downsides, the workshop attendees, and the AutoUI community more broadly can design well-considered solutions.
What do you think are possible downsides of autonomous vehicles?
Is there a specific downside that you think is not as commonly discussed?
We invite you to submit a 2-4 page (1000 - 2000 words) position statement on a potential downside that autonomous vehicles may have. Selected position statements will be featured on this website and will be shared with workshop attendees before the event. Our goal is to have these position statements seed discussion during the What Could Go Wrong? game.
\documentclass[manuscript]{acmart}
)
\documentclass[manuscript]{acmart}
)
| Start Time - 07:00 UTC | |
|---|---|
| Welcome & Introductions | 15 min |
| Brief Review of Position Statements | 15 min |
| What Could Go Wrong? Online Card Game | 60 min |
| Group Discussion | 20 min |
| Closing & Next Steps | 10 min |
We will play a card game that Nik and Wendy are developing to help spur discussion. The game is similar to Cards Against Humanity. To facilitate online play, we are using PlayingCards.io


$stateTransitionProvider
(service in module dotjem.routing
)
Use the $stateTransitionProvider
to configure handlers for transitions between states.
The transition handlers allows for canceling a transition, e.g. if it is invalid or rerouting it to another state.
They can also be used to perform steps that should only be performed as part of a specific transition from e.g. state 'A' to state 'B', but not 'C' to 'B'.
Besides the more general transition method, specialized configuration methods exists for entering and leaving states.
These specialized cases can also be configured on the states instead of using the $stateTransitionProvider
. See $stateProvider for more information about that.
Handlers for transitions can be specified in a number of ways, where the most simple handler is an injectable function
.
Here is a basic example:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('locked', 'closed', ['$transition', function($transition) { console.log('Door was unlocked'); }]) .transition('locked', 'open', ['$transition', function($transition) { console.log("Can't open a locked door!"); $transition.cancel(); }]) .transition('open', 'closed', ['$transition', function($transition) { console.log('Door was closed'); }]) .transition('open', 'locked', ['$transition', function($transition) { console.log("Can't lock an open door!"); $transition.cancel(); }]) .transition('closed', 'open', ['$transition', function($transition) { console.log('Door was opened'); }]) .transition('closed', 'locked', ['$transition', function($transition) { console.log('Door was locked'); }]) }]);
The example above describes how simple handlers can be registered, however handlers can also be specified to be called at specific transition stages.
Basically this boils down to before
, between
, after
. The flow of these will be:
before
$stateChangeStart
between
$stateChangeSuccess
or $stateChangeError
after
When registering transitions like demonstrated in the example above, this will be maped to the "between" stage.
To target specific stages of a transition use a transition object instead as in the example below:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('closed', 'open', { before: ['$transition', function($transition) { console.log('We are about to open the door.'); }], between: ['$transition', function($transition) { console.log('We are opening the door.'); }], after: ['$transition', function($transition) { console.log('We have opened the door.'); }] }]) }]);Here we defined a handler for all stages, each stage is optional however, so if we just wished to be called before the transition started, we could leave the
between
and after
out of it:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('closed', 'open', { before: ['$transition', function($transition) { console.log('We are about to open the door.'); }] }]) }]);
When defining states when configuring transitions, multiple states can be targeted either using the *
wildcard or as arrays.
By using *
one can target all states the the Hierarchy below.
So if we just use *
we target all existing states under root
, and we can define a global handler that gets called on all transitions by using *
both as destination and source.
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('*', '*', ['$transition', function($transition) { console.log('This handler will get called for all transitions'); }]) }]);
We can also target all transitions to or from a specific state that way:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('*', 'state', ['$transition', function($transition) { console.log('This handler will get called for all' + ' transitions to "state"'); }]) .transition('state', '*', ['$transition', function($transition) { console.log('This handler will get called for all' + ' transitions from "state"'); }]) }]);
This was global handlers, but we might also wan't to target any state below a specific state:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition('*', 'state.*', ['$transition', function($transition) { console.log('This handler will get called for all transitions to' + ' "state" or any of its descendant states'); }]) .transition('state.*', '*', ['$transition', function($transition) { console.log('This handler will get called for all transitions from' + ' "state" or any of it's descendant states'); }]) }]);
In addition to using the *
wildcart to target multiple states, it is also possible to use arrays for a more specific match.
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition(['book', 'book.item', 'book.list'], 'paper', ['$transition', function($transition) { console.log('This handler will get called for transitions from' + ' "book", "book.item" and "book.list" to "paper"'); })] .transition('paper', ['book', 'book.item', 'book.list'], ['$transition', function($transition) { console.log('This handler will get called for transitions to' + ' "book", "book.item" and "book.list" from "paper"'); }]) }]);
Each of the states, wildcards can also be used:
angular.module('demo', ['dotjem.routing']) .config(['$stateTransitionProvider', function(stp) { stp .transition(['book', 'book.item.*', 'book.list.*'], ['paper', 'pen.*'], ['$transition', function($transition) { console.log('Handle all the above, this creates' + ' to many combinations to write out'); }]) }]);
This is a shorthand method for $stateTransitionProvider.transition('*', state, handler);
Instead of using this method, the transitions can also be configured when defining states through the $stateProvider.
state – {string|State|Array} –
The state name matchers(s) to match when entering.
handler – {funtion|Object} –
The handler to invoke when entering the state.
Either a injectable function or a handler object. If handler is an object, it must define one or more of the
following properties:
before
{function}
: handler to be called before transition startsbetween
{function}
: handler to be called right after views are resolvedafter
{function}
: handler to be called when transition is completeThis is a shorthand method for $stateTransitionProvider.transition(state, '*', handler);
Instead of using this method, the transitions can also be configured when defining states through the $stateProvider.
state – {string|State|Array} –
The state name matchers(s) to match when leaving.
handler – {funtion|Object} –
The handler to invoke when entering the state.
Either a injectable function or a handler object. If handler is an object, it must define one or more of the
following properties:
before
{function}
: handler to be called before transition startsbetween
{function}
: handler to be called right after views are resolvedafter
{function}
: handler to be called when transition is completeRegister a single handler to get called when leaving the state(s) passed as the from parameter to the state(s) passed as the to parameter.
from – {string|State|Array} –
The state name matchers(s) to match on leaving.
to – {string|State|Array} –
The The state name matchers(s) to match on entering.
handler – {funtion|Object} –
The handler to invoke when the transitioning occurs.
Either a injectable function or a handler object. If handler is an object, it must define one or more of the
following properties:
before
{function}
: handler to be called before transition startsbetween
{function}
: handler to be called right after views are resolvedafter
{function}
: handler to be called when transition is complete


WITNESS LIST Criminal Justice Committee February 11, 1997-9:00A SB 114 For: Davidson, Ellen (Justice For All), Houston Davis, John (El Paso DA's Office), El Paso Donahue, Sterlene (Justice For All), Houston Klagis, George (Justice For All), Fresno Myers, Nell (self), Round Rock Wallace, Sherri (Dallas Co. DA's Office), Dallas Against: Botsford, David (TX Criminal Def Lawyers), Austin Kirk, Terrence (TX Criminal Def Lawyers), Austin Schulman, David A. (Schulman & Krug), Austin On: Anderson, Ken (self), Georgetown Registering, but not testifying: For: Anderson, Ardis (Justice For All), Houston Anderson, Joe (Justice For All), Houston Marticiuc, Hans (Houston Police Union), Houston White, Glenn (Dallas Police Assoc.), Dallas SB 185 For: Friddle, Carlena Renee (self), Vidor Wallace, Sherri (Dallas Co. DA's Office), Dallas Registering, but not testifying: For: Martin, Thomas A. (TX Police Chiefs Assoc.), Grapevine SB 188 For: Martin, Thomas A. (TX Police Chiefs Assoc.), Grapevine On: Scott, Wayne (TDCJ), Huntsville Registering, but not testifying: For: Carrasco, Carlos (Amer Fed State Co Emplo), Huntsville SB 329 Registering, but not testifying: For: Clark, Mark (Law Enforement Assoc TX), Austin Igo, Shanna (TX Municipal League), Austin Lyons, Steve (Houston Police Dept.), Houston Marticiuc, Hans (Houston Police Union), Houston Martin, Thomas A. (TX Police Chiefs Assoc.), Grapevine Parnell, James (Dallas Police Assoc.), Dallas White, Glenn M. (Dallas Police Assoc.), Dallas


Intent Schema
{
"intents": [
{
"intent": "LoadListIntent",
"slots": [
{
"name": "listName",
"type": "LIST_OF_EXAMPLE_LIST_NAMES"
}
]
},
{
"intent": "CreateListIntent",
"slots": [
{
"name": "listName",
"type": "LIST_OF_EXAMPLE_LIST_NAMES"
}
]
},
{
"intent": "AddItemIntent",
"slots": [
{
"name": "Item",
"type": "LIST_OF_EXAMPLE_ITEMS"
}
]
},
{
"intent": "EditListIntent",
"slots": [
{
"name": "listName",
"type": "LIST_OF_EXAMPLE_LIST_NAMES"
}
]
},
{
"intent": "SaveIntent"
},
{
"intent": "PeekIntent"
},
{
"intent": "ReviewIntent"
},
{
"intent": "DeleteIntent",
"slots": [
{
"name": "listName",
"type": "LIST_OF_EXAMPLE_LIST_NAMES"
}
]
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
},
{
"intent": "AMAZON.NextIntent"
},
{
"intent": "AMAZON.PreviousIntent"
},
{
"intent": "AMAZON.StartOverIntent"
}
]
}
Custom Slot Types
- LIST_OF_EXAMPLE_ITEMS: {
Set oven to 300 degrees
Place turkey into brine
prepare the rolls
one tablespoon butter
two cups sugar
three teaspoons vanilla
Solder LED onto circuit board
braeburn
red delicious
jonagold
honey crisp
why did the bicycle fall over
because it was two tired
I have an EpiPen My friend gave it to me when he was dying it seemed very important to him that I have it
I bought the worlds worst thesaurus yesterday Not only is it terrible its terrible
How do you make holy water
Put it in a pot and boil the hell out if it
The bartender pours two beers and says You guys need to know your limits
I have the heart of a lion and a lifetime ban from the Toronto zoo
I told my girlfriend she drew her eyebrows too high She seemed surprised
2 cups dried navy beans optional but recommended soak beans in water in the fridge for 6 to 8 hours and then drain
8 oz bacon cooked and diced organic andor local recommended
1 green bell pepper diced
1 onion quartered
1 15 oz can plain tomato sauce
1 cup pure maple syrup
3 tablespoons yellow mustard
3 tablespoons apple cider vinegar
1 teaspoon chili powder
1 teaspoon salt
black or red pepper to taste
Place the beans bacon bell pepper and onion in the bottom of a slow cooker Set aside
4 tablespoons butter
1 onion thinly sliced
2 cloves garlic minced
8 ounces mushrooms chopped
1 cup wholewheat flour
1 pound sirloin steak
1 cups beef stock
1 cup sour cream
1 teaspoon dijon mustard
Salt and pepper
Wholewheat egg noodles for serving
Optional garnish Fresh parsley
Meanwhile cut the steak into 1 inch chunks season with salt and pepper and coat them in the 1 cup flour
}
- LIST_OF_EXAMPLE_LIST_NAMES: {
brownies
brownie recipe
fudge brownie recipe
meatloaf
meatloaf recipe
bolognese recipe
chili recipe
the best chili recipe
green chili recipe
chili verde recipe
beef stew recipe
turkey recipe
chicken recipe
oil change instructions
thanksgiving timeline
dinner party timeline
shopping list
christmas list
packing list
my favorite apples
todo list
to do list
bob's todo list
bob's to do list
mary's todo list
mary's to do list
quiz
study quiz
chemistry quiz
history quiz
math quiz
final exam quiz
trivia
trivia questions
trivia list
trivia game
guessing game
game
jokes
favorite jokes
my favorite jokes
clean jokes
dirty jokes
comedy
music playlist
playlist
youtube playlist
home inspection checklist
car inspection checklist
checklist
morning checklist
afternoon checklist
chores list
william's chore list
william's chores
joshua's chore list
joshua's chores
mom's chore list
mom's chores
dad's chore list
dad's chores
daily chore list
daily chores
monthly chore list
monthly chores
yearly chore list
yearly chores
books
to read
to read list
books I want to read
movies
to watch
to watch list
movies I want to watch
bucket list
things I want to do before I die
list of facts
list of interesting facts
list of lists
shower thoughts
shower thoughts list
list of shower thoughts
deep thoughts
}
Sample Utterances
CreateListIntent create a list
CreateListIntent create a list named {listName}
CreateListIntent create list {listName}
CreateListIntent make list {listName}
LoadListIntent load {listName}
LoadListIntent give me {listName}
EditListIntent edit list
EditListIntent edit
EditListIntent edit list {listName}
EditListIntent edit {listName}
AddItemIntent add item
AddItemIntent add item {Item}
AddItemIntent add {Item}
PeekIntent peek
PeekIntent preview
PeekIntent preview next
PeekIntent peek at next
PeekIntent what is coming up next
PeekIntent what's coming up next
ReviewIntent review
ReviewIntent what was the last item
ReviewIntent remind me what I did last
DeleteIntent delete
DeleteIntent delete my list
DeleteIntent delete {listName}
DeleteIntent delete list {listName}
SaveIntent save


{{apiResponse.message}}
Sign up
Name is required
Email is required
Enter a valid email address
Password is required
{{errorFieldSubmitted['password'] | apiErrorMessage}}
Confirm Password is required
{{errorFieldSubmitted['confirmPassword'] | apiErrorMessage}}
I agree all statements in
Terms of service


The Great Wave off Kanagawa, also known as The
Great Wave or simply The Wave, is a woodblock
print by the Japanese ukiyo-e artist Hokusai. It was published
sometime between 1829 and 1833 in the late Edo period as the
first print in Hokusai's series Thirty-six Views of Mount
Fuji. The image depicts an enormous wave threatening three
boats off the coast in the Sagami Bay (Kanagawa Prefecture)
while Mount Fuji rises in the background. Sometimes assumed to
be a tsunami, the wave is more likely to be a large rogue wave.
It is Hokusai's most famous work and is often considered the
most recognizable work of Japanese art in the world.


Listen to and watch our most popular English learning podcasts and videos in LearnEnglish Audio & Video!
LearnEnglish Podcasts app is a series of English learning podcasts to practise your English on the go.
A series of short videos about UK culture. Explore London's museums and other famous sites in the UK.
Improve your grammar skills with LearnEnglish Grammar, the #1 free educational mobile
Improve your grammar skills with LearnEnglish Grammar, the #1 educational mobile app.
Sounds Right is the British Council's first pronunciation chart for learners and teachers worldwide
Designed for classroom use with a Teachers Guide.
Young learners can read this phonics-based,
interactive storybook app that features audio narration and fun games..
Young learners of English will enjoy LearnEnglish Kids: Phonics Stories,
a phonics-based, interactive storybook app
that features audio narration and fun games.
Designed for classroom use with a Teachers Guide.
Young learners can read this phonics-based,
interactive storybook app that features audio narration and fun games..
Young learners of English will enjoy LearnEnglish Kids: Phonics Stories,
a phonics-based, interactive storybook app that features audio
narration and fun games.


{% extends "digitize/admin/base.html" %} {% from "munimap/macros/forms.html" import input %} {% block digitize_admin_content %}


CanProVar is currently developed and maintained by Dexter Duncan and Bing Zhang at the Zhang Lab . The project was initiated by Jing Li and Bing Zhang in 2009.
Funding credits: National Institutes of Health (NIH)/National Cancer Institute (R01 CA126218); NIH/National Institute of General Medical Sciences (GM088822).
©2009 Jing Li, Bing Zhang