PERLDATA
Section: Perl Programmers Reference Guide (1)Updated: 2009-06-27
Index Return to Main Contents
NAME
perldata - Perl data typesDESCRIPTION
Variable names
Perl has three built-in data types: scalars, arrays of scalars, and associative arrays of scalars, known as ``hashes''. A scalar is a single string (of any size, limited only by the available memory), number, or a reference to something (which will be discussed in perlref). Normal arrays are ordered lists of scalars indexed by number, starting with 0. Hashes are unordered collections of scalar values indexed by their associated string key.Values are usually referred to by name, or through a named reference. The first character of the name tells you to what sort of data structure it refers. The rest of the name tells you the particular value to which it refers. Usually this name is a single identifier, that is, a string beginning with a letter or underscore, and containing letters, underscores, and digits. In some cases, it may be a chain of identifiers, separated by "::" (or by the slightly archaic "'"); all but the last are interpreted as names of packages, to locate the namespace in which to look up the final identifier (see ``Packages'' in perlmod for details). It's possible to substitute for a simple identifier, an expression that produces a reference to the value at runtime. This is described in more detail below and in perlref.
Perl also has its own built-in variables whose names don't follow these rules. They have strange names so they don't accidentally collide with one of your normal variables. Strings that match parenthesized parts of a regular expression are saved under names containing only digits after the "$" (see perlop and perlre). In addition, several special variables that provide windows into the inner working of Perl have names containing punctuation characters and control characters. These are documented in perlvar.
Scalar values are always named with '$', even when referring to a scalar that is part of an array or a hash. The '$' symbol works semantically like the English word ``the'' in that it indicates a single value is expected.
$days # the simple scalar value "days" $days[28] # the 29th element of array @days $days{'Feb'} # the 'Feb' value from hash %days $#days # the last index of array @days
Entire arrays (and slices of arrays and hashes) are denoted by '@', which works much like the word ``these'' or ``those'' does in English, in that it indicates multiple values are expected.
@days # ($days[0], $days[1],... $days[n]) @days[3,4,5] # same as ($days[3],$days[4],$days[5]) @days{'a','c'} # same as ($days{'a'},$days{'c'})
Entire hashes are denoted by '%':
%days # (key1, val1, key2, val2 ...)
In addition, subroutines are named with an initial '&', though this is optional when unambiguous, just as the word ``do'' is often redundant in English. Symbol table entries can be named with an initial '*', but you don't really care about that yet (if ever :-).
Every variable type has its own namespace, as do several non-variable identifiers. This means that you can, without fear of conflict, use the same name for a scalar variable, an array, or a hash---or, for that matter, for a filehandle, a directory handle, a subroutine name, a format name, or a label. This means that $foo and @foo are two different variables. It also means that $foo[1] is a part of @foo, not a part of $foo. This may seem a bit weird, but that's okay, because it is weird.
Because variable references always start with '$', '@', or '%', the ``reserved'' words aren't in fact reserved with respect to variable names. They are reserved with respect to labels and filehandles, however, which don't have an initial special character. You can't have a filehandle named ``log'', for instance. Hint: you could say "open(LOG,'logfile')" rather than "open(log,'logfile')". Using uppercase filehandles also improves readability and protects you from conflict with future reserved words. Case is significant--``FOO'', ``Foo'', and ``foo'' are all different names. Names that start with a letter or underscore may also contain digits and underscores.
It is possible to replace such an alphanumeric name with an expression that returns a reference to the appropriate type. For a description of this, see perlref.
Names that start with a digit may contain only more digits. Names that do not start with a letter, underscore, digit or a caret (i.e. a control character) are limited to one character, e.g., $% or $$. (Most of these one character names have a predefined significance to Perl. For instance, $$ is the current process id.)
Context
The interpretation of operations and values in Perl sometimes depends on the requirements of the context around the operation or value. There are two major contexts: list and scalar. Certain operations return list values in contexts wanting a list, and scalar values otherwise. If this is true of an operation it will be mentioned in the documentation for that operation. In other words, Perl overloads certain operations based on whether the expected return value is singular or plural. Some words in English work this way, like ``fish'' and ``sheep''.In a reciprocal fashion, an operation provides either a scalar or a list context to each of its arguments. For example, if you say
int( <STDIN> )
the integer operation provides scalar context for the <> operator, which responds by reading one line from STDIN and passing it back to the integer operation, which will then find the integer value of that line and return that. If, on the other hand, you say
sort( <STDIN> )
then the sort operation provides list context for <>, which will proceed to read every line available up to the end of file, and pass that list of lines back to the sort routine, which will then sort those lines and return them as a list to whatever the context of the sort was.
Assignment is a little bit special in that it uses its left argument to determine the context for the right argument. Assignment to a scalar evaluates the right-hand side in scalar context, while assignment to an array or hash evaluates the righthand side in list context. Assignment to a list (or slice, which is just a list anyway) also evaluates the righthand side in list context.
When you use the "use warnings" pragma or Perl's -w command-line option, you may see warnings about useless uses of constants or functions in ``void context''. Void context just means the value has been discarded, such as a statement containing only ""fred";" or "getpwuid(0);". It still counts as scalar context for functions that care whether or not they're being called in list context.
User-defined subroutines may choose to care whether they are being called in a void, scalar, or list context. Most subroutines do not need to bother, though. That's because both scalars and lists are automatically interpolated into lists. See ``wantarray'' in perlfunc for how you would dynamically discern your function's calling context.
Scalar values
All data in Perl is a scalar, an array of scalars, or a hash of scalars. A scalar may contain one single value in any of three different flavors: a number, a string, or a reference. In general, conversion from one form to another is transparent. Although a scalar may not directly hold multiple values, it may contain a reference to an array or hash which in turn contains multiple values.Scalars aren't necessarily one thing or another. There's no place to declare a scalar variable to be of type ``string'', type ``number'', type ``reference'', or anything else. Because of the automatic conversion of scalars, operations that return scalars don't need to care (and in fact, cannot care) whether their caller is looking for a string, a number, or a reference. Perl is a contextually polymorphic language whose scalars can be strings, numbers, or references (which includes objects). Although strings and numbers are considered pretty much the same thing for nearly all purposes, references are strongly-typed, uncastable pointers with builtin reference-counting and destructor invocation.
A scalar value is interpreted as TRUE in the Boolean sense if it is not the null string or the number 0 (or its string equivalent, ``0''). The Boolean context is just a special kind of scalar context where no conversion to a string or a number is ever performed.
There are actually two varieties of null strings (sometimes referred to as ``empty'' strings), a defined one and an undefined one. The defined version is just a string of length zero, such as "". The undefined version is the value that indicates that there is no real value for something, such as when there was an error, or at end of file, or when you refer to an uninitialized variable or element of an array or hash. Although in early versions of Perl, an undefined scalar could become defined when first used in a place expecting a defined value, this no longer happens except for rare cases of autovivification as explained in perlref. You can use the defined() operator to determine whether a scalar value is defined (this has no meaning on arrays or hashes), and the undef() operator to produce an undefined value.
To find out whether a given string is a valid non-zero number, it's sometimes enough to test it against both numeric 0 and also lexical ``0'' (although this will cause noises if warnings are on). That's because strings that aren't numbers count as 0, just as they do in awk:
if ($str == 0 && $str ne "0") { warn "That doesn't look like a number"; }
That method may be best because otherwise you won't treat IEEE notations like "NaN" or "Infinity" properly. At other times, you might prefer to determine whether string data can be used numerically by calling the POSIX::strtod() function or by inspecting your string with a regular expression (as documented in perlre).
warn "has nondigits" if /\D/; warn "not a natural number" unless /^\d+$/; # rejects -3 warn "not an integer" unless /^-?\d+$/; # rejects +3 warn "not an integer" unless /^[+-]?\d+$/; warn "not a decimal number" unless /^-?\d+\.?\d*$/; # rejects .2 warn "not a decimal number" unless /^-?(?:\d+(?:\.\d*)?|\.\d+)$/; warn "not a C float" unless /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/;
The length of an array is a scalar value. You may find the length of array @days by evaluating $#days, as in csh. However, this isn't the length of the array; it's the subscript of the last element, which is a different value since there is ordinarily a 0th element. Assigning to $#days actually changes the length of the array. Shortening an array this way destroys intervening values. Lengthening an array that was previously shortened does not recover values that were in those elements. (It used to do so in Perl 4, but we had to break this to make sure destructors were called when expected.)
You can also gain some minuscule measure of efficiency by pre-extending an array that is going to get big. You can also extend an array by assigning to an element that is off the end of the array. You can truncate an array down to nothing by assigning the null list () to it. The following are equivalent:
@whatever = (); $#whatever = -1;
If you evaluate an array in scalar context, it returns the length of the array. (Note that this is not true of lists, which return the last value, like the C comma operator, nor of built-in functions, which return whatever they feel like returning.) The following is always true:
scalar(@whatever) == $#whatever - $[ + 1;
Version 5 of Perl changed the semantics of $[: files that don't set the value of $[ no longer need to worry about whether another file changed its value. (In other words, use of $[ is deprecated.) So in general you can assume that
scalar(@whatever) == $#whatever + 1;
Some programmers choose to use an explicit conversion so as to leave nothing to doubt:
$element_count = scalar(@whatever);
If you evaluate a hash in scalar context, it returns false if the hash is empty. If there are any key/value pairs, it returns true; more precisely, the value returned is a string consisting of the number of used buckets and the number of allocated buckets, separated by a slash. This is pretty much useful only to find out whether Perl's internal hashing algorithm is performing poorly on your data set. For example, you stick 10,000 things in a hash, but evaluating %HASH in scalar context reveals "1/16", which means only one out of sixteen buckets has been touched, and presumably contains all 10,000 of your items. This isn't supposed to happen. If a tied hash is evaluated in scalar context, a fatal error will result, since this bucket usage information is currently not available for tied hashes.
You can preallocate space for a hash by assigning to the keys() function. This rounds up the allocated buckets to the next power of two:
keys(%users) = 1000; # allocate 1024 buckets
Scalar value constructors
Numeric literals are specified in any of the following floating point or integer formats:
12345 12345.67 .23E-10 # a very small number 3.14_15_92 # a very important number 4_294_967_296 # underscore for legibility 0xff # hex 0xdead_beef # more hex 0377 # octal (only numbers, begins with 0) 0b011011 # binary
You are allowed to use underscores (underbars) in numeric literals between digits for legibility. You could, for example, group binary digits by threes (as for a Unix-style mode argument such as 0b110_100_100) or by fours (to represent nibbles, as in 0b1010_0110) or in other groups.
String literals are usually delimited by either single or double quotes. They work much like quotes in the standard Unix shells: double-quoted string literals are subject to backslash and variable substitution; single-quoted strings are not (except for "\'" and "\\"). The usual C-style backslash rules apply for making characters such as newline, tab, etc., as well as some more exotic forms. See ``Quote and Quote-like Operators'' in perlop for a list.
Hexadecimal, octal, or binary, representations in string literals (e.g. '0xff') are not automatically converted to their integer representation. The hex() and oct() functions make these conversions for you. See ``hex'' in perlfunc and ``oct'' in perlfunc for more details.
You can also embed newlines directly in your strings, i.e., they can end on a different line than they begin. This is nice, but if you forget your trailing quote, the error will not be reported until Perl finds another line containing the quote character, which may be much further on in the script. Variable substitution inside strings is limited to scalar variables, arrays, and array or hash slices. (In other words, names beginning with $ or @, followed by an optional bracketed expression as a subscript.) The following code segment prints out ``The price is $100.''
$Price = '$100'; # not interpolated print "The price is $Price.\n"; # interpolated
There is no double interpolation in Perl, so the $100 is left as is.
By default floating point numbers substituted inside strings use the dot (``.'') as the decimal separator. If "use locale" is in effect, and POSIX::setlocale() has been called, the character used for the decimal separator is affected by the LC_NUMERIC locale. See perllocale and POSIX.
As in some shells, you can enclose the variable name in braces to disambiguate it from following alphanumerics (and underscores). You must also do this when interpolating a variable into a string to separate the variable name from a following double-colon or an apostrophe, since these would be otherwise treated as a package separator:
$who = "Larry"; print PASSWD "${who}::0:0:Superuser:/:/bin/perl\n"; print "We use ${who}speak when ${who}'s here.\n";
Without the braces, Perl would have looked for a $whospeak, a $who::0, and a "$who's" variable. The last two would be the $0 and the $s variables in the (presumably) non-existent package "who".
In fact, an identifier within such curlies is forced to be a string, as is any simple identifier within a hash subscript. Neither need quoting. Our earlier example, $days{'Feb'} can be written as $days{Feb} and the quotes will be assumed automatically. But anything more complicated in the subscript will be interpreted as an expression. This means for example that "$version{2.0}++" is equivalent to "$version{2}++", not to "$version{'2.0'}++".
Note: Version Strings (v-strings) have been deprecated. They will be removed in some future release after Perl 5.8.1. The marginal benefits of v-strings were greatly outweighed by the potential for Surprise and Confusion.
A literal of the form "v1.20.300.4000" is parsed as a string composed of characters with the specified ordinals. This form, known as v-strings, provides an alternative, more readable way to construct strings, rather than use the somewhat less readable interpolation form "\x{1}\x{14}\x{12c}\x{fa0}". This is useful for representing Unicode strings, and for comparing version ``numbers'' using the string comparison operators, "cmp", "gt", "lt" etc. If there are two or more dots in the literal, the leading "v" may be omitted.
print v9786; # prints SMILEY, "\x{263a}" print v102.111.111; # prints "foo" print 102.111.111; # same
Such literals are accepted by both "require" and "use" for doing a version check. Note that using the v-strings for IPv4 addresses is not portable unless you also use the inet_aton()/inet_ntoa() routines of the Socket package.
Note that since Perl 5.8.1 the single-number v-strings (like "v65") are not v-strings before the "=>" operator (which is usually used to separate a hash key from a hash value), instead they are interpreted as literal strings ('v65'). They were v-strings from Perl 5.6.0 to Perl 5.8.0, but that caused more confusion and breakage than good. Multi-number v-strings like "v65.66" and 65.66.67 continue to be v-strings always.
The special literals __FILE__, __LINE__, and __PACKAGE__ represent the current filename, line number, and package name at that point in your program. They may be used only as separate tokens; they will not be interpolated into strings. If there is no current package (due to an empty "package;" directive), __PACKAGE__ is the undefined value.
The two control characters ^D and ^Z, and the tokens __END__ and __DATA__ may be used to indicate the logical end of the script before the actual end of file. Any following text is ignored.
Text after __DATA__ may be read via the filehandle "PACKNAME::DATA", where "PACKNAME" is the package that was current when the __DATA__ token was encountered. The filehandle is left open pointing to the contents after __DATA__. It is the program's responsibility to "close DATA" when it is done reading from it. For compatibility with older scripts written before __DATA__ was introduced, __END__ behaves like __DATA__ in the top level script (but not in files loaded with "require" or "do") and leaves the remaining contents of the file accessible via "main::DATA".
See SelfLoader for more description of __DATA__, and an example of its use. Note that you cannot read from the DATA filehandle in a BEGIN block: the BEGIN block is executed as soon as it is seen (during compilation), at which point the corresponding __DATA__ (or __END__) token has not yet been seen.
A word that has no other interpretation in the grammar will be treated as if it were a quoted string. These are known as ``barewords''. As with filehandles and labels, a bareword that consists entirely of lowercase letters risks conflict with future reserved words, and if you use the "use warnings" pragma or the -w switch, Perl will warn you about any such words. Perl limits barewords (like identifiers) to about 250 characters. Future versions of Perl are likely to eliminate these arbitrary limitations.
Some people may wish to outlaw barewords entirely. If you say
use strict 'subs';
then any bareword that would NOT be interpreted as a subroutine call produces a compile-time error instead. The restriction lasts to the end of the enclosing block. An inner block may countermand this by saying "no strict 'subs'".
Arrays and slices are interpolated into double-quoted strings by joining the elements with the delimiter specified in the $" variable ($LIST_SEPARATOR if ``use English;'' is specified), space by default. The following are equivalent:
$temp = join($", @ARGV); system "echo $temp"; system "echo @ARGV";
Within search patterns (which also undergo double-quotish substitution) there is an unfortunate ambiguity: Is "/$foo[bar]/" to be interpreted as "/${foo}[bar]/" (where "[bar]" is a character class for the regular expression) or as "/${foo[bar]}/" (where "[bar]" is the subscript to array @foo)? If @foo doesn't otherwise exist, then it's obviously a character class. If @foo exists, Perl takes a good guess about "[bar]", and is almost always right. If it does guess wrong, or if you're just plain paranoid, you can force the correct interpretation with curly braces as above.
If you're looking for the information on how to use here-documents, which used to be here, that's been moved to ``Quote and Quote-like Operators'' in perlop.
List value constructors
List values are denoted by separating individual values by commas (and enclosing the list in parentheses where precedence requires it):
(LIST)
In a context not requiring a list value, the value of what appears to be a list literal is simply the value of the final element, as with the C comma operator. For example,
@foo = ('cc', '-E', $bar);
assigns the entire list value to array @foo, but
$foo = ('cc', '-E', $bar);
assigns the value of variable $bar to the scalar variable $foo. Note that the value of an actual array in scalar context is the length of the array; the following assigns the value 3 to $foo:
@foo = ('cc', '-E', $bar); $foo = @foo; # $foo gets 3
You may have an optional comma before the closing parenthesis of a list literal, so that you can say:
@foo = ( 1, 2, 3, );
To use a here-document to assign an array, one line per element, you might use an approach like this:
@sauces = <<End_Lines =~ m/(\S.*\S)/g; normal tomato spicy tomato green chile pesto white wine End_Lines
LISTs do automatic interpolation of sublists. That is, when a LIST is evaluated, each element of the list is evaluated in list context, and the resulting list value is interpolated into LIST just as if each individual element were a member of LIST. Thus arrays and hashes lose their identity in a LIST---the list
(@foo,@bar,&SomeSub,%glarch)
contains all the elements of @foo followed by all the elements of @bar, followed by all the elements returned by the subroutine named SomeSub called in list context, followed by the key/value pairs of %glarch. To make a list reference that does NOT interpolate, see perlref.
The null list is represented by (). Interpolating it in a list has no effect. Thus ((),(),()) is equivalent to (). Similarly, interpolating an array with no elements is the same as if no array had been interpolated at that point.
This interpolation combines with the facts that the opening and closing parentheses are optional (except when necessary for precedence) and lists may end with an optional comma to mean that multiple commas within lists are legal syntax. The list "1,,3" is a concatenation of two lists, "1," and 3, the first of which ends with that optional comma. "1,,3" is "(1,),(3)" is "1,3" (And similarly for "1,,,3" is "(1,),(,),3" is "1,3" and so on.) Not that we'd advise you to use this obfuscation.
A list value may also be subscripted like a normal array. You must put the list in parentheses to avoid ambiguity. For example:
# Stat returns list value. $time = (stat($file))[8]; # SYNTAX ERROR HERE. $time = stat($file)[8]; # OOPS, FORGOT PARENTHESES # Find a hex digit. $hexdigit = ('a','b','c','d','e','f')[$digit-10]; # A "reverse comma operator". return (pop(@foo),pop(@foo))[0];
Lists may be assigned to only when each element of the list is itself legal to assign to:
($a, $b, $c) = (1, 2, 3); ($map{'red'}, $map{'blue'}, $map{'green'}) = (0x00f, 0x0f0, 0xf00);
An exception to this is that you may assign to "undef" in a list. This is useful for throwing away some of the return values of a function:
($dev, $ino, undef, undef, $uid, $gid) = stat($file);
List assignment in scalar context returns the number of elements produced by the expression on the right side of the assignment:
$x = (($foo,$bar) = (3,2,1)); # set $x to 3, not 2 $x = (($foo,$bar) = f()); # set $x to f()'s return count
This is handy when you want to do a list assignment in a Boolean context, because most list functions return a null list when finished, which when assigned produces a 0, which is interpreted as FALSE.
It's also the source of a useful idiom for executing a function or performing an operation in list context and then counting the number of return values, by assigning to an empty list and then using that assignment in scalar context. For example, this code:
$count = () = $string =~ /\d+/g;
will place into $count the number of digit groups found in $string. This happens because the pattern match is in list context (since it is being assigned to the empty list), and will therefore return a list of all matching parts of the string. The list assignment in scalar context will translate that into the number of elements (here, the number of times the pattern matched) and assign that to $count. Note that simply using
$count = $string =~ /\d+/g;
would not have worked, since a pattern match in scalar context will only return true or false, rather than a count of matches.
The final element of a list assignment may be an array or a hash:
($a, $b, @rest) = split; my($a, $b, %rest) = @_;
You can actually put an array or hash anywhere in the list, but the first one in the list will soak up all the values, and anything after it will become undefined. This may be useful in a my() or local().
A hash can be initialized using a literal list holding pairs of items to be interpreted as a key and a value:
# same as map assignment above %map = ('red',0x00f,'blue',0x0f0,'green',0xf00);
While literal lists and named arrays are often interchangeable, that's not the case for hashes. Just because you can subscript a list value like a normal array does not mean that you can subscript a list value as a hash. Likewise, hashes included as parts of other lists (including parameters lists and return lists from functions) always flatten out into key/value pairs. That's why it's good to use references sometimes.
It is often more readable to use the "=>" operator between key/value pairs. The "=>" operator is mostly just a more visually distinctive synonym for a comma, but it also arranges for its left-hand operand to be interpreted as a string --- if it's a bareword that would be a legal simple identifier ("=>" doesn't quote compound identifiers, that contain double colons). This makes it nice for initializing hashes:
%map = ( red => 0x00f, blue => 0x0f0, green => 0xf00, );
or for initializing hash references to be used as records:
$rec = { witch => 'Mable the Merciless', cat => 'Fluffy the Ferocious', date => '10/31/1776', };
or for using call-by-named-parameter to complicated functions:
$field = $query->radio_group( name => 'group_name', values => ['eenie','meenie','minie'], default => 'meenie', linebreak => 'true', labels => \%labels );
Note that just because a hash is initialized in that order doesn't mean that it comes out in that order. See ``sort'' in perlfunc for examples of how to arrange for an output ordering.
Subscripts
An array is subscripted by specifying a dollar sign ("$"), then the name of the array (without the leading "@"), then the subscript inside square brackets. For example:
@myarray = (5, 50, 500, 5000); print "The Third Element is", $myarray[2], "\n";
The array indices start with 0. A negative subscript retrieves its value from the end. In our example, $myarray[-1] would have been 5000, and $myarray[-2] would have been 500.
Hash subscripts are similar, only instead of square brackets curly brackets are used. For example:
%scientists = ( "Newton" => "Isaac", "Einstein" => "Albert", "Darwin" => "Charles", "Feynman" => "Richard", ); print "Darwin's First Name is ", $scientists{"Darwin"}, "\n";
Slices
A common way to access an array or a hash is one scalar element at a time. You can also subscript a list to get a single element from it.
$whoami = $ENV{"USER"}; # one element from the hash $parent = $ISA[0]; # one element from the array $dir = (getpwnam("daemon"))[7]; # likewise, but with list
A slice accesses several elements of a list, an array, or a hash simultaneously using a list of subscripts. It's more convenient than writing out the individual elements as a list of separate scalar values.
($him, $her) = @folks[0,-1]; # array slice @them = @folks[0 .. 3]; # array slice ($who, $home) = @ENV{"USER", "HOME"}; # hash slice ($uid, $dir) = (getpwnam("daemon"))[2,7]; # list slice
Since you can assign to a list of variables, you can also assign to an array or hash slice.
@days[3..5] = qw/Wed Thu Fri/; @colors{'red','blue','green'} = (0xff0000, 0x0000ff, 0x00ff00); @folks[0, -1] = @folks[-1, 0];
The previous assignments are exactly equivalent to
($days[3], $days[4], $days[5]) = qw/Wed Thu Fri/; ($colors{'red'}, $colors{'blue'}, $colors{'green'}) = (0xff0000, 0x0000ff, 0x00ff00); ($folks[0], $folks[-1]) = ($folks[-1], $folks[0]);
Since changing a slice changes the original array or hash that it's slicing, a "foreach" construct will alter some---or even all---of the values of the array or hash.
foreach (@array[ 4 .. 10 ]) { s/peter/paul/ } foreach (@hash{qw[key1 key2]}) { s/^\s+//; # trim leading whitespace s/\s+$//; # trim trailing whitespace s/(\w+)/\u\L$1/g; # "titlecase" words }
A slice of an empty list is still an empty list. Thus:
@a = ()[1,0]; # @a has no elements @b = (@a)[0,1]; # @b has no elements @c = (0,1)[2,3]; # @c has no elements
But:
@a = (1)[1,0]; # @a has two elements @b = (1,undef)[1,0,2]; # @b has three elements
This makes it easy to write loops that terminate when a null list is returned:
while ( ($home, $user) = (getpwent)[7,0]) { printf "%-8s %s\n", $user, $home; }
As noted earlier in this document, the scalar sense of list assignment is the number of elements on the right-hand side of the assignment. The null list contains no elements, so when the password file is exhausted, the result is 0, not 2.
If you're confused about why you use an '@' there on a hash slice instead of a '%', think of it like this. The type of bracket (square or curly) governs whether it's an array or a hash being looked at. On the other hand, the leading symbol ('$' or '@') on the array or hash indicates whether you are getting back a singular value (a scalar) or a plural one (a list).
Typeglobs and Filehandles
Perl uses an internal type called a typeglob to hold an entire symbol table entry. The type prefix of a typeglob is a "*", because it represents all types. This used to be the preferred way to pass arrays and hashes by reference into a function, but now that we have real references, this is seldom needed.The main use of typeglobs in modern Perl is create symbol table aliases. This assignment:
*this = *that;
makes $this an alias for $that, @this an alias for @that, %this an alias for %that, &this an alias for &that, etc. Much safer is to use a reference. This:
local *Here::blue = \$There::green;
temporarily makes $Here::blue an alias for $There::green, but doesn't make @Here::blue an alias for @There::green, or %Here::blue an alias for %There::green, etc. See ``Symbol Tables'' in perlmod for more examples of this. Strange though this may seem, this is the basis for the whole module import/export system.
Another use for typeglobs is to pass filehandles into a function or to create new filehandles. If you need to use a typeglob to save away a filehandle, do it this way:
$fh = *STDOUT;
or perhaps as a real reference, like this:
$fh = \*STDOUT;
See perlsub for examples of using these as indirect filehandles in functions.
Typeglobs are also a way to create a local filehandle using the local() operator. These last until their block is exited, but may be passed back. For example:
sub newopen { my $path = shift; local *FH; # not my! open (FH, $path) or return undef; return *FH; } $fh = newopen('/etc/passwd');
Now that we have the *foo{THING} notation, typeglobs aren't used as much for filehandle manipulations, although they're still needed to pass brand new file and directory handles into or out of functions. That's because *HANDLE{IO} only works if HANDLE has already been used as a handle. In other words, *FH must be used to create new symbol table entries; *foo{THING} cannot. When in doubt, use *FH.
All functions that are capable of creating filehandles (open(), opendir(), pipe(), socketpair(), sysopen(), socket(), and accept()) automatically create an anonymous filehandle if the handle passed to them is an uninitialized scalar variable. This allows the constructs such as "open(my $fh, ...)" and "open(local $fh,...)" to be used to create filehandles that will conveniently be closed automatically when the scope ends, provided there are no other references to them. This largely eliminates the need for typeglobs when opening filehandles that must be passed around, as in the following example:
sub myopen { open my $fh, "@_" or die "Can't open '@_': $!"; return $fh; } { my $f = myopen("</etc/motd"); print <$f>; # $f implicitly closed here }
Note that if an initialized scalar variable is used instead the result is different: "my $fh='zzz'; open($fh, ...)" is equivalent to "open( *{'zzz'}, ...)". "use strict 'refs'" forbids such practice.
Another way to create anonymous filehandles is with the Symbol module or with the IO::Handle module and its ilk. These modules have the advantage of not hiding different types of the same name during the local(). See the bottom of ``open()'' in perlfunc for an example.
SEE ALSO
See perlvar for a description of Perl's built-in variables and a discussion of legal variable names. See perlref, perlsub, and ``Symbol Tables'' in perlmod for more discussion on typeglobs and the *foo{THING} syntax.
Index
This document was created by man2html, using the manual pages.
Time: 05:29:07 GMT, December 24, 2015


Definition: A competitive exhibition of dogs.
Explication: A dog show is normally a competitive exhibition of pure-bred dogs, where a person, known as the handler, leads or commands the dog to perform certain actions, and one or more judges determine the winner out of some designated group of dogs. There are three basic types of dog shows: shows that focus on appearance of the dog (e.g. the confirmation dog show, novelty shows like the world's ugliest dog show), shows that focus on obedience (e.g. obedience trials), and shows that focus on skills/agility (e.g. agility trials, sheepdog trials).
Confirmation dog shows, such as those sponsored by the American Kennel Club (AKC), concentrate on how well the dogs conform to the standards set for their breed in appearance and attitude. At this type of dog show, there are multiple short competitions within the larger show, organized tournament style, where winners of a smaller category (e.g. "Chihuahua", a specific breed) will advance to the competition of a larger category (e.g. "toy group", which contains multiple "toy" breeds such as "Chihuahua"). Unlike the obedience, agility, or sheepdog trials, for appearance based shows the competing handlers and dogs for a particular competition are all in the ring competing at the same time. The dogs stay on leashes which the handler can use to guide their behavior, and the handler and dog both walk, run, or stand in synchrony. The judge may command their movements verbally or with gesture. The judge often inspects the dogs' appearance closely, and may touch their coat, lift their ears, lift their legs up and down, and/or open their mouth to look at their teeth/gum color.
Obedience trials focus on the ability of the dogs to perform actions in response to commands given by the handler, such as fetching, sitting, or running from a pre-defined spot to the handler.
Agility trials focus on the ability of the dogs to quickly navigate an obstacle course, requiring them to, for example, weave through a row of obstacles, run through tunnels, and jump over fences. Sheepdog trials focus on the ability of the dogs to move/control a herd of sheep according to the commands given by the handler. Typically a small group of sheep are enclosed in a fence inside the ring, and the trial begins when the fence is opened to let the sheep out.


On my Mac OS (El Capitan v10.11.1) using Arduino IDE 1.6.6 and Mac USB to Serial PL-2303 Driver (V2.5.0) from here (https://www.mac-usb-serial.com/dashboard/)
Arduino IDE Tools menu > Board: Arduino Mini, Processor: ATmega328, Port: /dev/cu.Repleo-PL2303-00001004, Programmer: Arduino as ISP
Programmer cable (from http://store.cutedigi.com/ttl-uart-to-usb-cable-serial-usb-debug-cable/): Pin 1: not used, Pin 2: RxD, Pin 3: TxD, Pin 4: VCC, Pin 5: not used, Pin 6: ground
Trying to upload this ino file to enable pulse counting on the TH unit (https://github.com/openenergymonitor/emonTH/blob/master/emonTH_DHT22_DS1...)
Getting errors:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
However, I can successfully upload any ino file to the emonPi and/or Tx units with success. I've researched the hell out of this and still cannot find the answer. Anyone know what's going on?
Re: avrdude: stk500_recv(): programmer is not responding
That leads appears to have no 'reset' line so it is more surprising that you have programmed anything successfully than not. You could try grounding pin 1 briefly as the upload commences but as timing is pretty crucial I'm not sure how easy/successful that would be, you probably need a new programming lead/adapter.
Paul
Re: avrdude: stk500_recv(): programmer is not responding
To clarify, I have never been able to upload any sketch to the emonTh. However, I can upload sketches to the emonTx and emonPi without issue. And yes, I did reboot my computer after installing the USB to Serial device drivers (for those who will ask that question).
Re: avrdude: stk500_recv(): programmer is not responding
The processor RESET is (or should be) driven by DTR - pin 1 - from your programmer, and barring variations in stray capacitance and inductance due to the different board layouts and the addition of a reset pushbutton on the later emonTx's, the reset circuit is identical between the emonTH and the emonTx.
We know the programmer from the shop works with the emonTH, even though the emonTH
iswas not listed on the programmer page in the shop.


--- layout: post title: Dancing Feet date: '2016-05-07T18:30:43+02:00' categories: - Storyboards picture_url: https://film-Storyboards.tumblr.com/post/144014344749 --- - Daniel Cloud Campos


Evolutionary Design of Self-Organizing Particle Systems for Collective Problem Solving
In December, I attended IEEE SSCI 2014 - a symposium on computational intelligence where I presented work that my classmates and I put together for Jim Reggia’s class: Artificial Life and Evolutionary Computation. The goal of the paper was to show off the use of evolutionary and genetic algorithms for creativity, that is the use of a computer program to design a system without very much human input. I’ve attached the abstract, paper, and presentation from that conference here. However, the purpose of this post isn’t to point out the scientific contributions - but rather the practical ones.
In order to do this project, we had to create a pretty extensive Python software base with the following components:
- A simulator that could both visually and computationally determine the fitness of a particle swarm
- A multiprocess evolutionary mechanism for designing the particle swarms
In the end our deployment used PyGame, Celery, and an Amazon EC2 2XL server which ran for a week to finish the computation. The paper doesn’t necessarily touch too much on the development effort required. Given the opportunity to do this again, I probably would have used Go or Cython to improve the performance (not much you can do in a single semester). This post collects both the Github repository and development environment with the scientific details. Hopefully it’s a useful reference!
Abstract
Using only simple rules for local interactions, groups of agents can form self-organizing super-organisms or flocks that show global emergent behavior. When agents are also extended with memory and goals the resulting flock not only demonstrates emergent behavior, but also collective intelligence: the ability for the group to solve problems that might be beyond the ability of the individual alone. Until now, research has focused on the improvement of particle design for global behavior; however, techniques for human-designed particles are task-specific. In this paper we will demonstrate that evolutionary computing techniques can be applied to design particles, not only to optimize the parameters for movement but also the structure of controlling finite state machines that enable collective intelligence. The evolved design not only exhibits emergent, self-organizing behavior but also significantly outperforms a human design in a specific problem domain. The strategy of the evolved design may be very different from what is intuitive to humans and perhaps reflects more accurately how nature designs systems for problem solving. Furthermore, evolutionary design of particles for collective intelligence is more flexible and able to target a wider array of problems either individually or as a whole.
Project
The full project is available on Github if you’d like to try it yourself. The Github repository contains instructions for how to install the dependencies, and how to run the simulator as well as the evolver. The dependencies might be the main issue, installing PyGame for the visual simulation can be tricky, and Celery is needed for the multi-process evolver. We will respond to any issues that you add as soon as we can!
The code itself is provided under the MIT license. The various badges describing the Github repo are above.
…
Try the project yourself on Github
Read the full paper on IEEE Xplore
View the presentation on Slideshare


it's simple but honest ;)
< Tribute Page />
< Survey form page />
< Product Landing page />
< Technical documentation page />
How do you take your coffee?


Landlords could owe tenants £320 each - all because of a new law
The Tenant Fees Act 2019 was introduced back in June - and means anybody living in privately-rented accommodation could now be owed a windfall
by James Rodger, Rachel Pugh, https://www.facebook.com/jamesrodgerjournalistTenants could be owed refunds worth hundreds of pounds from landlords - all thanks to a new law.
Tenancy fees were banned as part of new legislation earlier this year, with deposits capped at five weeks rent.
The Tenant Fees Act 2019 was introduced back in June - and means anybody living in privately-rented accommodation could now be owed a windfall.
Our sister title in the North West, the Manchester Evening News , reports holding deposits were also capped at a weeks' rent under the new legislation.
What many renters don't know, though, is that the legislation also means that landlord or agent responsible for letting the property must return any part of the deposit which exceeds the maximum cap which was introduced as part of the Tenant Fees Act 2019.
Government-approved protection scheme the Tenancy Deposit Scheme (TDS) has said that on average, private renters have been given refunds of around £320 each.
Debbie Davies, Assistant Director of Business Development at the TDS, said: "We reviewed data from when the legislation was first introduced in order to establish how frequently deposits are being partially repaid by agents or landlords.
"During this period we have made 2,550 repayments totalling £817,031.33.
"From delving deeper into the figures we identified the average payment was £320.27 and the highest repayment to a tenant was £3,384.62.
"We believe the deposit cap is having the effect intended by Parliament, with the deposit held being reduced upon renewal, which is great news for renters."
If you think you are owed money from your landlord and have protected your deposit under the TDS, you can call 0300 037 1001 for more information and guidance.


Privacy Policy
"Fancy Music" respect and protect the personal privacy of all the users in using the "Fancy Music" app. In order to provide you with more accurate and more personalized service, "Fancy Music" will use or disclose your personal information in accordance with provisions of
this Privacy Policy and handle with high discretion. Except any other regulations of this Privacy Policy, "Fancy Music" will not disclose the information
or provide to any third party without your prior permission. "Fancy Music" will update this Privacy Policy from time to time. This Privacy is an integral
part of the service agreement of "Fancy Music", so you are deemed to agree with this Private Policy when you agree with the service agreement of "Fancy Music".
1. Scope of application
a) Required personal information when registering account on "Fancy Music" official website.
b) User information you provided in the "Fancy Music" account center when registering for product exchange or other activities that organized by "Fancy Music".
c) Other personal information that "Fancy Music" acquired through proper means. You are aware of and agree that the following information do not apply in this Privacy Policy:
1) The key words in your published comments on "Fancy Music" forum.
2) Your public information available on "Fancy Music" forum, including but not limited to, activity participation, transaction information, and other sharing information.
3) Any behavior that goes against law or regulations of "Fancy Music" forum.
2. Use of information
a) Without your prior permission, "Fancy Music" will not provide it to any third party, nor to sell, rent, share or do any transaction.
b) "Fancy Music" will not allow any third party to collect, edit, sell or distribute your personal information free of charge.
c) To provide better service to users, "Fancy Music" will provide you with possible information to your interests according to your personal information.
3. Disclosure of information
In the following cases, "Fancy Music" will disclose your personal information fully or partially in accordance with your personal willingness or legal regulations:
a) Disclose it to the third party with your prior permission.
b) To provide you with the requested products or services, "Fancy Music" have to share your personal information with the third party.
c) In accordance with the relevant provisions of the law or other regulations of administrative or judicial organization, "Fancy Music" disclose it to the third party, administrative or judicial organization.
d) In case of any violation to relevant law or regulations, rules of "Fancy Music" service agreement caused by your behavior, "Fancy Music" have to disclose your personal information to the third party.
e) If you are a qualified intellectual property owner and already filed a lawsuit, on the reasonable request of the accused person, "Fancy Music" have to disclose the information so as to settle the dispute.
f) Other situations that "Fancy Music" deem as proper according to law, regulation or the policy of website.
4. Storage of information
All your information and related data that acquired by "Fancy Music" will not be stored on server.
5. Security of information
a) There is security protection function for each "Fancy Music" account. And "Fancy Music" will use security precautions such as encrypted password to protect your information from any loss,
abuse or alteration. Despite the security measures, you are still required to keep your username and password well, since there is no perfect security on network.
b) When using "Fancy Music" network services, please properly protect your personal information, and only disclose to others when necessary.
If you find your username and password of "Fancy Music" account has been disclosed, please contact "Fancy Music" immediately to take corresponding measures.


