Questions
General XSLT
Versions
- Determining Xalan-Java Version
- Determining the Serializer Version
- Which version of Xerces should I be using?
- Compatibility with Xalan-Java version 1
- Issues running Xalan-Java on JDK 1.3
- Issues running Xalan-Java on JDK/JRE 1.4 or higher
- Issues running Xalan-Java on Tomcat with JDK 1.4
- Issues running Applets with XSLTC in Web Browsers with JAVA Plug-in (JRE 1.4)
- Using the 'signature' file to verify a download
Performance Issues
Namespace Related
Common Errors
- NoClassDefFound errors
- a "DOM006 Hierarchy request error"
- Namespace not supported by SAXParser
- Missing xsl:version attribute error
- StackOverflowError with recursive stylesheet
- OutOfMemoryError processing multiple documents
- File Not Found error
- No more DTM IDs are available
- IllegalAccessError or could not load output_xml.properties on JDK 1.4
Miscellaneous
- Chaining transformations
- Stylesheet validation
- Setting output encoding
- Getting line and column numbers for errors in XML input documents and XSL stylesheets
- Servlet unable to find classes for extension functions/elements
- Translet name doesn't match stylesheet name
Answers
1. Where do I go to learn about XSLT
The definitive sources are the W3C XSLT and XPath recommendations: XSL Transformations (XSLT) Version 1.0 and XML Path Language (XPath) Version 1.0.
For a brief listing of tutorials, discussion forums, and other materials, see Getting up to speed with XSLT.
2. Where can I ask questions about XSLT
xalan-dev and xalan-j-users are for Xalan-Java questions only. This is not the best forum to ask general XSLT questions. The Mulberry XSL Mailing List is an excellent place to ask XSLT questions; please search XSL Frequently Asked Questions to ensure your question has not been already asked.
3. TrAX and JAXP
TrAX is the Transformation API for XML. In November 2000, TrAX was revised and incorporated into JAXP, the JAVA API for XML Processing. JAXP (including TrAX) provides users a standard, vendor-neutral API for working with (and transforming) XML documents. You can use this API to build applications that are not bound to the particular implementation details of a given XML parser or XSL transformer.
Xalan-Java includes the JAXP packages, implements the TrAX portion of that API (javax.xml.transform....), implements the XPath API of JAXP (javax.xml.xpath....), and includes xercesImpl.jar from Xerces-Java 2.11.0, which implements the parser portion of the API (javax.xml.parser....).
For more information, see Using the JAXP Transform APIs and Java API for XML Processing (JAXP) 1.3.
4. Determining Xalan-Java Version
Using the EnvironmentCheck utility: To help diagnose classpath problems and also determine which version of Xalan-Java is being used, try running Xalan-Java's environment checking utility.
You can run this utility from the command line as follows:
java org.apache.xalan.xslt.EnvironmentCheck [-out outFile]
You can also call this utility from within your application. For example,
boolean environmentOK = (new EnvironmentCheck()).checkEnvironment (yourPrintWriter);
Be sure to run EnvironmentCheck in the environment where you are experiencing the problem. For example, if you get a NoClassDefFound error from a command-line application, run EnvironmentCheck on the command line with exactly the same classpath. If the error occurs inside your Java application (or in a servlet, etc.), be sure to call the EnvironmentCheck checkEnvironment(...) method from within your running application.
Best of all, you can call checkEnvironment from a stylesheet using extensions:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="xalan"> <xsl:output indent="yes"/> <xsl:template match="/"> <out> <xsl:copy-of select="xalan:checkEnvironment()"/> </out> </xsl:template> </xsl:stylesheet>
5. Determining the Serializer Version
Xalan's serialier is now shared with Xerces. It may be packaged in Xalan, or Xerces, or in the JRE itself. You can run the serializer's Version utility from the command line as follows:
java org.apache.xml.serializer.Version
6. Which version of Xerces should I be using?
Xalan-Java Version 2.7.3 has been tested with Xerces-Java 2.12.2. See Status.
7. Compatibility with Xalan-Java version 1
The Xalan-Java version 1 compatibility API has been deprecated and removed, so you must use the Xalan-Java version 2 API. We strongly encourage you to use the Java API for XML Processing (JAXP) 1.3. For more information, see the FAQ on TrAX and JAXP.
8. Issues running Xalan-Java on JDK 1.3
The JDK 1.3 automatically places everything in the lib/ext directory in front of everything you place on the classpath. If this directory contains a version of DOM, JAXP, or Xerces that predates the Xalan-Java distribution you are using, you may have problems!
The IBM JDK 1.3 includes an earlier version of xerces.jar in the lib/ext directory, a version that does not implement the JAXP 1.3 interfaces and therefore does not work with the current Xalan-Java release. Accordingly, you must either remove the xerces.jar that is in that directory or replace it with the xercesImpl.jar that is included with the Xalan-Java distribution.
The SUN JDK 1.3 includes a pre-1.1 version of the JAXP in crimson.jar. Either remove the crimson.jar in that directory or overwrite it with a newer crimson.jar that includes and implements the JAXP 1.3 interfaces.
9. Issues running Xalan-Java on JDK/JRE 1.4 or higher
JDK/JRE 1.4, and JDK/JRE 5.0 is packaged with an old version of Xalan-Java. The JDK/JRE will attempt to use this version instead of any on the classpath. Unfortunately, this causes problems when attempting to use a newer version of Xalan-Java.
You can always determine which version of Xalan-Java you are running by using the EnvironmentCheck class or by using the xalan:checkEnvironment extension function. It is highly recommended that you use this method to verify the version of Xalan-Java you are running, especially before opening a bug report.
To use a newer version of Xalan-Java and override the one packaged with the JDK:
- use the Endorsed Standards Override Mechanism. Place the xalan.jar, serializer.jar, xercesImpl.jar and xml-apis.jar in the <java-home>\lib\endorsed directory, where <java-home> is where the runtime software is installed.
The following methods do not work:
- Using the CLASSPATH environment variable or using -classpath to place the new classes in the classpath.
- Using the -jar option to explicitly execute the classes inside the new jar files.
10. Issues running Xalan-Java on Tomcat with JDK 1.4
jakarta-tomcat 4.1.* is packed with an old version of xercesImpl.jar. Based on the Endorsed Standards Override Mechanism, you should replace it with the newer xercesImpl.jar. You should add a newer xalan.jar and serializer.jar to Tomcat as well. Read the FAQ about Issues running Xalan-Java on JDK/JRE 1.4 or higher. Place the xalan.jar, serializer.jar, and xercesImpl.jar in the <Tomcat_Home>\common\endorsed directory, where <Tomcat_Home> is where the Tomcat application server is installed.
11. Issues running Applets with XSLTC in Web Browsers with JAVA Plug-in (JRE 1.4)
To overwrite an older version of Xalan Java; packaged with JRE 1.4 or higher you can add a newer xalan.jar and serializer.jar to the <jre-home>\lib\endorsed directory. Read the FAQ about Issues running Xalan-Java on JDK/JRE 1.4 or higer. If there is a META-INF/services/javax.xml.transform.TransformerFactory file in xalan.jar (as there is in the Xalan Java distributions), then the TransformerFactoryImpl setting in this file will be used by the JVM during the factory finder lookup procedure. The TransformerFactoryImpl for the Xalan Java Interpretive processor is the default setting in the META-INF/services/javax.xml.transform.TransformerFactory file, therefore, you will get an error when your applet attempts to use the XSLTC implementation.
To work around this problem, you can change the contents of the META-INF/services/javax.xml.transform.TransformerFactory file in xalan.jar so that it refers to the transformer factory class implementation for XSLTC, org.apache.xalan.xsltc.trax.TransformerFactoryImpl.
Another solution is to create a jar that contains a META-INF/services/javax.xml.transform.TransformerFactory file containing the value org.apache.xalan.xsltc.trax.TransformerFactoryImpl. Place the jar in the <jre-home>\lib\endorsed directory. When you name your jar file, the ASCII code of the first character should be smaller than the ASCII code of "X" to ensure that your jar will be loaded before xalan.jar
12. Using the 'signature' file to verify a download
For each Xalan-Java download file there is a corresponding signature file. The signature file for xalan-j_2_0_1.tar.gz, for example, is xalan-j_2_0_1.tar.gz.sig.
The .sig files are PGP signatures of the actual .zip or .tar.gz download files. You can use these files to verify the authenticity of the download. You do not need the .sig file to use the corresponding download file.
To check the authenticity of a Xalan-Java distribution, you need a copy of PGP which is available in a number of licenses, including some free non-commercial licenses, either from an mit.edu site or on the pgp.com site. Once you have a version of PGP installed, you should be able to 'verify the signature' of the .sig file, which basically verifies that the corresponding .zip or tar.gz file has not been changed since we signed it.
The PGP key can be found in KEYS.
13. Speeding up transformations
In the ongoing development of Xalan-Java, enhancing performance is the primary goal of the Xalan-Java team. Here are some preliminary suggestions for you to keep in mind as you set up your applications:
- Use a Templates object (with a different Transformers for each transformation) to
perform multiple transformations with the same set of stylesheet instructions (see
Multithreading).
- Set up your stylesheets to function efficiently.
- Don't use "//" (descendant axes) patterns near the root of a large document.
- Use xsl:key elements and the key() function as an efficient way to retrieve node sets.
- Where possible, use pattern matching rather than xsl:if or xsl:when statements.
- xsl:for-each is fast because it does not require pattern matching.
- Keep in mind that xsl:sort prevents incremental processing.
- When you create variables,
<xsl:variable name="fooElem" select="foo"/>
is usually faster than
<xsl:variable name="fooElem"><xsl:value-of-select="foo"/></xsl:variable>
- Be careful using the last() function.
- The use of index predicates within match patterns can be expensive.
- Decoding and encoding is expensive.
- For the ultimate in server-side scalability, perform transform operations on the client. For examples, see appletXMLtoHTML and get-todo-list.
14. JAXP factory lookup procedure
JAXP uses an ordered lookup procedure to find factory implementations, such as an implementation of javax.xml.transform.TransformerFactory. For information on this procedure, refer to Section 3 Plugability in JAXP 1.3.
In most cases, Factory classes need only be looked up once for an application, so performance is not an issue. However, there may be scenarios where the lookup procedure executes multiple times which could impact performance. In these cases, users may want to set system properties or populate the jaxp.properties file in order to shorten the time spent in the lookup procedure.
15. Retrieving nodes in the default namespace
If you are looking for nodes in a namespace, the XPath expression must include a namespace prefix that you have mapped to the namespace with an xmlns declaration. If you have declared a default namespace, it does not have a prefix (see XPath Node Tests). In order to construct XPath expressions to retrieve nodes from this namespace, you must add a namespace declaration that provides a prefix you can include in the XPath expressions.
Suppose, for example, you you want to locate nodes in a default namespace declared as follows:
xmlns="http://my-namespace"
Add a namespace declaration with a prefix:
xmlns:foo="http://my-namespace"
Then you can use foo: in your XPath expression.
Hint: Avoiding the use of default namespaces will prevent this problem from occuring.
16. Setting the parser to be namespace aware
If you use a TransformerFactory to process a stylesheet Source and generate a Transformer, the TransformerFactory instructs the SAXParserFactory to set the parser's namespaceAware property to true. But if you call the parser directly, you may need to set the namespaceAware property yourself. for example:
javax.xml.parsers.SAXParserFactory spFactory = javax.xml.parsers.SAXParserFactory.newInstance(); spFactory.setNamespaceAware(true);
| For more information about setting the namespaceAware property, and SAX2 vs. JAXP default settings, see JAXP FAQ: Warning about namespace processing defaults. |
17. NoClassDefFound errors
- xalan.jar, serializer.jar, xml-apis.jar, and xercesImpl.jar -- or the XML parser you are using -- must
always be on the classpath.
- To run the samples in the samples subdirectories, xalansamples.jar must be on the
classpath. To run the servlet samples, you must place xalanservlet.war
on a web server with a servlet engine and you must put the javax.servlet and
javax.servlet.http packages on the classpath. These packages
are available via the servlet.jar file found in Apache Tomcat ( see The Jakarta Site - Apache Tomcat ).
- To run extensions which use the component and script extension elements (including the samples in samples/extensions), bsf.jar must be on the classpath. To run extensions implemented in JavaScript, js.jar must also be on the classpath. For information on what you need to run extensions implemented in other scripting languages, see Supported languages.
For more information, see Setting up the system classpath.
18. a "DOM006 Hierarchy request error"
This error occurs when Xalan-Java tries to add a Node to a Document node where it isn't allowed. For example, attempting to add non-whitespace text to the DOM Document node produces this error.
The error can also occur when a Document node is created with the DOMImplementation createDocument() method, which takes a qualified name as an argument and creates an element node. If you then pass the returned Document node to Xalan-Java, you get a "DOM006 Hierarchy request error" when Xalan-Java tries to add a second element to the Document node. The solution is to either use the DocumentBuilder newDocument() method to create a Document that does not contain an element node, or use a DocumentFragment. It should be noted that the DocumentBuilder newDocument() method is "Non-preferred" according to the JAXP 1.3 documentation.
19. Namespace not supported by SAXParser
We have seen this problem arise for two quite different reasons:
- SAX1 interfaces are on your classpath in front of the SAX2 interfaces provided with
your XML parser.
or
- The parser you are using to process a stylesheet Source and generate a Transformer does not have the namespaceAware property set to true.
SAX1 on the classpath
SAX1 should not be on your classpath. The SAX1 interfaces and implementations of the SAX1 SAX parser are not namespace aware.
To help diagnose your classpath, you can use the EnvironmentCheck utility. If you are running under JDK 1.3, see Issues running Xalan-Java on JDK 1.3. If you are running a servlet, make sure the webserver is not placing SAX1 on the classpath.
When you create a Transformer, you must use a namespace-aware parser to parse the stylesheet.
20. Missing xsl:version attribute error
There are two common causes for this error.
- Using the wrong URI for the xsl: prefix will cause this message. URIs, and namespace
URIs in particular, are case sensitive. Ensure the URI for the xsl namespace is
"http://www.w3.org/1999/XSL/Transform".
- The parser you are using to process a stylesheet Source and generate a Transformer
does not have the namespaceAware property set to true.
When you create a Transformer, you must use a namespace-aware parser to parse the stylesheet.
21. StackOverflowError with recursive stylesheet
That may not be our fault. As of JDK 1.3.x, many Java Virtual Machine publishers reduced the default size of a thread's call stack from 1MB to 256KB. This allows more threads to run simultaneously, but it means that each thread is more limited in how deeply its function calls can be nested.
Some JVMs may offer an option that allows you to raise this limit. For example, in Sun JDK 1.3.1 you can start JVM with the -Xss1m option to allow each thread to use a full megabyte. In IBM's JDK you can start with the -Xss1m and -Xoss1m options. Other JVMs may set this in other ways, or may not allow you to control it at all; check the documentation on your system for details.
Note too that on some platforms 1MB is an architectural upper limit on the stack size, so setting -Xss2m (or equivalent) may not allow deeper recursion than -Xss1m.
22. OutOfMemoryError processing multiple documents
As a general rule, Xalan-Java currently caches all of the documents that you read in with the document() function during a transformation.
If your objective is to transform a series of documents, you can break the process into a series of transformations. The PipeDocument extension element provides one strategy for batching a series of parallel transformations.
Another alternative is to place your document() call in the select attribute of an xsl:for-each instruction element and use a custom PI (Processing Instruction) to turn off document caching. Include an XPath expression in your document() call if you do not need to process the entire document.
Sample stylesheet fragment:
<xsl:template match="doc"> <xsl:for-each select="document(@href)/bar/zulu"> <?xalan-doc-cache-off?> <!-- process each document --> <xsl:for-each> </xsl:template>
| PIs do not ordinarily uses namespaces, so "xalan:" is a 'fake' namespace we have included to indicate that this is not a standard PI. |
If you include an XPath expression in your document() call, you can also turn on incremental transform to eliminate the need to read in the entire document. In fact, you can take advantage of the incremental transform feature even if you are not turning off document caching.
You can also increase your JVM heap size with the -Xmx or -mx flag, depending on which JVM
you are using (you can include both flags, and the JVM will ignore the one it doesn't
understand). For example, to give your JVM 64 meg, try
java -Xmx64m -mx64m
Class
23. File Not Found error
Xalan-Java often requires legal URLs as system identifiers, not local pathnames (this is partly due to underlying parsers requiring this). A simple (but not always correct!) way to change a local pathname into a URL in Java 1.1x is:
public static String filenameToURL(String filename) { File f = new File(filename); String tmp = f.getAbsolutePath(); if (File.separatorChar == '\\') { tmp = tmp.replace('\\', '/'); } // Note: gives incorrect results when filename already begins with file:/// return "file:///" + tmp; }
For a slightly more detailed example, see org.apache.xml.utils.SystemIDResolver.
24. No more DTM IDs are available
It means you are probably using a very old version of Xalan or Xalan-Java, likely the version 2.2D11 which was packaged in JDK1.4. Architectural changes made in early 2002 should have eliminated this issue for almost all cases.
You should verify the version of Xalan-Java you are using by running the EnvironmentCheck utility, and read the FAQ about Issues running Xalan-Java on JDK 1.4.
25. IllegalAccessError or could not load output_xml.properties on JDK 1.4
These errors may occur if you use JDK 1.4 or later releases.
JRE 1.4 and later releases contain copies of Xalan-Java. In some cases, the JRE includes only Xalan-Java Interpretive, while in other cases it also includes XSLTC. Typically, the copy of the processor packaged with the JRE will be loaded in preference to any copy of Xalan-Java on your class path.
Beginning with Xalan-Java 2.5, Xalan-Java Interpretive and XSLTC are both packaged in xalan.jar, and share some of the same classes. If you are using a version of the JRE that contains Xalan-Java Interpretive, but not XSLTC, and you try to use XSLTC on your class path, classes from that version of XSLTC may be loaded along with classes from the version of Xalan-Java packaged with your JRE.
Because the classes may be from different versions of Xalan-Java, the
results may be unpredictable. In particular, a
java.lang.IllegalAccessError
may be thrown, or an
org.apache.xml.utils.WrappedRuntimeException
containing
the message: "Could not load the property file
'output_xml.properties' for output method 'xml' (check
CLASSPATH)"
may be thrown.
To work around those problems, please read the FAQ entitled Issues running Xalan-Java on JDK 1.4.
26. Chaining transformations
Xalan-Java supports two strategies for chaining together a series of transformations such that the output of each transformation provides input for the next transformation.
- For each transformation in the series, you can set one SAX ContentHandler to process
the input, and another ContentHandler to process the output.
- You can also set up a series of parent-child relationships between an XMLReader and one or more XMLFilters.
For the details and links to examples, see Using transformation output as input for another transformation.
27. Stylesheet validation
An XSL stylesheet is an XML document, so it can have a DOCTYPE and be subject to validation, right?
The XSLT Recommendation includes a DTD Fragment for XSL Stylesheets with some indications of what you need to do to create a complete DTD for a given stylesheet. Keep in mind that stylesheets can include literal result elements and produce output that is not valid XML.
You can use the xsl:stylesheet doctype defined in xsl-html40s.dtd for stylesheets that generate HTML.
28. Setting output encoding
If you use a character output stream to instantiate the StreamResult object which holds the transformation output, the Writer uses its own encoding, not the encoding you specify in the stylesheet.
If you want to use the stylesheet output encoding, do not use StreamResult(java.io.Writer) to instantiate the holder for the output. Alternatively, you can specify the encoding when you create a Writer (java.io.OutputStreamWriter). Once the Writer exists, you cannot change its encoding. If the transformation is run in a servlet, it is possible that the Writer is coming from the ServletResponse object.
If the stylesheet is run using the JAXP APIs and the Transformer's setOutputProperty() method is invoked, it is possible to set the "encoding" property and over-ride the value in the stylesheet.
29. Getting line and column numbers for errors in XML input documents and XSL stylesheets
Use or mimic the command-line processor (org.apache.xalan.xslt.Process).
A TransformerException generally wraps another exception, often a SAXParseException. The command-line processor uses the static org.apache.xml.utils.DefaultErrorHandler printLocation() method to chase down the exception cause and get a SourceLocator that can usually report line and column number.
Suppose you wanted to modify the ValidateXMLInput sample in the samples/Validate subdirectory to include line and column numbers . All you need to do is call DefaultErrorHandler.printLocation() in the the Handler internal class error() and warning() methods. For example, replace
public void error (SAXParseException spe) throws SAXException { System.out.println("SAXParseException error: " + spe.getMessage()); }
with
public void error (SAXParseException spe) throws SAXException { PrintWriter pw = new PrintWriter(System.out, true); org.apache.xml.utils.DefaultErrorHandler.printLocation(pw, spe); pw.println("SAXParseException error: " + spe.getMessage()); }
You can also replicate code from the printLocation() method to obtain a SourceLocator, and then use the SourceLocator getLineNumber() and getColumnNumber() methods. The getRootSourceLocator() method below returns a SourceLocator.
import javax.xml.transform.SourceLocator; import javax.xml.transform.TransformerException; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.apache.xml.utils.SAXSourceLocator; import org.apache.xml.utils.WrappedRuntimeException; .... public static SourceLocator getRootSourceLocator(Throwable exception) { SourceLocator locator = null; Throwable cause = exception; // Try to find the locator closest to the cause. do { if(cause instanceof SAXParseException) { locator = new SAXSourceLocator((SAXParseException)cause); } else if (cause instanceof TransformerException) { SourceLocator causeLocator = ((TransformerException)cause).getLocator(); if(null != causeLocator) locator = causeLocator; } if(cause instanceof TransformerException) cause = ((TransformerException)cause).getCause(); else if(cause instanceof WrappedRuntimeException) cause = ((WrappedRuntimeException)cause).getException(); else if(cause instanceof SAXException) cause = ((SAXException)cause).getException(); else cause = null; } while(null != cause); return locator; }
|
Xalan-Java exception handling: The exception architecture
in Xalan-Java and with transforms in general is tricky because of
multiple layers of exception handling, involving movement back and forth between SAX and
Transformer exceptions and across pipes. Xalan-Java often uses a
WrappedRuntimeException to throw over many layers of checked exceptions, in order not to
have every possible checked exception be declared for every function in the stack, which
means it has to catch this exception at the upper levels and unwrap the exception to pass
it on as a TransformerException.
A JAXP 1.3 TransformerException often wraps another exception. Two of the TransformerException structures that are frequently used to construct contained exceptions in JAXP 1.3 do not set the locator. The locator is not set because we don't know the type of exception that the Throwable argument represents. The solution is to chase up the contained exceptions to find the root cause, which will usually have a location set for you. This can be somewhat tricky, as not all the exceptions may be TransformerExceptions. A good sample is in the DefaultHandler static printLocation() method, which the Xalan-Java command-line processor uses to report errors. You can also roll your own functions along the lines of the getRootSourceLocator() example above. |
30. Servlet unable to find classes for extension functions/elements
If you install xalan.jar in the webserver's lib directory (e.g., tomcat/lib), as opposed to the servlet application's lib directory, then the Xalan-Java classes are loaded by a classloader that does not see the classes in the application's classloader (i.e., the extension classes, if you placed them there). The Xalan-Java classes try to load the extension classes using their own classloader, and that attempt fails.
Workaround: place xalan.jar in the servlet application's lib directory and NOT in the webserver's lib directory. Another workaround is to place the extension classes also in the webserver's lib directory, but you generally want to avoid cluttering that directory.
Thanks to Gunnlauger Thor Briem<EMAIL_ADDRESS>for providing this information.
31. Translet name doesn't match stylesheet name
foo-bar.xsl
, but XSLTC
created a translet named foo_bar
. Is that a bug?No. The name of a translet is usually the name of the stylesheet,
the name specified using the translet-name
attribute on
the XSLTC TransformerFactory
or the name
specified for the translet on the command-line invocation.
However, the name of the translet is also the name of a Java class.
Any character that is not permitted in a class name is replaced with
an underscore.


---
layout: base
---
Six days of talks, sprints, and tutorials in San Diego
Conference Schedule
{% comment %}
Buy Tickets
Submit Talk
{% endcomment %}
Join Mailing List
Join us for a source of inspiration, education and networking opportunities. Our team is making sure that participating in DjangoCon US is easy for you!
DjangoCon US 2020 was such a great year. Thanks to our presenters, sponsors, attendees, organizers, volunteers, and everyone who made it so amazing! See you next year!
Check out the schedule page; we'll post the links to the talk videos on the specific talk pages once the videos are up!
Participants are expected to be respectful to each other. For details on our expectations, and who to contact if you need assistance, see our Code of Conduct.


---
layout: page
title: Tables
razor: https://razor.stackoverflow.design/components/table
js: true
description: Tables are used to list all information from a data set. The base style establishes preferred padding, font-size, and font-weight treatments. To enhance or customize the look of the table, apply any additional classes listed below.
---
{% header "h2", "Default style" %}
Tables should be wrapped in a container, .s-table-container. This provides horizontal scrolling when necessary in the smallest breakpoints. The default table style is a bordered cell layout with a stylized header row.
By default, tables are outlined, have borders on all cells, and have a styled header. Depending on the size and complexity of a table, these can all be configured.
{% header "h3", "Horizontal borders" %}
Shows only horizontal table cell borders. Good for tables with lots of data that can be sorted and filtered.
{% highlight html %}
…
{% endhighlight %}
First name
Last name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
3
Paweł
L.
@pawełl
4
Ted
G.
@so-ted
{% header "h3", "Simple borders" %}
Removes most of the default borders and backgrounds. Good for tables without much data that don't need to be sorted or filtered.
{% highlight html %}
…
{% endhighlight %}
First name
Last name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
3
Paweł
L.
@pawełl
4
Ted
G.
@so-ted
{% header "h3", "No borders" %}
Removes all table cell borders.
{% highlight html %}
…
{% endhighlight %}
First name
Last name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
3
Paweł
L.
@pawełl
4
Ted
G.
@so-ted
{% header "h3", "Zebra striping" %}
When tables have a lot of information, you can help users group information and isolate data by adding zebra striping.
{% highlight html %}
…
{% endhighlight %}
First Name
Last Name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
3
Paweł
L.
@pawełl
4
Ted
G.
@so-ted
{% header "h2", "Spacing" %}
A table’s padding can be changed to be more or less condensed.
{% header "h3", "Small" %}
{% highlight html %}
…
{% endhighlight %}
First Name
Last Name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
{% header "h3", "Default" %}
{% highlight html %}
…
{% endhighlight %}
First Name
Last Name
Username
1
Paweł
L.
@pawełl
2
Ted
G.
@so-ted
{% header "h3", "Large" %}
{% highlight html %}
…
{% endhighlight %}
First Name
Last Name
Username
1
Aaron
S.
@aarons
2
Joshua
H.
@joshuah
{% header "h2", "Cell widths" %}
Table columns will size themselves based on their content. To set a specific width, you can use one of the following table cell classes to specify the width for any column.
The default vertical alignment is middle. You change a table’s or a specific cell’s vertical alignment by using the Vertical Alignment atomic classes.
{% highlight html %}
…
…
…
…
…
…
{% endhighlight %}
.va-top
.va-middle
.va-bottom
.s-table.va-bottom
.s-table.va-bottom
.s-table.va-bottom
{% header "h3", "Text alignment" %}
Text alignment can be changed at a table or cell level by using atomic text alignment classes. Columns containing copy should be left-aligned. Columns containing numbers should be right-aligned.
{% highlight html %}
…
…
…
…
…
…
{% endhighlight %}
.ta-left
.ta-center
.ta-right
.s-table.ta-right
.s-table.ta-right
.s-table.ta-right
{% header "h2", "Sortable tables" %}
To indicate that the user can sort a table by different columns, add the s-table__sortable class to the table.
The <th> cells should include arrows to indicate sortability or the currently applied sorting. In addition, the column that is currently sorted should be indicated with the is-sorted class on its <th>.
Stacks provides built-in functionality for letting the user sort a table by the values in a column through clicking the column header. This requires the complete data to already exist in the table (e.g. it is not going to work if the table is paged and requires a call to the server to update data on sorting). See the JavaScript introduction for general information about JS in Stacks.
To make your table user-sortable, do the following:
Style the table as sortable as explained in the section above.
Set data-controller="s-table" on the <table> element.
Set data-s-table-target="column" and data-action="click->s-table#sort" on each of the <th> elements that control sorting.
Add the three icons for showing ascending sort, descending sort, and unsorted to each of these header cells, hiding the first two with a d-none class. Add the js-sorting-indicator class to each of the icons, and add js-sorting-indicator-asc, js-sorting-indicator-desc, and js-sorting-indicator-none to the appropriate icon.
{% tip %}
Note: Using js-… classes is not really the optimal way of doing this, and will probably replaced with something better eventually. When that happens, the js-… mechanism will be deprecated but continue to be supported for a while, so you have ample time to update things.
{% endtip %}
By default, the data is sorted by the content of the cell. If you need to use a different value, for example because your cell contains a human-readable date, add a data-s-table-sort-val attribute to the cell.
If a column contains any data that is not an integer, the data will be sorted lexicographically. Otherwise it will be sorted numerically, with empty cells being considered the lowest number.
If the table contains rows that should not be sorted, but rather always be at the top or always be at the bottom, add data-s-table-sort-to="top" or data-s-table-sort-to="bottom" to the <tr> element.
{% header "h3", "JavaScript data attributes" %}
Attribute
Applied to
Description
{% for item in tables.data-attributes %}
{{ item.attribute }}
{{ item.applies }}
{{ item.description }}
{% endfor %}
{% header "h3", "JavaScript example" %}
{% highlight html %}
Winter
December
2
Spring
March
13
Summer
June
25
Fall
September
13
Average temperature
13
{% endhighlight %}
Winter
December
2
Spring
March
13
Summer
June
25
Fall
September
13
Average temperature
13
{% header "h2", "Bar graphs" %}
To help users, you can add data visualizations into table cells. These are useful to help visualize the reported data and calling extra attention to the table cell. These graphs should always be paired with a number.
For tables that include inactive or disabled rows, such as inactive users or teams, .is-disabled can be applied to any <tr>. Additionally, .is-enabled can be applied to any <th> or <td> that you’d like to ignoring the parent disabled styling (such as a persistent link to reactivate a disabled account).
Further control of table behavior is possible with atomic classes. For example, you can make non-table markup display as a table layout by pairing .d-table, .d-table-cell and .tl-fixed.


This is a DoseNet radiation detection device continously monitoring radiation levels at this location.
Check out the local
Jupyter notebook
and play with the data directly!
Check out our whole network!


This game would not have made it this far without many free / open source software and assets.
A game by Douglas Orr.


HELLRAISER III A film review by Andreas Kutschera Copyright 1992 Andreas Kutschera
Well, I seldom get the chance to view a film *before* the US release, so I'll grab the chance and try to do a review of HELLRAISER III. No spoilers before the ^L, I promise.

Judging from the title, HELLRAISER III, is supposed to be a movie that fits into the storyline of the other two Hellraiser movies. Having watched all three of them in a row, I must say that the most "hell-like" aspect of it was that I watched it in a theatre without air conditioning on one of the hottest days in August. Other than that, the movie fails to live up to its promise.
What would you expect from a Hellraiser film?
Yes, the Pleasure Cube is back (it still seems to be the only way to open the dimensional door).
Yes, the Cenobites are back (and guess what they want :-)
So, essentially the story follows the same line as did HELLRAISER I and II. But while HELLRAISER II managed to evolve the storyline further (i.e., tell us more about the characters we already knew), part III only gives us lots of new characters we don't know and who I don't really care about. This, of course, gives the authors an excuse to tell us the same old story we have already seen, the same special effects we have already seen and to keep it at a superficial level.
But, what's even worse, in parts I and II, the main characters had a really strong motive for what they did. These people actually *wanted* something out of life (or out of the Cube). In part III, none of the characters really wants something, so everything that happens, just happens accidentally, almost by coincidence, and the characters only _re_act (instead of *act*).
While I liked HELLRAISER I, because it introduced a new concept to me, and also because I get this chill down my spine when pleasure and pain are mixed (that's all I'll add to the "Barker: Sex & Horror" discussion), and I also liked part II, because the characters were still motivated and the film went deeper into the history of the Cenobites, part III didn't show me anything new.
So what I recommend is, if you want a good story with character development and also some good special effects, go see HELLRAISER I and II (again, if necessary), and wait for III to come out on video. If you can't wait, try to see it for as little money as possible.
Now, there will be a few *mild* spoilers to prove my point about a weak storyline, but don't worry, you'll probably figure out most of it yourself by the first ten minutes of the movie...:
The setting: New York City.
The leading persons: a television reporter (female) - her cameraman (male) - a nightclub owner (male, age ~32) - one of his lovers (of course, did you expect a *homo*sexual relationship?)
At the beginning of the movie, there is a statue, which is a leftover from a psychiatric hospital. The statue looks like a complex meld of bodies, I-dunno-what and a cute Cube. Viewers of HELLRAISER I and II will probably instantly make the connection between the statue and what it contains.
So the following questions remain:
Will the statue come to life? If so, how? Will the Cenobites be released? If so, how? Will anyone stand in their way? If so, who? How will the movie end? Is there a possibility for a sequel?
The answer to these questions follows the other ^L :-)
Since I told you that it was a bad movie, the answer to all the above questions is: YES (just as you would expect).
-- all replies to<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Features
Live Chat
Make friends and chat with others about market conditions
Screen Share
Watch scanners and trades in real time with no delay
Live Alerts
Receive alerts in real time from the mentors who are streaming
Education
Learn from watching the pros perform everyday
Rewards
Earn badges that display your hard work and commitment


Tablet of Vision:
Fallen Angel Allector? I should have known! What was I thinking?
I sense that he has the Stone of Commune.


callattendent
Project Link
Page URL
with Name
Deployment Model : Model
Deployment Diagram - Deployment View
link
Jump to:
Please select a model element
Callee : Node
Caller : Node
Unnamed Node : Node
Home Computer / Phone : Node
Telco : Node
Call Attendant : Component
Telco Modem : Node
Home Phone : Node
US Robotics 5637 : Node
Raspian : Node
Raspberry Pi 3 B+ : Node
callattendent


Batch is required.
Semester is required.
Section is required.
Subject name is required.
Subject Code is required.


var next: CacheableContainer?
A pointer to next cached object. Useful in Cache Registry and book keeping.
Getter
A pointer to next cached object. Useful in Cache Registry and book keeping.
Setter
A pointer to next cached object. Useful in Cache Registry and book keeping.


Click the boxes in right order.
[iterationEX2PRO.userInput]
if (!iterationEX2PRO.checkAnswer() && !guess[0]) {
return ""; // User did not click, and correct answer is not
// initial array state
} else {return iterationEX2PRO.checkAnswer();}
Make sure to reproduce the behavior in the correct order.


[gecode-users] Gecode Python Set Variables
Denys Duchier
denys.duchier at univ-orleans.fr
Mon Oct 24 23:21:44 CEST 2011
Luca Di Gaspero <l.digaspero at uniud.it> writes:
> is there the possibility to define and use set variables with the python
> bindings? Could you provide a small example?
All is (succinctly) documented in the README file which I attach below:
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: README
URL: <http://www.gecode.org/pipermail/users/attachments/20111024/62ba46d4/attachment.asc>
-------------- next part --------------
The constraints are exactly the same as in Gecode, except that they are
methods of the space rather than take the space as first argument.
Please, let me know if something is still unclear. Eventually, I will
provide more extensive documentation, but I haven't had time to work on
that yet, sorry :-/
Cheers,
--Denys
More information about the users
mailing list


Ready to make an awesome dinner? Click 'Yes' and we'll start!
My Dinner
Add the number of people you'll want to cook for below.
Search for dishes
Click the search button to view dishes of different types, or search for a dish
Total


FieldsRepository
class FieldsRepository
Fields repository allows us to retrieve fields that belong to page versions and keys and have been deleted. We also can find global fields with this repository.
Methods
Construct a new FieldsRepository
Find existing page field given key and pageId
Find existing page field (only if it has been trashed)
Find existing global field (only if it has been trashed)
Find the field by id
Find a field by it's id and scope (page or global)
Find a field by it's scope and included fields that have been deleted
Find a field by it's global key and language id
Find all fields where content requested is true for given page version id and builds a list of field keys
Details
at line 32
__construct(DvsField $Field, DvsGlobalField $GlobalField)
Construct a new FieldsRepository
at line 45
Field
findFieldByKeyAndPageVersion($key, $pageVersionId, $collectionInstanceId)
Find existing page field given key and pageId
at line 61
Field
findTrashedFieldByKeyAndPageVersion($key, $pageVersionId)
Find existing page field (only if it has been trashed)
at line 78
DvsGlobalField
findTrashedGlobalFieldByKeyAndLanguage(string $key, integer $languageId)
Find existing global field (only if it has been trashed)
at line 93
DvsField
findFieldById(integer $id)
Find the field by id
at line 105
DvsField
findFieldByIdAndScope(integer $fieldId, string $fieldScope)
Find a field by it's id and scope (page or global)
at line 117
DvsField
findTrashedFieldByIdAndScope(integer $fieldId, string $fieldScope)
Find a field by it's scope and included fields that have been deleted
at line 129
DvsGlobalField
findFieldByGlobalKeyAndLanguage(string $key, integer $languageId)
Find a field by it's global key and language id
at line 141
Field
findContentRequestedFieldsList(integer $pageVersionId)
Find all fields where content requested is true for given page version id and builds a list of field keys


A collection of Cedar porch posts.
A collection of Raw wood porch posts.
A collection of Primed porch posts.


Final Fantasy XIV is a massively multiplayer online role-playing game (MMORPG) developed and published by Square Enix. Directed and produced by Naoki Yoshida, it was released worldwide for Microsoft Windows and PlayStation 3 in August 2013, as a replacement for the failed 2010 version of the game, with support for PlayStation 4, PlayStation 5, and OS X releasing later. Final Fantasy XIV takes place in the fictional land of Eorzea, five years after the events of the original 2010 release. At the conclusion of the original game, the primal dragon Bahamut escapes from its lunar prison to initiate the Seventh Umbral Calamity, an apocalyptic event which destroys much of Eorzea. Through the gods' blessing, the player character escapes the devastation by time traveling five years into the future. As Eorzea recovers and rebuilds, the player must deal with the impending threat of invasion by the Garlean Empire from the north.
The original Final Fantasy XIV, released in September 2010, was a critical and commercial failure. In response, then-Square Enix President Yoichi Wada announced that a new team, led by Yoshida, would take over and attempt to fix the issues with it. This team was responsible for generating content for the original version as well as developing a brand new game which would address all of the previous release's criticisms. This new game, initially dubbed "Version 2.0", features a new game engine, improved server infrastructure, and revamped gameplay, interface, and story. The original version shut down in November 2012 and was followed by an alpha test for Version 2.0.
The game released to largely positive reception; critics praised the game for its solid mechanics and progression, and they commended Yoshida for turning the project around. After a poor 2013 fiscal year, Square Enix executives attributed the company's 2014 return to profitability in part to the game's strong sales and subscriber base, reaching a total of over 22 million registered players by April 2021. The game has had a number of post-release updates produced for it, including four major expansion packs: Heavensward (2015), Stormblood (2017), Shadowbringers (2019), and Endwalker (2021).


public enum PlaybackAction implements ResultEnum
Action a user takes that will affect current playback
| Enum Constant and Description |
|---|
INTERRUPTING_PLAYBACK |
PAUSING |
PLAYING |
RESUMING |
SEEKING |
SKIPPING_NEXT |
SKIPPING_PREV |
STOPPING |
TOGGLING_REPEAT_CONTEXT |
TOGGLING_REPEAT_TRACK |
TOGGLING_SHUFFLE |
TRANSFERRING_PLAYBACK |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
retrieveIdentifier() |
retrieveIdentifier
public static PlaybackAction INTERRUPTING_PLAYBACK
public static PlaybackAction PAUSING
public static PlaybackAction PLAYING
public static PlaybackAction RESUMING
public static PlaybackAction SEEKING
public static PlaybackAction SKIPPING_NEXT
public static PlaybackAction SKIPPING_PREV
public static PlaybackAction STOPPING
public static PlaybackAction TOGGLING_REPEAT_CONTEXT
public static PlaybackAction TOGGLING_SHUFFLE
public static PlaybackAction TOGGLING_REPEAT_TRACK
public static PlaybackAction TRANSFERRING_PLAYBACK


class
MyClassA class with attr-defined properties
Special methods
- def __init__(self, annotated: float, unannotated = 4, complex_annotation: typing.List[typing.Tuple[int, float]] = [], complex_annotation_in_attr: typing.List[typing.Tuple[int, float]] = [], hidden_property: float = 3) -> None
- External docs for the init
Properties
- annotated: float get set del
- complex_annotation: typing.List[typing.Tuple[int, float]] get set del
- unannotated get set del
- External docs for this property
- complex_annotation_in_attr: typing.List[typing.Tuple[int, float]] get set del
Data
- plain_data: float = 35
- This is plain data, not handled by attrs
Method documentation
def inspect_attrs. MyClass. __init__(self,
annotated: float,
unannotated = 4,
complex_annotation: typing.List[typing.Tuple[int, float]] = [],
complex_annotation_in_attr: typing.List[typing.Tuple[int, float]] = [],
hidden_property: float = 3) -> None
External docs for the init
| Parameters | |
|---|---|
| annotated | The first argument |
| unannotated | This gets the default of four |
| complex_annotation | Yes, a list |
| complex_annotation_in_attr | Annotated using attr.ib(type=) ,
should be shown as well |
| hidden_property | Interesting, but I don't care. |
The hidden_property
isn't shown in the output as it's prefixed with
an underscore.


public class LogManager
extends java.lang.Object
LogManager
class to retreive Logger
instances or to operate on the current LoggerRepository
. When the LogManager
class is loaded
into memory the default initalzation procedure is inititated. The
default intialization procedure is described in the short log4j manual.| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
CONFIGURATOR_CLASS_KEY
已过时。
This variable is for internal use only. It will
become private in future versions.
|
static java.lang.String |
DEFAULT_CONFIGURATION_FILE
已过时。
This variable is for internal use only. It will
become package protected in future versions.
|
static java.lang.String |
DEFAULT_CONFIGURATION_KEY
已过时。
This variable is for internal use only. It will
become private in future versions.
|
static java.lang.String |
DEFAULT_INIT_OVERRIDE_KEY
已过时。
This variable is for internal use only. It will
become private in future versions.
|
| 构造器和说明 |
|---|
LogManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
static Logger |
exists(java.lang.String name) |
static java.util.Enumeration |
getCurrentLoggers() |
static Logger |
getLogger(java.lang.Class clazz)
Retrieve the appropriate
Logger instance. |
static Logger |
getLogger(java.lang.String name)
Retrieve the appropriate
Logger instance. |
static Logger |
getLogger(java.lang.String name,
LoggerFactory factory)
Retrieve the appropriate
Logger instance. |
static LoggerRepository |
getLoggerRepository() |
static Logger |
getRootLogger()
Retrieve the appropriate root logger.
|
static void |
resetConfiguration() |
static void |
setRepositorySelector(RepositorySelector selector,
java.lang.Object guard)
Sets
LoggerFactory but only if the correct
guard is passed as parameter. |
static void |
shutdown() |
public static final java.lang.String DEFAULT_CONFIGURATION_FILE
public static final java.lang.String DEFAULT_CONFIGURATION_KEY
public static final java.lang.String CONFIGURATOR_CLASS_KEY
public static final java.lang.String DEFAULT_INIT_OVERRIDE_KEY
public static void setRepositorySelector(RepositorySelector selector, java.lang.Object guard) throws java.lang.IllegalArgumentException
LoggerFactory
but only if the correct
guard is passed as parameter.
Initally the guard is null. If the guard is
null
, then invoking this method sets the logger
factory and the guard. Following invocations will throw a IllegalArgumentException
, unless the previously set
guard
is passed as the second parameter.
This allows a high-level component to set the RepositorySelector
used by the LogManager
.
For example, when tomcat starts it will be able to install its own repository selector. However, if and when Tomcat is embedded within JBoss, then JBoss will install its own repository selector and Tomcat will use the repository selector set by its container, JBoss.
java.lang.IllegalArgumentException
public static LoggerRepository getLoggerRepository()
public static Logger getRootLogger()
public static Logger getLogger(java.lang.String name)
Logger
instance.public static Logger getLogger(java.lang.Class clazz)
Logger
instance.public static Logger getLogger(java.lang.String name, LoggerFactory factory)
Logger
instance.public static Logger exists(java.lang.String name)
public static java.util.Enumeration getCurrentLoggers()
public static void shutdown()
public static void resetConfiguration()
Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.


Style Preview
Header Color:
Text Color:
Text Color:
Logo Text Color:
Alt. Text Color:
Navbar Color:
Download CSS
Style Preview can only be used on the preprint pages of OSF and its providers.
?


Latency is an important part of Quality of Service that determines the degree of consumer satisfaction. End-to-end latency is one of user-oriented characteristics used for quality assessment of distributed software architecture. The ultimate goal is the ability to quantitatively evaluate and trade-off the architecture to ensure competitive end-to-end latency of software solutions... Learn more »


Online ALAC
Home
Threads
Mentors
Profile
Sign Out
Search:
Go
Log In
Forgot Password?
Remember me
LOGIN


Use the .form-check-inline class if you want the checkboxes to appear on the same line:
.form-check-inline


Section 1.2 Starting JAWS
When you install JAWS on your computer, a JAWS icon will be placed on the desktop. This is a shortcut to turn JAWS on. There is more than one method you can use to turn JAWS on. Setting up a JAWS hotkey is another method that can be used to start JAWS.
When JAWS is running, you can shut it off as needed. The keyboard command used to turn JAWS off is INSERT + F4. After you press the command, a shut-down dialog box will appear.
Subsection 1.2.1 Quiz
When installing JAWS, where is a shortcut to run the program placed?
What is a second method that can be used to run JAWS?

How can you turn keyboard help on or off?}
Subsection 1.2.2 Tasks
One method to start JAWS is to start it from the icon on the desktop. Follow the below steps to practice.
Press WINDOWS KEY + D to bring focus to the desktop.
Press J for JAWS. This will bring focus to the JAWS icon. If you have more than one icon starting with letter j, you may have to press j more than once.
Check to see where you are. Use the say line command. Press INSERT + up ARROW.
Press ENTER to start JAWS.
The JAWS window will open. JAWS will start running.
Now learn to set up a hotkey that will start JAWS.
Press WINDOWS KEY + D to focus on the desktop.
Press letter J until the JAWS shortcut icon is selected. If JAWS does not say "selected", then press SPACEBAR to select the icon.
Pressing ENTER would open the window. We don't want to open the JAWS window at this time, just to select it.
Press ALT + ENTER to open the properties dialog box.
When "properties" is opened, you will be on a multi-page dialog box. Focus will probably be on the "shortcut" page.
If you are not on the "shortcut" page, press CONTROL + TAB until focus is on the correct page.
Press tab until you get to the "shortcut" or "hotkey".
Press the letter J. The computer will assume you want CONTROL + alt + J as the shortcut. When you press the letter j, CONTROL + alt + J now becomes the hotkey to turn JAWS on.
Confirm that you set the hotkey correctly. Use the hotkey to read the current control. Insert + TAB will read the current control and a message.
TAB once. Though you don't need to change this for JAWS, the "run" option tells how the program should be run. For JAWS, keeping the choice at "normal window" is fine.
For JAWS, run in the normal window.
TAB to the OK button. Press SPACE to confirm the changes. You may need to take other actions depending on how your administrative settings for your PC are set up.
Press ENTER on the continue button to confirm the change. Test to see if the hotkey worked. First close JAWS. Turn the screen reader off by pressing the hotkey INSERT + F4.
Press SPACE to turn JAWS off.
Now turn JAWS on. Try the hotkey you set. Press CONTROL + ALT + JHopefully it worked and JAWS will start running again.


