FOP FAQ | print-friendly |
Questions
- 1. General questions
-
2. Problems running FOP
- I get the error: [ERROR]: 'master-reference' for 'fo:page-sequence'matches no 'simple-page-master' or 'page-sequence-master'
- I get a NoClassDefFound exception.
- I get a NoSuchMethodException or a NoSuchFieldException exception.
- I get an OutOfMemoryException.
- I get a MalformedURLException.
- I get an "[ERROR]: null", or a NullPointerException.
- FOP returns the message "[ERROR] object|property - 'x' is not implemented yet." When will it be implemented?
- FOP hangs. FOP does not exit.
- FOP runs forever, writing lots of ">" to the log.
- FOP cannot find a file for fo:external-graphics.
- FOP does not find my fonts.
-
3. Problems with FOP output
- Leaders don't work anymore in 0.20.5. Instead of filling the line, only three dots or a short ruler is output.
- Why does FOP insert a blank page between my page sequences?
- Why is my graphic not rendered?
- My graphical images do not work properly.
- Why is my graphic rendered at a different resolution than it was created?
- Keep-with-next, keep-with-previous, keep-together don't work.
- My tables are missing, or missing their content.
- Text overflowing table cells and the like is not clipped. Long text flows into adjacent cells/block, obscuring stuff there.
- Page numbers are not properly right aligned.
- Hyphenation does not work.
-
4. Embedding FOP. Using FOP in a servlet.
- How do I use FOP in a servlet?
- How do I use FOP in a servlet with an XSLT transformation?
- How do I pass parameters to the XSLT transformation?
- How do I use my own fonts when running FOP from a servlet?
- How do I set the baseDir property in a servlet environment?
- How do I use a user configuration file from a servlet?
- I keep getting NoClassDefFound and other exceptions. How do I get FOP working for various servlet engines?
- Can FOP be used in multithreaded environments?
-
5. SVG specific questions
- The rendering of SVG text in my PDF is of poor quality. Can I control this?
- How do I use FOP with SVG on headless servers?
- FOP does not exit if a SVG is included.
- I have problems with SVG referring to gradients etc. using "uri(#stuff)". I get a MalformedURLException.
- Why is my SVG rendered at a size different from that specified in my fo:external-graphic element?
-
6. PDF specific (includes Acrobat peculiarities)
- How do I embed fonts in PDF?
- Some characters are not displayed, or displayed incorrectly, or displayed as “#”.
- What tools are available for post-processing my PDF document?
- How do I add security features (encryption, disable printing) to my PDF document?
- How do I add document properties (title, author, etc.) to my PDF document?
- How do I add watermarks to my PDF document?
- The PDF is printed contorted!
- How do I control the Acrobat bookmark display?
- 7. IEx specific stuff
-
8. General questions regarding XSLT, XSLFO, and basic XML
- (FO) How do I vertically center an image or a table (or whatever)?
- (FO) How do I center a table horizontally?
- (FO) How to get page numbers printed on the "outer side" of the page (for books, for example)?
- (FO) How do I use different static content for odd and even pages?
- (FO) How do I get a special header on the first page?
- (FO) How do I omit my headers on a blank page? How do I write "This page is left blank" on an intentionally blank page?
- (FO) How do I print an Euro sign, a checkbox or other some other special symbols?
- (FO) How do I keep linebreaks and hard spaces? How do I get preformatted text displayed as expected?
- (FO) How do I print the total number of pages, for example "page 1 of 12"
- (FO) The header overlaps body content. The body extends into the footer.
- (FO) How do I get lines in the document, as separators, side bars or folding marks?
- (FO) How do I validate my FO document?
- (XML) How do I get a non-breaking space in FO? There are complaints about .
- (XML) How do I enter special characters in XML? There are complaints about undefined entities, such as ü, which work in HTML.
- (XML) There are complaints about illegal characters and entities in the input.
- (XML) There are complaints about illegal bytes or characters in the input. There are odd characters in the result.
- 9. General suggestions. How to solve problems.
Answers
1. General questions
1.1. What is FOP?^
FOP is a print formatter for XSL formatting objects.
It can be used to render an XML file containing XSL formatting objects into a page layout. The main target is PDF but other rendering targets are supported, such as AWT, PCL, text and direct printing.
1.2. What can I do with FOP?^
FOP provides both an application and a library that converts an XSL FO document into paginated output.
The FOP command line application can be directly used to transform XML into PDF, PostScript, PCL and other formats, there is also an AWT based viewer integrated.
The library can be used in servlets and other Java applications.
1.3. What does "FOP" stand for?^
It's an acronym for Formatting Object Processor
1.4. How does FOP interact with other Apache Projects?^
FOP is distributed with Cocoon as a PDF serializer for XSL (FO) documents.
Batik can be used with FOP to transcode an SVG image into a PDF document.
1.5. What is XSL?^
XSL is a W3C standard concerned with publishing XML documents. It consists of two parts: XSLT and XSLFO. The acronym expands to eXtensible Stylesheet Language.
1.6. What is XSL-FO?^
XSLFO is an XML vocabulary that is used to specify a pagination and other styling for page layout output. The acronym “FO” stands for Formatting Objects. XSLFO can be used in conjunction with XSLT to convert from any XML format into a paginated layout ready for printing or displaying.
XSLFO defines a set of elements in XML that describes the way pages are set up. The contents of the pages are filled from flows. There can be static flows that appear on every page (for headers and footers) and the main flow which fills the body of the page.
Synonyms: XSL FO, XSL (FO), XSL:FO, XSL-FO, Formatting Objects
1.7. What is XSLT?^
XSLT describes the transformation of arbitrary XML input into other XML (like XSLFO), HTML or plain text. The “T” comes from Transformation. For historical reasons, a transformation is often also called a “style sheet”.
Synonyms: XSL transformation, XSL:T, XSL style sheet.
1.8. How can I contribute?^
There are numerous ways that you can help. They are outlined in the Developer's Introduction.
2. Problems running FOP
2.1. I get the error: [ERROR]: 'master-reference' for 'fo:page-sequence'matches no 'simple-page-master' or 'page-sequence-master'^
FOP was changed to be in accordance with the latest standard (see XSL standard).The page master for a fo:page-sequence is now refereced by the master-reference attribute. Replace the master-name attributes of your fo:page-sequence elements by master-reference attributes. You have to do this also for fo:single-page-master-reference, fo:repeatable-page-master-reference and fo:conditional-page-master-reference elements in you page master definitions.
Update your FO documents and style sheets.
2.2. I get a NoClassDefFound exception.^
This is typically a problem with your classpath.
If you are running FOP from the command line:
- Use the fop.bat or fop.sh command file from the FOP distribution. If you have a FOP version older than 0.20.5, ensure the directory where FOP and these files have been installed is the current working directory.
- If this doesn't help, check whether still all the jar files mentioned in the classpath in the fop.bat file are in their respective places.
If you run FOP embedded in your servlet, web application or other Java application, check the classpath of the application. Check the also the information pertaining servlet engines for further hints.
2.3. I get a NoSuchMethodException or a NoSuchFieldException exception.^
This is usually caused by an older version of one of the FOP jars or old XML tools in the classpath. Check in particular for parser.jar, jaxp.jar, xml4j.jar or lotusxsl.jar.
Incompatible versions of Batik may also cause this problem. Use the version of Batik that comes with FOP. It is not always possible to use a more recent version of Batik.
2.4. I get an OutOfMemoryException.^
See FOP Memory.
2.5. I get a MalformedURLException.^
What you probably think of as "file names" are usually URLs, in particular the src attribute of fo:external-graphic.
Because usage of URLs is growing, you should make yourself familiar with it. The relevant specification is RFC 2396.
In a nutshell, the correct syntax for an absolute file URL is file:///some/path/file.ext on Unix and file:///z:/some/path/file.ext on Windows systems. Note the triple slash, and also that only forward slashes are used, even on windows.
A relative file URL starts with anything but a slash, and doesn't have the file: prefix, for example file.ext, path/file.ext or ../file.ext. The string file:path/file.ext is not a relative URL, in fact, it isn't a valid URL at all. A relative URL is subject to a resolving process, which transforms it into an absolute URL.
2.6. I get an "[ERROR]: null", or a NullPointerException.^
This is often caused by an invalid FO document. Currently only very common errors are intercepted and produce a comprehensible error message. If you forgot container elements like fo:page-sequence or fo:flow and put blocks and inline elements directly as children of fo:root or fo:page-sequence, you'll only get a NullPointerException. Check whether your FO file has a proper structure. In some cases there are mandatory properties, like the master-reference in fo:conditional-page-master-reference, check also whether you got them right.
You may find it helpful to use the validation tools to validate your FO document. This will catch most problems, but should not be relied upon to catch all.
If you use XSLT, problems in your style sheet and in your source XML also can produce a NullPointerException. Run the transformation separately to check for this, usually you'll get a detailed error message from the XSLT processor.
If you turn on debugging with the "-d" option you may be able to see more detailed information.
2.7. FOP returns the message "[ERROR] object|property - 'x' is not implemented yet." When will it be implemented?^
See the article "Review FOP's Standards Compliance".
2.8. FOP hangs. FOP does not exit.^
The most likely reason is a known problem with the Java run time environment which is triggered by rendering SVGs. Suns JDK 1.4 does not have this problem. See also FOP does not exit if a SVG is included.
Another possibility is that FOP went into a non terminating loop. Usually this is indicated by lots of log messages of the form "[INFO]: [NNNN]" which indicate a new page has been started or box overflows. After some time, FOP will crash with an OutOfMemoryException.
If you called the FOP command line application from some other programm, for example from Java using Runtime.exec(), it may hang while trying to write log entries to the output pipe. You have to read the FOP output regularly to empty the pipe buffer. It is best to avoid exec'ing FOP, use the library interface instead.
2.9. FOP runs forever, writing lots of ">" to the log.^
There is something too large to fit into the intended place, usually a large image, a table whose rows are kept together or a block with a space-before or space-after larger than the page size. Catch the first page showing this phenomenon and check it. If it is not obvious which element causes the trouble, remove stuff until the problem goes away. Decrease the dimensions of the offending element or property, or increase the dimension of the enclosing element or container, or remove keep-with-* properties.
2.10. FOP cannot find a file for fo:external-graphics.^
The src attribute of the fo:external-graphics element requires a URI, not a file name. See External Resources for more information about specifying URIs.
2.11. FOP does not find my fonts.^
Did you get: «Failed to read font metrics file C:\foo\arial.xml : File "C:\foo\arial.xml" not found»? The value for the metrics-file attribute in the user config file is actually an URL, not a file name. Use "file:///C:/foo/arial.xml" instead.
If you used a relative URL, make sure your application has the working directory you expect. Currently FOP does not use the baseDir for resolving relative URLs pointing to font metric files.
Try also setting the fontBaseDir configuration. (FIXME: add link to congfiguration page)
3. Problems with FOP output
3.1. Leaders don't work anymore in 0.20.5. Instead of filling the line, only three dots or a short ruler is output.^
Leaders still work, in fact they work better than ever before. You'll just have to add text-align="justify" and/or text-align-last="justify" to the block with the leader. Be sure you haven't accidentally overridden the leader-length.maximum="100%" default value.
Earlier versions of FOP used to expand a leader to fill the rest of the line unconditionally, anything following it, like page numbers in a TOC, was actually shifted beyong the right margin.
The new implementation uses leader-length.optimum to determine where to break the line, and expands the leader only further if the line should be filled, as indicated by the text-aling and text-align-last properties.
Actually due to the fuzzyness of the specification both the old and the new method are conformant (although adding text after the expanded leader in the old variant never was).
If you want to have a longer ruler or space in a non-justified line, you have to increase the leader-length.optimum property.
3.2. Why does FOP insert a blank page between my page sequences?^
This is because spec conformance has been improved.
The force-page-count property controls how a FO processor pads page sequences in order to get certain page counts or last page numbers. The default is "auto". With this setting, if the next page sequence begins with an odd page number because you set the initial-page-number, and the current page sequence also ends with an odd page number, the processor inserts a blank page to keep odd and even page numbers alternating (similar for the case the current page sequence ends with an even page number and the next page sequence starts with an even page number.
If you don't want to have this blank page, use force-page-count="no-force".
3.3. Why is my graphic not rendered?^
Most commonly, the external file is not being found by FOP. Check the following:
- Empty or wrong baseDir setting.
- Spelling errors in the file name (including using the wrong case).
- Security Problems (i.e. image was not delivered because FOP is not allowed to read the file). This is especially a problem if the external file is retrieved over HTTP. Possible issues include security settings on the server, server configuration, and missing cookies or other authorization information. Any easy way to check this is to cut&paste the source URL from the fo:external-graphic into the Location field of a browser on the machine where the FOP process will be running.
Other possibilities:
- The image format is not supported or not supported completely. See FOP Graphics Formats for a list of supported formats and related issues.
- The graphic may be too large to fit into the intended space.
- There may be something (static content) that is obscuring the graphic. (This is very rare).
3.4. My graphical images do not work properly.^
See FOP Graphics Formats for a list of supported formats and related issues.
3.5. Why is my graphic rendered at a different resolution than it was created?^
See Graphics Resolution.
3.6. Keep-with-next, keep-with-previous, keep-together don't work.^
These properties are not implemented, except on table rows. In order to take advantage of them, you have to nest stuff to be kept together in a table.
The concept is called “blind table”. The table is used for pure layout reasons and not obvious in the output.
An example of an image and the image caption to be kept together:
<fo:table table-layout="fixed" width="100%"> <fo:table-column column-width="proportional-column-width(1)"/> <fo:table-body> <fo:table-row keep-with-next="always"> <fo:table-cell> <fo:block> <fo:external-graphic src="foo.jpg"/> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell> <fo:block>Image Caption</fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table>
3.7. My tables are missing, or missing their content.^
Check for fo:table-body around the rows. FOP up to 0.20.4 doesn't raise an error if it is omitted, it just drops the content. More recent releases will catch this problem.
Also, the fo:table-with-caption element is not implemented, tables within such an element are dropped too. FOP generates an error message for this problem. The DocBook style sheets generate fo:table-with-caption elements, so watch out.
3.8. Text overflowing table cells and the like is not clipped. Long text flows into adjacent cells/block, obscuring stuff there.^
Clipping as specified by the overflow="hidden" is not yet implemented. If you have long words overflowing table cells, try to get them hyphenated. Artificial names like product identifications or long numbers usually aren't hyphenated. You can try special processing at XSLT level, like
- clip long text,
- explicit wrapping+clipping,
- insert zero width spaces (U+200B or ) to allow FOP to wrap.
Check the XSL FAQ and the XSL list archive for how to perform these tasks.
3.9. Page numbers are not properly right aligned.^
This happens for fo:page-number-citation elements if the citation occurs before FOP formatted the requested page, usually in TOC or index pages. It is caused by the problem that FOP has to guess how much space the yet unknown page number will occupy, and usually the guesses are somewhat off.
The most recent FOP releases should have this problem fixed. Check whether you can upgrade.
3.10. Hyphenation does not work.^
Set the language attribute somewhere and explicitly enable hyphenation. Check whether you use a language for which hyphenation is supported. Supported languages can be deduced from the files in the {fop-dir}/src/hyph directory of the FOP source distribution. If you want to use a language FOP currently doesn't hyphenate, please see the Configuration page.
Set the language (on fo:page-sequence, fo:block or fo:character):
<fo:page-sequence language="fi">
Enable hyphenation on a block:
<fo:block hyphenate="true">
4. Embedding FOP. Using FOP in a servlet.
4.1. How do I use FOP in a servlet?^
4.2. How do I use FOP in a servlet with an XSLT transformation?^
4.3. How do I pass parameters to the XSLT transformation?^
4.4. How do I use my own fonts when running FOP from a servlet?^
Declare the fonts in the userconfig.xml file as usual. See loading the user configuration file for further details.
4.5. How do I set the baseDir property in a servlet environment?^
4.6. How do I use a user configuration file from a servlet?^
4.7. I keep getting NoClassDefFound and other exceptions. How do I get FOP working for various servlet engines?^
See Servlet Engines.
4.8. Can FOP be used in multithreaded environments?^
See Multithreading FOP.
5. SVG specific questions
5.1. The rendering of SVG text in my PDF is of poor quality. Can I control this?^
5.2. How do I use FOP with SVG on headless servers?^
5.3. FOP does not exit if a SVG is included.^
Applies to older FOP versions and JDK 1.3 and older. That's because there is an AWT thread hanging around. The solution is to put a System.exit(0) somewhere.
5.4. I have problems with SVG referring to gradients etc. using "uri(#stuff)". I get a MalformedURLException.^
This is really a "resolving relative URI" problem with some twists. The problem is that the #stuff URL fragment identifier is resolved within the current SVG document. So the reference must be valid within the XML subset and it cannot reference other SVG documents in the same XML file. Some options to try:
- Put the SVG into a separate file and use it with fo:external-graphics.
- Use a separate SVG file which contains only the gradient (and perhaps other SVG stuff you want to reference) and point an absolute URL to it: fill="url(file:///c:/refstuff/grad.svg#PurpleToWhite)".
- Same as above but use a relative URL: fill="url(grad.svg#PurpleToWhite)". This may be easier to deploy.
- Make sure that the reference is valid in the current SVG document.
In any case, the referenced stuff has to be pointed to by an URL. It doesn't necessarily have to be a file URL, HTTP should also work. Also, expect a performance hit in all cases, because another XML file has to be retrieved and parsed.
Ultimately, both FOP and especially Batik should be fixed to make your code work as expected, but this will not only take some time but also some effort by a standard committee in order to make the semantics of this kind of references in embedded SVG clearer.
See also MalformedURLException
5.5. Why is my SVG rendered at a size different from that specified in my fo:external-graphic element?^
See SVG Scaling.
6. PDF specific (includes Acrobat peculiarities)
6.1. How do I embed fonts in PDF?^
See the Fonts page for information about embedding fonts.
6.2. Some characters are not displayed, or displayed incorrectly, or displayed as “#”.^
This usually means the selected font doesn't have a glyph for the character.
The standard text fonts supplied with Acrobat Reader have mostly glyphs for characters from the ISO Latin 1 character set. For a variety of reasons, even those are not completely guaranteed to work, for example you can't use the fi ligature from the standard serif font. Check the overview for the default PDF fonts.
If you use your own fonts, the font must have a glyph for the desired character. Furthermore the font must be available on the machine where the PDF is viewed or it must have been embedded in the PDF file. See embedding fonts.
For most symbols, it is better to select the symbol font explicitely, for example in order to get the symbol for the mathematical empty set, write:
<fo:inline font-family="Symbol">∅</fo:inline>
The "#" shows up if the selected font does not define a glyph for the required character, for example if you try:
<fo:inline font-family="Helvetica">∅</fo:inline>
6.3. What tools are available for post-processing my PDF document?^
See PDF Post-processing.
6.4. How do I add security features (encryption, disable printing) to my PDF document?^
See PDF Encryption. See also PDF Post-processing.
6.5. How do I add document properties (title, author, etc.) to my PDF document?^
See PDF Post-processing.
6.6. How do I add watermarks to my PDF document?^
See PDF Watermarks.
6.7. The PDF is printed contorted!^
Check the paper size in Acrobat settings and the "fit to page" print setting. Contorted printing is often caused by a mismatched paper format, for example if the setting is "US Letter" but the PDF was made for A4. Sometimes also the printer driver interferes, check its settings too.
6.8. How do I control the Acrobat bookmark display?^
FOP does not currently support this feature. Possible workarounds include those mentioned in the PDF Post-Processing FAQ.
7. IEx specific stuff
7.1. The FOP servlet is called multiple times!^
This is a problem of Internet Explorer requesting the content several times. Please see the notes on Internet Explorer for more information.
7.2. How do I print PDF directly from the browser?^
It depends whether you mean "printing to a printer under control of the server" or "printing on the client's printer".
For the first problem, look at the print servlet in the FOP examples. You'll have to gather any printer settings in a HTML form and send it to the server.
For the second task, you can use some client side script to start Acrobat Reader in print mode, or use a Java applet based on the FOP print servlet. This depends heavily on the client installation and should not relied on except in tightly controlled environments.
See also http://marc.theaimsgroup.com/?l=fop-dev&m=101065988325115&w=2
8. General questions regarding XSLT, XSLFO, and basic XML
8.1. (FO) How do I vertically center an image or a table (or whatever)?^
8.2. (FO) How do I center a table horizontally?^
8.3. (FO) How to get page numbers printed on the "outer side" of the page (for books, for example)?^
8.4. (FO) How do I use different static content for odd and even pages?^
8.5. (FO) How do I get a special header on the first page?^
8.6. (FO) How do I omit my headers on a blank page? How do I write "This page is left blank" on an intentionally blank page?^
See Blank Pages.
8.7. (FO) How do I print an Euro sign, a checkbox or other some other special symbols?^
See Special Characters.
8.8. (FO) How do I keep linebreaks and hard spaces? How do I get preformatted text displayed as expected?^
8.9. (FO) How do I print the total number of pages, for example "page 1 of 12"^
See Total Document Pages.
8.10. (FO) The header overlaps body content. The body extends into the footer.^
See Aligning Regions.
8.11. (FO) How do I get lines in the document, as separators, side bars or folding marks?^
See Drawing Lines.
8.12. (FO) How do I validate my FO document?^
See Validating XSL-FO.
8.13. (XML) How do I get a non-breaking space in FO? There are complaints about .^
8.14. (XML) How do I enter special characters in XML? There are complaints about undefined entities, such as ü, which work in HTML. ^
8.15. (XML) There are complaints about illegal characters and entities in the input.^
8.16. (XML) There are complaints about illegal bytes or characters in the input. There are odd characters in the result.^
See XML Encoding Issues.
9. General suggestions. How to solve problems.
9.1. I think I have found a bug in FOP. What should I do?^
See the Bugs page for information about bugs already reported and how to report new ones.
9.2. I have questions that are not addressed in this FAQ. Where should I post them?^
- If your question is a development-related question, please see the Developer FAQs.
-
If you have a runtime exception or other runtime problem:
- double-check the Runtime FAQs.
- ClassNotFoundException, NoSuchMethodException and NoSuchFieldException problems are almost always a problem with the local environment. Try to get local help first.
- Check Reported Issues to see if this is a known problem.
- If none of the above apply, post a question to the fop-dev mailing list.
- In the case where something works properly with another formatter, (AntennaHouse, PassiveTex, etc.) but doesn't work with FOP, please check the Release Notes, the FOP Standards Compliance document, and the remaining FAQ in this document. If not found there, look at the list of Bugs Already Reported. If not found there, please post a question on the fop-user mailing list or Open a New Bug.
- Question about how to use FOP, how to perform certain tasks with FOP or how to integrate FOP into another application should be posted to fop-user.
- XSLT specific stuff sould go to the XSL list. This includes problems with the language and XSLT HOW-TOs.
- Problems specific to a certain XSLT processor, like Xalan, Saxon or MSXML, should be handled by processor specific lists. This includes problems with deployment, processor specific extensions, suspected bugs and processor specific APIs. Note that JDK 1.4 comes with an XML parser and an XSLT processor which are older versions of Xerces and Xalan, respectively, and both have a number of annoying bugs. See $$$FIXME on how to use more recent versions or other packages instead.
- Problems with servlet containers should be asked on the vendor specific lists for these software packages.
- More general questions regarding Java, including deployment, Java APIs, classpath issues and property definitions should be redirected to some Java specific list.


--- layout: post title: A new free Australian web site for property owners tags: - Business - Web status: publish type: post published: true meta: {} --- A colleague from Melbourne Perl Mongers has started a new web site called Free House, providing free property listing services for the Australia market. I have no idea how he's going to make money as I can't see any adverts! However I wish him the best of luck. If you're looking to sell or rent then why not try it? It costs nothing.
powered by performancing firefox


--- layout: default ---
The Integrated Rapid Infectious Disease Analysis (IRIDA) Platform is a secure, web-based system to automatically integrate epidemiological, genomics, and other laboratory data in order to perform genomic epidemiological analysis in the context of an infectious disease outbreak.
IRIDA is an open source suite of tools that manages your next-generation sequencing data, from the sequencer through analysis.
Please use the links below to navigate to the type of documentation you're interested in:
The IRIDA manuscript is in preparation. A preprint is available on bioRxiv:
Thomas C Matthews, Franklin R Bristow, Emma J Griffiths, Aaron Petkau, Josh Adam, Damion Dooley, Peter Kruczkiewicz, John Curatcha, Jennifer Cabral, Dan Fornika, Geoffrey L. Winsor, Melanie Courtot, Claire Bertelli, Ataollah Roudgar, Pedro Feijao, Philip Mabon, Eric Enns, Joel Thiessen, Alexander Keddy, Judith Isaac-Renton, Jennifer L. Gardy, Patrick Tang, The IRIDA Consortium, João A Carriço, Leonid Chindelevitch, Cedric Chauve, Morag R Graham, Andrew G McArthur, Eduardo N Taboada, Robert G Beiko, Fiona SL Brinkman, William WL Hsiao, Gary Van Domselaar. 2018. The Integrated Rapid Infectious Disease Analysis (IRIDA) Platform. bioRxiv 381830; doi: https://doi.org/10.1101/381830.
Additional related publications are available at https://www.irida.ca/related-publications/.


REINDEER GAMES RATING: 5.5 /10 --> Not good enough to recommend
For more reviews and movie trailers, visit http://www.joblo.com/
Allow me to get philosophical on you for a minute. If a bad ending were to fall in an otherwise "okay" movie and you were sitting in the audience to witness it...would it be considered a "bad" movie? Well, in the case of this film, the ending was so over-the-top that it just tore away any cozy feelings that I had burrowed in me during the hour and a half previous. A note to writer Ehren Kruger: it's called over-writing...look into it : )
PLOT: A convict gets out of jail and finally meets the girl that he'd heard so much about during his stint in the big house. Unfortunately for the tender loving duo, the girl's older brother decides to crash their party and blackmail the ex-con into helping him and his gang of hooligans rob the Tomahawk casino.
CRITIQUE: An okay movie with a few decent one-liners, a couple of semi-interesting action sequences and Charlize Theron looking great is dramatically killed with an ending so ridiculous that it practically washes away the entire entertainment value of its previous ninety minutes.  First of all, Charlize Theron is now officially a grade A movie star! She's the type of actress that can make you love her no matter what she says, does, wears or doesn't wear. She is a beauty to behold, a solid thespian in her own right and a sparkplug of charisma, all wrapped in one. Fans of Charlize will love her in this film, as will fans of Theron's boobies, which make an uncredited cameo about halfway through the picture.  And let's not forget Sinise, who fills the shoes of the official "bad guy" pretty well, as well as his tank top, which he fills rather nicely with his newly buffed body. Nice biceps, dude!
So the actors were are all pretty good, the film started with an intriguing shot (Five dead bloody Santa suits spread across old man winter), and it even included a couple of neat twists and turns. So what went wrong? Unfortunately, the film on the whole just runs along with a little humor here and there, a little bit of pseudo-romance, which actually drags the film down especially at the very beginning, a little bit of action and an even smaller bit of suspense. All in all, nothing to majorly crow about, but certainly a film which I would have had no problem recommending to people who liked Theron or Affleck, like "winter" movies and Christmas songs and didn't mind suspending their disbelief every now and again. But unfortunately for Frankenheimer and crew, they decided to finish the movie off with one of the most absurd endings that I've seen in a while. So whatever little recommendation there was left in me by that point disappeared along with all sense of reality in the script.  But as much as my buddy and I tried to make sense of the cards that we were dealt during this film's final moments, it was obvious that neither one of us could pretend that any of it made much sense.
An okay movie...with a laughable ending.
Little known facts about the movie and its stars: Charlize Theron stands 5'9". She is fluent in Afrikaans. Ben Affleck stands 6'3". He speaks decent Spanish. Apparently, poor ol' Ben was accidentally knocked unconscious by football player Dana Stubblefield during the filming of this movie when Stubblefield slipped and knocked Affleck down. Bennie was quickly taken to the hospital, and fully recovered. Clarence Williams III is best remembered for his part of Linc Hayes, his big-ass afro role in TV's "The Mod Squad". When Senator Robert Kennedy was shot at the Ambassador Hotel in Los Angeles on June 5, 1968, it was his good friend John Frankenheimer who had personally driven him there that day. Writer Ehren Kruger is the latest flavor of the month in Hollywood, with no less than three films carrying his writing credits in the past year alone. Besides this one, he also wrote the thriller ARLINGTON ROAD (7/10) and the last of the Scream movies entitled SCREAM 3 (7.5/10). Watch closely and you will notice singer Isaac Hayes in a small cameo part at the beginning of this movie, as the convict in jail who finds a roach in his jello, eventually leading to a food fight. You will also note the acting debut of Washington Redskins tackle Dana Stubblefield who plays another fierce convict named Alamo. Apparently while casting for the film, director Frankenheimer told his associates that he "wanted a mean, tough guy to play Alamo. I want a guy like that Dana Stubblefield". When the filmmakers contacted the ballplayer, he was more than willing to play the part. Thankfully the filmmakers decided not to change this film's title from the pretty cool REINDEER GAMES to the very lame DECEPTION. This film was shot entirely in the province of British Columbia, Canada.
Review Date: February 21, 2000 Director: John Frankenheimer Writer: Ehren Kruger Producers: Bob Weinstein, Marty Katz and Chris Moore Actors: Ben Affleck as Rudy Charlize Theron as Ashley Gary Sinise as Gabriel Genre: Thriller Year of Release: 2000 -------------------------------------- JoBlo's Movie Emporium http://www.joblo.com/ -------------------------------------- (c) 2000 Berge Garabedian
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


--- layout: rustwasm title: web_sys::HtmlCanvasElement Struct description: web_sys::HtmlCanvasElement Struct keyword: web_sys::HtmlCanvasElement, HtmlCanvasElement Struct ---
The HTML5CanvasElement Struct provides properties and methods for manipulating the DOM canvas element.
Cargo.toml
[package]
name = "web_sys_console"
version = "0.1.0"
authors = ["www.webassemblyman.com"]
edition = "2019"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2.50"
[dependencies.web-sys]
version = "0.3.4"
features = [
'HTMLCanvasElement',
]


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
4
This spicy Asian soup is great for a dinner party - guests choose what goes into their soup, then ladle over the spicy broth.
Make sure you have separate utensils for your guests to use to transfer the raw ingredients into the stockpot, and clean utensils for eating - this reduces the chance of cross contamination from the raw ingredients and your guests' serving plates.
For the spicy soup base, heat a 2 litre/3½ pint capacity wok until smoking and add the groundnut oil. Add the chillies and Sichuan peppercorns and stir fry for a few seconds, or until fragrant.
Stir in the chilli bean sauce and chilli sauce and then pour in the vegetable stock. Add the star anise, Chinese mushrooms, tangerine peel, spring onion, ginger and chillies and bring to the boil, then reduce the heat to low and simmer for 20 minutes.
Ten minutes before serving, add the chilli oil, the sliced Chinese cabbage, deep-fried tofu, fresh tofu and fish balls, if using.
For the vinegar, chilli and soy dipping sauce, combine all the dipping sauce ingredients together in a small bowl and set to one side.
For the Taiwanese dipping sauce, combine all of the dipping sauce ingredients together in a small bowl and set to one side.
To serve, arrange the lamb, prawns, tofu, mushrooms and fishcakes on separate plates. Transfer the soup base to an electric wok or fondue and set it up in the centre of the table. Let guests help themselves and cook the ingredients in the spicy broth. Serve with the dipping sauces.


[viewBag]
title = "Found a needle?"
url = "/"
layout = "default"
is_hidden = 0
navigation_hidden = 0
==
If you see a discarded needle, you can choose to dispose of it yourself, or you can report it to have someone come and pick it up. You do not need to be afraid if you are cautious and follow the below instructions, as the risk of injury or infection is low.
What to do if you find a used needle on the street
- Get an empty non-breakable hard-sided container that needles can't poke through. The container must have a lid. You can use an empty pop bottle or a small coffee tin.
- Put the container on a flat surface.
- Use tongs or pliers to pick the syringe up by the barrel end and keep the pointed needle end away from you.
- DO NOT try to put the cap back on the needle.
- Put the needle in the container. Put the lid on tightly.
- Wash your hands.
- Place the container in a safe place where it won't be opened by children.
- Take to the nearest needle disposal drop box (see https://biomedwaste.com/find-a-needle-drop-box/) or use our online reporting tool to inform us and we'll send someone out to pick it up within a few days.
When to call for help
- If you are too nervous to pick it up.
- If you see many needles in a pile, for example, in a stairwell or behind a dumpster.
- If you see broken needles scattered on the ground.
- If you have no way of taking the needle in a strong container to a safe place.
What are the risks?
We know picking up other people’s garbage with bare hands is not a good idea because it’s an easy way to spread infection. Needles are like other garbage. Picking up needles with your bare hands if you have an open cut is a way to get infected. When a person finishes using a needle, some of that person’s blood may still be inside the needle or syringe. If you get poked by a needle, you could get sick as well.
Most people will not get sick by picking up or being poked by a used needle. When viruses in needles are exposed to the open air, the viruses usually die. There is no way to know how long a needle has been lying where you found it, so it is best to be safe.
- You may get tetanus.
- You may get a Staphylococcus Aureus infection.
- You may get hepatitis B.
- You are at risk getting hepatitis C, but the risk is negligible.
- You are extremely unlikely to get HIV because the virus does not live in the air for more than a few minutes. No one has ever gotten HIV from a needle stick injury from an abandoned needle.*
* BC Centre for Excellence in HIV/AIDS; Canadian HIV/AIDS Legal Network
What should you do if you get poked by a needle?
If you have been poked by a needle or other sharp object that you suspect has been in contact with blood or a body fluid containing blood.
IMMEDIATELY:
- Wash the area with soap and water.
- Let it bleed freely.
- Got to the nearest hospital emergency department immediately


We make Timber. Through it, we want to be the bridge between open government data and citizens
Find Out MoreWe are a team of passionate students in Waterloo looking to make a change in the world.
Contact UsTimber is a multi-platform app that aims to make city data about trees social and accessible to everyone.
Read about Timber


https://rdinnager.github.io/slimr/
The goal of slimr is to run SLiM population genetics forward simulations from R. It also has utilities for monitoring the simulations, and bringing the resulting data into R for post-processing and visualization.
To be able to use slimr productively it is important to have a working version of SLiM and slimr.
As a first step you need to install the package slimr from github.
if (!require("devtools")) install.packages(devtools)
devtools::install_github("rdinnager/slimr") #downloads the latest version
#for other branches you may want to try
devtools::install_github("rdinnager/slimr", re = "v0.2.1") #version accompanied with the manuscript
To facilitate the installation of slim We provide provide a function slim_setup()
. This functions aims to download a precompiled binary of SLiM and automatically links slimr to SLiM. Unfortunately due to the variety of systems and installs this might not work. If that is is the case please follow the excellent documentation how to install SLiM on their websites.
The next step is to make sure slimr is “linked” to slim (by knowing the location of the folder where the slim program is installed.). To check you can try:
slimr::slim_is_avail()
#> [1] TRUE
And if true is returned you are ready to go and run the test example below. In the case the test was not successful we need to find the folder where the slim executable has been installed and set this path in the R environment accordingly.
For example if slim R is installed at C:/Program Files/R/R-4.3.1/library/slimr
then you need to specify this via:
Sys.setenv(SLIM_HOME='C:/Program Files/R/R-4.3.1/library/slimr')
If you want to add this path permanently to your Rstudio installation (so no need to run Sys.setenv every time) you can use the command usethis::edit_r_environ()
and add a line like SLIMR_HOME='C:/Program Files/R/R-4.3.1/library/slimr'
to this file.
To be able to run SLiM within slimr we need to create a simple slim script. Below is the slimr version of the first slim script as presented in the excellent SLiM manual, called receipes. There are hundreds of more advanced script and we provide also several worked out examples in the manuscript (Russell et al. submitted, bioRxiv ). The example below is simply to test if slim is installed correctly and works together with slimr.
Running this code should give you the output as below (a return value of zero means success).
library(slimr)
#> Welcome to the slimr package for forward population genetics simulation in SLiM. For more information on SLiM please visit https://messerlab.org/slim/ .
#>
#> Attaching package: 'slimr'
#> The following object is masked from 'package:methods':
#>
#> initialize
#> The following object is masked from 'package:base':
#>
#> interaction
slim_script(
slim_block(initialize(),
{
## set the overall mutation rate
initializeMutationRate(1e-7);
## m1 mutation type: neutral
initializeMutationType("m1", 0.5, "f", 0.0);
## g1 genomic element type: uses m1 for all mutations
initializeGenomicElementType("g1", m1, 1.0);
## uniform chromosome of length 100 kb
initializeGenomicElement(g1, 0, 99999);
## uniform recombination along the chromosome
initializeRecombinationRate(1e-8);
}),
slim_block(1,
{
sim.addSubpop("p1", 500);
}),
slim_block(10000,
{
sim.simulationFinished();
})
) -> script_1
script_1
#> <slimr_script[3]>
#> block_init:initialize() {
#> initializeMutationRate(1e-07);
#> initializeMutationType("m1", 0.5, "f", 0);
#> initializeGenomicElementType("g1", m1, 1);
#> initializeGenomicElement(g1, 0, 99999);
#> initializeRecombinationRate(1e-08);
#> }
#>
#> block_2:1 early() {
#> sim.addSubpop("p1", 500);
#> }
#>
#> block_3:10000 early() {
#> sim.simulationFinished();
#> }
#run slim from within slimr
slim_run(script_1)
#>
#>
#> Simulation finished with exit status: 0
#>
#> Success!
slimr shines because it can create so called templates to run scripts with different parameter settings. It also allows to “collect” the output from SLiM and load it back into R, so you can run a full simulation with lots of parameters settings using parallel cores if available and analyse the output directly in R. See the vignettes for details of these features and how to use them.
Below is a simle “complete” workflow. * Creating a script in R * Run SLiM * Load the results into R * Analyse and visualise the results.
As an example we simply will run a single population of 33 individuals for 100 generations, with a single chromosome of (length=100000 bases), and high mutation rate (1e-5) [to shorten run-time]. Every 10 generation we will save the genetic status of each inidiviual for 100 generations. Once completed we read back in the genotypes (as a genlight object) and count the number of loci every of the 10 generations (the number of loci increases due to the mutations, that occurs during the simulation.
library(slimr)
# package adegenet as we are using genlight objects
if (!require(adegenet)) install.packages("adegenet")
#> Loading required package: adegenet
#> Loading required package: ade4
#> Warning: package 'ade4' was built under R version 4.2.2
#>
#> /// adegenet 2.1.7 is loaded ////////////
#>
#> > overview: '?adegenet'
#> > tutorials/doc/questions: 'adegenetWeb()'
#> > bug reports/feature requests: adegenetIssues()
library(adegenet)
slim_script(
slim_block (initialize(),
{
initializeMutationRate(1e-5);
## m1 mutation type: neutral
initializeMutationType("m1", 0.5, "f", 0.0);
## g1 genomic element type: uses m1 for all mutations
initializeGenomicElementType("g1", m1, 1.0);
## uniform chromosome of length 100 kb
initializeGenomicElement(g1, 0, 99999 );
## uniform recombination along the chromosome
initializeRecombinationRate(1e-8);
}),
slim_block(1, early(),
{
## create a population of 33 individuals
sim.addSubpop("p1", 33);
}),
slim_block(1, 100, late(),
{
#create an output
slimr_output(p1.genomes.output(), "p1", do_every=10);
}),
slim_block(100,late(),
{
sim.simulationFinished();
})
)->script_2
As before we setup a script, but this time we would like to run SLiM in parallel (does not make much sense as it is a single run only, but this is for demonstration purposes)
library(future)
# we want to run SLiM using 5 local cores
# please note on Linux and Windows you would like to use multicore as this is faster as it is a 'real' fork,
# but multisession works on all systems
plan(multisession, workers = 5)
sr <- slim_run(script_2 , parallel = TRUE)
#>
#>
#> Simulation finished with exit status: 0
#>
#> Success!
And finally we want to get the results back into R. The sr
object has information on all the runs and output files and data and can be used to get the results directly back into R. Please note that SLiM will still produce all the output files it as if it would have been run from the command line, hence the user can also explore those files.
In a typical slimr workflow though the user wants to have the data loaded back into R and depending on the output (in this case we used the function genomes.output()
to save) we can easily create genlight
objects that hold the genomics data in a very memory efficient way. To do so we use the slim_extract_genlight
function.
Before we use this function we may want to explore the sr
object which is a tibble that holds all the information that was used during runs.
str(sr)
#> List of 6
#> $ output : chr [1:42] "// Initial random seed:" "3575120756" "" "// RunInitializeCallbacks():" ...
#> $ exit_status: int 0
#> $ output_data: slmr_tp_ [10 × 5] (S3: slimr_output_data/spec_tbl_df/tbl_df/tbl/data.frame)
#> ..$ generation: int [1:10] 10 20 30 40 50 60 70 80 90 100
#> ..$ name : chr [1:10] "p1" "p1" "p1" "p1" ...
#> ..$ expression: chr [1:10] "p1.genomes.output()" "p1.genomes.output()" "p1.genomes.output()" "p1.genomes.output()" ...
#> ..$ type : chr [1:10] "slim_output" "slim_output" "slim_output" "slim_output" ...
#> ..$ data : chr [1:10] "#OUT: 10 GS 66\nMutations:\n118 9 m1 81596 0 0.5 p1 1 5\n59 10 m1 87231 0 0.5 p1 1 7\n60 11 m1 92977 0 0.5 p1 1"| __truncated__ "#OUT: 20 GS 66\nMutations:\n76 43 m1 58278 0 0.5 p1 1 7\n48 44 m1 7534 0 0.5 p1 1 21\n51 45 m1 19321 0 0.5 p1 1"| __truncated__ "#OUT: 30 GS 66\nMutations:\n82 43 m1 58278 0 0.5 p1 1 10\n2 44 m1 7534 0 0.5 p1 1 33\n8 45 m1 19321 0 0.5 p1 1 "| __truncated__ "#OUT: 40 GS 66\nMutations:\n44 44 m1 7534 0 0.5 p1 1 48\n51 45 m1 19321 0 0.5 p1 1 48\n64 46 m1 51375 0 0.5 p1 "| __truncated__ ...
#> ..- attr(*, "spec")=
#> .. .. cols(
#> .. .. generation = col_integer(),
#> .. .. name = col_character(),
#> .. .. expression = col_character(),
#> .. .. type = col_character(),
#> .. .. data = col_character()
#> .. .. )
#> ..- attr(*, "problems")=<externalptr>
#> $ process :Classes 'process', 'R6' PROCESS 'slim.exe', finished.
#>
#> $ error : chr(0)
#> $ output_file: chr "F:\\Rtemp\\RtmpCsVojl\\file4342c2c7e94.txt"
#> - attr(*, "class")= chr "slimr_results"
sr$output_data
#> # A tibble: 10 × 5
#> generation name expression type data
#> <int> <chr> <chr> <chr> <chr>
#> 1 10 p1 p1.genomes.output() slim_output "#OUT: 10 GS 66\nMutations:…
#> 2 20 p1 p1.genomes.output() slim_output "#OUT: 20 GS 66\nMutations:…
#> 3 30 p1 p1.genomes.output() slim_output "#OUT: 30 GS 66\nMutations:…
#> 4 40 p1 p1.genomes.output() slim_output "#OUT: 40 GS 66\nMutations:…
#> 5 50 p1 p1.genomes.output() slim_output "#OUT: 50 GS 66\nMutations:…
#> 6 60 p1 p1.genomes.output() slim_output "#OUT: 60 GS 66\nMutations:…
#> 7 70 p1 p1.genomes.output() slim_output "#OUT: 70 GS 66\nMutations:…
#> 8 80 p1 p1.genomes.output() slim_output "#OUT: 80 GS 66\nMutations:…
#> 9 90 p1 p1.genomes.output() slim_output "#OUT: 90 GS 66\nMutations:…
#> 10 100 p1 p1.genomes.output() slim_output "#OUT: 100 GS 66\nMutations…
Now we can use the slim_extract_genlight
function to convert the SLiM output files back into R, which creates a list of 10 genlight objects, one for each generation.
gls<- slim_extract_genlight(sr, by=c("generation"))
gls
#> # A tibble: 10 × 2
#> generation genlight
#> <int> <list>
#> 1 10 <genlight[,232]>
#> 2 20 <genlight[,327]>
#> 3 30 <genlight[,332]>
#> 4 40 <genlight[,402]>
#> 5 50 <genlight[,346]>
#> 6 60 <genlight[,432]>
#> 7 70 <genlight[,478]>
#> 8 80 <genlight[,475]>
#> 9 90 <genlight[,525]>
#> 10 100 <genlight[,550]>
#the genlight object for generation 10
gls$genlight[[1]]
#> /// GENLIGHT OBJECT /////////
#>
#> // 33 genotypes, 232 binary SNPs, size: 70.1 Kb
#> 0 (0 %) missing data
#>
#> // Basic content
#> @gen: list of 33 SNPbin
#>
#> // Optional content
#> @ind.names: 33 individual labels
#> @loc.names: 232 locus labels
#> @position: integer storing positions of the SNPs
#> @other: a list containing: mut_type prevalence
#number of loci at generation 10
nLoc(gls$genlight[[1]])
#> [1] 232
And finally we can use a simply lapply
to find the number of loci in the genlight for each generation (e.g. the number of loci that are polymorphic).
nloci <- unlist(lapply(gls$genlight, nLoc))
barplot(nloci, col=rainbow(length(gls$genlight)), names.arg = 1:10, xlab="generation",
ylab="# loci")
As we expect, this value gradually increases over time.
Within a simulation, it is also possible to output any file format or intermediate result in a variety of common and self-defined formats, (e.g VCF files, Fst values or a pedigree trees) and then extract the information using the workflow outlined above.
A very important feature, not shown here, is that you can create so called template scripts that have placeholders for parameters, that can be filled via a R data structure and all run all simuations via a single call to SLiM using slim_run()
. Please see the vignettes for such an example.
We believe that a simplified workflow will allow researchers to explore their parameter space in more detail and therefore, ultimately, will lead to a better understanding of the system under study.
Have fun using slimr!!!
Russell et al.
Please note that the slimr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


AY2018-2019, Sem 2
CZ2004 Operating System
Index: 12345
Lecture, LT 19, Monday 13:30-14:30 , Week 1-13
Tutorial, Tr + 17, Wednesday 14:30-15:30 , Week 2-11
Lab, HWLab3, Friday 10:30-12:30, 1,3,5,7,9
CZ2006 Human Computer Interaction
Index: 12123
Lecture, LT 15, Friday 13:30-14:30 , Week 1-13
Tutorial, Tr + 17, Thursday 14:30-15:30 , Week 2-11
Lab, HWLab3, Friday 10:30-12:30, 1,3,5,7,9
CZ2007 Advance Software Engineering
Index: 10042
Lecture, LT 15, Tuesday 13:30-14:30 , Week 1-13
Tutorial, Tr + 17, Friday 14:30-15:30 , Week 2-11
Lab, HWLab3, Monday 10:30-12:30, 1,3,5,7,9


1944 – Start of the Program
On September 29, 1944, Igor Kurchatov, the head physicist of the Soviet nuclear program, sent a letter to M.G. Pervukhin (Deputy Chairman of the Council of People’s Commissars and a key atomic administrator) and Lavrentiy Beria in which he asks for more funding for the nuclear project. The Soviet nuclear program was extraordinarily underfunded and understaffed during World War II, especially in comparison with the United States’ Manhattan Project. During WWII, the Soviet program had ~20 physicists and a small staff, while at its peak the Manhattan Project employed a staggering 130,000 workers.


This is a bugfix release
This is a bugfix release
This is a bugfix release
Issue #12: modulegraph would sometimes find the wrong package __init__ module due to using the wrong search method. One easy way to reproduce the problem was to have a toplevel module named __init__.
Reported by Kentzo.
This is a bugfix release
Issue #11: creating xrefs and dotty graphs from modulegraphs (the –xref and –graph options of py2app) didn’t work with python 3 due to use of APIs that aren’t available in that version of python.
Reported by Andrew Barnert.
This is a minor feature release
modulegraph.find_modules.find_needed_modules claimed to automaticly include subpackages for the “packages” argument as well, but that code didn’t work at all.
Issue #9: The modulegraph script is deprecated, use “python -mmodulegraph” instead.
Issue #10: Ensure that the result of “zipio.open” can be used in a with statement (that is, with zipio.open(...) as fp.
No longer use “2to3” to support Python 3.
Because of this modulegraph now supports Python 2.6 and later.
Slightly improved HTML output, which makes it easier to manipulate the generated HTML using JavaScript.
Patch by anatoly techtonik.
Ensure modulegraph works with changes introduced after Python 3.3b1.
Implement support for PEP 420 (“Implicit namespace packages”) in Python 3.3.
modulegraph.util.imp_walk is deprecated and will be removed in the next release of this package.
The module graph was incomplete, and generated incorrect warnings along the way, when a subpackage contained import statements for submodules.
An example of this is sqlalchemy.util, the __init__.py file for this package contains imports of modules in that modules using the classic relative import syntax (that is import compat to import sqlalchemy.util.compat). Until this release modulegraph searched the wrong path to locate these modules (and hence failed to find them).
This is a bugfix release
This is a bugfix release
Fixed the name of nodes imports in packages where the first element of a dotted name can be found but the rest cannot. This used to create a MissingModule node for the dotted name in the global namespace instead of relative to the package.
That is, given a package “pkg” with submodule “sub” if the “__init__.py” of “pkg” contains “import sub.nomod” we now create a MissingModule node for “pkg.sub.nomod” instead of “sub.nomod”.
This fixes an issue with including the crcmod package in application bundles, first reported on the pythonmac-sig mailinglist by Brendan Simon.
This is a minor feature release
Features:
Documentation is now generated using sphinx and can be viewed at <http://packages.python.org/modulegraph>.
The documention is very rough at this moment and in need of reorganisation and language cleanup. I’ve basiclly writting the current version by reading the code and documenting what it does, the order in which classes and methods are document is therefore not necessarily the most useful.
The repository has moved to bitbucket
Renamed modulegraph.modulegraph.AddPackagePath to addPackagePath, likewise ReplacePackage is now replacePackage. The old name is still available, but is deprecated and will be removed before the 1.0 release.
modulegraph.modulegraph contains two node types that are unused and have unclear semantics: FlatPackage and ArchiveModule. These node types are deprecated and will be removed before 1.0 is released.
Added a simple commandline tool (modulegraph) that will print information about the dependency graph of a script.
Added a module (zipio) for dealing with paths that may refer to entries inside zipfiles (such as source paths referring to modules in zipped eggfiles).
With this addition modulegraph.modulegraph.os_listdir is deprecated and it will be removed before the 1.0 release.
Bug fixes:
The __cmp__ method of a Node no longer causes an exception when the compared-to object is not a Node. Patch by Ivan Kozik.
Issue #1: The initialiser for modulegraph.ModuleGraph caused an exception when an entry on the path (sys.path) doesn’t actually exist.
Fix by “skurylo”, testcase by Ronald.
The code no longer worked with python 2.5, this release fixes that.
Due to the switch to mercurial setuptools will no longer include all required files. Fixed by adding a MANIFEST.in file
The method for printing a .dot representation of a ModuleGraph works again.
This is a minor feature release
Features:
This is a minor feature release
Features:
Initial support for Python 3.x
It is now possible to run the test suite using python setup.py test.
(The actual test suite is still fairly minimal though)


I'm Aaron Cuddeback
Developer and businessman
- Age 38
- Address Folsom, Ca. 95630
- E-mail<EMAIL_ADDRESS>- Phone +1<PHONE_NUMBER>
- Freelance till April 15, 2019
- till N/A
Hello! I'm Aaron Cuddeback. Senior Web Developer specializing in front end development. Experienced with all stages of the development cycle for dynamic web projects. Well-versed in numerous programming languages including JavaScript, SQL, and C. Stng background in project management and customer relations.
Proffessional Skills
Work Experience
Webmaster / Web Developer
www.gymratpacks.com
Built and Funded the company, managed Cashflow, Continually and constantly developed and monitored product vision, Managed the team vision and goals, Managed investment opportunities, Brand Management,And finally Corporate development.
Deputy Sheriff
El Dorado County Sheriff
Working as a patrol Deputy for approximately 10 years investigating multiple crimes which involved a full range of investigative techniques and crime solving abilities. Conducting follow-up and obtaining probable cause. Completed multiple Ramey warrants and served them for my own investigations Assisted Deputies and Detectives with Warrant completions Served multiple warrants Assisted Detectives with multiple follow-up investigations which included video surveillance and other evidence collection, follow-up interviews and other related investigation needs. Assisted Deputies as well as in my own investigations on a number of computer related crimes due to my computer knowledge.
Systems Analyst / Network Administrator
Hewlett Packard Enterprise
Install patches, Review system logs, Report malicious or suspicious activity on systems to ISO immediately , Report sensitive information stored on systems to ISO, Maintain user access administration, Disaster recovery planning, Physical security, Disable unnecessary services on servers, Generate/Retain system backups, Identify secondary system administrator(s), Comply with password requirements, Access control, Environmental protection (i.e., protection from possible exposure to water damage, excessive heat, etc.), Security training will be required every three (3) years, System audit logging, Maintain minimum security standards for systems, Monitoring of system activity, Designate a secondary administrator
Network Administrator
Embarcadero Systems Inc.
Installed and updated network and client based hardware and computers Supported, Installed, and Repaired various software, but specifically MTAMS, (Marine Terminal Application Management System) a proprietary container tracking software that the company created and used on a daily basis. It ran on top of Oracle 8.0 and I also had to support that system. Supported/Maintained a large multi-node Network PC/Printer Support for the entire site Installed new hardware/software for the company Installed Wireless Network Technology for the entire site Troubleshoot PC issues software and hardware related Supported HP Openview / Unix Machines Maintained Cisco and other routers/Hubs for the network Performed routine network and client data backups and reinstalls Managed Server database and Web based application program
Web Developer
Web Design Company - Birmingham
Present Responsible for working on a range of projects, designing appealing websites and interacting on a daily basis with graphic designers, back-end developers and marketers.
Qualifications
MCP and MCSE Certified
Operating Systems
Expert in all major Windows operating systems, Windows 10, Windows 8, Windows 7, Windows NT, Windows Server, to all older versions.
Database Administration
DBA experience in Oracle, Microsoft SQL 2012 server and APACHE
Education
Certificate Full Stack Web Developement
Lynda.com
Certificate in Full Stack Web Developement
Free Code Camp
Bachelor of Science in Criminal Justice
Union Institute and University
Portfolio
Street photography is photography that features the chance encounters and random accidents within public places.
Street photography does not necessitate the presence of a street or even the urban environment. Though people usually feature directly, street photography might be absent of people and can be an object or environment where the image projects a decidedly human character in facsimile or aesthetic.
Framing and timing
Framing and timing can be key aspects of the craft with the aim of some street photography being to create images at a decisive or poignant moment. Street photography can focus on emotions displayed, thereby also recording people's history from an emotional point of view.
A Look Into Documenting Street Fashion Photography
HB Nam is an internationally known street fashion photographer. In this Leica Camera Portrait, Nam explains how he started in photography and what photography means to him. For Nam, it's about documenting what's around him and the concentration required to achieve a good shot.
Suspension Bridges - Design Technology
Suspension bridges in their simplest form were originally made from rope and wood.
Modern suspension bridges use a box section roadway supported by high tensile strength cables.
In the early nineteenth century, suspension bridges used iron chains for cables. The high tensile cables used in most modern suspension
bridges were introduced in the late nineteenth century.
Today, the cables are made of thousands of individual steel wires bound tightly together. Steel, which is very strong under tension, is
an ideal material for cables; a single steel wire, only 0.1 inch thick, can support over half a ton without breaking.
Light, and strong, suspension bridges can span distances from 2,000 to 7,000 feet far longer than any other kind of bridge. They are ideal for covering busy waterways.
With any bridge project the choice of materials and form usually comes down to cost. Suspension bridges tend to be the most expensive to build. A suspension bridge suspends the roadway from huge main cables, which extend from one end of the bridge to the other. These cables rest on top of high towers and have to be securely anchored into the bank at either end of the bridge. The towers enable the main cables to be draped over long distances. Most of the weight or load of the bridge is transferred by the cables to the anchorage systems. These are imbedded in either solid rock or huge concrete blocks. Inside the anchorages, the cables are spread over a large area to evenly distribute the load and to prevent the cables from breaking free.
The Arthashastra of Kautilya mentions the construction of dams and bridges.A Mauryan bridge near Girnar was surveyed by James Princep. The bridge was swept away during a flood, and later repaired by Puspagupta, the chief architect of emperor Chandragupta I. The bridge also fell under the care of the Yavana Tushaspa, and the Satrap Rudra Daman. The use of stronger bridges using plaited bamboo and iron chain was visible in India by about the 4th century. A number of bridges, both for military and commercial purposes, were constructed by the Mughal administration in India.
My Interests
I have a passion for programming and all things computers. There is not a day that goes buy when I am not on a computer learning coding or tinkering with computer hardware.
In addition to that, I am an avid weight lifter and love working out and staying healthy.
- Bicycling
- Watch Movies
- Skating
- Shopping
- Playing Tennis
- Playing Bowling
- Swimming
Contact Me
Feel free to contact me
- ADDRESS
- Folsom, Ca. 95630
- phone
- +1<PHONE_NUMBER>
- aaron.cuddeback@outlook.com


◆ DefaultFirstView
Initial value:= new TiyaActorCameraViewConfiguration()
{
TopRig = new RigConfiguration(0.02f, 0.01f),
MiddleRig = new RigConfiguration(0, 0.01f),
BottomRig = new RigConfiguration(-0.02f, 0.01f),
X_Speed = 200f,
Y_Speed = 1f
}
◆ DefaultThirdView
Initial value:= new TiyaActorCameraViewConfiguration()
{
TopRig = new RigConfiguration(6f, 2f),
MiddleRig = new RigConfiguration(2.5f, 6f),
BottomRig = new RigConfiguration(0.4f, 2f),
X_Speed = 300f,
Y_Speed = 3f
}
The documentation for this struct was generated from the following file:
- Runtime/TiyaView/TiyaActorCameraViewConfiguration.cs


Methods, strategies, and tools for implementing software systems, particularly as part of a development team. Topics include the software development life cycle, Unified Modeling Language, software testing techniques, software security, open-source development, requirements gathering and documentation, maintenance, and basic software project management.
Lewis University, guided by its Catholic and Lasallian heritage, provides to a diverse
student population programs for a liberal and professional education grounded in the
interaction of knowledge and fidelity in the search for truth.
Lewis promotes the development of the complete person through the pursuit of wisdom
and justice. Fundamental to its Mission is a spirit of association, which fosters
community in all teaching, learning and service.
This course will allow us to extend our knowledge in software development, provide us
the foundation for lifelong learning in this domain, and provide us the opportunity to
assist each other on our learning journey.
Our blended classroom setting
requires a wired computer headset with a microphone for both in person and
online participation.
This course requires access to multiple software tools. There are generally available for free but will need to be installed and utilized from a Windows or Macintosh computer.
During this course we will be setting up and utilizing
GitHub and Microsoft Azure accounts. We will be able to complete course assignments
utilizing these resources for free or at a very low cost (estimated less than $20). A credit
card will be needed to sign up for these accounts.
The course is broken into 8 modules (sprints) with each module being one week.
| Module | Topics | Textbook Readings |
|---|---|---|
| 1 | Introduction to SaaS and Agile Development The Architecture of SaaS Applications Getting Started with Git & GitHub Cloud Computing with Microsoft Azure | Chapter 1 Chapter 2 A.5 and A.6 |
| 2 | Ruby Overview Getting Started with JavaScript Getting Started with Bootstrap Getting Started with Node.js | Chapter 3 and Chapter 4 Chapter 6 |
| 3 | Behavior Driven Development Plan and Document Requirements Getting Started with Microsoft Azure and Node.js | Chapter 7 |
| 4 | Testing and Test-Driven Development HTML, CSS, JavaScript, and Bootstrap Azure, Node.js, JavaScript, and Express | Chapter 8 |
| 5 | Maintenance, Metrics, and Metrics Agile Requirements & Saas Environment Class Project – Sprint 1: | Chapter 9 |
| 6 | Project Management & Scaled Agile Serverless Computing Class Project – Sprint 2 | Chapter 10 |
| 7 | Design Patterns Software Architecture Class Project – Sprint 3 | Chapter 11 |
| 8 | Performance, Releases, Reliability, and Security More Software Architecture Class Project – Sprint 4 | Chapter 12 |
Material changes to the course schedule will be communicated
through course lecture and/or Blackboard announcements.
Assignments for this course will take the form of Programming Projects, Quizzes,
Discussion Board topics, a class Demonstration, and a Final Project.
| Assignment | Points | # | Total Points | % of Grade |
|---|---|---|---|---|
| Lab | 70 | 8 | 560 | 56% |
| Quiz | 40 | 8 | 320 | 32% |
| Discussion | 8 | 8 | 64 | 6% |
| Reflection | 3 | 8 | 12 | 1% |
| Demo | 12 | 1 | 12 | 1% |
| Final Project | 20 | 1 | 20 | 2% |
| Totals | 34 | 1000 | 100% |
No late assignments will be accepted. It is vastly preferable to
submit a partially complete assignment on time than to turn in a late assignment.
Similarly, it is vastly more beneficially to turn in a programming or lab assignment that
has 70% of the features fully implemented than to turn in an assignment that has 100%
of the features partially implemented.
Final course letter grade will be determined using the following scale:
| Grade | Percent | Grade | Percent |
|---|---|---|---|
| A | >=93 | C | 73-76.99 |
| A- | 90-92.99 | C- | 70-72.99 |
| B+ | 87-89.99 | D+ | 67-69.99 |
| B | 83-86.99 | D | 63-66.99 |
| B- | 80-82.99 | D- | 60-62.99 |
| C+ | 77-79.99 | F | 60 |
Class attendance is required unless otherwise specified. During our class time we will remain focused on the topics at hand, avoid utilizing phones or email, and be inclusive of our fellow classmates.
Changes to the course assignments or grades will be communicated through course lecture and/or Blackboard announcements.
Understanding that the COVID-19 pandemic could influence the course of this
semester, Lewis University will be guided by our Lasallian mission and the wellbeing of our community of students, faculty,
and staff in respond and adapting toany sudden changes or circumstances. Based on the guidance of the State of
Illinois and the Centers for Disease Control, it may be necessary to change the
planned modality this course.
Because we are committed to student success, the University community is
committed to academic standards while maintaining flexibility and empathy.
Absences relating to the Coronavirus crisis will be recognized as excused.
Students experiencing disruptions in their lives related to the Coronavirus that
impact class attendance and participation should contact their instructor and/or
college Dean’s Office for assistance. Students directly impacted by Coronavirus
will have the ability to request alternative grading this semester. Requests will be
evaluated on a case by case basis and will require documentation.
Students who require academic accommodations due to disability caused by
COVID-19, or to limit risk of exposure to Coronavirus, can engage in an
interactive process with the Learning Access Coordinator to explore all avenues
for accommodations. Students can contact the Academic Services office at 815-
836-5593 or<EMAIL_ADDRESS>to request an appointment.
Face coverings are required in classrooms. Students will be expected to maintain physical distancing in the classroom (6 ft minimum) and to keep their nose and mouth covered at all times. Faculty will require students without face covering to obtain a disposable mask at the nearest University office providing them. While the University will disinfect classrooms and common spaces throughout the day, cleaning supplies will be provided in classrooms and offices so that students and faculty can wipe down work surfaces before class begins
Lewis University is committed to providing equal access and opportunity for participation
in all programs, services and activities. If you are a student with a disability who would
like to request a reasonable accommodation, please speak with the Learning Access
Coordinator at the Center for Academic Success and Enrichment (CASE). Please make
an appointment by calling<PHONE_NUMBER> or emailing<EMAIL_ADDRESS>Since
accommodations require early planning and are not provided retroactively, it is
recommended that you make your request prior to or during the first week of class. It is
not necessary to disclose the nature of your disability to your instructor. For more
information about academic support services, visit the website at:
www.lewisu.edu/CASE.
Lewis University has adopted Blackboard Ally providing alternative formats for files
uploaded by instructors. Students can click the down arrow next to any file and select
Alternative Formats.
Guided by its Catholic and Lasallian heritage, Lewis University is firmly committed to
fostering a campus atmosphere that is permeated by its Mission values of Fidelity,
Wisdom, Knowledge, Justice, and Association. Accordingly, we have declared the
University campus to be a Sanctified Zone, a place and a people United in Diversity.
The active promotion of diversity and the opposition to all forms of prejudice and bias are
a powerful and healing expression of our desire to be Signs of Faith (Signum Fidei) to
each other. To learn more about the Sanctified Zone, please visit:
http://www.lewisu.edu/sanctified zone.
Scholastic integrity lies at the heart of Lewis University. Plagiarism, collusion and other
forms of cheating or scholastic dishonesty are incompatible with the principles of the
University. Students engaging in such activities are subject to loss of credit and
expulsion from the University. Cases involving academic dishonesty are initially
considered and determined at the instructor level. If the student is not satisfied with the
instructor’s explanation, the student may appeal at the department/program level.
Appeal of the department /program decision must be made to the Dean of the
college/school. The Dean reviews the appeal and makes the final decision in all cases
except those in which suspension or expulsion is recommended, and in these cases the
Provost makes the final decision.
University Student Complaint Policy
The University Student Complaint Policy can be found at lewisu.edu/studentcomplaints.
University Grade Appeal Policy
The University Grade Appeal Policy can be found at lewisuedu/studentcomplaints.
To support student success, all Lewis students are eligible for free health and
mental health services on the Romeoville campus. This includes commuters and
those living on campus, part-time and full-time students, graduate and
undergraduate students, and those taking Lewis classes at other locations. For
more information, visit the Center for Health & Counseling website at
www.lewisu.edu/studentservices/health or call<PHONE_NUMBER>.


HOOD UPDATES
Register
Sign in
Posts
In publishing and graphic design, lorem ipsum is a placeholder text used to demonstrate the visual


GREMLINS 2: THE NEW BATCH A film review by Randy Parker Copyright 1996 Randy Parker
RATING: ** (out of ****)
(Review written in 1990)
GREMLINS 2: THE NEW BATCH is a noisy, unoriginal, and altogether unnecessary sequel. The film tries to fashion itself as an AIRPLANE-style, no-holds-barred parody. And to be honest, some of the movie's satire is surprisingly amusing. The problem is that the laughs in GREMLINS 2 aren't consistent enough and don't come often enough to keep the film moving. About every five or ten minutes, GREMLINS 2 comes up with a clever gag, but in between you have to suffer through some awfully chaotic and deadly dull sequences, as the gruesome gremlins belch, bang, and brawl their way through the movie.
GREMLINS 2 reunites Zach Galligan and Phoebe Cates, the protagonists from the original movie. Galligan is adequate in the lead role, but Cates proves beyond a shadow of a doubt that her acting lessons were a terrible waste of time and money. The sequel also features Christopher Lee (as a mad genetic scientist), Gedde Watanabe (as a camera-happy tourist) and John Glover, who gives a savory comic performance as Daniel Clamp, a wealthy entrepreneur who is the epitome of egotism and a wonderful take-off on Donald Trump and Ted Turner. The movie also has fun with cameos by wrestler Hulk Hogan, film critic Leonard Maltin and director Paul Bartel.
In case you care, the plot this time around has the mischievous little buggers wreaking havoc on Clamp Centre, an automated, ultra-modern, high-rise office building in Manhattan. Come to think of it, the movie could have killed two birds with one stone if it had brought in Bruce Willis to thwart the monster-terrorists. Imagine, "Die Hard 2: The Next Batch." Now, THAT'S high concept.
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


Chapter 5. Query Performance
This chapter deals with an issue
faced by every MySQL user sooner or later: speeding up slow queries.
MySQL is a very fast database server, but its innate speed can carry
your applications only so far. Eventually you need to roll up your
sleeves, get your hands dirty, and figure out why your queries are
slow—and ultimately figure out what needs to be done to get a
response quickly.
We're frequently asked how we
"figure this stuff out."
It's really quite simple. Once you start to
understand how MySQL does what it does, you'll begin
to have an intuitive feeling for it, and query optimization will
start to seem really easy. It's not always that
easy, but with the proper background, you should end up able to
figure out most optimization problems.
This chapter aims to provide a framework for understanding how MySQL
works to resolve queries. With this foundation, you can continue
through this chapter to the next, where the knowledge is applied to
application design and server performance tuning.
We'll begin with an overview of how MySQL handles
query processing. After that, we'll look at the
optimizer's built-in features. Then
we'll discuss identifying slow queries and finish up
with a look at some of the hints you can provide to
MySQL's query optimizer.
|


Base URL:
Requests to the API are either GET or POST format, dependant on the specific action being called.
For requests to actions in modules requiring authentication, append the session_id
returned from one of the /auth
actions to the end of the url.
All responses are in json format.
Successful requests will return a response with a property of status
set to success
and a success
property containing the response data.
Failed or erroneous request will return a response with a property of status
set to error
and an error
property containing the error.
Each action has a form to submit and retrieve a response from the API. Once you authenticate, your session_id
will be stored below and automatically appended to the url for future calls.
Session ID:


Master's thesis
Security Requirements in Norwegian Public Procurements
Below you will find my master's thesis on security requirements in Norwegian public procurements. The thesis was preceded by a prestudy where 29 public tenders were analysed. The prestudy is summarised in the thesis, and is not required reading to understand the thesis.


You must declare the "fileSystemProvider" permission and section in the extension manifest to use the File System Provider API. For example:
{
"name": "My {{platform}}",
...
"permissions": [
"fileSystemProvider"
],
...
"file_system_provider_capabilities": {
"configurable": true,
"watchable": false,
"multiple_mounts": true,
"source": "network"
},
...
}
The file_system_provider
section must be declared as follows:
{{+partials.manifest_type
type:apis.extensions.manifestTypes.byName.FileSystemProviderCapabilities /}}
Files app uses above information in order to render related UI elements
approprietly. For example, if configurable
is set to
true, then a menu item for configuring volumes will be rendered.
Similarly, if multiple_mounts
is set to true
, then
Files app will allow to add more than one mount points from the UI. If
watchable
is false
, then a refresh button will be
rendered. Note, that if possible you should add support for watchers, so
changes on the file system can be reflected immediately and automatically.
File System Provider API allows extensions to support virtual file systems, which are available in the file manager on Chrome OS. Use cases include decompressing archives and accessing files in a cloud service other than Drive.
Providing extensions can either provide file system contents from an external source (such as a remote server or a USB device), or using a local file (such as an archive) as its input.
{{?is_apps}}
For file handlers, the providing extension should have a
file_handlers manifest entry in order
to be launched when the file is selected in the file manager.
When the extension is executed with a file to be handled, it has to mount a
file system and start serving contents from the provided file.
{{:is_apps}}
In order to write file systems which are file handlers (source is
"file"
) the provider must be a packaged app, as the
onLaunched
event is not available to extensions.
{{/is_apps}}
If the source is network or a device, then the file system should be mounted when $(ref:onMountRequested) event is called.
| Source of the file system data | Entry point |
|---|---|
"file"
|
{{?is_apps}} $(ref:app.runtime.onLaunched) {{:is_apps}} Available to packaged apps only. {{/is_apps}} |
"device" or "network"
|
$(ref:onMountRequested) |
Provided file systems once mounted can be configured via the $(ref:onConfigureRequested) event. It's especially useful for file systems which provide contents via network in order to set proper credentials. Handling this event is optional.
Provided file systems once mounted are remembered by Chrome and remounted automatically after reboot or restart. Hence, once a file system is $(ref:mount mounted) by a providing extension, it will stay until either the extension is unloaded, or the extension calls the $(ref:unmount) method.
{{?is_apps}}In case of acting as a file handler, the handled file may need to be stored to access it after either a reboot, or suspending and resuming an event page of the providing extension. In such case $(ref:fileSystem.retainEntry) and $(ref:fileSystem.restoreEntry) should be used.
{{/is_apps}}


|
PMIC
|
This file provides firmware functions to manage the following functionalities of the Analog to Digital Convertor (ADC) peripheral: More...
#include "stm32f1xx_hal.h"
This file provides firmware functions to manage the following functionalities of the Analog to Digital Convertor (ADC) peripheral:
============================================================================== ##### ADC peripheral features ##### ============================================================================== [..] (+) 12-bit resolution (+) Interrupt generation at the end of regular conversion, end of injected conversion, and in case of analog watchdog or overrun events. (+) Single and continuous conversion modes. (+) Scan mode for conversion of several channels sequentially. (+) Data alignment with in-built data coherency. (+) Programmable sampling time (channel wise) (+) ADC conversion of regular group and injected group. (+) External trigger (timer or EXTI) for both regular and injected groups. (+) DMA request generation for transfer of conversions data of regular group. (+) Multimode Dual mode (available on devices with 2 ADCs or more). (+) Configurable DMA data storage in Multimode Dual mode (available on devices with 2 DCs or more). (+) Configurable delay between conversions in Dual interleaved mode (available on devices with 2 DCs or more). (+) ADC calibration (+) ADC supply requirements: 2.4 V to 3.6 V at full speed and down to 1.8 V at slower speed. (+) ADC input range: from Vref- (connected to Vssa) to Vref+ (connected to Vdda or to an external voltage reference). ##### How to use this driver ##### ============================================================================== [..] *** Configuration of top level parameters related to ADC *** ============================================================ [..] (#) Enable the ADC interface (++) As prerequisite, ADC clock must be configured at RCC top level. Caution: On STM32F1, ADC clock frequency max is 14MHz (refer to device datasheet). Therefore, ADC clock prescaler must be configured in function of ADC clock source frequency to remain below this maximum frequency. (++) One clock setting is mandatory: ADC clock (core clock, also possibly conversion clock). (+++) Example: Into HAL_ADC_MspInit() (recommended code location) or with other device clock parameters configuration: (+++) RCC_PeriphCLKInitTypeDef PeriphClkInit; (+++) __ADC1_CLK_ENABLE(); (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC; (+++) PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2; (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit); (#) ADC pins configuration (++) Enable the clock for the ADC GPIOs using macro __HAL_RCC_GPIOx_CLK_ENABLE() (++) Configure these ADC pins in analog mode using function HAL_GPIO_Init() (#) Optionally, in case of usage of ADC with interruptions: (++) Configure the NVIC for ADC using function HAL_NVIC_EnableIRQ(ADCx_IRQn) (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() into the function of corresponding ADC interruption vector ADCx_IRQHandler(). (#) Optionally, in case of usage of DMA: (++) Configure the DMA (DMA channel, mode normal or circular, ...) using function HAL_DMA_Init(). (++) Configure the NVIC for DMA using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) (++) Insert the ADC interruption handler function HAL_ADC_IRQHandler() into the function of corresponding DMA interruption vector DMAx_Channelx_IRQHandler(). *** Configuration of ADC, groups regular/injected, channels parameters *** ========================================================================== [..] (#) Configure the ADC parameters (resolution, data alignment, ...) and regular group parameters (conversion trigger, sequencer, ...) using function HAL_ADC_Init(). (#) Configure the channels for regular group parameters (channel number, channel rank into sequencer, ..., into regular group) using function HAL_ADC_ConfigChannel(). (#) Optionally, configure the injected group parameters (conversion trigger, sequencer, ..., of injected group) and the channels for injected group parameters (channel number, channel rank into sequencer, ..., into injected group) using function HAL_ADCEx_InjectedConfigChannel(). (#) Optionally, configure the analog watchdog parameters (channels monitored, thresholds, ...) using function HAL_ADC_AnalogWDGConfig(). (#) Optionally, for devices with several ADC instances: configure the multimode parameters using function HAL_ADCEx_MultiModeConfigChannel(). *** Execution of ADC conversions *** ==================================== [..] (#) Optionally, perform an automatic ADC calibration to improve the conversion accuracy using function HAL_ADCEx_Calibration_Start(). (#) ADC driver can be used among three modes: polling, interruption, transfer by DMA. (++) ADC conversion by polling: (+++) Activate the ADC peripheral and start conversions using function HAL_ADC_Start() (+++) Wait for ADC conversion completion using function HAL_ADC_PollForConversion() (or for injected group: HAL_ADCEx_InjectedPollForConversion() ) (+++) Retrieve conversion results using function HAL_ADC_GetValue() (or for injected group: HAL_ADCEx_InjectedGetValue() ) (+++) Stop conversion and disable the ADC peripheral using function HAL_ADC_Stop() (++) ADC conversion by interruption: (+++) Activate the ADC peripheral and start conversions using function HAL_ADC_Start_IT() (+++) Wait for ADC conversion completion by call of function HAL_ADC_ConvCpltCallback() (this function must be implemented in user program) (or for injected group: HAL_ADCEx_InjectedConvCpltCallback() ) (+++) Retrieve conversion results using function HAL_ADC_GetValue() (or for injected group: HAL_ADCEx_InjectedGetValue() ) (+++) Stop conversion and disable the ADC peripheral using function HAL_ADC_Stop_IT() (++) ADC conversion with transfer by DMA: (+++) Activate the ADC peripheral and start conversions using function HAL_ADC_Start_DMA() (+++) Wait for ADC conversion completion by call of function HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() (these functions must be implemented in user program) (+++) Conversion results are automatically transferred by DMA into destination variable address. (+++) Stop conversion and disable the ADC peripheral using function HAL_ADC_Stop_DMA() (++) For devices with several ADCs: ADC multimode conversion with transfer by DMA: (+++) Activate the ADC peripheral (slave) and start conversions using function HAL_ADC_Start() (+++) Activate the ADC peripheral (master) and start conversions using function HAL_ADCEx_MultiModeStart_DMA() (+++) Wait for ADC conversion completion by call of function HAL_ADC_ConvCpltCallback() or HAL_ADC_ConvHalfCpltCallback() (these functions must be implemented in user program) (+++) Conversion results are automatically transferred by DMA into destination variable address. (+++) Stop conversion and disable the ADC peripheral (master) using function HAL_ADCEx_MultiModeStop_DMA() (+++) Stop conversion and disable the ADC peripheral (slave) using function HAL_ADC_Stop_IT() [..] (@) Callback functions must be implemented in user program: (+@) HAL_ADC_ErrorCallback() (+@) HAL_ADC_LevelOutOfWindowCallback() (callback of analog watchdog) (+@) HAL_ADC_ConvCpltCallback() (+@) HAL_ADC_ConvHalfCpltCallback (+@) HAL_ADCEx_InjectedConvCpltCallback() *** Deinitialization of ADC *** ============================================================ [..] (#) Disable the ADC interface (++) ADC clock can be hard reset and disabled at RCC top level. (++) Hard reset of ADC peripherals using macro __ADCx_FORCE_RESET(), __ADCx_RELEASE_RESET(). (++) ADC clock disable using the equivalent macro/functions as configuration step. (+++) Example: Into HAL_ADC_MspDeInit() (recommended code location) or with other device clock parameters configuration: (+++) PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC (+++) PeriphClkInit.AdcClockSelection = RCC_ADCPLLCLK2_OFF (+++) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) (#) ADC pins configuration (++) Disable the clock for the ADC GPIOs using macro __HAL_RCC_GPIOx_CLK_DISABLE() (#) Optionally, in case of usage of ADC with interruptions: (++) Disable the NVIC for ADC using function HAL_NVIC_EnableIRQ(ADCx_IRQn) (#) Optionally, in case of usage of DMA: (++) Deinitialize the DMA using function HAL_DMA_Init(). (++) Disable the NVIC for DMA using function HAL_NVIC_EnableIRQ(DMAx_Channelx_IRQn) [..]
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.


×
Modal Header
Qunatity
Price
Update
Delete
Fruit
Quantity
Price/Unit
Update
FruitName:
Quantity:
Price:
Add


get your financies in order
Choose a plan that fits your needs.save more then ever
Click to get fast and easy tipswe are on the same time!
Our experts are just a call away.pricing
Our services prices
| Price | |||
|---|---|---|---|
| 1 Year | 1 Year | ||
| Location | Startup | 3000$ | 3000$ |
| Small Business | 3000$ | 3000$ | |
| Medium company | 3000$ | 3000$ |


A random number will appear and the goal is to get to the exact number provided, without knowing the exact value of each Cake. If able to accomplish, you will get a cupcake. An invisible cupcake, that you cant eat or touch. Yay! :)


Recent Items
Options
Search for
Account
Opportunity
Contact
Lead
Start typing the name of an item in Salesforce, and then choose it from the result list to insert into the content you're editing.


Click below to send an email with your free times to a friend
Send EmailWe'll notify you of your meeting time when {%if session.recipient is defined %}{{session.recipient}}{% endif %} responds to your meeting invitation.
{% endif %} {% if session.radio_choice is defined %}Click below to send a confirmation email to {%if session.sender is defined %}{{session.sender}}{% endif %} that you're going to meet:


Upgrade from build #{{vers.Current}}
The process could takes few seconds to minutes depending on the quality of your internet connection.
During the upgrade process NanoDLP would not be accessible.
The upgrade process would not change your configurations.
To monitor the process you could checkout the dashboard activity log.
After completion printer will be restarted.
You can do manual upgrade by using SSH terminal.
{% if rpi %}
Downgrade / Upgrade to other builds
{% for version in versions %}
Switch to {{version}}
{% endfor %}
{% endif %}


|
system
0.1.0
|
#include <queue.hpp>
Public Member Functions | |
| queue () | |
| T | dequeue () |
| void | dump (logger &in_log) |
| void | enqueue (T in_item) |
| T & | peek () |
| size_t | size () |
Protected Attributes | |
| T | _buf [N+1] |
| size_t | _front |
| size_t | _back |
Simple queue based on a stack-allocated circular buffer.
| T | type of item this queue will store |
| N | maximum number of items this queue can hold |
Construct a new queue object with the backing store on the stack.
|
inline |
Remove and return the item at the front of the queue.
Write a representation of the queue state to the given log.
| in_log | logger to use |
|
inline |
Add the given item to the back of the queue.
| in_item | item to add at the back of the queue |
|
inline |
Get the item at the front of the queue without removing it.
Return the number of items in the queue.
|
protected |
< Circular backing buffer; sized as N+1 (rather than N) to make size calculations easier. Index of the item at the front (head) of the queue. This was the first item to be enqueued() that has not yet been dequeued().
Index of the item at the back (tail) of the queue. This was the last item to be enqueued().