{% extends "base.html" %} {% block body %}
{{owner_ref.display_nick}} is now following you on {{SITE_NAME}}.
Follow {{owner_ref.display_nick}} back
{% include "email/signature.txt" %}


Florida Real Estate 24/7 - Phone:<PHONE_NUMBER>
Home
Cities
Search MLS
Map Search
Advanced Search
Sellers
Our Listing Service / Deals
Free CMA
Selling Your Home FSBO?
Buyers
First Time Home Buyers
Find The Right Home
Neighborhood Finder
Listing Alert
About Us
Florida Immobilien
Testimonials
Meet Our Agents
Contact Us
Login
Meet Our Agents


Creaform to showcase 3D scanning and printing at Formnext 14 Nov 2019, 12:02 by Mike Richardson Share This Article Tweet ShareShareShare Subscribe to our FREE Newsletter Tags


BOOKS
AND
REVIEWS
Home
(current)
Books
Reviews
About Us
Previous
Next
Subscribe to Mailing list.
We will send you a thankyou.
Subscribe
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
Author:
Chetan Bhagat
Page count:
280
Genre:
Romance novel
Country:
India
Publisher:
Rupa & Co.
Read the Review
SUBSCRIBE
Subscribe and enjoy new book launch information
@


Name:
Birthday:
{{genders.text}}
Hello {{yourName}}!