Nigeria Breaking News, Today, Thursday, 21st, November 2019
by Enioluwa AdeniyiThis is a Round-up of some breaking news for Today, 21st, November 2019.
Social Media Bill Passes Second Reading In The Senate
The social media bill on Wednesday passed the second reading in the Senate. The bill is expected to restrict cyberspace falsehood against Nigerians if passed into law.
The Senator representing Niger East Senatorial District, Musa Mohammed Sani, had proposed the bill in the National Assembly.
President Buhari Signs Executive Order 009
President Muhammadu Buhari on Wednesday signed Executive Order 009 to end open defecation in Nigeria by 2025.
The new order signed by Buhari states, “That by this Order, Nigeria is committed to being open defecation-free by 2025.
Verifying Sowore’s Sureties Illegal, Falana Tells DSS
Constitutional and human rights lawyer, Femi Falana (SAN), has kicked against the move by the Department of State Services (DSS) to verify sureties of Omoyele Sowore.
Sowore has been in detention since August 3 when he was arrested over for a planned #RevolutionNow protest across Nigeria.
Oshiomhole vs Obaseki: APC Sends Strong Delegation To Edo (Full List)
The national leadership of the All Progressives Congress (APC) has sent a high powered delegation to resolve the crisis rocking the Edo State chapter of the party.
Naija News reports that the National Chairman of the APC, Adams Oshiomhole and Governor Godwin Obaseki of Edo State have been at loggerheads.
Bayelsa: Mass Defection May Hit PDP Soon – Chekwas Okorie
The National Chairman of the United Progressive Party (UPP), Chekwas Okorie, has said the Peoples Democratic Party (PDP) would witness massive defection of its leaders.
Naija News reports that the National Electoral Commission (INEC), had declared David Lyon the winner of the Bayelsa Governorship Election.


