| libtiff - introduction to libtiff, a library for reading and writing TIFF files |
|
#include <tiffio.h> cc file.c -ltiff |
| libtiff is a library for reading and writing data files encoded with the Tag Image File format, Revision 6.0 (or revision 5.0 or revision 4.0). This file format is suitable for archiving multi-color and monochromatic image data. |
| The library supports several compression algorithms, as indicated by the Compression field, including: no compression (1), CCITT 1D Huffman compression (2), CCITT Group 3 Facsimile compression (3), CCITT Group 4 Facsimile compression (4), Lempel-Ziv & Welch compression (5), baseline JPEG compression (7), word-aligned 1D Huffman compression (32771), and PackBits compression (32773). In addition, several nonstandard compression algorithms are supported: the 4-bit compression algorithm used by the ThunderScan program (32809) (decompression only), NeXT's 2-bit compression algorithm (32766) (decompression only), an experimental LZ-style algorithm known as Deflate (32946), and an experimental CIE LogLuv compression scheme designed for images with high dynamic range (32845 for LogL and 32845 for LogLuv). Directory information may be in either little- or big-endian byte order-byte swapping is automatically done by the library. Data bit ordering may be either Most Significant Bit ( MSB ) to Least Significant Bit ( LSB ) or LSB to MSB. Finally, the library does not support files in which the BitsPerSample, Compression, MinSampleValue, or MaxSampleValue fields are defined differently on a per-sample basis (in Rev. 6.0 the Compression tag is not defined on a per-sample basis, so this is immaterial). |
| The library makes extensive use of C typedefs to promote portability. Two sets of typedefs are used, one for communication with clients of the library and one for internal data structures and parsing of the TIFF format. The following typedefs are exposed to users either through function definitions or through parameters passed through the varargs interfaces. |
typedef unsigned short uint16; 16-bit unsigned integer typedef unsigned <thing> uint32; 32-bit unsigned integer typedef unsigned int ttag_t; directory tag typedef uint16 tdir_t; directory index typedef uint16 tsample_t; sample number typedef uint32 tstrip_t; strip number typedef uint32 ttile_t; tile number typedef int32 tsize_t; i/o size in bytes typedef void* tdata_t; image data ref typedef void* thandle_t; client data handle typedef int32 toff_t; file offset |
| Note that tstrip_t, ttile_t, and tsize_t are constrained to be no more than 32-bit quantities by 32-bit fields they are stored in in the TIFF image. Likewise tsample_t is limited by the 16-bit field used to store the SamplesPerPixel tag. tdir_t constrains the maximum number of IFDs that may appear in an image and may be an arbitrary size (w/o penalty). ttag_t must be either int, unsigned int, pointer, or double because the library uses a varargs interface and ANSI C restricts the type of the parameter before an ellipsis to be a promoted type. toff_t is defined as int32 because TIFF file offsets are (unsigned) 32-bit quantities. A signed value is used because some interfaces return -1 on error. Finally, note that user-specified data references are passed as opaque handles and only cast at the lowest layers where their type is presumed. |
| The following routines are part of the library. Consult specific manual pages for details on their operation. The manual page names listed below are for systems where the full function names can not be encoded in the filesystem; on most systems doing ``man function-name'' will work. |
Name Appears on Page Description TIFFCheckpointDirectory writedir.3t writes the current state of the directory TIFFCheckTile tile.3t very x,y,z,sample is within image TIFFCIELabToRGBInit color.3t initialize CIE L*a*b* 1976 to RGB conversion state TIFFCIELabToXYZ color.3t perform CIE L*a*b* 1976 to CIE XYZ conversion TIFFClientOpen open.3t open a file for reading or writing TIFFClose close.3t close an open file TIFFComputeStrip strip.3t return strip containing y,sample TIFFComputeTile tile.3t return tile containing x,y,z,sample TIFFCurrentDirectory query.3t return index of current directory TIFFCurrentRow query.3t return index of current scanline TIFFCurrentStrip query.3t return index of current strip TIFFCurrentTile query.3t return index of current tile TIFFDataWidth width.3t return the size of TIFF data types TIFFError error.3t library error handler TIFFFdOpen open.3t open a file for reading or writing TIFFFileName query.3t return name of open file TIFFFileno query.3t return open file descriptor TIFFFindCODEC codec.3t find standard codec for the specific scheme TIFFFlush flush.3t flush all pending writes TIFFFlushData flush.3t flush pending data writes TIFFGetBitRevTable swab.3t return bit reversal table TIFFGetField getfield.3t return tag value in current directory TIFFGetFieldDefaulted getfield.3t return tag value in current directory TIFFGetMode query.3t return open file mode TIFFGetVersion query.3t return library version string TIFFIsCODECConfigured codec.3t check, whether we have working codec TIFFIsTiled query.3t return true if image data is tiled TIFFIsByteSwapped query.3t return true if image data is byte-swapped TIFFNumberOfStrips strip.3t return number of strips in an image TIFFNumberOfTiles tile.3t return number of tiles in an image TIFFOpen open.3t open a file for reading or writing TIFFPrintDirectory print.3t print description of the current directory TIFFReadBufferSetup rdbuf.3t specify i/o buffer for reading TIFFReadDirectory readdir.3t read the next directory TIFFReadEncodedStrip rdestrip.3t read and decode a strip of data TIFFReadEncodedTile rdetile.3t read and decode a tile of data TIFFReadRawStrip rdrstrip.3t read a raw strip of data TIFFReadRawTile rdrtile.3t read a raw tile of data TIFFReadRGBAImage rdimage.3t read an image into a fixed format raster TIFFReadScanline readline.3t read and decode a row of data TIFFReadTile readtile.3t read and decode a tile of data TIFFRegisterCODEC codec.3t override standard codec for the specific scheme TIFFReverseBits swab.3t reverse bits in an array of bytes TIFFRGBAImageBegin rgbaimage.3t setup decoder state for TIFFRGBAImageGet TIFFRGBAImageEnd rgbaimage.3t release TIFFRGBAImage decoder state TIFFRGBAImageGet rgbaimage.3t read and decode an image TIFFRGBAImageOK rgbaimage.3t is image readable by TIFFRGBAImageGet TIFFScanlineSize size.3t return size of a scanline TIFFSetDirectory setdir.3t set the current directory TIFFSetSubDirectory setdir.3t set the current directory TIFFSetErrorHandler error.3t set error handler function TIFFSetField setfield.3t set a tag's value in the current directory TIFFSetWarningHandler error.3t set warning handler function TIFFStripSize strip.3t returns size of a strip TIFFRawStripSize strip.3t returns the number of bytes in a raw strip TIFFSwabShort swab.3t swap bytes of short TIFFSwabLong swab.3t swap bytes of long TIFFSwabArrayOfShort swab.3t swap bytes of an array of shorts TIFFSwabArrayOfLong swab.3t swap bytes of an array of longs TIFFTileRowSize size.3t return size of a row in a tile TIFFTileSize size.3t return size of a tile TIFFUnRegisterCODEC codec.3t unregisters the codec TIFFVGetField getfield.3t return tag value in current directory TIFFVGetFieldDefaulted getfield.3t return tag value in current directory TIFFVSetField setfield.3t set a tag's value in the current directory TIFFVStripSize strip.3t returns the number of bytes in a strip TIFFWarning warning.3t library warning handler TIFFWriteDirectory writedir.3t write the current directory TIFFWriteEncodedStrip wrestrip.3t compress and write a strip of data TIFFWriteEncodedTile wretile.3t compress and write a tile of data TIFFWriteRawStrip wrrstrip.3t write a raw strip of data TIFFWriteRawTile wrrtile.3t write a raw tile of data TIFFWriteScanline writeline.3t write a scanline of data TIFFWriteTile wrrtile.3t compress and write a tile of data TIFFXYZToRGB color.3t perform CIE XYZ to RGB conversion TIFFYCbCrToRGBInit color.3t initialize YCbCr to RGB conversion state TIFFYCbCrtoRGB color.3t perform YCbCr to RGB conversion |
| The table below lists the TIFF tags that are recognized and handled by the library. If no use is indicated in the table, then the library reads and writes the tag, but does not use it internally. Note that some tags are meaningful only when a particular compression scheme is being used; e.g. Group3Options is only useful if Compression is set to CCITT Group 3 encoding. Tags of this sort are considered codec-specific tags and the library does not recognize them except when the Compression tag has been previously set to the relevant compression scheme. |
Tag Name Value R/W Library Use/Notes Artist 315 R/W BadFaxLines 326 R/W BitsPerSample 258 R/W lots CellLength 265 parsed but ignored CellWidth 264 parsed but ignored CleanFaxData 327 R/W ColorMap 320 R/W ColorResponseUnit 300 parsed but ignored Compression 259 R/W choosing codec ConsecutiveBadFaxLines 328 R/W Copyright 33432 R/W DataType 32996 R obsoleted by SampleFormat tag DateTime 306 R/W DocumentName 269 R/W DotRange 336 R/W ExtraSamples 338 R/W lots FaxRecvParams 34908 R/W FaxSubAddress 34909 R/W FaxRecvTime 34910 R/W FillOrder 266 R/W control bit order FreeByteCounts 289 parsed but ignored FreeOffsets 288 parsed but ignored GrayResponseCurve 291 parsed but ignored GrayResponseUnit 290 parsed but ignored Group3Options 292 R/W used by Group 3 codec Group4Options 293 R/W HostComputer 316 R/W ImageDepth 32997 R/W tile/strip calculations ImageDescription 270 R/W ImageLength 257 R/W lots ImageWidth 256 R/W lots InkNames 333 R/W InkSet 332 R/W JPEGTables 347 R/W used by JPEG codec Make 271 R/W Matteing 32995 R obsoleted by ExtraSamples tag MaxSampleValue 281 R/W MinSampleValue 280 R/W Model 272 R/W NewSubFileType 254 R/W called SubFileType in spec NumberOfInks 334 R/W Orientation 274 R/W PageName 285 R/W PageNumber 297 R/W PhotometricInterpretation 262 R/Wused by Group 3 and JPEG codecs PlanarConfiguration 284 R/W data i/o Predictor 317 R/W used by LZW and Deflate codecs PrimaryChromacities 319 R/W ReferenceBlackWhite 532 R/W ResolutionUnit 296 R/W used by Group 3 codec RowsPerStrip 278 R/W data i/o SampleFormat 339 R/W SamplesPerPixel 277 R/W lots SMinSampleValue 340 R/W SMaxSampleValue 341 R/W Software 305 R/W StoNits 37439 R/W StripByteCounts 279 R/W data i/o StripOffsets 273 R/W data i/o SubFileType 255 R/W called OSubFileType in spec TargetPrinter 337 R/W Thresholding 263 R/W TileByteCounts 324 R/W data i/o TileDepth 32998 R/W tile/strip calculations TileLength 323 R/W data i/o TileOffsets 324 R/W data i/o TileWidth 322 R/W data i/o TransferFunction 301 R/W WhitePoint 318 R/W XPosition 286 R/W XResolution 282 R/W YCbCrCoefficients 529 R/W used by TIFFRGBAImage support YCbCrPositioning 531 R/W tile/strip size calulcations YCbCrSubsampling 530 R/W YPosition 286 R/W YResolution 283 R/W used by Group 3 codec |
| In addition to the normal TIFF tags the library supports a collection of tags whose values lie in a range outside the valid range of TIFF tags. These tags are termed pseud-tags and are used to control various codec-specific functions within the library. The table below summarizes the defined pseudo-tags. |
Tag Name Codec R/W Library Use/Notes TIFFTAG_FAXMODE G3 R/W general codec operation TIFFTAG_FAXFILLFUNC G3/G4 R/W bitmap fill function TIFFTAG_JPEGQUALITY JPEG R/W compression quality control TIFFTAG_JPEGCOLORMODE JPEG R/W control colorspace conversions TIFFTAG_JPEGTABLESMODE JPEG R/W control contents of JPEGTables tag TIFFTAG_ZIPQUALITY Deflate R/Wcompression quality level TIFFTAG_PIXARLOGDATAFMT PixarLog R/Wuser data format TIFFTAG_PIXARLOGQUALITY PixarLog R/Wcompression quality level TIFFTAG_SGILOGDATAFMT SGILog R/W user data formatTIFFTAG_FAXMODE |
| Control the operation of the Group 3 codec. Possible values (independent bits that can be combined by or'ing them together) are: FAXMODE_CLASSIC (enable old-style format in which the RTC is written at the end of the last strip), FAXMODE_NORTC (opposite of FAXMODE_CLASSIC; also called FAXMODE_CLASSF), FAXMODE_NOEOL (do not write EOL codes at the start of each row of data), FAXMODE_BYTEALIGN (align each encoded row to an 8-bit boundary), FAXMODE_WORDALIGN (align each encoded row to an 16-bit boundary), The default value is dependent on the compression scheme; this pseudo-tag is used by the various G3 and G4 codecs to share code. |
| TIFFTAG_FAXFILLFUNC |
| Control the function used to convert arrays of black and white runs to packed bit arrays. This hook can be used to image decoded scanlines in multi-bit depth rasters (e.g. for display in colormap mode) or for other purposes. The default value is a pointer to a builtin function that images packed bilevel data. |
| TIFFTAG_IPTCNEWSPHOTO |
| Tag contaings image metadata per the IPTC newsphoto spec: Headline, captioning, credit, etc... Used by most wire services. |
| TIFFTAG_PHOTOSHOP |
| Tag contains Photoshop captioning information and metadata. Photoshop uses in parallel and redundantly alongside IPTCNEWSPHOTO information. |
| TIFFTAG_JPEGQUALITY |
| Control the compression quality level used in the baseline algorithm. Note that quality levels are in the range 0-100 with a default value of 75. |
| TIFFTAG_JPEGCOLORMODE |
| Control whether or not conversion is done between RGB and YCbCr colorspaces. Possible values are: JPEGCOLORMODE_RAW (do not convert), and JPEGCOLORMODE_RGB (convert to/from RGB) The default value is JPEGCOLORMODE_RAW. |
| TIFFTAG_JPEGTABLESMODE |
| Control the information written in the JPEGTables tag. Possible values (independent bits that can be combined by or'ing them together) are: JPEGTABLESMODE_QUANT (include quantization tables), and JPEGTABLESMODE_HUFF (include Huffman encoding tables). The default value is JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF. |
| TIFFTAG_ZIPQUALITY |
| Control the compression technique used by the Deflate codec. Quality levels are in the range 1-9 with larger numbers yielding better compression at the cost of more computation. The default quality level is 6 which yields a good time-space tradeoff. |
| TIFFTAG_PIXARLOGDATAFMT |
| Control the format of user data passed in to the PixarLog codec when encoding and passed out from when decoding. Possible values are: PIXARLOGDATAFMT_8BIT for 8-bit unsigned pixels, PIXARLOGDATAFMT_8BITABGR for 8-bit unsigned ABGR-ordered pixels, PIXARLOGDATAFMT_11BITLOG for 11-bit log-encoded raw data, PIXARLOGDATAFMT_12BITPICIO for 12-bit PICIO-compatible data, PIXARLOGDATAFMT_16BIT for 16-bit signed samples, and PIXARLOGDATAFMT_FLOAT for 32-bit IEEE floating point samples. |
| TIFFTAG_PIXARLOGQUALITY |
| Control the compression technique used by the PixarLog codec. This value is treated identically to TIFFTAG_ZIPQUALITY; see the above description. |
| TIFFTAG_SGILOGDATAFMT |
| Control the format of client data passed in to the SGILog codec when encoding and passed out from when decoding. Possible values are: SGILOGDATAFMT_FLTXYZ for converting between LogLuv and 32-bit IEEE floating valued XYZ pixels, SGILOGDATAFMT_16BITLUV for 16-bit encoded Luv pixels, SGILOGDATAFMT_32BITRAW and SGILOGDATAFMT_24BITRAW for no conversion of data, SGILOGDATAFMT_8BITRGB for returning 8-bit RGB data (valid only when decoding LogLuv-encoded data), SGILOGDATAFMT_FLTY for converting between LogL and 32-bit IEEE floating valued Y pixels, SGILOGDATAFMT_16BITL for 16-bit encoded L pixels, and SGILOGDATAFMT_8BITGRY for returning 8-bit greyscale data (valid only when decoding LogL-encoded data). |
| All error messages are directed through the TIFFError routine. By default messages are directed to stderr in the form: module: messagen. Warning messages are likewise directed through the TIFFWarning routine. |
| fax2tiff(1), gif2tiff(1), pal2rgb(1), ppm2tiff(1), rgb2ycbcr(1), ras2tiff(1), raw2tiff(1), sgi2tiff(1), tiff2bw(1), tiffdither(1), tiffdump(1), tiffcp(1), tiffcmp(1), tiffgt(1), tiffinfo(1), tiffmedian(1), tiffsplit(1), tiffsv(1), |
| Tag Image File Format Specification -- Revision 6.0, an Aldus Technical Memorandum. |
| The Spirit of TIFF Class F, an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies. |
| The library does not support multi-sample images where some samples have different bits/sample. |
| The library does not support random access to compressed data that is organized with more than one row per tile or strip. The library discards unknown tags. The library should do more validity checking of a directory's contents. |


I am a Postdoc working in the Decal lab at UC Davis with Prof. Premkumar Devanbu. My current research focus is on applying natural language models to new software engineering tasks. My latest work has centered around improving the understandability of decompiled binary code using a pre-trained language model for C. During my PhD I focused on the human aspect of API evolution to understand how and why APIs evolve and its impact on API consumers. Going forward I would like to enhance the API evolution process by devising a semantic aware approach that is able to automatically migrate consumer code from one API to another.
In my spare time I enjoy taking in a lot of sports (favorite sport teams include: Manchester United, Indian cricket team and LA Lakers), hiking in the hills and traveling to far flung places of the world. Fun fact: the background image of this page is generally related to the area I am currently in.
Advisor: Prof. Premkumar Devanbu
Advisor: Alberto Bacchelli
Promotor: Arie van Deursen
Thesis title: The impact of API evolution on API consumers and how this can be affected by API producers and language designers
Thesis grade: 9.0
American equivalent: A+
Thesis advisor: Alberto Bacchelli
Thesis title: fine-GRAPE: fine-Grained APi usage Extractor An Approach and Dataset to Investigate API Usage
Thesis grade: 9.0
American equivalent: A+
Thesis advisor: Alexandru Iosup
Graduated with honors and cum laude
@article{sawant2019react, title={Revisiting Test Smells in Automatically Generated Tests: Limitations, Pitfalls, and Opportunities}, author={Panichella, Annibale and Panichella, Sebastiano and Fraser, Gordon and Sawant, Anand Ashok and Hellendoorn, Vincent}, journal={Proceedings of the 36th IEEE International Conference on Software Maintenance and Evolution (ICSME 2020)}, year={2020} }
@article{sawant2019react, title={To react, or not to react: Patterns of reaction to API deprecation}, author={Sawant, Anand Ashok and Robbes, Romain and Bacchelli, Alberto}, journal={Empirical Software Engineering}, volume={24}, pages={3824--3870}, year={2019} }
@inproceedings{sawant2018why, title={What Makes a Code Change Easier to Review: An Empirical Investigation on Code Change Reviewability}, author={Ram, Achyudh and Sawant, Anand Ashok and Castellucio, Marco and Bacchelli, Alberto}, booktitle={Proceedings of the 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE). forthcoming}, year={2018} }
@inproceedings{sawant2018why, title={Why are features deprecated? An investigation into the motivation behind deprecation}, author={Sawant, Anand Ashok and Huang, Guangzhe and Vilen, Gabriel and Stojkovski, Stefan and Bacchelli, Alberto}, booktitle={Proceedings of the 34th IEEE International Conference on Software Maintenance and Evolution (ICSME 2018)}, year={2018} }
@inproceedings{sawant2018understanding, title={Understanding Developers’ Needs on Deprecation as a Language Feature}, author={Sawant, Anand Ashok and Aniche, Mauricio and van Deursen, Arie and Bacchelli, Alberto}, booktitle={Proceedings of the 40th ACM/IEEE International Conference on Software Engineering (ICSE 2018). forthcoming}, year={2018} }
@article{sawant2017reaction, title={On the reaction to deprecation of clients of 4+ 1 popular Java APIs and the JDK}, author={Sawant, Anand Ashok and Robbes, Romain and Bacchelli, Alberto}, journal={Empirical Software Engineering}, pages={1--40}, year={2017}, publisher={Springer} }
@inproceedings{sawant2016deprecation, author = "A. A. Sawant and A. Bacchelli.", title = "On the reaction to deprecation of 25,357 clients of 4+1 popular Java APIs.", booktitle = "Proceedings of the 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME)", year = "2016", pages = "in press", organization = "IEEE press" }
@inproceedings{oosterwaal2016, author = "S. Oosterwaal, A. van Deursen, R. Coelho, A. A. Sawant and A. Bacchelli.", title = "Visualizing Code and Coverage Changes for Code Review", booktitle = "Proceedings of the 24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (2016) Demo Track", year = "2016", pages = "in press", organization = "ACM press" }
@Article{Sawant2016, author="Sawant, Anand Ashok and Bacchelli, Alberto", title="fine-GRAPE: fine-grained APi usage extractor -- an approach and dataset to investigate API usage", journal="Empirical Software Engineering", year="2016", pages="1--24", issn="1573-7616", doi="10.1007/s10664-016-9444-6", url="http://dx.doi.org/10.1007/s10664-016-9444-6" }
@inproceedings{sawant2015dataset, title={A dataset for API usage}, author={Sawant, Anand Ashok and Bacchelli, Alberto}, booktitle={Proceedings of the 12th Working Conference on Mining Software Repositories}, pages={506--509}, year={2015}, organization={IEEE Press} }
I am a Postdoctoral scholar working on the application of Machine Learning for Software Engineering at the Decal lab at the University of California Davis, USA. My current research focuses on improving data collection for deep learning tasks. My work on improving data fidelity makes tasks such as the recovery of inlined functions from binaries and variable names and types from obfuscated code achievable. Furthermore, I seek to enhance current deep learning models for code with a notion of semantic understanding by leveraging execution traces generated on a large scale, thus making complex tasks such as automatically dealing with API evolution realizable. My earlier research centered around mining API usage and understanding API evolution by conducting empirical studies on API usage data and conducting qualitative studies to understand the developer perspective on API evolution.


Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Aliquam vehicula gravida orci. Pellentesque neque justo ...
Lorem Ipsum is simply dummy text of the
Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Aliquam vehicula gravida orci. Pellentesque neque justo ...
Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Pellentesque neque justo, commodo sed varius at, sagittis ut neque ...
Down To Nothing from The North Face on Vimeo.
Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Pellentesque neque justo, commodo sed varius at, sagittis ut neque...
Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Pellentesque neque justo, commodo sed varius at, sagittis ut neque ...
“Latin professor at Hampden-Sydney College in Virginia”
- Oscar Layer
This is Link for something
Aenean quis sem nisi. Aliquam vehicula gravida orci, nec pretium mi ultricies in. Donec fermentum pulvinar mauris sed gravida. Pellentesque neque justo, commodo sed varius at, sagittis ut neque. Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software.
3 Years of Membership
@EnvatoMarket
#envato
#themeforest
#milestone
http://t.co/MnGukax7XN
— fruitfulcode (@fruitfulcode)
31 Март 2015


Denial-of-Service
Contents
Description
- A denial-of-service(DoS) attack is one in which an attacker uses multiple techniques to deny legitimate users access to a system or resource. This Is generally done in one of two ways:
- Crashing the resource or a particular requirement for access to the resource
- Flooding the access so legitimate traffic is unable to reach it.
- DoS attacks are extremely common because they are so simple to carry out, and there is a wealth of ready-to-use tools available for script kiddies to download
Ping of Death
- The stereotypical “ping of death” is based on the fact that Internet Control Messaging Protocol (ICMP) echo messages are designed to be no larger than 65,535 bytes. Because most of the information of interest in ICMP echo packets is contained in the header, sometimes the data portion is unchecked. If an ICMP echo packet is sent that is too large, some operating systems (OSs) will crash.
- Whereas a packet larger than 65,535 bytes is illegal, this limitation can be worked around by using fragmentation packets that, when reassembled on the receiving end, overflows the buffer on some systems. so it s basically a buffer overflow exploit. Because of the ease and prevalence of this attack, most systems are no longer vulnerable.
Teardrop
- This attack is also dependent on fragmentation. Fragmented packets are sent but Instead of neatly lined-up fragmentation offsets, the offsets overlap.
- If the operating system does not have a plan in place for this eventuality, the system can crash, reboot, or lose stability.
- This is also an easy attack to learn; few systems are vulnerable anymore. It is named for the tool that exploits this vulnerability.
Ping Flooding
- Ping flooding is an attack specifically aimed at denial of network resource.
- Ping flooding uses up the bandwidth of the network so traffic from legitimate users can't get through.
- The general rule is that if the attacker has a greater bandwidth than the victim, the attacker will succeed in the DoS.
- This attack works as follows: the attacker send many large ping packets as quickly as possible to the victim. This exhausts the victims inbound bandwidth may be consumed as well.
Smurf Attacks
- A smurf attack is a specific variation on a ping flood attack. Instead of a ping to a single system, a smurf attack uses repeated spoofed broadcast ping messages to flood the system.
- All of these ping messages use the spoofed IP address of the intended victim as their source address. If the ping is actually broadcast to the network, most hosts on that IP network will accept the ICMP echo request and reply to it with an echo reply per recipient, which will have the effect of multiplying the traffic by the number of hosts responding.
- This attack is also named after the attack program created to exploit this vulnerability.
Amplification Attacks
- This type of DoS attack uses both spoofing and broadcast addressing to amplify a single stream of packets several hundredfold to flood the victim's bandwidth.
- To carry out this attack, the attacker needs to find a network that both allows communications to the network's broadcast address and has a good number of hosts active on the network.
- The attacker sends large ICMP echo request packets to the broadcast address of the amplifier network with a spoofed source address of the victim.
- The amplifier network then broadcasts these ICMP echo packets to all the hosts on that network, and each of these systems will then send corresponding ICMP echo replies to the spoofed source address of the victim, flooding their network bandwidth.
- This is also called a reflected attack. If the attack relies on ICMP packets, it's also called a smurf attack. If the attack relies on User Datagram Protocol (UDP) packets, it's called a fraggle attack.
SYN Flooding
- In SYN flooding, the attacker attempts to exhaust the space in the Transmission Control Protocol/Internet Protocol (TCP/IP) stack with spoofed and only partially complete connections, so legitimate users are unable to connect.
- TCP maintains the connections so it has to be able to track them and their state somewhere; that place is the TCP/IP stack. But only a finite number of connections can he tracked in the TCP/IP stack, and SYN flooding uses spoofing to exploit this.
- The attacker floods the system with many SYN packets that have spoofed nonexistent source addresses. These packets behave as if a system that has the spoofed IP address wishes to open a connection with the victim computer.
- Now the victim sends out a SYN/ACK package and waits for the connection handshake be returned in order to finalize or to complete the handshake process. In the meantime, the waiting connection goes into a backlog queue and will only be removed from the queue if either the SYN/ACK packet is received or the connection times out. The timeout can take quite a while, and the SYN packets continue to come in.
Distributed Denial of Service (DDoS)
- This is basically a DoS attack coming from more than a single location. To carry out a DDoS, the attacker will generally compromise other systems and install daemons on them for later use. The daemons are waiting for the attacker to determine which victim to attack. When a victim is chosen' the attacker uses a controlling program to tell the daemons to simultaneously attack the target.
- The fact that the DDoS attack is not coming from a single location has several impacts on its success:
- More volume can be generated.
- It's harder to filter or block multiple attacking systems.
Anatomy of an Exploit
- Ping of Death
- An attacker uses one of the ICMP ping tools available to construct an IP packet with a size larger than 65,535 bytes and sends it to the target choice. The header source IP is usually spoofed to help hide the source.
- Teardrop
- An attacker target a network that seems vulnerable and uses that Teardrop tool to set up the attack by sending several IP fragmentation packets that are structured so that when the receiving system attempts to reassemble them, they will overlap.
- Ping Flooding
- When an attacker thinks he has a vulnerable target, he tells his army of bots to begin sending ICMP echo requests to the target IP address as quickly as possible. The headers of the requests can be forged with random bogus IP source addresses to resist any attempts to filter the requests by source addresses.
- Smurf
- In a smurf attack, the attacker targets a vulnerable network and uses the Smurf tool to craft ICMP echo requests where it has forged the source IP address to match that of the target.
- SYN Flooding
- An attacker sends a continual series of TCP SYN packets to the target, each one with a different forged source IP address to exhaust the target's resources during this continual flooding.
Real –World Example WorldPay DDoS Attack
- At about 6 p.m. on Saturday, October 2, 2003, the payment processing division of the Royal Bank of Scotland, WorldPay (WorldPay Ltd.), was hit with a sustained DDoS attack.
- This attack, employing hundreds or Possibly thousands of “zombie” computers to issue repeated automated requests, was designed to clog and slow the bank's systems.
- This attack lasted for three days, in spite of the attempts to block out traffic and restore functionality to the bank's customers.
- In April 2004, WorldPay was again hit with a DDoS attack. There have some conjectures that this was a case of attempted cyber-extortion by organized crime ,but there never was full disclosure of the exact events surrounding either DDoS. These attacks, however, did of not reveal any of the data that WorldPay had stored.
Gibson Research Corporation DDoS Attack
- On the evening of May 1. 2001, GRC.COM appeared to drop off the Internet. The network activity was analyzed quickly, and it was discovered that both of their T1 connections were maxed out with incoming traffic at their 1.54 megabit rate, and there was almost no outbound traffic.
- Capturing and analyzing the arriving packets themselves showed that the attack was a brute force UDP DDoS attack that was designed to use up all available network bandwidth and thus deny access to legitimate users.
- GRC's firewalls and local routers easily recognized and discarded the bogus traffic but that meant the bandwidth to that point was still clogged. After 17 hr, filters were applied to the router that sat between the Internet and GRC's two Ti trunks to block out all UDP and ICMP traffic. From the type of packets generated, as well as other facts, it was determined that the attack was being carried out by 474 security-compromised Windows PCs. Because the attacks related to UDR the TCP-based senic° could continue even while the attack was still under way and the router was blocking all UDP and 1CMP traffic.
More attacks followed on the following schedule:
- May 4 — First attack took place;17 hr to filter traffic and return to service.
- May 13 — Second attack. Identical to the first, including the attacking Windows machines; 8 hr to reestablish the same filters used on May 4.
- May 14 — Attacked twice this day. The first attack Of the day was targeted at the IP of GRC's firewall, and GRC disappeared from the Internet again. This time the router filtering was changed t° add the firewall's IP to the filtering and then GRC was back.
- May 14 – only 2 hr later, the attack resumed, aimed at one of the T1 interfaces of GRC's Cisco router. This again flooded the Tls. And GRC was off the Net again, the decision was then made to shut down that Tl, which left one Tl to service GRC, but they were back on the Net again.
- May 15 — This attack took GRC off the Internet for 6.5 hr before stopping on its own. A decision was made to simply shut down at for the night because of some hugs in the routing software that made it possible to effectively filter this attack.
- May 16 — Comprehensive filtering was put in place after the previous day's attack so traffic would be kept away from the entire GRC site. Another attack occurred, but the new filtering was completely effective. An estimate of how many Packet were blocked by the filtering during this attack was 538,916'268.
- May 17 to May 20 — During this time the GRC was completely protected, but the number of packets filtered was estimated at 2,399,237,016.
Chat DoS Attack
- A chat DoS attack that I experienced was somewhat low-tech, but I've included it as an illustration of how sometimes these low-tech approaches can be very disrupting to legitimate users of a system.
- I was attending an online chat with a celebrity guest, and there were about 200 people in the online chat room. During the busy chat, two people who were logged in as anonymous guests began to repeat offensive messages as fast as they could paste the text and hit ''send.“ The speed at which these messages were being posted made the chat room completely unusable by legitimate customers.
- After a few minutes, an administrator booted the first of the attackers out, but before the second one could be booted as well, the first person (my own assumption) was back spamming again. This trade went on for about the next ten min before I gave up and left the room.
Test Techniques
- Testing for DoS attacks really has two major branches, and whether you use one or the other (or both) will depend on the product you are testing and what dependencies it has or services it offers to others.
Network DoS
- Most network DoS attacks boil down to one of two situations.
- Protocol Vulnerability
- In many cases, the DoS is caused by the fact that a network device or system is not able to deal with an exploit of a network protocol vulnerability. In these cases, fuzz testing is a good way to try to exercise the Protocols to determine the reaction of the system under test to protocol fuzzing. These are mostly network protocols and unless you are testing a system that deals directly with that low a level in the Open System Interconnection(OSI) model, you are a little bit helpless and dependent on your OS and network to handle these issues.
- Lack of Limits
- The other major factor is that limits on various types of transactions are either nonexistent or too high for the system to handle. In the latter case, it would pay if you can cause a DoS and then backtrack from it to question the limits that are in place to prevent DoS.
- There are several aspects of input that you can experiment with in trying to trigger a DoS:
- Quantity from a single source
- Quantity from multiple sources
- Size of individual items
Think Outside the Typical DoS Box
- In addition to the more standard DoS attack vectors, it pays to take a look at the more unusual attacks that might be able to be turned into DoS attacks.
- Circular References
- Is there any way you can cause a circular reference to occur in Your system? If you can, you might be able to cause a DoS. I had a recent experience with an e-mail system that treated notification messages not in the same way it treated regular e-mail messages: there were questions about whether or not a circular reference could be instigated with a combination of two different types of system notification messages. It turned out that it did not work, but it was an interesting experiment. Any service- or system-crashing issues may become a DoS. If you run across a mysterious crash of your test system or a service on the system' sometimes the tendency is to dismiss it as a fluke. Perhaps it is, but never just shrug it off. Always keep looking for what might have caused Ili because some of these crashing issues are very real vulnerabilities that may be exploitable as a DoS at some later date
External Links
Panel title
Percipit Mnesarchum
Molestie Phaedrum Luptatum
constituam Habeo adipisci Inani
zril Forensibus sea Habeo
adipisci Minimum corrumpit Regione
suscipit Has et partem Percipit
Mnesarchum Molestie Phaedrum
Luptatum constituam Habeo
adipisci Inani zril Vel
nisl albucius Habeo adipisci Minimum
corrumpit Regione suscipit Percipit
maiestatis Regione suscipit Percipit
maiestatis
Subtitle


MYH
The larger subunits of MYOSINS. The heavy chains have a molecular weight of about 230 kDa and each heavy chain is usually associated with a dissimilar pair of MYOSIN LIGHT CHAINS. The heavy chains possess actin-binding and ATPase activity.
(mesh:D018995)
Cross-references
Synonyms
| Synonym |
Reference |
Specificity |
| Myosin heavy chains |
|
Exact
|
| myosin heavy chain |
|
Exact
|
| Mhc |
|
Exact
|
| myosin heavy chain protein |
|
Exact
|
| Myosin heavy chain |
|
Exact
|
| myosin heavy chain genes |
|
Exact
|
| myosin heavy chain isoforms |
|
Exact
|
| myosin heavy chains |
|
Exact
|
Incoming Relations
Outgoing Relations


Localization of Sound from Single and Paired Sources
Author:Sandel et al.
Date: September, 1955
Experiments 1, 2 and 3
Subjects Tested: 5
If the space is lighted and the sources obscured from him, he must depend for accuracy upon the correspondence between auditory space and visual space. In the present experiments both the stimulus to be localized and the "pointer" are auditory in nature and are merely brought into agreement in direction. The slight head movements which are unavoidable even when the head is clamped, as in the present experiments, are of little importance.
Results
...show clearly the breakdown of the factor of interaural time as a cue for localization at frequencies above about 1500 cps.
...the behavior of the intensity difference with azimuth would depend upon frequency. It would depend in an unpredictable way, since the size of the various parts of the ear relative to the
Design Decisions
The author's use of a novel 'auditory pointer' is interesting and can be replicated in VR, however the interaction of sounds is accomplished via mixing and may not be true to life. A possible error in the pointer method used here could occur, as subjects may simply 'match' sounds rather than localize them.


Exodus 5:21
And they said unto them, The LORD look upon you, and judge; because ye have made our savor to be abhorred in the eyes of Pharaoh, and in the eyes of his servants, to put a sword in their hand to slay us.


Paul Feig's Five Favorite Christmas Movies
The Last Christmas director shows the Yuletide love for a couple of classics, an unsung little gem, and one controversial pick.
by RT StaffDirector Paul Feig has set out to make a modern holiday classic with Last Christmas, the new rom-com starring Emilia Clarke, Henry Golding, Michelle Yeoh, and Emma Thompson that Thompson co-wrote and which is set in a Christmas-drenched London. Ahead of the movie’s release on November 8, Feig joined Rotten Tomatoes to talk about his own favorite Christmas movies. And yes, the ever-controversial Die Hard is on the list! Check out Feig’s picks above, then check out our own list of the Best Christmas Movies of All Time.
Last Christmas is in theaters November 8
Last Christmas (2019) 49%
Critics Consensus: Likable leads, terrific behind-the-scenes talent, and an intriguing musical hook aren't enough to save Last Christmas from its poorly conceived story.
Synopsis: Kate (Emilia Clarke) harumphs around London, a bundle of bad decisions accompanied by the jangle of bells on her shoes,... [More]
Starring: Emilia Clarke, Henry Golding, Emma Thompson, Michelle Yeoh
Directed By: Paul Feig
Thumbnail image courtesy © 20th Century Fox Film Corp., MGM, Warner Bros., Universal


Support for measurement errors in R vectors, matrices and arrays: automatic uncertainty propagation and reporting.
| Version: | 0.3.1 |
| Depends: | R (≥ 3.0.0) |
| Suggests: | tibble, pillar, testthat |
| Published: | 2018-12-05 |
| Author: | Iñaki Ucar [aut, cph, cre] |
| Maintainer: | Iñaki Ucar <iucar at fedoraproject.org> |
| BugReports: | https://github.com/r-quantities/errors/issues |
| License: | MIT + file LICENSE |
| URL: | https://github.com/r-quantities/errors |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| In views: | ChemPhys |
| CRAN checks: | errors results |
| Reference manual: | errors.pdf |
| Package source: | errors_0.3.1.tar.gz |
| Windows binaries: | r-devel: errors_0.3.1.zip, r-release: errors_0.3.1.zip, r-oldrel: errors_0.3.1.zip |
| OS X binaries: | r-release: errors_0.3.1.tgz, r-oldrel: errors_0.3.1.tgz |
| Old sources: | errors archive |
| Reverse depends: | quantities |
| Reverse suggests: | constants |
Please use the canonical form https://CRAN.R-project.org/package=errors to link to this page.


| crashrpt | ||
| A crash reporting system for Windows applications |
Before the release, it is recommended to check if exceptions are properly intercepted in the main thread and in all worker threads of your application (use the crEmulateCrash() function).
When you are ready to release your software, you should save its binary files, debugging information (symbols) and source code. When a crash report comes in, you use the release build, source code and symbols you saved, along with the minidump included in the crash report, to debug the crash.
Then copy all binary files (*.EXE, *.DLL) from your project output and all debugging symbol files (*.PDB) from your project output to the directory you have just created.
MyApp\ 1.0.0\ MyApp.exe MyApp.pdb ... CrashRptXXXX.dll CrashRptXXXX.pdb
It is also recommended that you save the source code that you used for compiling the application. If you use a version control system (e.g., SVN), mark the current revision of the code with tag to be able to restore its state later.
These steps should be performed for exactly the same software build that you plan to release. If you rebuild (or at least partially rebuild) the project after the files have been copied, you must copy the files again.
The CrashRptXXXX.dll and CrashSenderXXXX.exe are core CrashRpt modules. dbghelp.dll (Microsoft Debug Help Library) is a dependent module.
It is recommended that you place these files to the directory where your application executable file is located.
It is also required that you copy a language INI file crashrpt_lang.ini to the folder where CrashSenderXXXX.exe is located. You can distribute several language INI files with your software. On install, rename an appropriate file to crashrpt_lang.ini and copy it to the folder where your CrashSenderXXXX.exe is located. For additional information about language files, please refer to Internationalization Support page.


MATILDA A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 7.5 Alternative Scale: *** out of ****
United States, 1996 U.S. Release Date: 8/2/96 (wide) Running Length: 1:33 MPAA Classification: PG (Scary situations) Theatrical Aspect Ratio: 2.35:1
Cast: Mara Wilson, Danny DeVito, Rhea Perlman, Embeth Davidtz, Pam Ferris, Paul Reubens, Tracey Walter Director: Danny DeVito Producers: Danny DeVito, Michael Shamberg, Stacey Sher, and Liccy Dahl Screenplay: Nicholas Kazan and Robin Swicord based on the book by Roald Dahl Cinematography: Stefan Czapsky Music: David Newman U.S. Distributor: TriStar Pictures
Arriving in the latter half of the summer, Danny DeVito's MATILDA beats out such worthy contenders as THE HUNCHBACK OF NOTRE DAME and HARRIET THE SPY for best family fare of the season. In fact, I haven't enjoyed a so-called "children's film" this much since last year's BABE or TOY STORY. Although MATILDA, which is based on a story by Roald Dahl (whose JAMES AND THE GIANT PEACH reached screens earlier this year), is primarily aimed at the under-10 crowd, DeVito has crammed this movie with elements designed to appeal to adults. The result is a highly- satisfactory black comedy/fantasy that will find fans of all ages.
MATILDA contains numerous elements of traditional fairy tales -- a wicked step-aunt, a true friend with a pure heart, and more than a little magic -- but "traditional" is about the last word that comes to mind when describing this quirky film. DeVito, whose previous efforts include the viciously wacky WAR OF THE ROSES, is in fine form here, exaggerating characters and situations to the point where they lose their more terrifying edge without going so far that we no longer care about any of the inhabitants of this world. It's a fine line to walk, but MATILDA rarely falters.
The basic material may seem odd for a family film, dealing as it does with issues of child neglect, abuse, and revenge. By removing the story from conventional reality, however, DeVito pulls it off. This is a world where adults (except two) are bad and children (except one) are good. It's a place where television is a force of mind-numbing evil and where books represent escape and solace. And, most importantly, empowerment is genuine, not just a slogan.
Matilda (Mara Wilson) is the youngest child, and only daughter, of Harry and Zinia Wormwood (Danny DeVito and Rhea Perlman), who are described as living "in a very nice neighborhood in a very nice house", but not being very nice people. Mr. Wormwood is a used car salesman with the police tracking his every move, and Mrs. Wormwood is obsessed with bingo parlors and television game shows. Both parents are extremely neglectful of their little six-and-one-half year old daughter, even though she shows signs of amazing intelligence and various remarkable powers (she and John Travolta's character in PHENOMENON could have long, meaningful discussions).
Eventually, Mr. Wormwood notices his daughter long enough to send her off to Crunchem Hall, an elementary school lorded over by the ogre- like Miss Trunchbull (Pam Ferris), whose motto is "Use the rod, beat the child." She practices what she preaches, taking delight in punishing her charges and informing them mercilessly that her idea of a perfect school is one where there are no children. Fortunately for Matilda, her first grade teacher, Miss Honey (Embeth Davidtz), is kind and good- hearted, and immediately recognizes her new student's amazing gifts.
Mara Wilson, who lit up the screen as Robin Williams' daughter in MRS. DOUBTFIRE, and captured the Natalie Wood role in the remake of A MIRACLE ON 34TH STREET, is enchanting without being either sickeningly adorable or unbearably irritating. She has a natural charisma, and seems the perfect choice for the perky, indomitable Matilda. Wilson causes us care about the title character, and that identification is necessary to MATILDA's success. It's rare for an actor this young to give such a polished performance.
DeVito and his wife, Rhea Perlman, are effective in their cartoonish roles. Embeth Davidtz (FEAST OF JULY) radiates sweetness and vulnerability. And Pam Ferris takes on the Herculean role of Trunchbull by sinking her teeth into it and going as far over-the-top as the director lets her (which, in most cases, is pretty far). She reminded me forcefully of Ursula from Disney's animated THE LITTLE MERMAID. Meanwhile, Paul Reubens (aka Pee-Wee Herman) has a cameo as one of the cops shadowing Harry Wormwood.
MATILDA is not politically correct -- it is, after all, a pint- sized revenge fantasy -- but, in this case, that's a definite plus. Besides, for those who want bland, "wholesome" family entertainment, there's always Disney. Children aren't likely understand much of the black comedy and satire here, but they'll be so involved in the story that they won't notice that a lot is going over their heads. Hardly a moment of MATILDA can be described as either juvenile or condescending, and, compared with many of this summer's so-called "mature" features, that makes for a delightfully refreshing change-of-pace.
- James Berardinelli e-mail<EMAIL_ADDRESS>ReelViews web site: http://www.cybernex.net/~berardin
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


Before Change
// TODO: Change parameter to `from_global_step`.
// We only want to filter on the first iteration.
if last_global_step is not None and not all_checkpoints:
checkpoints = [checkpoints[-1]] if checkpoints else []
for checkpoint in checkpoints:
// Always returned in order, so it"s safe to assign directly.
tf.logging.info(
After Change
return
// Sleep for a minute and check for new checkpoints.
tf.logging.info("All checkpoints evaluated; sleeping for a minute")
time.sleep(60)
def get_checkpoints(config, from_global_step=None):


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 8
Step up to some seriously skillful cooking with this delicious turbot recipe.
Equipment and preparation: You will need a home smoker or barbecue.
Place the grated celeriac into a saucepan with the milk, salt and bay leaf and bring to the boil. Turn down the heat and simmer for 30 minutes, stirring regularly. Pass the mixture through a colander, discard the celeriac and then pass the milk through a fine sieve into a clean saucepan. Transfer the infused milk into a shallow dish.
Place the dish on a wire rack. Set the rack over oak wood chips in a home smoker or kettle barbecue, cover tightly with a lid and set over a medium heat for five minutes.
Remove the milk from the smoker and measure 500ml/17fl oz of liquid. Transfer the milk to a medium-sized saucepan. Add the agar agar, bring to the boil, whisking continuously, for two minutes. Pour the contents of the pan into a shallow dish and set aside to cool and set.
Once cooled and fully set, transfer the mixture into a food processor and blend until a smooth purée. Season, to taste, with salt, transfer the mixture to a bowl and cover with clingfilm. Chill in the fridge until required.
Preheat the oven to 150C/300F/Gas 2.
For the hazelnut and parmesan pesto, place the hazelnuts on a roasting tray and roast in an oven for 10 minutes.
Remove from the oven, transfer to a stainless steel bowl and crush to a fine crumb with a rolling pin. Add the parmesan, the oils, salt and freshly ground white pepper. Stir until well combined and set aside.
For the baked celeriac, peel the edges to neaten the pieces of celeriac and place into a bowl. Mix the two oils and add to the bowl of celeriac. Stir until all the celeriac pieces are evenly coated and add a generous pinch of salt and freshly ground white pepper.
Place a large sheet of aluminium foil onto a work surface and cover with another equally sized piece. Place the celeriac into the centre of the foil. Fold one end over to the other and fold over the meeting ends to seal. Fold over the side edges to create a sealed pouch.
Transfer the pouch onto a baking tray and bake in for 40 minutes. Remove from the oven, open the pouch and check that the celeriac is tender by inserting a skewer or toothpick.
Place a large heavy based saucepan over a medium heat for one minute. Add the butter, allow it to melt and then add the cabbage and a pinch of salt. Cook for 3-4 minutes, stirring frequently, until the cabbage softens.
Add 100ml/3½fl oz chicken stock, cover and cook for a further 3-4 minutes, or until the cabbage is just tender. Set aside at room temperature.
Place two large heavy-based frying pans over a high heat for one minute. Add two tablespoons of grapeseed oil to each. Season the skin-side of the turbot with salt and fry the fish for 1-2 minutes until golden-brown.
Add half the butter to each pan, turn the fish over, add 75ml/3fl oz of chicken stock to each pan and transfer to the oven. Cook for three minutes alongside the celeriac.
Remove the fish from the oven, coat each portion with a spoonful of pesto and set aside to rest for five minutes.
Heat through the celeriac milk purée and the cabbage.
Lay out eight large pre-heated plates. Place a generous spoon of purée at the top of each plate and drag the spoon through it to smear the purée around half of the plate.
Unwrap the baked celeriac and transfer a piece to each plate.
Place a flat bed of cabbage in the centre of the plate, sit a piece of turbot on top and spoon some of the buttery juices around the fish.


| Windows XP: | Internet Explorer 6, Netscape Navigator 4 + 7, Opera 7, Firefox 1 |
| Mac OS X: | Internet Explorer 5, Safari 1* |
<script language="JavaScript" src="ticker.js"></script>The actual width of the ticker DIV depends on the text length of your ticker messages. You can of course set the visible ticker area to any size you wish, but this has no effect on the actual width. If the actual width is bigger than the width of your browser window, a horizontal scrollbar will appear. You can avoid this by putting the page with the ticker script into a frameset with scrollbars turned off.


The Best Christmas Gifts For Pet Obsessives
by Sarah BasfordPet owners will know that sometimes their pet's happiness comes before their own. Many shopping trips end in accidentally buying more gourmet food for cats or dogs than for themselves. So, when Christmas comes around, get your crazy cat friend or your pooch freak family member something for their better halves. They'll probably enjoy it more than a gift for themselves anyway.
 The Furbo Dog Camera lets you watch your pet, interact with it and toss it some treats so it never has to feel alone. It also alerts you if your dog's barking and will let you take snaps when it comes up to boop the device. Every dog lover needs their very own so it will make The Perfect Gift.
Pet portraits
Nothing says true love like putting a majestic portrait of your pet in fine human clothing on the wall. There are a number of pet portrait services around the world, each as extra and ridiculous as the next but one on Etsy, in particular, takes it to another level.
 If you'd like a more realistic version, Australian artists like Painted Pets, Evei Art and Susanna Bertolacci are all good choices.
DOTT The Smart Dog Tag
Getting more data about your dog is what every good dog obsessive wants. How many zoomies does my dog do? When does my dog wake up and go to sleep? The DOTT Smart Dog Tag is your answer.
This smart tag is a bit like a dog collar that gives you information about your dog's daily step count, medication breaks, food and toilet times. It's confusingly not a GPS tracker in any way but you can detect where your dog is within a radius of around 384,844 square feet, according to its site.
FurHaven Pet Dog
Pets, like humans, love their need comfy beds. While some furry animals might still opt for the floor, giving them the option of something even you'd like to sleep in will make any pet owner feel good about their choices.
The FurHaven is exactly that sort of on-point bedding any human will be curious to test out for themselves. Sleeping in the doghouse never felt so heavenly.
DNA MY Dog
Ancestry DNA tests are all the rage right now but what if you could do it for dogs too? The DNA My Dog makes that niche a reality. Cheek swab a pooch, ship off the cotton swab and wait patiently for the results to roll in. It'll match the relevant breeds as well as screen for any major health conditions.
Basepaws Cat DNA Test
We can't include a doggy DNA kit without also including their mortal enemies, the cats. This kit will give a good idea of what breeds your cat hails from and will confirm your suspicions about your kitty being part tiger, lion or lynx.
It'll set you back a lot more than a regular human DNA kit but if that's what truly makes your gift recipient happy, what's a few hundred bucks to know their designer kitty really is a rare breed.
SereneLife Automatic Cat Laser
Despite seemingly wanting to the opposite, cats need love and attention too. If your recipient's not able to give them all the playtime they (sometimes secretly) want, they'll need to give them a few toys so they don't wreck the couch or push precious mementos off shelves. This cat laser might be the answer to fill the feline friend's entertainment quota.
This laser has an automatic switch-off timer to conserve battery power but if their cat can last the full 30 minutes, they'll likely be satisfied for a few hours at least.
Petnet SmartFeeder
Many pets experience the weekdays at home alone while their owner is off at work and while most owners are responsible, everyone's prone to a haunting 'did I top up the dry food?' moment. Thankfully, technology has introduced smart feeders to the world, which allow you bulk fill a container and ration it out through your smart phone so you can top up even when you're not at home.
The Petnet SmartFeeder lets you arrange daily meal times and portion sizes and can even be rigged up to order you more pet food when your stocks are running low. It's the perfect gift for forgetful pet owners.


Together with Aquiles Carattino and Nascent Ventures, we recieved a take-off grant for characterization of nanoparticles in solution
An NWO Take-off grant has been awarded for commercialization of the nanoCET platform, a device that can measure the size, concentration and charge of nanoparticles while in solution. With a commercial version of this device, we hope to accommodate a very large group of researchers in different fields.
Here is an extract form the UU news item about this grant:
“The novelty about nanoCET is the fact that samples are investigated in a solution, which keeps particles in their natural three-dimensional shape. The device can thus optically track nanoparticles like single viral proteins. It consists of an optical fiber with a channel smaller than a wavelength of light. Inside this channel, light runs through an aqueous sample that contains nanoparticles. The light is scattered, and nanoparticles are detected by the microscope.
With the NWO Take-off grant of 40,000 euros, the Light in Complex Systems group of the Debye Institute for Nanomaterials Science will be able to do a feasibility study in the first half of 2019, investigating the expected success of spin-off company. The invention itself was done in 2015, when Sanli Faez worked at Leiden University. Watch the video made by Harvard University at that time.”


Welcome to the Droid Store, where you can satisfy all of your robot needs. The Droid Store is located in Moon City and founded by Stephen Sun.


I am a Stanford student studying design. I am in love with San Francisco and all things tech. I am particularly interested in human behavior, user experience, and designing for accessibility. I also love music, fashion, and really cool typography...and apparently, lists of three!


Constructor
new SignetKeySet()
Constructor to create a SignetKeySet object.
Methods
exportOwnershipKeyPair() → {Array}
Export the ownership key pair public key and private key
as base64 URL encoded strings.
See SignetKeyPair.exportKeys for details.
Returns:
Array with two SignetKey values
- Type
- Array


I'm A Celebrity's Jacqueline has terrifying encounter in bed with giant snake
I’m A Celebrity… Get Me Out of Here! Champ Jacqueline Jossa has the fright of her life tonight when she lifts up the bed covers to find a humongous python chilling on a pillow during tonight’s Bushtucker trial.
The former EastEnders star came under fire from viewers and comedian Andrew Maxwell – who also clashed with Ian Wright over crocodile feet, obviously – last night after she refused to take part in a draw to be banished to the Jailhouse.
Advertisement Advertisement
However, tonight’s she more than proves she’s got the prowess to deliver as she battles through a chamber of serpents to win food for camp, while Rak-Su singer Myles Stephenson is locked in a box with some snakes of his own.
Will the camp go hungry tonight or will Jacqueline silence her doubters with a full bag of stars for camp?
The 27-year-old broke down in tears last night after admitting she was homesick. The actress has left behind her two daughters Ella, four, and Mia, one, with husband Dan Osborne.
I just woke up feeling a bit like “mmmm” when you’re just looking up at pure Jungle and you think, “Wow, I’m so far away from home,”’ she sobbed.
‘The thing is, everyone is missing their families, I just feel like it’s too soon to be crying missing your family…and we all smell so bad, we just stink, I stink, the smelliest I’ve ever been in my life.’
I’m A Celebrity… Get Me Out Of Here! continues tonight at 9pm on ITV.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Locating you...
Click here if nothing happens or you block location requests
This website requires Javascript
The current weather is loading... with a temperature of loading... °F
Loading...


Room Maker is a Virtual Reality scenario editor
developed using Unity 3D and Oculus hardware.
Using Room Maker users can create their own indoor scenarios with different
lighting and furniture, and explore them using VR technology.
Platform: Windows
DOWNLOAD
(WINDOWS)
I have always been really interested in Virtual Reality and
Room Maker allowed me to research and explore deeper this incredible technology.
Room Maker was created to solve a problem I had when I was in the process of getting new furniture for my house. I
wanted to have the biggest bed I could fit in my room, but at the same time have as much free space left as
possible. At that moment, the idea of developing a VR software application that would allow people see how furniture would
look in their rooms before buying it came to my mind, and that is how Room Maker was born.
In the end, Room Maker worked better than I expected and I was able to find the
perfect solution to my problem.
• Lead a 4 people team into developing a functional version of the software in 3 months.
• Created a gizmo shader for moving the objects through the scenario.
• Designed and programmed the most critical parts of the application.
• Explored and learned how to develop VR software in Unity 3D.
• Designed the User Interface and the User Interaction process.
• Created some of the 3D and 2D assets.


Vizception tooltip
Brought to you by Chris DeMartini (
@demartsc
) and Tamas Foldi (
@tfoldi
)
X
d3.js force layout
Matrix


How can you help?
Can you help somebody with a cooked meal or raashan?
-
Enter your details
- Please mention your name or organisation name
- Please specify if you are an NGO, a group or an individual
- Add your contact number
- Select the persons/families you want to help by ticking the checkbox. Press 'Confirm the contribution' button, it will take you to the final screen.
- We suggest noting down the details (name, address, phone number, and request) or take a screenshot.
- Please enter the OTP sent on your number to verify and give the final confirmation. You can also check the details of the request in the completed list.
The below families are yet to be helped. We hope that you will be able to come forward and provide them with meals.
Please select the families you want to help using the check box, checkout with your mobile number and give the OTP in the next screen to confirm your contribution.
| Take this Request | Name | Contact Number | Number Of Needy | City | Address | Locality | Landmark | Request Status | Request Type | Requestor Name | Requestor Number | Date Of Entry |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{item.name}} | {{item.contact_num}} | {{item.num_needy}} | {{item.city}} | {{item.requestor_address}} | {{item.locality}} | {{item.landmark}} | {{item.request_status}} | {{item.type_help}} | {{item.volunteer_name}} | {{item.vol_contact_num}} | {{item.date_of_entry}} |
DISCLAIMER: In order to avoid losing Requestors' information, we suggest noting down the details (name, address, phone number and request) or take a screenshot.
Feel free to contact us on<EMAIL_ADDRESS>in case of any glitches.


Wants pawn term dare worsted ladle gull hoe lift wetter murder inner ladle cordage honor itch offer lodge, dock, florist. Disk ladle gull orphan worry putty ladle rat cluck wetter ladle rat hut, an fur disk raisin pimple colder Ladle Rat Rotten Hut.
Languages
Bash, Groovy, Java, JavaScript, Kotlin, Python, TypeScript, Zig
Frameworks
Android, Express, React, Remix, Svelte
2008
Bachelor of Science, University of Higher Learning, Ny-Ålesund, Norway


Easily Access Websites that computer science engineer use daily
Competitive Coding Website
Projects and Intership
placement prepration
website to study CSE subjects
Youtube channel to study CSE subjects
others
Made with love by Aman Kathait


Ocean Protein Portal Schema
Latest:
http://schema.oceanproteinportal.org/v2/
Publisher:
Ocean Protein Portal
, (
Woods Hole Oceanographic Institution
)
Ontology Specification Draft


[name]
Class for loading a [page:CubeTexture CubeTexture].
This uses the [page:ImageLoader] internally for loading files.
Example
[example:webgl_materials_cubemap materials / cubemap]
[example:webgl_materials_cubemap_balls_reflection materials / cubemap / balls / reflection]
[example:webgl_materials_cubemap_balls_refraction materials / cubemap / balls / refraction]
[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic]
[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2]
[example:webgl_materials_cubemap_refraction materials / cubemap / refraction]
var scene = new THREE.Scene();
scene.background = new THREE.CubeTextureLoader()
.setPath( 'textures/cubeMaps/' )
.load( [
'1.png',
'2.png',
'3.png',
'4.png',
'5.png',
'6.png'
] );
Constructor
[name]( [page:LoadingManager manager] )
[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
Creates a new [name].
Properties
[property:String crossOrigin]
If set, assigns the [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
attribute of the image to the value of *crossOrigin*,
prior to starting the load. Default is *undefined*.
[property:LoadingManager manager]
The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
[property:String path]
The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.
Methods
[method:null load]( [page:String urls], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )
[page:String urls] — array of 6 urls to images, one for each side of the CubeTexture. These can also be
[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URIs].
[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].
[page:Function onProgress] — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.
[page:Function onError] — Will be called when load errors.
Begin loading from url and pass the loaded [page:Texture texture] to onLoad.
[method:null setCrossOrigin]( [page:String value] )
Set the [page:.crossOrigin] attribute.
[method:FileLoader setPath]( [page:String path] )
Set the base path or URL from which to load files. This can be useful if
you are loading many textures from the same directory.
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]


Schedule Builder
Create your customized schedule based on the courses you have chosen.
Courses and dates are picked from uSis and the .pdf
timetable on the
official university website.
Courses in bold are obligatory for both specialisations.
Last updated: 27/08/2020.
Notes
- Rooms for workgroup Managing Software Evolution not known yet


{% extends "header.html" %} {% block title %}Welcome{% endblock %} {% block styles %} {{super()}} {% endblock %} {% block content %}
This website is designed to increase the accessibility of muscle synergy calculation by deploying python based algorithms online to increase use across the field of motor control. Use this website to explore the world of muscles synergy calculations and how altering filtering parameters or included muscles changes the synergy results.
To upload files create an account and wait for account approval. Each account is manually confirmed to minimize the chance of malicious users, but please don't hesitate to reach out if the confirmation process is taking unexpectedly long. Once your account is approved you will be able to submit a maximum of 5 files for processing, but each file can be processed multiple times.
After submitted files are processed, the results can be downloaded - both as images and as csv files of the synergy results.
To view the source code and adapt it for your own uses you can visit the github repo. If you have suggestions or any inquires do not hesitate to reach out.
Please credit this site code when using source code or results from the site in published work.


Text shadows are cool
I'm so COOL!
These text fields look like buttons, right?
We are not buttons :)
We are not buttons :)


| Interface | Description |
|---|---|
| ActionKeyValue<KeyType,ValueType> | Deprecated
Use
BiConsumer . |
| Cache<Key,Value> |
A cache
|
| CacheSet<T> | |
| Callback<T> | |
| Closeable |
Close this object.
|
| Creator<T> |
Represents a creator of things.
|
| Pool<T> | |
| ProgressMonitor.Output | |
| Sink<T> |
Interface for the destination of things
|
| Sync |
| Class | Description |
|---|---|
| Alarm |
An Alarm set by AlarmClock
|
| AlarmClock |
An AlarmClock is an object that will make a callback (with a value) at a
preset time.
|
| Alg | |
| ArrayUtils |
Collection of array-related operations
|
| BitsInt |
Utilities for manipulating a bit pattern which are held in a 32 bit int.
|
| BitsLong |
Utilities for manipulating a bit pattern which are held in a 64 bit long
|
| ByteBufferLib | |
| Bytes |
Byte-oriented operations.
|
| CacheFactory | |
| Chars | |
| CollectionUtils | |
| DateTimeUtils | |
| EscapeStr |
String escape utilities
|
| FileOps |
A library of utility operations on files and the filing system
|
| Hex |
Working in hex ...
|
| IRILib |
Operations related to IRIs
|
| Lib | |
| ListUtils |
Various things for lists
|
| Map2<K,V> |
A map with parent sharing.
|
| NumberUtils | |
| Pair<A,B> | |
| PoolBase<T> |
A Pool of objects.
|
| PoolSync<T> |
Synchronization wrapper for a pool
|
| ProgressMonitor |
Progress monitor - output lines to show the progress of some long running operation.
|
| PropertiesSorted |
Sorted output
|
| PropertyUtils | |
| RandomLib | |
| RefCountingMap<K,T> |
A key -> value 'map' which reference counts entries.
|
| Registry<K,T> | |
| SetUtils |
Set specific operations
|
| SinkCounting<T> | |
| SinkLogging<T> | |
| SinkNull<T> | |
| SinkPrint<T> | |
| SinkSplit<T> |
Split a sink stream and duplicate the operations onto two sinks
See also:
SinkWrapper |
| SinkToCollection<T> |
Send items to a collection
|
| SinkToQueue<T> |
Send items to a blocking queue
|
| SinkWrapper<T> |
Wrap one sink in another - to pass on behaviour, the derived Sink must call super.operation
See also:
SinkSplit |
| StrUtils |
Some functions that act on strings
|
| SystemUtils | |
| Timer |
A Timer of operations
|
| Trie<T> |
An implementation of a classic Trie, this is a mapping from strings to some
value type optimized for fast prefix search and match.
|
| Version |
Manage version information for subsystems
|
| XMLLib |
Operations in someway related to XML
|
| Enum | Description |
|---|---|
| CharSpace |
rather write 'true' or 'false', use this enum
|
| Exception | Description |
|---|---|
| InternalErrorException | |
| NotImplemented |
Licenced under the Apache License, Version 2.0


Instruction, Information literacy, Data management, Collection development, Reference, Branch management
ArcGIS, QGIS, Real Estate parcel/legal description, Familiar with municipal planning and real estate records management
I am the subject liason for Biology, Chemistry, Computer Science, Earth Science, Geography and Environmental Studies, Math, and Physics.
Managed an "Information Commons" model branch campus Library Subject specialist liasion for Social Work and Geography and Environmental Studies Taught 45 information literacy instruction sessions in 2017 - 2018
Staffed El Centro reference desk and supervised graduate assistants Supported ongoing popular reading collection through active Collection development
Designed institutional repository of property documents for Seattle’s 450 parks Developed cataloging policies responsive to stakeholder needs Processed and digitized over 250,000 pages and cataloged nearly 7,000 records


Generated at
This page is automatically refreshed every 60 seconds
| Service | Status | Availability (one month, in %) | ||
|---|---|---|---|---|
| {{ $k }} | {{ if .HealthCheck.Unhealthy }}❌ service not ok | {{ printf "%.4f" (.GetAvailability $k) }}% | {{ else }}✔ service ok | {{ printf "%.4f" (.GetAvailability $k) }}% | {{ end }}


Data science aspirant, Machine learning enthusiast, computer engineer, freelance web developer
Find Out MoreCompleted Computer Engineering in 2016
Completed HSC in 2011
Completed SSC in 2009
Get Started!i have been into freelance web developing since 1 year
worked as a web developer intern at Aureatech solutions
Successfully presented the idea for mobile app developement and advanced for national level round conducted by Nurture Talent Academy
Held the post of secretory in IEEE students committee of our college
Ready to start your next project? That's great! Give a call or send an email and we will get back to you as soon as possible!
+91-9049048028


Split an icon font into individual pre-rendered PNGs
Everything in Font Slicer is done client side, in the browser only, with HTML Canvas. There is no server component. Fonts are preloaded into the page then drawn to an off-screen canvas. Then it renders the canvases to PNGs using canvas.toDataURL(). The zip file is generated with the awesome Gzip-JS library


#include <ArduinoUnit.h>
Public Member Functions | |
| void | pass () |
| void | fail () |
| void | skip () |
| virtual void | setup () |
| virtual void | loop ()=0 |
| Test (const __FlashStringHelper *_name, uint8_t _verbosity=TEST_VERBOSITY_TESTS_ALL|TEST_VERBOSITY_ASSERTIONS_FAILED) | |
| Test (const char *_name, uint8_t _verbosity=TEST_VERBOSITY_TESTS_ALL|TEST_VERBOSITY_ASSERTIONS_FAILED) | |
Static Public Member Functions | |
| static uint16_t | getCurrentPassed () |
| static uint16_t | getCurrentSkipped () |
| static uint16_t | getCurrentFailed () |
| static uint16_t | getCurrentCount () |
| static void | include (const char *pattern) |
| static void | exclude (const char *pattern) |
| static void | run () |
| template<typename T > | |
| static bool | assertion (const __FlashStringHelper *file, uint16_t line, const __FlashStringHelper *lhss, const T &lhs, const __FlashStringHelper *ops, bool(*op)(const T &lhs, const T &rhs), const __FlashStringHelper *rhss, const T &rhs) |
Public Attributes | |
| uint8_t | state |
| String | name |
| uint8_t | verbosity |
Static Public Attributes | |
| static uint8_t | max_verbosity = TEST_VERBOSITY_ALL |
| static uint8_t | min_verbosity = TEST_VERBOSITY_TESTS_SUMMARY |
| static const uint8_t | UNSETUP = 0 |
| static const uint8_t | LOOPING = 1 |
| static const uint8_t | DONE_SKIP = 2 |
| static const uint8_t | DONE_PASS = 3 |
| static const uint8_t | DONE_FAIL = 4 |
| static Print * | out = &Serial |
| static Test * | current = 0 |
There are two convenience macros for extending this class and implement a one-step test (test macro), or a multi-step test (testing macro).
One shot (first loop()) test
test(me_once) { int x=1,y=2; assertNotEqual(x,y); }
Continuous (every loop() until pass(), fail(), or skip()) test
testing(me_often) { assertEqual(digitalRead(errorPin),LOW); }
Roll-your-own test:
class MyTest : public Test { public: MyTest(const char *name) : Test(name) {} {
can set verbosity here. } void setup() { can set verbosity here. call call pass(), fail(), or skip() can make assertions } void loop() { can set verbosity here. call call pass(), fail(), or skip() can make assertions } };
void setup() { all tests are included by default Test::exclude("*_skip"); if (no_slow_tests) Test::exclude("*_slow"); if (all_crypto_tests) { Test::include("crypto_*"); Test::exclude("crypto_*_skip"); } }
void loop() { Test::run(); }
Variables you might want to adjust:
static Print* Test::out
&Serial
This affects the output of all tests
uint8_t verbosity
– defaults to
TEST_VERBOSITY_ASSERTIONS_FAILED|TEST_VERBOSITY_TESTS_ALL
– to keep code small, reporting code that is not set in
TEST_MAX_VERBOSITY
is removed, so setting verbosity bits outside this mask has no effect. The default mask is to have all output available, and the only reason to change this is to save some code space.
|
static |
exclude (skip) currently included tests that match some wildcard (*) pattern like,
"my_broken_test", "*_skip", "*", "io_*", etc.
This should be done inside your setup() function.
| void Test::fail | ( | ) |
Set state to DONE_FAIL. This does not exit the code early. But after the loop() terminates, the test will be resolved and removed from the list of active tests.
|
static |
|
pure virtual |
Run a test. Test::loop() will be called on each Test::run() until a pass(), fail() or skip().
Implemented in TestOnce.
| void Test::pass | ( | ) |
Set state to DONE_PASS. This does not exit the code early. But after the loop() terminates, the test will be resolved and removed from the list of active tests.
|
static |
Simple usage:
void setup() { Serial.begin(9600); } void loop() { Test::run(); }
Complex usage:
void setup() { Test::exclude("*"); // exclude everything Test::include("io_*"); // but include io_* tests Test::exclude("io_*_lcd"); // except io_*_lcd tests Test::include("crypto_*_aes128"); // and use all crypto_*_aes128 tests }
void loop() { Test::run(); }
|
virtual |
Setup a test. This is an nop {} definition by default, but for some more general cases it will be called once from before continuously calling Test::loop(). You can skip(), pass(), fail(), set verbosities, or make assertions here.
| void Test::skip | ( | ) |
Set state to DONE_SKIP. This does not exit the code early. But after the loop() terminates, the test will be resolved and removed from the list of active tests.
|
static |
The current active test (=0 if none are active). Asserts are allowed outside of tests, but just return if fail and potentially (according to min_verbosity and max_verbosity) print a message to the Test::out stream.
|
static |
State of a failed test.
|
static |
State of a passed test.
|
static |
State of a test that will be counted as skipped. This can be done any time before resolving the test some other way, but should mean some small amount of steps to determine that no actual testing was done.
|
static |
State of a test while actively in loop(). Tests are resolved by changing state one of the DONE_ states.
|
static |
After the compile-time-mask TEST_MAX_VERBOSITY, this is a global run-time-mask of what output should be generated.
|
static |
After the compile-time-mask TEST_MAX_VERBOSITY, and the global (static) run-time-mask Test::max_verbosity of what output can be generated, this is a global (static) run-time-mask of what output should be generated.
| String Test::name |
the name of this test
|
static |
/brief Output stream for all tests. The default value of this is ``` Test::out = ``` This places the output on the main serial port. The library does not set the baud rate, so you must do so in your setup().
To redirect all output to some other stream, say the Serial3 device of the arduino mega, use
Serial3.begin(19200L); Test::out = &Serial3;
in your setup().
| uint8_t Test::state |
The current state of this test. It is one of:
UNSETUP, LOOPING, DONE_PASS, DONE_FAIL, DONE_SKIP
|
static |
| uint8_t Test::verbosity |
Per-test verbosity defaults to TEST_VERBOSITY_TESTS_ALL|TEST_VERBOSITY_ASSERTS_FAILED, but note that the compile-time constant TEST_VERBOSITY_MAX and run-time global (static) values Test::max_verbosity and Test::min_verbosity also effect the verbosity of a test. According to the following rules:
output = false; if (TEST_MAX_VERBOSITY bit is set (output KIND exists)) { if (all-test Test::max_verbosity bit is set (output KIND allowed)) { if (all-test Test:min_verbosity bit is set (output KIND required)) { output = true; } else if (per-test Test::verbosity bit is set (output KIND use)) { output = true; } } }
if (output) { OUTPUT to Test::out }


Running a CalDAV server on Ubuntu (2020 edition)
When playing with calDAV it makes sense to have a reference implementation to refer to. The GOLD standard ist Apple's CalendarServer with its lovely Open Source Repository.
Getting it to work on Linux (Ubuntu in my case), isn't for the faint of heart. Here is what you need to do.
File system preparation
Calendar server needs extended attributes. The default Ext4 file system does support them out of the box, but you want to check first (you might have a different file system after all):
Check if file system supports extended attributes
Check using this command:
touch test.txt
setfattr -n user.test -v "hello" test.txt
getfattr test.txt
Expected output: user.test
If the command setfattr
is not available, install with sudo install attr
Enable extended atttributes if required
Important if the previous command worked, skip this step. Don't mess with fstab! Make a backup copy if required and have your emergency boot stick ready. A messed up fstab will prevent your machine from booting!
Edit /etc/fstab
. In the 4th colum of the file system add user_xattr
. There might be values like noatime
or defaults
. Add user_xattr
separated by a comma. Reboot.
Install calendar server
Execute sudo apt install calendarserver postgresql
.
The server wants a postgresql database, so you need to be sure to have that installed too. Apple loves Python, so there ill be quite some phython packages installed, as well as a new user caldavd Since this is a system user, its home directory is /var/spool/caldav
Configure the calendar server
Execute sudo nano /etc/caldavd/caldavd.plist
(if you don't have nano
install it or use vi)
- Set the server host name
- Optional: Switch on SSL and look for the SSL / TLS section for keys
Edit /etc/default/calendarserver
uncomment start_calendar_server=yes
Configure the database
There used to be a script calendarserver_bootstrap_database
which is missing from the current installation, so we do it the hard way:
sudo -u postgres createuser caldavd --no-createdb --no-createrole --no-superuser
sudo -u postgres createdb --owner=caldavd caldav
sudo -u caldavd psql -f /usr/lib/python2.7/dist-packages/txdav/common/datastore/sql_schema/current.sql caldav
Check with sudo service calendarserver status
and then start with sudo service calendarserver start
- it also will restart on reboot
Obsolete information (found in other instructions)
When poking around (see also the links below), one comes across a lot of frustration, fine geeki-speak and quite some outdated information.
Some of the things you don't need to try (or do for that matter):
- copy files from
/usr/share/doc/calendarserver/examples
- check for file
sudoer.plist
(gone, not needed anymore) - run
calendarserver_bootstrap_database
- it's gone (even if the manpage still exists) - look for
calendarserver_manage_postgres
- gone - launch calendar with
/etc/init.d/calendarserver start
- create extra users
- mess with permissions
- install extra packages (YMMV here!)
The result
You will have a calendar server listening on localhost:8008 with 2 users:
- admin / admin
- test / test
DO NOT USE SUCH A SYSTEM IN PRODUCTION
Next steps
- Configure HTTPS
- Use a different user directory
- backup your stuff
- Install the Test suite and run it
Check the documentation for details!
Sources
- The best hints to get it to work
- Dean's blog for starters
- Apple documentation - some commands are also on Linux, some are not (for Germans: Rate mal mit Rosenthal)
- Debian Wiki
- Ubuntu Wiki
- Ubuntu instructions
- Quick path to frustration
As usual: YMMV
Posted by Stephan H Wissel on 01 February 2020 | Comments (5) | categories: calDAV WebDevelopment


WILD WILD WEST (Warner Bros.) Starring: Will Smith, Kevin Kline, Kenneth Branagh, Salma Hayek, Ted Levine. Screenplay: S. S. Wilson & Brent Maddock and Jeffrey Price & Peter S. Seaman. Producers: Jon Peters and Barry Sonnenfeld. Director: Barry Sonnenfeld. MPAA Rating: PG-13 (adult themes, violence, adult humor, profanity) Running Time: 105 minutes. Reviewed by Scott Renshaw.
There are three ways you can go when you adapt a television series for film. You can poke fun, which worked well with the BRADY BUNCH films. You can play it straight, which worked well with THE UNTOUCHABLES. Or you can pump it up with cinematic steroids, which has crashed and burned THE AVENGERS, THE MOD SQUAD, LOST IN SPACE, MY FAVORITE MARTIAN, etc. In their zeal to dust off beloved small screen properties for the big screen, producers often have ignored everything that made those properties beloved in the first place. The nostalgia card only plays so far, after all -- if you want to bring in the kids, you've got to blow more stuff up.
There was every reason to suspect that WILD WILD WEST would be the latest T.V. charmer-turned-blockbuster monstrosity. Producer Jon Peters was renowned for embracing the "too much isn't nearly enough" ethos, and word of disastrous test screenings had been leaking out of Hollywood for a few months. As it turns out, WILD WILD WEST is only part monstrosity and part faithful re-creation, with neither approach working nearly as well as it should.
The principals are once again James West (Will Smith) and Artemus Gordon (Kevin Kline), Federal agents circa 1869. West, an Army investigator, is a man of action; U. S. Marshal Gordon is an intellectual inventor and master of disguise. The two clashing personalities are teamed up at the insistence of President Grant (also played by Kline) to find out who is kidnapping scientists and threatening to overthrow the government. The trail leads to Arliss Loveless (Kenneth Branagh), an embittered former Confederate scientist determined to take out on the United States the loss of the lower half of his body in an experiment gone awry.
There are at least a few hints that director Barry Sonnenfeld is interested in evoking tongue-in-cheek spirit of the series. The main title sequence includes the familiar tinted freeze-frames, the protagonists still travel in their private train the Wanderer, and the grand plans of the maniacal villain are appropriately maniacal. The film also hooks in to the series' anachronistic satire of James Bond-like secret agent hijinks, which turns into a surprising problem. In 1965, it was fresh to watch Artemus play fussy Q to West's brawling Bond, fresh to watch an adventure self-aware of adventure genre conventions. In 1999, hip referentiality just isn't hip any more, especially when it comes to manly action heroes and their toys. When Will Smith's character introduces himself as "West...James West," it should play as a winking homage. Instead, it just feels tired.
When WILD WILD WEST doesn't work as a straight return to the gimmicks and goofs of the series, there's always the bombastic special effects route. Gadgetry and megalomania were common elements of the series, but a computer-rendered 80-foot-tall mechanized tarantula-tank doesn't have quite the same low-tech appeal. The overkill isn't even restricted to the special effects, with Salma Hayek's va-va-voom appeal wasted for no other reason than a little bare flesh. And when the script is in need of an easy joke, there's always Smith knowingly fending off Southern racism. Branagh seems to understand the theatrical hamminess required for Loveless, pitching the character as cartoonish as he can be.
WILD WILD WEST is so frantic that it spends too little time on its strongest asset, the interplay between Smith and Kline. Both actors have fine comic timing, and both play up the rivalry between the gunslinger and the deep thinker. There are more enjoyable comic moments in WILD WILD WEST than I was expecting, thanks to Sonnenfeld's sometimes surreal comic touch (references to E. T. and the RCA Victor dog). He just bounces back and forth too often between approaches to the material. It's uneven as throwback entertainment, and it's uneven as contemporary action film -- a wild wild mess of a movie that shows the danger of playing around with previously successful material, no matter how you try to play it.
On the Renshaw scale of 0 to 10 whirled series: 5.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
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


Noake Grove
[0, 90]
|
Club Bratt
[1, 90]
|
Sayer Towers
[2, 90]
|
Denning Bank
[3, 90]
|
Carrington Park
[4, 90]
|
Attrill Drive
[5, 90]
|
the Heard Arms
[6, 90]
|
a junkyard
[7, 90]
|
St Hormisdas's Church
[8, 90]
|
a cemetery
[9, 90]
|
Gervais Bank
[0, 91]
|
Axe Grove
[1, 91]
|
Trebley Place
[2, 91]
|
Zephyrinus General Hospital
[3, 91]
|
the Franklin Museum
[4, 91]
|
Club Gellard
[5, 91]
|
Espin Alley
[6, 91]
|
the Stickling Building
[7, 91]
|
wasteland
[8, 91]
|
Swaine Library
[9, 91]
|
Marchetti Bank
[0, 92]
|
Sly Grove
[1, 92]
|
Horton Square Fire Station
[2, 92]
|
Woof Grove Fire Station
[3, 92]
|
the Orlando Arms
[4, 92]
|
Tintiney Park
[5, 92]
|
Farnworth Alley
[6, 92]
|
Harries Towers
[7, 92]
|
the Barratt Hotel
[8, 92]
|
Glessell Avenue
[9, 92]
|
McEwan Grove
[0, 93]
|
Care Bank
[1, 93]
|
Amory Lane
[2, 93]
|
Mildon Square
[3, 93]
|
Wale Place
[4, 93]
|
Dinovan Alley
[5, 93]
|
a junkyard
[6, 93]
|
Gregg Library
[7, 93]
|
wasteland
[8, 93]
|
Durling Road
[9, 93]
|
Shervord Place
[0, 94]
|
Starkey Row
[1, 94]
|
Dane Drive
[2, 94]
|
Lathey Drive
[3, 94]
|
Halliday Lane
[4, 94]
|
a carpark
[5, 94]
|
Lawrence Auto Repair
[6, 94]
|
the Gulliver Building
[7, 94]
|
the Vick Arms
[8, 94]
|
Edgington Way
[9, 94]
|
Cottingham Drive Fire Station
[0, 95]
|
the Mitchener Building
[1, 95]
|
Blunden Walk
[2, 95]
|
Painter Street School
[3, 95]
|
the Parr Building
[4, 95]
|
Comitty Row Fire Station
[5, 95]
|
Hinkes Auto Repair
[6, 95]
|
Raggett Row
[7, 95]
|
the Fullaway Building
[8, 95]
|
Newmarch Avenue School
[9, 95]
|
Jukes Walk
[0, 96]
|
Maxwell Avenue
[1, 96]
|
a warehouse
[2, 96]
|
Redpath Place
[3, 96]
|
Tilke Bank
[4, 96]
|
a carpark
[5, 96]
|
wasteland
[6, 96]
|
Tope Alley Railway Station
[7, 96]
|
the Wagner Building
[8, 96]
|
the Court Building
[9, 96]
|
Purchas Towers
[0, 97]
|
a warehouse
[1, 97]
|
the Tebbet Building
[2, 97]
|
wasteland
[3, 97]
|
Small Street Fire Station
[4, 97]
|
Payton Square
[5, 97]
|
Drury Street
[6, 97]
|
Woollcombe Plaza
[7, 97]
|
Purvis Library
[8, 97]
|
St Timothy's Hospital
[9, 97]
|
Ashfield Alley Railway Station
[0, 98]
|
Gigg Road
[1, 98]
|
Club Chester
[2, 98]
|
Allwood Drive
[3, 98]
|
Weatherhead Lane
[4, 98]
|
the Wreford Building
[5, 98]
|
the Woolven Building
[6, 98]
|
the Curtis Building
[7, 98]
|
Methringham Grove
[8, 98]
|
Sartain Road
[9, 98]
|
Pritchard Grove Railway Station
[0, 99]
|
the Keyford Museum
[1, 99]
|
Hersant Avenue
[2, 99]
|
Judd Cinema
[3, 99]
|
the Connors Motel
[4, 99]
|
wasteland
[5, 99]
|
the Parkhouse Monument
[6, 99]
|
the Denty Building
[7, 99]
|
the Harford Building
[8, 99]
|
wasteland
[9, 99]
|
|
Menu
City Map
Find Location
Route Finder
World View
Map Mirror
|


progressive-image.js
GitHub | npm | donate | @craigbuckler | craigbuckler.com
progressive-image.js
implements a lazy-loading progressive image similar to those seen on Facebook and Medium. A very small, blurred image is replaced with the full-resolution equivalent when the element is scrolled into view.
Please use the code as you wish. Tweet me @craigbuckler if you find it useful and donate toward development if you use it commercially.
- saves unnecessary bandwidth
- fast loading, high performance, images loaded on view
- supports any image type (JPEG photographs are most appropriate)
- supports responsive images (
srcset
andsizes
attributes) - supports CSS background images
- small: 1,350 bytes of JavaScript, 440 bytes of CSS (minified)
- any CSS reveal effect can be applied
- no external dependencies - works with any framework
- makes up to three attempts if images fail to download
- works in all modern browsers (IE10+)
- progressively-enhanced to work in older browsers
- easy to use
The preview image can be very small - perhaps 20px in width and saved with high JPEG compression. This typically results in an image less than 500 bytes in size. It be added to the page directly or inlined as a base-64 data URI.
The large image can be any size but it must match the preview image's aspect ratio. For example, a preview image of 20x15 could be used for large image sizes including 200x150, 400x300, 1600x1200, etc. The page layout will jump if differing aspect ratios are used.
Basic example
The page must load the CSS and JavaScript. It can be placed anywhere on the page but, typically, the CSS is loaded in the
and the JS is loaded just before the closing
tag:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/progressive-image.js/dist/progressive-image.css">

CDN URLs are shown above but you can also npm i progressive-image.js
to install via npm and use a bundler.
Create a link to the full-size image from the preview img
. Add progressive
and replace
classes to the link and a preview
class to the image:

The preview and full-size images must have the same aspect ratio, e.g. 40x30 and 800x600.
The full image is revealed when the preview is scrolled into view. CSS3 effects are used to fade and zoom the image:
After replacement, link-clicking is disabled and the HTML becomes:

If JavaScript or image loading fails, a blurred version of the preview image can be clicked to view the full image:
Retain the link
If you require a responsive image to remain a real link, use the href
for the link address and add a data-href
attribute with the large image URL:

Note that users will not be able to view the full image if downloading or JavaScript fails.
Alternative container elements
If necessary, any HTML element can be used with a data-href
attribute rather than a link, e.g.

Note that users will not be able to view the full image if downloading or JavaScript fails.
Responsive images
Responsive images of differing sizes and resolutions can be defined in the container link/element using data-srcset
and data-sizes
attributes which map to the standard srcset
and sizes
attributes, e.g.

(carriage returns added to aid legibility)
On replacement, the image code is transformed to:

Modern browsers will load large.jpg when the viewport width is 800px or greater.
CSS background images
progressive-image.js
can replace CSS backgrounds.
Example HTML:

content

Any CSS selector can be used - a bgimg
class has been added in this example. Set the full-size image in your CSS as normal, e.g.
.bgimg {
background: url(large.jpg) 50% 50% no-repeat;
background-size: cover;
}
then add a .replace
definition with the smaller preview image:
.bgimg.replace {
background-img: url(tiny.jpg);
}
tiny.jpg
is replaced with large.jpg
as soon as the element appears in the viewport.
No CSS3 animation effects can be applied to background images. If effects are required, use a real image, set CSS object-fit: cover
, and ensure it is rendered below other content in the container.
Usage notes
progressive-image.js
works in all browsers from IE10 and above. IE10/11 will not blur the preview image. Older browsers fallback to click-to-view.- Only vertical scrolling is checked. All images in the horizontal plane will be loaded.
- Progressive images dynamically added to the page using JavaScript are loaded if the browser supports
MutationObserver
or when the viewport is scrolled/resized. - Actual or perceived performance may be improved using an SVG preview image, inlined data URIs, or intrinsic placeholders.
Image credit
Images in this demonstration have been sourced from unsplash.com and are credited to Alex Blăjan, Philippe Toupet, James Padolsey, Ashim D'Silva, and Levi Guzman.