In Ghana, you will be called {{gender.text}}


ANALYZE THIS
** 1/2 (out of 4) - an enjoyable movie
Release Date: March 5, 1999 Starring: Robert De Niro, Billy Crystal, Lisa Kudrow, Joe Viterelli, Chazz Palminteri Directed by: Harold Ramis Distributed by: Warner Brothers MPAA Rating: R (language, a scene of sexuality, some violence) URL: http://www.execpc.com/~kinnopio/reviews/1999/analyze.htm
Black comedies -- those movies which make light of serious and usually morbid situations -- come in a number of different varieties, each with their own levels of hilarity and cleverness. GROSSE POINTE BLANK is a good example of a well-done black comedy: subtle, witty, and straightforward. It moved quickly to keep expectations high, and it ended up doing much better than expected. ANALYZE THIS, the latest for this genre from CADDYSHACK helmer Harold Ramis, does not have these elements perfected; instead, it's a lighter, breezier comedy of outrageous situations.
The outrageous situations are supposed to draw laughs in their own right: mob boss seeks psychiatric help. But the premise lends itself to very little thematically, causing the movie to fall into a repetitive order. The leading names, Billy Crystal and Robert De Niro, add some life to their roles but don't give them excessive dimension.
De Niro is New York mobster Paul Vitti, head of one the many crime families struggling for dominance in the area. After a lengthy monologue which establishes his place in the crime scene, Vitti luckily avoids an assassination attempt. Unfortunately his friend takes the bullet instead, and Vitti is shaken by the affair. Having in his possession -- by a bizzare chain of circumstances -- the name of psychiatrist Ben Sobol (Crystal), he seeks help and proceeds to drag the unwitting Sobol into the comically portrayed mob life.
This story is simple enough, and has moments of comic genius, most of which are manifested by a Vitti henchman named Jelly (Joe Viterelli). Unfortunately, most of the movie sees this character dragging psychiatrist Sobol out of his life so he can "help" Vitti, and his efforts are wasted. The movie does manage to break this pattern toward the end of its running time, picking up steam with some great comedy sequences from Billy Crystal. Even with a GODFATHER parody, though, the movie never really manages to muster any true comedy.
Instead, it plays out like to A-list actors goofing around. It's easy to see that Crystal and De Niro are having fun, but the real question is whether or not the audience is having fun. And in this case, the answer is: not as much as they should have.
all contents © 1999 Craig Roush
-- Craig Roush<EMAIL_ADDRESS>-- Kinnopio's Movie Reviews http://www.execpc.com/~kinnopio
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


