- toCharArray(InputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of an InputStream
as a character array
using the specified character encoding.
- toCharArray(Reader) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of a Reader
as a character array.
- toCharset(Charset) - Static method in class org.apache.commons.io.Charsets
-
Returns the given Charset or the default Charset if the given Charset is null.
- toCharset(String) - Static method in class org.apache.commons.io.Charsets
-
Returns a Charset for the named charset.
- toFile(URL) - Static method in class org.apache.commons.io.FileUtils
-
Convert from a URL
to a File
.
- toFiles(URL[]) - Static method in class org.apache.commons.io.FileUtils
-
Converts each of an array of URL
to a File
.
- toInputStream(CharSequence) - Static method in class org.apache.commons.io.IOUtils
-
- toInputStream(CharSequence, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Converts the specified CharSequence to an input stream, encoded as bytes
using the specified character encoding.
- toInputStream(CharSequence, String) - Static method in class org.apache.commons.io.IOUtils
-
Converts the specified CharSequence to an input stream, encoded as bytes
using the specified character encoding.
- toInputStream(String) - Static method in class org.apache.commons.io.IOUtils
-
- toInputStream(String, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Converts the specified string to an input stream, encoded as bytes
using the specified character encoding.
- toInputStream(String, String) - Static method in class org.apache.commons.io.IOUtils
-
Converts the specified string to an input stream, encoded as bytes
using the specified character encoding.
- toInputStream() - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Gets the current contents of this byte stream as a Input Stream.
- toList(IOFileFilter...) - Static method in class org.apache.commons.io.filefilter.FileFilterUtils
-
Create a List of file filters.
- toString() - Method in class org.apache.commons.io.ByteOrderMark
-
Provide a String representation of the BOM.
- toString() - Method in class org.apache.commons.io.comparator.CompositeFileComparator
-
String representation of this file comparator.
- toString() - Method in class org.apache.commons.io.comparator.ExtensionFileComparator
-
String representation of this file comparator.
- toString() - Method in class org.apache.commons.io.comparator.NameFileComparator
-
String representation of this file comparator.
- toString() - Method in class org.apache.commons.io.comparator.PathFileComparator
-
String representation of this file comparator.
- toString() - Method in class org.apache.commons.io.comparator.SizeFileComparator
-
String representation of this file comparator.
- toString() - Method in class org.apache.commons.io.FileDeleteStrategy
-
Gets a string describing the delete strategy.
- toString() - Method in class org.apache.commons.io.filefilter.AbstractFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.AgeFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.AndFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.DelegateFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.MagicNumberFileFilter
-
Returns a String representation of the file filter, which includes the
magic number bytes and byte offset.
- toString() - Method in class org.apache.commons.io.filefilter.NameFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.NotFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.OrFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.PrefixFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.SizeFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.SuffixFileFilter
-
Provide a String representaion of this file filter.
- toString() - Method in class org.apache.commons.io.filefilter.WildcardFileFilter
-
Provide a String representation of this file filter.
- toString() - Method in class org.apache.commons.io.input.BoundedInputStream
-
Invokes the delegate's toString()
method.
- toString() - Method in class org.apache.commons.io.input.CharSequenceReader
-
Return a String representation of the underlying
character sequence.
- toString() - Method in enum org.apache.commons.io.IOCase
-
Gets a string describing the sensitivity.
- toString(InputStream) - Static method in class org.apache.commons.io.IOUtils
-
- toString(InputStream, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of an InputStream
as a String
using the specified character encoding.
- toString(InputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of an InputStream
as a String
using the specified character encoding.
- toString(Reader) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of a Reader
as a String.
- toString(URI) - Static method in class org.apache.commons.io.IOUtils
-
- toString(URI, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents at the given URI.
- toString(URI, String) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents at the given URI.
- toString(URL) - Static method in class org.apache.commons.io.IOUtils
-
- toString(URL, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents at the given URL.
- toString(URL, String) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents at the given URL.
- toString(byte[]) - Static method in class org.apache.commons.io.IOUtils
-
- toString(byte[], String) - Static method in class org.apache.commons.io.IOUtils
-
Gets the contents of a byte[]
as a String
using the specified character encoding.
- toString() - Method in class org.apache.commons.io.monitor.FileAlterationObserver
-
Provide a String representation of this observer.
- toString() - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
- toString(String) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Gets the curent contents of this byte stream as a string
using the specified encoding.
- toString(Charset) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Gets the curent contents of this byte stream as a string
using the specified encoding.
- toString() - Method in class org.apache.commons.io.output.StringBuilderWriter
-
- touch(File) - Static method in class org.apache.commons.io.FileUtils
-
Implements the same behaviour as the "touch" utility on Unix.
- toURLs(File[]) - Static method in class org.apache.commons.io.FileUtils
-
Converts each of an array of File
to a URL
.
- track(File, Object) - Static method in class org.apache.commons.io.FileCleaner
-
- track(File, Object, FileDeleteStrategy) - Static method in class org.apache.commons.io.FileCleaner
-
- track(String, Object) - Static method in class org.apache.commons.io.FileCleaner
-
- track(String, Object, FileDeleteStrategy) - Static method in class org.apache.commons.io.FileCleaner
-
- track(File, Object) - Method in class org.apache.commons.io.FileCleaningTracker
-
Track the specified file, using the provided marker, deleting the file
when the marker instance is garbage collected.
- track(File, Object, FileDeleteStrategy) - Method in class org.apache.commons.io.FileCleaningTracker
-
Track the specified file, using the provided marker, deleting the file
when the marker instance is garbage collected.
- track(String, Object) - Method in class org.apache.commons.io.FileCleaningTracker
-
Track the specified file, using the provided marker, deleting the file
when the marker instance is garbage collected.
- track(String, Object, FileDeleteStrategy) - Method in class org.apache.commons.io.FileCleaningTracker
-
Track the specified file, using the provided marker, deleting the file
when the marker instance is garbage collected.
- TRUE - Static variable in class org.apache.commons.io.filefilter.TrueFileFilter
-
Singleton instance of true filter.
- trueFileFilter() - Static method in class org.apache.commons.io.filefilter.FileFilterUtils
-
Returns a filter that always returns true.
- TrueFileFilter - Class in org.apache.commons.io.filefilter
-
A file filter that always returns true.
- TrueFileFilter() - Constructor for class org.apache.commons.io.filefilter.TrueFileFilter
-
Restrictive constructor.
- waitFor(File, int) - Static method in class org.apache.commons.io.FileUtils
-
Waits for NFS to propagate a file creation, imposing a timeout.
- walk(File, Collection<T>) - Method in class org.apache.commons.io.DirectoryWalker
-
Internal method that walks the directory hierarchy in a depth-first manner.
- WildcardFileFilter - Class in org.apache.commons.io.filefilter
-
Filters files using the supplied wildcards.
- WildcardFileFilter(String) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new case-sensitive wildcard filter for a single wildcard.
- WildcardFileFilter(String, IOCase) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new wildcard filter for a single wildcard specifying case-sensitivity.
- WildcardFileFilter(String[]) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new case-sensitive wildcard filter for an array of wildcards.
- WildcardFileFilter(String[], IOCase) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new wildcard filter for an array of wildcards specifying case-sensitivity.
- WildcardFileFilter(List<String>) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new case-sensitive wildcard filter for a list of wildcards.
- WildcardFileFilter(List<String>, IOCase) - Constructor for class org.apache.commons.io.filefilter.WildcardFileFilter
-
Construct a new wildcard filter for a list of wildcards specifying case-sensitivity.
- WildcardFilter - Class in org.apache.commons.io.filefilter
-
Deprecated.
Use WilcardFileFilter. Deprecated as this class performs directory
filtering which it shouldn't do, but that can't be removed due to compatability.
- WildcardFilter(String) - Constructor for class org.apache.commons.io.filefilter.WildcardFilter
-
Deprecated.
Construct a new case-sensitive wildcard filter for a single wildcard.
- WildcardFilter(String[]) - Constructor for class org.apache.commons.io.filefilter.WildcardFilter
-
Deprecated.
Construct a new case-sensitive wildcard filter for an array of wildcards.
- WildcardFilter(List<String>) - Constructor for class org.apache.commons.io.filefilter.WildcardFilter
-
Deprecated.
Construct a new case-sensitive wildcard filter for a list of wildcards.
- wildcardMatch(String, String) - Static method in class org.apache.commons.io.FilenameUtils
-
Checks a filename to see if it matches the specified wildcard matcher,
always testing case-sensitive.
- wildcardMatch(String, String, IOCase) - Static method in class org.apache.commons.io.FilenameUtils
-
Checks a filename to see if it matches the specified wildcard matcher
allowing control over case-sensitivity.
- wildcardMatchOnSystem(String, String) - Static method in class org.apache.commons.io.FilenameUtils
-
Checks a filename to see if it matches the specified wildcard matcher
using the case rules of the system.
- WindowsLineEndingInputStream - Class in org.apache.commons.io.input
-
A filtering input stream that ensures the content will have windows line endings, CRLF.
- WindowsLineEndingInputStream(InputStream, boolean) - Constructor for class org.apache.commons.io.input.WindowsLineEndingInputStream
-
Create an input stream that filters another stream
- write(File, CharSequence) - Static method in class org.apache.commons.io.FileUtils
-
- write(File, CharSequence, boolean) - Static method in class org.apache.commons.io.FileUtils
-
- write(File, CharSequence, Charset) - Static method in class org.apache.commons.io.FileUtils
-
Writes a CharSequence to a file creating the file if it does not exist.
- write(File, CharSequence, String) - Static method in class org.apache.commons.io.FileUtils
-
Writes a CharSequence to a file creating the file if it does not exist.
- write(File, CharSequence, Charset, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes a CharSequence to a file creating the file if it does not exist.
- write(File, CharSequence, String, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes a CharSequence to a file creating the file if it does not exist.
- write(byte[], OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
Writes bytes from a byte[]
to an OutputStream
.
- write(byte[], Writer) - Static method in class org.apache.commons.io.IOUtils
-
- write(byte[], Writer, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Writes bytes from a byte[]
to chars on a Writer
using the specified character encoding.
- write(byte[], Writer, String) - Static method in class org.apache.commons.io.IOUtils
-
Writes bytes from a byte[]
to chars on a Writer
using the specified character encoding.
- write(char[], Writer) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a char[]
to a Writer
- write(char[], OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
- write(char[], OutputStream, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a char[]
to bytes on an
OutputStream
using the specified character encoding.
- write(char[], OutputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a char[]
to bytes on an
OutputStream
using the specified character encoding.
- write(CharSequence, Writer) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a CharSequence
to a Writer
.
- write(CharSequence, OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
- write(CharSequence, OutputStream, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a CharSequence
to bytes on an
OutputStream
using the specified character encoding.
- write(CharSequence, OutputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a CharSequence
to bytes on an
OutputStream
using the specified character encoding.
- write(String, Writer) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a String
to a Writer
.
- write(String, OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
- write(String, OutputStream, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a String
to bytes on an
OutputStream
using the specified character encoding.
- write(String, OutputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a String
to bytes on an
OutputStream
using the specified character encoding.
- write(StringBuffer, Writer) - Static method in class org.apache.commons.io.IOUtils
-
Deprecated.
replaced by write(CharSequence, Writer)
- write(StringBuffer, OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
Deprecated.
replaced by write(CharSequence, OutputStream)
- write(StringBuffer, OutputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Deprecated.
replaced by write(CharSequence, OutputStream, String)
- write(int) - Method in class org.apache.commons.io.output.AppendableOutputStream
-
Write a character to the underlying appendable.
- write(int) - Method in class org.apache.commons.io.output.BrokenOutputStream
-
Throws the configured exception.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Write the bytes to byte array.
- write(int) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Write a byte to byte array.
- write(InputStream) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Writes the entire contents of the specified input stream to this
byte stream.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.ChunkedOutputStream
-
Writes the data buffer in chunks to the underlying stream
- write(char[], int, int) - Method in class org.apache.commons.io.output.ChunkedWriter
-
writes the data buffer in chunks to the underlying writer
- write(int) - Method in class org.apache.commons.io.output.ClosedOutputStream
-
Throws an
IOException
to indicate that the stream is closed.
- write(int) - Method in class org.apache.commons.io.output.DemuxOutputStream
-
Writes byte to stream associated with current thread.
- write(int) - Method in class org.apache.commons.io.output.FileWriterWithEncoding
-
Write a character.
- write(char[]) - Method in class org.apache.commons.io.output.FileWriterWithEncoding
-
Write the characters from an array.
- write(char[], int, int) - Method in class org.apache.commons.io.output.FileWriterWithEncoding
-
Write the specified characters from an array.
- write(String) - Method in class org.apache.commons.io.output.FileWriterWithEncoding
-
Write the characters from a string.
- write(String, int, int) - Method in class org.apache.commons.io.output.FileWriterWithEncoding
-
Write the specified characters from a string.
- write(int) - Method in class org.apache.commons.io.output.LockableFileWriter
-
Write a character.
- write(char[]) - Method in class org.apache.commons.io.output.LockableFileWriter
-
Write the characters from an array.
- write(char[], int, int) - Method in class org.apache.commons.io.output.LockableFileWriter
-
Write the specified characters from an array.
- write(String) - Method in class org.apache.commons.io.output.LockableFileWriter
-
Write the characters from a string.
- write(String, int, int) - Method in class org.apache.commons.io.output.LockableFileWriter
-
Write the specified characters from a string.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.NullOutputStream
-
Does nothing - output to /dev/null
.
- write(int) - Method in class org.apache.commons.io.output.NullOutputStream
-
Does nothing - output to /dev/null
.
- write(byte[]) - Method in class org.apache.commons.io.output.NullOutputStream
-
Does nothing - output to /dev/null
.
- write(int) - Method in class org.apache.commons.io.output.NullWriter
-
Does nothing - output to /dev/null
.
- write(char[]) - Method in class org.apache.commons.io.output.NullWriter
-
Does nothing - output to /dev/null
.
- write(char[], int, int) - Method in class org.apache.commons.io.output.NullWriter
-
Does nothing - output to /dev/null
.
- write(String) - Method in class org.apache.commons.io.output.NullWriter
-
Does nothing - output to /dev/null
.
- write(String, int, int) - Method in class org.apache.commons.io.output.NullWriter
-
Does nothing - output to /dev/null
.
- write(int) - Method in class org.apache.commons.io.output.ProxyOutputStream
-
Invokes the delegate's write(int)
method.
- write(byte[]) - Method in class org.apache.commons.io.output.ProxyOutputStream
-
Invokes the delegate's write(byte[])
method.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.ProxyOutputStream
-
Invokes the delegate's write(byte[])
method.
- write(int) - Method in class org.apache.commons.io.output.ProxyWriter
-
Invokes the delegate's write(int)
method.
- write(char[]) - Method in class org.apache.commons.io.output.ProxyWriter
-
Invokes the delegate's write(char[])
method.
- write(char[], int, int) - Method in class org.apache.commons.io.output.ProxyWriter
-
Invokes the delegate's write(char[], int, int)
method.
- write(String) - Method in class org.apache.commons.io.output.ProxyWriter
-
Invokes the delegate's write(String)
method.
- write(String, int, int) - Method in class org.apache.commons.io.output.ProxyWriter
-
Invokes the delegate's write(String)
method.
- write(String) - Method in class org.apache.commons.io.output.StringBuilderWriter
-
- write(char[], int, int) - Method in class org.apache.commons.io.output.StringBuilderWriter
-
- write(byte[]) - Method in class org.apache.commons.io.output.TeeOutputStream
-
Write the bytes to both streams.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.TeeOutputStream
-
Write the specified bytes to both streams.
- write(int) - Method in class org.apache.commons.io.output.TeeOutputStream
-
Write a byte to both streams.
- write(int) - Method in class org.apache.commons.io.output.ThresholdingOutputStream
-
Writes the specified byte to this output stream.
- write(byte[]) - Method in class org.apache.commons.io.output.ThresholdingOutputStream
-
Writes b.length
bytes from the specified byte array to this
output stream.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.ThresholdingOutputStream
-
Writes len
bytes from the specified byte array starting at
offset off
to this output stream.
- write(byte[], int, int) - Method in class org.apache.commons.io.output.WriterOutputStream
-
Write bytes from the specified byte array to the stream.
- write(byte[]) - Method in class org.apache.commons.io.output.WriterOutputStream
-
Write bytes from the specified byte array to the stream.
- write(int) - Method in class org.apache.commons.io.output.WriterOutputStream
-
Write a single byte to the stream.
- write(char[], int, int) - Method in class org.apache.commons.io.output.XmlStreamWriter
-
Write the characters to the underlying writer, detecing encoding.
- writeByteArrayToFile(File, byte[]) - Static method in class org.apache.commons.io.FileUtils
-
Writes a byte array to a file creating the file if it does not exist.
- writeByteArrayToFile(File, byte[], boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes a byte array to a file creating the file if it does not exist.
- writeByteArrayToFile(File, byte[], int, int) - Static method in class org.apache.commons.io.FileUtils
-
Writes len
bytes from the specified byte array starting
at offset off
to a file, creating the file if it does
not exist.
- writeByteArrayToFile(File, byte[], int, int, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes len
bytes from the specified byte array starting
at offset off
to a file, creating the file if it does
not exist.
- writeChunked(byte[], OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
Writes bytes from a byte[]
to an OutputStream
using chunked writes.
- writeChunked(char[], Writer) - Static method in class org.apache.commons.io.IOUtils
-
Writes chars from a char[]
to a Writer
using chunked writes.
- writeLines(File, String, Collection<?>) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, String, Collection<?>, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line, optionally appending.
- writeLines(File, Collection<?>) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, Collection<?>, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, String, Collection<?>, String) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, String, Collection<?>, String, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, Collection<?>, String) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(File, Collection<?>, String, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes the toString()
value of each item in a collection to
the specified File
line by line.
- writeLines(Collection<?>, String, OutputStream) - Static method in class org.apache.commons.io.IOUtils
-
- writeLines(Collection<?>, String, OutputStream, Charset) - Static method in class org.apache.commons.io.IOUtils
-
Writes the toString()
value of each item in a collection to
an OutputStream
line by line, using the specified character
encoding and the specified line ending.
- writeLines(Collection<?>, String, OutputStream, String) - Static method in class org.apache.commons.io.IOUtils
-
Writes the toString()
value of each item in a collection to
an OutputStream
line by line, using the specified character
encoding and the specified line ending.
- writeLines(Collection<?>, String, Writer) - Static method in class org.apache.commons.io.IOUtils
-
Writes the toString()
value of each item in a collection to
a Writer
line by line, using the specified line ending.
- WriterOutputStream - Class in org.apache.commons.io.output
-
OutputStream
implementation that transforms a byte stream to a
character stream using a specified charset encoding and writes the resulting
stream to a
Writer
.
- WriterOutputStream(Writer, CharsetDecoder) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer, CharsetDecoder, int, boolean) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer, Charset, int, boolean) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer, Charset) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer, String, int, boolean) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer, String) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- WriterOutputStream(Writer) - Constructor for class org.apache.commons.io.output.WriterOutputStream
-
- writeStringToFile(File, String, Charset) - Static method in class org.apache.commons.io.FileUtils
-
Writes a String to a file creating the file if it does not exist.
- writeStringToFile(File, String, String) - Static method in class org.apache.commons.io.FileUtils
-
Writes a String to a file creating the file if it does not exist.
- writeStringToFile(File, String, Charset, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes a String to a file creating the file if it does not exist.
- writeStringToFile(File, String, String, boolean) - Static method in class org.apache.commons.io.FileUtils
-
Writes a String to a file creating the file if it does not exist.
- writeStringToFile(File, String) - Static method in class org.apache.commons.io.FileUtils
-
- writeStringToFile(File, String, boolean) - Static method in class org.apache.commons.io.FileUtils
-
- writeSwappedDouble(byte[], int, double) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "double" value to a byte array at a given offset.
- writeSwappedDouble(OutputStream, double) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "double" value to an OutputStream.
- writeSwappedFloat(byte[], int, float) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "float" value to a byte array at a given offset.
- writeSwappedFloat(OutputStream, float) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "float" value to an OutputStream.
- writeSwappedInteger(byte[], int, int) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "int" value to a byte array at a given offset.
- writeSwappedInteger(OutputStream, int) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "int" value to an OutputStream.
- writeSwappedLong(byte[], int, long) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "long" value to a byte array at a given offset.
- writeSwappedLong(OutputStream, long) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "long" value to an OutputStream.
- writeSwappedShort(byte[], int, short) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "short" value to a byte array at a given offset.
- writeSwappedShort(OutputStream, short) - Static method in class org.apache.commons.io.EndianUtils
-
Writes a "short" value to an OutputStream.
- writeTo(OutputStream) - Method in class org.apache.commons.io.output.ByteArrayOutputStream
-
Writes the entire contents of this byte stream to the
specified output stream.
- writeTo(OutputStream) - Method in class org.apache.commons.io.output.DeferredFileOutputStream
-
Writes the data from this output stream to the specified output stream,
after it has been closed.


This project deals with the development of optimization tools based on metaheuristic procedures. Its objecive is the resolution of hard optimization problems and the development of a comuputer alded decision support system. Complex systems appear in different contexts, from the economy to the enginery and in most of the cases they combine optimization and simulation. In this project we will complete the sofware generated in the previous project for the optimization of different models with the objective of providing solutions to a wide range of theoretical and applied problems.
We target two families of hard optimization problems: (1) those based on structured models, and (2) those in which the model is not completely known. In the former, in which a whole description of the problem is known, we face some of the most applied models in practice, proposing efficient solution methods based on metaheuristic procedures. In the second case, in which the model is not completely defined, we will develop evolutionary methods that incorporate learning strategies for an efficient search of the solution space. In most of these problems, the evaluation of the objective function consist of a simulation procedure, resulting in an extremely time consuming operation. This project will face mainly two outputs: firstly a software program which will provide high quality solutions and secondly publications in the most prestigious journals of the area.
Design by Brandán José González García and Sergio Casatorres Hernández


A Hard Day's Night (1964)
Grade: 90
Movies starring Rock and Roll stars have rarely been treated seriously by the public. Usually it is for good reason. Even the young audience is glad when the dialogue stops and the artist or group performs a song, back in their element again. While establishment artists like Bing Crosby found a home in the movies, outsiders like Elvis Presley were given the most trivial scripts and songs, and the goal was to make the film as quickly and cheaply as possible since the core audience would attend no matter the quality.
"A Hard Day's Night", starring the Beatles, did not change this perception, but the film demonstrated that musicians could act, especially if they just played themselves. John Lennon is mischevious, Paul McCartney is sunny, Ringo Starr is sad-faced, and George Harrisson is ironic. The clever script gives them ample opportunity to lampoon the establishment that sometimes fawns over, and other times patronizes them.
Richard Lester directed and stocked with film with excellent British character actors. We find little-known Wilfrid Brambell stealing the show as Paul's grandfather. He may look "very clean" but he soon proves to be a "keen mixer".  He has a wonderful voice that is the masculine equivalent of a witch's cackle.
Another find is Victor Spinetti as the stessed-out producer of a TV show that stars the Beatles, who won't conform to his petty rules. A classic moment has Spinetti panicking when Brambell suddenly appears on stage during an opera telecast.
The plot has the Beatles tightly scheduled by their managers and gophers, always to and from a show, on a train or in a hotel room. It's no wonder that when they have a moment of free time, they run amock in a field. They are rarely seen without a suit and slacks.
Ringo gets the most screen time of the Beatles. Brambell berates him for reading a book, and gives him the dubious advice that he should go "parading". Ringo takes his advice, disguises himself with a trenchcoat, and, walking the streets alone, causes mischief, tailed by a "bobby" (A British policeman, which apparently lined the streets of London in 1964). Ringo has a humorous sequence involving a lady and his raincoat, which ends with her falling in a hole, and Ringo held by the police. At the station he meets Brambell, who has been brought in for causing a riot peddling pictures of the fab four. Brambell is at his best railing against the policemen, advising Ringo to protect his "briskets" when he is beaten to the floor, etc., when the policemen are so docile that they offer tea.
Both Ringo and Brambell are rescued from the police by the remaining Beatles, who must make Spinetti's TV show. Their performance on the show is the one disappointing part of the film, since they mime to the studio versions. Turn on the mikes and turn off the tape! They also play the same songs that we heard earlier in the film, although it does help that they still sound great the second time around.
"A Hard Day's Night" is the Beatles best film, a little better than "Help" which relied more on physical comedy, and much better than "Magical Mystery Tour" which was just plain weird.
http://members.tripod.com/~Brian_Koller/movies.html
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


Embedded Ansible — Part 2, Passing Parameters Into A Playbook
Part one of this series described the manageiq_automate and manageiq_vmdb roles that can be used by a playbook to interact with a ManageIQ workflow.
This article will describe how to specify the inventory hosts on which to run an embedded Ansible playbook, and how to pass parameters into Ansible playbook services and methods.
Inventory Hosts
Embedded Ansible does not support the concept of inventory groups, and so a list of IPv4 addresses or resolvable hostnames must be passed to the playbook at run-time.
For playbook services a list of default target hosts can be specified when the service is created, and optionally overridden at order-time using the Hosts service dialog element, as follows:
For playbook methods one or more target hosts can be specified in the Hosts dialog when the method is created. This can be a list of IP addresses or hostnames, or a substitution string, for example:
The substitution string enables the target hosts value to be dynamically translated at run-time and passed to the playbook, enhancing the flexibility of the playbook method.
Ansible Playbook Input Parameters
To benefit from reusability and flexibility, playbooks are often written to work with extra_var variables passed as input parameters. Embedded Ansible playbook services and playbook methods handle input parameters slightly differently.
Playbook Service Input Parameters
Input parameters for playbook services are defined in the Variables & Default Values section of the service definition WebUI page, as follows:
These variables and their string values are passed into the playbook as extra_vars when the playbook is launched.
The default values can optionally be overridden from a service dialog when the service is ordered. Any of the service dialog’s elements that are named with the prefix “param_” will be passed as extra_vars to the playbook (with the string “param_” removed).
If a playbook service is ordered programmatically from Ruby then input parameters can be passed via the options hash to the create_service_provision_request
call, for example:
CREDENTIAL_CLASS = "ManageIQ_Providers_EmbeddedAnsible_AutomationManager_MachineCredential"
TEMPLATE_CLASS = "ServiceTemplate"
service_template = $evm.vmdb(TEMPLATE_CLASS).where(:name => 'Install a Package').first
credential = $evm.vmdb(CREDENTIAL_CLASS).where(:name => 'Root Password').first
options = {
"credential" => credential.id,
"hosts" => "infra1.cloud.uk.bit63.com",
"param_package" => "mlocate"
}
$evm.execute('create_service_provision_request', service_template, options)
Playbook Method Input Parameters (aka Method Parameters)
The Automate Explorer allows for input parameters (also called method parameters) to be defined when an Ansible playbook method is created. The parameters can be any of the standard data types such as string, boolean, integer, password, etc., for example:
Input parameters are passed to the playbook as extra_vars, so can be referred to in the playbook just as any other variable. As an example the first input parameter in this screenshot can be accessed using the
"{{ ipam_url }}"
syntax.
As can be seen from the ipam_user parameter name, the value of an input parameter for an Ansible playbook method can be a dynamic variable read from a substitution string at run-time (this substitution is not available for a playbook service).
In this example a prior Ruby method in the workflow would have saved the username into $evm.root[‘ipam_user’]
.
Note: The automation engine’s substitution syntax is
${object#attribute_name}
where object can be “/” for the root object, or “” (or “.”) for the current object. For example a substitution string of${/#dialog_vm_name}
would be given the value of$evm.root['dialog_vm_name']
at run-time. A substitution string of${#username}
would be given the value of$evm.object['username']
at run-time.
Querying Input Parameters
There are two functions in the manageiq-automate role that can be used to list or query whether an input or method parameter exists. These are:
get_method_parameters
method_parameter_exists
Their use is illustrated as follows:
get_method_parameters
The get_method_parameters function reads the full list of input parameters with their values, as illustrated below:
- name: Get the full list of method parameters (get_method_parameters)
manageiq_automate:
workspace: "{{ workspace }}"
get_method_parameters: yes
register: get_method_parameters
- debug: msg="Result:"
The output is as follows:
TASK [Get the full list of method parameters (get_method_parameters)] ***************
ok: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "Result:{u'ipam_user': u'ipam_admin', u'default_passwd': u'password::********', u'ipam_url': u'https://ipam.company.org', u'manageiq_validate_certs': False}"
}
method_parameter_exists
The method_parameter_exists function checks if a method parameter with a given name exists, for example:
- name: Check if a method parameter called 'ipam_url' exists (method_parameter_exists)
manageiq_automate:
workspace: "{{ workspace }}"
method_parameter_exists:
parameter: "ipam_url"
register: method_parameter_exists
- debug: msg="Result:"
The output is as follows:
TASK [Check if a method parameter called 'ipam_url' exists (method_parameter_exists)] ***
ok: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "Result:True"
}
It should be noted that the return from each of these tasks (stored by the register keyword) is a hash, and value of the return is referenced using the value key of this hash, for example method_parameter_exists.value
.
Reading Service Dialog Values as Input Parameters
It is often the case that the values input into a service dialog should be passed to an Ansible playbook method somewhere in the workflow. A typical example is when calling an Ansible playbook method from the VM Provision state machine, where the VM provision has been initiated from a service catalog.
The service dialog entries are stored in the service request object’s options hash :dialog
key, the value of which is itself a hash of dialog element name/value pairs.
From the VM Provision state machine this is accessible from $evm.root['miq_provision'].miq_provision_request.options
, for example:
$evm.root['miq_provision'].miq_provision_request.options[:dialog] = {
"dialog_service_name" => "New Engineering VM",
"dialog_vm_name" => "pemcg-eng-03",
"dialog_option_0_cores_per_socket" => 2,
"dialog_option_0_vm_memory" => 2048,
"dialog_option_0_hostname" => "pemcg-eng-03.lon.redhat.com", "Array::dialog_tag_0_department" => "Classification::1000000000046",
"password::dialog_option_0_root_password" => "********"
}
To inject the cores_per_socket
value from the service dialog as an input parameter using substitution syntax would therefore require the following input parameter value:
${/#miq_provision.miq_provision_request.get_option(:dialog).fetch(dialog_option_0_cores_per_socket)}
Encrypted Input Parameters
The parameters passed to a playbook method are often encrypted, either by definition as a “password” data type in the list of input parameters, or by being encrypted elsewhere in a workflow.
Input Parameter ‘password’ Data Type
An input parameter can be defined as being of type “password”, for example:
A parameter of this type is decrypted automatically and is available to the playbook as the named extra variable, for example “{{ scrambled_this }}”. It should be noted that an input parameter that has the text string “password” anywhere in the name will not be passed as a method parameter, and so will not appear in the list of method parameters returned by the get_method_parameters
function. The variable will however be available as an extra_var with the password value decrypted correctly.
Password Defined Earlier in Workflow
A variable encrypted earlier in the workflow (for example when input into a service dialog) can generally be identified as having a name prefixed by the string “password::”. This signifies that the object is of type MiqPassword.
A password object of this type can be used as an input parameter if it is passed as a string data type, also prefixed by the string “password::”. The encrypted value will be automatically decrypted and is usable by the playbook as the named extra variable.
For example, to inject the root_password
value from the previous service dialog using substitution syntax, an input parameter should be defined with a string data type and the following input parameter value:
password::${/#miq_provision.miq_provision_request.get_option(:dialog).fetch(password::dialog_option_0_root_password)}
A screenshot of these input parameters for illustration is as follows:
Summary
In part two of this series we have looked at how inventory hosts are defined for embedded Ansible playbook methods and services. We have also seen how input parameters can be passed to playbook services and methods and decrypted if necessary, and how to retrieve and use service dialog element values.
Each of these techniques is usable for standalone playbooks, however the real benefit of embedded Ansible comes when using playbook methods as part of a larger automation workflow. Part three will examine how a playbook can interact with other components in an automation workflow.


Pokémon
The Sun and Moon series follows Ash Ketchum on his new Journey in Alola with his companion, Pikachu. He and his mother, Deliah leave for the Alola region on a vacation, however once seeing the Pokémon School, Ash decides to stay in Alola on a new journey.From there he adventures across the region with his new RotomDex, as well as his new classmates.


---
start: 2018-04-04 13:00
edition: 37
participate: "https://www.eventbrite.com/e/http2-tickets-44214631152"
talk: "https://goo.gl/forms/m9aPSXemMLPBj35k1"
subheader: "HTTP2"
subnote: ""
agenda:
-
time: "6:30 pm - 7:30 pm"
title: "HTTP2"
subtitle: "The web has dramatically evolved over the last 20+ years, yet HTTP - the workhorse of the Web - has not. Web developers have worked around HTTP's limitations, but:
--> Performance still falls short of full bandwidth utilization
--> Web design and maintenance are more complex
--> Resource consumption increases for client and server
--> Cacheability of resources suffers
HTTP/2 attempts to solve many of the shortcomings and inflexibilities of HTTP/1.1."
speaker_profile: "By: Chakravarti Baratam, is a developer with 13+ years of experience, worked mostly on Microsoft .NET technologies before joining ThoughWorks. Now I am a full stack developer."
image: "chakri.jpeg"
-
time: "7:30 pm - 7:45 pm"
title: "Break & Networking"
-
time: "7:45 pm - 8:30 pm"
title: "Continued..."
---


Counterfeit Goods Worth Close To R7m Recovered By Police In EC
by SW EditorEastern Cape police have recovered counterfeit goods worth about R7 million at a Port Elizabeth shop.
The discovery was made earlier this week after a tip-off.
A multi-disciplinary team swooped on the shop in Port Elizabeth, where authorities discovered various counterfeit products.
Thousands of bottles of perfume, including brands like Diesel, Hugo Boss, Calvin Klein, Marc Jacobs, Polo and Coco Chanel, worth more than R6.95 million was seized.
Counterfeit clothing worth more than R170,000 – imitating brands like Nike, Adidas, Puma and K-Way – were also confiscated.
Police say all the seized items were handed over to brand representatives for further investigation.
The Home Affairs Department has verified both suspects are foreign nationals.


Recovering 'Domain Network' Passwords
Domain network password method uses more stricter technique for encrypting the credentials thus providing better security over other methods. Only system process, LSASS.EXE can encrypt or decrypt these kind of passwords. LSASS is a Windows core system process responsible for enforcing the security and executing various security oriented tasks.
So in order to decrypt domain passwords one has to perform decryption in the context of LSASS process. This can be achieved by injecting remote thread into LSASS process using CreateRemoteThread function [Reference 1]. This is similar to the technique used by pwdump tool to dump the LM/NTLM hashes for the user accounts on the system.
Once the thread is injected, it can use the special undocumented function LsaICryptUnprotectData exported from Lsasrv.dll to decrypt the credentials buffer. Here is the prototype of the function LsaICryptUnprotectData.
typedef int (WINAPI *LPFUN_LSAICRYPTUNPROTECTDATA)
(
LPBYTE encCredData,
DWORD encCredDataSize,
DWORD reserved1,
DWORD reserved2,
DWORD reserved3,
DWORD reserved4,
DWORD dwFlags,
DWORD reserved5,
LPBYTE *decCredData,
LPDWORD decCredDataSize
);
This function takes the credential buffer (credential file found in one of the store locations) & its size as input and returns the decrypted credential buffer. This decrypted buffer starts with the header whose structure is given below
struct DecryptedDataHeader
{
DWORD dwHeaderId; //0x01 for XP & 0x30 for Vista/Win7
DWORD dwBufferSize; //size of the entire decrypted data
};
Here first field contains the signature and second field indictes the size of entire decrypted buffer.
After the header follows the network password structure for each of the stored accounts. This structure can represent any type of network password accounts and not just the domain password. However username & password is decrypted only for domain accounts and for all other types password is kept in the encrypted format.
The contents of this structure is given below. The internal fields of the structure varies slightly for Vista/Win7 from XP. Hence care needs to be taken while decoding this decrypted data on XP and Vista/Win7 platforms.
[ Note : All the structure information presented below is derived based on the reverse engineering work. So things may slightly differ from real stuff ]
// For Windows XP
struct DecryptedNetAccount
{
DWORD dwItemSize; //total size of this item for XP
DWORD dwUnknown;
DWORD dwType;
DWORD dwFileTimeLowDate;
DWORD dwFileTimeHighDate;
DWORD dwZero;
DWORD dwPersist; //3 => enterprise 2=> local machine
char unknown[12];
DWORD dwCredNameSize;
char strCredName[dwCredNameSize];
DWORD dwCommentSize;
char strComment[dwCommentSize];
DWORD dwAliasSize;
char strAlias[dwAliasSize];
DWORD dwUserNameSize;
char strUserName[dwUserNameSize];
DWORD dwPasswordSize;
char password[dwPasswordSize];
char padding[unknown]; //To make next entry aligned on 8th byte
};
// For Vista & Windows 7
struct DecryptedNetAccountVista
{
DWORD dwZero;
DWORD dwType;
DWORD dwzero;
DWORD dwFileTimeLowDate;
DWORD dwFileTimeHighDate;
DWORD dwSomeSize;
DWORD dwPersist; //3 => enterprise 2=> local machine
char unknown[12];
DWORD dwCredNameSize;
char strCredName[dwCredNameSize];
DWORD dwCommentSize;
char strComment[dwCommentSize];
DWORD dwAliasSize;
char strAlias[dwAliasSize];
DWORD dwUnknownSize; // only for vista/win7
char strUnknown[dwUnknownSize]; //only for vista/win7
DWORD dwUserNameSize;
char strUserName[dwUserNameSize];
DWORD dwPasswordSize;
char password[dwPasswordSize];
};
The above structure is of variable length and depends upon the length of the varoius text fields. Each of these text fields are NULL terminated UNICODE strings except the password field. Also at the end of each structure, extra padding (On windows XP only) bytes are added so as to align next entry on 8 byte boundary.
On Vista/Windows 7 platform, only one network account is stored per credential file.
Here is the sample code to decode this decrypted credential data and display the username/password information for all the stored domain password accounts.
// Check for valid signature
dwHeaderId = decDataBuffer->dwHeaderId
if( dwHeaderId != 0x1 && dwHeaderId != 0x30 )
{
printf("\n Decrypted data is not valid, mismatch in the header");
return;
}
//Set the index to first entry
index = sizeof(DecryptedDataHeader);
while( index < dwBufferSize )
{
DecryptedDataItem *decDataItem = (DecryptedDataItem*) &pDecData[index];
if( decDataItem->index == CRED_TYPE_DOMAIN_PASSWORD )
{
printf("\n Network Name = %S", decDataItem->strCredName);
//move index to username field and print it
printf("\n Username = %S ", decDataItem->strUserName);
//next move to password field and print it out...
WideCharToMultiByte(CP_ACP, 0,
decDataItem->strPassword,
decDataItem->dwPasswordSize,
strPassword, 1000, NULL, NULL );
printf("\n Password = %s ", strPassword);
}
//move to next password entry for XP platform
if( XP platform )
index = index + decDataItem->dwItemSize
else
break; //for vista/win7 only one account per credential file is stored
}
The above code first verifies if the decrypted data is valid by comparing the signature bytes in the header. Next it loops through each of the structure of domain password type and prints the network name, username & password in clear text.
Also note that the decrypted buffer from LsaICryptUnprotectData contains data for all type of network passwords, not just the domain type. But the password for other types is still in the encrypted format which can be further decrypted using the same procedure as explained earlier for respective types


REJECT.SYS
REJECT.SYS (\FBB\SYSTEM).
This file is in SYSTEM-directory. With this file it is possible to reject or
hold certain types or sizes of messages.
The first letter of each valid line specifies the action :
R = Reject : The message will not be received.
H = Hold : The message will be received but held until the sysop reviews.
L = Local Hold : Only messages created on this BBS will be held.
# File for rejecting messages. They are rejected with N-BID:
#
# Type, from, @BBS, to, BID, maximum size:
#
# * and ? can be used as wildcards (as in MS-DOS)
#
R B TOTO ALL TATA * 0
R B * * VENTE * 0
R B * VENTE * * 0
H * P1RAT * * * 0
L B * * * * 0
This page was last updated


{% extends "base.html" %} {% block title %}ClassWrite{% endblock %} {% block content %}
ClassWrite's goal is to make broadly available a set of useful tools for classroom writing instruction, without requiring an expensive subscription or administrative buy-in. If part of your instruction involves the careful evaluation of student writing, especially in a variety of contexts — online (wikis, forums, blogs), formal (essays and research papers), creative (poetry, fiction, experimental) — then ClassWrite's tools are tailored to your needs.


Start Pizza:
Choose a size for your pizza (cheese only):
Small
Medium
Large
Choose Toppings:
Sausage
Olives
Spinach
Pepperoni
Submit!
Your total is:


AKAN NAMES;Akan are a meta-ethnicity living in the southern regions of present-day Ghana,formerly known as gold coast.Akans who migrated from Ghana also make up a plurality of the ethnic population in the ivory coast.


Here are links to the result pages:
-
failures
(includes failed, failure-ignored, and no-comparison)
-
all results
(includes successful test results also, but takes longer to load)
Instructions, roadmap, etc. are at
http://tinyurl.com/SkiaRebaselineServer


A Large Ion Collider Experiment (ALICE) is the dedicated heavy ion experiment at the Large Hadron Collider (LHC). ALICE collides heavy ions - the nuclei of heavy particles - at nearly the speed of light. In this paper we consider how to identify the particles that are emitted from these collisions, rather like subatomic shrapnel. ALICE has been operating since 2010 and it is scheduled for an upgrade in 2017. Most importantly, the upgrade will increase the rate and momentum of particle collisions improving the quality of results for current experimentation and allowing for new experimentation. The new system will also impose new hardware requirements. As a result the current particle identification framework needs to be redeveloped.
Currently, artificial neural networks are used for particle identification at ALICE. A similar experiment, MiniBooNE at Fermilabs, uses boosting - a technique of combining many weak classifiers into a single strong classifier - to identify particles. After the upgrade the new hard- ware at ALICE will require that the information used for particle identification gets compressed into six 8-bit values, which is currently not necessary at either ALICE or Mini- BooNE. Consequently, the systems now in use at ALICE and MiniBooNE will not be compatible.
ALICE’s upgrade is imposing new hardware limitations that require the development of a new particle identification algorithm. This means there is a need to determine what type of machine learning algorithm would be suited to the type of problem presented by ALICE’s particle identification requirements after the upgrade.
This project aims to determine whether boosting or artificial neural networks are better suited for particle identification at ALICE after the upgrade. A related aim is to establish which algorithms and parameters within these two large classes of algorithms perform well.
To compare boosting and artificial neural networks, a variety of adaptive boosting and feed-forward artificial neural network algorithms are implemented. Adaptive boosting and feed-forward artificial neural networks are the base on which the boosting and artificial neural network class of algorithms is built. This means that the algorithms implemented in this project will give an indication of how well each class of algorithms would perform at ALICE after the upgrade. The algorithms are tested on simulated data generated by AliRoot - ALICE’s software package.
Three boosting algorithms, AdaBoost ε-Boost and ε-LogitBoost, were implemented and tested. These three boosting algorithms performed well at MiniBooNE a similar particle identification experiment and therefore were good candidates. Test were done using decision trees and artificial neural networks as weak learners.
Feed forward artificial neural networks using the back propagation algorithm to update the weights with various hidden layer topologies and activation functions where also tested.
From these boosting and artificial neural network algorithms tested the best performing models where compared to determine which would be better suited to ALICE after the upgrade.
In this project various boosting models and artificial neural networks have been tested on simulated data to determine which will be better suited to the upgraded system at ALICE.
From the set of boosting algorithms tested it was found that ε-LogitBoost was the worst performing. ε-Boost performed better than Adaboost on complex weak learners but worse than AdaBoost on simple weak learners. Since using simple weak learners generalises better AdaBoost was determined to be the best performing boosting algorithm.
Using artificial neural networks with two or three nodes as weak learners performed better than decision trees. These small artificial neural networks learnt slower and continued to improve performance for longer than the other weak learners tested.
As a result the best performing boosting algorithm was determined to be AdaBoost using artificial neural networks with two nodes in the hidden layer.
Artificial neural networks using the sigmoid activation function learnt the data better than the fast-sigmoid activation function and over fitted the data less than the tanh activation function. artificial neural networks with a single hidden layer performed best. As a result it was determined that artificial neural networks with a single hidden layer using the sigmoid activation function was the best performing artificial neural network.
The best performing artificial neural network - single hidden layer and sigmoid activation function - was compared to the best performing boosting algorithm - AdaBoost using artificial neural networks with two nodes in the hidden layer. The analysis shows that the artificial neural network was more accurate and computationally more efficient in terms of training and classifying.
Considered collectively, our experiments indicate that after the upgrade at ALICE artificial neural networks should be used for particle identification.
From the experiments done in this project it became apparent that boosting has performance benefits over artificial neural neworks when the number of predictors is large. This is because boosting has a simpler weighting scheme making it easier to find an optimal solution. At ALICE there are only six predictors per particle. This nullifies the benefit that boosting algorithms have over artificial neural networks.


Arizona State University
Principal Software Engineer • 2021-Present
Lead engineer for the Allen Coral Atlas, responsible for:
- Directing engineering strategy in collaboration with Atlas program leadership
- Planning and executing engineering team outcomes to meet the strategic vision for the Atlas
- Coordinating engineering and scientific efforts with Vulcan Inc, the University of Queensland, the National Geographic Society, and other partner organizations
- Training and mentoring junior engineers, students, and interns
Vulcan, Inc.
Senior Software Engineer • 2017-2020
Data Processing Pipeline Automation — Allen Coral Atlas
- Designed and implemented automated pipelines for processing terabytes of geospatial satellite imagery.
- Implemented scientific imagery analysis algorithms such as water depth estimation and underwater feature change detection.
- Python, Docker, Kubernetes, Apache Airflow, Argo Workflows, Google Earth Engine, Geospatial Data Abstraction Library (GDAL)
Infrastructure Automation — Technical Lead for 5-person DevOps team.
- Developed cloud infrastructure automation for global, multi-million-dollar Philanthropy projects.
- Enabled reliable, repeatable provisioning and deployment to production environments on multiple cloud providers.
- Designed Kubernetes deployments for containerized applications in the cloud.
- Designed and built continuous integration/continuous deployment pipelines.
- Envisioned, designed, and built cloud-agnostic tooling to automate infrastructure provisioning.
- Python, Bash, Docker, Kubernetes, Terraform, Google Cloud Platform, Azure Cloud, Circle CI, Concourse CI
CenturyLink Cloud
Senior Lead Software Engineer • 2016-2017
Developed platform APIs, infrastructure, and orchestration for leading cloud computing service provider. Improved features, reliability, and availability of 16 public cloud datacenters worldwide.
- Improved customer-facing RESTful APIs for virtualization and cloud VM management.
- Developed improvements to invoicing systems to dramatically improve accuracy and speed.
- Implemented Ansible to automate deployment and upgrades to datacenter infrastructure servers.
- C#, Couchbase, Elasticsearch, Ansible, VMWare
Zulily
Senior Software Engineer, Machine Learning and Personalization • 2015
Collaborated on high volume, low latency personalization solutions for $1B online retailer.
- Performed feature engineering and model training to deliver a product experience personalized to customers' preferences.
- Go, Apache Spark, Google Cloud Compute/Storage, H2O machine learning platform
ClipCard
Lead Engineer, Developer Platforms • 2013 — 2015
Member of startup team developing a product to help customers find and act on content in personal, cloud-based apps such as Dropbox, Evernote, and Google Drive.
- Designed and developed new features for our service's core API, including interfaces, object models, search indexes and data stores.
- Integrated with third-party cloud service APIs, solving problems in areas of authentication, performance, backpressure, error handling, and data transformation.
- Created and launched a text-based integration for the Slack messaging app that brought ClipCard functionality directly into the Slack user experience.
- Python, Django/DRF, Apache Storm, Elasticsearch, PostgreSQL, Clojure
Lexis-Nexis
Senior Software Engineer • 2004 — 2013
Court Docket project — Technical lead and lead developer of 14-member team to serialize and enrich several billion rows relational data.
- Ensured vital core content was available for launch of new, multi-million-dollar flagship research product.
- Succeeded in the face of highly fluid team membership and shifting specifications.
- Python, SQL Server, XML, Test-Driven Development, Scrum.
Operations Management application — Creator of web-based operations management and order fulfillment application. Performed business analysis, system design, full-stack development, deployment, support, and project management.
- C#, SQL Server, ASP.Net, CSS, Javascript.
U.S. Navy (excerpts)
Commanding Officer • 2018 — 2022
Commanding Officer of 30 Sailors supporting U.S. Indo-Pacific Command, the senior U.S. military headquarters in the Indo-Asia Pacific region.
- TS/SCI security clearance basis OPM SSBI 20 Jan 2017
Operations Center Watch Officer • 2011 — 2012
Monitored U.S. military operations throughout Europe, coordinated with U.S. and Allied headquarters. First responder to international crises. Awarded twice for outstanding initiative, leadership, and performance.
Commanding/Executive Officer • 2001 — 2003
Second-in-Command, then Commanding Officer of two patrol boat units. Solely responsible for organization, training and performance of 64 Sailors, four patrol boats and associated vehicles, weapons, and equipment, including wartime Persian Gulf deployment.
- Awarded and promoted as a result of organization's results.
- Set and achieved short- and long-term organizational goals.
- Succeeded in high-stress, high-tempo environment.
Georgia Institue of Technology
Master of Science, Computer Science (Machine Learning) • 2019
University of Virginia
Bachelor of Arts, Foreign Affairs


API
The following is technical information concerning the integration of our API with other websites and applications.
Our API follows the principles of REST, and aims to allow simple control over the copywriting resources we offer.
Making Requests
All requests must contain an oAuth 2.0 style Authorization
header, containing a valid API key. You must also include the User-Agent
header set as the email address associated with your Copify account.
Example
GET /api/v1/resource.json HTTP/1.1 Host: https://uk.copify.com User-Agent<EMAIL_ADDRESS>Authorization: Bearer 5234gfgGFSDweCVB674562DGs
Obtaining an API key
Select "settings" from the drop down list in your account.
  } }Show response
GET /jobs/page:{n}/sort:{field}/.json
Returns a paginated array of your orders, filtered by page {n} and ordered by {field}.
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/jobs/page:3/sort:job_category_id/.json
{ "status": "success", "message": "Page 3", "response": { "total": "43", "page": 3, "jobs": [ { "id": "622", "created": "2010-01-29 13:18:49", "modified": "2010-02-17 09:37:24", "name": "A blog post on the topic of \"Pay per Click\"", "slug": "a-blog-post-on-the-topic-of-pay-per-click", "brief": "We are an online agency who require a post for...", "words": "380", "accepted": "0000-00-00 00:00:00", "completed": "0000-00-00 00:00:00", "job_category_id": "20", "job_budget_id": "2", "job_status_id": "1", "job_type_id": "4", "locale": "en_gb", "writer": null, "user_id" : 120, "copy" : null }, { "id": "255", "created": "2010-01-30 13:51:22", "modified": "2010-03-06 05:24:39", "name": "Summary\/Thoughts on the new Apple \"iPad\" ", "slug": "summary-thoughts-on-the-new-apple-ipad", "brief": "We would like a blog post for our website detailing the...", "words": "250", "accepted": "2010-01-30 14:22:12", "completed": "0000-00-00 00:00:00", "job_category_id": "31", "job_budget_id": "1", "job_status_id": "2", "job_type_id": "4", "locale": "en_gb", "writer": 443, "user_id" : 120, "copy" : null }, ...] } }Show response
GET /jobs.json?project_id={n}
Returns a paginated array of your orders, filtered by project_id
.
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/jobs.json?project_id=155
{ "status": "success", "message": "Page 1", "response": { "jobs": [ { "id": "253", "created": "2010-07-06 17:51:13", "modified": "2010-07-07 13:04:06", "slug": "citroen-to-launch-new-ds3-convertible", "user_id": "278", "brief": "Require a 350-500 news story, detailing the launch of the new DS3 Convertible", "words": "350", "accepted": "0000-00-00 00:00:00", "completed": "0000-00-00 00:00:00", "project_id": "155", "job_category_id": "6", "job_budget_id": "1", "job_status_id": "4", "job_type_id": "3", "copy": "Hot on the tail of the success of the DS3 supermini...", "writer": "349", "locale": "en_gb", "name": "Citroen To Launch New DS3 Convertible" }, { "id": "261", "created": "2010-07-19 10:27:50", "modified": "2010-08-11 11:47:34", "slug": "citroen-announce-new-ds5", "user_id": "278", "brief": "Launch of the new DS5", "words": "350", "accepted": "0000-00-00 00:00:00", "completed": "0000-00-00 00:00:00", "project_id": "155", "job_category_id": "6", "job_budget_id": "1", "job_status_id": "4", "job_type_id": "3", "copy": "Citroen Announce New DS5...", "writer": "307", "locale": "en_gb", "name": "Citroen Announce New DS5" }, ...
Note: Projects are used to conveniently group your orders.
curl -X POST \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/projects.json \ --data-urlencode "name=Some project"
{ "status": "success", "message": "Created new project #166", "response": { "id": "166", "created": "2013-12-13 15:06:16", "modified": "2013-12-13 15:06:16", "name": "My first project", "user_id": "278", "hexcode": "CCCCCC" } }Show response
GET /job_budgets.json
This method is used to get the current price "per word" for both Standard and Professional quality levels.
Note: Prices do not include VAT.
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/job_budgets.json
{ "status": "success", "message": "2 available", "response": { "job_budgets": [ { "id": "1", "cost_per_word": "0.030", "locale": "en_gb", "name": "Standard" }, { "id": "2", "cost_per_word": "0.050", "locale": "en_gb", "name": "Professional" } ], "total": 2 } }Show response
GET /job_categories.json
Returns a paginated array of available categories.
Tip: When creating orders through the API, the job_category_id
is optional
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/job_categories.json
{ "status": "success", "message": "569 available", "response": { "total": "569", "job_categories": [ { "id": "1", "name": "Accountancy", "slug": "accountancy", "total": "393", "this_month": "7" }, { "id": "2", "name": "Advertising", "slug": "advertising", "total": "113", "this_month": "12" }, { "id": "3", "name": "Art", "slug": "art", "total": "202", "this_month": "22" }, ...] } }Show response
GET /job_statuses.json
Get a list of the different types of order "status".
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/job_statuses.json
{ "status" : "success", "message": "7 available", "response": { "job_statuses":[ { "id":"1", "name":"Open" }, { "id":"2", "name":"In Progress" }, { "id":"3", "name":"Completed" }, { "id":"4", "name":"Approved" }, { "id":"5", "name":"Rejected" }, { "id":"6", "name":"Pending Accept" }, { "id":"7", "name":"Cancelled" } ], "total":7 }Show response
GET /job_types.json
Returns a list of the available order "types".
curl -X GET \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/job_types.json
{ "status": "success", "message": "6 available", "response": { "job_types": [ { "id": "1", "name": "Article" }, { "id": "2", "name": "Press Release" }, { "id": "3", "name": "Web Page" }, { "id": "4", "name": "Blog" }, { "id": "5", "name": "Misc" }, { "id": "6", "name": "Review" }, ... ], "total": 6 } }Show response
POST /feedback.json
Once an order is complete, this method can be used to mark the order as "Approved" and release the funds to the copywriter.
curl -X POST \ -H "User-Agent: YOUR_EMAIL" \ -H "Authorization: Bearer YOUR_API_KEY" \ https://uk.copify.com/api/v1/feedback.json \ --data-urlencode "job_id=4502" \ --data-urlencode "comment=Thanks, excellent article" \ --data-urlencode "rating=4"
{ "status": "success", "message": "The job feedback has been saved", "response": { "id": "4322", "created": "2012-05-14 13:16:57", "modified": "2012-05-14 13:16:57", "rating": "4", "comment": "Thanks, excellent article", "job_id": "4502" } }Show response
Questions?
Speak to our content team
Fill in the form with your requirements and one of our friendly team will be in touch.


You need UV sensor or an equivalent to use this feature.
How it works
- Empty the Tank of resin and clean the Tank bottom surfaces inside and out.
- Specify the number of measurement points in both x and y axis, and also the size of the measurement squares.
- Tabular cells are displayed on the user interface. You can change the cell values from 0=black to 255=white.
- When measuring, hold the UV sensor in the middle of the measurement square that is projected on the inside of the Tank.
- Use the UV sensor to determine a set point value which is usually the lowest value of all measurement squares (probably the corner values)
- Decrease the cell value for each measurement square until the UV sensor reads the set point value (do not press enter unless you want to display the mask)
- Press preview and double check the surface area to see if UV intensity is the same across the entire Tank bottom.
- Save mask (It takes up to a minute to generate a complete mask).
- Go to Setup..Projector Mask to see the saved mask on the user interface (press refresh if necessary)


Source code for bokeh.models.tools
''' Bokeh comes with a number of interactive tools.
There are five types of tool interactions:
.. hlist::
:columns: 5
* Pan/Drag
* Click/Tap
* Scroll/Pinch
* Actions
* Inspectors
For the first three comprise the category of gesture tools, and only
one tool for each gesture can be active at any given time. The active
tool is indicated on the toolbar by a highlight next to to the tool.
Actions are immediate or modal operations that are only activated when
their button in the toolbar is pressed. Inspectors are passive tools that
merely report information or annotate the plot in some way, and may
always be active regardless of what other tools are currently active.
'''
from __future__ import absolute_import
from ..core.enums import Anchor, Dimension, Dimensions, Location, TooltipFieldFormatter
from ..core.has_props import abstract
from ..core.properties import (
Auto, Bool, Color, Dict, Either, Enum, Float, Percent, Instance, List,
Override, Seq, String, Tuple
)
from ..model import Model
from ..util.deprecation import deprecated
from .annotations import BoxAnnotation, PolyAnnotation
from .callbacks import Callback
from .renderers import Renderer
from .layouts import Box, LayoutDOM
@abstract
[docs]class Tool(Model):
''' A base class for all interactive tool types.
'''
__deprecated_attributes__ = ["plot"]
@property
def plot(self):
deprecated("Tool.plot property is no longer needed, and any use deprecated. In the future, accessing Tool.plot will result in an AttributeError")
return None
@plot.setter
def plot(self, val):
deprecated("Tool.plot property is no longer needed, and any use is deprecated. In the future, accessing Tool.plot will result in an AttributeError")
return None
@abstract
@abstract
@abstract
@abstract
@abstract
[docs]class Inspection(Tool):
''' A base class for tools that perform "inspections", e.g. ``HoverTool``.
'''
toggleable = Bool(True, help="""
Whether an on/off toggle button should appear in the toolbar for this
inpection tool. If ``False``, the viewers of a plot will not be able to
toggle the inspector on or off using the toolbar.
""")
@abstract
[docs]class ToolbarBase(LayoutDOM):
''' A base class for different toolbars.
'''
logo = Enum("normal", "grey", help="""
What version of the Bokeh logo to display on the toolbar. If
set to None, no logo will be displayed.
""")
tools = List(Instance(Tool), help="""
A list of tools to add to the plot.
""")
# This is an odd case. The sizing is custom handled. In the future we will
# probably set it as `stretch_width` or `stretch_height` depending on its
# orientation.
sizing_mode = Override(default=None)
[docs]class Toolbar(ToolbarBase):
''' Collect tools to display for a single plot.
'''
active_drag = Either(Auto, Instance(Drag), help="""
Specify a drag tool to be active when the plot is displayed.
""")
active_inspect = Either(Auto, Instance(Inspection), Seq(Instance(Inspection)), help="""
Specify an inspection tool or sequence of inspection tools to be active when
the plot is displayed.
""")
active_scroll = Either(Auto, Instance(Scroll), help="""
Specify a scroll/pinch tool to be active when the plot is displayed.
""")
active_tap = Either(Auto, Instance(Tap), help="""
Specify a tap/click tool to be active when the plot is displayed.
""")
[docs]class ToolbarBox(Box):
''' A layoutable toolbar that can accept the tools of multiple plots, and
can merge the tools into a single button for convenience.
'''
def _check_empty_layout(self):
# Overriding the children check from Box. As toolbarbox's children
# are normally set JS side.
return None
toolbar_location = Enum(Location, default='right', help="""
Should the toolbar be presented as if it was stuck to the `above`, `right`, `left`, `below`
edge of a plot. Default is `right`.
""")
tools = List(Instance(Tool), help="""
A list of tools to add to the plot.
""")
merge_tools = Bool(default=True, help="""
Merge all the tools together so there is one tool to control all the plots.
""")
logo = Enum("normal", "grey", help="""
What version of the Bokeh logo to display on the toolbar. If
set to None, no logo will be displayed.
""")
[docs]class PanTool(Drag):
''' *toolbar icon*: |pan_icon|
The pan tool allows the user to pan a Plot by left-dragging
a mouse, or on touch devices by dragging a finger or stylus, across
the plot region.
The pan tool also activates the border regions of a Plot for "single
axis" panning. For instance, dragging in the vertical border or axis
will effect a pan in the vertical direction only, with the horizontal
dimension kept fixed.
.. |pan_icon| image:: /_images/icons/Pan.png
:height: 18pt
'''
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the pan tool is constrained to act in. By default
the pan tool will pan in any dimension, but can be configured to only
pan horizontally across the width of the plot, or vertically across the
height of the plot.
""")
[docs]class WheelPanTool(Scroll):
''' *toolbar icon*: |wheel_pan_icon|
The wheel pan tool allows the user to pan the plot along the configured
dimension using the scroll wheel.
.. |wheel_pan_icon| image:: /_images/icons/WheelPan.png
:height: 18pt
'''
dimension = Enum(Dimension, default="width", help="""
Which dimension the wheel pan tool is constrained to act in. By
default the wheel pan tool will pan the plot along the x-axis.
""")
[docs]class WheelZoomTool(Scroll):
''' *toolbar icon*: |wheel_zoom_icon|
The wheel zoom tool will zoom the plot in and out, centered on the
current mouse location.
The wheel zoom tool also activates the border regions of a Plot for
"single axis" zooming. For instance, zooming in the vertical border or
axis will effect a zoom in the vertical direction only, with the
horizontal dimension kept fixed.
.. |wheel_zoom_icon| image:: /_images/icons/WheelZoom.png
:height: 18pt
'''
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the wheel zoom tool is constrained to act in. By
default the wheel zoom tool will zoom in any dimension, but can be
configured to only zoom horizontally across the width of the plot, or
vertically across the height of the plot.
""")
[docs]class SaveTool(Action):
''' *toolbar icon*: |save_icon|
The save tool is an action. When activated, the tool opens a download dialog
which allows to save an image reproduction of the plot in PNG format. If
automatic download is not support by a web browser, the tool falls back to
opening the generated image in a new tab or window. User then can manually
save it by right clicking on the image and choosing "Save As" (or similar)
menu item.
.. |save_icon| image:: /_images/icons/Save.png
:height: 18pt
'''
[docs]class ResetTool(Action):
''' *toolbar icon*: |reset_icon|
The reset tool is an action. When activated in the toolbar, the tool
resets the data bounds of the plot to their values when the plot was
initially created.
Optionally, the reset tool also resets the plat canvas dimensions to
their original size
.. |reset_icon| image:: /_images/icons/Reset.png
:height: 18pt
'''
reset_size = Bool(default=True, help="""
Whether activating the Reset tool should also reset the plot's canvas
dimensions to their original size.
""")
[docs]class TapTool(Tap):
''' *toolbar icon*: |tap_icon|
The tap selection tool allows the user to select at single points by
left-clicking a mouse, or tapping with a finger.
See :ref:`userguide_styling_selected_unselected_glyphs` for information
on styling selected and unselected glyphs.
.. |tap_icon| image:: /_images/icons/Tap.png
:height: 18pt
.. note::
Selections can be comprised of multiple regions, even those
made by different selection tools. Hold down the <<shift>> key
while making a selection to append the new selection to any
previous selection that might exist.
'''
names = List(String, help="""
A list of names to query for. If set, only renderers that
have a matching value for their ``name`` attribute will be used.
""")
renderers = List(Instance(Renderer), help="""
An explicit list of renderers to hit test again. If unset,
defaults to all renderers on a plot.
""")
behavior = Enum("select", "inspect", default="select", help="""
This tool can be configured to either make selections or inspections
on associated data sources. The difference is that selection changes
propagate across bokeh and other components (e.g. selection glyph)
will be notified. Inspecions don't act like this, so it's useful to
configure `callback` when setting `behavior='inspect'`.
""")
callback = Instance(Callback, help="""
A callback to execute *whenever a glyph is "hit"* by a mouse click
or tap.
This is often useful with the :class:`~bokeh.models.callbacks.OpenURL`
model to open URLs based on a user clicking or tapping a specific glyph.
However, it may also be a :class:`~bokeh.models.callbacks.CustomJS`
which can execute arbitrary JavaScript code in response to clicking or
tapping glyphs. The callback will be executed for each individual glyph
that is it hit by a click or tap, and will receive the ``TapTool`` model
as ``cb_obj``. The optional ``cb_data`` will have the data source as
its ``.source`` attribute and the selection geometry as its
``.geometries`` attribute.
.. note::
This callback does *not* execute on every tap, only when a glyphs is
"hit". If you would like to execute a callback on every mouse tap,
please see :ref:`userguide_interaction_jscallbacks_customjs_interactions`.
""")
[docs]class CrosshairTool(Inspection):
''' *toolbar icon*: |crosshair_icon|
The crosshair tool is a passive inspector tool. It is generally on
at all times, but can be configured in the inspector's menu
associated with the *toolbar icon* shown above.
The crosshair tool draws a crosshair annotation over the plot,
centered on the current mouse position. The crosshair tool may be
configured to draw across only one dimension by setting the
``dimension`` property to only ``width`` or ``height``.
.. |crosshair_icon| image:: /_images/icons/Crosshair.png
:height: 18pt
'''
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the crosshair tool is to track. By default, both a
vertical and horizontal line will be drawn. If only "width" is supplied,
only a horizontal line will be drawn. If only "height" is supplied,
only a vertical line will be drawn.
""")
line_color = Color(default="black", help="""
A color to use to stroke paths with.
Acceptable values are:
- any of the 147 named `CSS colors`_, e.g ``'green'``, ``'indigo'``
- an RGB(A) hex value, e.g., ``'#FF0000'``, ``'#44444444'``
- a 3-tuple of integers (r,g,b) between 0 and 255
- a 4-tuple of (r,g,b,a) where r,g,b are integers between 0..255 and a is between 0..1
.. _CSS colors: http://www.w3schools.com/cssref/css_colornames.asp
""")
line_width = Float(default=1, help="""
Stroke width in units of pixels.
""")
line_alpha = Float(default=1.0, help="""
An alpha value to use to stroke paths with.
Acceptable values are floating point numbers between 0 (transparent)
and 1 (opaque).
""")
DEFAULT_BOX_OVERLAY = lambda: BoxAnnotation(
level="overlay",
render_mode="css",
top_units="screen",
left_units="screen",
bottom_units="screen",
right_units="screen",
fill_color="lightgrey",
fill_alpha=0.5,
line_color="black",
line_alpha=1.0,
line_width=2,
line_dash=[4, 4]
)
[docs]class BoxZoomTool(Drag):
''' *toolbar icon*: |box_zoom_icon|
The box zoom tool allows users to define a rectangular
region of a Plot to zoom to by dragging he mouse or a
finger over the plot region. The end of the drag
event indicates the selection region is ready.
.. |box_zoom_icon| image:: /_images/icons/BoxZoom.png
:height: 18pt
'''
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the zoom box is to be free in. By default,
users may freely draw zoom boxes with any dimensions. If only
"width" is supplied, the box will be constrained to span the entire
vertical space of the plot, only the horizontal dimension can be
controlled. If only "height" is supplied, the box will be constrained
to span the entire horizontal space of the plot, and the vertical
dimension can be controlled.
""")
overlay = Instance(BoxAnnotation, default=DEFAULT_BOX_OVERLAY, help="""
A shaded annotation drawn to indicate the selection region.
""")
match_aspect = Bool(default=False, help="""
Whether the box zoom region should be restricted to have the same
aspect ratio as the plot region.
.. note::
If the tool is restricted to one dimension, this value has
no effect.
""")
[docs]class ZoomInTool(Action):
''' *toolbar icon*: |zoom_in_icon|
The zoom-in tool allows users to click a button to zoom in
by a fixed amount.
.. |zoom_in_icon| image:: /_images/icons/ZoomIn.png
:height: 18pt
'''
# TODO ZoomInTool dimensions should probably be constrained to be the same as ZoomOutTool
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the zoom-in tool is constrained to act in. By
default the zoom-in zoom tool will zoom in any dimension, but can be
configured to only zoom horizontally across the width of the plot, or
vertically across the height of the plot.
""")
factor = Percent(default=0.1, help="""
Percentage to zoom for each click of the zoom-in tool.
""")
[docs]class ZoomOutTool(Action):
''' *toolbar icon*: |zoom_out_icon|
The zoom-out tool allows users to click a button to zoom out
by a fixed amount.
.. |zoom_out_icon| image:: /_images/icons/ZoomOut.png
:height: 18pt
'''
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the zoom-out tool is constrained to act in. By
default the zoom-out tool will zoom in any dimension, but can be
configured to only zoom horizontally across the width of the plot, or
vertically across the height of the plot.
""")
factor = Percent(default=0.1, help="""
Percentage to zoom for each click of the zoom-in tool.
""")
[docs]class BoxSelectTool(Drag):
''' *toolbar icon*: |box_select_icon|
The box selection tool allows users to make selections on a
Plot by indicating a rectangular region by dragging the
mouse or a finger over the plot region. The end of the drag
event indicates the selection region is ready.
See :ref:`userguide_styling_selected_unselected_glyphs` for information
on styling selected and unselected glyphs.
.. |box_select_icon| image:: /_images/icons/BoxSelect.png
:height: 18pt
'''
names = List(String, help="""
A list of names to query for. If set, only renderers that
have a matching value for their ``name`` attribute will be used.
""")
renderers = List(Instance(Renderer), help="""
An explicit list of renderers to hit test again. If unset,
defaults to all renderers on a plot.
""")
select_every_mousemove = Bool(False, help="""
Whether a selection computation should happen on every mouse
event, or only once, when the selection region is completed. Default: False
""")
dimensions = Enum(Dimensions, default="both", help="""
Which dimensions the box selection is to be free in. By default,
users may freely draw selections boxes with any dimensions. If only
"width" is supplied, the box will be constrained to span the entire
vertical space of the plot, only the horizontal dimension can be
controlled. If only "height" is supplied, the box will be constrained
to span the entire horizontal space of the plot, and the vertical
dimension can be controlled.
""")
callback = Instance(Callback, help="""
A callback to run in the browser on completion of drawing a selection box.
The cb_data parameter that is available to the Callback code will contain
one BoxSelectTool-specific field:
:geometry: object containing the coordinates of the selection box
""")
overlay = Instance(BoxAnnotation, default=DEFAULT_BOX_OVERLAY, help="""
A shaded annotation drawn to indicate the selection region.
""")
DEFAULT_POLY_OVERLAY = lambda: PolyAnnotation(
level="overlay",
xs_units="screen",
ys_units="screen",
fill_color="lightgrey",
fill_alpha=0.5,
line_color="black",
line_alpha=1.0,
line_width=2,
line_dash=[4, 4]
)
[docs]class LassoSelectTool(Drag):
''' *toolbar icon*: |lasso_select_icon|
The lasso selection tool allows users to make selections on a
Plot by indicating a free-drawn "lasso" region by dragging the
mouse or a finger over the plot region. The end of the drag
event indicates the selection region is ready.
See :ref:`userguide_styling_selected_unselected_glyphs` for information
on styling selected and unselected glyphs.
.. note::
Selections can be comprised of multiple regions, even those
made by different selection tools. Hold down the <<shift>> key
while making a selection to append the new selection to any
previous selection that might exist.
.. |lasso_select_icon| image:: /_images/icons/LassoSelect.png
:height: 18pt
'''
names = List(String, help="""
A list of names to query for. If set, only renderers that
have a matching value for their ``name`` attribute will be used.
""")
renderers = List(Instance(Renderer), help="""
An explicit list of renderers to hit test again. If unset,
defaults to all renderers on a plot.
""")
select_every_mousemove = Bool(True, help="""
Whether a selection computation should happen on every mouse
event, or only once, when the selection region is completed. Default: True
""")
callback = Instance(Callback, help="""
A callback to run in the browser on every selection of a lasso area.
The cb_data parameter that is available to the Callback code will contain
one LassoSelectTool-specific field:
:geometry: object containing the coordinates of the lasso area
""")
overlay = Instance(PolyAnnotation, default=DEFAULT_POLY_OVERLAY, help="""
A shaded annotation drawn to indicate the selection region.
""")
[docs]class PolySelectTool(Tap):
''' *toolbar icon*: |poly_select_icon|
The polygon selection tool allows users to make selections on a
Plot by indicating a polygonal region with mouse clicks. single
clicks (or taps) add successive points to the definition of the
polygon, and a double click (or tap) indicates the selection
region is ready.
See :ref:`userguide_styling_selected_unselected_glyphs` for information
on styling selected and unselected glyphs.
.. note::
Selections can be comprised of multiple regions, even those
made by different selection tools. Hold down the <<shift>> key
while making a selection to append the new selection to any
previous selection that might exist.
.. |poly_select_icon| image:: /_images/icons/PolygonSelect.png
:height: 18pt
'''
names = List(String, help="""
A list of names to query for. If set, only renderers that
have a matching value for their ``name`` attribute will be used.
""")
renderers = List(Instance(Renderer), help="""
An explicit list of renderers to hit test again. If unset,
defaults to all renderers on a plot.
""")
callback = Instance(Callback, help="""
A callback to run in the browser on completion of drawing a polygon.
The cb_data parameter that is available to the Callback code will contain
one PolySelectTool-specific field:
:geometry: object containing the coordinates of the polygon
""")
overlay = Instance(PolyAnnotation, default=DEFAULT_POLY_OVERLAY, help="""
A shaded annotation drawn to indicate the selection region.
""")
[docs]class HoverTool(Inspection):
''' *toolbar icon*: |crosshair_icon|
The hover tool is a passive inspector tool. It is generally on at
all times, but can be configured in the inspector's menu associated
with the *toolbar icon* shown above.
By default, the hover tool displays informational tooltips whenever
the cursor is directly over a glyph. The data to show comes from the
glyph's data source, and what is to be displayed is configurable with
the ``tooltips`` attribute that maps display names to columns in the
data source, or to special known variables.
Here is an example of how to configure and use the hover tool::
# Add tooltip (name, field) pairs to the tool. See below for a
# description of possible field values.
hover.tooltips = [
("index", "$index"),
("(x,y)", "($x, $y)"),
("radius", "@radius"),
("fill color", "$color[hex, swatch]:fill_color"),
("foo", "@foo"),
("bar", "@bar"),
("baz", "@baz{safe}"),
("total", "@total{$0,0.00}"
]
You can also supply a ``Callback`` to the HoverTool, to build custom
interactions on hover. In this case you may want to turn the tooltips
off by setting ``tooltips=None``.
.. warning::
Hover tool does not currently work with the following glyphs:
.. hlist::
:columns: 3
* annulus
* arc
* bezier
* image
* image_rgba
* image_url
* oval
* patch
* quadratic
* ray
* text
.. |hover_icon| image:: /_images/icons/Hover.png
:height: 18pt
'''
names = List(String, help="""
A list of names to query for. If set, only renderers that
have a matching value for their ``name`` attribute will be used.
""")
renderers = List(Instance(Renderer), help="""
An explicit list of renderers to hit test again. If unset,
defaults to all renderers on a plot.
""")
callback = Instance(Callback, help="""
A callback to run in the browser whenever the input's value changes. The
cb_data parameter that is available to the Callback code will contain two
HoverTool specific fields:
:index: object containing the indices of the hovered points in the data source
:geometry: object containing the coordinates of the hover cursor
""")
tooltips = Either(String, List(Tuple(String, String)),
default=[
("index","$index"),
("data (x, y)","($x, $y)"),
("canvas (x, y)","($sx, $sy)"),
], help="""
The (name, field) pairs describing what the hover tool should
display when there is a hit.
Field names starting with "@" are interpreted as columns on the
data source. For instance, "@temp" would look up values to display
from the "temp" column of the data source.
Field names starting with "$" are special, known fields:
:$index: index of selected point in the data source
:$x: x-coordinate under the cursor in data space
:$y: y-coordinate under the cursor in data space
:$sx: x-coordinate under the cursor in screen (canvas) space
:$sy: y-coordinate under the cursor in screen (canvas) space
:$color: color data from data source, with the syntax:
``$color[options]:field_name``. The available options
are: 'hex' (to display the color as a hex value), and
'swatch' to also display a small color swatch.
Field names that begin with ``@`` are associated with columns in a
``ColumnDataSource``. For instance the field name ``"@price"`` will
display values from the ``"price"`` column whenever a hover is triggered.
If the hover is for the 17th glyph, then the hover tooltip will
correspondingly display the 17th price value.
Note that if a column name contains spaces, the it must be supplied by
surrounding it in curly braces, e.g. ``@{adjusted close}`` will display
values from a column named ``"adjusted close"``.
By default, values for fields (e.g. ``@foo``) are displayed in a basic
numeric format. However it is possible to control the formatting of values
more precisely. Fields can be modified by appending a format specified to
the end in curly braces. Some examples are below.
.. code-block:: python
"@foo{0,0.000}" # formats 10000.1234 as: 10,000.123
"@foo{(.00)}" # formats -10000.1234 as: (10000.123)
"@foo{($ 0.00 a)}" # formats 1230974 as: $ 1.23 m
Specifying a format ``{safe}`` after a field name will override automatic
escaping of the tooltip data source. Any HTML tags in the data tags will
be rendered as HTML in the resulting HoverTool output. See
:ref:`custom_hover_tooltip` for a more detailed example.
``None`` is also a valid value for tooltips. This turns off the
rendering of tooltips. This is mostly useful when supplying other
actions on hover via the callback property.
.. note::
The tooltips attribute can also be configured with a mapping type,
e.g. ``dict`` or ``OrderedDict``. However, if a ``dict`` is used,
the visual presentation order is unspecified.
""").accepts(Dict(String, String), lambda d: list(d.items()))
formatters = Dict(String, Enum(TooltipFieldFormatter), default=lambda: dict(), help="""
Specify the formatting scheme for data source columns, e.g.
.. code-block:: python
tool.formatters = dict(date="datetime")
will cause format specifications for the "date" column to be interpreted
according to the "datetime" formatting scheme. The following schemed are
available:
:``"numeral"``:
Provides a wide variety of formats for numbers, currency, bytes, times,
and percentages. The full set of formats can be found in the
|NumeralTickFormatter| reference documentation.
:``"datetime"``:
Provides formats for date and time values. The full set of formats is
listed in the |DatetimeTickFormatter| reference documentation.
:``"printf"``:
Provides formats similar to C-style "printf" type specifiers. See the
|PrintfTickFormatter| reference documentation for complete details.
If no formatter is specified for a column name, the default ``"numeral"``
formatter is assumed.
.. |NumeralTickFormatter| replace:: :class:`~bokeh.models.formatters.NumeralTickFormatter`
.. |DatetimeTickFormatter| replace:: :class:`~bokeh.models.formatters.DatetimeTickFormatter`
.. |PrintfTickFormatter| replace:: :class:`~bokeh.models.formatters.PrintfTickFormatter`
""")
mode = Enum("mouse", "hline", "vline", help="""
Whether to consider hover pointer as a point (x/y values), or a
span on h or v directions.
""")
point_policy = Enum("snap_to_data", "follow_mouse", "none", help="""
Whether the tooltip position should snap to the "center" (or other anchor)
position of the associated glyph, or always follow the current mouse cursor
position.
""")
line_policy = Enum("prev", "next", "nearest", "interp", "none",
default="nearest", help="""
When showing tooltips for lines, designates whether the tooltip position
should be the "previous" or "next" points on the line, the "nearest" point
to the current mouse position, or "interpolate" along the line to the
current mouse position.
""")
anchor = Enum(Anchor, default="center", help="""
If point policy is set to `"snap_to_data"`, `anchor` defines the attachment
point of a tooltip. The default is to attach to the center of a glyph.
""")
attachment = Enum("horizontal", "vertical", help="""
Whether tooltip's arrow should appear in the horizontal or vertical dimension.
""")
show_arrow = Bool(default=True, help="""
Whether tooltip's arrow should be showed.
""")
DEFAULT_HELP_TIP = "Click the question mark to learn more about Bokeh plot tools."
DEFAULT_HELP_URL = "https://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#built-in-tools"
[docs]class HelpTool(Action):
''' A button tool to provide a "help" link to users.
The hover text can be customized through the ``help_tooltip`` attribute
and the redirect site overridden as well.
'''
help_tooltip = String(default=DEFAULT_HELP_TIP, help="""
Tooltip displayed when hovering over the help icon.
""")
redirect = String(default=DEFAULT_HELP_URL, help="""
Site to be redirected through upon click.
""")
[docs]class UndoTool(Action):
''' *toolbar icon*: |undo_icon|
Undo tool allows to restore previous state of the plot.
.. |undo_icon| image:: /_images/icons/Undo.png
:height: 18pt
'''
[docs]class RedoTool(Action):
''' *toolbar icon*: |redo_icon|
Redo tool reverses the last action performed by undo tool.
.. |redo_icon| image:: /_images/icons/Redo.png
:height: 18pt
'''