We assume that the reader has used (or is otherwise familiar with) the Materials Commons web site (https://materialscommons.org/). This site provides a User Interface to the Materials Commons server. Note: These instructions assume that you are using this cental Materials Commons web site. If this is not the case, your instance of Materials Commons will have a different URL and corrections in the instructions will have to be made, accordingly.
In this document, we describe the Python API to the Materials Commons. It is a Python module embodying the API (Application Programmer Interface) that to the Materials Commons server. It supports creating, modifying, and deleting Materials Commons Projects and their parts: Experiments, Processes, Samples, Directories, and Files. These "objects of discourse" are depicted in this object-relation sketch.
The object with the white backgrounds (Project, Experiment, Process, File, Directory, and Dataset) are the main objects that one uses to create a project in Materials Commons and the Python API lets a user create and manipulate each of these object type, except for Dataset. Since Dataset's are used as the means of publishing data on the public data site for Materials Commons, we felt it best that the web site should be used for that final publication.
In the diagram above the lines between the objects a
relationship, but do not specify the nature of that relationship.
In this document, those relations can be thought of as "contains"
in the following way:
These objects are described in the details sections of this documentation.
All API access is through function or method calls in the API
(see the API Details section below). The API requires a
configuration with a base url and an apikey.
The configuration is set up using the file ~/.materialscommons/config.json
(where ~ denoted the user's home directory) .
The URL for the API support by the production version of the
Materials Commons is: materialscommons.org/api
. To
access test site, the corresponding url would be test.materialscommons.org/api
.
For example, suppose the apikey for a given user is
"12345678901234567890". Then that users might have a file ~/.materialscommons/config.json
which contained the following json:
{
"apikey": "12345678901234567890",
"mcurl": "http://mctest.localhost/api"
}
As a user of the API, you can determine your API key in this way. Log into the MaterialsCommons web site, and on the home page, you will see your user name in the upper right hand corner - this is the link to the user-pull-down menu.
Select the menu (click on the link), select "Account Settings" in the menu, and select "show API key" on the resulting page. This will display your API Key. Be careful with this value: possesing it is equivlent to having your username and password.
If you do not have a Materials Commons account, go to the web site and register.
Most of the calls to the API are based on the contains relationship described above. The are "methods" of an object; that is, they are functions that are called using the object that they pertain to. Except in the case of a few "top level function", you first have to obtain the object. For example to make an API call to create a process from a template, you first have to obtain an Experiment: Process objects are "contained" in an Experiment. Then, to create the Experiment, you would first have to obtain a Project object. Since the project object is a top level object, there is a function (not part of any object), to create a project. So the sequence of calls might look like this:
projectName = "Project One"
projectDescription = "This is my first Project"
experimentName = "Experiment One"
experimentDescription = "This is my first Experiment"
myProject = create_project("Project One","This is my first Project)
myExperiment = myProject.create_experiment(name, description)


About
Currently student at IIT Madras, Want to explore all types of software developement. Worked in internships in past.
UI/UX Designer & Web Developer.
Following is the summary of my bio.
- Birthday: 16 Feb, 2002
- Email<EMAIL_ADDRESS>- City: City : Murarai, India
- Age: 19
- Degree: Undergraduate
- Phone: +91<PHONE_NUMBER>
Skills
Resume
Sumary
Sudip Mondal
Innovative and deadline-driven Website Designer, with 6+ years of coding experience. Worked as Backend Web Developer subject matter expert of Physics and Mathematics
- Murarai, West Bengal, India
- (+91)<PHONE_NUMBER>
-<EMAIL_ADDRESS>Education
B.Tech(hons.) Civil Engineering
2020-present
Indian Institute of Technology, Madras, India
CGPA: 8
Senior Secondary (XII)
2018 - 2020
Ramakrishna Mission Vidyapith, Deoghar
Stream: Science
Aggregate: 93.2%
Secondary (X)
2012 - 2018
Ramakrishna Mission Boys' Home, Rahara
Aggregate: 93.0%
Professional Experience
Back-end Developer (Node.js)
Mar, 2021
Mapstreak Flyseas Pvt. Ltd.
- Worked from home
- Made RESTful APIs and documented on postman.
- Developed a wallet facilty from scratch.
- Fixed minor bugs.
Subject Matter Expert (Mathematics)
Jan, 2021 - Mar, 2021
Intellify, New Delhi
- Worked from home
- Led a team of 10 members to make a video tutorial for class 7 and class 8 students.
- Reviewed video content made by video tutoring interns.
Subject Matter Expert (Physics)
Feb, 2021
Dimentics Info Tech Pvt. Ltd., New Delhi
- Worked from home
- Solved given problems as needed, within deadlines.
- created study materials for students.
- Worked in projects as needed.
Services
Trying to provide best services within reseaonable price. Contact me if you need any service.
Website designing
Design and code peronal and commercial websites as per need.
Teaching
Teach python, physics and mathematics up to class 12 level.
Homework help
Do help in solving problems upto class 12 level as well JEE/NEET problems also.
Contact
Location:
Murarai, West Bengal, India
Email:
<EMAIL_ADDRESS>Call:
+91<PHONE_NUMBER>


{% extends "layout.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block content %}
Already registered? Click here to login.


Ocean [af73], ocean, in Crystal Sea
Last updated Turn #104
Ocean [af73], ocean, in Crystal Sea
------------------------------------------------------------------------
10: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
10: 33% damaged, arrived from Ocean [af72], owner:
10: Phantasm [n4b], Imperial Empire, duke, with eight sailors
11: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
11: 33% damaged, departed for Ocean [af74].
Routes leaving Ocean:
North, to Ocean [ae73], 6 days
East, to Ocean [af74], 6 days
South, plain, to Endless Plains [ag73], Imperia, 2 days
West, to Ocean [af72], 6 days
Inner locations:
Island [aa4s], island, 1 day, owner:
Pirate [an7k], pirates, number: 15
It is raining.


## ACCESSIBLE FOR EVERYONE
Accessibility isn’t just about people with disabilities. It’s about everyone.
## ACCESSIBLE CANADA ACT
On June 2019, The Government of Canada passed the **Accessible Canada Act** to remove the barriers including built environments, employment, information & communications technology, procurement of good & services, delivering program and services and transportation.
This law will apply to Parliament, Crown corporations, the federal government and private sector businesses under federal jurisdiction, such as banking, telecommunications and transportation.
## Accessibility is a journey.
It shouldn't be the thing you do last minute
Mike Gifford
Ceo of Openconcept
## What are IAAPCertifications?
### CPACC
Certified Professionals in Accessibility Core Competencies
https://www.accessibilityassociation.org/cpacccertification
### CPACC EXAM DETAILS
- Disabilities
- Universal Design
- Standards, Laws, Strategies
### WAS
Web Accessibility Specialist
https://www.accessibilityassociation.org/wascertification
### CPACC EXAM DETAILS
- HTML code. This does not mean writing HTML code.
- JavaScript. This does not mean writing JavaScript code.
- Usability testing in iOS environments
- Usability testing in Windows environments
- Usability testing with multiple forms of assistive technology
- Browser specific assistive technologies
- ARIA
- ATAG
- Understanding of WCAG 2.1 Standards
- Understanding of accessibility best practices
- Web accessibility auditing and remediation
- Understanding the end-user impacts of web accessibility


The cache provider allows for optional caching and control over the caching for generic dao operations


As an example of a permission, the following code can be used to produce a permission to read the file named "abc" in the /tmp directory:
perm = new java.io.FilePermission("/tmp/abc", "read");New permissions are subclassed either from the Permission class or one of its subclasses, such as java.security.BasicPermission. Subclassed permissions (other than BasicPermission) generally belong to their own packages. Thus, FilePermission is found in the java.io package.
A crucial abstract
method that needs to be implemented for each new class of
permission is the implies
method. Basically, "a
implies b" means that if one is granted permission "a", one is
naturally granted permission "b". This is important when making
access control decisions.
Associated with the abstract class java.security.Permission are the abstract class named java.security.PermissionCollection and the final class java.security.Permissions.
Class
java.security.PermissionCollection represents a collection (i.e., a
set that allows duplicates) of Permission objects for a single
category (such as file permissions), for ease of grouping. In cases
where permissions can be added to the PermissionCollection object
in any order, such as for file permissions, it is crucial that the
PermissionCollection object ensure that the correct semantics are
followed when the implies
function is called.
Class java.security.Permissions represents a collection of collections of Permission objects, or in other words, a super collection of heterogeneous permissions.
Applications are free to add new categories of permissions that the system supports. How to add such application-specific permissions is discussed later in this document.
Now we describe the syntax and semantics of all built-in permissions.
Each permission instance is typically generated by passing one or more string parameters to the constructor. In a common case with two parameters, the first parameter is usually "the name of the target" (such as the name of a file for which the permission is aimed), and the second parameter is the action (such as "read" action on a file). Generally, a set of actions can be specified together as a comma-separated composite string.
The UnresolvedPermission class is used to hold such "unresolved" permissions. Similarly, the class java.security.UnresolvedPermissionCollection stores a collection of UnresolvedPermission permissions.
During access control checking on a permission of a type that was previously unresolved, but whose class has since been loaded, the unresolved permission is "resolved" and the appropriate access control decision is made. That is, a new object of the appropriate class type is instantiated, if possible, based on the information in the UnresolvedPermission. This new object replaces the UnresolvedPermission, which is removed.
If the permission is still unresolvable at this time, the permission is considered invalid, as if it is never granted in a security policy.
file directory (same as directory/) directory/file directory/* (all files in this directory) * (all files in the current directory) directory/- (all files in the file system under this directory) - (all files in the file system under the current directory) "<<ALL FILES>>" (all files in the file system)Note that "<<ALL FILES>>" is a special string denoting all files in the system. On a Solaris, Linux, or Mac OS X system, this includes all files under the root directory. On an MS-DOS system, this includes all files on all drives.
The actions are: read, write, delete, and execute. Therefore, the following are valid code samples for creating file permissions:
import java.io.FilePermission; FilePermission p = new FilePermission("myfile", "read,write"); FilePermission p = new FilePermission("/home/gong/", "read"); FilePermission p = new FilePermission("/tmp/mytmp", "read,delete"); FilePermission p = new FilePermission("/bin/*", "execute"); FilePermission p = new FilePermission("*", "read"); FilePermission p = new FilePermission("/-", "read,execute"); FilePermission p = new FilePermission("-", "read,execute"); FilePermission p = new FilePermission("<<ALL FILES>>", "read");> The
implies
method in this class correctly interprets the
file system. For example, FilePermission("/-", "read,execute")
implies FilePermission("/home/gong/public_html/index.html",
"read"), and FilePermission("bin/*", "execute") implies
FilePermission("bin/emacs19.31", "execute").
Note: Most of these strings are given in platform-dependent format. For example, to represent read access to the file named "foo" in the "temp" directory on the C drive of a Windows system, you would use
FilePermission p = new FilePermission("c:\\temp\\foo", "read");The double backslashes are necessary to represent a single backslash because the strings are processed by a tokenizer (java.io.StreamTokenizer), which allows "\" to be used as an escape string (e.g., "\n" to indicate a new line) and which thus requires two backslashes to indicate a single backslash. After the tokenizer has processed the above FilePermission target string, converting double backslashes to single backslashes, the end result is the actual path
"c:\temp\foo"It is necessary that the strings be given in platform-dependent format until there is a universal file description language. Note also that the use of meta symbols such as "*" and "-" prevents the use of specific file names. We think this is a small limitation that can be tolerated for the moment. Finally, note that "/-" and "<<ALL FILES>>" are the same target on Solaris, Linux, and Mac OS X systems in that they both refer to the entire file system. (They can refer to multiple file systems if they are all available). The two targets are potentially different on other operating systems, such as MS Windows and MacOS.
Also note that a target name that specifies just a directory, with a "read" action, as in
FilePermission p = new FilePermission("/home/gong/", "read");means you are only giving permission to list the files in that directory, not read any of them. To allow read access to files, you must specify either an explicit file name, or an "*" or "-", as in
FilePermission p = new FilePermission("/home/gong/myfile", "read"); FilePermission p = new FilePermission("/home/gong/*", "read"); FilePermission p = new FilePermission("/home/gong/-", "read");And finally, note that code always automatically has permission to read files from its same (URL) location, and subdirectories of that location; it does not need explicit permission to do so.
hostname (a single host) IP address (a single host) localhost (the local machine) "" (equivalent to "localhost") hostname.domain (a single host within the domain) hostname.subdomain.domain *.domain (all hosts in the domain) *.subdomain.domain * (all hosts)That is, the host is expressed as a DNS name, as a numerical IP address, as "localhost" (for the local machine) or as "" (which is equivalent to specifying "localhost").
The wildcard "*" may be included once in a DNS name host specification. If it is included, it must be in the leftmost position, as in "*.sun.com".
The port_range can be given as follows:
N (a single port) N- (all ports numbered N and above) -N (all ports numbered N and below) N1-N2 (all ports between N1 and N2, inclusive)Here N, N1, and N2 are non-negative integers ranging from 0 to 65535 (2^16-1).
The actions on sockets are accept, connect, listen, and resolve (which is basically DNS lookup). Note that implicitly, the action "resolve" is implied by "accept", "connect", and "listen" -- i.e., those who can listen or accept incoming connections from or initiate out-going connections to a host should be able to look up the name of the remote host.
Below are some examples of socket permissions.
import java.net.SocketPermission; SocketPermission p = new SocketPermission("java.example.com","accept"); p = new SocketPermission("<IP_ADDRESS>","accept"); p = new SocketPermission("*.com","connect"); p = new SocketPermission("*.example.com:80","accept"); p = new SocketPermission("*.example.com:-1023","accept"); p = new SocketPermission("*.example.com:1024-","connect"); p = new SocketPermission("java.example.com:8000-9000", "connect,accept"); p = new SocketPermission("localhost:1024-", "accept,connect,listen");Note that SocketPermission("java.example.com:80,8080","accept") and SocketPermission("java.example.com,javasun.example.com","accept") are not valid socket permissions.
Moreover, because listen is an action that applies only to ports on the local host, whereas accept is an action that applies to ports on both the local and remote host, both actions are necessary.
The name for a BasicPermission is the name of the given permission (for example, "exitVM", "setFactory", "queuePrintJob", etc). The naming convention follows the hierarchical property naming convention. An asterisk may appear at the end of the name, following a ".", or by itself, to signify a wildcard match. For example: "java.*" or "*" is valid, "*java" or "a*b" is not valid.
The action string (inherited from Permission) is unused.Thus, BasicPermission is commonly used as the base class for "named" permissions (ones that contain a name but no actions list; you either have the named permission or you don't.) Subclasses may implement actions on top of BasicPermission, if desired.
Some of the BasicPermission subclasses are java.lang.RuntimePermission, java.security.SecurityPermission, java.util.PropertyPermission, and java.net.NetPermission.
This is one of the
BasicPermission subclasses that implements actions on top of
BasicPermission. The actions are read and write. Their meaning is
defined as follows: "read" permission allows the
getProperty
method in java.lang.System to be called to
get the property value, and "write" permission allows the
setProperty
method to be called to set the property
value.
createClassLoader getClassLoader setContextClassLoader setSecurityManager createSecurityManager exitVM setFactory setIO modifyThread stopThread modifyThreadGroup getProtectionDomain readFileDescriptor writeFileDescriptor loadLibrary.{library name} accessClassInPackage.{package name} defineClassInPackage.{package name} accessDeclaredMembers.{class name} queuePrintJob
accessClipboard accessEventQueue listenToAllAWTEvents showWindowWithoutWarningBanner
requestPasswordAuthentication setDefaultAuthenticator specifyStreamHandler
suppressAccessCheckswhich allows suppressing the standard Java programming language access checks -- for public, default (package) access, protected, and private members -- performed by reflected objects at their point of use.
enableSubclassImplementation enableSubstitution
getPolicy setPolicy getProperty.{key} setProperty.{key} insertProvider.{provider name} removeProvider.{provider name} setSystemScope setIdentityPublicKey setIdentityInfo printIdentity addIdentityCertificate removeIdentityCertificate clearProviderProperties.{provider name} putProviderProperty.{provider name} removeProviderProperty.{provider name} getSignerPrivateKey setSignerKeyPair
Clearly much caution is necessary when considering granting this permission.
doAs doAsPrivileged getSubject getSubjectFromDomainCombiner setReadOnly modifyPrincipals modifyPublicCredentials modifyPrivateCredentials refreshCredential destroyCredential createLoginContext.{name} getLoginConfiguration setLoginConfiguration refreshLoginConfiguration
implies
method that represents how the particular
permission class relates to other permission classes. For example,
java.io.FilePermission("/tmp/*", "read") implies
java.io.FilePermission("/tmp/a.txt", "read") but does not imply any
java.net.NetPermission.
There is another layer of implication that may not be immediately obvious to some readers. Suppose that one applet has been granted the permission to write to the entire file system. This presumbly allows the applet to replace the system binary, including the JVM runtime environment. This effectively means that the applet has been granted all permissions.
Another example is that if an applet is granted the runtime permission to create class loaders, it is effectively granted many more permissions, as a class loader can perform sensitive operations.
Other permissions that are "dangerous" to give out include those that allow the setting of system properties, runtime permissions for defining packages and for loading native code libraries (because the Java security architecture is not designed to and does not prevent malicious behavior at the level of native code), and of course the AllPermission.
For more information about permissions, including tables enumerating the risks of assigning specific permissions as well as a table of all the Java 2 SDK built-in methods that require permissions, see Permissions in the Java Development Kit.
To create a new permission, the following steps are recommended, as shown by an example. Suppose an application developer from company ABC wants to create a customized permission to "watch TV".
First, create a new
class com.abc.Permission that extends the abstract class
java.security.Permission (or one of its subclasses), and another
new class com.abc.TVPermission that extends the com.abc.Permission.
Make sure that the implies
method, among others, is
correctly implemented. (Of course, com.abc.TVPermission can
directly extend java.security.Permission; the intermediate
com.abc.Permission is not required.)
public class com.abc.Permission extends java.security.Permission public class com.abc.TVPermission extends com.abc.PermissionThe following figure shows the subclass relationship.
Second, include these new classes with the application package.
Each user that wants
to allow this new type of permission for specific code does so by
adding an entry in a policy file. (Details of the policy file
syntax are given in a later section.) An example of a policy file
entry granting code from http://example.com/
permission to watch
channel 5 would be:
grant codeBase "http://example.com/" { permission com.abc.TVPermission "channel-5", "watch"; }In the application's resource management code, when checking to see if a permission should be granted, call AccessController's
checkPermission
method using a com.abc.TVPermission
object as the parameter.
com.abc.TVPermission tvperm = new com.abc.TVPermission("channel-5", "watch"); AccessController.checkPermission(tvperm);Note that, when adding a new permission, one should create a new (permission) class and not add a new method to the security manager. (In the past, in order to enable checking of a new type of access, you had to add a new method to the SecurityManager class.)
If more elaborate TVPermissions such as "channel-1:13" or "channel-*" are allowed, then it may be necessary to implement a TVPermissionCollection object that knows how to deal with the semantics of these pseudo names.
New code should always
invoke a permission check by calling the
checkPermission
method of the AccessController class
in order to exercise the built-in access control algorithm. There
is no essential need to examine whether there is a ClassLoader or a
SecurityManager. On the other hand, if the algorithm should be left
to the installed security manager class, then the method
SecurityManager.checkPermission
should be invoked
instead.
In order for an applet (or an application running under a SecurityManager) to be allowed to perform secured actions, such as reading or writing a file, the applet (or application) must be granted permission for that particular action. The only exception is that code always automatically has permission to read files from its same CodeSource, and subdirectories of that CodeSource; it does not need explicit permission to do so.
There could be
multiple instances of the Policy object, although only one is "in
effect" at any time. The currently-installed Policy object can be
obtained by calling the getPolicy
method, and it can
be changed by a call to the setPolicy
method (by code
with permission to reset the Policy).
The source location for the policy information utilized by the Policy object is up to the Policy implementation. The policy configuration may be stored, for example, as a flat ASCII file, as a serialized binary file of the Policy class, or as a database. There is a Policy reference implementation that obtains its information from static policy configuration files.
A policy configuration file essentially contains a list of entries. It may contain a "keystore" entry, and contains zero or more "grant" entries.
A keystore is a database of private keys and their associated digital certificates such as X.509 certificate chains authenticating the corresponding public keys. The keytool utility is used to create and administer keystores. The keystore specified in a policy configuration file is used to look up the public keys of the signers specified in the grant entries of the file. A keystore entry must appear in a policy configuration file if any grant entries specify signer aliases, or if any grant entries specify a principal alias (see below).
At this time, there can be only one keystore entry in the policy file (others after the first one are ignored), and it can appear anywhere outside the file's grant entries . It has the following syntax:
keystore "some_keystore_url", "keystore_type";Here, "some_keystore_url" specifies the URL location of the keystore, and "keystore_type" specifies the keystore type. The latter is optional. If not specified, the type is assumed to be that specified by the "keystore.type" property in the security properties file.
The URL is relative to the policy file location. Thus if the policy file is specified in the security properties file as:
policy.url.1=http://foo.bar.example.com/blah/some.policyand that policy file has an entry:
keystore ".keystore";then the keystore will be loaded from:
http://foo.bar.example.com/blah/.keystoreThe URL can also be absolute.
A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. The default type supported by Sun Microsystems is a proprietary keystore type named "JKS".
Each grant entry in a policy file essentially consists of a CodeSource and its permissions. Actually, a CodeSource consists of a URL and a set of certificates, while a policy file entry includes a URL and a list of signer names. The system creates the corresponding CodeSource after consulting the keystore to determine the certificate(s) of the specified signers.
Each grant entry in the policy file is of the following format, where the leading "grant" is a reserved word that signifies the beginning of a new entry and optional items appear in brackets. Within each entry, a leading "permission" is another reserved word that marks the beginning of a new permission in the entry. Each grant entry grants a set of permissions to a specified code source and principals.
grant [SignedBy "signer_names"] [, CodeBase "URL"] [, Principal [principal_class_name] "principal_name"] [, Principal [principal_class_name] "principal_name"] ... { permission permission_class_name [ "target_name" ] [, "action"] [, SignedBy "signer_names"]; permission ... };White spaces are allowed immediately before or after any comma. The name of the permission class must be a fully qualified class name, such as java.io.FilePermission, and cannot be abbreviated (for example, to FilePermission).
Note that the action field is optional in that it can be omitted if the permission class does not require it. If it is present, then it must come immediately after the target field.
The exact meaning of a CodeBase URL value depends on the characters at the end. A CodeBase with a trailing "/" matches all class files (not JAR files) in the specified directory. A CodeBase with a trailing "/*" matches all files (both class and JAR files) contained in that directory. A CodeBase with a trailing "/-" matches all files (both class and JAR files) in the directory and recursively all files in subdirectories contained in that directory.
The CodeBase field (URL) is optional in that, if it is omitted, it signifies "any code base".
The first signer name field is a string alias that is mapped, via a separate mechanism, to a set of public keys (within certificates in the keystore) that are associated with the signers. These keys are used to verify that certain signed classes are really signed by these signers.
This signer field can be a comma-separated string containing names of multiple signers, an example of which is "Adam,Eve,Charles", which means signed by Adam and Eve and Charles (i.e., the relationship is AND, not OR).
This field is optional in that, if it is omitted, it signifies "any signer", or in other words, "It doesn't matter whether the code is signed or not".
The second signer field, inside a Permission entry, represents the alias to the keystore entry containing the public key corresponding to the private key used to sign the bytecodes that implemented the said permission class. This permission entry is effective (i.e., access control permission will be granted based on this entry) only if the bytecode implementation is verified to be correctly signed by the said alias.
A principal value specifies a class_name/principal_name pair which must be present within the executing threads principal set. The principal set is associated with the executing code by way of a Subject. The principal field is optional in that, if it is omitted, it signifies "any principals".
Note on KeyStore Alias Replacement:
If the principal class_name/principal_name pair is specified as
a single quoted string, it is treated as a keystore alias. The
keystore is consulted and queried (via the alias) for an X509
Certificate. If one is found, the principal_class is automatically
treated as javax.security.auth.x500.X500Principal
, and
the principal_name is automatically treated as the subject
distinguished name from the certificate. If an X509 Certificate
mapping is not found, the entire grant entry is ignored.
The order between the CodeBase, SignedBy, and Principal fields does not matter.
An informal BNF grammer for the Policy file format is given below, where non-capitalized terms are terminals:
PolicyFile -> PolicyEntry | PolicyEntry; PolicyFile PolicyEntry -> grant {PermissionEntry}; | grant SignerEntry {PermissionEntry} | grant CodebaseEntry {PermissionEntry} | grant PrincipalEntry {PermissionEntry} | grant SignerEntry, CodebaseEntry {PermissionEntry} | grant CodebaseEntry, SignerEntry {PermissionEntry} | grant SignerEntry, PrincipalEntry {PermissionEntry} | grant PrincipalEntry, SignerEntry {PermissionEntry} | grant CodebaseEntry, PrincipalEntry {PermissionEntry} | grant PrincipalEntry, CodebaseEntry {PermissionEntry} | grant SignerEntry, CodebaseEntry, PrincipalEntry {PermissionEntry} | grant CodebaseEntry, SignerEntry, PrincipalEntry {PermissionEntry} | grant SignerEntry, PrincipalEntry, CodebaseEntry {PermissionEntry} | grant CodebaseEntry, PrincipalEntry, SignerEntry {PermissionEntry} | grant PrincipalEntry, CodebaseEntry, SignerEntry {PermissionEntry} | grant PrincipalEntry, SignerEntry, CodebaseEntry {PermissionEntry} | keystore "url" SignerEntry -> signedby (a comma-separated list of strings) CodebaseEntry -> codebase (a string representation of a URL) PrincipalEntry -> OnePrincipal | OnePrincipal, PrincipalEntry OnePrincipal -> principal [ principal_class_name ] "principal_name" (a principal) PermissionEntry -> OnePermission | OnePermission PermissionEntry OnePermission -> permission permission_class_name [ "target_name" ] [, "action_list"] [, SignerEntry];Now we give some examples. The following policy grants permission a.b.Foo to code signed by Roland:
grant signedBy "Roland" { permission a.b.Foo; };The following grants a FilePermission to all code (regardless of the signer and/or codeBase):
grant { permission java.io.FilePermission ".tmp", "read"; };The following grants two permissions to code that is signed by both Li and Roland:
grant signedBy "Roland,Li" { permission java.io.FilePermission "/tmp/*", "read"; permission java.util.PropertyPermission "user.*"; };The following grants two permissions to code that is signed by Li and that comes from
http://example.com
:
grant codeBase "http://example.com/*", signedBy "Li" { permission java.io.FilePermission "/tmp/*", "read"; permission java.io.SocketPermission "*", "connect"; };The following grants two permissions to code that is signed by both Li and Roland, and only if the bytecodes implementing com.abc.TVPermission are genuinely signed by Li.
grant signedBy "Roland,Li" { permission java.io.FilePermission "/tmp/*", "read"; permission com.abc.TVPermission "channel-5", "watch", signedBy "Li"; };The reason for including the second signer field is to prevent spoofing when a permission class does not reside with the Java runtime installation. For example, a copy of the com.abc.TVPermission class can be downloaded as part of a remote JAR archive, and the user policy might include an entry that refers to it. Because the archive is not long-lived, the second time the com.abc.TVPermission class is downloaded, posssibly from a different web site, it is crucial that the second copy is authentic, as the presence of the permission entry in the user policy might reflect the user's confidence or belief in the first copy of the class bytecode.
The reason we chose to use digital signatures to ensure authenticity, rather than storing (a hash value of) the first copy of the bytecodes and using it to compare with the second copy, is because the author of the permission class can legitimately update the class file to reflect a new design or implementation.
Please note: The strings for a file path must be specified in a platform-dependent format; this is necessary until there is a universal file description language. The above examples have shown strings appropriate on Solaris systems. On Windows systems, when you directly specify a file path in a string, you need to include two backslashes for each actual single backslash in the path, as in
grant signedBy "Roland" { permission java.io.FilePermission "C:\\users\\Cathy\\*", "read"; };This is because the strings are processed by a tokenizer (java.io.StreamTokenizer), which allows "\" to be used as an escape string (e.g., "\n" to indicate a new line) and which thus requires two backslashes to indicate a single backslash. After the tokenizer has processed the above FilePermission target string, converting double backslashes to single backslashes, the end result is the actual path
"C:\users\Cathy\*"Finally, here are some principal-based grant entries:
grant principal javax.security.auth.x500.X500Principal "cn=Alice" { permission java.io.FilePermission "/home/Alice", "read, write"; };This permits any code executing as the X500Principal, "cn=Alice", permission to read and write to "/home/Alice".
The following example shows a grant statement with both codesource and principal information.
grant codebase "http://www.games.example.com", signedBy "Duke", principal javax.security.auth.x500.X500Principal "cn=Alice" { permission java.io.FilePermission "/tmp/games", "read, write"; };This allows code downloaded from "www.games.example.com", signed by "Duke", and executed by "cn=Alice", permission to read and write into the "/tmp/games" directory.
The following example shows a grant statement with KeyStore alias replacement:
keystore "http://foo.bar.example.com/blah/.keystore"; grant principal "alice" { permission java.io.FilePermission "/tmp/games", "read, write"; };"alice" will be replaced by javax.security.auth.x500.X500Principal "cn=Alice" assuming the X.509 certificate associated with the keystore alias, alice, has a subject distinguished name of "cn=Alice". This allows code executed by the X500Principal "cn=Alice" permission to read and write into the "/tmp/games" directory.
Property expansion is similar to expanding variables in a shell. That is, when a string like
appears in a policy file, or in the security properties file, it will be expanded to the value of the specified system property. For example,
permission java.io.FilePermission "${user.home}", "read";will expand "${user.home}" to use the value of the "user.home" system property. If that property's value is "/home/cathy", then the above is equivalent to
permission java.io.FilePermission "/home/cathy", "read";In order to assist in platform-independent policy files, you can also use the special notation of "${/}", which is a shortcut for "${file.separator}". This allows permission designations such as
permission java.io.FilePermission "${user.home}${/}*", "read";If user.home is /home/cathy, and you are on Solaris, the above gets converted to:
permission java.io.FilePermission "/home/cathy/*", "read";If on the other hand user.home is C:\users\cathy and you are on a Windows system, the above gets converted to:
permission java.io.FilePermission "C:\users\cathy\*", "read";Also, as a special case, if you expand a property in a codebase, such as
grant codeBase "file:/${java.home}/lib/ext/"then any file.separator characters will be automatically converted to /'s, which is desirable since codebases are URLs. Thus on a Windows system, even if java.home is set to C:\j2sdk1.2, the above would get converted to
grant codeBase "file:/C:/j2sdk1.2/lib/ext/"Thus you don't need to use ${/} in codebase strings (and you shouldn't).
Property expansion takes place anywhere a double quoted string is allowed in the policy file. This includes the signedby, codebase, target names, and actions fields.
Whether or not property expansion is allowed is controlled by the value of the "policy.expandProperties" property in the security properties file. If the value of this property is true (the default), expansion is allowed.
Please note: You can't use nested properties; they will not work. For example,
"${user.${foo}}"doesn't work, even if the "foo" property is set to "home". The reason is the property parser doesn't recognize nested properties; it simply looks for the first "${", and then keeps looking until it finds the first "}" and tries to interpret the result "${user.$foo}" as a property, but fails if there is no such property.
Also note: If a property can't be expanded in a grant entry, permission entry, or keystore entry, that entry is ignored. For example, if the system property "foo" is not defined and you have:
grant codeBase "${foo}" { permission ...; permission ...; };then all the permissions in this grant entry are ignored. If you have
grant { permission Foo "${foo}"; permission Bar; };then only the "permission Foo..." entry is ignored. And finally, if you have
keystore "${foo}";then the keystore entry is ignored.
One final note: On Windows systems, when you directly specify a file path in a string, you need to include two backslashes for each actual single backslash in the path, as in
"C:\\users\\cathy\\foo.bat"This is because the strings are processed by a tokenizer (java.io.StreamTokenizer), which allows "\" to be used as an escape string (e.g., "\n" to indicate a new line) and which thus requires two backslashes to indicate a single backslash. After the tokenizer has processed the above string, converting double backslashes to single backslashes, the end result is
"C:\users\cathy\foo.bat"Expansion of a property in a string takes place after the tokenizer has processed the string. Thus if you have the string
"${user.home}\\foo.bat"then first the tokenizer processes the string, converting the double backslashes to a single backslash, and the result is
"${user.home}\foo.bat"Then the ${user.home} property is expanded and the end result is
"C:\users\cathy\foo.bat"assuming the user.home value is "C:\users\cathy". Of course, for platform independence, it would be better if the string was initially specified without any explicit slashes, i.e., using the ${/} property instead, as in
"${user.home}${/}foo.bat"
There are two protocols supported in the default policy file implementation:
The protocol, self, denotes a replacement of the entire string, ${{self}}, with one or more principal class/name pairs. The exact replacement performed depends upon the contents of the grant clause to which the permission belongs.
If the grant clause does not contain any principal information, the permission will be ignored (permissions containing ${{self}} in their target names are only valid in the context of a principal-based grant clause). For example, BarPermission will always be ignored in the following grant clause:
grant codebase "www.foo.example.com", signedby "duke" { permission BarPermission "... ${{self}} ..."; };If the grant clause contains principal information, ${{self}} will be replaced with that same principal information. For example, ${{self}} in BarPermission will be replaced by javax.security.auth.x500.X500Principal "cn=Duke" in the following grant clause:
grant principal javax.security.auth.x500.X500Principal "cn=Duke" { permission BarPermission "... ${{self}} ..."; };If there is a comma-separated list of principals in the grant clause, then ${{self}} will be replaced by the same comma-separated list or principals. In the case where both the principal class and name are wildcarded in the grant clause, ${{self}} is replaced with all the principals associated with the
Subject
in the
current AccessControlContext
.
The following example describes a scenario involving both self and KeyStore alias replacement together:
keystore "http://foo.bar.example.com/blah/.keystore"; grant principal "duke" { permission BarPermission "... ${{self}} ..."; };In the above example, "duke" will first be expanded into javax.security.auth.x500.X500Principal "cn=Duke" assuming the X.509 certificate associated with the KeyStore alias, "duke", has a subject distinguished name of "cn=Duke". Next, ${{self}} will be replaced with the same principal information that just got expanded in the grant clause: javax.security.auth.x500.X500Principal "cn=Duke".
The protocol, alias, denotes a java.security.KeyStore
alias substitution. The KeyStore
used is the one
specified in the KeyStore entry.
alias_name represents an alias into the
KeyStore
. ${{alias:alias_name}} is replaced
with javax.security.auth.x500.X500Principal "DN", where
DN represents the subject distinguished name of the
certificate belonging to alias_name. For example:
keystore "http://foo.bar.example.com/blah/.keystore"; grant codebase "www.foo.example.com" { permission BarPermission "... ${{alias:duke}} ..."; };In the above example the X.509 certificate associated with the alias, duke, is retrieved from the
KeyStore
,
foo.bar.example.com/blah/.keystore. Assuming duke's
certificate specifies "o=dukeOrg, cn=duke" as the subject
distinguished name, then ${{alias:duke}} is replaced with
javax.security.auth.x500.X500Principal "o=dukeOrg, cn=duke".
The permission entry is ignored under the following error conditions:
getPermissions
or implies
method on the Policy object that is
installed in the VM.
Clearly, a given code source in a ProtectionDomain can match the code source given in multiple entries in the policy, for example because the wildcard "*" is allowed.
The following algorithm is used to locate the appropriate set of permissions in the policy.
1. match the public keys, if code is signed. 2. if a key is not recognized in the policy, ignore the key if every key is ignored, treat the code as unsigned. 3. if the keys are matched, or no signer was specified { try to match all URLs in the policy for the keys } 4. if the keys are matched (or no signer was specified), and the URLs are matched (or no codebase was specified) { try to match all principals in the policy with the principals associated with the current executing thread. 5. if either key, URL, or principals are not matched, use built-in default permission, which is the original sandbox permission.The exact meaning of a policy entry codeBase URL value depends on the characters at the end. A codeBase with a trailing "/" matches all class files (not JAR files) in the specified directory. A codeBase with a trailing "/*" matches all files (both class and JAR files) contained in that directory. A codeBase with a trailing "/-" matches all files (both class and JAR files) in the directory and recursively all files in subdirectories contained in that directory.
As an example, given "http://example.com/-" in the policy, then any code base that is on this web site matches the policy entry. Matching code bases include "http://example.com/j2se/sdk/" and "http://example.com/people/gong/appl.jar".
If multiple entries are matched, then all the permissions given in those entries are granted. In other words, permission assignment is additive. For example, if code signed with key A gets permission X and code signed by key B gets permission Y and no particular codebase is specified, then code signed by both A and B gets permissions X and Y. Similarly, if code with codeBase "http://example.com/-" is given permission X, and "http://example.com/people/*" is given permission Y, and no particular signers are specified, then an applet from "http://example.com/people/applet.jar" gets both X and Y.
Note that URL matching here is purely syntactic. For example, a policy can give an entry that specifies a URL "ftp://ftp.sun.com". Such an entry is useful only when one can obtain Java code directly from ftp for execution.
To specify URLs for the local file system, a file URL can be used. For example, to specify files in the /home/cathy/temp directory in a Solaris system, you'd use
"file:/home/cathy/temp/*"To specify files in the "temp" directory on the C drive in a Windows system, use
"file:/c:/temp/*"Note: code base URLs always use slashes (no backlashes), regardless of the platform they apply to.
You can also use an absolute path name such as
"/home/gong/bin/MyWonderfulJava"
A policy file can be composed via a simple text editor, or via a graphical PolicyTool utility that is described later.
There is by default a single system-wide policy file, and a single user policy file.
The system policy file is by default located at
{java.home}/lib/security/java.policy (Solaris) {java.home}\lib\security\java.policy (Windows)Here, java.home is a system property specifying the directory into which the Java 2 SDK was installed.
The user policy file is by default located at
{user.home}/.java.policy (Solaris) {user.home}\.java.policy (Windows)Here, user.home is a system property specifying the user's home directory.
When the Policy is initialized, the system policy is loaded in first, and then the user policy is added to it. If neither policy is present, a built-in policy is used. This built-in policy is the same as the original sandbox policy.
Policy file locations are specified in the security properties file, which is located at
{java.home}/lib/security/java.security (Solaris) {java.home}\lib/security\java.security (Windows)The policy file locations are specified as the values of properties whose names are of the form
policy.url.nHere, n is a number. You specify each such property value in a line of the following form:
policy.url.n=URLHere, URL is a URL specification. For example, the default system and user policy files are defined in the security properties file as
policy.url.1=file:${java.home}/lib/security/java.policy policy.url.2=file:${user.home}/.java.policyYou can actually specify a number of URLs, including ones of the form "http://", and all the designated policy files will get loaded. You can also comment out or change the second one to disable reading the default user policy file.
The algorithm starts at policy.url.1, and keeps incrementing until it does not find a URL. Thus if you have policy.url.1 and policy.url.3, policy.url.3 will never be read.
It is also possible to specify an additional or a different policy file when invoking execution of an application. This can be done via the "-Djava.security.policy" command-line argument, which sets the value of the java.security.policy property. For example, if you use
java -Djava.security.manager -Djava.security.policy=pURL SomeAppHere, pURL is a URL specifying the location of a policy file, then the specified policy file will be loaded in addition to all the policy files that are specified in the security properties file. (The "-Djava.security.manager" argument ensures that the default security manager is installed, and thus the application is subject to policy checks, as described in "Security Management for Applets and Applications". It is not required if the application SomeApp installs a security manager.)
If you use the following, with a double equals, then just the specified policy file will be used; all others will be ignored.
java -Djava.security.manager -Djava.security.policy==pURL SomeAppIf you want to pass a policy file to the appletviewer, again use a "-Djava.security.policy" argument as follows:
appletviewer -J-Djava.security.policy=pURL myAppletPlease note: The "-Djava.security.policy" policy file value will be ignored (for both java and appletviewer commands) if the "policy.allowSystemProperty" property in the security properties file is set to false. The default is true.
getPermissions
method (and other
methods as necessary).
The Policy reference implementation can be changed by resetting the value of the "policy.provider" security property (in the security properties file) to the fully qualified name of the desired Policy implementation class. The security properties file is located in the file named
{java.home}/lib/security/java.security (Solaris) {java.home}\lib\security\java.security (Windows)Here, {java.home} refers to the directory where the runtime environment is installed -- either the jre directory inside the Java 2 SDK, or the top-level directory of the Java 2 Runtime Environment.
The property policy.provider specifies the name of the policy class, and the default is the following:
policy.provider=sun.security.provider.PolicyFileTo customize, you can change the property value to specify another class, as in
policy.provider=com.mycom.MyPolicyNote that the MyPolicy class must be a subclass of java.security.Policy. It is perhaps worth emphasizing that such an override of the policy class is a temporary solution and a more comprehensive policy API will probably make this unnecessary.
There are currently still two exceptions within the java.security package that are subclasses from RuntimeException. We at this moment cannot change these due to backward compatibility requirements. We will revisit this issue in the future.


Windows Azure Media Player Framework HTML5 Sample
Your browser does not support the
video
element.
Your browser does not support the
video
element.
video currentTime:
??
video duration:
??
seekbar position:
max seek:
buffered:
none
seekable:
none
error:
status:
Log:


library(tidyverse)
1 Exercise collection: Life exptectancy
Get the data from this source.
gapminder_raw <- read_csv("https://raw.githubusercontent.com/swcarpentry/r-novice-gapminder/gh-pages/_episodes_rmd/data/gapminder-FiveYearData.csv")
2 Disclosure
This exercises are based on a tutorial by Rebekka Barter. Great work!
3 Research questions
How did life expectancy change in the course of the last decades? Did id change differently between the continents?
How does life expectancy differs today between the continents?
Is life expectancy related to GDP? If so, to what degree (and form)? Is this assocication moderated by continent?
4 First steps
First, open a script or Rmd file in RStudio. Next make sure you start (“load”) the necessary R packages, and import the data.
5 Getting help
- Data wrangling cheatsheet
- Data vizualization cheatsheet
- It’s a low brainer, but it works: Just google for it. For example, if you are struggling how to reduce transparency of dots in a (ggplot2) plot, try “ggplot2 reduce transparency points” or similar queries.
6 Exercises
6.1 Data Wrangling
Filter the data for the Americas in 2007, deselect all other variables.
Create the variable
gdp
, defined as the product of population size and gdp per person.Identify the observation with lowest gdp per person.
Identify all observations with above average life expectancy, stratified for each continent.
Count the observations identified in the last step.
Compute the mean life expectancy (the grand mean; ie., across all observations).
Compute the mean life expectancy for each year.
6.2 Data Visualization
Create a scatter plot showing the association of gdp per person and life expectancy. Put the putative cause on the X axis and the putative effect on the y axis.
Add a rolling average line (also known as LOESS smoother).
Add a linear model line.
Create a scatter plot with year on the x axis, and life expectancy on the y axis. Each point should indicate the average life expectancy per year. Connect the dots with a line.
Modify the last plot so that there is a line for each continent (ie., group by continent).
Create a scatter plot showing the assocation of gdp per person and life expectancy. Put the putative cause on the X axis and the putative effect on the y axis. The color of the dots should map to the respective continent.
Modify the last plot so that the size of the dots represents the population size. In addition, increase the transparency of the dots in order to mitigate overplotting.
Modify the last plot so that there’s a facet (sub-plot) for each continent.
Modify the last plot so that GDP is log transformed.
7 Solutions
You’ll find the solutions here.
8 Reproducibility
#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.0.2 (2020-06-22)
#> os macOS 10.16
#> system x86_64, darwin17.0
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Europe/Berlin
#> date 2021-02-24
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#> package * version date lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.0)
#> blogdown 1.1 2021-01-19 [1] CRAN (R 4.0.2)
#> bookdown 0.21.6 2021-02-02 [1] Github (rstudio/bookdown@6c7346a)
#> bslib <IP_ADDRESS>00 2021-02-02 [1] Github (rstudio/bslib@b3cd7a9)
#> cachem 1.0.4 2021-02-13 [1] CRAN (R 4.0.2)
#> callr 3.5.1 2020-10-13 [1] CRAN (R 4.0.2)
#> cli 2.3.1 2021-02-23 [1] CRAN (R 4.0.2)
#> crayon 1.4.1 2021-02-08 [1] CRAN (R 4.0.2)
#> desc 1.2.0 2018-05-01 [1] CRAN (R 4.0.0)
#> devtools 2.3.2 2020-09-18 [1] CRAN (R 4.0.2)
#> digest 0.6.27 2020-10-24 [1] CRAN (R 4.0.2)
#> ellipsis 0.3.1 2020-05-15 [1] CRAN (R 4.0.0)
#> evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.0)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.0.2)
#> fs 1.5.0 2020-07-31 [1] CRAN (R 4.0.2)
#> glue 1.4.2 2020-08-27 [1] CRAN (R 4.0.2)
#> htmltools <IP_ADDRESS> 2021-01-22 [1] CRAN (R 4.0.2)
#> jquerylib 0.1.3 2020-12-17 [1] CRAN (R 4.0.2)
#> jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.0.2)
#> knitr 1.31 2021-01-27 [1] CRAN (R 4.0.2)
#> lifecycle 1.0.0 2021-02-15 [1] CRAN (R 4.0.2)
#> magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.0.2)
#> memoise 2.0.0 2021-01-26 [1] CRAN (R 4.0.2)
#> pkgbuild 1.2.0 2020-12-15 [1] CRAN (R 4.0.2)
#> pkgload 1.2.0 2021-02-23 [1] CRAN (R 4.0.2)
#> prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.0.0)
#> processx 3.4.5 2020-11-30 [1] CRAN (R 4.0.2)
#> ps 1.5.0 2020-12-05 [1] CRAN (R 4.0.2)
#> purrr 0.3.4 2020-04-17 [1] CRAN (R 4.0.0)
#> R6 2.5.0 2020-10-28 [1] CRAN (R 4.0.2)
#> remotes 2.2.0 2020-07-21 [1] CRAN (R 4.0.2)
#> rlang 0.4.10 2020-12-30 [1] CRAN (R 4.0.2)
#> rmarkdown 2.7 2021-02-19 [1] CRAN (R 4.0.2)
#> rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.0.2)
#> sass 0.3.1 2021-01-24 [1] CRAN (R 4.0.2)
#> sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.0)
#> stringi 1.5.3 2020-09-09 [1] CRAN (R 4.0.2)
#> stringr 1.4.0 2019-02-10 [1] CRAN (R 4.0.0)
#> testthat 3.0.2 2021-02-14 [1] CRAN (R 4.0.2)
#> usethis 2.0.1 2021-02-10 [1] CRAN (R 4.0.2)
#> withr 2.4.1 2021-01-26 [1] CRAN (R 4.0.2)
#> xfun 0.21 2021-02-10 [1] CRAN (R 4.0.2)
#> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.0.0)
#>
#> [1] /Users/sebastiansaueruser/Rlibs
#> [2] /Library/Frameworks/R.framework/Versions/4.0/Resources/library


Full Name : {{ vm.address.departmentName }}
Organization Name : {{ vm.address.organisationName }}
Address Line 1 (or company name) : {{ vm.address.buildingName }}
Address Line 2 (Optional) : {{ vm.address.streetAddress }}
Country : {{ vm.address.locality }}
Town/City : {{ vm.address.postTown }}
Post Code : {{ vm.address.postcode }}


Add Users
{{msg}}
Choose File to Upload
cloud_upload
Choose File
{{file.name}}
submit
Add Single User
You can Add Single User
UserType
-- select an option --
admin
tester
devloper
UserName
Password
Email
Add Profile


{% extends "base.html" %} {% block title %}Runnable Demos{% endblock %} {% block content %}
These demos are configured to use the free sample AddressBase dataset which only covers Exeter
Search for business addresses on a Leaflet map Leaflet map
Note that this demo only works in or near Exeter (area covered by the ABP free sample data).
It uses client-side calls so you will need to provide the Basic auth string version of your username and password (e.g. Basic xxxxx paste in xxxxx) to access the API
{% endblock %}


Hacker News
new
|
comments
|
show
|
ask
|
jobs
|
submit
login
1.
fork() can fail
(rachelbythebay.com)
111 points
by
dantiberian
1 hour ago |
34 comments
2.
Fish vs. Fish in Street Fighter II
(twitch.tv)
151 points
by
cyberfart
2 hours ago |
24 comments
3.
YouTab: Automatically get chords for music
(youtab.me)
159 points
by
yoodit
3 hours ago |
47 comments
4.
GNU LibreJS
(gnu.org)
20 points
by
willfarrell
38 minutes ago |
8 comments
5.
Apache Wave on Sandstorm.io
(sandstorm.io)
50 points
by
srpeck
3 hours ago |
12 comments
6.
Show HN: Decentralized, k-ordered unique IDs in Clojure
(github.com)
31 points
by
llambda
6 hours ago |
2 comments
7.
Ancient Maya cities found in jungle
(discovery.com)
32 points
by
jdmitch
5 hours ago |
3 comments
8.
Security Analysis of a Full-Body Scanner
(radsec.org)
36 points
by
jakemask
2 hours ago |
9 comments
9.
Optimizing Elasticsearch Searches
(found.no)
30 points
by
brasetvik
7 hours ago |
discuss
10.
Who Stole the Four-Hour Workday?
(vice.com)
78 points
by
ca98am79
5 hours ago |
42 comments
11.
The color of every photo on the internet blended together is orange
(theatlantic.com)
25 points
by
krazydad
3 hours ago |
13 comments
12.
The Three Christs of Ypsilanti (2013)
(damninteresting.com)
30 points
by
mr_tyzic
2 hours ago |
11 comments
13.
Dat, open-source software, seeks to restart the open data revolution
(wired.com)
38 points
by
gordon_freeman
2 hours ago |
7 comments
14.
Knot DNS: A high-performance, authoritative DNS server
(lwn.net)
4 points
by
oerdnj
1 hour ago |
discuss
15.
A Software Design Manifesto (1990)
(stanford.edu)
8 points
by
_pius
1 hour ago |
2 comments
16.
Learn Dart in 15 Minutes
(learnxinyminutes.com)
40 points
by
tosh
4 hours ago |
27 comments
17.
The Tech Behind Dropboxâ€™s New User Experience on Mobile, Part 2
(dropbox.com)
56 points
by
tweakz
3 hours ago |
18 comments
18.
The Great Microservices vs. Monolithic Apps Twitter Melee
(highscalability.com)
19 points
by
Garbage
2 hours ago |
5 comments
19.
Uber Opens Its API
(techcrunch.com)
130 points
by
zabalmendi
7 hours ago |
72 comments
20.
Counterfeit U.S. Cash Floods Crime Forums
(krebsonsecurity.com)
6 points
by
denwer
1 hour ago |
discuss
21.
Abacus (YC W14) is hiring a full stack engineer in NYC
(abacus.com)
1 hour ago
22.
John Tye: the kinder, gentler, and by-the-book whistleblower
(arstechnica.com)
15 points
by
grej
6 hours ago |
4 comments
23.
Thumbtack, an Online Market for Services, Raises $100M
(nytimes.com)
67 points
by
elsewhen
4 hours ago |
14 comments
24.
Amazon.com Coming to Shanghai's Free-Trade Zone
(wsj.com)
8 points
by
mstolpm
1 hour ago |
discuss
25.
Show HN: Opstarts â€“ Startup planning and forecasting without spreadsheets
(opstarts.com)
58 points
by
devahaz
1 hour ago |
19 comments
26.
Continuations and Exceptions
(neilmitchell.blogspot.com)
3 points
by
chicken_lady
1 hour ago |
discuss
27.
Network Stack Specialization for Performance [pdf]
(cam.ac.uk)
13 points
by
adamnemecek
3 hours ago |
discuss
28.
Robustness versus Acceleration in gradient descent
(mrtz.org)
3 points
by
j2kun
1 hour ago |
discuss
29.
Help the Smithsonian transcribe its collections
(smithsonianmag.com)
3 points
by
frenchman_in_ny
48 minutes ago |
discuss
30.
Uber starts same-day grocery delivery service in US
(bbc.co.uk)
58 points
by
HarveyKandola
3 hours ago |
43 comments
More
Guidelines
|
FAQ
|
Lists
|
Bookmarklet
|
DMCA
|
News News
|
Bugs and Feature Requests
|
Y Combinator
|
Apply
|
Library
|
Contact
Search:


PRACTICE APP
Preferred Currency
TRY
USD
EUR
GBP
Latest Rates
Parity
Rate
Login to Make Investments
Email address
Password
Register
Login
My Investments
From
To
Date
Profit
Create / Delete
USD
TRY
EUR
GBP
USD
TRY
EUR
GBP
Add Investment


Free to download All apps No Need of Jailbreak & Apple ID
① Agreed to install, will automatically start on the desktop to install
② After the installation is complete, the first time you open the APP need to trust the certificate
Beijing Founder Electronics Co Ltd
>


Bass editor with opened Sound Properties context menu of selected sound. Audio signal visualization tool is enabled and can be used for time-domain analysis of selected track or bass guitar connected through microphone input.
Fretboard can be used for quick preview of sound samples, for creating sounds with drag & drop operation, or for visualization of played notes during playback.
Drums/Percussions editor is much simpler. Sounds are defined only by time position and volume intensity. Drag & drop operation is also available for faster copying or moving of single sounds.
In the piano editor, every note (key) is represented in a separate row. Editing consist of drag & drop and resize operations (similar to the bass editor), and a few keyboard controls.
Application in the Playlist mode with single row layout and horizontal scrolling, and with Fretboard tool enabled. Suitable for smaller screens or using in videos.
Application in the Playlist mode with 2-rows layout and vertical scrolling. Also a different notation is presented here - with fret numbers only and without colors.
Playlist is a sequence of already composed sections in the project. Playlist editor also allows to easy duplicate repetitive sections.
You can define as many playlists as you wish, either for favorite parts that you often use for practising, or to create a different version of the same song.


Add new search engines using the "Add engine" button in the "Search engines" section. You can also load your search bar engines from Firefox. Engines will appear in the SSS popup and context menu when you select text on a page. SSS comes with a few examples!
You can change the engine names, search URLs, and icon URLs. When you click a search engine in the popup or context menu, {searchTerms} (in the search URL) will be replaced by the selected text. Additionally (this is a more advanced use), if {hostname} is present, it will be replaced by the website domain you are on.
Having trouble finding icons? Maybe try this link. :)
For customizing the popup look, context menu, click behaviour, etc, please check the other options in this page.
Troubleshooting
Having problems?
If an icon does not appear and its URL is correct, please check if that still happens if you disable your ad blocker and add the icon URL again. Some blocking lists in your ad blocker can stop certain images from downloading! (ex.: YouTube may be blocked by "Fanboy's Annoyance List")
Some search engine icons may not appear if they are "resource://" links (some imported engines have those). This is normal, unfortunately. Please try finding another icon for the engine here!
Does the popup not appear at all on some websites or frames of a website? It may be a website content policy or an incompatibility with SSS. For example, addons.mozilla.org disables page modifications, and bugzilla.mozilla.org blocks most images. If you find another site, please report it using the issues link below and I'll see what I can do!
Is your problem not here? Or maybe you found a bug? Contact me or post an issue here.
Search engines
Name
Search link
Icon link
Load browser search engines
Import browser engines. SSS can't do this automatically in WebExtensions! Please select the "search.json.mozlz4" file, usually located here:
NOTE: The folders may be hidden. Please refer to this page.
NOTE: Some icons may not appear if they are "resource://" links.
Reset search engines
Resets search engines to the defaults (as if running SSS for the first time).
Popup/icons behaviour
Opening behaviour
When to open the popup. (default: Auto)
Middle mouse click margin
Adds a margin in pixels so you can middle-click near the selection as well as on it. (default: 14)
Popup location
Where the popup should appear after selecting text. (default: At cursor location)
Left mouse button click
What to do when a search engine is clicked with the left mouse button. (default: Open in this tab)
Middle mouse button click
What to do when a search engine is clicked with the middle mouse button. (default: Open in new background tab)
Minimum selected characters
In "Auto" opening behaviour, only shows popup if you have at least this number of characters selected (discarding surrounding spaces). Setting to 0 always shows. (default: 0)
Allow popup on editable fields
Show the popup when text is selected with the mouse on an editable text field, such as a login form, a search bar, or an email composing window. NOTE: "Shortcut to open popup" ignores this setting and always works on editable fields. (default: Off)
Hide popup on page scroll
Hides the popup when the page moves. (default: On)
Hide popup on right click
Hides the popup when the right mouse button is pressed outside the popup. NOTE: Left or middle clicks always hide it regardless. (default: On)
Hide popup on search engine click
Hides the popup when a search engine is clicked. (default: On)
Shortcut to open popup
Ctrl+Shift+SpaceCmd+Shift+Space
[NOTE: Only configurable in Firefox 60+]
Opens the popup if you have text selected. Works for editable fields even if "Allow popup on editable fields" is Off. Useful if "Opening behaviour" is set to Keyboard-only.
[Press for details on how to write the shortcut]
Use Ctrl (it means Command on Mac), Alt, MacCtrl (actual Control key on Mac), Shift and the desired key. Check this link for more details.
NOTE: Many shortcuts are reserved for the browser. If yours doesn't work please try another combination!
(default: Ctrl+Shift+Space)
Shortcut to toggle auto popup opening
Ctrl+Shift+UCmd+Shift+U
[NOTE: Only configurable in Firefox 60+]
Toggles "Opening behaviour" setting between Auto and Keyboard-only modes (if not Off). Use this when the popup is getting in your way.
[Press for details on how to write the shortcut]
Use Ctrl (it means Command on Mac), Alt, MacCtrl (actual Control key on Mac), Shift and the desired key. Check this link for more details.
NOTE: Many shortcuts are reserved for the browser. If yours doesn't work please try another combination!
(default: Ctrl+Shift+U)
Popup animation duration
Duration of popup animation, in milliseconds. Use 0 to make the popup show instantly. (default: 100)
Auto copy to clipboard
Automatically copy selected text to clipboard when popup opens. (default: Off)
Popup/icons look
Display in a single row
Places all search engines in a single row, instead of a grid. (default: On)
Number of icons per row in grid
Max number of search engines per row when in grid (i.e. if "Use single row" is off). (default: 4)
Icon size
Search engine icon size in pixels. (default: 24)
Separator width
Separator icon width as a percentage of icon size. (default: 60%)
Icon horizontal padding
Search engine icon horizontal padding (left and right) in pixels. (default: 2)
Icon vertical padding
Search engine icon vertical padding (top and bottom) in pixels. (default: 1)
Icon hover behaviour
What happens to hovered search engine icons. (default: Highlight & Move)
Icon roundness
Icon border radius in pixels. Makes icons more or less round. NOTE: this will likely be unnoticeable on icons without a background. (default: 0)
Popup background color
Color for the popup background. Supports transparency using #rrggbbaa. (default: white, #FFFFFF)
Popup highlight color
Color for the popup highlight. Supports transparency using #rrggbbaa. (default: blue, #3399FF)
Popup border radius in pixels. Makes popup more or less round. (default: 2)
Context menu
Is the context menu enabled?
Enables a "Search for..." context menu with all search engines. Appears when you right click somewhere with text selected. (default: On)
Context menu item click behaviour
What to do when a search engine is clicked in the context menu. NOTE: This is NOT for clicking a search engine in the popup, only in the context menu. For the former, please see the "Popup/icons behaviour" section. (default: Open in new background tab)
Context menu engines filter
What engines to show on the context menu. (default: Same as popup)
Storage & backup
Storage size
This is an estimate size of your SSS engines and settings. Engines with "data:image" icons tend to occupy a lot of space (these are generally imported from the browser). WARNING: Actual size may be over (or below) the displayed value.
Sync settings (upload)
Saves all SSS settings and engines in Firefox Sync. This does not force upload, so you may have to wait for Firefox or force sync yourself. Beware that storage size must be below 100KB for this to work. Estimate size is not exact, so it may still work if above the limit, or fail if below it.
Sync settings (download)
Downloads previously saved SSS settings and engines from Firefox Sync. This will override all existing settings and engines!
Export settings to file
Exports all SSS settings and engines to a file.
Import settings from file
Imports SSS settings and engines from a file (previously exported). This will override all existing settings and engines!
Reset
Reset settings
Resets all options except search engines to their defaults (as if running SSS for the first time).


sequenceDiagram
title: FancySequenceDiagram
accDescription Test a description
participant Alice
participant Bob
participant John as John
Second Line
autonumber 10 10
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: John thinks a long
long time, so long
that the text does
not fit on a row.
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John - we're still waiting to know
how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John
finally snaps out of it.
end
autonumber off
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
autonumber
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
autonumber 200
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end


Shopping List App
non-technical description
The Shopping Lists App is an IOS application that allows users to easily create and share lists. List items contain text, an optional link, and an optional image. The Shopping Lists App beats out competition with its real time updates of lists, efficiently designed RESTful service, and beautifully designed user interface.
technical elaboration
This application uses NodeJS to run the REST service that helps users make updates to their lists, and automatically updates users of list changes with Pushkit. The service is run on AWS EC2, information is stored in MongoDB, and photos are stored in S3. The front end of the application is built using Swift.
Highlights
-
2-step email authentication is used to for added protection of users information
-
The front-end is built with the latest and greatest SwiftUI which now is built with an MVVM software architectural pattern.
-
The server is built on NodeJS which will allow me to make the application support cross-platform communication in the future. This means to make the app available for android device users, I would only need to program the front end for android devices.
-
To reduce load on the server, and improve user experience, recently accessed photos are stored locally on the users device using Apples Core Data.
-
The entire backend is built on Promises and awaits. This eliminates all use of call backs making the code significantly more readable, and easier to debug.
Text Based Omni Games
non-technical description
Text Based Omni Games is a 4-player multiplayer game. It is a series of minigames run entirely in the terminal. Players compete in 4 different minigames all inspired by a minigame in the game Dota 2.
technical elaboration
The application was created entirely with C++, and users recieve updates on the game in real time from the host of game. The entire networking of the applicationis built entirely by me from the application layer, no additional libraries or APIs were used to handle client-server communications.
Highlights
-
The server is implemented using multi-threading to handle user input as well as communications with users in the game.
-
The client is also multi-threaded and simultaneously handles user interactions with the text-based UI and recieves asynchronous updates from the server on the game, and other players state.
-
Networking code was written seperately from the game logic allowing for reuse of the networking code on future projects.
Pet Simulator
non-technical description
Pet Simulator was a game where your pet would run around on the map and you could drop food, water, and toys to keep your pet happy and alive. The goal was to keep the pet alive. Your pet could die from boredom, starvation, and thirst.
technical elaboration
Pet Simulator was built entirely using C++ and a 2d graphing API called SFML. Follows object oriented designs, and makes use of inheritence.
Highlights
-
Worked on a team of 3 members who I met the day of the hackathon.
-
Went from conception, to mapping out the design of the program, to dividing up the work, and ultimately finishing our game in under 24 hours.


Ivan Nazarenko, Kiev National University of Construction and Architecture, Head of the Department of Machines and Equipment for Technological Processes, https://orcid.org/ 0000-0002-1888-3687
Mykola Kuzminets, National Transport University, Head of the Department of Computer, Engineering Graphics and Design, https://orcid.org/0000-0002-9636-919X
Oleg Dedov, Kiev National University of Construction and Architecture, Department of Machines and Equipment for Technological Processes, https://orcid.org/0000-0001-5006-772X
Igor Zalіsko, Candidate of Technical Sciences, Director of the company "Production and Commercial Firm Drohobych Truck Crane Plant".
Abstract: The article considers a system that combines the influence of static on dynamic loads on the example of the support-rotary circuit of a truck construction crane. The position of the system and its elements with the highest loads is revealed, the method of creating steel structures is investigated, each element, depending on the average load, experiences a stress-strain state. The basic laws of the theory of elasticity and plasticity were used to build a calculated mathematical model of the loaded support-rotary circuit. Equations of motion were compiled taking into account the behavior of structural elements and the machine as a whole under the simultaneous action of different loads.
The calculation scheme was taken in the form of a structure consisting of rods rigidly connected to each other in nodes. As a method of calculation the method of finite elements with definition of displacements (deformations), efforts (stresses) in nodes of a grid of constructive elements of a design of a basic-rotary contour is applied. The stress distribution in each structural element depending on the type of load was obtained. This distribution allowed to choose rational parameters of a design in each its section. The proposed approach allowed to create a solid structure that provides reliability and economy of material. Thus, the results obtained allowed to fully analyze and decide on the simultaneous provision of strength, rigidity and minimum material consumption of the structure.
Article language: English
Referenses:
Open Access: http://publications.ntu.edu.ua/avtodorogi_i_stroitelstvo/110/188.pdf
Online publication date: 25.02.2021
Print date: 01.02.2021


No easy mark: Female bodybuilder, 82, clobbers intruder
by Associated PressROCHESTER, N.Y. (AP) — An intruder might have thought an 82-year-old woman living alone was an easy target, but he didn’t count on Willie Murphy being an award-winning bodybuilder with nerves of steel.
Murphy tells WHAM she was getting ready for bed Thursday night when a man pounded on the door of her Rochester home saying he needed an ambulance. Murphy called police but wouldn’t open the door.  The man was sent to a hospital and police tweeted a selfie with Murphy, calling her “tough as nails.”
Murphy works out almost daily at a Rochester gym and says she can deadlift 225 pounds.


MAASAI MARA WILDBEASTS MIGRATION
Smile for Miles is a travel agency that is based in Nairobi Kenya.The organization was founded back in 2019 with the aim of helping individuals book tours across the country in the comfort of their homes. As a company, we believe that some of the best ideas come when one is on vacation, and that is one of the main reasons why we offer our customers the best tours in Kenya.
We have several travel destinations that our customers can choose from locally, ranging from the Mara Safari, Kisumu Lakeside and the Sandy Coastal Beaches. We offer the best prices for the travel destination that our customers choose. Apart from that, we have a lot of discounts both in the peak and the offpeak seasons.
Smile for Miles Travel Agency was founded by a group of young individuals back in 2019. The company
began as a small organization, that was made up of adventurers. The founders had travelled to many
destinations in the past, both locally and internationally. They noticed the challenges that most
individuals face; hence, they felt that coming up with a company would help solve some of those
problems.
In 2019, the company operated only in Nairobi and Kisumu. However, in 2020, the Smile
for Miles Travel Agency has expanded its operations, such that the customers can book any
destination in the country.With increased experience in the tours and travel industry, we intend to
expand our operations internationally.
ELEPHANTS IN TSAVO NATIONAL PARK
We are dedicated towards ensuring that we help book the best resorts and hotels for our clients. The clients can do the booking in our website.
For Trips where one needs to move from one city to another, we give our clients the option of helping them book air tickets for conveniency.
Most people are no sure of their travel destinations. Smile for Miles has a team of individuals that advice our customers about the best places to go for vacations.
We have knowledgeable local tour guides that provide information and guide our clients as they visit the different destinations.
CHIEF EXECUTIVE OFFICER
OPERATIONS MANAGER
FINANCE MANAGER
HUMAN RESOURCE MANAGER
SALES MANAGER


UPDATE: NB I-75 reopened in Dayton after earlier multi-vehicle crash
by Breaking News StaffDAYTON — UPDATE @ 7:50 a.m.:
Dayton police reopened all lanes of northbound I-75 at North Main Street around 7:50 a.m. following a crash involving multiple vehicles.
LIVE TRAFFIC UPDATES: Listen to 1290 and 95.7 WHIO
Additional details were not immediately available.
>>Dayton-area traffic conditions from the WHIO Traffic Center
FIRST REPORT
A crash involving multiple vehicles has shut down all northbound lanes of Interstate 75 at the North Main Street exit in Dayton.
The crash was reported around 7:15 a.m. Monday with at least three vehicles involved in the crash, according to initial reports.
At least one person reported injuries in the crash, however their condition was not immediately known.
Police have blocked all northbound lanes on I-75, however traffic is still able to exit off the highway onto North Main Street.
We’ll continue to update this story as we learn more.


This river is a popular yachting centre. The outer part of the entry lies approximately 8nm north east of Shoeburyness on the Thames Esturary.
Due to shifting sands, up to date charts are advisable and care taken to follow the bouyage.
Burnham Yacht Harbour lies on the north bank of the river close to the town and opposite is the Essex Marina. Frambridge Yacht Haven is another 5nm further up river.
The Town Pontoon at Burnham-on-Crouch is also available for docking.
The Town Pontoon at Burnham-on-Crouch, closed since mid-December because of storm damage, has been repaired and is fully operational again.
The best (and safest) anchorages are to be found in the river above Burnham.
River Crouch Harbour Master
The Harbour Office, The Quay, Burnham
Tel:+44 (0)1621 783 602
http://crouchharbour.org.uk/
Email<EMAIL_ADDRESS>Hours: 09:00-13:00 (Mon-Fri)
Last updated May 2016.
[Show additional 2 entries for this category]


|
GNSDK C API Reference
<IP_ADDRESS>2
|
Functions | |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_disable (gnsdk_cstr_t log_file_path, gnsdk_uint16_t package_id) |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_enable (gnsdk_cstr_t log_file_path, gnsdk_uint16_t package_id, gnsdk_uint32_t filter_mask, gnsdk_uint32_t options_mask, gnsdk_uint64_t max_size, gnsdk_bool_t b_archive) |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_enable_callback (gnsdk_manager_logging_callback_fn callback, const gnsdk_void_t *callback_data, gnsdk_uint16_t package_id, gnsdk_uint32_t filter_mask) |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_register_package (gnsdk_uint16_t package_id, gnsdk_cstr_t package_name) |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_vwrite (gnsdk_int32_t line, gnsdk_cstr_t filename, gnsdk_uint16_t package_id, gnsdk_uint32_t filter_mask, gnsdk_cstr_t format, va_list argptr) |
| gnsdk_error_t GNSDK_API | gnsdk_manager_logging_write (gnsdk_int32_t line, gnsdk_cstr_t filename, gnsdk_uint16_t package_id, gnsdk_uint32_t filter_mask, gnsdk_cstr_t format,...) |
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_disable | ( | gnsdk_cstr_t | log_file_path, |
| gnsdk_uint16_t | package_id | ||
| ) |
Disables logging of GNSDK messages.
| log_file_path | [in] Absolute path and file name of log to apply this disable |
| package_id | [in] ID of package to to disable messages for |
Remarks:
This disables logging to the given log file for the given package ID. The file handle for the log file may not be closed until the GNSDK Manager is shut down.
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_enable | ( | gnsdk_cstr_t | log_file_path, |
| gnsdk_uint16_t | package_id, | ||
| gnsdk_uint32_t | filter_mask, | ||
| gnsdk_uint32_t | options_mask, | ||
| gnsdk_uint64_t | max_size, | ||
| gnsdk_bool_t | b_archive | ||
| ) |
Enables or changes logging settings of GNSDK messages for a specific log file.
| log_file_path | [in] Path and file name to log messages to |
| package_id | [in] ID of package to filter log messages for this log |
| filter_mask | [in] Filter mask for type of message to log |
| options_mask | [in] Formatting options for this log |
| max_size | [in] Maximum size of log before new log is created. Enter a value of zero (0) to always create new log on open |
| b_archive | [in] Specify GNSDK_TRUE for the archive to retain and rename old logs, or GNSDK_FALSE to delete old logs |
Remarks:
The GNSDK logging system allows multiple logs to be enabled simultaneously. Each call to gnsdk_manager_logging_enable with a new log_file_path parameter will enable a new log. Filter and option settings are set per Package ID. Multiple Package IDs can be enabled per log file by calling this API multiple times with different Package IDs. The packages, filter and option parameter will apply only to the log indicated by log_file_path. If the log_file_path parameter matches an existing enabled log, then the package, filter and option settings will be applied to the existing log file. These changes can be applied at run time. Windows CE developers: log_file_path parameter must be absolute path as relative paths are not supported in Windows CE.
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_enable_callback | ( | gnsdk_manager_logging_callback_fn | callback, |
| const gnsdk_void_t * | callback_data, | ||
| gnsdk_uint16_t | package_id, | ||
| gnsdk_uint32_t | filter_mask | ||
| ) |
Enables application callback that receives all logging messages.
| callback | [in] Callback function for logging message |
| callback_data | [in_opt] Data that is passed back through calls to the callback function |
| package_id | [in] ID of package to filter log messages for the callback |
| filter_mask | [in] Filter mask for type of messages to send to callback |
Remarks:
The GNSDK logging system allows logging message to be routed to a callback function. The logging callback can be enabled along side or instead of file logging. Multiple Package IDs can be enabled by calling this API multiple times with different Package IDs. The package and filter will apply only to the logging message sent to the callback. To disable the logging callback, call gnsdk_manager_logging_enable_callback with the callback parameter set to GNSDK_NULL for each enabled PackageID.
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_register_package | ( | gnsdk_uint16_t | package_id, |
| gnsdk_cstr_t | package_name | ||
| ) |
Register a new Package ID to allow custom logging for your application.
| package_id | [in] Package ID to register. |
| package_name | [in] Short name or description that appears in the log entries for this package. |
Remarks:
This function allows an application to register one or more of its own package IDs into the GNSDK logging system. The application can then enable, disable or filter its own logging messages based on the registered package IDs. Applications can write their own log messages using gnsdk_manager_logging_write or gnsdk_manager_logging_vwrite. The package_id must be in the range GNSDKPKG_ID_APP_START to GNSDKPKG_ID_APP_MAX.
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_vwrite | ( | gnsdk_int32_t | line, |
| gnsdk_cstr_t | filename, | ||
| gnsdk_uint16_t | package_id, | ||
| gnsdk_uint32_t | filter_mask, | ||
| gnsdk_cstr_t | format, | ||
| va_list | argptr | ||
| ) |
Enables an application to write to a log for its own messages. This API uses the var_args parameter for variables in format string.
| line | [in_opt] Source line number of this call |
| filename | [in_opt] Source file name of this call |
| package_id | [in] Package ID of application making call |
| filter_mask | [in] Error mask for this logging message |
| format | [in] Error message format |
| argptr | [in] Error message format arguments |
Remarks:
This function enables an application to write their own logging messages to the GNSDK logging system. If a log or callback is enabled that handles the given package ID and filter mask, then these message are written to those log(s). The package ID must be one registered by the application with gnsdk_manager_logging_register_package().
| gnsdk_error_t GNSDK_API gnsdk_manager_logging_write | ( | gnsdk_int32_t | line, |
| gnsdk_cstr_t | filename, | ||
| gnsdk_uint16_t | package_id, | ||
| gnsdk_uint32_t | filter_mask, | ||
| gnsdk_cstr_t | format, | ||
| ... | |||
| ) |
Enables an application to write to a log for its own messages.
| line | [in_opt] Source line number of this call |
| filename | [in_opt] Source file name of this call |
| package_id | [in] Package ID of application making call |
| filter_mask | [in] Error mask for this logging message |
| format | [in] Error message format (using printf style parameters for the format string) |
Remarks:
This function enables an application to write their own logging messages to the GNSDK logging system. If a log or callback is enabled that is handling the given package ID and filter mask, then these message are written to those logs. The package ID must be one registered by the application with gnsdk_manager_logging_register_package().
How can we improve this topic?
Copyright © 2000-present. Gracenote, Inc. All rights reserved. Generated on Tue Jan 8 2013 07:40:58.


Version 4.0.0-beta.4¶
Release Date: Not released
Highlights:
There are some breaking changes…
The Entity class has been refactored;
The Model class changing has been updated to better handle soft deletes
The routing has been beefed up
New messages:
new translation key: Database/noDateFormat
App changes:
Testing changes:
enhanced database & migration testing in tests/_support
The list of changed files follows, with PR numbers shown.
admin/
- app/
- Controllers/
Home #1999
public/
- system/
- Autoloader/
FileLocator #2059, #2064
- Cache/
CacheFactory #2060
- Handlers/
MemcachedHandler #2060
PredisHandler #2060
RedisHandler #2060
- Commands/
Utilities/Routes #2008
- Config/
Config #2079
Services #2024
- Database/
- MySQLi/
Connection #2042
Result #2011
- Postgre/
Connection #2042
Result #2011
- SQLite3/
Connection #2042
Forge #2042
Result #2011
Table #2042
BaseBuilder #1989
BaseConnection #2042
BaseResult #2002
Forge #2042
MigratiopnRollback #2035
MigrationRunner #2019
- Debug/
Toolbar/Collectors/Routes #2030
- Exceptions.
ModelException #2054
- Files/
File #2104
- Filters/
Filters #2039 - helpers/
date_helper #2091
- HTTP/
CLIRequest #2024
CURLRequest #1996, #2050
IncomingRequest #2063
Request #2024
- Language/en/
Database #2054
- Pager/
Pager #2026
- Router/
RouteCollection #1959, #2012, #2024
Router #2024, #2031, #2043
RouterInterface #2024
- Session/
Handlers/ArrayHandler #2014
- Test/
CIUnitTestCase #2002
FeatureTestCase #2043
- Throttle/
Throttler #2074
CodeIgniter #2012, #2024
Common #2036
Entity #2002, #2004, #2011, #2081
Model #2050, #2051, #2053, #2054
- tests/system/
- CLI/
ConsoleTest #2024
- Database/
- Live/
DbUtilsTest #2051, #2053
ForgeTest #2019, #2042
ModelTest #2002, #2051, #2053, #2054
SQLite/AlterTablesTest #2042
WhereTest #2052
Migrations/MigrationRunnerTest #2019
- HTTP/
CLIRequest #2024
CURLRequestTest #1996
- Router/
RouteCollectionTest #1959, #2012, #2024
RouterTest #2024, #2043
- Test/
FeatureTestCaseTest #2043
- Throttle/
ThrottleTest #2074
- View/
ParserTest #2005
CodeIgniterTest #2024
EntityTest #2002, #2004
- user_guide_src/
- concepts/
autoloader #2035, #2071
- database/
query_builder #2035
- dbmgmt/
forge #2042
migration #2042
- helpers/
date_helper #2091
- incoming/
routing #2035
- installation/
installing_composer #2015, #2035
- libraries/
pagination #2026
sessions #2014, #2035
validaiton #2069
uploaded_files #2104
- models/
entitites #2002, #2004, #2035
model #2051, #2053, #2054
- outgoing/
view_parser #e21823, 32005
- testing/
database #2051, #2053
PRs merged:¶
#2104 File & UploadFile Fixes
#2091 Timezone select
#2081 JSON format checking improved
#2079 Update config() to check all namespaces
#2074 Throttler can access bucket for bucket life time
#2071 Fix autoloader.rst formatting
#2069 validation rule: then -> than (spelling)
#2064 Bugfix file locator slash error
#2063 Ensure query vars are part of request->uri. Fixes #2062
#2060 Cache Drive Backups
#2059 Add multi-path support to locateFile()
#2054 Add model exceptions for missing/invalid dateFormat
#2053 Change Model’s deleted flag to a deleted_at datetime/timestamp. Fixes #2041
#2052 Add various tests for (not) null
#2051 Soft deletes use deleted_at
#2050 Stash insert ID before event trigger
#2043 Zero params should be passed through when routing. Fixes #2032
#2042 SQLite3 now supports dropping foreign keys. Fixes #1982
#2040 Update CURLRequest.php
#2039 Restrict filter matching of uris so they require an exact match. Fixes #2038
#2036 Make force_https() send headers before exit
#2035 Various typos and Guide corrections
#2031 Fallback to server request for default method
#2030 Support the new router service in Debug Toolbar
#2026 Extension Pager::makeLinks (optional grup name)
#2024 Refactor the way the router and route collection determine the current HTTP verb
#2019 SQLite and Mysql driver additional tests and migration runner test fixes
#2015 Direct user to follow the upgrade steps after installation
#2014 Added a new Session/ArrayHandler that can be used during testing
#2012 Use request->method for HTTP verb
#2011 Set the raw data array without any mutations for the Entity
#2008 Add patch method to command “routes”
#2005 Plugin closures docs update and test
#2004 Allow hasChanged() without parameter
#2002 Entity Refactor
#1999 use CodeIgniterController; not needed since Home Controller extends …
#1996 Attempting to fix CURLRequest debug issue. #1994
#e21823 Corrected docs for parser plugins. Closes #1995
#1989 argument set() must by type of string - cannot agree
#1959 Prevent reverseRoute from searching closures


Amzi! Prolog + Logic Server
|
License -- Amzi! License Agreement.
Install & Un-install Instructions -- Installation, configuration and removal instructions.
Read Me -- Pointers on getting started.
What's New? -- What's new in this release, and conversion issues for existing applications.
Frequently Asked Questions -- Topics and issues from the support vehicles.
Adventure in Prolog -- A pure Prolog tutorial that uses an adventure game as the main teaching example. It also walks you through a simple expert system, a classic genealogical application, a customer order entry system and a natural language interface using DCG.
Prolog User's Guide & Reference -- How to use the IDE, listener, compiler, linker, runtime and a full Prolog predicate reference. Also includes a quick overview of the system and a quick tutorial on the Amzi! tools.
Logic Server User's Guide & Reference -- How to use the Logic Server API in general and details on supported environments such as C, C++, Java, Visual Basic, Delphi, and Access. How to use and build Logic Server Extension (LSXs).
Building Expert Systems in Prolog -- An advanced tutorial on how to implement a variety of knowledge representations and reasoning engines, including topics on backward and forward chaining, frames, uncertainty, and the Rete algorithm.
Samples -- A directory of Amzi! sample programs. See doc.html in the amzi/samples directory.
Prolog Predicate Libraries -- Libraries for list handling, date/time conversion, XML parsing, cross referencing, performance monitoring and more.
Articles -- Helpful articles from PC AI, Dr. Dobb's Journal, VB Tech Journal and more.
All users are welcome to free support from our Discussion
Groups. Free and Student license users are encouraged to use this as their
primary support method. Developer and Professional License users receive priority
technical support via e-mail to Support
and by telephone/fax as necesssary.
We can also provide training and user application-specific support on a consulting basis.
Bug reports are welcome on either the discussion groups or via e-mail. Please provide adequate information, including test and log files, if necessary, to allow our developers to reproduce the bug.
Any and all comments on the software, documentation, samples, etc. are appreciated as well.
Amzi! Prolog + Logic Server is available in different individual editions, designed for students to professional developers. Site licenses are available for educational, government and commercial institutions. To learn more, please visit: www.amzi.com.
Copyright ©1987-2011 Amzi! inc. All Rights Reserved. Amzi! is a registered trademark and Logic Server is a trademark of Amzi! inc.


Places that are a #{{ brand |e }}
{% include "inc_brands_caveat.html" %}
See all the #brands
{% if error and error.type=="search_context_missing_exception" %}
{% set query = 'places that are this brand' %}
{% include "inc_pagination_expired.html" %}
{% else %}
{% include "inc_docs.html" %}
{% endif %}
{% endblock %}


| |
Delete a mutex.
-
Description:
-
This API is used to delete a specified mutex. Return LOS_OK on deleting successfully, return specific error code otherwise.
-
注意:
-
- The specific mutex should be created firstly.
- The mutex can be deleted successfully only if no other tasks pend on it.
-
参数:
-
|
参数名称 |
描述 |
|
puwMuxHandle |
[IN] Handle of the mutex to be deleted. The value of handle should be in [0, LOSCFG_BASE_IPC_MUX_LIMIT - 1]. |
-
返回值:
-
-
Dependency:
-
- los_mux.h: the header file that contains the API declaration.
-
参见:
-
LOS_MuxCreate
-
自从:
-
Huawei LiteOS V100R001C00
|


A {@link com.wcohen.secondstring.StringDistance} is the basic class for computing distances. The score() function of this class outputs a distance measure between its two arguments. The other methods are there for efficiency, so that preprocessing steps (like tokenization) can be amortized over multiple comparisons with the same string.
The way that preprocessing steps are saved is by creating a {@link com.wcohen.secondstring.StringWrapper} object which contains the preprocessed string, plus whatever else needs to be cached. To do this, extend default implementation of StringWrapper.
Almost everything in this package implements StringDistance. The only (public) exceptions are StringWrapper; PrintfFormat, pilfered from Sun to make the explanations easier; {@link com.wcohen.secondstring.CharMatchScore}, which is a character-based distance metric; and {@link com.wcohen.secondstring.MemoMatrix}, a utility for defining edit-distance-based methods.


--- layout: base title: Home ---
GISCIA was founded in 2007 by students with a solid and clear objective: to contribute to the country development through research and application of techniques in the fields of Artificial Intelligence, Machine Learning and Control Systems. Since then, the lab has maintained an active presence in the academy and industry, being awarded and recognized several times for our outstanding contributions in the region and in international conferences.
With each member really pushing the knowledge limits, this is a place where you can develop useful research skills and find the motivation you need to intern in the astonishing world of research. If you are interested in doing research and great projects, contact us!