new TextboxList(Input, Options, [Data]);
- Input - the Text Box to convert into a TextboxList (can be the id or the DOM Element)
- Options - An object containing all options for the TextboxList
- Data[optional] - An Array of data to be used for the auto completer.
[{ "caption": "Caption 1", "value": "Value 1" }, { "caption": "Caption 2", "value": "Value 2" }]
- caption is the value displayed in both the auto completer and what is displayed in the bubble.
- value is a hidden value that will be linked with the caption. Think name/id pairs
- You may also include any other additional properties and they will be posted as well.
Values for will be loaded from/posted to the server in the form of serialized JSON in the input field's value property
Data Type and Default value are shown in parenthesis.
All callbacks default to an empty function. When specifying callback you only need to add the ones you need as properties of a callbacks options specified in the options of the Textbox List constructor.
onMainFocus(event) - Occurs after the Textbox List's focus event has completed.
- Receives the focus Event as it's only argument
onMainBlur(event) - Occurs after the Textbox List's blur event has completed.
- Receives the focus Event as it's only argument
onBeforeAddItem(selectedValues, value, element)- Occurs prior to an item being added to the Textbox List. Return true from your function to stop the item from being added.
- selectedValues (Array) - An Array of the currently selected items in the Textbox List.
- value (Object) - An Object of the item to be added to the Textbox List.
- element (Element) - The HTML Element to be added to the Textbox List.
onAfterAddItem(selectedValues, value, element) - Occurs after the an item was added to the Textbox List.
- selectedValues (Array) - An Array of the currently selected items in the Textbox List.
- value (Object) - An Object of the item that was added to the Textbox List.
- element (Element) - The HTML Element that was added to the Textbox List.
onBeforeUpdateValues - Occurs before the currently selected values are written to the source input box
- selectedValues (Array) - An Array of the currently selected items in the Textbox List.
- element (Element) - The source HTML Input Element for the Textbox List.
onAfterUpdateValues(selectedValues, value, element) - Occurs after the currently selected values have been written to the source input box
- selectedValues (Array) - An Array of the currently selected items in the Textbox List.
- element (Element) - The source HTML Input Element for the Textbox List.
onControlLoaded() - Occurs only once when the Textbox List control has first been created and is ready for use.
var instance = new TextboxList(Input, Options, [Data]);
instance.disable();
- Will disable the TextBox List
- Note - The Textbox List will automatically disable itself based on the disabled property of the underlying text input
instance.enable();
- Will enable the TextBox List
instance.isDisabled([disable]);
- Returns true if the Textbox List is currently disabled.
- optional disable (Boolean) - pass a boolean value to disable/enable the Textbox List as part of the call.
instance.addItem(value);
- Adds a new item to the Textbox List
- Returns true if item was added successfully, null if it wasn't
- value (Object) - Pass an object containing any number of properties to add it to the Textbox List. A property named caption is required.
instance.removeElement(element);
- Removes an item from the list
- element (Element) - Pass the HTML Element of the item to be removed.
instance.removeItem(value, [replaceAll]);
- Removes an item(s) from the list
- value (Object) - Pass an Object containing the to search the selected items by. A property named caption and/or value is required or no item(s) will be removed,
- optional replaceAll (Boolean) - whether to remove all items matching the value, or just the first one.
TextboxList.autoCompleteItemHTML
TextboxList.addMethods({
autoCompleteItemHTML: function(value, highlight, [secondaryHighlight]) {
// return the HTML/DOM Element for an auto complete item
}
});
- Override the TextboxList.autoCompleteItemHTML function if you wish to change the HTML of the auto complete items.
- This function must return a value compatible with Element.update
- value (Object) - The value for the current auto complete item
- highlight (RegExp) - The regular expression object that was used for the search.
- optional secondaryHighlight (RegExp) - The secondary regular expression object that was used for the search.