Hey There, My name is Biyakuga Higashiri
I am a freelance developer with a passion for user experience, user interfaces, games, tools, and in general, anything that can be coded. Besides, I am one of the founders and the current owner of the group Nostalgia Community in the discord app. We are doing amazing things there, such as developing tools to run old games from the 80s and 90s on modern computer systems.
Working at John Bryce training company after graduation by them, gainted additional experience by
teaching students while developing and learning new skills and technologies.
Moreover, my creativity, social skills and logical thinking was also improved a lot by doing so.
Working as a private teacher before and after I finished studies of bachelor of arts degree in
System Information.
Coding along with classmate and students improved my knowledge by far.
I learned coding step by step from YouTube and online courses and fell in love with coding which lead to made it to my profession, practice and gaining experience.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies. Ipsum ipsum dolor sit, amet consectetur adipisicing elit. Voluptatem neque perspiciatis dolores.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies. Ipsum ipsum dolor sit, amet consectetur adipisicing elit. Voluptatem neque perspiciatis dolores.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies. Ipsum ipsum dolor sit, amet consectetur adipisicing elit. Voluptatem neque perspiciatis dolores.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis et tortor ac tincidunt. In euismod iaculis lobortis. Vestibulum posuere molestie ipsum vel. Vestibulum vestibulum elit ultricies.
Thanks, your message is sent successfully. We will contact you shortly!


