TIFF Metadata Format Specification and Usage Notes
Reading Images Writing ImagesNative Stream Metadata Format
Native Image Metadata Format
Reading Images
TIFF images are read by an {@link javax.imageio.ImageReader ImageReader} which may be controlled by its public interface as well as via a supplied {@link javax.imageio.plugins.tiff.TIFFImageReadParam TIFFImageReadParam}.Color Conversion
If the source image data have photometric type CIE L*a*b* or YCbCr, and the destination color space type is RGB, then the source image data will be automatically converted to RGB using an internal color converter.
Color Spaces
The raw color space assigned by default, i.e., in the absence of a user-supplied {@link javax.imageio.ImageTypeSpecifier ImageTypeSpecifier}, will be the first among the following which applies:- A color space created from the ICC Profile metadata field if it is present and compatible with the image data layout.
- sRGB if the image is monochrome/bilevel (a two-level color map is created internally).
- sRGB if the image is palette-color.
- Linear RGB if the image has three samples per pixel, has photometric type CIE L*a*b*, or has photometric type YCbCr and is not JPEG-compressed.
- A default CMYK color space if the image has photometric type CMYK and four samples per pixel.
- Grayscale if the image has one or two samples per pixel and uniformly 1, 2, 4, 8, 16, or 32 bits per sample or is floating point.
- sRGB if the image has three or four samples per pixel and uniformly 1, 2, 4, 8, 16, or 32 bits per sample or is floating point.
- A fabricated, generic color space if the image has more than four samples per pixel and the number of bits per sample for all bands is the same and is a multiple of 8.
- Grayscale if the image has one or two samples per pixel regardless of the number of bits per sample.
- sRGB if the image has three or four samples per pixel regardless of the number of bits per sample.
- A fabricated, generic color space if the image has more than four samples per pixel regardless of the number of bits per sample.
The normalized color coordinate transformations used for the default CMYK color space are defined as follows:
- CMYK to linear RGB
R = (1 - K)*(1 - C) G = (1 - K)*(1 - M) B = (1 - K)*(1 - Y)
- Linear RGB to CMYK
K = min{1 - R, 1 - G, 1 - B} if(K != 1) { C = (1 - R - K)/(1 - K) M = (1 - G - K)/(1 - K) Y = (1 - B - K)/(1 - K) } else { C = M = Y = 0 }
The generic color space used when no other color space can be inferred is provided merely to enable the data to be loaded. It is not intended to provide accurate conversions of any kind.
If the data are known to be in a color space not correctly handled by the
foregoing, then an ImageTypeSpecifier
should be
supplied to the reader and should be derived from a color space which is correct
for the data in question.
ICC Profiles
If an ICC profile is contained in the image metadata ({@link javax.imageio.plugins.tiff.BaselineTIFFTagSet BaselineTIFFTagSet}. TAG_ICC_PROFILE, tag number 34675), an attempt will be made to use it to create the color space of the loaded image. It will be used if the data layout is of component type and the number of samples per pixel equals or is one greater than the number of components described by the ICC profile. If the ICC profile is not used then the color space will be inferred in one of the subsequent steps described above.If for some reason the embedded ICC profile is not used automatically, then it may be used manually by following this procedure:
- Obtain the image metadata from
ImageReader.getImageMetadata
- Extract the ICC profile field and its value.
- Create an {@link java.awt.color.ICC_ColorSpace ICC_ColorSpace} from an
{@link java.awt.color.ICC_Profile ICC_Profile} created from the ICC profile field data
using
ICC_Profile.getInstance(byte[])
. - Create an
ImageTypeSpecifier
from the new color space using one of its factory methods which accepts anICC_ColorSpace
. - Create a compatible {@link javax.imageio.ImageReadParam ImageReadParam}
and set the
ImageTypeSpecifier
usingImageReadParam.setDestinationType
. - Pass the parameter object to the appropriate
read
method.
If the inferred color space not based on the ICC Profile field is compatible
with the ICC profile-based color space, then a second
ImageTypeSpecifier
derived from this inferred color
space will be included in the
{@link java.util.Iterator Iterator} returned by
ImageReader.getImageTypes
. If the iterator contains
more than one type, the first one will be based on the ICC profile and the
second on the inferred color space.
Metadata Issues
By default all recognized fields in the TIFF image file directory (IFD) are loaded into the native image metadata object. Which fields are loaded may be controlled by setting which TIFF tags the reader is allowed to recognize, whether to read fields with unrecognized tags, and whether to ignore all metadata. The reader is informed to disregard all metadata as usual via theignoreMetadata
parameter of
ImageReader.setInput(Object,boolean,boolean)
. It is
informed of which {@link javax.imageio.plugins.tiff.TIFFTag TIFFTag}s to
recognize or not to recognize via
TIFFImageReadParam.addAllowedTagSet(TIFFTagSet)
and
TIFFImageReadParam.removeAllowedTagSet(TIFFTagSet)
.
If ignoreMetadata
is true
, then only metadata
essential to reading the image will be loaded into the native image metadata
object. If ignoreMetadata
is false
, then the reader
will by default load into the native image metadata object only those fields
which are either essential to reading the image or have a TIFFTag
contained in the one of the allowed TIFFTagSet
s. Reading of
fields with tags not in the allowed TIFFTagSet
s may be forced
by passing in a TIFFImageReadParam
on which
TIFFImageReadParam.setReadUnknownTags(boolean)
has been
invoked with parameter true
.
Use of a {@link javax.imageio.plugins.tiff.TIFFDirectory TIFFDirectory}
object may simplify gaining access to metadata values. An instance of
TIFFDirectory
may be created from the IIOMetadata
object returned by the TIFF reader using the
TIFFDirectory.createFromMetadata
method.
Mapping of TIFF Native Image Metadata to the Standard Metadata Format
| Index | Standard Metadata Element | Derivation from TIFF Fields |
|---|---|---|
| 1 | /Chroma/ColorSpaceType@name | PhotometricInterpretation: WhiteIsZero, BlackIsZero, TransparencyMask = "GRAY"; RGB, PaletteColor => "RGB"; CMYK => "CMYK"; YCbCr => "YCbCr"; CIELab, ICCLab => "Lab". |
| 2 | /Chroma/NumChannels@value | SamplesPerPixel |
| 3 | /Chroma/BlackIsZero@value | "TRUE" <=> PhotometricInterpretation => WhiteIsZero |
| 4 | /Chroma/Palette | ColorMap |
| 5 | /Compression/CompressionTypeName@value | Compression: Uncompressed => "none"; CCITT 1D => "CCITT RLE"; Group 3 Fax => "CCITT T.4"; Group 4 Fax => "CCITT T.6"; LZW => "LZW"; JPEG => "Old JPEG"; New JPEG => "JPEG"; Zlib =>> "ZLib"; PackBits => "PackBits"; Deflate => "Deflate"; Exif JPEG => "JPEG". |
| 6 | /Compression/Lossless@value | Compression: JPEG or New JPEG => "FALSE"; otherwise "TRUE". |
| 7 | /Data/PlanarConfiguration@value | Chunky => "PixelInterleaved"; Planar => "PlaneInterleaved". |
| 8 | /Data/SampleFormat@value | PhotometricInterpretation PaletteColor => "Index"; SampleFormat unsigned integer data => "UnsignedIntegral"; SampleFormat two's complement signed integer data => "SignedIntegral"; SampleFormat IEEE floating point data => "Real"; otherwise element not emitted. |
| 9 | /Data/BitsPerSample@value | BitsPerSample as a space-separated list. |
| 10 | /Data/SampleMSB@value | FillOrder: left-to-right => space-separated list of BitsPerSample-1; right-to-left => space-separated list of 0s. |
| 11 | /Dimension/PixelAspectRatio@value | (1/XResolution)/(1/YResolution) |
| 12 | /Dimension/ImageOrientation@value | Orientation |
| 13 | /Dimension/HorizontalPixelSize@value | 1/XResolution in millimeters if ResolutionUnit is not None. |
| 14 | /Dimension/VerticalPixelSize@value | 1/YResolution in millimeters if ResolutionUnit is not None. |
| 15 | /Dimension/HorizontalPosition@value | XPosition in millimeters if ResolutionUnit is not None. |
| 16 | /Dimension/VerticalPosition@value | YPosition in millimeters if ResolutionUnit is not None. |
| 17 | /Document/FormatVersion@value | 6.0 |
| 18 | /Document/SubimageInterpretation@value | NewSubFileType: transparency => "TransparencyMask"; reduced-resolution => "ReducedResolution"; single page => "SinglePage". |
| 19 | /Document/ImageCreationTime@value | DateTime |
| 20 | /Text/TextEntry | DocumentName, ImageDescription, Make, Model, PageName, Software,
Artist, HostComputer, InkNames, Copyright:
/Text/TextEntry@keyword = field name,
/Text/TextEntry@value = field value. Example: TIFF Software field => /Text/TextEntry@keyword = "Software", /Text/TextEntry@value = Name and version number of the software package(s) used to create the image. |
| 21 | /Transparency/Alpha@value | ExtraSamples: associated alpha => "premultiplied"; unassociated alpha => "nonpremultiplied". |
Reading Exif Images
The TIFF reader may be used to read an uncompressed Exif image or the contents of theAPP1
marker segment of a compressed Exif image.
Reading Uncompressed Exif Images
An uncompressed Exif image is a one- or two-page uncompressed TIFF image with a specific ordering of its IFD and image data content. Each pixel has three 8-bit samples with photometric interpretation RGB or YCbCr. The image stream must contain a single primary image and may contain a single thumbnail which if present must also be uncompressed. The usualImageReader
methods may be used to read the image
data and metadata:
ImageInputStream input;
ImageReader tiffReader;
ImageReadParam tiffReadParam;
tiffReader.setInput(input);
// Read primary image and IFD.
BufferedImage image = tiffReader.read(0, tiffReadParam);
IIOMetadata primaryIFD = tiffReader.getImageMetadata(0);
// Read thumbnail if present.
BufferedImage thumbnail = null;
if (tiffReader.getNumImages(true) > 1) {
thumbnail = tiffReader.read(1, tiffReadParam);
}
Note that the Exif thumbnail is treated as a separate page in the TIFF
stream and not as a thumbnail, i.e.,
tiffReader.hasThumbnails(0)
will return false
.
Reading Compressed Exif Images
A compressed Exif image is a 3-band ISO/IEC 10918-1 baseline DCT JPEG stream with an insertedAPP1
marker segment. The parameters of the marker
segment after the length are the 6-byte sequence
{'E', 'x', 'i', 'f', 0x00, 0x00}
followed by a complete TIFF stream. The embedded TIFF stream contains a primary
IFD describing the JPEG image optionally followed by a thumbnail IFD and
compressed or uncompressed thumbnail image data. Note that the embedded TIFF
stream does not contain any image data associated with the primary IFD
nor any descriptive fields which duplicate information found in the JPEG
stream itself.
The parameter content of the APP1
marker segment may be obtained
from the user object of the associated Node
in a
javax_imageio_jpeg_image_1.0
native image metadata tree extracted
from the image metadata object returned by the JPEG reader. This APP1 Exif
node will be a child of the node named "markerSequence" and will
have name unknown
and an attribute named MarkerTag
with
integral value 0xE1
(String
value
"225"
). The user object of this node will be a byte array
which starts with the six bytes {'E', 'x', 'i', 'f', '0', '0'}
.
The primary IFD and the thumbnail IFD and image may be
read from the user object by the usual ImageReader
methods:
ImageReader jpegReader;
ImageReader tiffReader;
// Obtain the APP1 Exif marker data from the JPEG image metadata.
IIOMetadata jpegImageMetadata = jpegReader.getImageMetadata(0);
String nativeFormat = jpegImageMetadata.getNativeMetadataFormatName();
Node jpegImageMetadataTree = jpegImageMetadata.getAsTree(nativeFormat);
// getExifMarkerData() returns the byte array which is the user object
// of the APP1 Exif marker node.
byte[] app1Params = getExifMarkerData(jpegImageMetadataTree);
if (app1Params == null) {
throw new IIOException("APP1 Exif marker not found.");
}
// Set up input, skipping Exif ID 6-byte sequence.
MemoryCacheImageInputStream app1ExifInput
= new MemoryCacheImageInputStream
(new ByteArrayInputStream(app1Params, 6, app1Params.length - 6));
tiffReader.setInput(app1ExifInput);
// Read primary IFD.
IIOMetadata primaryIFD = tiffReader.getImageMetadata(0);
// Read thumbnail if present.
BufferedImage thumbnail = null;
if (tiffReader.getNumImages(true) > 1) {
thumbnail = tiffReader.read(1, tiffReadParam);
}
// Read the primary image.
BufferedImage image = jpegReader.read(0);
Note that tiffReader.getNumImages(true)
returns the number of
IFDs in the embedded TIFF stream including those corresponding to empty
images. Calling tiffReader.read(0, readParam)
will throw
an exception as the primary image in the embedded TIFF stream is always
empty; the primary image should be obtained using the JPEG reader itself.
Writing Images
TIFF images are written by a {@link javax.imageio.ImageWriter ImageWriter} which may be controlled by its public interface as well as via a supplied {@link javax.imageio.ImageWriteParam ImageWriteParam}. For anImageWriteParam
returned
by the getDefaultWriteParam()
method of the TIFF ImageWriter
,
the canWriteTiles()
and canWriteCompressed()
methods
will return true
; the canOffsetTiles()
and
canWriteProgressive()
methods will return false
.
The TIFF writer supports many optional capabilities including writing tiled
images, inserting images, writing or inserting empty images, and replacing image
data. Pixels may be replaced in either empty or non-empty images but if and
only if the data are not compressed.
If tiles are being written, then each of their dimensions will be rounded to the nearest multiple of 16 per the TIFF specification. If JPEG-in-TIFF compression is being used, and tiles are being written each tile dimension will be rounded to the nearest multiple of 8 times the JPEG minimum coded unit (MCU) in that dimension. If JPEG-in-TIFF compression is being used and strips are being written, the number of rows per strip is rounded to a multiple of 8 times the maximum MCU over both dimensions.
Compression
The compression type may be set via thesetCompressionType()
method of
the ImageWriteParam
after setting the compression mode to
MODE_EXPLICIT
. The set of innately
supported compression types is listed in the following table:
| Index | Compression Type | Description | Reference |
|---|---|---|---|
| 1 | CCITT RLE | Modified Huffman compression | TIFF 6.0 Specification, Section 10 |
| 2 | CCITT T.4 | CCITT T.4 bilevel encoding/Group 3 facsimile compression | TIFF 6.0 Specification, Section 11 |
| 3 | CCITT T.6 | CCITT T.6 bilevel encoding/Group 4 facsimile compression | TIFF 6.0 Specification, Section 11 |
| 4 | LZW | LZW compression | TIFF 6.0 Specification, Section 13 |
| 5 | JPEG | "New" JPEG-in-TIFF compression | TIFF Technical Note #2 |
| 6 | ZLib | "Deflate/Inflate" compression (see note following this table) | Adobe Photoshop® TIFF Technical Notes |
| 7 | PackBits | Byte-oriented, run length compression | TIFF 6.0 Specification, Section 9 |
| 8 | Deflate | "Zip-in-TIFF" compression (see note following this table) | ZLIB Compressed Data Format Specification, DEFLATE Compressed Data Format Specification |
| 9 | Exif JPEG | Exif-specific JPEG compression (see note following this table) | Exif 2.3 Specification (PDF), section 4.5.8, "Basic Structure of Thumbnail Data" |
Old-style JPEG compression as described in section 22 of the TIFF 6.0 Specification is not supported.
The CCITT compression types are applicable to bilevel (1-bit) images only. The JPEG compression type is applicable to byte grayscale (1-band) and RGB (3-band) images only.
ZLib and Deflate compression are identical except for the value of the TIFF Compression field: for ZLib the Compression field has value 8 whereas for Deflate it has value 32946 (0x80b2). In both cases each image segment (strip or tile) is written as a single complete zlib data stream.
"Exif JPEG" is a compression type used when writing the contents of an APP1 Exif marker segment for inclusion in a JPEG native image metadata tree. The contents appended to the output when this compression type is used are a function of whether an empty or non-empty image is written. If the image is empty, then a TIFF IFD adhering to the specification of a compressed Exif primary IFD is appended. If the image is non-empty, then a complete IFD and image adhering to the specification of a compressed Exif thumbnail IFD and image are appended. Note that the data of the empty image may not later be appended using the pixel replacement capability of the TIFF writer.
If ZLib/Deflate or JPEG compression is used, the compression quality
may be set. For ZLib/Deflate the supplied floating point quality value is
rescaled to the range [1, 9]
and truncated to an integer
to derive the Deflate compression level. For JPEG the floating point
quality value is passed directly to the JPEG writer plug-in which
interprets it in the usual way.
Color Conversion
If the source image data color space type is RGB, and the destination photometric type is CIE L*a*b* or YCbCr, then the source image data will be automatically converted from RGB using an internal color converter.
ICC Profiles
AnICC Profile
field will be written if either:
- one is present in the native image metadata {@link javax.imageio.metadata.IIOMetadata IIOMetadata} instance supplied to the writer, or
- the {@link java.awt.color.ColorSpace ColorSpace}
of the destination
ImageTypeSpecifier
is an instance ofICC_ColorSpace
which is not one of the standard color spaces defined by theCS_*
constants in theColorSpace
class. The destination type is set viaImageWriteParam.setDestinationType(ImageTypeSpecifier)
and defaults to theImageTypeSpecifier
of the image being written.
Metadata Issues
Some behavior of the writer is affected by or may affect the contents of the image metadata which may be supplied by the user.For bilevel images, the FillOrder
, and T4Options
fields affect the output data. The data will be filled right-to-left if
FillOrder
is present with a value of 2
(BaselineTIFFTagSet.FILL_ORDER_RIGHT_TO_LEFT
)
and will be filled left-to-right otherwise. The value of T4Options
specifies whether the data should be 1D- or 2D-encoded and whether EOL
padding should be used.
For all images the value of the RowsPerStrip
field is used
to the set the number of rows per strip if the image is not tiled. The
default number of rows per strip is either 8 or the number of rows which
would fill no more than 8 kilobytes, whichever is larger.
For all images the tile dimensions may be set using the TileWidth
and TileLength
field values if the tiling mode is
ImageWriteParam.MODE_COPY_FROM_METADATA
. If this mode
is set but the fields are not, their respective default values are the image
width and height.
When using JPEG-in-TIFF compression, a JPEGTables
field will be
written to the IFD and abbreviated JPEG streams to each strip or tile if and
only if a JPEGTables
field is contained in the metadata object
provided to the writer. If the contents of the JPEGTables
field is
a valid tables-only JPEG stream, then it will be used; otherwise the contents
of the field will be replaced with default visually lossless tables. If no
such JPEGTables
field is present in the metadata, then no
JPEGTables
field will be written to the output and each strip or
tile will be written as a separate, self-contained JPEG stream.
When using Deflate/ZLib or LZW compression, if the image has 8 bits per
sample, a horizontal differencing predictor will be used if the
Predictor
field is present with a value of 2
(BaselineTIFFTagSet.PREDICTOR_HORIZONTAL_DIFFERENCING
).
If prediction is so requested but the image does not have
8 bits per sample the field will be reset to have the value 1
(BaselineTIFFTagSet.PREDICTOR_NONE
).
Some fields may be added or modified:
PhotometricInterpretation
if not present.PlanarConfiguration
if this field is present with valuePlanar
is is reset toChunky
.Compression
always.BitsPerSample
if the image is not bilevel.SamplesPerPixel
always.ExtraSamples
if an alpha channel is present.SampleFormat
if not present and the data are 16- or 32-bit integers or floating point.ColorMap
if thePhotometricInterpretation
isRGBPalette
.ImageWidth
andImageLength
always.TileWidth
,TileLength
,TileOffsets
, andTileByteCounts
if a tiled image is being written.RowsPerStrip
,StripOffsets
, andStripByteCounts
if a tiled image is not being written.XResolution
,YResolution
, andResolutionUnit
if none of these is present.YCbCrSubsampling
andYCbCrPositioning
if the photometric interpretation is YCbCr and the compression type is not JPEG (only [1, 1] subsampling and cosited positioning are supported for non-JPEG YCbCr output).YCbCrSubsampling
,YCbCrPositioning
, andReferenceBlackWhite
: if the compression type is JPEG and the color space is RGB these will be reset to [2, 2] centered subsampling with no headroom/footroom (0:255,128:255,128:255).
Some fields may be removed:
BitsPerSample
if the image is bilevel.ExtraSamples
if the image does not have an alpha channel.ColorMap
if the photometric interpretation is notRGBPalette
.TileWidth
,TileLength
,TileOffsets
, andTileByteCounts
if tiling is not being used.RowsPerStrip
,StripOffsets
, andStripByteCounts
if tiling is being used.YCbCrSubsampling
,YCbCrPositioning
, andReferenceBlackWhite
if the compression type is JPEG and the color space is grayscale.JPEGProc
,JPEGInterchangeFormat
,JPEGInterchangeFormatLength
,JPEGRestartInterval
,JPEGLosslessPredictors
,JPEGPointTransforms
,JPEGQTables
,JPEGDCTables
, andJPEGACTables
if the compression type is JPEG.
Other fields present in the supplied metadata are uninterpreted and will be written as supplied.
If an Exif image is being written, the set of fields present and their values will be modified such that the result is in accord with the Exif 2.3 specification.
Setting up the image metadata to write to a TIFF stream may be simplified
by using the TIFFDirectory
class
which represents a TIFF IFD. A field in a TIFF IFD is represented by an
instance of {@link javax.imageio.plugins.tiff.TIFFField TIFFField}. For each
field to be written a TIFFField
may be added to the
TIFFDirectory
and the latter converted to an
IIOMetadata
object by invoking
TIFFDirectory.getAsMetadata
. The
IIOMetadata
object so obtained may then be passed to the TIFF
writer.
Mapping of the Standard Metadata Format to TIFF Native Image Metadata
| Index | TIFF Field | Derivation from Standard Metadata Elements |
|---|---|---|
| 1 | PhotometricInterpretation | /Chroma/ColorSpaceType@name: "GRAY" and /Chroma/BlackIsZero@value = "FALSE" => WhiteIsZero; "GRAY" and /Document/SubimageInterpretation@value = "TransparencyMask" => TransparencyMask; "RGB" and /Chroma/Palette present => PaletteColor; "GRAY" => BlackIsZero; "RGB" => RGB; "YCbCr" => YCbCr; "CMYK" => CMYK; "Lab" => CIELab. |
| 2 | SamplesPerPixel | /Chroma/NumChannels@value |
| 3 | ColorMap | /Chroma/Palette |
| 4 | Compression | /Compression/CompressionTypeName@value: "none" => Uncompressed; "CCITT RLE" => CCITT 1D; "CCITT T.4" => Group 3 Fax; "CCITT T.6" => Group 4 Fax; "LZW" => LZW; "Old JPEG" => JPEG; "JPEG" => New JPEG; "ZLib" => ZLib; "PackBits" => PackBits; "Deflate" => Deflate. |
| 5 | PlanarConfiguration | /Data/PlanarConfiguration@value: "PixelInterleaved" => Chunky; "PlaneInterleaved" => Planar. |
| 6 | SampleFormat | /Data/SampleFormat@value: "SignedIntegral" => two's complement signed integer data; "UnsignedIntegral" => unsigned integer data; "Real" => IEEE floating point data; "Index" => unsigned integer data. |
| 7 | BitsPerSample | /Data/BitsPerSample@value: space-separated list parsed to char array. |
| 8 | FillOrder | /Data/SampleMSB@value: if all values in space-separated list are 0s => right-to-left; otherwise => left-to-right. |
| 9 | XResolution | (10 / /Dimension/HorizontalPixelSize@value) or (10 / (/Dimension/VerticalPixelSize@value * /Dimension/PixelAspectRatio@value)) |
| 10 | YResolution | (10 / /Dimension/VerticalPixelSize@value) or (10 / (/Dimension/HorizontalPixelSize@value / /Dimension/PixelAspectRatio@value)) |
| 11 | ResolutionUnit | Centimeter if XResolution or YResolution set; otherwise None. |
| 12 | Orientation | /Dimension/ImageOrientation@value |
| 13 | XPosition | /Dimension/HorizontalPosition@value / 10 |
| 14 | YPosition | /Dimension/VerticalPosition@value / 10 |
| 15 | NewSubFileType | /Document/SubimageInterpretation@value: "TransparencyMask" => transparency mask; "ReducedResolution" => reduced-resolution; "SinglePage" => single page. |
| 16 | DateTime | /Document/ImageCreationTime@value |
| 17 | DocumentName, ImageDescription, Make, Model, PageName, Software, Artist, HostComputer, InkNames, Copyright | /Text/TextEntry: if /Text/TextEntry@keyword is the name of any of the TIFF Fields, e.g., "Software", then the field is added with content /Text/TextEntry@value and count 1. |
| 18 | ExtraSamples | /Transparency/Alpha@value: "premultiplied" => associated alpha, count 1; "nonpremultiplied" => unassociated alpha, count 1. |
Writing Exif Images
The TIFF writer may be used to write an uncompressed Exif image or the contents of theAPP1
marker segment of a compressed Exif image.
Writing Uncompressed Exif Images
When writing a sequence of images each image is normally recorded as {IFD, IFD Value, Image Data}. The Exif specification requires that an uncompressed Exif image be structured as follows:- Image File Header
- Primary IFD
- Primary IFD Value
- Thumbnail IFD
- Thumbnail IFD Value
- Thumbnail Image Data
- Primary Image Data
ImageWriter tiffWriter;
ImageWriteParam tiffWriteParam;
IIOMetadata tiffStreamMetadata;
IIOMetadata primaryIFD;
BufferedImage image;
BufferedImage thumbnail;
// Specify uncompressed output.
tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_DISABLED);
if (thumbnail != null) {
// Write the TIFF header.
tiffWriter.prepareWriteSequence(tiffStreamMetadata);
// Append the primary IFD.
tiffWriter.prepareInsertEmpty(-1, // append
new ImageTypeSpecifier(image),
image.getWidth(),
image.getHeight(),
primaryIFD,
null, // thumbnails
tiffWriteParam);
tiffWriter.endInsertEmpty();
// Append the thumbnail image data.
tiffWriter.writeToSequence(new IIOImage(thumbnail, null, null),
tiffWriteParam);
// Insert the primary image data.
tiffWriter.prepareReplacePixels(0, new Rectangle(image.getWidth(),
image.getHeight()));
tiffWriter.replacePixels(image, tiffWriteParam);
tiffWriter.endReplacePixels();
// End writing.
tiffWriter.endWriteSequence();
} else {
// Write only the primary IFD and image data.
tiffWriter.write(tiffStreamMetadata,
new IIOImage(image, null, primaryIFD),
tiffWriteParam);
}
Writing Compressed Exif Images
The structure of the embedded TIFF stream in theAPP1
segment of a
compressed Exif image is identical to the
uncompressed Exif image structure except that there are no primary
image data, i.e., the primary IFD does not refer to any image data.
ImageWriter tiffWriter;
ImageWriteParam tiffWriteParam;
IIOMetadata tiffStreamMetadata;
BufferedImage image;
BufferedImage thumbnail;
IIOMetadata primaryIFD;
ImageOutputStream output;
// Set up an output to contain the APP1 Exif TIFF stream.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
MemoryCacheImageOutputStream app1ExifOutput =
new MemoryCacheImageOutputStream(baos);
tiffWriter.setOutput(app1ExifOutput);
// Set compression for the thumbnail.
tiffWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
tiffWriteParam.setCompressionType("Exif JPEG");
// Write the APP1 Exif TIFF stream.
if (thumbnail != null) {
// Write the TIFF header.
tiffWriter.prepareWriteSequence(tiffStreamMetadata);
// Append the primary IFD.
tiffWriter.prepareInsertEmpty(-1, // append
new ImageTypeSpecifier(image),
image.getWidth(),
image.getHeight(),
primaryIFD,
null, // thumbnails
tiffWriteParam);
tiffWriter.endInsertEmpty();
// Append the thumbnail IFD and image data.
tiffWriter.writeToSequence(new IIOImage(thumbnail, null,
null), tiffWriteParam);
// End writing.
tiffWriter.endWriteSequence();
} else {
// Write only the primary IFD.
tiffWriter.prepareWriteEmpty(tiffStreamMetadata,
new ImageTypeSpecifier(image),
image.getWidth(),
image.getHeight(),
primaryIFD,
null, // thumbnails
tiffWriteParam);
tiffWriter.endWriteEmpty();
}
// Flush data into byte stream.
app1ExifOutput.flush();
// Create APP1 parameter array.
byte[] app1Parameters = new byte[6 + baos.size()];
// Add APP1 Exif ID bytes.
app1Parameters[0] = (byte) 'E';
app1Parameters[1] = (byte) 'x';
app1Parameters[2] = (byte) 'i';
app1Parameters[3] = (byte) 'f';
app1Parameters[4] = app1Parameters[5] = (byte) 0;
// Append TIFF stream to APP1 parameters.
System.arraycopy(baos.toByteArray(), 0, app1Parameters, 6, baos.size());
// Create the APP1 Exif node to be added to native JPEG image metadata.
IIOMetadataNode app1Node = new IIOMetadataNode("unknown");
app1Node.setAttribute("MarkerTag", String.valueOf(0xE1));
app1Node.setUserObject(app1Parameters);
// Append the APP1 Exif marker to the "markerSequence" node.
IIOMetadata jpegImageMetadata =
jpegWriter.getDefaultImageMetadata(new ImageTypeSpecifier(image),
jpegWriteParam);
String nativeFormat = jpegImageMetadata.getNativeMetadataFormatName();
Node tree = jpegImageMetadata.getAsTree(nativeFormat);
NodeList children = tree.getChildNodes();
int numChildren = children.getLength();
for (int i = 0; i < numChildren; i++) {
Node child = children.item(i);
if (child.getNodeName().equals("markerSequence")) {
child.appendChild(app1Node);
break;
}
}
jpegImageMetadata.setFromTree(nativeFormat, tree);
// Write the JPEG image data including the APP1 Exif marker.
jpegWriter.setOutput(output);
jpegWriter.write(new IIOImage(image, null, jpegImageMetadata));
The "unknown"
node created above would be appended to the
"markerSequence"
node of the native JPEG image metadata
and written to the JPEG stream when the primary image is written using
the JPEG writer.
Stream Metadata
The DTD for the TIFF native stream metadata format is as follows:<!DOCTYPE "javax_imageio_tiff_stream_1.0" [ <!ELEMENT "javax_imageio_tiff_stream_1.0" (ByteOrder)> <!ELEMENT "ByteOrder" EMPTY> <!-- The stream byte order --> <!ATTLIST "ByteOrder" "value" #CDATA #REQUIRED> <!-- One of "BIG_ENDIAN" or "LITTLE_ENDIAN" --> <!-- Data type: String --> ]>
Image Metadata
The DTD for the TIFF native image metadata format is as follows:<!DOCTYPE "javax_imageio_tiff_image_1.0" [ <!ELEMENT "javax_imageio_tiff_image_1.0" (TIFFIFD)*> <!ELEMENT "TIFFIFD" (TIFFField | TIFFIFD)*> <!-- An IFD (directory) containing fields --> <!ATTLIST "TIFFIFD" "tagSets" #CDATA #REQUIRED> <!-- Data type: String --> <!ATTLIST "TIFFIFD" "parentTagNumber" #CDATA #IMPLIED> <!-- The tag number of the field pointing to this IFD --> <!-- Data type: Integer --> <!ATTLIST "TIFFIFD" "parentTagName" #CDATA #IMPLIED> <!-- A mnemonic name for the field pointing to this IFD, if known --> <!-- Data type: String --> <!ELEMENT "TIFFField" (TIFFBytes | TIFFAsciis | TIFFShorts | TIFFSShorts | TIFFLongs | TIFFSLongs | TIFFRationals | TIFFSRationals | TIFFFloats | TIFFDoubles | TIFFUndefined)> <!-- A field containing data --> <!ATTLIST "TIFFField" "number" #CDATA #REQUIRED> <!-- The tag number associated with the field --> <!-- Data type: String --> <!ATTLIST "TIFFField" "name" #CDATA #IMPLIED> <!-- A mnemonic name associated with the field, if known --> <!-- Data type: String --> <!ELEMENT "TIFFBytes" (TIFFByte)*> <!-- A sequence of TIFFByte nodes --> <!ELEMENT "TIFFByte" EMPTY> <!-- An integral value between 0 and 255 --> <!ATTLIST "TIFFByte" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ATTLIST "TIFFByte" "description" #CDATA #IMPLIED> <!-- A description, if available --> <!-- Data type: String --> <!ELEMENT "TIFFAsciis" (TIFFAscii)*> <!-- A sequence of TIFFAscii nodes --> <!ELEMENT "TIFFAscii" EMPTY> <!-- A String value --> <!ATTLIST "TIFFAscii" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ELEMENT "TIFFShorts" (TIFFShort)*> <!-- A sequence of TIFFShort nodes --> <!ELEMENT "TIFFShort" EMPTY> <!-- An integral value between 0 and 65535 --> <!ATTLIST "TIFFShort" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ATTLIST "TIFFShort" "description" #CDATA #IMPLIED> <!-- A description, if available --> <!-- Data type: String --> <!ELEMENT "TIFFSShorts" (TIFFSShort)*> <!-- A sequence of TIFFSShort nodes --> <!ELEMENT "TIFFSShort" EMPTY> <!-- An integral value between -32768 and 32767 --> <!ATTLIST "TIFFSShort" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ATTLIST "TIFFSShort" "description" #CDATA #IMPLIED> <!-- A description, if available --> <!-- Data type: String --> <!ELEMENT "TIFFLongs" (TIFFLong)*> <!-- A sequence of TIFFLong nodes --> <!ELEMENT "TIFFLong" EMPTY> <!-- An integral value between 0 and<PHONE_NUMBER> --> <!ATTLIST "TIFFLong" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ATTLIST "TIFFLong" "description" #CDATA #IMPLIED> <!-- A description, if available --> <!-- Data type: String --> <!ELEMENT "TIFFSLongs" (TIFFSLong)*> <!-- A sequence of TIFFSLong nodes --> <!ELEMENT "TIFFSLong" EMPTY> <!-- An integral value between -2147483648 and<PHONE_NUMBER> --> <!ATTLIST "TIFFSLong" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ATTLIST "TIFFSLong" "description" #CDATA #IMPLIED> <!-- A description, if available --> <!-- Data type: String --> <!ELEMENT "TIFFRationals" (TIFFRational)*> <!-- A sequence of TIFFRational nodes --> <!ELEMENT "TIFFRational" EMPTY> <!-- A rational value consisting of an unsigned numerator and denominator --> <!ATTLIST "TIFFRational" "value" #CDATA #IMPLIED> <!-- The numerator and denominator, separated by a slash --> <!-- Data type: String --> <!ELEMENT "TIFFSRationals" (TIFFSRational)*> <!-- A sequence of TIFFSRational nodes --> <!ELEMENT "TIFFSRational" EMPTY> <!-- A rational value consisting of a signed numerator and denominator --> <!ATTLIST "TIFFSRational" "value" #CDATA #IMPLIED> <!-- The numerator and denominator, separated by a slash --> <!-- Data type: String --> <!ELEMENT "TIFFFloats" (TIFFFloat)*> <!-- A sequence of TIFFFloat nodes --> <!ELEMENT "TIFFFloat" EMPTY> <!-- A single-precision floating-point value --> <!ATTLIST "TIFFFloat" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ELEMENT "TIFFDoubles" (TIFFDouble)*> <!-- A sequence of TIFFDouble nodes --> <!ELEMENT "TIFFDouble" EMPTY> <!-- A double-precision floating-point value --> <!ATTLIST "TIFFDouble" "value" #CDATA #IMPLIED> <!-- The value --> <!-- Data type: String --> <!ELEMENT "TIFFUndefined" EMPTY> <!-- Uninterpreted byte data --> <!ATTLIST "TIFFUndefined" "value" #CDATA #IMPLIED> <!-- A list of comma-separated byte values --> <!-- Data type: String --> ]>@since 9


servertool
Section: User Commands (1)Updated: 05 Aug 2006
Index Return to Main Contents
NAME
servertool - The Java(TM) IDL Server Tool
servertool provides a command-line interface for application programmers to register, unregister, startup, and shutdown a persistent server.
SYNOPSIS
servertool -ORBInitialPort nameserverport options [ commands ]
If you did not enter a command when starting servertool, the command-line tool displays with a servertool > prompt. Enter commands at the servertool > prompt.
If you enter a command when starting servertool, the Java IDL Server Tool starts, runs the command, and exits.
The -ORBInitialPort nameserverport option is required. The value for nameserverport must specify the port on which orbd is running and listening for incoming requests. When using Solaris software, you must become root to start a process on a port under 1024. For this reason, we recommend that you use a port number greater than or equal to 1024 for the nameserverport.
DESCRIPTION
The servertool provides the command-line interface for the application programmers to register, unregister, startup, and shutdown a persistent server. Other commands are provided to obtain various statistical information about the server.
OPTIONS
- -ORBInitialHost nameserverhost
- Specifies the host machine on which the name server is running and listening for incoming requests. The nameserverhost defaults to localhost if this option is not specified. If orbd and servertool are running on different machines, you must specify the name or IP address of the host on which orbd is running.
- -Joption
- Pass option to the Java virtual machine, where option is one of the options described on the reference page for the java a pplication launcher @ http://java.sun.com/javase/6/docs/technotes/tools/solaris/java.html. For example, -J-Xms48m sets the startup memory to 48 megabytes. It is a common convention for -J to pass options to the underlying virtual machine.
COMMANDS
- register -server <server class name>
- -classpath <classpath to server> [ -applicationName <application name> -args <args to server> -vmargs <flags to be passed to Java VM> ] Register a new persistent server with the Object Request Broker Daemon (ORBD). If the server is not already registered, it is registered and activated. This command causes an install method to be invoked in the main class of the server identified by the -server option. The install method must be public static void install(org.omg.CORBA.ORB). The install method is optional and enables the developer to provide their own server installation behavior (for example, creating database schema).
- unregister
- -serverid <server id > | -applicationName <application name> Unregister a server from the ORBD by using either its server id or its application name. This command causes an uninstall method to be invoked in the main class of the server identified by the -server option. The uninstall method must be public static void uninstall(org.omg.CORBA.ORB). The uninstall method is optional and enables the developer to provide their own server uninstall behavior (for example, undoing the behavior of the install method).
- getserverid
- -applicationName <application name> Return the server id that corresponds with an application.
- list
- List information about all persistent servers registered with the ORBD.
- listappnames
- List the application names for all servers currently registered with the ORBD.
- listactive
- List information about all persistent servers that have been launched by the ORBD and are currently running.
- locate -serverid <server id > |
- -applicationName <application name> [-endpointType <endpointType> ] Locate the endpoints (ports) of a specific type for all ORBs created by a registered server. If a server is not already running, it is activated. If an endpoint type is not specified, then the plain/non-protected endpoint associated with each ORB in a server is returned.
- locateperorb
- -serverid <server id > | -applicationName <application name> [-orbid <ORB name> ] Locate all the endpoints (ports) registered by a specific ORB of registered server. If a server is not already running, then it is activated. If an orbid is not specified, the default value of "" is assigned to the orbid. If any ORBs are created with an orbid of empty string, all ports registered by it are returned.
- orblist -serverid <server id > |
- -applicationName <application name> Lists the ORBId of the ORBs defined on a server. An ORBId is the string name for the ORB created by the server. If the server is not already running, it is activated.
- shutdown -serverid <server id > |
- -applicationName <application name> Shutdown an active server that is registered with ORBD. During execution of this command, the shutdown() method defined in the class specified by either the -serverid or -applicationName parameter is also invoked to shutdown the server process appropriately.
- startup -serverid <server id > |
- -applicationName <application name> Startup or activate a server that is registered with ORBD. If the server is not running, this command launches the server. If the server is already running, an error message is returned to the user.
- help
- List all the commands available to the server through the server tool.
- quit
- Exit the server tool.
SEE ALSO
orbd
Index
This document was created by man2html, using the manual pages.
Time: 05:29:10 GMT, December 24, 2015


I am experienced in leveraging agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Collaboratively working on advanced stage of management systems (Fuel Management, Church Management), on database queries for reports, charts and making changes to UI and backend functions using PHP Codeigniter Framework. I play the role of programming lead in a team of 3 and report directly to the boss on code and general software development, including tools and best practices I can find.
Collaborated in building a Staff Management System in VB.Net, as a team leader for National Service Personnel(NSP). Solely developed an Attendance & Server room logging System for staff and interns using Laravel 5.4
Worked building various relational databases for various management systems using MySql.
CWA: 75.22
Software Engineering
Android · Java · VB.NET · C#
Apart from being a web developer, I enjoy my time mostly indoors. Outdoors, I usually visit a friend or two to catch up on old times or just chit-chat. If there are others of same interest in development, I like to engage them in conversations about technology trends. I also like to take walks, to self reflect.
When indoors, I spend some amount of my free time exploring the latest technology advancements in the web applications, mobile applications and general applications development world, sometimes curiosity based research. I spend more time reading, listening and watching video sermons and also practice my acoustic guitar.


YANA'S FRIENDS (Chaverim Shel Yana, Ha)
Reviewed by Harvey Karten Friends of Film Director: Arik Kaplun Writer: Arik Kaplun, Semyon Vinokur Cast: Evelyn Kaplun, Nir Levy, Shmil Ben Ari, Mosko Alkalai, Dalia Friedland, Vladimir Friedman, Israel Damidov, Lena Sachanova, Jenya Fleisher, Eviatar Lazar, Lucy Dubinchik Screened at: Loews Screening Rm, NYC, 9/25/01
Being an immigrant is no fun. For one thing, you're leaving a country that you're probably attached to. To prove this, listen to Americans who came from other parts of the world to live here refer to "my country." "My country" is usually Puerto Rico or El Salvador or Russia or any one of the two-hundred places from which the U.S. gains new residents. For another, adjusting to life in a new country is anything but easy. To prove this, listen to how many immigrants from non-English-speaking countries talk not English but rather their original language when speaking to others from their homelands. "Yana's Friends," a film by Arik Kaplun which is co-written by Simeon Vinokur, yields universal truths of this nature by focusing on a handful of Russian Jews who went to Israel to live and who for the most part prefer speaking Russian to Hebrew and have a difficult time assimilating into what is to them a strange land despite being inhabited primarily by fellow Jews. How does Yana and how do her friends and neighbors deal with this issue, one which is made even more problematic during the 1991 war in the Persian Gulf in which Tel Aviv faced bombardment by Iraqi Scud missiles?
The film, which swept awards in Israel including that country's "Oscar" for best film director, actress and a host of other tributes, is a warm-hearted, often funny tale with Fellini-esque overtones that opens on Yana (Evelyn Kaplun), a young Russian, pretty and pregnant, a new resident in Tel Aviv who because of a lack of money must share an apartment with an equally young wedding photographer, Eli (Nir Levy). Eli is a fun guy who enjoys the sexual favors of several women and sees an opportunity with Yana as well when the latter's deadbeat husband leaves her broke and returns to his homeland with money that the Israeli government traditionally gives to new settlers. Given the circumstances--a lonely Yana who is attracted to the magnetic Eli, their bond strengthened by the agitation caused by repeated air raids--Yana and Eli develop a passionate relationship. When Valentin Belonogov's camera is not focused on the downscale flat that they share, the lens turns on several other Russian Jews who live in the area, including the aging invalid and World War II hero Yitzhak (Moscu Alcalay), whose granddaughter Mila (Lena Sachanova) exploits him by turning his chair out on the street to attract donations from sympathetic passersby. Mila's husband Alik (Vladimir Friedman) fights regularly with street accordionist Yuri (Shmil Ben-Ari) for space on the sidewalk--all of which contributes to our understanding of the difficulties faced by new occupants of a state that simply does not have enough dignified jobs to accommodate them.
Director Arik Kaplun is himself a product of the dislocations caused by the exodus of Jews from Russia who, like many of his countrymen had been trained for high-level jobs that cannot be accommodated in Israel. Given the need of immigrants other than those who come over with sizable bank accounts for housing, we wonder how these needy people were assigned housing in Tel Aviv when they would more likely to apportioned to border areas and more dangerous communities perhaps in the West Bank or even Gaza. You can imagine, then, how much harder life must be for those who live in remote areas, but director Kaplun does give us a reasonably amusing and sexy take on the subject of dislocation. Given Evelyn Kaplun's own Russian background, we are in awe of her fluency in both her own language and Hebrew in a film which features Russian and Hebrew conversation with English commentary on the battle against Saddam Hussein. While Israel has a fairly thriving film industry, virtually nothing that country turns out can be compared too favorably with the wonderful fare that we get annually from Iran. Nevertheless "Yana's Friends" can be recommended for its humanity, its humor, and its down-to-earth qualities. We see that even during wartime, when gas masks must be donned, romance and everyday business go on. In fact the most amusing scene in the film is an original, headlining Yana and her best friend Eli in erotic embrace while wearing those infernal gas masks.
Not Rated. Running time: 90 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>========== X-RAMR-ID: 29601 X-Language: en X-RT-ReviewID: 251579 X-RT-TitleID: 10000768 X-RT-SourceID: 570 X-RT-AuthorID: 1123
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


TableTools is a plug-in for the DataTables HTML table enhancer, which adds a highly customisable button toolbar to a DataTable. Key features include:
To use TableTools, first download DataTables ( http://datatables.net/download ) and place the unzipped TableTools package into a extensions
directory in the DataTables package (in DataTables 1.9- use the extras
directory). This will allow the pages in the examples to operate correctly. To see the examples running, open the examples
directory in your web-browser.
TableTools is initialised using the T
option that it adds to DataTables' dom
option. For example:
$(document).ready( function () {
$('#example').DataTable( {
dom: 'T<"clear">lfrtip'
} );
} );
If you fancy getting involved with the development of TableTools and help make it better, please refer to its GitHub repo: https://github.com/DataTables/TableTools


ISSN: 2730-2784
This journal is publicly available and can be accessed without any charge.
AJTRE | Volume 1 | Issue 1 | 31 December 2020
This volume was published by the team organized as:
EDITORIAL
- Editor-in-chief: Kridsadakorn Chaichoompu ℹ
- Chief journal editor: Issara Orikasa
- Managing editors: Tanut Ungwattanapanit, Sittichoke Som-am, Piyapat Saranrittichai, Nad Siroros
PUBLISHING
- Management: Kridsadakorn Chaichoompu ℹ
- Journal: Issara Orikasa
- Website: Teerat Pitakrat, Piyapat Saranrittichai
MANAGEMENT
- Chief supervisor: Manop Sittidech ℹ
- Supervisor: Thanakorn Chanmalee ℹ, Jaturong Amonchaisup ℹ
- Administration: Siriluk Pumirat, Puracheth Rithchumpon, Sirasak Tepjit
- Conference/Events: Puracheth Rithchumpon, Arada Jamnongpipatkul, Sittichoke Som-am, Nad Siroros, Piyapat Saranrittichai, Kanthanakorn Noysena, Sirasak Tepjit, Kridsadakorn Chaichoompu ℹ
- Public Relations: Jompoj Wongphechauxsorn, Nad Siroros, Arada Jamnongpipatkul, Puracheth Rithchumpon, Atiruj Jerddeesakul
- Graphic: Atiruj Jerddeesakul, Issara Orikasa
MANAGEMENT OFFICE
Office of Science and Technology, Royal Thai Embassy, Brussels, Belgium.
☎ +32 (02) 675 0797
Academic Journal for Thai Researchers in Europe (ISSN: 2730-2784) published annually by the Office of Science and Technology, Royal Thai Embassy, Brussels, Belgium.
The journal was registered as an online journal at the National Library of Thailand, Thanon Samsen, Wachira Phayaban, Dusit District, Bangkok 10300, Thailand. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form without prior permission from the Office of Science and Technology, Royal Thai Embassy, Brussels, Belgium (info@thaiscience.eu).
© 2020 Office of Science and Technology, Royal Thai Embassy, Brussels, Belgium. All rights reserved.


My name is Emily Bresnahan and I am a 22 year old senior who attends Babson College. For the past two years I have played on the Division III Women's Lacrosse team and this year we won the NEWMAC Championship. Before transfering to Babson College I played Division I Women's Lacrosse at the University of Colorado.  Thank you for visiting my website and I hope it shows you how meaningful a sport can be to someone!


Modules
Control SDK
Collaboration diagram for Control SDK:
Modules
Attribute Environment
Ihandle Class
List of Dialogs
Keyboard Focus
Key Coding and Key Callbacks
Ihandle Object
Class Registration
Detailed Description
Control Creation Guide
Generated on Sat Jan 5 2019 18:36:15 for SDK by
1.7.1


E-Learning
Welcome,
username
Upload Material
×
Title
*
Brief Summary
*
Select Type
*
Select Type
Book
Video
Image
Upload File


uadmin 0.1.0-a.1 documentation
previous
|
next
|
index
Table of Contents
¶
Contents:
Getting Started
Roadmap
Version 0.1.0 (2018-12-25)
Version 0.2.0 (2019-12-25)
License
Table of Contents
Table of Contents
Getting Started
Roadmap
License
Search


Youth are faced by many problems.Some of them include lack of employment.It is a problem facing many of the youths in kenya.
Creating co-curriculum activities which the youth may specialise in leading to careers.
Creating more technical institutions which may absorb high school dropouts and those unable to qualify to university.
Conducting seminars and training sessions of some activities to the youth eg web design.
Government creating job opportunities which the youth are good at eg entertainment.


|
Standard Reference Data Program |
Data Gateway |
Chemistry WebBook |
|
NIST subscription sites provide data under the NIST Standard Reference Data Program, but require an annual fee to access. The purpose of the fee is to recover costs associated with the development of data collections included in such sites. Your institution may already be a subscriber. Follow the links above to find out more about the data in these sites and their terms of usage.
Go To: Top, Constants of diatomic molecules, References, Notes / Error Report
Data compilation copyright by the U.S. Secretary of Commerce on behalf of the U.S.A. All rights reserved.
Data evaluated as indicated in comments:
HL - E.P. Hunter and S.G. Lias
L - S.G. Lias
Data compiled as indicated in comments:
LBLHLM - S.G. Lias, J.E. Bartmess, J.F. Liebman, J.L. Holmes, R.D. Levin, and W.G. Mallard
LLK - S.G. Lias, R.D. Levin, and S.A. Kafafi
RDSH - H.M. Rosenstock, K. Draxl, B.W. Steiner, and J.T. Herron
LL - S.G. Lias and J.F. Liebman
B - J.E. Bartmess
View reactions leading to F2+ (ion structure unspecified)
| Quantity | Value | Units | Method | Reference | Comment |
|---|---|---|---|---|---|
| IE (evaluated) | 15.697 ± 0.003 | eV | N/A | N/A | L |
| Quantity | Value | Units | Method | Reference | Comment |
| Proton affinity (review) | 332. | kJ/mol | N/A | Hunter and Lias, 1998 | HL |
| Quantity | Value | Units | Method | Reference | Comment |
| Gas basicity | 305.5 | kJ/mol | N/A | Hunter and Lias, 1998 | HL |
| EA (eV) | Method | Reference | Comment |
|---|---|---|---|
| 3.005 ± 0.071 | R-A | Wenthold and Squires, 1995 | EA fixed at 0K value, not 298K of heat of formation; B |
| 3.120 ± 0.070 | CIDC | Artau, Nizzi, et al., 2000 | B |
| 3.08 | ECD | Ayala, Wentworth, et al., 1981 | Vertical Detachment Energy: 1.24 eV; B |
| 2.94 ± 0.20 | EIAE | Harland and Franklin, 1974 | From NF3; B |
| 3.1656 | EIAE | Wang and Franklin, 1980 | From SO2F2; B |
| >2.80 ± 0.30 | EIAE | Thynne, 1972 | From CF2O; B |
| 3.08 ± 0.10 | Endo | Chupka, Berkowitz, et al., 1971 | B |
| 2.90 ± 0.22 | EIAE | DeCorpo and Franklin, 1971 | From BF3; B |
| >3. | EIAE | Reese, Dibeter, et al., 1958 | From SO2F2; B |
| IE (eV) | Method | Reference | Comment |
|---|---|---|---|
| 15.697 ± 0.003 | PE | Van Lonkhuyzen and De Lange, 1984 | LBLHLM |
| 15.70 | PE | Bieri, Schmelzer, et al., 1980 | LLK |
| 15.694 | TE | Guyon, Spohr, et al., 1976 | LLK |
| 15.70 ± 0.02 | S | Gole and Margrave, 1972 | LLK |
| 15.70 ± 0.01 | PE | Potts and Price, 1971 | LLK |
| 15.70 | PE | Cornford, Frost, et al., 1971 | LLK |
| 15.74 | PE | Cornford, Frost, et al., 1971 | LLK |
| 15.686 ± 0.006 | PI | Berkowitz, Chupka, et al., 1971 | LLK |
| 15.70 | PE | Anderson, Mamantov, et al., 1971 | LLK |
| 15.69 ± 0.01 | PI | Dibeler, Walker, et al., 1969 | RDSH |
| 15.7 | S | Iczkowski and Margrave, 1959 | RDSH |
| 15.70 | PE | Dyke, Josland, et al., 1984 | Vertical value; LBLHLM |
| Ion | AE (eV) | Other Products | Method | Reference | Comment |
|---|---|---|---|---|---|
| F+ | 15.2 | F- | EI | Veljkovic, Neskovic, et al., 1992 | LL |
| F+ | 19.008 | F | PI | Berkowitz and Wahl, 1973 | LLK |
| F+ | 15.6 | F- | PI | Berkowitz, Chupka, et al., 1971 | LLK |
| F+ | 19.008 | F | PI | Berkowitz, Chupka, et al., 1971, 2 | LLK |
| F+ | 15.48 | F- | PI | Dibeler, Walker, et al., 1969 | RDSH |
Go To: Top, Gas phase ion energetics data, References, Notes / Error Report
Data compilation copyright by the U.S. Secretary of Commerce on behalf of the U.S.A. All rights reserved.
Data compiled by: K.P. Huber and G. Herzberg
| State | Te | ωe | ωexe | ωeye | Be | αe | γe | De | βe | re | Trans. | ν00 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Many strong absorption bands observed and partially analyzed up to 126000 cm-1, heavily perturbed and not assigned. 1 | ||||||||||||
| missing citation | ||||||||||||
| K 1Πu | [1.040] 2 | 3 | [1.306] | K ← X V | 11655.72 Z | |||||||
| Gole and Margrave, 1972; missing citation | ||||||||||||
| J 1Πu (4p σ) | 116409 | [1032.6] Z | [1.041] | 3 | [1.306] | J ← X V | 116469.4 Z | |||||
| missing citation | ||||||||||||
| I 1Σu+ (4p π) | 113841 | [1108.92] Z | 4 | [0.8009] | 5 | [1.8E-6] 6 | 1.4886 | I → f R | 17081.6 $I H | |||
| missing citation; Stricker and Krauss, 1968; Colbourn, Dagenais, et al., 1976 | ||||||||||||
| I → F R | 20732 7 H | |||||||||||
| missing citation; Stricker and Krauss, 1968; Colbourn, Dagenais, et al., 1976 | ||||||||||||
| I ↔ X 8 R | 113940.24 Z | |||||||||||
| di Lonardo and Douglas, 1972; Gole and Margrave, 1972; missing citation | ||||||||||||
| State | Te | ωe | ωexe | ωeye | Be | αe | γe | De | βe | re | Trans. | ν00 |
| H 1Πu (3pσ) | 105520.14 | 1088.19 Z | 9.875 | 1.021 9 | 0.014 | 1.318 | H ← X V | 105606.27 Z | ||||
| Gole and Margrave, 1972; Colbourn, Dagenais, et al., 1976 | ||||||||||||
| h 3Π1u (3pσ) | (104904) | (1100) 10 | 1.022 11 | 0.016 | 1.318 | h ← X V | 104998.7 Z | |||||
| Colbourn, Dagenais, et al., 1976 | ||||||||||||
| G 1Σu+ (3pπ) | (104300) 12 | |||||||||||
| Colbourn, Dagenais, et al., 1976 | ||||||||||||
| E (1Σu+) | ≤100912 | [196.3] 13 Z | (0.96) | [0.194] 13 | [3.02] 13 | E ← X R | 100555.5 13 Z | |||||
| missing citation | ||||||||||||
| State | Te | ωe | ωexe | ωeye | Be | αe | γe | De | βe | re | Trans. | ν00 |
| D (1Σu+) | ≤98756 | [221.6] 13 Z | (1.22) | [0.207] 13 | [2.93] 13 | D ← X R | 98411.9 13 Z | |||||
| missing citation | ||||||||||||
| f (3Π1g) (3sσ) | [97314] 14 | 14 | [1.005] 14 | [1.329] 14 | ||||||||
| C 1Σu+ | ≤93499 | [493.2] 15 Z | [0.484] 15 | [1.915] 15 | C ↔ X R | 93290.4 15 Z | ||||||
| missing citation | ||||||||||||
| F 1Πg (3sσ) | 93099 | 1133.34 16 H | 9.173 | 1.047 16 | 0.012 | 1.302 | ||||||
| A 1Πu 17 | A ← X | |||||||||||
| Steunenberg and Vogel, 1956; Rees, 1957 | ||||||||||||
| State | Te | ωe | ωexe | ωeye | Be | αe | γe | De | βe | re | Trans. | ν00 |
| a 3Π0+u 19 | a ← X 18 | |||||||||||
| Steunenberg and Vogel, 1956; Rees, 1957 | ||||||||||||
| X 1Σg+ | 0 | 916.64 Z | 11.236 20 | -0.113 | 0.89019 | 0.013847 21 | 3.3E-6 | 1.41193 22 | ||||
| Andrychuk, 1951; Claassen, Selig, et al., 1969; Stricker and Hochenbleicher, 1973; Edwards, Good, et al., 1976 | ||||||||||||
| Mol. beam magn. reson. 23 | ||||||||||||
| Ozier, Crapo, et al., 1964 | ||||||||||||
| Ab initio calc. | ||||||||||||
| Das and Wahl, 1972 |
| 1 | The assignments to two Rydberg series by Gole and Margrave, 1972 are questioned by Colbourn, Dagenais, et al., 1976. |
| 2 | BQ; BPR = 1.034. |
| 3 | B2 = 0.9916. |
| 4 | ΔG(3/2)=754.06, ΔG(5/2)=553.78, ΔG(7/2)=733.01; strongly perturbed, not certain whether one or two electronic states are involved. |
| 5 | B1= 0.8129, B2= 0.8980, B3= 0.8946, B4= 0.891; see 4. |
| 6 | Dv(v=1...4, E-6 cm-1) = 4.0, 14.0, -2.6, -50.0 |
| 7 | v" uncertain, see 16. |
| 8 | Four of the strongest absorption bands; in emission only bands with v=0 and 1 and very weakly v=2. |
| 9 | From Q branches, BQ - BPR ~ +0.004. v' = 0,1,2,3 analyzed, a weak and highly perturbed band at 911 (109770 cm-1) may be 4-0. |
| 10 | Estimated from the 0-0 and 2-0 (v0= 107069.4) bands. |
| 11 | From Q branches; BQ - BPR = +0.005. v=0 strongly perturbed. |
| 12 | Infrared from strong perturbation of the higher vibrational levels of C 1Σu+. |
| 13 | (Deperturbed) constants determined from the lowest observed levels; vibrational numbering unknown. Only those levels which interact strongly with C 1Σu+ have been found in absorption. It is possible that D and E are not two independent states. |
| 14 | From I →f Porter, 1968; vibrational numbering unknown. The assignments of Stricker and Krauss, 1968 suggest the existence of additional levels at 1058 below and 1044 cm-1 above the single level reported by Porter, 1968. |
| 15 | Constants for the lowest observed level, vibrational numbering unknown (v=n). In absorption levels up to v = n+30 have been observed. Numerous perturbations by levels of D and E (interaction matrix elements ~ 10 cm-1); a much stronger interaction with G affects levels having v «gte» n+25. For details see Table 5 of Colbourn, Dagenais, et al., 1976. |
| 16 | Vibrational numbering uncertain. Extensive perturbations. Strong predissociation leading to line broadening in I→F bands having v" = 1,2,4,5,6,8; bands with v"= 3,7 are sharp. |
| 17 | Continuous absorption with maximum at 35000 cm-1. |
| 18 | The existence of the a ←X absorption becomes clear only after subtraction of the much stronger effect of the A←X absorption from the observed absorption intensities Rees, 1957. It is generally assumed that the 3Π0+u state has a minimum but no discrete absorption or emission has been observed, see Nathans, 1950. Child and Bernstein, 1973 predict a dissociation energy De= 3300 cm-1 and re= 1.9 for this state. |
| 19 | Continuous absorption with maximum at 25500 cm-1. |
| 20 | These constants represent only the lowest nine levels (i.e. v≤8) Colbourn, Dagenais, et al., 1976. Levels have been observed up to v=22; this last level lies only 90 cm-1 below the extrapolated limit. |
| 21 | +0.0001179(v+1/2)2 - 0.0000203(v+1/2)3, representing B0....B12. |
| 22 | Raman sp. |
| 23 | Rotational gyromagnetic ratio gJ = -0.1208 μN (nuclear) spin-rotation and spin- spin interaction constants c = -157.3 kHz, d = 8.0 kHz. |
| 24 | From the observed vibrational levels of the ground state Colbourn, Dagenais, et al., 1976; the highest observed level (presumably the last stable level) is at 12830.38 cm-1. Shock tube experiments of Blauer and Solomon, 1972 give the same value within ±0.05 eV; see also the earlier work of Barrow and Caunt, 1953, Stamper and Barrow, 1958, DeCorpo, Steiger, et al., 1970. |
| 25 | From photoionization Berkowitz, Chupka, et al., 1971. Photoelectron spectra Cornford, Frost, et al., 1971 give 15.70 eV. |
| 26 | The lower state vibrational numbering of this band is unknown, see 14. |
Go To: Top, Gas phase ion energetics data, Constants of diatomic molecules, Notes / Error Report
Data compilation copyright by the U.S. Secretary of Commerce on behalf of the U.S.A. All rights reserved.
Hunter and Lias, 1998
Hunter, E.P.; Lias, S.G.,
Evaluated Gas Phase Basicities and Proton Affinities of Molecules: An Update,
J. Phys. Chem. Ref. Data, 1998, 27, 3, 413-656. [doi:10.1063/1.556018]
[all data]
Wenthold and Squires, 1995
Wenthold, P.G.; Squires, R.R.,
Bond dissociation energies of F2(-) and HF2(-). A gas-phase experimental and G2 theoretical study,
J. Phys. Chem., 1995, 99, 2002. [all data]
Artau, Nizzi, et al., 2000
Artau, A.; Nizzi, K.E.; Hill, B.T.; Sunderlin, L.S.; Wenthold, P.G.,
Bond dissociation energy in trifluoride ion,
J. Am. Chem. Soc., 2000, 122, 10667-10670. [all data]
Ayala, Wentworth, et al., 1981
Ayala, J.A.; Wentworth, W.E.; Chen, E.C.M.,
Electron attachment to halogens,
J. Phys. Chem., 1981, 85, 768. [all data]
Harland and Franklin, 1974
Harland, P.W.; Franklin, J.L.,
Partitioning of excess energy in dissociative resonance capture processes,
J. Chem. Phys., 1974, 61, 1621. [all data]
Wang and Franklin, 1980
Wang, J.-S.; Franklin, J.L.,
Reactions and energy distributions in dissociative electron capture processes in sulfuryl halides,
Int. J. Mass Spectrom. Ion Phys., 1980, 36, 233. [all data]
Thynne, 1972
Thynne, J.C.J.,
Negative Ion Studies with a Time-of-Flight Mass Spectrometer.,
Dyn. Mass Spectrom., 1972, 3, 67. [all data]
Chupka, Berkowitz, et al., 1971
Chupka, W.A.; Berkowitz, J.; Gutman, D.,
Electron Affinities of Halogen Diatomic Molecules as Determined by Endoergic Charge Exchange,
J. Chem. Phys., 1971, 55, 2724. [all data]
DeCorpo and Franklin, 1971
DeCorpo, J.J.; Franklin, J.L.,
Electron affinities of the halogen molecules by dissociative electron attachment,
J. Chem. Phys., 1971, 54, 1885. [all data]
Reese, Dibeter, et al., 1958
Reese, R.M.; Dibeter, V.H.; Franklin, J.L.,
Electron impact studies of sulfur dioxide and sulfuryl fluoride,
J. Chem. Phys., 1958, 29, 880. [all data]
Van Lonkhuyzen and De Lange, 1984
Van Lonkhuyzen, H.; De Lange, C.A.,
High-resolution UV photoelectron spectroscopy of diatomic halogens,
Chem. Phys., 1984, 89, 313. [all data]
Bieri, Schmelzer, et al., 1980
Bieri, G.; Schmelzer, A.; Asbrink, L.; Jonsson, M.,
Fluorine and the fluoroderivatives of acetylene and diacetylene studied by 30.4 nm He(II) photoelectron spectroscopy,
Chem. Phys., 1980, 49, 213. [all data]
Guyon, Spohr, et al., 1976
Guyon, P.-M.; Spohr, R.; Chupka, W.A.; Berkowitz, J.,
Threshold photoelectron spectra of HF, DF, F2,
J. Chem. Phys., 1976, 65, 1650. [all data]
Gole and Margrave, 1972
Gole, J.L.; Margrave, J.L.,
The vacuum ultraviolet spectrum of molecular fluorine,
J. Mol. Spectrosc., 1972, 43, 65. [all data]
Potts and Price, 1971
Potts, A.W.; Price, W.C.,
Photoelectron spectra of the halogens and mixed halides ICI and lBr,
J. Chem. Soc. Faraday Trans., 1971, 67, 1242. [all data]
Cornford, Frost, et al., 1971
Cornford, A.B.; Frost, D.C.; McDowell, C.A.; Ragle, J.L.; Stenhouse, I.A.,
Photoelectron spectra of the halogens,
J. Chem. Phys., 1971, 54, 2651. [all data]
Berkowitz, Chupka, et al., 1971
Berkowitz, J.; Chupka, W.A.; Guyon, P.M.; Holloway, J.H.; Spohr, R.,
Photoionization mass spectrometric study of F2, HF, and DF,
J. Chem. Phys., 1971, 54, 5165. [all data]
Anderson, Mamantov, et al., 1971
Anderson, C.P.; Mamantov, G.; Bull, W.E.; Grimm, F.A.; Carver, J.C.; Carlson, T.A.,
Photoelectron spectrum of chlorine monofluoride,
Chem. Phys. Lett., 1971, 12, 137. [all data]
Dibeler, Walker, et al., 1969
Dibeler, V.H.; Walker, J.A.; McCulloh, K.E.,
Dissociation energy of fluorine,
J. Chem. Phys., 1969, 50, 4592. [all data]
Iczkowski and Margrave, 1959
Iczkowski, R.P.; Margrave, J.L.,
Absorption spectrum of fluorine in the vacuum ultraviolet,
J. Chem. Phys., 1959, 30, 403. [all data]
Dyke, Josland, et al., 1984
Dyke, J.M.; Josland, G.D.; Snijders, J.G.; Boerrigter, P.M.,
Ionization energies of the diatomic halogens and interhalogens studied with relativistic hartree-fock-slater calculations,
Chem. Phys., 1984, 91, 419. [all data]
Veljkovic, Neskovic, et al., 1992
Veljkovic, M.V.; Neskovic, O.M.; Zmbov, K.F.,
Mass spectrometric study of the thermal decomposition of F2,
J. Serb. Chem. Soc., 1992, 57, 753. [all data]
Berkowitz and Wahl, 1973
Berkowitz, J.; Wahl, A.C.,
The dissociation energy of fluorine,
Adv. Fluorine Chem., 1973, 7, 147. [all data]
Berkowitz, Chupka, et al., 1971, 2
Berkowitz, J.; Chupka, W.A.; Guyon, P.M.; Holloway, J.; Spohr, R.,
Photo-ionization studies of F2, HF, DF, and the xenon fluorides,
Advan. Mass Spectrom., 1971, 5, 112. [all data]
Stricker and Krauss, 1968
Stricker, W.; Krauss, L.,
Die Bestimmung der Dissoziationsenergie des F2-Molekuls und ein Beitrag zu seinem Bandenspektrum,
Z. Naturforsch. A, 1968, 23, 486. [all data]
Colbourn, Dagenais, et al., 1976
Colbourn, E.A.; Dagenais, M.; Douglas, A.E.; Raymonda, J.W.,
The electronic spectrum of F2,
Can. J. Phys., 1976, 54, 1343. [all data]
di Lonardo and Douglas, 1972
di Lonardo, G.; Douglas, A.E.,
Electronic spectra of HF and F2,
J. Chem. Phys., 1972, 56, 5185. [all data]
Steunenberg and Vogel, 1956
Steunenberg, R.K.; Vogel, R.C.,
The absorption spectrum of fluorine,
J. Am. Chem. Soc., 1956, 78, 901. [all data]
Rees, 1957
Rees, A.L.G.,
Erratum: Electronic spectrum and dissociation energy of fluorine,
J. Chem. Phys., 1957, 27, 1424. [all data]
Andrychuk, 1951
Andrychuk, D.,
The Raman spectrum of fluorine,
Can. J. Phys., 1951, 29, 151. [all data]
Claassen, Selig, et al., 1969
Claassen, H.H.; Selig, H.; Shamir, J.,
Raman apparatus using laser excitation and polarization measurements. Rotational spectrum of fluorine,
Appl. Spectrosc., 1969, 23, 8. [all data]
Stricker and Hochenbleicher, 1973
Stricker, W.; Hochenbleicher, J.G.,
Das lasererregte Raman-Spektrum von gasformigem Fluor,
Z. Naturforsch. A, 1973, 28, 27. [all data]
Edwards, Good, et al., 1976
Edwards, H.G.M.; Good, E.A.M.; Long, D.A.,
Pure rotational Raman spectrum of fluorine,
J. Chem. Soc. Faraday Trans. 2, 1976, 72, 984-987. [all data]
Ozier, Crapo, et al., 1964
Ozier, I.; Crapo, L.M.; Cederberg, J.W.; Ramsey, N.F.,
Nuclear interactions and rotational moment of F2,
Phys. Rev. Lett., 1964, 13, 482. [all data]
Das and Wahl, 1972
Das, G.; Wahl, A.C.,
Theoretical study of the F2 molecule using the method of optimized valence configurations,
J. Chem. Phys., 1972, 56, 3532. [all data]
Porter, 1968
Porter, T.L.,
Emission spectrum of molecular fluorine,
J. Chem. Phys., 1968, 48, 2071. [all data]
Nathans, 1950
Nathans, M.W.,
The absorption spectrum and the dissociation energy of fluorine,
J. Chem. Phys., 1950, 18, 1122. [all data]
Child and Bernstein, 1973
Child, M.S.; Bernstein, R.B.,
Diatomic interhalogens: systematics and implications of spectroscopic interatomic potentials and curve crossings,
J. Chem. Phys., 1973, 59, 5916. [all data]
Blauer and Solomon, 1972
Blauer, J.; Solomon, W.,
Shock tube calorimeter for the dissociation energy of fluorine,
J. Chem. Phys., 1972, 57, 3587. [all data]
Barrow and Caunt, 1953
Barrow, R.F.; Caunt, A.D.,
The ultra-violet absorption spectra of some gaseous alkali-metal halides and the dissociation energy of fluorine,
Proc. R. Soc. London A, 1953, 219, 120. [all data]
Stamper and Barrow, 1958
Stamper, J.G.; Barrow, R.F.,
The dissociation energy of fluorine,
Trans. Faraday Soc., 1958, 54, 1592. [all data]
DeCorpo, Steiger, et al., 1970
DeCorpo, J.J.; Steiger, R.P.; Franklin, J.L.; Margrave, J.L.,
Dissociation energy of F2,
J. Chem. Phys., 1970, 53, 936. [all data]
Go To: Top, Gas phase ion energetics data, Constants of diatomic molecules, References
| AE | Appearance energy |
| EA | Electron affinity |
| IE (evaluated) | Recommended ionization energy |
Copyright for NIST Standard Reference Data is governed by the Standard Reference Data Act.
|
Standard Reference Data Program |
Data Gateway |
Chemistry WebBook |
If you have comments or questions about this site, please contact us.


SweetFreeStuff.com
///////////////////////////////////////////
Free California Closets Sample Kit
Posted: 24 Jan 2015 10:51 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free California Closets Sample Kit
The post Free California Closets Sample Kit appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free 2015 T Bar M Camps Calendar
Posted: 24 Jan 2015 10:50 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free 2015 T Bar M Camps Calendar
The post Free 2015 T Bar M Camps Calendar appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Stuff at Staples
Posted: 24 Jan 2015 10:49 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Use code: 57067 to get $7 off. Reward members also get free shipping. You
must add $7 to your cart for the promo to work. Free Stuff at Staples
The post Free Stuff at Staples appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free 2015 Brattleboro Retreat Calendar
Posted: 24 Jan 2015 10:45 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Select quantity and complete the form. Free 2015 Brattleboro Retreat
Calendar
The post Free 2015 Brattleboro Retreat Calendar appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free AVT Bike Stickers
Posted: 24 Jan 2015 06:55 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free AVT Bike Stickers
The post Free AVT Bike Stickers appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free We Are Yoga Sticker
Posted: 24 Jan 2015 06:53 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free We Are Yoga Sticker
The post Free We Are Yoga Sticker appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Earn Cash and Prizes for Scanning your Purchases - NCP
Posted: 24 Jan 2015 01:00 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Earn Free Cash and Prizes from National Consumer Panel Click Here to Sign
up! As a panel member, the National Consumer Panel will provide you with a
hand-held scanner. Every time you or members of your household shop, youll
use the scanner to scan the barcodes on all of your purchases. Then, once a
[]
The post Earn Cash and Prizes for Scanning your Purchases NCP appeared
first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Meta Health Bar Sample
Posted: 23 Jan 2015 11:00 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free Meta Health Bar Sample
The post Free Meta Health Bar Sample appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Diabetic Recipe Book
Posted: 23 Jan 2015 10:00 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free Diabetic Recipe Book
The post Free Diabetic Recipe Book appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Samples of Schwarzkopf essense Ultme Omega Repair & Moisture Shampoo &
Conditioner
Posted: 23 Jan 2015 04:31 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Fill out the form to receive free shampoo and conditioner samples plus a $2
off coupon. Free Samples of Schwarzkopf essense Ultîme Omega Repair
Moisture Shampoo Conditioner
The post Free Samples of Schwarzkopf essense Ultîme Omega Repair Moisture
Shampoo Conditioner appeared first on SweetFreeStuff.com.


|
Uncreative Studios
|
Public Member Functions | |
| constructor | MainMenu (Game game) |
| void | render (float delta) |
| void | dispose () |
| void | hide () |
| void | newGame () |
| Public Member Functions inherited from screens.PirateScreen | |
| constructor | PirateScreen (Game game) |
| void | show () |
| void | render (float delta) |
| void | resize (int width, int height) |
| void | pause () |
| void | resume () |
| void | hide () |
| void | dispose () |
Public Attributes | |
| final Sound | ping = Gdx.audio.newSound(Gdx.files.internal("Ping.mp3")) |
Private Attributes | |
| Image | background |
| TextureRegionDrawable | button |
| TextureRegionDrawable | t_volume |
| Stage | stage |
| TextButton | b_newGame |
| TextButton.TextButtonStyle | b_newGameStyle |
| TextButton | b_volume |
| TextButton.TextButtonStyle | b_volumeStyle |
| TextButton | b_quit |
| TextButton.TextButtonStyle | b_quitStyle |
| BitmapFont | font = super.font |
| Label | title |
| Label.LabelStyle | titleStyle |
Proceeds the splash screen. Allows the player to start a game, modify the volume or quit the game.
Extends class PirateScreen.
| void screens.MainMenu.dispose | ( | ) |
Destroys main menu window.
| void screens.MainMenu.hide | ( | ) |
Hides main menu window, called when a button on the main menu is pressed.
| void screens.MainMenu.newGame | ( | ) |
Starts a new game.
| void screens.MainMenu.render | ( | float | delta | ) |
Draws the main menu over screen.
| delta | Render time between frames. |
|
private |
Button to start new game
|
private |
Quits game, returns user to desktop.
|
private |
Allows user to modify game volume level.
|
private |
Game title.


Yet another lesson on undefined behavior
Recently I have started a completely new project: a framework for benchmarking linear algebra code in C++, including an interfacing for the most popular Expression Templates and Smart ET libraries, such as Eigen, Blaze or Armadillo. Setting up was quite usual: write CMake build scripts, install external libraries and implement basic benchmarking to verify if my approach does not introduce a measurable overhead. The first example has been finished, built, run… and a segfault. Run again, works fine. One more try, a segfault again. Quick check with Valgrind which suggests operation on uninitialised values in a destructor, a lot of playing with code to see if I may be overwriting some parts of memory and finally I find the problem here:
template<typename Duration, typename F, typename... Args>
static auto call(basic_benchmarker<Duration> & b, F && f,
Args &&... args) -> std::result_of_t<F(Args...)>
{
f(std::forward<Args>(args)...);
}
This is a part of helper class using SFINAE to call benchmarked function properly, not knowing if it takes an additional argument allowing to access benchmarker and define clocks inside. It should be quite obvious why my code has been failing: a missing return statement. I did not enable warnings in CMake scripts and somewhere deep in my brain was a thought that “missing return is not important as long as the returned value is ignored”. I couldn’t be more wrong. In fact, it is a perfect example of an undefined behaviour in C++.
To find out why I have been so convinced that my code is safe, I took a look at different C and C++ standards. It is not easy to find drafts of older standards, although StackOverflow is helpful one more time. Links to pdfs or web versions of drafts are posted in each section; as far as I know none of ISO standards can be found on the Internet for free (legally!).
C89/C90
Draft of the ISO 9899 standard.
We find relevant definitions in section <IP_ADDRESS>:
Constraints A return statement with an expression shall not appear in a function whose return type is void. Semantics […] If a return statement without an expression is executed, and the value of the function call is used by the caller, the behavior is undefined. Reaching the } that terminates a function is equivalent to executing a return statement without an expression.
And here it is! Either an empty return statement, usually applied as exiting from a void function, or no return statement is permitted in a non-void function. However, using the value returned from that function is an undefined behaviour. It seems that my knowledge on return statements does indicate an influence of good old C. Examples below are perfectly fine in C89
int foo()
{
return;
}
int bar()
{}
foo();
bar();
// this would be UB
// int x = foo();
C99
N1256, draft of ISO 9899:1999 with three technical corrigendums. PDF
Now description of return statement is placed in paragraph <IP_ADDRESS>:
Constraints
1 A return statement with an expression shall not appear in a function whose return type is void. A return statement without an expression shall only appear in a function whose return type is void.
An empty return statement is no longer permitted in a non-void function. But how the program behaves when there is no return from a non-void function? This explanation has been moved to paragraph 6.9.1/12 describing functions:
If the } that terminates a function is reached, and the value of the function call is used by the caller, the behavior is undefined.
Nothing has changed here semantically and it is still legal to not return a value from a function. The example from previous section becomes smaller:
int bar()
{}
bar();
// this would be UB
// int x = foo();
C11
N1570, draft of ISO ISO 9899:2011. PDF HTML
Same as above. It seems that idea behind my code is perfectly fine in C but what about C++?
C++98/C++03/C++11/C++14
There is a great SO answer keeping up to date a list of all drafts. It seems that all standards have the same semantics although the wording is different; later it is specified that these rules do not apply for the main function.
Paragraph 6.6.3 defines return statements:
A return statement without an expression can be used only in functions that do not return a value, that is, a function with the return type void, a constructor (12.1), or a destructor (12.4).
C++ has introduced the concept of complex user-defined types with constructors and destructors. Not only they create a special type of functions but also indicate a potential problem with C approach to functions not returning a value. As long as we have been returning fundamental types or simple structures, there was no problem with destroying data allocated for the value returned from a function. What happens if cleaning requires calling a destructor? Standard has a very simple solution for that:
Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function.
I have to admit that as a not native English speaker I had to ask other people for clarification here, I have never heard before the verb “to flow off” in this context and I was not quite sure what it is supposed to mean. In C++ it is prohibited to not return a value from a non-void function, even when it is ignored by the caller. Each such attempt is an undefined behaviour. Does it mean that non-void functions with no return statements are prohibited as well? No! We do not have to always return a value:
// this is legal
int foo()
{
std::terminate();
}
//still good
std::vector<int> bar()
{
throw std::runtime_error();
}
// this is undefined behaviour
float bad_function(bool flag)
{
if(flag)
return 1.0f;
}
bad_function(false);
What may have been happening in my code?
To understand what GCC may have been doing with my obviously incorrect code, I used Compiler Explorer, an online tool allowing to compare C++ code with generated assembly by displaying matching sections in the same colour. I have simplified the problem to a function which is supposed to return one of the most common STL types.


Hospital Management & Information System
PRESCRIPTION SLIP INVOICE
Invoice : INV-
Date :
| Patient NID: |
| Patient Name: |
| Patient Age: |
| Patient Gender: |
| Patient Address: |
| Temperature: |
| Weight: |
| B.P: |
Patient Diagnosis
Patient Medicine
| # | Problem | Duration |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 |
| # | Medicine | Dose | Duration |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
Patient Test
| # | Test Name |
|---|---|
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 |
Doctor Name:


HOME
First Grade
Second Grade
Third Grade
Credits
Third Grade
Book´s Collection
Our family to do list
Unit 1
Families celebrate together
Unit 2
May I help you?
Unit 3
Getting around town
Unit 4
Fun places and spaces
Unit 5
Welcome to Costa Rica
Unit 6


Schools Shut in Lahore as City Chokes in Toxic Smog
The Punjab state government has already ordered the closure of thousands of primitive brick kilns.
by ReutersSchools across Pakistan’s second largest city Lahore closed for the second time in a month on Friday, with the city blanketed in a toxic smog that experts say is putting residents at risk.
Every November, a combination of industrial pollution, burning waste and farm fires in neighboring India fouls the air in Pakistan’s cultural capital, making it one of the world’s most polluted cities.
The Punjab state government has already ordered the closure of thousands of primitive brick kilns that dot the state in order to ease pollution.
But on Friday the Air Quality Index from a monitoring station at the United States’ consulate hit a year-high 451 out of a possible 500, a level considered “hazardous” and where even healthy people are advised to stay indoors.
Punjab Education Minister Murad Raas told Reuters the government was taking necessary measures, including the school holiday. Rights group Amnesty International, however, called the government’s response inadequate, saying Pakistani authorities were playing down the crisis.
According to a 2015 report published by the medical journal Lancet, nearly 22 percent of annual deaths in Pakistan – or more than 310,000 each year - are caused by pollution, most due to air contamination.
“I am personally suffering an eye infection and skin allergies due to smog,” said Zainab Khan, a university student in the city of more than 11 million.
“My classmates also suffered bronchitis, lung infections and other smog related diseases. The government must show seriousness to resolve this problem.”
Sahibzad Khan, Lahore’s chief meteorologist, told Reuters the smog will continue until mid-December.


Na Liu Studio.
Painting
2017
2018
The Runaway Comma (C+W+P)
1, Apples Gather Together to Show Off
1, Blue Blue Ant
No Number, Right Ear Without Wonder
Object
2018
Fancy Restaurant, Chapter One: #Fruit Platter
2017
(Sweet Nonsense]
2016
Portfolio Set
Collage
2017
Silver Universe
No, Star
Fashion
2015
London Collections Men: 15
CV
Contact
{{{content}}}


Wouldn't it be nice if you could cool down a product just has fast as you can heat it in a microwave?


The charming adventures of an analyst and his solver.
Formulation and aspects of the Uncapacitated Lot Sizing problem in Integer Programming.
Uncapacitated Lot Sizing (ULS) is a classic OR problem that seeks to minimize the cost of satisfying known demand for a product over time. Demand is subject to varying costs for production, set-up, and storage of the product. Technically, it is a mixed binary integer linear program -- the key point separating it from the world of linear optimization being that production cannot occur during any period without paying that period's fixed costs for set-up. Thus it has linear nonnegative variables for production and storage amounts during each period, and a binary variable for each period that determines whether or not production can actually occur.
For $n$ periods with per-period fixed set-up cost $f_t$, unit production cost $p_t$, unit storage cost $h_t$,and demand $d_t$, we define decision variables related to production and storage quantities:
One can minimize overall cost for satisfying all demand on time using the following model per Wolsey (1998), defined slightly differently here:
| $\min$ | $z = \sum_t{p_t x_t} + \sum_t{h_t s_t} + \sum_t{f_t y_t}$ | |||
| s.t. | $s_1$ | $=$ | $d_1 + s_1$ | |
| $s_{t-1} + x_t$ | $=$ | $d_t + s_t$ | $\forall t > 1$ | |
| $x_t$ | $\leq$ | $M y_t$ | $\forall t$ | |
| $s_t, x_t$ | $\geq$ | $0$ | $\forall t$ | |
| $y_t$ | $\in$ | $\{0,1\}$ | $\forall t$ |
According to Wolsey, page 11, given that $s_t = \sum_{i=1}^t (x_i - d_i)$ and defining new constants $K = \sum_{t=1}^n h_t(\sum_{i=1}^t d_i)$ and $c_t = p_t + \sum_{i=t}^n h_i$, the objective function can be rewritten as $z = \sum_t c_t x_t + \sum _t f_t y_t - K$. The book lacks a proof of this and it seems a bit non-obvious, so I attempt an explanation in somewhat painstaking detail here.
| Proof: | ||
| $\sum_t p_t x_t + \sum_t h_t s_t + \sum_t f_t y_t$ | $=$ | $\sum_t c_t x_t + \sum _t f_t y_t - K$ |
| 1. Eliminate $\sum_t f_t y_t$: | ||
| $\sum_t p_t x_t + \sum_t h_t s_t$ | $=$ | $\sum_t c_t x_t - K$ |
| 2. Expand $K$ and $c_t$: | ||
| $\sum_t p_t x_t + \sum_t h_t s_t$ | $=$ | $\sum_t (p_t + \sum_{i=t}^n h_i) x_t - \sum_t h_t (\sum_{i=1}^t d_i)$ |
| 3. Eliminate $\sum_t p_t x_t$: | ||
| $\sum_t h_t s_t$ | $=$ | $\sum_t x_t (\sum_{i=t}^n h_i) - \sum_t h_t (\sum_{i=1}^t d_i)$ |
| 4. Expand $s_t$: | ||
| $\sum_t h_t (\sum_{i=1}^t x_i) - \sum_t h_t (\sum_{i=1}^t d_i)$ | $=$ | $\sum_t x_t (\sum_{i=t}^n h_i) - \sum_t h_t (\sum_{i=1}^t d_i)$ |
| 5. Eliminate $\sum_t h_t (\sum_{i=1}^t d_i)$: | ||
| $\sum_t h_t (\sum_{i=1}^t x_i)$ | $=$ | $\sum_t x_t (\sum_{i=t}^n h_i)$ |
The result from step 5 becomes obvious upon expanding its left and right-hand terms:
In matrix notation with $h$ and $x$ as column vectors in $\bf R^n$ and $L$ and $U$ being $n x n$ lower and upper triangular identity matrices, respectively, this can be written as:
or $h^T L x = x^T U h$.


Extract the subgraph that can reach any of the nodes in 'dest_nodes'. (deprecated)
tf.compat.v1.graph_util.extract_sub_graph( graph_def, dest_nodes )
Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future version.
Instructions for updating:
Use tf.compat.v1.graph_util.extract_sub_graph
graph_def
: A graph_pb2.GraphDef proto.dest_nodes
: A list of strings specifying the destination node names.The GraphDef of the sub-graph.
TypeError
: If 'graph_def' is not a graph_pb2.GraphDef proto.


Flexbox
What is flexbox?
CSS Flexible Box Layout Module
New layout mode,
flex layout
Designed for laying out more complex applications and webpages
Improves alignment of items, direction and order
Nice... but, who supports this magical stuff?
Known issues
Let's see some examples
Plunker
Snippets for VSC
Snippets
Useful links
W3C
MDN
Scotch io


Job Title
Description
Some quick example text to build on the card title and make up the bulk of the card's content.
Qualifications
Some quick example text to build on the card title and make up the bulk of the card's content.
Location
Company Name
Some quick example text to build on the card title and make up the bulk of the card's content.
Some quick example text to build on the card title and make up the bulk of the card's content.


Spring Boot with Angular Setup
17 June 2017
We were given the opportunity to replace an existing mobile app by a responsive website. Mobile apps are great but since we are paying a monthly subscription to third-party, we are better off building a responsive website supported in all platform. We have iOS and Android version of the app but having it build once then run on different platforms is an added benefit.
For this setup, we need springboot-cli
and ng-cli
. I won't detail how to have them installed but in my setup I used sdkman
for springboot-cli and npm
for ng-cli.
sping init
$ spring init --dependencies=web,h2,jpa,actuator,devtools mobile
Using service at https://start.spring.io
Project extracted to '/home/drmanalo/idea/mobile'
ng init
$ ng new --skip-git angular2
installing ng
create .editorconfig
create README.md
create src/app/app.component.css
create src/app/app.component.html
create src/app/app.component.spec.ts
create src/app/app.component.ts
create src/app/app.module.ts
create src/assets/.gitkeep
create src/environments/environment.prod.ts
create src/environments/environment.ts
create src/favicon.ico
create src/index.html
create src/main.ts
create src/polyfills.ts
create src/styles.css
create src/test.ts
create src/tsconfig.app.json
create src/tsconfig.spec.json
create src/typings.d.ts
create .angular-cli.json
create e2e/app.e2e-spec.ts
create e2e/app.po.ts
create e2e/tsconfig.e2e.json
create karma.conf.js
create package.json
create protractor.conf.js
create tsconfig.json
create tslint.json
Installing packages for tooling via npm.
Installed packages for tooling via npm.
Project 'angular2' successfully created.
Custom java configuration
Edit pom.xml
. Add this plugin to the existing <build><plugins>
.
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend-plugin.version}</version>
<configuration>
<workingDirectory>src/main/angular2</workingDirectory>
<nodeDownloadRoot>https://nodejs.org/dist/</nodeDownloadRoot>
<nodeVersion>${node.version}</nodeVersion>
<npmVersion>${npm.version}</npmVersion>
<installDirectory>target</installDirectory>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install</arguments>
<installDirectory>target</installDirectory>
</configuration>
</execution>
<execution>
<id>angular cli build</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
Custom angular configuration
Edit src/main/angular2/angular-cli.json
. Whenever you're building angular, its outDir
has to use ../resources/static/
as its target directory.
"apps": [
{
"root": "src",
"outDir": "../resources/static/",
"assets": [
"assets",
"favicon.ico"
],
Create a file called proxy.conf.json
inside src/main/angular2
folder. It should contain this proxy settings.
{
"/api": {
"target": "http://localhost:8082",
"secure": false
}
}
Edit src/main/angular2/package.json
. Modify the start script to use proxy.conf.json
every time.
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Running the application
To run Angular with live reload, issue ng serve
on src/main/angular2 folder where angular-cli.json
is.
To run Spring Boot (this doesn't support live reload yet), issue mvn spring-boot:run
on the root folder where pom.xml
is.


My name is Carlos
I am a Computer Engineer and a Technical Architect.
I am from Lanzarote, a lovely island that is part of the Canary Islands in Spain. I love to travel, play sports, meet with friends and eating.
After we came back to Spain, the opportunities to find a good job have not improved, so I decided to keep forming myself with another university degree at the same time I was working. This was the begining of my career as a Computer Engineer.
To this day I think this was the right decision, not only because of the jobs opportunities, but because it has fulfilled me as a professional.
Things I am good at (leastways I think I am):
Cooking
Sports
Bad jokes
The thing that I'm proud the most
I'm am happily married with my beautiful significant other, Saray.
She works in a public school as a teacher. I don't know if to be funny should be a requierement to become a school teacher, but if so she would be by far perfect for the job hehe.
We have been together since we were 16, so we have come a long way together. We went to England and have travelled a lot.
In 2017 we had a new addition to our family, our little daugther, Dayra, arrived.
Travel, Sports, Food... I don't know what to choose
As I mentioned before, I love to travel. I have already been in 13 countries.
My favorite kind of trip is the one that you have no restricted itinerary, you just take your backpack with you and move around the country staying more or less in each place depending whether you like it or not.
I have been in Europe, Asia and America. I will go to Africa and Oceania for sure.
One of the things that I enjoy the most when I am travelling is the food, and in particular the streed food.
I am a very active and sociable person. I love to meet with friends to barbacue or go for a hike.
I love to play any kind of sport. I think that I have not found any sport that I don't like to play.
If you want to find out more about me, keep reading the other sections.


Test-case
Implementation
Accessible Name
Chrome
Axe
AOM
BG
AccName
Category
HTML Used by Chrome
HTML Used by AccName
Input HTML snippet


Search
Preparing search index...
The search index is not available
manifesto
Options
All
Public
Public/Protected
All
Inherited
Externals
Only exported
Menu
Globals
"MultiSelectState"
MultiSelectState
Class MultiSelectState
Hierarchy
MultiSelectState
Index
Properties
canvases
is
Enabled
ranges
Methods
all
Canvases
Selected
all
Ranges
Selected
all
Selected
get
All
get
All
Selected
Canvases
get
All
Selected
Ranges
get
Canvas
ById
get
Canvases
ByIds
get
Range
Canvases
select
All
select
All
Canvases
select
All
Ranges
select
Canvas
select
Canvases
select
Range
select
Ranges
set
Enabled
Properties
canvases
canvases
:
MultiSelectableCanvas
[]
= []
is
Enabled
is
Enabled
:
boolean
= false
ranges
ranges
:
MultiSelectableRange
[]
= []
Methods
all
Canvases
Selected
all
Canvases
Selected
(
)
:
boolean
Returns
boolean
all
Ranges
Selected
all
Ranges
Selected
(
)
:
boolean
Returns
boolean
all
Selected
all
Selected
(
)
:
boolean
Returns
boolean
get
All
get
All
(
)
:
IMultiSelectable
[]
Returns
IMultiSelectable
[]
get
All
Selected
Canvases
get
All
Selected
Canvases
(
)
:
MultiSelectableCanvas
[]
Returns
MultiSelectableCanvas
[]
get
All
Selected
Ranges
get
All
Selected
Ranges
(
)
:
MultiSelectableRange
[]
Returns
MultiSelectableRange
[]
get
Canvas
ById
get
Canvas
ById
(
id
:
string
)
:
MultiSelectableCanvas
Parameters
id:
string
Returns
MultiSelectableCanvas
get
Canvases
ByIds
get
Canvases
ByIds
(
ids
:
string
[]
)
:
MultiSelectableCanvas
[]
Parameters
ids:
string
[]
Returns
MultiSelectableCanvas
[]
get
Range
Canvases
get
Range
Canvases
(
range
:
MultiSelectableRange
)
:
MultiSelectableCanvas
[]
Parameters
range:
MultiSelectableRange
Returns
MultiSelectableCanvas
[]
select
All
select
All
(
selected
:
boolean
)
:
void
Parameters
selected:
boolean
Returns
void
select
All
Canvases
select
All
Canvases
(
selected
:
boolean
)
:
void
Parameters
selected:
boolean
Returns
void
select
All
Ranges
select
All
Ranges
(
selected
:
boolean
)
:
void
Parameters
selected:
boolean
Returns
void
select
Canvas
select
Canvas
(
canvas
:
MultiSelectableCanvas
, selected
:
boolean
)
:
void
Parameters
canvas:
MultiSelectableCanvas
selected:
boolean
Returns
void
select
Canvases
select
Canvases
(
canvases
:
MultiSelectableCanvas
[]
, selected
:
boolean
)
:
void
Parameters
canvases:
MultiSelectableCanvas
[]
selected:
boolean
Returns
void
select
Range
select
Range
(
range
:
MultiSelectableRange
, selected
:
boolean
)
:
void
Parameters
range:
MultiSelectableRange
selected:
boolean
Returns
void
select
Ranges
select
Ranges
(
ranges
:
MultiSelectableRange
[]
, selected
:
boolean
)
:
void
Parameters
ranges:
MultiSelectableRange
[]
selected:
boolean
Returns
void
set
Enabled
set
Enabled
(
enabled
:
boolean
)
:
void
Parameters
enabled:
boolean
Returns
void
Globals
"
Annotation
Group"
"
Annotation
Rect"
"
Bootstrapper"
"
External
Resource"
"
Helper"
"ILabel
Value
Pair"
"IManifold
Options"
"IMetadata
Item"
"IMulti
Selectable"
"IThumb"
"
Metadata
Group"
"
Metadata
Options"
"
Multi
Select
State"
"
Multi
Selectable
Canvas"
"
Multi
Selectable
Range"
"
Multi
Selectable
Tree
Node"
"
Translation"
"
Tree
Sort
Type"
"
Uri
Labeller"
"index"
Multi
Select
State
canvases
is
Enabled
ranges
all
Canvases
Selected
all
Ranges
Selected
all
Selected
get
All
get
All
Selected
Canvases
get
All
Selected
Ranges
get
Canvas
ById
get
Canvases
ByIds
get
Range
Canvases
select
All
select
All
Canvases
select
All
Ranges
select
Canvas
select
Canvases
select
Range
select
Ranges
set
Enabled
Generated using
TypeDoc


--- title: "Requester window" slug: "requester-window" category: "experiments" description: "Sometimes to cool to load up my website on embedded devices and see what falls out of the browser" tags: - "experiments" - "hugo" - "meta" ---
This experiment prints out the contents of the window
variable for anyone requesting this page.
It's a tool for myself so I can pop up my website on embedded devices and see what they surface.