WELCOME
TO DELANI STUDIOS
AMAZING PEOPLE ARE MAKING DESIGNS IN A FUN ENVIRONMENT
When you work with us, you are part of a team of commited collaborators. All aspects of aour software development process are intergrated, interactive and agile
Our approach unifies deisgn , Development and product management to create exceptional products.
We start each project by understanding your business goals, the user's needs and the products requirements
Then we help translate them into effective and elegant solutions
Bfore we sign a contract or wite a line of code our team will spend the necessary time needed to understand you product vision
The outcome of this scoping session is a proposal or high-level statement of work
based on your requirements, we can provide a complete offering or just the pieces you need
DEVELOPMENT
developers are well informed in the latest enterprise and web development technologies.
DESIGN
design is simply a way of communicating using different visual mediums to advocate information. It addresses a targeted audience appealing to their senses of design
PRODUCT MANGEMENT
Program management involves identifying and coordinating the interdependencies among projects, products, and other important strategic initiatives across an organization.
HTML
CSS
JAVASCRIPT
GIT
BOOTSRTAP 4
PYTHON
PHP
RUBY
DELANI STUDIONS
2019


{% extends 'base.html' %} {% block content %} New Plant Please fill out your plant's info: Plant's name: Plant's variety: Plant's photo URL: Date planted: {% endblock content %}


Found your dream home?
Let us help you do the math
How is my monthly payment calculated?
+
+
+
Total monthly payment = $0


---
layout: post
title: GiardaDB 29 Released
category: [GiardiaDB]
---
We are pleased to announce the release of GiardiaDB 29
GiardiaDB 29
GiardiaDB 29 represents extensive efforts to improve navigation and data accessibility
on record pages, provide consistent verbiage and data categories, and improve presentation of alternative transcripts.
All data were refreshed to the latest version and genome analyses were rerun.
Send Us Your Feedback! We can polish our new features based on your valuable feedback. Please use the site
and Contact Us to tell us about your experience.
Release 28 is Still Available - GiardiaDB 28 is available until we finalize our new features.
New Features
Data Categories - Searches, data and GBrowse tracks are now categorized according to the
EMBRACE Data & Methods Ontology (EDAM).
This offers a controlled vocabulary and consistent data structure throughout the site.
Record Pages Redesigned - Gene pages, and in-fact all our record pages, have a new structure.
Features include a new streamlined and uncluttered look, new navigation tools, and improved
tables with search functions for quickly finding and displaying the data you want.
Transcripts Represented on Gene Pages and Search Results - Transcripts are graphically represented on
gene pages and listed in gene page tables when data can be
unambiguously assigned to a transcript. All search results now
contain a Transcript ID column. The results of searches that query transcript-specific
data (e.g. Predicted Signal Peptide) contain an Explore function for investigating transcript subsets.
Galaxy Workspace - EuPathDB sites now include a Galaxy-based workspace for large-scale data analyses.
Developed in partnership with Globus Genomics,
workspaces offer a private analysis platform with published workflows and pre-loaded annotated genomes.
The workspace is accessed through the "Analyze My Experiment" tab on the home page of any EuPathDB resource
and can be used to upload your own data, compose and run custom workflows, retrieve results and share
workflows and data analyses with colleagues.
Download Search Result Redesigned - The page for downloading search results and associated data has
an improved design that reflects the new ontological data categories and offers the ability to download
all transcripts per gene when downloading gene results.
RNA Sequencing Workflow - We updated our RNA sequencing analysis. The new workflow aligns
reads with GSNAP, calculates FPKM/RPKM from HT-Seq counts and determines differential expression with DESeq2.


