Apache FOP Output Formats
FOP supports multiple output formats by using a different renderer for each format. The renderers do not all have the same set of capabilities, sometimes because of the output format itself, sometimes because some renderers get more development attention than others.
General Information
Fonts
Most FOP renderers use a FOP-specific system for font registration. However, the Java2D/AWT and print renderers use the Java AWT package, which gets its font information from the operating system registration. This can result in several differences, including actually using different fonts, and having different font metrics for the same font. The net effect is that the layout of a given FO document can be quite different between renderers that do not use the same font information.
Theoretically, there's some potential to make the output of the PDF/PS renderers match the output of the Java2D-based renderers. If FOP used the font metrics from its own font subsystem but still used Java2D for text painting in the Java2D-based renderers, this could probably be achieved. However, this approach hasn't been implemented, yet.
With a work-around, it is possible to match the PDF/PS output in a Java2D-based renderer pretty closely. The clue is to use the intermediate format. The trick is to layout the document using FOP's own font subsystem but then render the document using Java2D. Here are the necessary steps (using the command-line):
-
Produce an IF file: fop -fo myfile.fo -at application/pdf myfile.at.xml
Specifying "application/pdf" for the "-at" parameter causes FOP to use FOP's own font subsystem (which is used by the PDF renderer). Note that no PDF file is created in this step. - Render to a PDF file: fop -atin myfile.at.xml -pdf myfile.pdf
- Render to a Java2D-based renderer:
- fop -atin myfile.at.xml -print
- fop -atin myfile.at.xml -awt
- fop -atin myfile.at.xml -tiff myfile.tiff
Output to a Printer or Other Device
The most obvious way to print your document is to use the FOP print renderer, which uses the Java2D API (AWT). However, you can also send output from the Postscript renderer directly to a Postscript device, or output from the PCL renderer directly to a PCL device.
Here are Windows command-line examples for Postscript and PCL:
fop ... -ps \\computername\printer
fop ... -pcl \\computername\printer
Here is some Java code to accomplish the task in UNIX:
proc = Runtime.getRuntime().exec("lp -d" + print_queue + " -o -dp -"); out = proc.getOutputStream();
Set the output MIME type to "application/x-pcl" (MimeConstants.MIME_PCL) and it happily sends the PCL to the UNIX printer queue.
PDF is the best supported output format. It is also the most accurate with text and layout. This creates a PDF document that is streamed out as each page is rendered. This means that the internal page index information is stored near the end of the document. The PDF version supported is 1.4. PDF versions are forwards/backwards compatible.
Note that FOP does not currently support "tagged PDF" or PDF/A-1a. Support for PDF/A-1b and PDF/X has recently been added, however.
Fonts
PDF has a set of fonts that are always available to all PDF viewers; to quote from the PDF Specification: "PDF prescribes a set of 14 standard fonts that can be used without prior definition. These include four faces each of three Latin text typefaces (Courier, Helvetica, and Times), as well as two symbolic fonts (Symbol and ITC Zapf Dingbats). These fonts, or suitable substitute fonts with the same metrics, are guaranteed to be available in all PDF viewer applications."
Post-processing
FOP does not currently support several desirable PDF features: watermarks and signatures. One workaround is to use Adobe Acrobat (the full version, not the Reader) to process the file manually or with scripting that it supports.
Another popular post-processing tool is iText, which has tools for adding security features, document properties, watermarks, and many other features to PDF files.
Here is some sample code that uses iText to encrypt a FOP-generated PDF. (Note that FOP now supports PDF encryption. However the principles for using iText for other PDF features are similar.)
public static void main(String args[]) { try { ByteArrayOutputStream fopout = new ByteArrayOutputStream(); FileOutputStream outfile = new FileOutputStream(args[2]); FopFactory fopFactory = FopFactory.newInstance(); Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, fopout); Transformer transformer = TransformerFactory.newInstance().newTransformer( new StreamSource(new File(args[1]))); transformer.transform(new StreamSource(new File(args[0])), new SAXResult(fop.getDefaultHandler())); PdfReader reader = new PdfReader(fopout.toByteArray()); int n = reader.getNumberOfPages(); Document document = new Document(reader.getPageSizeWithRotation(1)); PdfWriter writer = PdfWriter.getInstance(document, outfile); writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null, PdfWriter.AllowCopy); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfImportedPage page; int rotation; int i = 0; while (i < n) { i++; document.setPageSize(reader.getPageSizeWithRotation(i)); document.newPage(); page = writer.getImportedPage(reader, i); rotation = reader.getPageRotation(i); if (rotation == 90 || rotation == 270) { cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height()); } else { cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0); } System.out.println("Processed page " + i); } document.close(); } catch( Exception e) { e.printStackTrace(); } }
Check the iText tutorial and documentation for setting access flags, password, encryption strength and other parameters.
Watermarks
In addition to the PDF Post-processing options, consider the following workarounds:
- Use a background image for the body region.
- (submitted by Trevor Campbell) Place an image in a region that overlaps the flowing text. For example, make region-before large enough to contain your image. Then include a block (if necessary, use an absolutely positioned block-container) containing the watermark image in the static-content for the region-before. Note that the image will be drawn on top of the normal content.
PostScript
The PostScript renderer has been brought up to a similar quality as the PDF renderer, but may still be missing certain features. It provides good support for most text and layout. Images and SVG are not fully supported, yet. Currently, the PostScript renderer generates PostScript Level 3 with most DSC comments. Actually, the only Level 3 features used are the FlateDecode and DCTDecode filter (the latter is used for 1:1 embedding of JPEG images), everything else is Level 2.
Configuration
The PostScript renderer configuration currently allows the following settings:
<renderer mime="application/postscript"> <auto-rotate-landscape>false</auto-rotate-landscape> <language-level>3</language-level> <optimize-resources>false</optimize-resources> <safe-set-page-device>false</safe-set-page-device> <dsc-compliant>true</dsc-compliant> </renderer>
The default value for the "auto-rotate-landscape" setting is "false". Setting it to "true" will automatically rotate landscape pages and will mark them as landscape.
The default value for the "language-level" setting is "3". This setting specifies the PostScript language level which should be used by FOP. Set this to "2" only if you don't have a Level 3 capable interpreter.
The default value for the "optimize-resources" setting is "false". Setting it to "true" will produce the PostScript file in two steps. A temporary file will be written first which will then be processed to add only the fonts which were really used and images are added to the stream only once as PostScript forms. This will reduce file size but can potentially increase the memory needed in the interpreter to process.
The default value for the "safe-set-page-device" setting is "false". Setting it to "true" will cause the renderer to invoke a postscript macro which guards against the possibility of invalid/unsupported postscript key/values being issued to the implementing postscript page device.
The default value for the "dsc-compliant" setting is "true". Setting it to "false" will break DSC compliance by minimizing the number of setpagedevice calls in the postscript document output. This feature may be useful when unwanted blank pages are experienced in your postscript output. This problem is caused by the particular postscript implementation issuing unwanted postscript subsystem initgraphics/erasepage calls on each setpagedevice call.
Limitations
- Images and SVG may not be displayed correctly. SVG support is far from being complete. No image transparency is available.
- Only Type 1 fonts are supported.
- Multibyte characters are not supported.
- PPD support is still missing.
PCL
This format is for the Hewlett-Packard PCL printers and other printers supporting PCL. It should produce output as close to identical as possible to the printed output of the PDFRenderer within the limitations of the renderer, and output device.
The output created by the PCLRenderer is generic PCL 5, HP GL/2 and PJL. This should allow any device fully supporting PCL 5 to be able to print the output generated by the PCLRenderer. PJL is used to control the print job and switch to the PCL language. PCL 5 is used for text, raster graphics and rectangular fill graphics. HP GL/2 is used for more complex painting operations. Certain painting operations are done off-screen and rendered to PCL as bitmaps because of limitations in PCL 5.
References
Limitations
- Text or graphics outside the left or top of the printable area are not rendered properly. This is a limitation of PCL, not FOP. In general, things that should print to the left of the printable area are shifted to the right so that they start at the left edge of the printable area.
- The Helvetica and Times fonts are not well supported among PCL printers so Helvetica is mapped to Arial and Times is mapped to Times New. This is done in the PCLRenderer, no changes are required in the FO's. The metrics and appearance for Helvetica/Arial and Times/Times New are nearly identical, so this has not been a problem so far.
- For the non-symbol fonts, the ISO 8859-1 symbol set is used (PCL set "0N").
- All fonts available to the Java2D subsystem are usable. The texts are painted as bitmap much like the Windows PCL drivers do.
- Multibyte characters are not supported.
- At the moment, only monochrome output is supported. PCL5c color extensions will only be implemented on demand. Color and grayscale images are converted to monochrome bitmaps (1-bit). Dithering only occurs if the JAI image library is available.
- Images are scaled up to the next resolution level supported by PCL (75, 100, 150, 200, 300, 600 dpi). For color and grayscale images an even higher PCL resolution is selected to give the dithering algorithm a chance to improve the bitmap quality.
- Currently, there's no support for clipping and image transparency, largely because PCL 5 has certain limitations.
Configuration
The PCL renderer configuration currently allows the following settings:
<renderer mime="application/vnd.hp-PCL"> <rendering>quality</rendering> <text-rendering>bitmap</text-rendering> <disable-pjl>false</disable-pjl> </renderer>
The default value for the "rendering" setting is "speed" which causes borders to be painted as plain rectangles. In this mode, no special borders (dotted, dashed etc.) are available. If you want support for all border modes, set the value to "quality" as indicated above. This will cause the borders to be painted as bitmaps.
The default value for the "text-rendering" setting is "auto" which paints the base fonts using PCL fonts. Non-base fonts are painted as bitmaps through Java2D. If the mix of painting methods results in unwelcome output, you can set this to "bitmap" which causes all text to be rendered as bitmaps.
The default value for the "disable-pjl" setting is "false". This means that the PCL renderer usually generates PJL commands before and after the document in order to switch a printer into PCL language. PJL commands can be disabled if you set this value to "true".
You can control the output resolution for the PCL using the "target resolution" setting on the FOUserAgent. The actual value will be rounded up to the next supported PCL resolution. Currently, only 300 and 600 dpi are supported which should be enough for most use cases. Note that this setting directly affects the size of the output file and the print quality.
Extensions
The PCL Renderer supports some PCL specific extensions which can be embedded into the input FO document. To use the extensions the appropriate namespace must be declared in the fo:root element like this:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:pcl="http://xmlgraphics.apache.org/fop/extensions/pcl">
Page Source (Tray selection)
The page-source extension attribute on fo:simple-page-master allows to select the paper tray the sheet for a particular simple-page-master is to be taken from. Example:
<fo:layout-master-set> <fo:simple-page-master master-name="simple" pcl:paper-source="2"> ... </fo:simple-page-master> </fo:layout-master-set>
Note: the tray number is a positive integer and the value depends on the target printer. Not all PCL printers support the same paper trays. Usually, "1" is the default tray, "2" is the manual paper feed, "3" is the manual envelope feed, "4" is the "lower" tray and "7" is "auto-select". Consult the technical reference for your printer for all available values.
AFP
The FOP AFP Renderer deals with creating documents conforming to the IBM AFP document architecture also refered to as MO:DCA (Mixed Object Document Content Architecture).
References
Limitations
This list is most likely badly incomplete.
- Clipping of text and graphics is not supported.
- Only IBM outline and raster fonts and to a limited extend the original fonts built into FOP are supported. Support for TrueType fonts may be added later.
Configuration
Fonts
The AFP Renderer requires special configuration particularly related to fonts. AFP Render configuration is done through the normal FOP configuration file. The MIME type for the AFP Renderer is application/x-afp which means the AFP Renderer section in the FOP configuration file looks like:
<renderer mime="application/x-afp"> <!-- AFP Renderer --> ... </renderer>
There are 3 font configuration variants supported:
- IBM Raster fonts
- IBM Outline fonts
- FOP built-in Base14 fonts
A typical raster font configuration looks like:
<!-- This is an example of mapping actual IBM raster fonts / code pages to a FOP font --> <font> <!-- The afp-font element defines the IBM code page, the matching Java encoding and the path to the font --> <afp-font type="raster" codepage="T1V10500" encoding="Cp500" path="fonts/ibm"> <!-- For a raster font a separate element for each font size is required providing the font size and the corresponding IBM Character set name --> <afp-raster-font size="7" characterset="C0N20070"/> <afp-raster-font size="8" characterset="C0N20080"/> <afp-raster-font size="10" characterset="C0N20000"/> <afp-raster-font size="11" characterset="C0N200A0"/> <afp-raster-font size="12" characterset="C0N200B0"/> <afp-raster-font size="14" characterset="C0N200D0"/> <afp-raster-font size="16" characterset="C0N200F0"/> <afp-raster-font size="18" characterset="C0N200H0"/> <afp-raster-font size="20" characterset="C0N200J0"/> <afp-raster-font size="24" characterset="C0N200N0"/> <afp-raster-font size="30" characterset="C0N200T0"/> <afp-raster-font size="36" characterset="C0N200Z0"/> </afp-font> <!-- These are the usual FOP font triplets as they apply to this font --> <font-triplet name="serif" style="normal" weight="normal"/> <font-triplet name="Times" style="normal" weight="normal"/> <font-triplet name="Times-Roman" style="normal" weight="normal"/> <font-triplet name="TimesNewRoman" style="normal" weight="normal"/> </font>
An outline font configuration is simpler as the individual font size entries are not required. However, the characterset definition is now required within the afp-font element.
<font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZH200 " path="fonts/ibm" /> <font-triplet name="sans-serif" style="normal" weight="normal"/> <font-triplet name="Helvetica" style="normal" weight="normal"/> <font-triplet name="any" style="normal" weight="normal"/> </font>
Experimentation has shown that the font metrics for the FOP built-in Base14 fonts are actually very similar to some of the IBM outline and raster fonts. In cases were the IBM font files are not available the path attribute in the afp-font element can be replaced by a base14-font attribute giving the name of the matching Base14 font. In this case the AFP Renderer will take the font metrics from the built-in font.
<!-- The following are examples of defining outline fonts based on FOP built-in font metrics for the Adobe Base14 fonts --> <!-- sans-serif fonts based on Helvetica --> <font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZH200 " base14-font="Helvetica" /> <font-triplet name="sans-serif" style="normal" weight="normal"/> <font-triplet name="Helvetica" style="normal" weight="normal"/> <font-triplet name="any" style="normal" weight="normal"/> </font> <font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZH300 " base14-font="HelveticaOblique" /> <font-triplet name="sans-serif" style="italic" weight="normal"/> <font-triplet name="Helvetica" style="italic" weight="normal"/> <font-triplet name="any" style="italic" weight="normal"/> </font> <font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZH400 " base14-font="HelveticaBold" /> <font-triplet name="sans-serif" style="normal" weight="bold"/> <font-triplet name="Helvetica" style="normal" weight="bold"/> <font-triplet name="any" style="normal" weight="bold"/> </font> <font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZH500 " base14-font="HelveticaBoldOblique" /> <font-triplet name="sans-serif" style="italic" weight="bold"/> <font-triplet name="Helvetica" style="italic" weight="bold"/> <font-triplet name="any" style="italic" weight="bold"/> </font> <!-- serif fonts based on Times Roman --> <font> <afp-font type="outline" codepage="T1V10500" encoding="Cp500" characterset="CZN200 " base14-font="TimesRoman" /> <font-triplet name="serif" style="normal" weight="normal"/> <font-triplet name="Times" style="normal" weight="normal"/> <font-triplet name="Times-Roman" style="normal" weight="normal"/> </font> <!-- The following are examples of defining raster fonts based on FOP built-in font metrics for the Adobe Base14 fonts --> <!-- monospaced fonts based on Courier --> <font> <afp-font type="raster" codepage="T1V10500" encoding="Cp500"> <afp-raster-font size="7" characterset="C0420070" base14-font="Courier"/> <afp-raster-font size="8" characterset="C0420080" base14-font="Courier"/> <afp-raster-font size="10" characterset="C0420000" base14-font="Courier"/> <afp-raster-font size="12" characterset="C04200B0" base14-font="Courier"/> <afp-raster-font size="14" characterset="C04200D0" base14-font="Courier"/> <afp-raster-font size="20" characterset="C04200J0" base14-font="Courier"/> </afp-font> <font-triplet name="monospace" style="normal" weight="normal"/> <font-triplet name="Courier" style="normal" weight="normal"/> </font> <font> <afp-font type="raster" codepage="T1V10500" encoding="Cp500"> <afp-raster-font size="7" characterset="C0440070" base14-font="CourierBold"/> <afp-raster-font size="8" characterset="C0440080" base14-font="CourierBold"/> <afp-raster-font size="10" characterset="C0440000" base14-font="CourierBold"/> <afp-raster-font size="12" characterset="C04400B0" base14-font="CourierBold"/> <afp-raster-font size="14" characterset="C04400D0" base14-font="CourierBold"/> <afp-raster-font size="20" characterset="C04400J0" base14-font="CourierBold"/> </afp-font> <font-triplet name="monospace" style="normal" weight="bold"/> <font-triplet name="Courier" style="normal" weight="bold"/> </font>
Output Resolution
By default the AFP Renderer creates output with a resolution of 240 dpi. This can be overridden by the <renderer-resolution/> configuration element. Example:
<renderer-resolution>240</renderer-resolution>
Images
By default the AFP Renderer converts all images to 8 bit grey level. This can be overridden by the <images> configuration element. Example:
<images mode="color" />
This will put images as RGB images into the AFP output stream. The default setting is:
<images mode="b+w" bits-per-pixel="8" />
Only the values "color" and "b+w" are allowed for the mode attribute. The bits-per-pixel attribute is ignored if mode is "color". For "b+w" mode is must be 1, 4, or 8.
Extensions
The AFP Renderer supports some AFP specific extensions which can be embedded into the input fo document. To use the extensions the appropriate namespace must be declared in the fo:root element like this:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:afp="http://xmlgraphics.apache.org/fop/extensions/afp">
Page Overlay Extension
The include-page-overlay extension element allows to define on a per simple-page-master basis a page overlay resource. Example:
<fo:layout-master-set> <fo:simple-page-master master-name="simple"> <afp:include-page-overlay name="O1SAMP1 " /> ... </fo:simple-page-master> </fo:layout-master-set>
The mandatory name attribute must refer to an 8 character (space padded) resource name that must be known in the AFP processing environment.
Page Segment Extension
The include-page-segment extension element allows to define resource substitution for fo:external-graphics elements. Example:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:afp="http://xmlgraphics.apache.org/fop/extensions/afp"> <fo:layout-master-set> <fo:simple-page-master master-name="simple"> <afp:include-page-segment name="S1ISLOGO" src="../../resources/images/bgimg300dpi.jpg" /> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set>
The include-page-segment extension element can only occur within a simple-page-master. Multiple include-page-segment extension elements within a simple-page-master are allowed. The mandatory name attribute must refer to an 8 character (space padded) resource name that must be known in the AFP processing environment. The value of the mandatory src attribute is compared against the value of the src attribute in fo:external-graphic elements and if it is identical (string matching is used) in the generated AFP the external graphic is replaced by a reference to the given resource.
Tag Logical Element Extension
The tag-logical-element extension element allows to injects TLEs into the AFP output stream. Example:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:afp="http://xmlgraphics.apache.org/fop/extensions/afp"> <fo:layout-master-set> <fo:simple-page-master master-name="simple"> <afp:tag-logical-element name="The TLE Name" value="The TLE Value" /> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set>
The tag-logical-element extension element can only occur within a simple-page-master. Multiple tag-logical-element extension elements within a simple-page-master are allowed. The name and value attributes are mandatory.
No Operation Extension
The no-operation extension provides the ability to carry up to 32K of comments or any other type of unarchitected data into the AFP output stream. Example:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:afp="http://xmlgraphics.apache.org/fop/extensions/afp"> <fo:layout-master-set> <fo:simple-page-master master-name="simple"> <afp:no-operation name="My NOP">insert up to 32k of character data here!</afp:no-operation> </fo:simple-page-master> </fo:layout-master-set>
The no-operation extension element can only occur within a simple-page-master. Multiple no-operation extension elements within a simple-page-master are allowed. The name attribute is mandatory.
RTF
JFOR, an open source XSL-FO to RTF converter has been integrated into Apache FOP. This will create an RTF (rich text format) document that will attempt to contain as much information from the XSL-FO document as possible. It should be noted that is not possible (due to RTF's limitations) to map all XSL-FO features to RTF. For complex documents, the RTF output will never reach the feature level from PDF, for example. Thus, using RTF output is only recommended for simple documents such as letters.
The RTF output follows Microsoft's RTF specifications and produces best results on Microsoft Word.
These are some known restrictions compared to other supported output formats (not a complete list):
-
Not supported/implemented:
- break-before/after (supported by the RTF library but not tied into the RTFHandler)
- fo:page-number-citation-last
- keeps (supported by the RTF library but not tied into the RTFHandler)
- region-start/end (RTF limitation)
- multiple columns
- Only a single page-master is supported
- Not all variations of fo:leader are supported (RTF limitation)
- percentages are not supported everywhere
XML (Area Tree XML)
This is primarily for testing and verification. The XML created is simply a representation of the internal area tree put into XML. We use that to verify the functionality of FOP's layout engine.
The other use case of the Area Tree XML is as FOP's "intermediate format". More information on that can be found on the page dedicated to the Intermediate Format.
Java2D/AWT
The Java2DRenderer provides the basic functionality for all Java2D-based output formats (AWT viewer, direct print, PNG, TIFF).
The AWT viewer shows a window with the pages displayed inside a Java graphic. It displays one page at a time. The fonts used for the formatting and viewing depend on the fonts available to your JRE.
It is possible to directly print the document from the command line. This is done with the same code that renders to the Java2D/AWT renderer.
Known issues
If you run into the problem that the printed output is incomplete on Windows: this often happens to users printing to a PCL printer. There seems to be an incompatibility between Java and certain PCL printer drivers on Windows. Since most network-enabled laser printers support PostScript, try switching to the PostScript printer driver for that printer model.
Bitmap (TIFF/PNG)
It is possible to directly create bitmap images from the individual pages generated by the layout engine. This is done with the same code that renders to the Java2D/AWT renderer.
Currently, two output formats are supported: PNG and TIFF. TIFF produces one file with multiple pages, while PNG output produces one file per page. The quality of the bitmap depends on the target resolution setting on the FOUserAgent.
Configuration
The TIFF and PNG renderer configuration currently allows the following settings:
<renderer mime="image/png"> <transparent-page-background>true</transparent-page-background> <fonts><!-- described elsewhere --></fonts> </renderer>
The default value for the "transparent-page-background" setting is "false" which paints an opaque, white background for the whole image. If you set this to true, no such background will be painted and you will get a transparent image if an alpha channel is available in the output format.
TIFF-specific Configuration
In addition to the above values the TIFF renderer configuration allows some additional settings:
<renderer mime="image/tiff"> <transparent-page-background>true</transparent-page-background> <compression>CCITT T.6</compression> <fonts><!-- described elsewhere --></fonts> </renderer>
The default value for the "compression" setting is "PackBits" which which is a widely supported RLE compression scheme for TIFF. The set of compression names to be used here matches the set that the Image I/O API uses. Note that not all compression schemes may be available during runtime. This depends on the actual codecs being available. Here is a list of possible values:
- NONE (no compression)
- PackBits (RLE, run-length encoding)
- JPEG
- Deflate
- LZW
- ZLib
- CCITT T.4 (Fax Group 3)
- CCITT T.6 (Fax Group 4)
TXT
The text renderer produces plain ASCII text output that attempts to match the output of the PDFRenderer as closely as possible. This was originally developed to accommodate an archive system that could only accept plain text files, and is primarily useful for getting a quick-and-dirty view of the document text. The renderer is very limited, so do not be surprised if it gives unsatisfactory results.
The Text renderer works with a fixed size page buffer. The size of this buffer is controlled with the textCPI and textLPI public variables. The textCPI is the effective horizontal characters per inch to use. The textLPI is the vertical lines per inch to use. From these values and the page width and height the size of the buffer is calculated. The formatting objects to be rendered are then mapped to this grid. Graphic elements (lines, borders, etc) are assigned a lower priority than text, so text will overwrite any graphic element representations.
Because FOP lays the text onto a grid during layout, there are frequently extra or missing spaces between characters and lines, which is generally unsatisfactory. Users have reported that the optimal settings to avoid such spacing problems are:
- font-family="Courier"
- font-size="7.3pt"
- line-height="10.5pt"
Output Formats in the Sandbox
Due to the state of certain renderers we moved some of them to a "sandbox" area until they are ready for more serious use. The renderers and FOEventHandlers in the sandbox can be found under src/sandbox and are compiled into build/fop-sandbox.jar during the main build. The output formats in the sandbox are marked as such below.
MIF
This format is the Maker Interchange Format which is used by Adobe Framemaker.
SVG
This format creates an SVG document that has links between the pages. This is primarily for slides and creating svg images of pages. Large documents will create SVG files that are far too large for an SVG viewer to handle. Since FO documents usually have text the SVG document will have a large number of text elements. The font information for the text is obtained from the JVM in the same way as for the AWT viewer. If the SVG is viewed on a system where the fonts are different, such as another platform, then the page may look wrong.
Wish list
Apache FOP is easily extensible and allows you to add new output formats to enhance FOP's functionality. There's a number of output formats which are on our wish list. We're looking for volunteers to help us implement them.
- ODF (Open Document Format): The standardized successor to OpenOffice's file format.
by Keiron Liddle, Art Welch
version 681307


I am pursuing my B.E from BMS Institute of Technology in Computer Science Engineering.
I love to travel, alone generally, but don't mind a good company.
I love to code, My experience ranges in Web Development, loves to learn new, love to read and write Tech articles, well my experience Ranges in Web Development, but I know Android as well, beginner word will be good.
I am open for any project and work, I am flexible with all kind of frameworks like Node.js, Angular.s, Laravel (PHP) and many more, well generally I work with Meteor.js. In name of languages, I am good at HTML/CSS, JavaScript, JAVA, PHP/SQL
Either it be a Android App, Web App or iOS App(Using Meteor.js), I can develop it.
I have quite good taste of Designing part, which is helpfull in designing web pages with help of HTML/CSS/JavaScript. I can use bootstrap and materialize way for Designing, I am flexible with both.
I can Develop both Static and Dynamic websites, I am good with front-end scripting, client side scripting and as well as server side scripting.


Input Data¶
A folder of .csv
files should be copied into input_scenarios/
, the name of the folder should match the name of the scenario run. An example input scenario folder is within reference_data/example_data/mex_high_costs/
. The folder contains the following files:
agent_core_attributes_all.csv
¶
Core set of attributes to instantiate agents.
- Fields:
- agent_id
unique agent identifier (float)
- control_reg
unique common control region name (string)
- control_reg_id
unique common identifier linked to one control region name (float)
- state
unique common state name (string). Note each control region may have one or more associated states, but each state can only belong to one control region
- state_id
unique common identifier linked to one state name (float)
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- tariff_class
unique common identifier for the agent’s electric tariff type (str)
- country_abbr
common country abbreviation (str)
- customers_in_bin
count of number of DPV customers that the agent represents (float)
- load_in_bin_kwh
total annual energy that the agent represents in kWh (float)
- load_per_customer_in_bin_kwh
per capita annual energy consumption in kWh (float)
- max_demand_kw
peak agent demand in kW (float)
- avg_monthly_kwh
average agent monthly energy use in kWh (float)
- owner_occupancy_status
code lookup for owner status where 1 = owner-occupied and 2 = leased (int)
- cap_cost_multiplier
agent capital cost multiplier
- developable_buildings_pct
percent of agent’s buildings that are suitable for DPV development (float)
- bldg_size_class
size of agent’s building (str). Must be one of [‘small’,’med’,’large’]
- rate_id_alias
common electric rate identifier (int). Must match similar field in urdb3_rates.csv
avoided_cost_rates.csv
¶
Prices used is assessing value when net metering is activated and the input sheet Net Metering Scenario is specified as ‘Avoided Cost’.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- 2014 -> 2050
Avoided cost in US Dollars / kWh (float)
carbon_intensities_grid.csv
¶
Carbon intensities used when input sheet specifies Carbon Price as ‘Price Based On State Carbon Intensity’.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- 2014 -> 2050
Tons of CO2 per kWh of electricity (float)
carbon_intensities_ng.csv
¶
Carbon intensities used when input sheet specifies Carbon Price as ‘Price Based On NG Offset’. Values are in US Dollars.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- 2014 -> 2050
Tons of CO2 per kWh of electricity (float)
load_growth_projections.csv
¶
Yearly multipliers to use in assessing load growth relative to starting conditions in agent_core_attributes.csv sorted by country and control region.
- Fields:
- scenario
scenario description that matches input spreadsheet main tab dropdown (str)
- year
scenario year (int)
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- load_multiplier
load multiplier percent (float)
nem_settings.csv
¶
Net metering projections by year, country and control region.
- Fields:
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- nem_system_size_limit_kw
net metering system size limit kW (float)
- year_end_excess_sell_rate_usd_per_kwh
excess sell rate for net metering in US Dollars (float)
- year
scenario year (int)
normalized_load.csv
¶
Normalized load profile by country and control region. Will be scaled by the load specified in agent_core_attributes_all.csv.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- kwh
Array of length 8760 for the fraction of yearly energy consumption in each hour multiplied by a offset factor of 1e9 (int)
pv_bass.csv
¶
Bass Parameter settings by sector, country and control region.
- Fields:
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- state_id
unique common state identifier (int)
- p
bass diffusion parameter defining the coefficient of innovation.
- q
bass diffusion parameter defining the coefficient of imitation.
- teq_yr1
number of years since the diffusion model began.
pv_state_starting_capacities.csv
¶
Cumulative DPV penetration by state in 2015.
- Fields:
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- state_id
unique common state identifier (int)
- tariff_class
unique common identifier electric tariff type (str)
- pv_capacity_mw
cumulative DPV capacity in the state in 2015, mW
- pv_systems_count
cumulative number of DPV systems in the state in 2015
rate_escalations.csv
¶
Yearly multipliers to use in assessing electricity rate growth relative to starting conditions sorted by country and control region.
- Fields:
- source
data source name (str). Must be one of [‘Planning’,’High’,’Low’]
- year
scenario year (int)
- sector_abbr
sector abbreviation (str). Must be one of [‘res’,’com’,’ind’]
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- escalation_factor
rate escalation percent (float)
solar_resource_hourly.csv
¶
Hourly solar resource profiles by country and control region.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- state_id
unique common state identifier (int)
- cf
Array of length 8760 for the hourly solar insolation (int)
urdb3_rates.csv
¶
Complete urdb rate information for agent rates specificed in core_agent_attributes_all.csv.
- Fields:
- rate_id_alias
rate id matching that of agent_core_attributes_all.csv (int)
- rate_json
complete urdb rate (json)
wholesale_rates.csv
¶
Yearly wholesale electricity rates by country and control region. Used in analysis and when input sheet net metering scenario is set to ‘State Wholesale’.
- Fields:
- country_abbr
common country abbreviation (str)
- control_reg_id
unique common control region identifier (int)
- 2014 -> 2050
Average wholesale electricity price in US Dollars/kWh (float)


BAD BOYS A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 4.0
U.S. Availability: wide release 4/7/95 Running Length: 1:59 MPAA Classification: R (Violence, language, mature themes)
Starring: Martin Lawrence, Will Smith, Tea Leoni, Tcheky Karyo, Theresa Randle, Joe Pantoliano Director: Michael Bay Producers: Don Simpson and Jerry Bruckheimer Screenplay: Michael Barrie, Jim Mulholland, and Doug Richardson Cinematography: Howard Atherton Music: Mark Mancina Released by Columbia Pictures
48 HOURS, BEVERLY HILLS COP, and LETHAL WEAPON were all, to some extent, reasonably entertaining action films. The unavoidable result of their success has been a long string of sequels and rip-offs. The latest is BAD BOYS, an overlong sample of MTV-style direction that "borrows" heavily from these (and numerous other) flicks, and, in the process, elevates them to the comparable level of CITIZEN KANE.
The action sequences--and there are a lot of them--are apparently designed to camouflage the lack of a credible story. I suppose someone guessed that if the audience was too busy following bullets, bodies, and explosions, they wouldn't have time to wonder about things like logic and coherence. Unfortunately, the movie contains occasional moments of inactivity and, during those, the first thing that comes to mind is: What's the point? After asking the question a few times, it becomes clear that not only are things moving fast, but they're completely out of control. Consider what happens to a downhill skier or race car in this situation, and you get an idea of what BAD BOYS has to offer.
When it came to putting ideas on paper, the writers had a beginning (a drug heist from the Miami P.D.'s evidence safe) and an ending (guess what happens to the bad guys). They also had a premise: take a couple of mismatched cops who hide their respect for each other, and team them with a female civilian/witness who is destined to prove her worth, but only after botching things a few times. No, it's not original, but it's the only glue that holds this production together, even if it is spread far too thin. Because outside of these few basics from script writing 101, no thought was put into the screenplay for BAD BOYS.
The cops, Marcus Burnett and Mike Lowrey, are played by TV sitcom stars Martin Lawrence and Will Smith. For reasons too silly to explain, they're forced to swap identities whenever they're with a murder witness (Tea Leoni). If there ever was comic potential in this unnecessarily contrived situation, it's not realized. I think THREE'S COMPANY may have done the same thing, only better. Much better.
Smith and Lawrence are likable, and they have a certain modest chemistry that surfaces during the so-called "humorous" banter, but everything about their characters is a regurgitation of previously recycled material. (Does that make it re-recycled?) The other characters are equally familiar: the tough female sidekick, the loyal wife (Theresa Randle), the evil drug lord (Tcheky Karyo), and the loud- mouthed police captain (Joe Pantoliano).
The most complimentary thing I can say about BAD BOYS is that it has style and energy. The cinematography is frequently inventive, and Mark Mancini's SPEED-like score is the perfect accompaniment for chases and fights. Unfortunately, there's only so far a movie can go on loud music, nicely-framed shots, testosterone, and adrenaline. BAD BOYS takes the often-traveled road, and leads the audience to a dead end.
- James Berardinelli<EMAIL_ADDRESS>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


See: Description
| Interface | Description |
|---|---|
| Bounds |
Represents the
Bounds of the simulation/world. |
| BoundsListener |
Represents an object that is notified when a
Collidable
goes out of Bounds . |
| Collidable |
Represents an object that can collide with other objects.
|
| Filter |
Interface representing a filter for collision detection.
|
| Class | Description |
|---|---|
| AbstractBounds |
Abstract implementation of the
Bounds interface. |
| AxisAlignedBounds |
Represents a bounding region that is an Axis-Aligned bounding box.
|
| BoundsAdapter |
Convenience class for implementing the
BoundsListener interface. |
| CategoryFilter |
Filter for categorized objects. |
| Collisions |
Class used to estimate collision counts and other one-off collision tasks.
|
| Fixture |
Represents a part of a
Collidable . |
| RectangularBounds | Deprecated
replaced with
AxisAlignedBounds in 3.1.1 |
| TypeFilter |
Represents a class typed filter.
|
Convex
Shape
s.
Collision detection can be an expensive process. To avoid unnecessary processing a two phase approach to collision detection is used. First a inaccurate, yet conservative, algorithm is used to detect possible collision pairs. This process is called the broad-phase. Next, after obtaining all the possible collision pairs, each pair is tested using an accurate algorithm. This is called the narrow-phase.
Broad-phase
The BroadphaseDetector
s will determine whether
two Convex
Shape
s can possibly
penetrate, returning only valid BroadphasePair
s, which
should then be sent to a NarrowphaseDetector
.
Narrow-phase
The NarrowphaseDetector
s will determine whether two
Convex
Shape
s penetrate and
return a Penetration
.
A Penetration
object represents the minimum distance
along some vector required to push the Shape
s out of the penetration.
Manifold Generation
Once a Penetration
object is obtained, it should be passed
to a ManifoldSolver
. A
ManifoldSolver
will use the
Penetration
object and the given
Convex
Shape
s to create a collision
Manifold
.
A collision Manifold
represents the collision points between
the two Convex
Shape
s.
The following is a list of implementations of the above interfaces:


For software support or to provide feedback about ZYTO Insights, send email to<EMAIL_ADDRESS>or call<PHONE_NUMBER>
Monday-Thursday: 7 a.m. to 5 p.m. (Mountain Time -MT)
{{aboutData | json}}
For software support or to provide feedback about ZYTO Insights, send email to<EMAIL_ADDRESS>or call<PHONE_NUMBER>
Monday-Thursday: 7 a.m. to 5 p.m. (Mountain Time -MT)


phthalmology (/ˌɒfθɑːlˈmɑːlədʒi/ or /ˌɒpθɑːlˈmɒlədʒi/)[1] is the branch of medicine that deals with the anatomy, physiology and diseases of the eyeball and orbit.[2] An ophthalmologist is a specialist in medical and surgical eye disease. Their credentials include an M.D. or D.O. degree in medicine, followed by an additional four years of residency. Additional training may be sought through a fellowship in a particular specialty of eye pathology. Ophthalmologists are allowed to medically treat eye disease, implement laser therapy, and perform incisional surgery when warranted.
The Greek roots of the word ophthalmology are ὀφθαλμός (ophthalmos, "eye") and -λoγία (-logia, "study, discourse"),[4][5] i.e., "the study of eyes". The discipline applies to all animal eyes, whether human or not, since the practice and procedures are quite similar with respect to disease processes, while differences in anatomy or disease prevalence, whether subtle or substantial, may differentiate the two


Sales
Home
Add new City
City Name
min.Number of Customers
max.Number of Customers
avg.Number of Customers
Save


Arnold Siboro
HR Admin
Profile
Account
Settings
Logout
HR
CRM
K
Main
CRM
Leads
Opportunities
Contacts
Accounts
Activities
Visits
Products and Stock
Products
Stock
Purchase Order
Receptance
Sales and Shipment
Sales Order
Shipment
Inventory
Transfer Order
Goods Issue
Goods Receive
Administrator
Site Management
System Management
PT Kopoka Solusi Indonesia
Welcome to Kopoka.
16
46h ago
Mike Loreipsum
said Please finish your performance planning.
3 days ago at 7:58 pm - 10.06.2014
5h ago
Chris Johnatan Overtunk
said Can you check my evidence?
Yesterday 1:21 pm - 11.06.2014
23h ago
Monica Smith
said Can I ask regarding my KPI?
2 days ago at 2:30 am - 11.06.2014
Read All Messages
8
Monica Smith asks for leave approval
4 minutes ago
John Doe asks for attendance approval
12 minutes ago
Server Rebooted
4 minutes ago
See All Alerts
Deposits
Home
System Management
Deposits
Filter
Site name:
Any
Acme Corporation (acmecorp)
PT Kopoka Solusi Indonesia (pt_ksi)
PT XYZ (ptxyz))
PT ABC (abc)
Select
Site name
Deposit amount
Acme Corporation (acmecorp)
12,000,000
View
PT Kopoka Solusi Indonesia (pt_ksi)
6,500,000
View
PT XYZ (ptxyz)
1,250,000
View


You can financially support our projects by donating through the EWB-USA national website. Funding can be contributed for general chapter activities, or designated for a specific international project (La Victoria, Ecuador).
EWB-USA is a non-profit company, and your donation is therefore tax deductible.
Knovel is a web-based application integrating technical information with analytical and search tools to drive innovation and deliver answers engineers can trust.
Boeing is the world's leading aerospace company and the largest manufacturer of commercial jetliners and military aircraft combined.
Sponsorship Levels |
|
|---|---|
| Garnet Donations of $8,000 or more |
Large plaque with picture of travel team with village Large sponsor logo on banner Automatic recognition on banner the following year Recognition on EWB-USA USC Chapter Website
|
| Black Donations of $5,000 to $7,999 |
Medium plaque with picture of travel team with village Medium sponsor logo on banner Recognition on EWB-USA USC Chapter Website
|
| White Donations of $1,500 to $4,999 |
Small plaque with picture of travel team with village Small sponsor logo on banner Recognition on EWB-USA USC Chapter Website
|
| Gold Donations of $500 to $1,499 |
Sponsor’s name on banner Recognition on EWB-USA USC Chapter Website Coffee from village |
| Silver Donations of $200 to $499 |
Recognition on EWB-USA USC Chapter Website Coffee from village |
Stay tuned for details.
EWB-USA at USC thanks our sponsors for their support of the La Victoria Irrigation project.
EWB-USA at USC thanks these local Columbia, SC businesses for their support of the La Victoria Irrigation project through Percent Nights.


Seven O’Clock Stories
by Robert Gordon Anderson
“Second Night: The Playmates of the Three Happy Children”
Additional Information
- Year Published: 1920
- Language: English
- Country of Origin: United States of America
- Source: Anderson, R. G. (1920). Seven O’Clock Stories. New York: G.P. Putnam’s Sons: The Knickerbocker Press.
-
Readability:
- Flesch–Kincaid Level: 6.2
- Word Count: 858
- Genre: Adventure
- Keywords: children's stories
- ✎ Cite This
Downloads
The three happy children have many playmates, who live in the barnyard. Some have four feet and some only two, but these have two wings besides to make up for the missing feet.
Jehosophat, Marmaduke, and Hepzebiah like the dogs best. And just as there are three children so there are three dogs. Let’s shake hands with them, one by one.
The great big dog is named Rover, the middle-sized one Brownie, and the little yellow curly one Wienerwurst.
A wise fellow is Rover. From a cold country called Newfoundland his great grandfather came. And he seems to think life is a very serious matter. His coat is black with snow-white patches. His hair curls a little. It feels very soft when you lay your head against it.
He doesn’t play as much as the other two doggies. But once when Hepzebiah fell in the pond after her doll, Rover swam in and caught her dress in his mouth and brought her to shore. Not long after that Mr. Green gave him a new shiny collar.
Brownie is a terrier and is coloured like his name.  Sometimes the drivers lash at him with their long whips but he is too quick for them and scampers out of their reach.
The funniest doggie in all the world is little yellow Wienerwurst. He is even more full of mischief than Brownie and loves to run after all the other animals in the barnyard.
When the pigeons fly down from their little house on the top of the barn to take an afternoon walk and perhaps pick up a few extra grains of corn, this little yellow doggie spoils all their fun. He soon sends them flying back to their house on the roof, where they chatter and coo in great excitement. But they do not lose their tempers like “Mr. Stuckup,” the turkey, or old “Miss Crosspatch,” the guinea-hen with the ugly voice.
Once little Wienerwurst caught a pretty pigeon by its tail and bit it.
Each dog has a house. One is big, one middle-sized, and one small, and each has a door to fit the doggie who lives there. Their houses are called kennels, and they are something like the pigeon’s home way up on the roof.
The pigeons are very pretty, grey and white and pink coloured. When the sun shines brightly their necks shine too, like the rainbow silk dress which Mrs. Green wears whenever there is a wedding.
 Farmer Green calls them pouter pigeons.
They do not have harsh voices like the guinea-hen or the old black crows which steal the corn from the field when Mr. Scarecrow gets tired and goes to sleep. (We will introduce you to Mr. Scarecrow some evening very soon.) But the voices of the pigeons are soft and low like mother’s, especially when Hepzebiah is sick and she sings her to sleep.
They will not have much to do with the chickens, these pigeons. Perhaps they are like the people who live on the top floor of tall city houses and do not go down often to talk with the people in the streets.
What a lot of chickens Farmer Green has! Almost two hundred, if they would ever stay still long enough for Jehosophat to count them. They are called White Wyandottes and they are very white and plump, with combs as red as geraniums.
You know there are many kinds of chickens just as there are many kinds of people, English, French, and Americans. Rhode Island Reds, Plymouth Rocks, Cochins, and Leghorns are some of the chicken family names, but Jehosophat’s father does not believe in mixing families, he says, so only the White Wyandottes live on the Green farm.
Jehosophat and Marmaduke love the big rooster best.  His white tail curves beautifully like the plumes on the hats of the circus ladies. When he throws back his head, puffs out his throat, and calls to the Sun, he is indeed a wonderful creature.
The little chicks are the ones Hepzebiah loves best.  The little chicks have such tiny voices, crying “cheep, cheep, cheep,” almost the way the crickets do all through the night.
The chickens have cousins who—but there goes the clock—so that is tomorrow night’s story.


UNDER SIEGE A film review by Frank Maloney Copyright 1992 Frank Maloney
UNDER SIEGE is a film directed by Andrew Davis, from a screenplay by J. F. Lawton. It stars Steven Seagal, Tommy Lee Jones, Gary Busey, and Erika Eleniak. Rated R, for violence, profanity, brief female nudity.
UNDER SIEGE was filmed on the USS Alabama, anchored in Mobile Bay, but is supposed to take place on the Missouri, now back in mothballs across Puget Sound from me in Bremerton. The film was written by J. F. Lawton (PRETTY WOMAN), who proves he does know about whoring as he mixes DIE HARD and Tom Clancy. Lawton is a totally corrupt hack with a fresh angle on a dead idea.
The result is Seagal's best movie to date, at least of the ones I seen. (I want to say right now that I go to these things because Lyndol has the hots for action movies.) Andrew Davis provides slick, bland directing as he reteams with Seagal (ABOVE THE LAW). Seagal is amazingly wooden, as always, but the story may point us in the direction these flicks are going to go to find a replacement enemy for Godless Communism, in this case, the Enemy Within, the traitorous CIA superagent who goes into business for himself.
The spook-from-hell is played by Tommy Lee Jones with huge gusto. Jones is great fun here and probably worth the price of a matinee admission. Jones has teamed up with Gary Busey as the traitorous XO, executive officer, who's quite a case himself. Seagal, on the other hand, teams up with the pouty, big-bosomed Erika Eleniak as a Playboy Playmate who's really "an actress. I did an episode of 'Hunter' and a 'Wet 'n' Wild' video." Eleniak is pretty irritating at first, even as comic relief, but later develops into something only wildly improbable.
This film is a nothing in terms of any kind of honesty. You nitpickers will have a field day. You tit-watchers will do ok, also. This is mind candy. Either you go or don't. I'm not recommending that you do, but if you're inclined to like Seagal movies and such, you will like this one. Just don't pay full freight. Or wait for the video. It ought to be out by Christmas.
-- Frank Richard Aloysius Jude Maloney
.
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


Localisation
Localising your application with GNU Gettext takes a little effort but is quite straightforward. This documentation assumes that you have a po
subdirectory at your project root directory that contains all the localisation info.
The first thing you need is a file called POTFILES
. It lists all the source files that Gettext should scan in order to find strings to translate. The syntax of the file is one line per source file and the line must contain the relative path from source root. A sample POTFILES might look like this.
src/file1.c
src/file2.c
src/subdir/file3.c
include/mything/somefile.h
We also need to define an array of strings containing all the locales we want to generate. This is done in the Meson file in the po
subdirectory. Assuming we want to generate Finnish and German localisations, the definition would look like this.
langs = ['fi', 'de']
Then we need to generate the main pot file. Usually this is generated manually or exists already. If not, see later on how to generate it using Meson. The potfile can have any name but is usually the name of the Gettext package. Let's say the project is called intltest. In this case the corresponding pot file would be called inltest.pot
.
For each language listed in the array above we need a corresponding .po
file. This has to be generated manually, see the Gettext manual for details. Once we have all this, we can define the localisation to Meson with these lines.
i18n = import('i18n')
langs = ['fi', 'de']
i18n.gettext('intltest', languages : langs)
The first command imports the i18n
module that provides Gettext features. The second line does the actual invocation. The first argument to the is the Gettext package name. This causes two things to happen. The first is that Meson will generate binary mo files and put them to their proper locations when doing an install. The second is that it creates a build rule to regenerate the main pot file. If you are using the Ninja backend, this is how you would invoke the rebuild.
$ ninja intltest-pot
If the pot file does not yet exist, it will be created. It is recommended to inspect it manually afterwards and fill in e.g. proper copyright and contact information.
Meson does not currently have built in commands for generating po files from the pot file. This is because translations are usually done by people who are not developers and thus have their own workflows.
The results of the search are


This site uses advanced css techniques
A customer asked that we check out his intranet site, which was used by the company's employees and customers. This was part of a larger security review, and though we'd not actually used SQL injection to penetrate a network before, we were pretty familiar with the general concepts. We were completely successful in this engagement, and wanted to recount the steps taken as an illustration.
"SQL Injection" is subset of the an unverified/unsanitized user input vulnerability ("buffer overflows" are a different subset), and the idea is to convince the application to run SQL code that was not intended. If the application is creating SQL strings naively on the fly and then running them, it's straightforward to create some real surprises.
We'll note that this was a somewhat winding road with more than one wrong turn, and others with more experience will certainly have different -- and better -- approaches. But the fact that we were successful does suggest that we were not entirely misguided.
There have been other papers on SQL injection, including some that are much more detailed, but this one shows the rationale of discovery as much as the process of exploitation.
This appeared to be an entirely custom application, and we had no prior knowledge of the application nor access to the source code: this was a "blind" attack. A bit of poking showed that this server ran Microsoft's IIS 6 along with ASP.NET, and this suggested that the database was Microsoft's SQL server: we believe that these techniques can apply to nearly any web application backed by any SQL server.
The login page had a traditional username-and-password form, but also an email-me-my-password link; the latter proved to be the downfall of the whole system.
When entering an email address, the system presumably looked in the user database for that email address, and mailed something to that address. Since my email address is not found, it wasn't going to send me anything.
So the first test in any SQL-ish form is to enter a single quote as part of the data: the intention is to see if they construct an SQL string literally without sanitizing. When submitting the form with a quote in the email address, we get a 500 error (server failure), and this suggests that the "broken" input is actually being parsed literally. Bingo.
We speculate that the underlying SQL code looks something like this:
SELECT fieldlist
FROM table
WHERE field = '$EMAIL';
Here, $EMAIL is the address submitted on the form by the user, and the larger query provides the quotation marks that set it off as a literal string. We don't know the specific names of the fields or table involved, but we do know their nature, and we'll make some good guesses later.
When we enter<EMAIL_ADDRESS>- note the closing quote mark - this yields constructed SQL:
SELECT fieldlist
FROM table
WHERE field =<EMAIL_ADDRESS>when this is executed, the SQL parser find the extra quote mark and aborts with a syntax error. How this manifests itself to the user depends on the application's internal error-recovery procedures, but it's usually different from "email address is unknown". This error response is a dead giveaway that user input is not being sanitized properly and that the application is ripe for exploitation.
Since the data we're filling in appears to be in the WHERE clause, let's change the nature of that clause in an SQL legal way and see what happens. By entering anything' OR 'x'='x, the resulting SQL is:
SELECT fieldlist
FROM table
WHERE field = 'anything' OR 'x'='x';
Because the application is not really thinking about the query - merely constructing a string - our use of quotes has turned a single-component WHERE clause into a two-component one, and the 'x'='x' clause is guaranteed to be true no matter what the first clause is (there is a better approach for this "always true" part that we'll touch on later).
But unlike the "real" query, which should return only a single item each time, this version will essentially return every item in the members database. The only way to find out what the application will do in this circumstance is to try it. Doing so, we were greeted with:
Your login information has been mailed to<EMAIL_ADDRESS>Our best guess is that it's the first record returned by the query, effectively an entry taken at random. This person really did get this forgotten-password link via email, which will probably come as surprise to him and may raise warning flags somewhere.
We now know that we're able to manipulate the query to our own ends, though we still don't know much about the parts of it we cannot see. But we have observed three different responses to our various inputs:
The first two are responses to well-formed SQL, while the latter is for bad SQL: this distinction will be very useful when trying to guess the structure of the query.
The first steps are to guess some field names: we're reasonably sure that the query includes "email address" and "password", and there may be things like "US Mail address" or "userid" or "phone number". We'd dearly love to perform a SHOW TABLE, but in addition to not knowing the name of the table, there is no obvious vehicle to get the output of this command routed to us.
So we'll do it in steps. In each case, we'll show the whole query as we know it, with our own snippets shown specially. We know that the tail end of the query is a comparison with the email address, so let's guess email as the name of the field:
SELECT fieldlist
FROM table
WHERE field = 'x' AND email IS NULL; --';
The intent is to use a proposed field name (email) in the constructed query and find out if the SQL is valid or not. We don't care about matching the email address (which is why we use a dummy 'x'), and the -- marks the start of an SQL comment. This is an effective way to "consume" the final quote provided by application and not worry about matching them.
If we get a server error, it means our SQL is malformed and a syntax error was thrown: it's most likely due to a bad field name. If we get any kind of valid response, we guessed the name correctly. This is the case whether we get the "email unknown" or "password was sent" response.
Note, however, that we use the AND conjunction instead of OR: this is intentional. In the SQL schema mapping phase, we're not really concerned with guessing any particular email addresses, and we do not want random users inundated with "here is your password" emails from the application - this will surely raise suspicions to no good purpose. By using the AND conjunction with an email address that couldn't ever be valid, we're sure that the query will always return zero rows and never generate a password-reminder email.
Submitting the above snippet indeed gave us the "email address unknown" response, so now we know that the email address is stored in a field email. If this hadn't worked, we'd have tried email_address or mail or the like. This process will involve quite a lot of guessing.
Next we'll guess some other obvious names: password, user ID, name, and the like. These are all done one at a time, and anything other than "server failure" means we guessed the name correctly.
SELECT fieldlist
FROM table
WHERE email = 'x' AND userid IS NULL; --';
As a result of this process, we found several valid field names:
There are certainly more (and a good source of clues is the names of the fields on forms), but a bit of digging did not discover any. But we still don't know the name of the table that these fields are found in - how to find out?
The application's built-in query already has the table name built into it, but we don't know what that name is: there are several approaches for finding that (and other) table names. The one we took was to rely on a subselect.
A standalone query of
SELECT COUNT(*) FROM tabname
Returns the number of records in that table, and of course fails if the table name is unknown. We can build this into our string to probe for the table name:
SELECT email, passwd, login_id, full_name
FROM table
WHERE email = 'x' AND 1=(SELECT COUNT(*) FROM tabname); --';
We don't care how many records are there, of course, only whether the table name is valid or not. By iterating over several guesses, we eventually determined that members was a valid table in the database. But is it the table used in this query? For that we need yet another test using table.field notation: it only works for tables that are actually part of this query, not merely that the table exists.
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x' AND members.email IS NULL; --';
When this returned "Email unknown", it confirmed that our SQL was well formed and that we had properly guessed the table name. This will be important later, but we instead took a different approach in the interim.
At this point we have a partial idea of the structure of the members table, but we only know of one username: the random member who got our initial "Here is your password" email. Recall that we never received the message itself, only the address it was sent to. We'd like to get some more names to work with, preferably those likely to have access to more data.
The first place to start, of course, is the company's website to find who is who: the "About us" or "Contact" pages often list who's running the place. Many of these contain email addresses, but even those that don't list them can give us some clues which allow us to find them with our tool.
The idea is to submit a query that uses the LIKE clause, allowing us to do partial matches of names or email addresses in the database, each time triggering the "We sent your password" message and email. Warning: though this reveals an email address each time we run it, it also actually sends that email, which may raise suspicions. This suggests that we take it easy.
We can do the query on email name or full name (or presumably other information), each time putting in the % wildcards that LIKE supports:
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x' OR full_name LIKE '%Bob%';
Keep in mind that even though there may be more than one "Bob", we only get to see one of them: this suggests refining our LIKE clause narrowly.
Ultimately, we may only need one valid email address to leverage our way in.
One can certainly attempt brute-force guessing of passwords at the main login page, but many systems make an effort to detect or even prevent this. There could be logfiles, account lockouts, or other devices that would substantially impede our efforts, but because of the non-sanitized inputs, we have another avenue that is much less likely to be so protected.
We'll instead do actual password testing in our snippet by including the email name and password directly. In our example, we'll use our victim<EMAIL_ADDRESS>and try multiple passwords.
SELECT email, passwd, login_id, full_name
FROM members
WHERE email =<EMAIL_ADDRESS>AND passwd = 'hello123';
This is clearly well-formed SQL, so we don't expect to see any server errors, and we'll know we found the password when we receive the "your password has been mailed to you" message. Our mark has now been tipped off, but we do have his password.
This procedure can be automated with scripting in perl, and though we were in the process of creating this script, we ended up going down another road before actually trying it.
So far, we have done nothing but query the database, and even though a SELECT is readonly, that doesn't mean that SQL is. SQL uses the semicolon for statement termination, and if the input is not sanitized properly, there may be nothing that prevents us from stringing our own unrelated command at the end of the query.
The most drastic example is:
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x'; DROP TABLE members; --'; -- Boom!
The first part provides a dummy email address -- 'x' -- and we don't care what this query returns: we're just getting it out of the way so we can introduce an unrelated SQL command. This one attempts to drop (delete) the entire members table, which really doesn't seem too sporting.
This shows that not only can we run separate SQL commands, but we can also modify the database. This is promising.
Given that we know the partial structure of the members table, it seems like a plausible approach to attempt adding a new record to that table: if this works, we'll simply be able to login directly with our newly-inserted credentials.
This, not surprisingly, takes a bit more SQL, and we've wrapped it over several lines for ease of presentation, but our part is still one contiguous string:
SELECT email, passwd, login_id, full_name FROM members WHERE email = 'x'; INSERT INTO members ('email','passwd','login_id','full_name') VALUES ('steve@unixwiz.net','hello','steve','Steve Friedl');--';
Even if we have actually gotten our field and table names right, several things could get in our way of a successful attack:
In the case at hand, we hit a roadblock on either #4 or #5 - we can't really be sure -- because when going to the main login page and entering in the above username + password, a server error was returned. This suggests that fields we did not populate were vital, but nevertheless not handled properly.
A possible approach here is attempting to guess the other fields, but this promises to be a long and laborious process: though we may be able to guess other "obvious" fields, it's very hard to imagine the bigger-picture organization of this application.
We ended up going down a different road.
We then realized that though we are not able to add a new record to the members database, we can modify an existing one, and this proved to be the approach that gained us entry.
From a previous step, we knew that<EMAIL_ADDRESS>had an account on the system, and we used our SQL injection to update his database record with our email address:
SELECT email, passwd, login_id, full_name FROM members WHERE email = 'x'; UPDATE members SET email =<EMAIL_ADDRESS>WHERE email =<EMAIL_ADDRESS>After running this, we of course received the "we didn't know your email address", but this was expected due to the dummy email address provided. The UPDATE wouldn't have registered with the application, so it executed quietly.
We then used the regular "I lost my password" link - with the updated email address - and a minute later received this email:
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Subject: Intranet login This email is in response to your request for your Intranet log in information. Your User ID is: bob Your password is: hello
Now it was now just a matter of following the standard login process to access the system as a high-ranked MIS staffer, and this was far superior to a perhaps-limited user that we might have created with our INSERT approach.
We found the intranet site to be quite comprehensive, and it included - among other things - a list of all the users. It's a fair bet that many Intranet sites also have accounts on the corporate Windows network, and perhaps some of them have used the same password in both places. Since it's clear that we have an easy way to retrieve any Intranet password, and since we had located an open PPTP VPN port on the corporate firewall, it should be straightforward to attempt this kind of access.
We had done a spot check on a few accounts without success, and we can't really know whether it's "bad password" or "the Intranet account name differs from the Windows account name". But we think that automated tools could make some of this easier.
In this particular engagement, we obtained enough access that we did not feel the need to do much more, but other steps could have been taken. We'll touch on the ones that we can think of now, though we are quite certain that this is not comprehensive.
We are also aware that not all approaches work with all databases, and we can touch on some of them here.
We believe that web application developers often simply do not think about "surprise inputs", but security people do (including the bad guys), so there are three broad approaches that can be applied here.
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ<PHONE_NUMBER> @.-_+
Sidebar on email addresses
It's important to note here that email addresses in particular are troublesome to validate programmatically, because everybody seems to have his own idea about what makes one "valid", and it's a shame to exclude a good email address because it contains a character you didn't think about.
The only real authority is RFC 2822 (which encompasses the more familiar RFC822), and it includes a fairly expansive definition of what's allowed. The truly pedantic may well wish to accept email addresses with ampersands and asterisks (among other things) as valid, but others - including this author - are satisfied with a reasonable subset that includes "most" email addresses.
Those taking a more restrictive approach ought to be fully aware of the consequences of excluding these addresses, especially considering that better techniques (prepare/execute, stored procedures) obviate the security concerns which those "odd" characters present.
SELECT fieldlist
FROM table
WHERE id = 23 OR 1=1; -- Boom! Always matches!
SELECT fieldlist
FROM customers
WHERE name = 'Bill O''Reilly'; -- works OK
SELECT fieldlist
FROM customers
WHERE name = '\''; DROP TABLE users; --'; -- Boom!
$sth = $dbh->prepare("SELECT email, userid FROM members WHERE email = ?;"); $sth->execute($email);
Statement s = connection.createStatement();
ResultSet rs = s.executeQuery("SELECT email FROM member WHERE name = "
+ formField); // *boom*
PreparedStatement ps = connection.prepareStatement( "SELECT email FROM member WHERE name = ?"); ps.setString(1, formField); ResultSet rs = ps.executeQuery();
Note that not all databases are configured the same way, and not all even support the same dialect of SQL (the "S" stands for "Structured", not "Standard"). For instance, most versions of MySQL do not support subselects, nor do they usually allow multiple statements: these are substantially complicating factors when attempting to penetrate a network.
We'd like to emphasize that though we chose the "Forgotten password" link to attack in this particular case, it wasn't really because this particular web application feature is dangerous. It was simply one of several available features that might have been vulnerable, and it would be a mistake to focus on the "Forgotten password" aspect of the presentation.
This Tech Tip has not been intended to provide comprehensive coverage on SQL injection, or even a tutorial: it merely documents the process that evolved over several hours during a contracted engagement. We've seen other papers on SQL injection discuss the technical background, but still only provide the "money shot" that ultimately gained them access.
But that final statement required background knowledge to pull off, and the process of gathering that information has merit too. One doesn't always have access to source code for an application, and the ability to attack a custom application blindly has some value.
Thanks to David Litchfield and Randal Schwartz for their technical input to this paper, and to the great Chris Mospaw for graphic design (© 2005 by Chris Mospaw, used with permission).
Last modified: Wed Oct 10 06:28:06 PDT 2007


Biphyl Academy is a NGO kind of organization that deals with capturing young talents in the communities. The youths targeted are in between the age frame of 10-25years. This ensures that any young person that has talent that can be tapped and natured is given an opportunity to stand out and be able to polish on his/her talent. We have a ll the things that a talented youth can need in order to move forwarrd in terms of their talents.
We look into different fields of talents like on the field games like football, basketball and rugby. We also deal with those talented in music and arts. The environment in which the youths get a chance to showcase their talents and then then given an opportunity to develop and sharpen their skills is very cool and calm.
If you are interested tp join us or you have seen someone with the potential on a certain talent, fo not hesitate to contact us or direct the person to our offices to register with us. Our offices are located in Kasabuni along Babadogo Road in Orange House plaza 3rd floor door no. 15.
In the game of football, we acormodate both ladies and men of the ages descibed in the paragraph above. The organization provides the players with all the things they need in the field in order to make sure there is no blockage to sharpening of their skills. Whenever a player is injured in the pitch there are trained and qualified medical doctors that will definitely take care of the injury. The medical staff have all the things that is needed incase a player is injured. When a player is seen to be joking mostly during practices or during the games he or she will be suspended from the team for a period of time and when the player does the same kind of mistake more than three times we dont hesitate to expel the player completely.
In the basketball side we have proffessional trainers that are ready to make the players achieve the best they can in the basketball court and also enjoys the game. There are all the requirements that a player can ask for and because of this we do not expect any player to miss on the trainings unless with a valid reason. In the course of the training periods there are some friendly matches that are to be played to make the players get used to the game either home or away
This is a very tough game but there are highly trained to be maximum level and also the players are taught on how to maintain there body balance and also taught on the type of diet someone should have for body fitness. There is also a gym for phyiscal fitness of the players since the game needs a lot of energy and so you should ensure that you make your body muuscular eneough for the game and for body fitness.
We have different musical instruments that the leaner may want to learn and perfect on. The instruments are as follows:
The main type of art that most youths are into is the art of drawing. There are a lot of people currently in the drawing part and are doing great. There are people who have been in the drawing industry that have seene it well that they can also take their time and come down and also ensure that youths that are highly interested in the art of drawing can perfect their skills and also reach to the level they have reached.
Tel. No.:<PHONE_NUMBER>/0714420605
Email<EMAIL_ADDRESS>Website: www.biphylacademy.com
Facebook: Biphyl Academy
Youtube:Biphyl Academy


PHP SDK Example Runner
Select one of the following examples to see the Example Code, Message Values, and the Request/Response JSON:
Basic Send Examples
Basic Example
Basic Send From Html File
Basic Send API Template Example
Basic Send Ascii Charset Example
Basic Send Attachment Example
Basic Send Custom Headers Example
Basic Send Embedded Image Example
Basic Send Complex Example
Basic Send Using a Proxy
Basic Send With Retry
Bulk Send Examples
Bulk Example
Bulk Send from Datasource with Merge Example
Bulk Send Complex Example
Bulk Send Ascii Charset Merge Example
Bulk Send Merge Data Example
Validation Error Handling Examples
Basic Send With Invalid Attachment Example
Basic Send With Invalid From Example
Basic Send With Invalid Recipients Example
Example Code
Response JSON
Request JSON


{{extend 'layout.html'}} {{if already_unsubscribed is False:}}
Note: You wont be able to get any email updates of your friend requests or any other updates from StopStalk


Can you join the numbers in the right way to create 180?
Use the arrow keys to move the squares all in one direction. Any number of identically valued squares, if in a row, will merge together.
And remember, 144 = 2 × 2 × 2 × 2 × 3 × 3.
(For a bonus challenge, try getting 150 on this grid. It's harder than it looks!)
Created by TheReal58. Based on 2048 by Gabriele Cirulli.


ORG_0000014 - philanthropy disposition
Label
philanthropy disposition
Editor preferred label
philanthropy
Alternate name
philanthropic
Sub class of
Definition
A disposition to donate charitable causes, sometimes in the form of grants involving contracts regarding the use of the donated funds or effort.
Definition source
Example
The Wellcome Trust, The Bill and Melinda Gates Foundation, The Sierra Club have dispositions of philanthropy
Similar term in VIVO 1 Ontology
Term editor
Michael Conlon https://orcid.org/0000-0002-1304-8447


Anveshan
- Tech_Quiz
- QR Hunt
- Pubg
- Blind_Coding
- Typeracer
- Code_Wars
- Google_hunt
- Logo_Desgign
- Basketball
- Pair_progamming
- Mock_placment
- Tech_wiz
Anveshan
Brace yourself Bit By Bit with a high spirt keep thinking wihtout blinking it's time to Decode with in implode the department of CSE.


V
Scroll
Down
v
include "svg/out.svg"
include "svg/in.svg"
include "svg/final.svg"
SPORTS
EVENTS
CONTACT US
❌
Use the left and right arrow keys to navigate through the sports.
EVENTS
CONTACT US
DEVELOPERS
❌
Use the left and right arrow keys to navigate through the sports.


I am a cross-paradigm, performance driven, Scala/Java Software Developer who specializes in meta-programming. With a passion for learning new languages and paradigms I can adapt to any team. I'm becoming increasingly aware of I am currently working on a language backend for Process Systems Enterprise, London, remotely from Palmerston North, New Zealand, as well as working in the scalameta ecosystem in my own time for open source.
I have a passion for writing code, especially when it is consumed by a large number of users. I'm always looking for more ways to help out the open source community, either on Gitter or via PR's. Ideally I would like to work completely open source and believe that all companies should open source all their libraries where it is appropriate.
Author
WIP code generation library for Scala. Built on scalameta, scalagen supports any scalameta dialect, Scala Native/ScalaJs/Dotty/Scala 2.10 to 2.12.4 are all supported. scalagen can completely replace all scalameta/paradise annotation macros, and *most* scalamacros/paradise annotations.
Maintainer
Meta-programming library for Scala. Built with the idea that Scala's language tree's should be easy to manipulate. This library is a centerpoint for most recent developements with Scala's tooling.
Maintainer
Macro library for Scala. Now deprecated in favor of scalameta/scalagen (Annotation Macros) and scalacenter/macros (Def Macros)
Author
A collection of macros for scalameta/paradise. On hold until scalagen goes 0.1, then the entire API will be converted.
Company: Electric Memory IT (EMIT)
Contracted To: Process Systems Enterprise (PSE)
Time Employed: June 2015 - Present
Based in Palmerston North, New Zealand, Contracting out to Process Systems Enterprise, which is based in London.
I am working on the gPROMS family of integrated modelling environments (IME's), designed for various engineers who design incredibly complex systems. The kernel is written in C++ and Fortran, with the UI written in Java. gPROMS is primarily a procedural/declarative language that is used to run simulations/optimizations etc. Thus the IME's act much like an IDE would for a Software Developer. With large global clients such as Eli Lilly Pharmaceuticals and Shell Petroleum I take the quality of code I produce very seriously.
The purpose of this project was primarily to remove a large chunk of the remaining CORBA code in our codebase. Using Antlr4 as our parser and lexer, with Scala as the language of choice, we managed to build an fast, immutable, threadsafe and storage efficient language module.
Our build system is rather complex, we have multiple "code generation" steps, multiple JVM languages being used, extra post-compile tasks (obfuscation and encryption) and multiple repositories. The build was designed to be modular via Gradle plugins.
Our users were generating models in other applications, with 2000+ models and connections between them. The routing took place on Swings GUI Thread (EDT) and thus blocked the user from working while it happened. For user-generated projects this could happen on project load and trigger up to 8 hour GUI freezes. Of course, this is not acceptable, thus I moved all routing off the EDT. The largest problem was undo. We had asynchronous edits that had to be managed within Swings very synchronous and sequential undo system.
Role: Salesman
Time Employed: 2014 - 2015
Role: Butchers Assistant/Checkout Operator
Time Employed: 2009 - 2013
Role: Raspberry Harvester
Time Employed: 2008
I prefer Unix based systems for general development, usually one of NixOS, Ubuntu, Fedora or OSX.
I exclusively use git for version control. I am very competent with git and have written a number of internal scripts for it.
Attending as many conferences as possible I enjoy networking and learning how the industry is evolving. I have been to multiple conferences including Kiwi Pycon, Kiwicon X and NZJSCon. One of my highlights was presenting a lightning talk on GitPython at Kiwi Pycon, Dunedin. I will be attending Linux Conference Australia in Sydney at the end of January 2018.
I attend as many talks and events as possible, via Massey University, IT Professionals of New Zealand (ITPNZ) or the Palmerston North Software Development Meetup Group. Once I have arrived in Cairns I will be joining IT Professionals Australia. I have also given a talk and workshop for Scala to around 30 people at the meetup group.
Qualification: Bachelor of Information Science. Computer Science Major
Status: Compulsories complete in 2015
Started working fulltime before completion currently finishing electives via part-time study.
Qualification: NCEA level 3
Status: Complete in 2011
Personal phone numbers of references available on request.
Relationship: Cofounder of Electric Memory IT
Location: Palmerston North, New Zealand
Timezone: New Zealand Standard Time (NZST - UTC+13)
Email<EMAIL_ADDRESS>Phone: ???
Duane is my current boss. He has worked for PSE for 14+ years. Currently heads on the NLE project. Ask Duane any technical questions about my Scala knowledge and/or involvement in NLE.
Relationship: Cofounder of Electric Memory IT
Location: Hungary
Timezone: Central European Time (CET - UTC+1)
Email<EMAIL_ADDRESS>Phone: ???
Luke worked for a short time in New Zealand when I first started. He has since moved back to Hungary. Ask Luke any technical questions about the flowsheeting work I have done. He also has worked on NLE and I send a lot of code reviews his way.
Relationship: Head of Software Development, Process Systems Enterprise
Location: London, England
Timezone: Greenwich Mean Time (GMT - UTC+0)
Email<EMAIL_ADDRESS>Phone: +44 20 8563 0888
Andrew is the Head of Software Development. If you wish to know any non-technical information about how I have worked with PSE and how well I work remotely, feel free to ask him.
Relationship: Ex Manager of Dick Smith Palmerston North
Location: Palmerston North, New Zealand
Timezone: New Zealand Standard Time (NZST - UTC+13)
Email:
Phone: ???
Steven (Steve) was my boss at Dick Smith before I started working as a Software Developer. If you would like to know anything about my retail experience, including customer interactions, feel free to ask Steve.


{% extends 'base.html' %} {% block title %}Error - Page Not Found{% endblock %} {% block body %}
What you were looking for is just not there.
Get back to main Application


 The only way that a story this insipid could be any good would be if it was a very campy black comedy. Hush, instead, is sold as a thriller but comes off as more of a Lifetime movie of the week.
Lange (Blue Sky) stars as Martha Baring, the at-first-nice-but-later-flat-out-crazy mother of Jackson (Jonathon Schaech, That Thing You Do!). She's a single Mom (her husband was killed when Jackson was a boy) who single handedly runs a sprawling horse farm named Kilronan. As the picture opens, she is anxiously awaiting her son's return home from New York City for the holidays. Helen, (Gwyneth Paltrow, Great Expectations) his big city girlfriend is in tow.
The two women start off on an awkward foot, with Martha accidentally walking in on a nude Helen. Perhaps this is her chance to see if Helen has the proper hips for child bearing. Evidently passing the quick peek test, Martha does what any good mother-in-law would do by tampering with Helen's diaphragm. A pregnancy and a wedding quickly ensue.
The rest is your basic uninspired fodder. Helen slowly learns the deep dark family secrets, but it's too late. The only person she has to turn to is Martha's mother-in-law, Alice (Nina Foch), who has found herself unceremoniously cast from the family upon her son's death. Foch, an Oscar nominee for Executive Suite, is the only redeeming quality among the so-so performances by the other cast members.
I'm not going to get into the unbelievable parts. Like how Helen is knocked up on New Year's Eve but isn't showing at all in a scene that takes place during the summer. Or the part where she gets attacked, sliced and diced in the hallway of her New York City loft apartment but incredibly has mascara intact after being treated in the emergency room. By the way, her attacker has got to be one of the most obvious `mysteries' of film history.
 While there was a great vomiting scene and that naked first encounter, this film was still boring and painful to watch. Luckily, I was alone in the theater and could freely laugh out loud at the absurdity of it all.
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


VSL // Designers To Watch
VSL // Designers To Watch
* Sebastian Errazuriz is a New York-based artist, designer and activist hailing from Chile. His ability to work in all areas of design, from political artwork to giant public art projects to intricate handcrafted furniture makes him one to watch in 2015. [1 of 3]
today’s Very Short List:
design 21 Jan 2015
Diane Pham is the founder and editorial director of 6sqft.com , a brand new site tracking NYC’s architecture, design and real estate news. Diane created 6sqft as a way to document and celebrate the the city’s rich history, vibrant present, and exciting future. TWITTER FACEBOOK
Subscribe Forward Share Facebook TwitterGoogle
* Mogollon ’s Monica Brand and Francisco Lopez formed their firm on the basis that they’d be able to design anything on “virtually any platform”—and they do just that. They’ve created artwork for celebs like Katy Perry and even designed shirts for UNIQLO. They recently brought their hypnotic 2D talent to the 3D world with the interior design of Sisters in Brooklyn. [2 of 3]
* Mark my words: The Bittertang Farm will be big in 2015. Their “vivid” and “squishy” installations have made their way into the Storefront for Art and Architecture and they were just named a finalist in MoMA PS1’s 2015 Young Architects Program. I recently chatted with Bittertang’s designers about some of the wild projects they have in the works this year for 6sqft.com. [3 of 3]
http://link.nyobserver.com/516ca68465217dc6e1b9a3a626ut8.254y/TvnrKi0WTdwTHwxwCc552 very short list is a
delightful e-mail that shares
cultural gems from a
different curator every day.
If you have any problems reading this e-mail, click here to view it online.
http://link.nyobserver.com/516ca68465217dc6e1b9a3a626ut8.254y/UHyHCJsf7NZSKXrPCed4d
Subscribe
Forward
My Account
Unsubscribe
style 16 Jan 2015
Alison Ragusa is in a Mediterranean state of mind.
culture 14 Jan 2015
Shannon Bahrke takes us skiing!
culture 12 Jan 2015
John Oseid just got back from Haiti, and can’t wait to visit again.
Editorial Policy
Privacy Policy
Contact Us
Press
Terms + Conditions
very fine print: ©2015
Observer VSL LLC.
321 West 44th Street, 6th Floor
New York, NY 10036 USA
All rights reserved.
Questions?<PHONE_NUMBER>.
This message was intended for<EMAIL_ADDRESS>If you believe this has been sent to you in error, please safely unsubscribe .


{extends "base.html"} {block "content"}
{$TOTAL_IMAGES|number_format}
{$TOTAL_SIZE|humn_size}
{$TOTAL_VIEWS|number_format}
{$TOTAL_TRAFFIC|humn_size}


{{ define "main" }} {{ .Content }} This site was archived for preservation by the British Library. The URL at time of capture may provide more information.
{{ .Params }}{{ $related := .Site.Pages.RelatedTo ( keyVals "target_ids" ( string .Params.id ) ) }} {{ with $related }} This site is part of the following Special Collection(s):


meteoJS.synview
displays the images on the map. The map is a created using OpenLayers.
With the additional objects meteoJS.timeline(.*)
the current time is displayed, a slider is constructed
and also the animation through all the times is handled. Additional, a tooltip is enabled. This tooltip is passed as
an option to meteoJS.synview.type
.


Discover the cosmos! Each day a different image or photograph of our fascinating universe is featured, along with a brief explanation written by a professional astronomer.
Explanation: Just two weeks ago, dark skies over the desert in northern Iran held this alluring celestial vista. The dramatic digital mosaic finds the Moon and Mars alongside the Milky Way's dusty rifts, stars, and nebulae. Captured through a series of exposures to cover a range in brightness, that night's otherwise Full Moon is immersed in Earth's shadow. It actually appears fainter and redder than the Red Planet itself during the widely watched total lunar eclipse. For cosmic tourists, the skyscape also includes the Lagoon (M8) and Trifid (M20) nebulae and planet Saturn shining against the Milky Way's pale starlight. The Moon isn't quite done with its shadow play, though. Today, the New Moon partially eclipses the Sun for much of northern planet Earth.
Authors & editors:
Robert Nemiroff
(MTU) &
Jerry Bonnell (UMCP)
NASA Official: Phillip Newman
Specific rights apply.
NASA Web
Privacy Policy and Important Notices
A service of:
ASD at
NASA /
GSFC
& Michigan Tech. U.


{% extends 'main/base.html' %}
{% load static %}
{% block content %}
Server configured automatically, start the installer right away Upload your own templates and edit the database using phpmyadmin No limits on modules, templates, users, databases, etc. We donate part of our income to NamelessMC contributors Protect your website with modern TLS encryption without hassle. Dedicated web server and database server for every website.Named Hosting
Start a NamelessMC website the easy way. We built our hosting
system from scratch to be as simple as possible without limiting possibilities.
From $3/month, free for the first 30 days, no subscription or payment
information required.
If you don't need full file and database access and
instead want something free, check out
namelesshosting.com
Simple
Full access
No artificial limits
Support NamelessMC
Secure
High performance


Javonte
Home
Portfolio
Resume
contact
Hi, I'M Javonte Tuppince
Full Stack Developer
Get to know me
About me
X
contact me
Email<EMAIL_ADDRESS>804-920-5228
Name
Email address
We'll never share your email with anyone else.