Year
2020
2021
2022
Month
January
February
March
April
May
June
July
August
September
October
November
December
Previous Month
Next Month
❮
❯
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday


//= html/header.html
//= html/switch.html
//= html/we-can.html
//= html/whats-include.html
//= html/soft-skills.html
//= html/learning-format.html
//= html/safe-way.html
//= html/profession.html
//= html/we-give-a-guarantee.html
//= html/learning-center.html
//= html/our-mentors.html
//= html/video-reviews.html
//= html/reviews.html
//= html/price.html
//= html/whats-diff.html
//= html/what-receives.html
//= html/faq.html
//= html/how-to-know.html
//= html/what-if-you-dont.html
//= html/become-strong-jun.html
//= html/modal.html


--- title: Parametric Rectified Linear Unit. type: docs repo: https://github.com/rstudio/keras menu: main: name: Parametric Rectified Linear Unit. - keras parent: keras-reference aliases: - /reference/keras/layer_activation_parametric_relu.html - /keras/reference/layer_activation_parametric_relu.html - /guide/keras/reference/layer_activation_parametric_relu.html - /tools/tools/keras/reference/layer_activation_parametric_relu.html - /installation/keras/reference/layer_activation_parametric_relu.html - /tutorials/keras/reference/layer_activation_parametric_relu.html - /guide/tools/keras/reference/layer_activation_parametric_relu.html - /deploy/keras/reference/layer_activation_parametric_relu.html - /tools/keras/reference/layer_activation_parametric_relu.html - /tutorials/tools/keras/reference/layer_activation_parametric_relu.html ---
It follows: f(x) = alpha * x`` for
x < 0,
f(x) = xfor
x >= 0`, where
alpha is a learned array with the same shape as x.
layer_activation_parametric_relu(
object,
alpha_initializer = "zeros",
alpha_regularizer = NULL,
alpha_constraint = NULL,
shared_axes = NULL,
input_shape = NULL,
batch_input_shape = NULL,
batch_size = NULL,
dtype = NULL,
name = NULL,
trainable = NULL,
weights = NULL
)
| object | Model or layer object |
| alpha_initializer | Initializer function for the weights. |
| alpha_regularizer | Regularizer for the weights. |
| alpha_constraint | Constraint for the weights. |
| shared_axes | The axes along which to share learnable parameters for the activation function. For example, if the incoming feature maps are from a 2D convolution with output shape (batch, height, width, channels), and you wish to share parameters across space so that each filter only has one set of parameters, set shared_axes=c(1, 2). |
| input_shape | Input shape (list of integers, does not include the samples axis) which is required when using this layer as the first layer in a model. |
| batch_input_shape | Shapes, including the batch size. For instance,
|
| batch_size | Fixed batch size for layer |
| dtype | The data type expected by the input, as a string ( |
| name | An optional name string for the layer. Should be unique in a model (do not reuse the same name twice). It will be autogenerated if it isn't provided. |
| trainable | Whether the layer weights will be updated during training. |
| weights | Initial weights for layer. |
Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification.
Other activation layers:
layer_activation_elu()
,
layer_activation_leaky_relu()
,
layer_activation_relu()
,
layer_activation_selu()
,
layer_activation_softmax()
,
layer_activation_thresholded_relu()
,
layer_activation()


Last week, the party decided to release the kidnappers hired by the Sables - after liberating them of anything valuable, of course - and continue into the Expanse. The shifting sand was difficult to walk on, so the party decided to travel in slightly more comfort than simply trudging through the sand. Ayala used the new ritual that Mikolash taught her to summon a horse for everyone. Since Charlie and Mikolash weren't confident in their riding ability, Charlie constructed a carriage so that they could ride in comfort.
While the party rode majestically through the desert and temperature steadily increased, they heard a strange shifting in the sand coming from in front of them. They prepared for combat, and were greeted by a pair of massive sand golems that burrowed through the sand to smash the party with massive slam attacks while buried. Diplo tried to dissuade his golemish brethren from attacking, but tragically his words were unable to put a stop to the violence. Ayala used her rushing water attack to smash the sand out of the way so the party could see the golems more easily, and the melee folks rode their horses into melee. The golems' unusual composition allowed them to easily grab and consume the party, both with their massive slam attacks and simply by rushing through the party's ranks, and they were able to grind the things they had consumed into dust.
The golems quickly dispatched most of the party's horses and swept through the group, disrupting the battle lines and shuffling everyone chaotically around the battlefield. Chort struggled to make his way through the desert sand, especially since he has a tendency to fall over in combat even on steady ground. However, his flaming sword was the perfect weapon for attacking the sand golems, and both he and Simon inflicted serious damage in the fight. Mikolash managed to temporarily disable one of the golems by attacking its magical construction, which attracted their attention. He escaped on the carriage for a while, but one of them managed to outrun him and cover him in dirty sand that was course and irritating and got everywhere. The party killed the golems and rescued him before long, but it was very scary.
Join us this week to continue into the Expanse and try to find the source of potentially dangerous magic!


{% extends 'base.html' %} {% block content %}
Maio is a web-based image, audio, and video app that allows you to effeciently sort hundreds of thousands of images, songs, and videos. It is Open Source, free, and out there for the world to see.
Audio statistics here.
No audio support yet...
Video statistics here.
No video support yet...


It seems there is a feature you want!
To request it, go to here and file an issue. A developer will take a look and investigate it shortly.
Thanks for reporting it!


This inspection detects
'from __future__ import'
statements which are used not in the beginning of a file.


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import uk.gov.hmrc.gatekeeper.models._ @import uk.gov.hmrc.gatekeeper.config.AppConfig @import uk.gov.hmrc.apiplatform.modules.gkauth.domain.models.LoggedInRequest @import uk.gov.hmrc.gatekeeper.controllers.routes @import uk.gov.hmrc.gatekeeper.views.models.Crumb @this(main: MainView, applicationConfig: AppConfig) @(applicationWithHistory: ApplicationWithHistory, form: Form[UnblockApplicationForm])(implicit request: LoggedInRequest[_], flash: Flash) @application = @{applicationWithHistory.application} @main( title = s"${applicationConfig.title} - Unblock Application", breadcrumbs = Seq( Crumb( "Applications", s"${routes.ApplicationController.applicationsPage(None)}", Some("data-breadcrumb-view-applications") ) ) ) { @if(flash.get("success").isDefined) {
}Enter the application name to confirm unblocking
@fieldError(form.errors, "applicationNameConfirmation")


| Book of Mormon |
Annotations |
|
Chapter 2
|
|
|
1 The words which Jacob, the brother of Nephi, spake unto
the people of Nephi, after the death of Nephi:
|
|
|
2 Now, my beloved brethren, I, Jacob, according to the
responsibility which I am under to God, to magnify mine office with
soberness, and that I might rid my garments of your sins, I come up into the
temple this day that I might declare unto you the word of God.
|
|
|
3 And ye yourselves know that I have hitherto been
diligent in the office of my calling; but I this day am weighed down with
much more desire and anxiety for the welfare of your souls than I have
hitherto been.
|
|
|
4 For behold, as yet, ye have been obedient unto the word
of the Lord, which I have given unto you.
|
|
|
5 But behold, hearken ye unto me, and know that by the
help of the all-powerful Creator of heaven and earth I can tell you
concerning your thoughts, how that ye are beginning to labor in sin, which
sin appeareth very abominable unto me, yea, and abominable unto God.
|
|
|
6 Yea, it grieveth my soul and causeth me to shrink with
shame before the presence of my Maker, that I must testify unto you
concerning the wickedness of your hearts.
|
|
|
7 And also it grieveth me that I must use so much boldness
of speech concerning you, before your wives and your children, many of whose
feelings are exceedingly tender and chaste and delicate before God, which
thing is pleasing unto God;
|
|
|
8 And it supposeth me that they have come up hither to
hear the pleasing word of God, yea, the word which healeth the wounded soul.
|
|
|
9 Wherefore, it burdeneth my soul that I should be
constrained, because of the strict commandment which I have received from
God, to admonish you according to your crimes, to enlarge the wounds of those
who are already wounded, instead of consoling and healing their wounds; and
those who have not been wounded, instead of feasting upon the pleasing word
of God have daggers placed to pierce their souls and wound their delicate
minds.
|
|
|
10 But, notwithstanding the greatness of the task, I must
do according to the strict commands of God, and tell you concerning your
wickedness and abominations, in the presence of the pure in heart, and the
broken heart, and under the glance of the piercing eye of the Almighty God.
|
|
|
11 Wherefore, I must tell you the truth according to the
plainness of the word of God. For behold, as I inquired of the Lord, thus
came the word unto me, saying: Jacob, get thou up into the temple on the
morrow, and declare the word which I shall give thee unto this people.
|
|
|
12 And now behold, my brethren, this is the word which I
declare unto you, that many of you have begun to search for gold, and for
silver, and for all manner of precious ores, in the which this land, which is
a land of promise unto you and to your seed, doth abound most plentifully.
|
Jacob 2:12-13
This is between 55 and 179 years after Lehi left Jerusalem. Let’s assume an
astounding population growth (which doesn’t seem likely considering they
established a new colony in an unfamiliar land, split into two groups early
on, had to re-establish their colony separate from the Lamanites, had “wars”
with the Lamanites, and put apparently huge resources into building a temple
like Solomon’s). But assuming a strong population growth rate, the Nephites
could have been a few hundred strong at the end of 179 years.
Consider the economics of a society of only a few hundred persons. Many of
these would be children (especially if you want to assume continued
astounding population growth). Such a small group does not lend itself to an
economy based on monetary exchange. It’s much more likely that they would
have had a barter and trade economy. What purpose would gold and silver serve
in such a small society? With so few people, it is unlikely that a
significant portion of their population could even specialize economically
let alone to the point of having some produce apparel that was normal and
some produce apparel that was costly as to induce pride in the rich who wore
it. Doesn’t this sound more like Jacob’s describing a society of tens of
thousands or more?
|
|
13 And the hand of providence hath smiled upon you most
pleasingly, that you have obtained many riches; and because some of you have
obtained more abundantly than that of your brethren ye are lifted up in the
pride of your hearts, and wear stiff necks and high heads because of the
costliness of your apparel, and persecute your brethren because ye suppose that
ye are better than they.
|
Annotation for Jacob 2:12-13 above
|
|
14 And now, my brethren, do ye suppose that God justifieth
you in this thing? Behold, I say unto you, Nay. But he condemneth you, and if
ye persist in these things his judgments must speedily come unto you.
|
|
|
15 O that he would show you that he can pierce you, and
with one glance of his eye he can smite you to the dust!
|
|
|
16 O that he would rid you from this iniquity and
abomination. And, O that ye would listen unto the word of his commands, and let
not this pride of your hearts destroy your souls!
|
|
|
17 Think of your brethren like unto yourselves, and be
familiar with all and free with your substance, that they may be rich like
unto you.
|
|
|
18 But before ye seek for riches, seek ye for the kingdom of
God.
|
|
|
19 And after ye have obtained a hope in Christ ye shall
obtain riches, if ye seek them; and ye will seek them for the intent to
do good—to clothe the naked, and to feed the hungry, and to liberate the
captive, and administer relief to the sick and the afflicted.
|
At first glance this might seem to contradict Alma 39:14,
“Seek not after riches nor the vain things of this world for behold, you
cannot carry them with you.” However, we can assume the verse in Alma is
referring only to the selfish seeking of riches, in which case, I don’t think
this would be a contradiction.
|
|
20 And now, my brethren, I have spoken unto you concerning
pride; and those of you which have afflicted your neighbor, and persecuted
him because ye were proud in your hearts, of the things which God hath given
you, what say ye of it?
|
|
|
21 Do ye not suppose that such things are abominable unto
him who created all flesh? And the one being is as precious in his sight as
the other. And all flesh is of the dust; and for the selfsame end hath he
created them, that they should keep his commandments and glorify him forever.
|
|
|
22 And now I make an end of speaking unto you concerning
this pride.  For behold, thus saith the Lord: This people begin to wax in
iniquity; they understand not the scriptures, for they seek to excuse
themselves in committing whoredoms, because of the things which were written
concerning David, and Solomon his son.
|
|
|
24 Behold, David and Solomon truly had many wives and
concubines, which thing was abominable before me, saith the Lord.
|
Jacob 2:24 tells us David and Solomon having many wives
was abominable before the Lord, yet D&C 132:39 says,
“David’s wives and concubines were given unto him of me . . . and in none of
these things did he sin against me save in the case of Uriah and his wife.”
Which way is it?
|
|
25 Wherefore, thus saith the Lord, I have led this people
forth out of the land of Jerusalem, by the power of mine arm, that I might
raise up unto me a righteous branch from the fruit of the loins of Joseph.
|
|
|
26 Wherefore, I the Lord God will not suffer that this
people shall do like unto them of old.
|
|
|
27 Wherefore, my brethren, hear me, and hearken to the
word of the Lord: For there shall not any man among you have save it be one
wife; and concubines he shall have none;
|
|
|
28 For I, the Lord God, delight in the chastity of women.
And whoredoms are an abomination before me; thus saith the Lord of Hosts.
|
|
|
29 Wherefore, this people shall keep my commandments,
saith the Lord of Hosts, or cursed be the land for their sakes.
|
|
|
30 For if I will, saith the Lord of Hosts, raise up seed
unto me, I will command my people; otherwise they shall hearken unto these
things.
|
This is congruent with the only purpose stated for
polygamy in LDS scripture, that is, the purpose of polygamy according to LDS
doctrine is to have babies which, up until recently, required having sex. To
claim that Joseph was not having sex with the virgins (or the non-virgins) he
was married to, is pointless based on this stated purpose, let alone the
evidence for Joseph’s sexual affairs with others besides his only legally recognized
wife.
(See also D&C 132:63)
According to all that I’ve read regarding the seed from polygamy, polygamous
relationships tended to have fewer offspring per female, so the purpose
didn’t seem to play out in the Church’s practice of polygamy.
|
|
31 For behold, I, the Lord, have seen the sorrow, and
heard the mourning of the daughters of my people in the land of Jerusalem,
yea, and in all the lands of my people, because of the wickedness and
abominations of their husbands.
|
|
|
32 And I will not suffer, saith the Lord of Hosts, that
the cries of the fair daughters of this people, which I have led out of the
land of Jerusalem, shall come up unto me against the men of my people, saith
the Lord of Hosts.
|
|
|
33 For they shall not lead away captive the daughters of
my people because of their tenderness, save I shall visit them with a sore
curse, even unto destruction; for they shall not commit whoredoms, like unto
them of old, saith the Lord of Hosts.
|
|
|
34 And now behold, my brethren, ye know that these
commandments were given to our father, Lehi; wherefore, ye have known them
before; and ye have come unto great condemnation; for ye have done these
things which ye ought not to have done.
|
|
|
35 Behold, ye have done greater iniquities than the
Lamanites, our brethren. Ye have broken the hearts of your tender wives, and
lost the confidence of your children, because of your bad examples before
them; and the sobbings of their hearts ascend up to God against you. And
because of the strictness of the word of God, which cometh down against you,
many hearts died, pierced with deep wounds.
|
|


Convert between weekly rate and monthly rate
Easily convert between rent per calendar month and rent per week. Enter your current rate in the appropriate text input and the other box will instantly show the corresponding value.
How the calculation is made
There are several different ways to convert between pw and pcm values. This calculator uses the following formula: PW = PCM × 12 / 365.25 × 7 This means that to get the rental rate per week, the monthly value is multiplied by 12 to get the rent per year, then divided by 365.25 (the average number of days in a year, including leap years) to get the daily value, then multiplied by 7. To convert back into months, the reverse operation is applied.


Set Operations
The following set operations take sets as arguments and return new sets. The original sets (the arguments) are unchanged.
set_intersect
set_intersect A B
This command returns the intersection of sets A and B. Duplicates are removed.
set_subtract
set_subtract A B
This command returns the members of set A that are not in set B. Duplicates in either set A or set B are removed prior to the subtraction: if A contains two copies of one entity and set B contains one copy of the same entity, the result is empty, not one copy of the entity.
set_union
set_union A B
This command returns the union of sets A and B. The result set contains unique elements, even if A or B contain multiple instances of an element.
set_unique
set_unique set
This command returns a set that contains only one instance of the entities contained in the set.
size
size set
This command returns the number of elements in the set. Applied to an element, size returns one: the element is converted into a set with one element.
print set
print expects as an argument a set of elements. For each element, it prints an index number and the element using the state set by the printformat command. It returns nothing.
Printformat
printformat [-s [-a|-d]] format_string attribute-list
Like sort, the printformat command does not take attribute expressions. The format string can contain the following placeholders that are substituted for the corresponding attribute:
• %s, replace /string with value
• %S, (same as %s), capitalize the first character
• %b, if attribute is true, print name of attribute; otherwise, print nothing.
• %B, (same as %b), capitalize the first character in the attribute
• -s, sort
• -a, sort ascending
• -d, sort descending
The %b attribute may be used to generate more meaningful output for boolean attributes like “virtual” or “static”, for example:
printformat %b%s constant name
uses main
returns
1 _IO_stderr_
2 fprintf
...
18 fclose
19 w
20 r
21 constant 1
22 constant 0
Note that print inserts a space after attributes it prints to prevent them from running together. This also allows you to combine multiple attributes easily without having extra spaces appear if the booleans do not match:
printformat %b%b%b%s macro constant funct name
Note: The format expression %s%s kind name is probably easier if you are just trying to identify the element’s type.
The -s modifier causes print to sort its results in either ascending (-a) or descending (-d) order. This also reorders the result set.
You may use string literals in the format string to decorate the output.


hello,
I have a problem. The dashboard only displays if I am logged on, it is not displaying as public.
I have set the dashboard and feeds to be public
my settings.php has arready
$public_profile_action = "view";
but it does not work.
Archived Forum |
|
public dashboardSubmitted by Max on Sun, 23/03/2014 - 09:29hello,
I have a problem. The dashboard only displays if I am logged on, it is not displaying as public.
I have set the dashboard and feeds to be public my settings.php has arready $public_profile_action = "view";
but it does not work.
» |
Re: public dashboard
How are you trying to view the dashboard - ie what address are you putting in your browser?
See my previous post on the subject - http://openenergymonitor.org/emon/node/3594
Paul
Re: public dashboard
hello,
my address is for example:
http://localhost/emoncms/dashboard/view?id=4
what is wrong?
Re: public dashboard
Read the link that I gave you above, you are not accessing it correctly.
Paul
Re: public dashboard
I tried
www.yourdomain/emoncms/your-emoncms-login-name/temp
temp is an alias, but it doesn't work
Re: public dashboard
What is the username that you use when you log in to emoncms?
Paul
Re: public dashboard
my Username: maxim
Re: public dashboard
Given your second post suggests that your are storing emoncms on your home/private network. The other thing you might want to try is
http://<IP_ADDRESS_OF_SERVER>/emoncms/<your-emoncms-login-name>/temp
Re: public dashboard
Have you tried
http://localhost/emoncms/maxim
Paul
Re: public dashboard
thanks,
it works!
Re: public dashboard
I have a similar issue. I can access my own served Emoncms dashboard remotely. The Dials, text and group sections display with no issue and the dials are dynamically updated.
However none of my charts will display. Looking at the page source from my web browser, it looks like the charts are being referenced with my internal device name of the pi, not the public domain or ip address. So clearly when you call the dashboard from outside my home - the charts can't be found.
I haven't changed any standard code on my pi based server. Have I missed a conf step?
Thanks
Re: public dashboard
Check the 'feeds' which supply data for those graphs - are the feeds marked as 'public' or 'locked'?
Paul
Re: public dashboard
If it's a multigraph then you might need to change the IP address in the database (assuming v8 is the same as earlier versions)
If you search the forum for somethings like "EmonCMS IP Graph Problem" you should find a thread or two with the instructions.
Re: public dashboard
Thanks Paul and ukmoose
Fixed it... I toggled public to private and back to public on the feeds being used. I also deleted the charts from the dashboard, and added (via the public domain/ip address in the browser) them back.
It was an odd one. Basically the dashboards was originally created via a browser address which referenced the name of my device+.lan. I then put my pi on the internet with its own IP, and domain name. The Dial worked fine, but charts were being referenced with my original domain (xxxxx.lan), and clearly couldn't be found. When I made the above adjustments it seemed to cancel out the xxxx.lan references in the url of my charts, and works perfectly now.
Appreciate the pointers.
Re: public dashboard
Hello,
I have a similar problem, but only on realtime graphs. I set feeds as public and if I'm logged I can view correctly data on my rawdata and realtime graphs. In my public view on http://wattodemo.altervista.org/emoncms/tempuser1 I can view data on rawdata graphs, but I cannot see any data in realtime graphs.
What could be the problem? Thanks
Re: public dashboard
I was using emoncms v8.2.6. I reverted to emoncms v8.0.8 and all is working correctly. In the v8.2.6 I had problem also with multigraph that was not showing tooltip. Now in v8.0.8 all is working fine.
Re: public dashboard
I have the same problem about realtime graph when not logged in. I submitted a dedicated topic about this this morning.
Olivier
Re: public dashboard
Hi Olivier, what version of emoncms are you using? In your solution, the rawdata graphs are working well when you are not logged in?
Dario
Re: public dashboard
Hi Dario,
I'm using the v8.2.6 and yes the rawdata visualization allows to display the same feed when logged in or not. So exactly the same issue that the one you describe.
here is the topic: http://openenergymonitor.org/emon/node/5335
Re: public dashboard
Thanks, waiting for any reply.
Did you experienced problem with multigraph tooltip too?
Re: public dashboard
No specific issue with the other visualization tools. I have a multigraph configured to display the power of the 3 phases and it works fine even when I'm not logged in.


If you have an inqueries please feel free to contact me on twitter @Carbonbae or through email at Carbon@k-p-b.com.


friedPaper
Home
(current)
Posts
Founders
nks
pyrebel
Search
Welcome, To friedPaper
friedPaper
About
News
Impact
Our Team
Our Content Specialists
Our Supporters
Download Our App
Volunteer
Contact Us
pyrebel
Nks
Our Team
Contribute Ideas
What We Offer
Top-3 News
Social Issues
Donate
Paypal
UPI
VPA - madhu96@dbs
PhonePe
Tez
Paytm
Scan QR Code


Description
3D block puzzles built from pixel art! Push, pull, and climb on the blocks of a PictoPull puzzle in order to reach the goal. Create your own puzzles and share them!
History
Started Development in October 2021 as a personal project. Steam page was launched around July 2022. To be released on March 1st 2023. Most of development was done part time on weekends.
Features
- 150+ puzzles spread across 10 different environments
- Fully featured level editor. Create and share your own levels via Steam Workshop
- Bonus Level Packs with 50+ levels and the ability to make and share your own level packs
Videos
Images
Logo & Icon
There are currently no logos or icons available for PictoPull. Check back later for more or contact us for specific requests!
About Screen Smith Studios
- Boilerplate
- An American indie game developemnt studio making PC games.
- More information
- More information on Screen Smith Studios, our logo & relevant media are available here.
PictoPull Credits
- Joseph Feldmann
- Game Developer, Game Designer
- Tahir Rogers
- Musician
Contact
- Inquiries
-<EMAIL_ADDRESS>- twitter.com/scrnsmthstudios


Click Me to play a note!
You might need to click a few times to disable browser anti-audio protection


Tag for insert filter component in template:
<ngx-silly-datatable-filter></ngx-silly-datatable-filter>
For use filters together with datatable component need to define reference. This reference will be used for specify in datatable component:


Runtime bytecode manipulations
Let's say you have a class with a method which raises an exception on the first line and prints something on the second. Is it possible to reach print without editing the source code or using pdb? It is indeed, we will do it by patching a method bytecode in the runtime.
Do not try this at home!
Setup
Lets start with a source code:
class Challenge: def method(self): raise Exception('fail') print('success')
Now run it:
Challenge().method() # Exception: fail
The goal is to get success in the output instead.
Method Bytecode
To get the method byte code let's copy the method itself to a new variable:
ch = Challenge.method
we can access ch the bytecode instructions string by __code__.co_code attribute:
ch.__code__.co_code # b't\x00d\x01\x83\x01\x82\x01t\x01d\x02\x83\x01\x01\x00d\x00S\x00'
Meaning behind the Bytecode
Basically each byte is an instruction. So the solution is near - we have to remove the raise part of the byte code in place and we are done. Unfortunately, it's unclear which bytes are responsible for the line of interest.
To figure it out let's disassemble the method source code:
from dis import dis dis(ch) # 3 0 LOAD_GLOBAL 0 (Exception) # 2 LOAD_CONST 1 ('fail') # 4 CALL_FUNCTION 1 # 6 RAISE_VARARGS 1 # 4 8 LOAD_GLOBAL 1 (print) # 10 LOAD_CONST 2 ('success') # 12 CALL_FUNCTION 1 # 14 POP_TOP # 16 LOAD_CONST 0 (None) # 18 RETURN_VALUE
The first four lines are responsible for loading the Exception, fail string and raising the exception. To map opcodes (e.g. RAISE_VARARGS) to bytes we can use dis.opmap dictionary:
for op in ['LOAD_GLOBAL', 'LOAD_CONST', 'CALL_FUNCTION', 'RAISE_VARARGS']: print('%-16s%s' % (op, dis.opmap[op].to_bytes(1, byteorder='little'))) # LOAD_GLOBAL b't' # LOAD_CONST b'd' # CALL_FUNCTION b'\x83' # RAISE_VARARGS b'\x82'
The bytecode now makes sense, it's a sequence of opcode and opcode argument bytes so first eight bytes are responsible for the exception raise:
t # LOAD_GLOBAL \x00 # argument d # LOAD_CONST \x01 # argument \x83 # CALL_FUNCTION \x01 # argument \x82 # RAISE_VARARGS \x01 # argument
Opcode arguments are irrelevant for our task.
Editing Method Bytecode
Knowing the meaning of each byte we can edit the original byte string. The desired literal looks like
b't\x01d\x02\x83\x01\x01\x00d\x00S\x00'
i.e. without t\x00d\x01\x83\x01\x82\x01 part responsible for raising an exception.
At this point we have a problem, one can't simply change co_code value:
ch.__code__.co_code = b't\x01d\x02\x83\x01\x01\x00d\x00S\x00' # Traceback (most recent call last): # File "<input>", line 1, in <module> # AttributeError: readonly attribute
To work around this limitation we will recreate the whole __code__ object. For this purpose let's create a utility function:
from types import CodeType def patch_function(func, co_code): fn_code = func.__code__ func.__code__ = CodeType( fn_code.co_argcount, fn_code.co_kwonlyargcount, fn_code.co_nlocals, fn_code.co_stacksize, fn_code.co_flags, co_code, fn_code.co_consts, fn_code.co_names, fn_code.co_varnames, fn_code.co_filename, fn_code.co_name, fn_code.co_firstlineno, fn_code.co_lnotab, fn_code.co_freevars, fn_code.co_cellvars, )
What it does is basically creates a new __code__ for function by copying all old function __code__ attributes except co_code which is replaced with the desired value. The list of CodeType arguments can be retrieved from e.g. typeshed.
Patching Method in Runtime
The last part, we have a new bytecode, let's patch the original method and run it:
co_code = b't\x01d\x02\x83\x01\x01\x00d\x00S\x00' patch_function(ch, co_code) ch(Challenge()) # We have to pass a Challenge instance as a self parameter # success
Extra Links
- "Python Byte Code Hacks" by Vijay Kumar
- "How to patch Python bytecode" by Artem Golubin
Comments
Comments powered by Disqus


Multiple scan statistic with variable window for one dimension data and scan statistic based on connected components in 2D or 3D.
| Version: | 1.1.1 |
| Depends: | R (≥ 3.0.2), snowfall (≥ 1.84-6) |
| Imports: | ape, sp, methods, rgl, utils, graphics, grDevices, stats |
| Published: | 2016-10-14 |
| Author: | Robin Loche, Benoit Giron, David Abrial, Lionel Cucala, Myriam Charras-Garrido, Jocelyn De-Goer |
| Maintainer: | David Abrial <graphscan at clermont.inra.fr> |
| License: | GPL-2 | GPL-3 |
| NeedsCompilation: | yes |
| Materials: | NEWS |
| CRAN checks: | graphscan results |
| Reference manual: | graphscan.pdf |
| Package source: | graphscan_1.1.1.tar.gz |
| Windows binaries: | r-devel: graphscan_1.1.1.zip, r-release: graphscan_1.1.1.zip, r-oldrel: graphscan_1.1.1.zip |
| OS X binaries: | r-release: graphscan_1.1.1.tgz, r-oldrel: graphscan_1.1.1.tgz |
| Old sources: | graphscan archive |
Please use the canonical form https://CRAN.R-project.org/package=graphscan to link to this page.


Cambodia's Sam Rainsy faces hurdles as he attempts to return home
Exiled opposition leader was barred from boarding a Thai Airways flight to Bangkok on Thursday afternoon.
by Andrew NachemsonPhnom Penh, Cambodia It appears November 9 will come and go without Cambodia's opposition making its promised return after leader Sam Rainsy failed to board a flight from Paris to Thailand on Thursday.
Rainsy, acting president of the Cambodia National Rescue Party (CNRP), said he had a ticket to Bangkok arriving on November 8, and from there would enter Cambodia by land the following day.
More:
Thai Prime Minister Prayut Chan-ocha, however, ordered that Rainsy not be permitted to enter the country.
"They say they have received very high-up instruction now to allow me to board," Rainsy told reporters at Charles de Gaulle airport, claiming he was barred from boarding his Thai Airways flight.
An airline employee told the Associated Press news agency that Rainsy did not have a valid ticket.
Earlier this week, Rainsy posted a photo on social media of his ticket, along with his booking reference.
The booking, checked by Al Jazeera, appeared to show that Rainsy had reserved a flight leaving Paris November 9, not November 7.
Ear Sophal, a Cambodian-American associate professor of World Affairs and Diplomacy at Occidental College, said a third party could have changed Rainsy's ticket after he tweeted it, or the airline may have considered his ticket invalid because he was barred from the country.
"I have no reason to doubt his true and genuine desire to return to Cambodia and I see no evidence he showed up without a ticket," he said, adding that Rainsy and Sochua should simply "keep trying" to return.
Multiple Cambodian social media users did question why Rainsy chose to fly with state-owned Thai Airways after Chan-ocha's statement.
Malaysia releases Mu Sochua
Meanwhile, CNRP vice president Mu Sochua was detained while entering Malaysia on Wednesday night, before eventually being released on Thursday evening.
Prime Minister Hun Sen had earlier requested that all ASEAN countries arrest CNRP leaders and deport them to Cambodia.
Sochua was previously detained in Thailand, before being deported to the US where she is also a citizen.
The CNRP was dissolved in 2017 after making significant gains in that year's local commune elections, allowing Prime Minister Hun Sen to claim all 125 seats in Parliament in the 2018 national election.
Party president Kem Sokha remains under house arrest on treason charges.
Rainsy and Sochua both pledged to return to Cambodia on November 9, despite facing charges widely seen as politically motivated, in order to lead a peaceful uprising against the government.
In a message to Al Jazeera shortly after her release in Kuala Lumpur, Sochua said she is "stronger than before."
'We won't give up'
Two other CNRP youth activists were detained in Kuala Lumpur earlier on Wednesday, and both were released alongside Sochua.
"I found the two youths in detention and we succeeded to all get out," she said, adding that she still plans to return to Cambodia by land.
"We won't give up."
In a statement to Al Jazeera, Phil Robertson, deputy director of Human Rights Watch's Asia division, said her detention was "ludicrous and unacceptable".
The ASEAN Parliamentarians for Human Rights also condemned her detention and welcomed her release.
Mu Sochua, Vice President of the Cambodia National Rescue Party, was also detained in Kuala Lumpur on Wednesday night before she was released on Thursday [Achmad Ibrahim/AP]
"We hope that this will inspire Thailand to allow Sam Rainsy into the country and all other ASEAN countries to respect people's fundamental rights," said Philippine legislator Teddy Baguilat.
Hun Sen deploys troops
While professing a desire to arrest Rainsy and other CNRP leaders, Hun Sen has gone to great lengths to ensure that they cannot enter the country.
He has deployed thousands of troops to the Thai border, issued arrest warrants to countries in the region, and threatened any airline that carries Rainsy to Cambodia with legal punishment.
Around 50 opposition supporters have also been arrested in Cambodia in recent months, for allegedly supporting a coup.
"If he wants to arrest him then why not let him back into the country? It's very laughable," said Vanna Hay, the deputy secretary-general of CNRP Overseas.
Speaking in Yangon on Thursday, Hay said he was disappointed that some ASEAN countries have interfered by attempting to block the CNRP's return, and thanked Myanmar for letting him come.
"This is between me and Hun Sen. Not me and Myanmar government and Hun Sen. So I hope that Myanmar government will not arrest me tonight," he said.
Hay flew to Bangkok later that day, where he planned to meet Rainsy. "If he does not go back by November 9 the people will lose hope," he said.
But Sophal said the Cambodian people should not give up just because the "symbols" of resistance were prevented from returning.
"There are millions of people in Cambodia who hold their future in their own hands," he said.
Yi Yeth, a 38-year-old tuk-tuk driver in Phnom Penh, said he doesn't expect Rainsy to arrive on November 9 any more, but he does not blame him either.
"He tried to come to Thailand, but Thai government not allowed him to enter their country. For me, even two or three months later I will still want him to come back," he said.
Yeth said the current "one-party" government "doesn't care about the people" and Cambodia needs a return to multi-party democracy to ensure that the government has an incentive to work for the people.
Yon Sineat reported from Phnom Penh, while Andrew Nachem reported from Bangkok.