https://code.google.com/archive/p/skipfish/
skipfish
Skipfish is an active web application security reconnaissance tool. It prepares an interactive sitemap for the targeted site by carrying out a recursive crawl and dictionary-based probes. The resulting map is then annotated with the output from a number of active (but hopefully non-disruptive) security checks. The final report generated by the tool is meant to serve as a foundation for professional web application security assessments.
Key features:
High speed: pure C code, highly optimized HTTP handling, minimal CPU footprint - easily achieving 2000 requests per second with responsive targets.
Ease of use: heuristics to support a variety of quirky web frameworks and mixed-technology sites, with automatic learning capabilities, on-the-fly wordlist creation, and form autocompletion.
Cutting-edge security logic: high quality, low false positive, differential security checks, capable of spotting a range of subtle flaws, including blind injection vectors.
The tool is believed to support Linux, FreeBSD, MacOS X, and Windows (Cygwin) environments.
Quick links
Download 2.10b (changelog)
How to run the scanner! (old)
View a sample screenshot
Documentation
What's new
Detailed documentation
Content signatures (updated)
Authenticated scans (updated)
Getting help
Known problems / workarounds
File a bug in the tracker


The more people that you reach the better chance of finding a buyer. That's why we built advanced social marketing tools and analytics for the consumer real estate market. It's perfect for the do-it-yourself crowd that doesn't mind the leg work. Discover what the market really thinks about your property for free.
For more serious sellers, we offer a listing on the MLS. We make it easy to allow buying agents to show your place by shiping you a lockbox overnight. You'll get picked up by major public sites like Zillow, Redfin, and Trulia. Agents in your area can easily find your property and connect you with serious buyers.
Too busy or confused to handle selling your home? Hire one of our energetic agents to help you manage selling your property. Sit back and relax while we take care of everything. We'll manage the marketing, hire contractors, connect with buyers, and even have coffee with you.
learn moreWe are founded by computer scientists and real estate agents who have a deep love and understanding of technology. We focus on user experience to make marketing and selling your house a breeze. We are building a next generation real estate brokerage firm.
Measure and monitor your marketing efforts in one location. Use our integrated lockboxes and you'll see real time data of showings and feedback from buyers.
Let our professional real estate photographers make your home glow with expensive cameras, lighting, and photoshop wizardry. Share beautiful photos to attract more buyers.
Your home is dirty. Let our deep cleaning specialists make your home shine. Pair this with our photography service and social marketing tools for the perfect start to selling your home.
We give you an easy to follow guide and checklist for selling your home. Whether it's a condo in a hot neighborhood or a single-family home in an up-and-coming area, our process will help you sell your home faster.
Put your property on the MLS and reach millions of people instantly. When social networks aren't enough, publish on the MLS to reach serious buyers. Add in a lockbox and allow professional real estate agents access to your home safely.
We can handle everything from onboarding your property to managing contractors to negotiating on your behalf. We handle everything so you can focus on other things.
MLS Listing, Lockboxes, and Contract Negotiations -- we've got you covered
Sign up for a free social marketing tools, price estimation, and dashboard


Howdy
mspaint rip off
I'm an Animaniac!
I'm waiting for the movie to start
STOP
No one expects the Spanish Inquisition!
and Knuckles


Sorry, the Clubhouse failed to load.
One of the following reasons might be the issue:
- Most common: the browser might have an older version of the Clubhouse cached. Try refreshing the page and/or
clearing the
browser's cache.
- The Internet connection might be spotty or offline.
- The browser might be too old to connect to the Clubhouse.
Email the Ranger Tech Ninjas at
<EMAIL_ADDRESS>if you cannot resolve this issue.
{{content-for "body"}}
{{content-for "body-footer"}}


three.js
- webgl hemisphere light example
flamingo by
mirada
from
ro.me
toggle hemisphere light
toggle directional light


LNK UNC attack to a share that doesn't exist
Windows will auto-try WebDAV
PortProxy on 80 out over IPv6/teredo
Since Windows is connecting "internally" the hosts will auto-authenticate
Invisible to the user


lightbulb_outline
tag_faces
visibility
THEME 1
THEME 2
THEME 3
THEME 4
THEME 5
headset_mic
ANONYMOUS
We do not forgive.
We do not forget.


Super Galactical Age Calculator
Please Enter your data
Choose your birthday:
Whats your gender?
Male
Female
Enter your BMI:
Do you smoke?
Yes
No
Do you exercise at least 30 min everyday?
Yes
No
Do you have high blood pressure?
Yes
No
Submit
Click on the planet's picture to show the detail:


Hello, my name is Sankar .N, I am a angular and UI javascript developer. Check out my articles, Angular and Ionic UI components at the git hub. Feel free to take a look at.
I'm able create and work on angular projetcs.And also provide responsive pages and custom designs.The web developement side focusing the great work and best user experiences.I worked on several angular project and now goes on.Using angular such a emerging front end frame work by google.


CRYSTAL RAIN
Crystal rain is a school project made in 3 weeks in January 2020 with Rendy Latbi. The goal was to create a game with computer vision input. We decided to make a game where you have to control 4 miners with 4 pawns on a board. The miners have to gather minerals of their own color and bring them back to their house in order to bank the points. There's also minecarts randomly crossing the place that must be avoided or the game will end.
I was in charge of developing the pawn detection algorithm and the main gameplay, while Rendy took care of the art, UI, and balance.


{% extends "layout.html" %} {% block content %} {% if empty %} {% else %}
This is a pair plot. A pair plot can tell you the distribution of data accross variables. From this plot, wou will know the relationship among variables graphically


Two of our primary goals at InTown is to educate and facilitate. We will fill the gap between small business and efficent technology utilization.
In modern day society, change is inevitable. Small business, now more than ever, play a large role in the growth of local economies.
Savvy business leaders are utilizing their creativity to build amazing businesses, and grow there local economies. These leaders are tasked with many daily items that may become overwhelming, and InTown Technology must help.
One of the fastest growing business trends is technology, and if your business is not hip to the latest technology your company will fall behind. You may ask yourself why do I need to focus on tech? I am not a tech business.
That is were InTown Tech comes into play. We are your one stop shop IT partner. You name it. We do it.
InTown was founded by two college students with aspirations of making an impact on the community through innovative technology. Meet our founders.


We're happy to answer any questions you may have about our platform.Leave us a message and we'll schedule an introductory call.
2110 White Horse Trail Unit G Austin TX 78757


When running a job, Jenkins requires credentials to authenticate with Bitbucket Server. For example, to checkout the source code for builds. To do this, it needs credentials with access to the projects and repositories you want it to build from.
You can provide Jenkins with credentials here by:
In addition, you can provide Jenkins with SSH credentials below. If you do, Jenkins will use them for clone operations instead of the credentials you select here.


My name is Martin Krusev, and I am a graphic designer and web developer. My experience with many content creation tools make me proficient in many of the aspects of content creation and editing. My background in web development, graphic design and DTP for some of the most famous companies in the world gave me the inside experience to a great approach to the latest trends in content creation. I am fueled by my passion to create and develop, and always continue to expand my professional skills. I always try to improve my knowledge of the software I work with, and working in the Desktop Publishing sphere, I am constantly challenged every day with new projects that vary not only technically, but also in creatively. My strive to keep improving myself is contributed by the projects I keep working on, some of which are from some of the biggest companies in the world. As a DTP Specialist, I work with many famous brands such as AMD, General Mills, Aramark, 3M, S&P Global Platts, Nike, UPS and others. Meanwhile, while I work on those projects, I get an incredible inside view of their design processes. I always try to learn more and improve my skillset each time. Sometimes working as DTP requires me to even create content, by special client requests. My dedication to my work, and the strive to perfection in each job helped the companies I worked for win over some major clients. With the help of my coworkers, we developed trust between our company and our clients, always looking for quality and on-time delivery. Even when problems arose with some projects, my ability to work in cooperation with big production teams, meant that the client was always left satisfied with the job we have done.
Martin Krusev
Plovdiv, Bulgaria
ul. Lozengrad 33, 8800
+359876218189
<EMAIL_ADDRESS>B.A. Degree in Digital Communication and Media/Multimedia• May 2014
The objective of the course in Digital Communication and Media/Multimedia is to give solid training to professionals who, independently or integrated into a team, can analyze, plan, design and develop multimedia products. Through practical training that combines the areas of Computer Science, Design and Multimedia, and resorting to project-based learning, it is intended to train competent professionals capable of responding to the current and future requirements of Multimedia.
Course in Multimedia• May 2009
The objective of the course in Digital Multimedia is to give solid starting ground training to future professionals who independently design and develop multimedia products. It gives a good introduction to future development for themselves themselves to be graphic and web designers, and give them solid starting ground through practical project creation and internships.
Desktop Publishing Specialist • August 2017 - Present
1-StopAsia has four offices worldwide in the USA, China, Korea and Bulgaria and more than 150 employees. The company’s client list consists of several of the leading top translation companies in the world and the client list includes one of the leading and most well-known search engine and cell phone companies. Another important sector in which it has performed numerous translation works for is within the US and EU government agencies. My main responsibility in the company was DTP and Training for the Production team in the Bulgarian office. Currently I am in charge of the learning program, which consists of training the Project managers to do some of the tasks of a DTP specialist. Also I am the lead DTP specialist of the company in the Bulgarian office, and I am in charge of all the current work flow that requires such service. Part of my job includes also designing and developing company Ads and other merchandise, using the company’s brand.
Desktop Publishing Specialist • May 2016 - August 2017
Opticentre is a professional localization, translation and multilingual desktop publishing (DTP) service provider that was established in 2006 in Bulgaria and the US. I worked for the company as a DTP specialist and a web designer. Some of my responsibilities included Desktop Publishing, Web Development and Quality Assurance. During my stay, I learned new and expanded many of my skills in Adobe CC, Microsoft Office, HTML, CSS, XML and others. My main responsibility was to work closely with other coworkers in the Production team, to format, localize and typeset documents in languages many consider exotic. My dedication to my work was quickly noticed, and my ability to problem solve and learn quickly gave me the recognition of my colleagues and superiors. Soon into my training period I was given more and more responsibilities, and was soon looked after by coworkers who had far more experience in the area than me. I was soon after asked to take the position of Project manager. My humility told me I should stay in my current position as I still had more to learn as a DTP. Soon after I was head of the newly created Web Development team, where I was tasked with creating and maintaining websites for clients. Until my leave from the company, I was given the opportunity to supervise and do final checks of the projects that the company was creating, before they were handed to the end client.
Graphic Designer • September 2015 - May 2016
Free Design is a small family advertising agency located in my hometown of Sliven. I worked there as the only graphic and web designer. My responsibilities there included the development and design of corporate brands and other design projects, the development and design of posters, flyers, business cards and other merchandise. I also did small website development and content management for some local businesses.
Web Administrator • December 2014 - March 2015
Primera Air is a leisure airline with over 200+ workers. When in 2014 the main offices were moved to Riga, Latvia, I was hired as a Web Administrator. My responsibilities included managing their website, as well as participating in marketing campaigns. At the time, they were introducing a new website, and I worked closely with the company who were developing their new website, and was tasked with migrating the content from the old page, to the new website, which was created in .NET. Other responsibilities I took upon myself when working in the company was supporting and working closely with the marketing manager helping him with his daily tasks.
During my career, I have worked with a lot of content creation tools most of which are part of the Adobe CC and Microsoft Office package. Some other tools I have knowledge and worked with are CorelDraw, MadCap, ABBYY FineReader, Adobe Flash, Blender 3D and others. In my professional life I have had vast experience with coding, and I have knowledge of HTML, CSS, XML, PHP, MySQL, JavaScript, and others.
A set of posters designed to decorate the office and motivate the staff.
Graphic DesignA flyer that was designed to represent the company in an official yearly convention in a Bulgarian University to help recruit new professionals in the various sectors the company is involved in.
Graphic DesignA handbook manual designed to help managers around all offices of the company with their meeting needs and provide a set talking points and guidelines for their convenience.
Graphic DesignA Power Point Presentation that accompanied a flyer, that was designed to represent the company in an official yearly convention in an Bulgarian University to help recruit new professionals in the various sectors the company is involved in.
Graphic DesignBranding, Business card and Website development for a local construction company.
Branding, Graphic Design, Web DesignBranding and business card design for a foreign medical company, which is in France.
Branding, Graphic DesignA company dealing in farming and natural preservation was in need of complete rebranding and merchandise creation from scratch.
Branding, Graphic DesignIf you are interested in the work I do, please don't hesitate and contact me!


Here's some bold text to get excited!
Chia photo booth Godard semiotics. Fashion axe scenester dreamcatcher raw denim, Godard butcher keytar Tumblr Banksy hoodie street art four dollar toast drinking vinegar Helvetica. Carles bespoke PBR Schlitz hella. Art party aesthetic ennui Austin, normcore occupy beard swag Vice you probably haven't heard of them brunch. Mixtape Truffaut banjo, hoodie aesthetic ethical fap Shoreditch Marfa. Try-hard single-origin coffee semiotics Pinterest. Church-key normcore migas VHS Austin.
Here's exactly how you can do that!
Retro trust fund raw denim fashion axe Echo Park, Etsy Schlitz Helvetica occupy gluten-free fap yr vegan hella. Tilde Carles put a bird on it, +1 brunch quinoa Intelligentsia ugh vinyl mixtape whatever aesthetic YOLO cray. Readymade occupy Shoreditch yr, DIY flannel forage PBR&B disrupt. Post-ironic selfies craft beer narwhal asymmetrical biodiesel fixie. Banh mi listicle readymade, Austin jean shorts blog church-key stumptown put a bird on it bicycle rights Schlitz farm-to-table Godard. Taxidermy distillery selvage asymmetrical mustache fixie, cardigan Vice squid meditation beard. Neutra biodiesel viral art party American Apparel, chia next level pop-up Helvetica.


Back to Top
Experience
Projects
Education
Contact
LinkedIn
Twitter
Github
freeCodeCamp
Work Experience
Projects
Education
Where I've Lived and Worked
Let's Connect


The Metronic Datatable component supports local or remote data source. For remote data you can specify a remote data source
that returns data in JSON/JSONP format. In this example the grid fetches its data from a remote JSON file. It
also defines the schema model of the data source received from the remote data source. In addition to the visualization,
the Datatable provides built-in support for operations over data such as sorting, filtering and paging performed
in user browser(frontend).
Users Activity
show all users activities


What is Skeletal Animation?
What is Sprite Sheet Animation?
How does the Unity Animator work?
An agent that can perceives its environment and takes actions based on its perception to successfully achieving its goals
openSet = empty set of nodes
add startNode to openSet
closedSet = empty set of nodes
while openSet is not empty
current = node in openSet with minimum fCost
remove current from openSet
if current is the final node
return
foreach neighbour in neighbours of current
if (neighbour is not traversable
or neighbour is in closedSet)
continue
if (new path to neighbour has a lower fCost
or neighbour is not in openSet)
set improved fCost of neighbour
set parent of neighbour to current
if neighbour is not in openSet
add neighbour to openSet
AI


Image taken by Micheal Gaida at Pixabay.com
The Porsche 911 is a two-door, 2+2 high performance rear-engined sports car made since 1963 by Porsche AG of Stuttgart, Germany. It has a rear-mounted flat-six engine and all round independent suspension. It has undergone continuous development, though the basic concept has remained unchanged.[2] The engines were air-cooled until the introduction of the Type 996 in 1998, with the 993, produced from 1994–1998 model years, being the last of the air-cooled Porsche sports cars.
The 911 has been modified by private teams and by the factory itself for racing, rallying, and other forms of automotive competition. It is among the most successful competition cars. In the mid-1970s, the naturally aspirated 911 Carrera RSR won major world championship sports car races, such as Targa Florio and 24 Hours of Daytona, even against prototypes. The 911-derived 935 turbo also won the 24 Hours of Le Mans in 1979 and Porsche won World Championship for Makes titles in 1976, 1977, 1978 and 1979 with 911-derived models.
In the 1999 international poll to determine the Car of the Century, the 911 came fifth. It is one of two in the top five that had remained continuously in production, and was until 1998 a successful surviving application of the air- (now water-) cooled opposed rear-engine layout pioneered by its ancestor, the Porsche 356. It is one of the oldest sports coupé nameplates still in production with one million manufactured as of May 2017.
The Porsche 911 is a highly successful car, capable of beating the competition with ease when it competed in early competitions the car is still a powerful sports car with many advancements and improvements being made to the cars as new models of the car created.
Of course, with recent advancements in automobiles there would be a lot of changes to the Porsche 911 overtime. However, Porsche still manages to make a powerful sports car that still holds true to the original cars made in the 1900s.
Image taken by Alexas_Fotos at Pixabay.com
The newest models of Porsche still hold true to their original 1900s counterparts as they are still the powerful and reliable sports cars that put Porsche on the map. There are multiple varients of the Porsche 911 just like the one pictured on the right. The varient highlighted here is dubbed the 'targa top' model as its most notable feature is the lack of roof combined with the curves and sleak styling of the back window portion of the car.
This particular exmaple of Porsche is the 2018 model that is still one of Porsches flagship line of cars. These cars are not cheap as a result of their sports car status as the newest models fetch for a hefty price of over $100,000 for the car on the right. The Porsche comes in multiple options too. Alongside the Targa top model on the right, there are other peformance packages that come with the 911.
As mentioned before multiple times, the Porsche 911 is one of the most popular sports cars out in the market today as it carries both history and is a rather badass sports car that many like to take out and drive.
For me personally, the Porsche 911 is just one of those cars that look good no matter what. A sleek sports car that is plenty capable of doing a lot such a rallying (yes they rallied these cars search it up) and most certainly on the track. Owning one of these would be a dream-come-true as I had always wanted to drive one. Specifically the early 1990s models as I believe those to be the best looking out of the bunch and also because I've read that the car is still a fun car to drive and completely capable of going quick around a track even as the base model.
Overall, the Porsche 911 is a car that I will always remember and as the new models of these cars are released, the more I want one eventually as I grow older. It is however, just a dream that I would ever own one, a dream that one day, I would at least be able to drive one and enjoy the feel of driving a legendary sports car.


Overview
Advantages
- An OPEN Build Service
- Large ecosystem
- We've most likely got an app for that
- Latest versions of key components
- Much more sociable
- Work on more hardware OOTB
osc build
- Few key packages have proper “upstream” releases
- Initially just imported, warts & all
- Mix of old and new
- Meego:XXX
Conning the Network
- Lack of encryption
- Can't share the love
- AdHoc not available
- Virtual Private what?
- Works for Europeans (GSM/3G only)
- Doesn't love your hardware
- Not future proof with networks
Current issues
- Race conditions
- Artwork - Icons, Themes, Logo
- Lack of fingers & eyes
- Hardware in 3D
- The need for speed
- Application compatibility
Roadmap
- Keep 1.0 updated
- Get 1.1 built
Roadmap
- Integrated as part of openSUSE
- Build for touch
- Add features
- Fix problems
Q & A


{{#refresh}}
{{/refresh}}
X-CASH Blockchain Explorer
{{#js_files}}{{/js_files}} {{^enable_js}}{{/enable_js}}
x-cash.org
Mining Pool
Download Wallet


Acknowledgments
Introduction
Part One: Java's Architecture
1 Introduction to Java's Architecture
Why Java?
The Architecture
The Java Virtual Machine
The Class Loader Architecture
The Java Class File
The Java API
The Java Programming Language
Architectural Tradeoffs
Future Trends
Conclusion
The Resources Page
2 Platform independence
Why Platform Independence?
Java's Architectural Support for Platform Independence
Scalability
Factors that Influence Platform Independence
The Java Platform
Native Methods
Other Factors
Seven Steps to Platform Independence
The Politics of Platform Independence
The Resources Page
3 Security
Why Security?
The Sandbox
The Class Loader Architecture
The Class File Verifier
Phase One: Internal Checks
Phase Two: Verification of Symbolic References
Safety Features Built Into the Java Virtual Machine
The Security Manager and the Java API
The Security API
Security Beyond the Architecture
The Resources Page
4 Network-mobility
Why Network Mobility?
A New Software Paradigm
Java's Architectural Support for Network-Mobility
The Applet: An Example of Network-Mobile Java
The Resources Page
Part Two: Java Internals
5 The Java Virtual Machine
What is a Java Virtual Machine?
The Lifetime of a Java Virtual Machine
The Architecture of the Java Virtual Machine
Data Types
Word Size
The Class Loader Subsystem
Loading, Linking and Initialization
The Primordial Class Loader
Class Loader Objects
Name Spaces
The Method Area
Type Information
The Constant Pool
Field Information
Method Information Class Variables
A Reference to Class ClassLoader
A Reference to Class Class
Method Tables
An Example of Method Area Use
The Heap
Garbage Collection
Object Representation
Array Representation
The Program Counter
The Java Stack
The Stack Frame
Local Variables
Operand Stack
Frame Data
Possible Implementations of the Java Stack
Native Method Stacks
Execution Engine
The Instruction Set
Execution Techniques
Threads
Native Method Interface
The Real Machine
Eternal Math: A Simulation
On the CD-ROM
The Resources Page
6 The Java Class File
What is a Java Class File?
What's in a Class File?
Special Strings
Fully Qualified Names
Simple Names
Descriptors
The Constant Pool
The CONSTANT_Utf8_info Table
The CONSTANT_Integer_info Table
The CONSTANT_Float_info Table
The CONSTANT_Long_info Table
The CONSTANT_Double_info Table
The CONSTANT_Class_info Table
The CONSTANT_String_info Table
The CONSTANT_Fieldref_info Table
The CONSTANT_Methodref_info Table
The CONSTANT_InterfaceMethodref_info Table
The CONSTANT_NameAndType_info Table
Fields
Methods
Attributes
The Code Attribute
The ConstantValue Attribute
The Exceptions Attribute
The InnerClasses Attribute
The LineNumberTable Attribute
The LocalVariableTable Attribute
The SourceFile Attribute
The Synthetic Attribute
Getting Loaded: A Simulation
On the CD-ROM
The Resources Page
7 The Lifetime of a Class
Class Loading, Linking, and Initialization
Loading
Verification
Preparation
Resolution
Initialization
The Class Initialization Method
Active versus Passive Use
The Lifetime of an Object
Class Instantiation
Garbage Collection and Finalization of Objects
Unloading and Finalization of Classes
On the CD-ROM
The Resources Page
8 The Linking Model
Dynamic Linking and Resolution
Resolution and Dynamic Extension
Constant Pool Resolution
Resolution of CONSTANT_Class_info Entries
Array Classes
Non-Array Classes and Interfaces
Resolution of CONSTANT_Fieldref_info Entries
Resolution of CONSTANT_Methodref_info Entries
Resolution of CONSTANT_InterfaceMethodref_info Entries
Resolution of CONSTANT_String_info Entries
Resolution of Other Types of Entries
Compile-Time Resolution of Constants
Direct References
_quick Instructions
Example: The Linking of the Salutation Application
Example: The Dynamic Extension of the Greet Application
Example: Unloading Unreachable Greeters
On the CD-ROM
The Resources Page
9 Garbage Collection
Why Garbage Collection?
Garbage Collection Algorithms
Reference Counting Collectors
Tracing Collectors
Compacting Collectors
Copying Collectors
Generational Collectors
Adaptive Collectors
Finalization
Heap of Fish: A Simulation
Allocate Fish
Assign References
Garbage Collect
Compact Heap
On the CD-ROM
The Resources Page
10 Stack and Local Variable Operations
Pushing Constants Onto the Stack
Generic Stack Operations
Pushing Local Variables Onto the Stack
Popping to Local Variables
The wide Instruction
Fibonacci Forever: A Simulation
On the CD-ROM
The Resources Page
11 Type Conversion
The Conversion Opcodes
Conversion Diversion: A Simulation
On the CD-ROM
The Resources Page
12 Integer Arithmetic
Two's Complement Arithmetic
Inner Int: A Java int Reveals its Inner Nature
Arithmetic Opcodes
Prime Time: A Simulation
On the CD-ROM
The Resources Page
13 Logic
The Logic Opcodes
Logical Results: A Simulation
On the CD-ROM
The Resources Page
14 Floating Point Arithmetic
Floating Point Numbers
Inner Float: A Java float Reveals its Inner Nature
The Floating Point Opcodes
Circle of Squares: A Simulation
On the CD-ROM
The Resources Page
15 Objects and Arrays
A Refresher on Objects and Arrays
Opcodes for Objects
Opcodes for Arrays
Three-Dimensional Array: A Simulation
On the CD-ROM
The Resources Page
16 Control Flow
Conditional Branching
Unconditional Branching
Conditional Branching with Tables
Saying Tomato: A Simulation
On the CD-ROM
The Resources Page
17 Exceptions
Throwing and Catching Exceptions
The Exception Table
Play Ball!: A Simulation
On the CD-ROM
The Resources Page
18 Finally Clauses
Miniature Subroutines
Asymmetrical Invocation and Return
Hop Around: A Simulation
On the CD-ROM
The Resources Page
19 Method Invocation and Return
Method Invocation
Invoking a Java Method
Invoking a Native Method
Other Forms of Method Invocation
The invokespecial instruction
invokespecial and <init>()
invokespecial and Private Methods
invokespecial and super
The invokeinterface Instruction
Invocation Instructions and Speed
Examples of Method Invocation
Returning from Methods
On the CD-ROM
The Resources Page
20 Thread Synchronization
Monitors
Object Locking
Synchronization Support in the Instruction Set
Synchronized Statements
Synchronized Methods
Coordination Support in Class Object
On the CD-ROM
The Resources Page
Appendix A. Instructions by Opcode Mnemonic
Appendix B. Opcode Mnemonic by Functional Group
Appendix C. Opcode Mnemonic by Opcode
Appendix D. Slices of Pi: A Simulation of the Java Virtual Machine
Index
About the Author


| Modifier and Type | Constant Field | Value |
|---|---|---|
public static final int |
COMMENT |
4 |
public static final int |
DIGIT |
5 |
public static final int |
EOF |
-1 |
public static final int |
NAME |
6 |
public static final int |
T__10 |
10 |
public static final int |
T__11 |
11 |
public static final int |
T__12 |
12 |
public static final int |
T__13 |
13 |
public static final int |
T__14 |
14 |
public static final int |
T__15 |
15 |
public static final int |
T__16 |
16 |
public static final int |
T__17 |
17 |
public static final int |
T__18 |
18 |
public static final int |
T__19 |
19 |
public static final int |
T__20 |
20 |
public static final int |
T__21 |
21 |
public static final int |
T__22 |
22 |
public static final int |
T__23 |
23 |
public static final int |
T__24 |
24 |
public static final int |
T__25 |
25 |
public static final int |
T__26 |
26 |
public static final int |
T__27 |
27 |
public static final int |
T__28 |
28 |
public static final int |
T__29 |
29 |
public static final int |
T__30 |
30 |
public static final int |
T__31 |
31 |
public static final int |
T__32 |
32 |
public static final int |
T__33 |
33 |
public static final int |
T__34 |
34 |
public static final int |
T__35 |
35 |
public static final int |
T__36 |
36 |
public static final int |
T__8 |
8 |
public static final int |
T__9 |
9 |
public static final int |
WS |
7 |
| Modifier and Type | Constant Field | Value |
|---|---|---|
public static final int |
COMMENT |
4 |
public static final int |
DIGIT |
5 |
public static final int |
EOF |
-1 |
public static final int |
NAME |
6 |
public static final int |
T__10 |
10 |
public static final int |
T__11 |
11 |
public static final int |
T__12 |
12 |
public static final int |
T__13 |
13 |
public static final int |
T__14 |
14 |
public static final int |
T__15 |
15 |
public static final int |
T__16 |
16 |
public static final int |
T__17 |
17 |
public static final int |
T__18 |
18 |
public static final int |
T__19 |
19 |
public static final int |
T__20 |
20 |
public static final int |
T__21 |
21 |
public static final int |
T__22 |
22 |
public static final int |
T__23 |
23 |
public static final int |
T__24 |
24 |
public static final int |
T__25 |
25 |
public static final int |
T__26 |
26 |
public static final int |
T__27 |
27 |
public static final int |
T__28 |
28 |
public static final int |
T__29 |
29 |
public static final int |
T__30 |
30 |
public static final int |
T__31 |
31 |
public static final int |
T__32 |
32 |
public static final int |
T__33 |
33 |
public static final int |
T__34 |
34 |
public static final int |
T__35 |
35 |
public static final int |
T__36 |
36 |
public static final int |
T__8 |
8 |
public static final int |
T__9 |
9 |
public static final int |
WS |
7 |


Baxter - The Desert Eagle
To pick up your morale when your strength fails you.
For that much needed oomph in this unforgiving desert town.
Every festival needs a fitting mascot. Baxter, the Desert Eagle, aptly embodies the virtues of every sports person - Skill, Perseverance and Team Spirit. Transcending beyond individual sports, Baxter binds all players with the essence of BOSM.