Introduction
Today’s software is largely based on libraries that are freely available. New features do not always have to be completely reimplemented if they are already publicly available. Often, a development team can fall back on libraries in the open source world. This is more cost-effective and also has the advantage that code included is often tested by multiple parties. It is not necessary to reinvent the wheel. Indeed, you can say that due to the complexity of today’s software, it is almost impossible to do modern project development without these dependencies of the open source world.
It is normal that larger project have uncountable numbers of dependencies that they need for different features.
Security Vulnerabilities
With a huge amount of dependencies it is only a matter of time before one of these dependencies has a security gap. As a result, a risk to a system to become vulnerable to attacks will gradually increase if these issues are’nt resolved.
It’s not easy to find vulnerabilities in dependencies manually. This is due to different reasons:
- The code is outsourced, so it is not maintained in the incorporating project.
- The external library is mostly zipped and compiled, which makes analysis difficult.
- Existing dependencies are usually not automatically lifted, as the resulting side effects are not transparently visible in a project, so that even if the developers fix the external dependency, it may not migrate directly into the project.
That means by implication: The integrating project has to notice in another way that there are new issues in dependencies and do that in a timely manner. But how can these faulty libraries be recognized and made visible at an early stage?
This first part of the Secure Software Development series describes how to check a Java program for dependencies. This is shown on the command line. After that I describe the whole thing in a downstream system called Jenkins.
Specifically, I will treat:
- … how to check dependencies on the command line (section Checking on the command line).
- … can perform the same things in a downstream system called Jenkins. The main part refers to this system (section Jenkins).
- … how to check the same dependencies with a tool called Sonarqube. Sonarqube can be used to calculate metrics in a project (section Sonarqube).
- … finally there’s a little summary of this blog (section Summary].
First, let’s take a look at the underlying tool of this entire blog article:
Checking on the command line
OWASP Dependency Check
OWASP Dependency Check is an instrument to check the dependencies in your project for vulnerabilities: It takes existing libraries of a project and tests them against a database for security holes. As a database, the tool uses the National Vulnerability Database, NVD for short. In this database you can find for each library version the corresponding previously known reports.
Dependency Check can be used in two variants in the Java Universe:
- Configured into a build management system
- Via command line
The following description shows how to use it via command line and how to use a continuous integration and Inspection system.
A continuous integration system allows you to automatically go over your latest code. In the simplest case, this is used to see if the latest can be build or if errors have occurred when new code was checked in.
On the other hand, a continuous inspection system shows immediately after reported to the system whether certain metrics of the code are fulfilled.
Both continuous integration and inspection report errors and warnings, e.g. directly via e-mail. They can now be supplemented with Dependency Check, so that after installing a new library, the developers can see if there exists problems at certain new point.
To illustrate everything, we will use a sample Docker infrastructure in this article, so that the reader can follow the individual steps directly by her/himself or test it, in case s/he wants to launch it in his project.
The steps here are given for a Mac, but should work similarly to other operating systems
Required software
First of all you need:
- OWASP Dependency Checker
- Apache maven
- Docker
The installation of 1 and 2 can be done with the following command:
brew update && brew install maven dependency-check
Docker can be installed according to its homepage.
We will now use these tools throughout the rest of this guide.
Container IDs
In the following description, <containerid_namedescontainer>
means the Docker ID of the respective container. This ID can be determined using the docker ps -a
command while Docker is running.
Example infrastructure
Next, we build an infrastructure with a continuous integration server. For this we use Jenkins and Docker.
First we create the necessary directory structure and build a local Git server. Important to note:
The root directory secureci
is the starting point for many of the following commands. The reader should therefore take care that he is at this level.
# Clone repo with branch java
git clone -b java https://github.com/secf00tprint/secureci.git
cd secureci
# Create mount directories for docker
./init.sh
After that the directory secureci
should look like this:
How to scan a Java Project
To scan a Java project using OWASP Dependency Check on the command line, the following steps can be performed in the root directory of the secureci
project:
1 Setting up a Java example project:
cd localproject
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.3 \
-DgroupId=de.mydomain \
-DartifactId=old_depproject \
-Dversion=1.0-SNAPSHOT \
-Dpackage=de.mydomain -B
cd old_depproject
2 Delete old dependencies and download the up-to-date dependencies into the project:
mvn clean dependency:copy-dependencies
3 Copy all dependencies to a subdirectory alllibs
:
if [ -d alllibs ]; then; rm -rf ./alllibs; fi;\
mkdir ./alllibs;\
find . -iname '*.jar' -exec cp {} ./alllibs/ \; 2> /dev/null;\
find . -iname '*.class' -exec cp {} ./alllibs/ \; 2> /dev/null
4 Start the scanner:
dependency-check \
--project "Example Project" \
-s ./alllibs \
-l dependency.log
5 Evaluation of results:
open dependency-check-report.html
In order to cause a result with issues, we add a library to the dependencies used by the project that contains a security vulnerability.
For this we append a dependencies
section in the file pom.xml
, which Maven uses for building:
<dependencies>
...
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
and perform steps 2 to 5 again.
Now there should be an issue in the result report:
open dependency-check-report.html
Creating a git server
Now we can build the git server (The server is based on the code the project jkarlosb git server - thanks to this really cool docker image):
cd gitserver
docker build -t gitserver .
cd ..
Create a key pair (double press enter for the passphrase):
cd mykeys
ssh-keygen -t rsa -f gitkey
cp gitkey.pub ../mnt/gitserver/keys
cd ..
Now we can run the git server: We have to make sure that we are in the root directory.
docker run -d -p <IP_ADDRESS>:22:22 \
-v `pwd`/mnt/gitserver/keys:/git-server/keys \
-v `pwd`/mnt/gitserver/repos:/git-server/repos \
gitserver
We can check whether we can connect to the server (root directory!) using:
ssh<EMAIL_ADDRESS>-i mykeys/gitkey
Registration possible
As response we should see:
Welcome to git-server-docker!
You've successfully authenticated, but I do not
provide interactive shell access.
Connection to <IP_ADDRESS> closed.
No registration possible
The following error message may appear, in case we should already have assigned an IP:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
To solve this, we open the file ~/.ssh/known_hosts
and remove the corresponding line containing the IP or comment it out with#
.
Creating an external git repository
Now we create a git project locally and copy the repo into our git server:
cd localproject
git init --shared=true
git add .
git commit -m "my first commit"
cd ..
git clone --bare localproject mnt/gitserver/repos/project.git
docker restart <containerid_gitserver>
We can now test if the code has been committed by:
ssh-add mykeys/gitkey
mkdir temp && cd temp
git clone<EMAIL_ADDRESS>cd ..
Then the temp directory can be deleted by
rm -rf temp
Jenkins
In the following chapter we now build and use the continuous integration system named Jenkins.
Get Jenkins up and running
Next we start Jenkins.
For this we go to the directory conintserver
:
cd conintserver
and build the image:
docker build -t conintserver .
cd ..
Then we start the server from the root directory with:
docker run -p <IP_ADDRESS>:8080:8080 -p <IP_ADDRESS>:50000:50000 -v `pwd`/mnt/conintserver/jkhome:/var/jenkins_home -v `pwd`/mnt/conintserver/project/:/home conintserver
And open the server in the browser:
open http://<IP_ADDRESS>:8080
There is an entry in the docker console:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
XXXXXXXXX
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
We copy the code XXXXXXXXX
from the logs into the browser input field.
If the output from Docker is currently unavailable, it can be viewed by using
docker logs <containerid_jenkins> --tail 30
Next we click on ‘Continue’
and on ‘Install suggested plugins’:
In the following form we enter a name, password and e-mail and remember this data:
So, for example:
| Username | Password | Full name | |
|---|---|---|---|
| secf00tprint | e.g. by using pwgen -ync 40 one the command line* |
secf00tprint |<EMAIL_ADDRESS>|
* pwgen can be installed by entering
brew install pwgen
Click on ‘Save and Continue’.
We set the Jenkins URL,
and lastly we save and finish.
Installing Dependency Check as a plugin
- First, we select ‘Manage Jenkins’:
- Then ‘Manage Plugins’:
- ‘Available’ plugins:
- OWASP Dependency Check:
- We choose ‘Download now and install after restart’:
- We click on ‘Restart Jenkins when installation is complete’
We look into the docker logs until we see INFO: Jenkins is fully up and running
.
At the end we go to http://<IP_ADDRESS>:8080
and log in with the noted credentials.
Deposit git credentials
First, we have to deposit the appropriate credentials in Jenkins for our git docker:
For this we click on ‘Credentials’ in the main menu :
Then to ‘Global Credentials’, ‘Add Credentials’:
Choose ‘SSH Username with private key’:
Enter ‘git’ as user and the private key:
The private key for copying can be displayed by using
cat mykeys/gitkey
on the console.
Click on ‘Ok’, so the credentials for our git are deposited in Jenkins.
Variants OWASP Dependency Check Jenkins
Now there are two ways to run the OWASP Dependency Check on your project:
Either as part of a pipeline build or as part of a standard GUI build.
In the following both variants are explained.
The two build variants differ:
If you use the Jenkins Pipeline Build, the project team describes the steps of the build in a text file. This can be done either through a Groovy-like scripting language or in a declarative notation. The following examples use the declarative notation.
With a standard GUI build, the project team clicks the corresponding points using the GUI.
Advantage of the GUI:
The GUI is initially easier to understand when creating the processes through visualization with graphics. The syntax and commands of the pipeline definitions need not be known.
Advantage of the pipeline:
During the build, the defined individual steps are nicely graphically displayed. Individual steps of the log can be opened by clicking and the programmer, if configured, can locally edit and view the script without having to access jenkins via a browser.
Set up jenkins pipeline
Defining global tools
We select in the main menu under ‘Manage Jenkins’, ‘Global Tool Configuration’:
The names defined here will be used later by the pipeline.
So we set the name ‘Maven 3.3.9’ under ‘Maven’ and select ‘Maven 3.3.9’:
and click on ‘Save’.
NVD Update Pipeline Item
In order not to have to download the NVD database completely every time, you should first define a periodic job that, independent of the actual analysis, updates the database so that it can be used quickly by the exam job.
For this we create a pipeline project:
We click on ‘New-Item’:
Select ‘pipeline project’, assign a name (here we use ‘depcheck-nvdupdate’) and click on ‘Ok’:
As Build Triggers, we select ‘Build periodically’ and enter ‘@daily’, then the database will be updated daily:
Under Pipeline we enter the following declaration and click on ‘Save’:
pipeline {
agent any
stages {
stage ('Dependency Check Update') {
steps {
dependencyCheckUpdateOnly '/var/jenkins_home/depcheck/nvdupdates'
}
}
}
}
This defines that the update will be placed on the Jenkins in the directory /var/jenkins_home/depcheck/nvdupdates
.
Then we build the database via ‘Build Now’:
The output should look like this:
The console output can be displayed by the blue ball:
and might look like this:
OWASP Dependency Check Pipeline Item
Now we set up a pipeline project that checks our code:
We click on ‘New Item’ in the main menu as in the previous chapter, select ‘Pipeline’ and name it as e.g. ‘Project pipeline \ _depcheck’.
Now, under ‘Pipeline’, select ‘Pipeline script from SCM’. This means we will pull the pipeline script out of our repository so we can define and change it locally:
Here we set the repository URL for our docker-git-server.
To determine the internal IP of the Docker server, we enter the following on the host:
docker inspect <containerid_gitserver> |grep -i "\"ipaddress"
We use it and enter as repository URL:
<EMAIL_ADDRESS>e.g.:
<EMAIL_ADDRESS>Next, we select the previously defined credentials - in this case the selection marked ‘git’ in the drop-down menu:
After that the repository should be recognized.
Next, we put Jenkinsfile
out of our repository as a pipeline script.
Then we click on ‘Save’.
Defining a local Jenkinsfile - Introduction
We go to our local git project:
cd localproject
and create the file Jenkinsfile
in the root directory with the following content:
pipeline {
agent any
tools {
maven 'Maven 3.3.9'
}
stages {
/*
stage ('Initialize') {
steps {
sh 'echo === init stage ==='
// e.g. "M2_HOME = ${M2_HOME}"
}
}
stage ('Build') {
steps {
sh 'echo === build stage ==='
sh 'cd old_depproject; mvn -Dmaven.test.failure.ignore=true install'
}
}
stage ('Test') {
steps {
sh 'echo === test stage ==='
}
}
*/
stage ('Dependency Check') {
steps {
sh 'echo === security stage ==='
sh 'echo === OWASP dependency check ==='
sh 'cd old_depproject; mvn clean dependency:copy-dependencies'
sh 'cd old_depproject; ./aggregatefordepcheck.sh'
dependencyCheckAnalyzer scanpath: 'old_depproject', \
outdir: 'depcheck/report', \
datadir: '/var/jenkins_home/depcheck/nvdupdates', \
hintsFile: '', \
includeVulnReports: true, \
includeCsvReports: true, \
includeHtmlReports: true, \
includeJsonReports: true, \
isAutoupdateDisabled: true, \
skipOnScmChange: false, \
skipOnUpstreamChange: false, \
suppressionFile: '', \
zipExtensions: ''
dependencyCheckPublisher pattern: 'depchec/report/dependency-check-report.xml', \
failedTotalAll: '0', \
usePreviousBuildAsReference: false
}
}
}
}
Defining a local Jenkinsfile - Possible parameters
The parameters defined here for the OWASP Dependency Check Plugin can also be looked up at:
https://jenkins.io/doc/pipeline/steps/dependency-check-jenkins-plugin/
Essentially you can control:
DependencyCheckAnalyzer:
| Parameter | Description | Type | Example |
|---|---|---|---|
scanpath |
Path for scanning | String |
'old_depproject' |
outdir |
Output folder | String |
'depcheck/report' |
datadir |
Data folder | String |
'/var/jenkins_home/depcheck/nvdupdates' |
suppressionFile |
Suppression File (more on that below) | String |
'suppression.xml' |
hintsFile |
Used to determine false negatives | String |
'hintsfile.xml' |
zipExtensions |
Specifies which file extensions are treated as zip | String |
'jar' |
isAutoupdateDisabled |
Disables the automatic NVD update during a build | Boolean |
'true' |
includeHtmlReports |
Generates an optional HTML report | Boolean |
'false' |
includeVulnReports |
Generates an optional vulnerability report | Boolean |
'true' |
includeJsonReports |
Generates an optional JSON report | Boolean |
'false' |
includeCsvReports |
Generates an optional CSV report | Boolean |
'true' |
skipOnScmChange |
Skip if triggered by SCM changes | Boolean |
'false' |
skipOnUpstreamChange |
Skip if triggered by upstream changes | Boolean |
'true' |
DependencyCheckPublisher:
| Parameter | Description | Typ | Example |
|---|---|---|---|
pattern |
Dependency Check result file(s) | String |
''**/dependency-check-report.xml' |
usePreviousBuildAsReference |
Use the previous build | Boolean |
'false' |
By using certain parameters, you can tell the DependencyCheckPublisher call which feedback it should give with different findings.
Here we take the following parameters:
failedTotalAll: '0'
that is, the build fails or turns red as soon as at least one finding is detected.
You could also set
unstableTotalAll: '0'
.
Then the build would turn yellow or unstable as soon as at least one finding is recognized.
In addition to these two relatively basic settings, more detailed adjustment can be provided marking a build yellow or red.
The following parameters can be defined as of July 2018:
| Parameter |
|---|
failedNewAll |
failedNewHigh |
failedNewLow |
failedNewNormal |
failedTotalAll |
failedTotalHigh |
failedTotalLow |
failedTotalNormal |
unstableNewAll |
unstableNewHigh |
unstableNewLow |
unstableNewNormal |
unstableTotalAll |
unstableTotalHigh |
unstableTotalLow |
unstableTotalNormal |
Defining a local Jenkinsfile - Aggregate Dependencies
To build the dependencies, we create the following shell script aggregatefordepcheck.sh
under localproject / olddeproject
:
#! /bin/bash
[[ -d alllibs ]] || mkdir ./alllibs; find . -iname '*.jar' -exec cp {} ./alllibs/ 2>/dev/null \; ; find . -iname '*.class' -exec cp {} ./alllibs/ 2>/dev/null \;
Defining a local Jenkinsfile - Final pipeline script
We push everything together in our Docker repo:
git add .
git commit -m "Jenkinsfile and Maven Aggregate Script"
git push origin master
If we now select our item projectpipeline_depcheck
in Jenkins and click on ‘Build Now’, the following output should appear:
or as console output:
From the logs you can also see the path of the report on the Jenkins server:
open ../mnt/conintserver/jkhome/workspace/projectpipeline_depcheck/depcheck/report/dependency-check-report.html
Test if it works
Next we add a dependency which is problematic.
We add to our pom.xml:
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
we go to localproject/old_depproject
and augment the dependencies section:
Then we push the new pom.xml
and rebuild the item.
git add pom.xml
git commit -m "add old commons fileupload"
git push origin master
Result - the build should fail:
and the corresponding HTML taken from the Jenkins logs also reflects the issue:
open ../mnt/conintserver/jkhome/workspace/projectpipeline_depcheck/depcheck/report/dependency-check-report.html
Modifying the test evaluation
If you do not want to create a red traffic light right away,
you can also use unstableTotalAll
instead of failedTotalAll
in the Jenkinsfile:
> cat Jenkinsfile
pipeline {
agent any
tools {
maven 'Maven 3.3.9'
}
stages {
/*
stage ('Initialize') {
steps {
sh 'echo === init stage ==='
// e.g. "M2_HOME = ${M2_HOME}"
}
}
stage ('Build') {
steps {
sh 'echo === build stage ==='
sh 'cd old_depproject; mvn -Dmaven.test.failure.ignore=true install'
}
}
stage ('Test') {
steps {
sh 'echo === test stage ==='
}
}
*/
stage ('Dependency Check') {
steps {
sh 'echo === security stage ==='
sh 'echo === OWASP dependency check ==='
sh 'cd old_depproject; mvn clean dependency:copy-dependencies'
sh 'cd old_depproject; ./aggregatefordepcheck.sh'
dependencyCheckAnalyzer scanpath: 'old_depproject', \
outdir: 'depcheck/report', \
datadir: '/var/jenkins_home/depcheck/nvdupdates', \
hintsFile: '', \
includeVulnReports: true, \
includeCsvReports: true, \
includeHtmlReports: true, \
includeJsonReports: true, \
isAutoupdateDisabled: true, \
skipOnScmChange: false, \
skipOnUpstreamChange: false, \
suppressionFile: '', \
zipExtensions: ''
dependencyCheckPublisher pattern: 'depcheck/report/dependency-check-report.xml', \
unstableTotalAll: '0', \
usePreviousBuildAsReference: false
}
}
}
}
Jenkins Standard Build
In addition to the definition of pipeline scripts, the OWASP Dependency Check plugin can also be clicked via the GUI. This is the old default way.
In doing so, the configuration is clearer, but the output is not as modular and understandable afterwards.
NVD Update GUI Item
The configuration can be made in these steps:
- ‘New Item’:
- ‘Build Triggers’ ‘Build periodically’:
- ‘Build’ ‘Add build step’ ‘Invoke Dependency-Check NVD update only’:
- Data directory:
/var/jenkins_home/depcheck/nvdupdates
- ‘Save’
Then start the build using ‘Build Now’.
The console output should look like this:
OWASP Dependency Check GUI Item
Based on the NVD database generated by Jenkins pipeline script or GUI config, we can now test the dependencies as follows:
We click on ‘Ok’.
Under ‘Source Code Management’ we enter the Git server contained in the Docker network:
<EMAIL_ADDRESS>and select the credentials ‘git’:
Then under ‘Build’ we go to ‘Invoke top-level Maven targets’:
Now select the installed global tool:
Now we choose ‘Advanced’. As goals we set clean dependency: copy-dependencies
and as location we choose pom.xml
Under ‘Build’ we add another build step using ‘Add build steps’: ‘Invoke Dependency-Check analysis’:
We choose ‘Advanced’ and then:
- Path to scan:
old_depproject
- Output directory:
depcheck/report
- Data directory:
/var/jenkins_home/depcheck/nvdupdates
Next it is ‘Add post-buid action’:
‘Advanced’
- Dependency Check results:
depcheck/report/dependency-check-report.xml
- Status Thresholds, e.g.:
- All priorities Warning at:
5
, Failure at:10
- Priority high: Warning at:
2
, Failure at:10
After that we go to ‘Save’.
We initiate the build process by using ‘Build now’.
The result is yellow if we populated pom.xml
with the dependency commons-fileupload
- otherwise it is blue.
Likewise, if the commons-fileupload is the old vulnerable one, the console output will show unstable
:
Suppressing Findings
Sometimes certain findings have to be turned off. This can have different reasons:
- It is a false positive
- You can not change the library for some reason
The so-called Suppression File serves this purpose.
A suppression file is an XML file with the following structure:
You can list in the suppress sections the things which should not be considered.
On the one hand, it can be specified which dependencies should be ignored, for example on specific jar files. On the other hand, it defines which vulnerability should be excluded.
Example:
<suppress>
<notes><![CDATA[
This suppresses cpe:/a:csv:csv:1.0 for some.jar in the "c:\path\to" directory.
]]></notes>
<filePath>c:\path\to\some.jar</filePath>
<cpe>cpe:/a:csv:csv:1.0</cpe>
</suppress>
suppresses the finding cpe:/a:csv:csv:1.0
in the dependency c:\path\to\some.jar
.
Creating suppressive sections
After an HTML dependency check report has been generated, you can directly generate the associated suppress section from a finding in the report:
Click on the Suppress button to get the snippet directly:
This can now be copied into the XML.
Suppression file in pipeline projects
As mentioned above, we can define the suppression file using a parameter called ‘suppressionFile’.
An excerpt from a Jenkinsfile might look like this:
pipeline {
agent any
...
stages {
...
stage ('Dependency Check') {
steps {
...
dependencyCheckAnalyzer scanpath: 'old_depproject', \
outdir: 'depcheck/report', \
...
suppressionFile: 'suppression.xml', \
zipExtensions: ''
dependencyCheckPublisher pattern: 'depcheck/report/dependency-check-report.xml', \
unstableTotalAll: '0', \
usePreviousBuildAsReference: false
}
}
}
}
Suppression file in the GUI
If you use the standard GUI, the suppression file can be found under ‘Build’ ‘Invoke Dependency-Check analysis’ ‘Suppression File’:
Sonarqube
In addition to the integration of Dependency Check in the continuous integration system Jenkins, the analysis tool can also be enabled in other connected systems.
One example is the continuous inspection tool Sonarqube, which allows developers to check the checked-in code for specific metrics, such as test coverage.
This chapter describes how to augment Sonarqube with OWASP Dependency Check.
Again, we will work with a sample docker so that the steps can be tested before being introduced to your own project.
To start Sonarqube via Docker we enter the following command in the root directory:
docker run -d --name sonarqube -p <IP_ADDRESS>:9001:9000 -p <IP_ADDRESS>:9092:9092 -v `pwd`/mnt/coninsserver/sonarqube_home/data:/opt/sonarqube/data -v `pwd`/mnt/coninsserver/sonarqube_home/extensions:/opt/sonarqube/extensions sonarqube:7.1
After a certain amount of time and if the port is not reserved, the browser will show at http: //<IP_ADDRESS>:9001/
:
and finally:
Installing Sonarqube
Starting from [the GitHub Page of the Dependency Check Sonar Plugin] (https://github.com/stevespringett/dependency-check-sonar-plugin) we first clone the plugin and build it locally:
git clone https://github.com/stevespringett/dependency-check-sonar-plugin.git
cd dependency-check-sonar-plugin
mvn clean package
The output of Maven shows us where it was created:
Now we copy the created jar into the docker container in the subdirectory /extensions/plugins
in the Sonarqube home folder.
The home folder can be found in the environment variable SONARQUBE_HOME
:
docker exec <containerid_sonarqube> env
...
LANG=C.UTF-8
JAVA_HOME=/docker-java-home
JAVA_VERSION=8u171
JAVA_DEBIAN_VERSION=8u171-b11-1~deb9u1
CA_CERTIFICATES_JAVA_VERSION=20170531+nmu1
SONAR_VERSION=7.1
SONARQUBE_HOME=/opt/sonarqube
SONARQUBE_JDBC_USERNAME=sonar
SONARQUBE_JDBC_PASSWORD=sonar
SONARQUBE_JDBC_URL=
...
docker cp <path to created Jar> <containerid_sonarqube>:/opt/sonarqube/extensions/plugins/
eg if we have a container ID xyz:
docker cp sonar-dependency-check-plugin/target/sonar-dependency-check-plugin-1.1.0-SNAPSHOT.jar xyz:/opt/sonarqube/extensions/plugins/
To equip Sonarqube with the new plugin we need to reboot the system.
For this we click on ‘Login’ in the top right corner:
The standard credentials are:
‘admin’ ‘admin’
First, we are asked to create a token.
As a name we choose project
for our example project and click on ‘Generate’:
Next on ‘Continue’:
As programming language we choose ‘Java’ and as build technology ‘Maven’. We copy the command line command via the ‘Copy’ button and note it for later.
Then we finish the tutorial at the bottom right on ‘Finish this tutorial’,
and go to ‘Administration’:
Select ‘System’
and ‘Restart server’
‘Restart’
After a short time the following page should be displayed:
If we now click on ‘Configuration’ ‘General Settings’ ‘Dependency Check’ should be displayed:
At this point, we have the plugin installed and have a token for our sample project.
Checking the code
Under ‘Administration’ ‘Configuration’ we set the following paths:
- Dependency-Check HTML report path :
reports/dependency-check-report.html
- Dependency-Check report path:
reports/dependency-check-report.xml
Now we go into our local project.
The project should have an vulnerable dependency named commons-fileupload
in the Maven configuration file pom.xml
as described earlier.
To generate the report for Sonarqube we enter the following in the root directory on the command line:
cd localproject/old_depproject
mvn clean dependency:copy-dependencies
./aggregatefordepcheck.sh
[[ -d reports ]] ||mkdir reports
dependency-check --project "Example Project" -s ./alllibs -l dependency.log -f ALL -o reports
mvn sonar:sonar -Dsonar.host.url=http://<IP_ADDRESS>:9001 \
-Dsonar.login="<token>" \
-Dsonar.dependencyCheck.reportPath="reports/dependency-check-report.xml" \
-Dsonar.dependencyCheck.htmlReportPath="reports/dependency-check-report.html"
Now when we go to ‘Projects’ we see the following:
And if we go to ‘old_depproject’ we get an exact breakdown:
Summary
We now have an infrastructure in which we can check dependencies in our projects on both Jenkins and Sonarqube. If new security gaps occur, these are recognized by the systems and can be reported. In the next blog post we discuss how we can run active vulnerability scans on our project via Jenkins in addition to the dependency analysis in our projects, and so are be able to find further gaps.


External API
Introduction
The External API can be accessed in two different ways: Either using a single dedicated user with access to everything (“super user”) or by implementing more fine grained access through user and role switching upon every request (“user switching” or “sudo” execution mode), where the request is executed in the name and using the roles of the specified user.
The first method is ideal for scenarios where the end users of the external application are not managed in Opencast. The downside of this approach is a potential security risk as well as the inability to audit and track changes made by the external applications back to the actual user who actually triggered the changes. The second method is more cumbersome to implement but leads a much improved control and assessment of security.
Delegation of Authorization
In situations where the provider of the External API offers a super user who is allowed “sudo” requests that are executed on behalf of another user, the External API is actually delegating authorization to the client application. In this cause authorization is performed upon login of the super user, but then the super user can switch to any other user or any set of roles (with a few exceptions for security reasons).
Note that in order to allow for user switching, a specific role needs to be assigned to the super user, and that role cannot be obtained by manipulating the role set (see Role switching).
User switching
When working with a super user, it is considered a best practice to specify a dedicated execution user upon each request whenever possible and reasonable. This way, creation or modification of resources can later be audited and mapped back to that user if needed.
The execution user can be specified by setting the X-RUN-AS-USER
request header with the user name as its value, as
seen in this sample request:
| Request | Headers |
|---|---|
GET /api |
X-RUN-AS-USER: john.doe |
Switching to another user can potentially fail for various reasons: The user might not exist or may not be allowed to switch to due to potential privilege escalation, or the current user might not be allowed to switch users at all.
If the request to switch to another user fails, the following response codes are returned:
| Response code | Comment |
|---|---|
403 (FORBIDDEN) |
The current user is not allowed to switch users |
403 (FORBIDDEN) |
The user cannot be switched to due to potential escalation of privileges |
412 Precondition failed |
The user specified in the X-RUN-AS-USER header does not exist |
Role switching
Rather than specifying an execution user, the client might choose to specify a set of roles that should be used when executing the request. This technique is recommended in cases where the users are not managed by the External API. By specifying a set of roles, the corresponding request will be executed using the API’s anonymous user but equipped with the specified set of roles.
The execution user’s roles can be specified by setting the X-RUN-WITH-ROLES
request header with the set of roles as
its value and with individual roles separated by comma, as seen in this sample request:
| Request | Headers |
|---|---|
GET /api |
X-RUN-WITH-ROLES: ROLE_A,ROLE_B |
Switching to a set of roles can potentially fail for various reasons: The role may not be granted to due to potential privilege escalation, or the current user might not be allowed to switch roles at all. If the request to apply a set of roles fails, the following response codes are returned:
| Response code | Comment |
|---|---|
403 (FORBIDDEN) |
The current user is not allowed to switch roles |
403 (FORBIDDEN) |
The roles cannot be granted to due to potential escalation of privileges |
Best practice
One user per external application
As a best practice, the External API provider should create one super user per external application and tenant, so that access through that super user can be controlled, limited and turned off individually for each external application and tenant.
Preference for user and role switching
Client implementations accessing the External API through a super user are urged to implement and enforce user and role switching as much as possible, since it allows for auditing of user activity on the External API and introduces less risk by running requests with a limited set of privileges.
Obviously, if all requests are executed using the super user directly, it is not possible to track which user initiated a given action.
Access Control
Most events in Opencast come with an access control list (ACL), containing entries that map actions to roles, either allowing or denying that action. Opencast currently only supports the ability to explicitly allow an action and consider everything else to be denied.
Roles
When a user authenticates against Opencast, it is assigned its set of roles that determine the user's access to Opencast data entities. There are multiple ways to associate roles with a user:
- Explicit assignment directly to the user
- Directly through membership in groups (ROLE_GROUP_<group name>)
- Indirectly through membership in groups (whatever roles have been assigned to the group)
In addition, a special role is assigned that uniquely identifies a user ("user role"). The user role can be determined by
evaluating the userrole
attribute in the Base API's call to /info/me.


"The Golden Bowl"
Adultery is the key word in the latest effort by the directing, producing and writing team of James Ivory, Ishmael Merchant and Ruth Prawer Jhabvala as they bring yet another Henry James novel to screen life in "The Golden Bowl."
Adam Verver (Nick Nolte) is a fabulously wealthy American industrialist, possibly the world's first billionaire, living in the lap of luxury in Europe with daughter, Maggie (Kate Beckinsale). They meet, in their travels, a self-styled matchmaker, Fanny Assingham (Anjelica Huston), who does her darnedest to get Maggie together with handsome, penniless Prince Amerigo (Jeremy Northam) from Italy. Fanny also pushes Adam into the arms of Charlotte Stant (Uma Thurman), Maggie's closest friend. Unknown to the Ververs, their soon-to-be spouses have just recently ended their own torrid love affair because the poor prince could not possibly marry an equally poor commoner. But, is the affair really over?
This is the third film that Merchant/Ivory/Jhabvala have adapted from the collected works of turn of the 19th century American novelist James. ("The Europeans" and "The Bostonians" were their previous efforts.) I have never been a fan of James's late 1800's era stories, finding his work too stern and without humor, unlike, for instance, Jane Austen, whose earlier period work - of Englishmen, rather than Americans - are bright and full of wit. James is more concerned with the darker side of the human psyche and "The Golden Bowl" is burdened with an almost relentless dourness with it's tale of deceit and infidelity.
The story keeps its focus on the four principals and the dynamics of the weird quadrangle of relationships. There's the close, almost spousal, bond between Adam and Maggie, as the father and daughter have had to depend on only each other for many years. A formal link exists between Maggie and Amerigo as the princely pauper uses his wife's vast wealth to rebuild his family estate. Amerigo is devoted to Maggie, but it's a devotion based on selfish motives, not love. Charlotte still actively lusts after Amerigo, but plays the game of loyal and loving wife to Adam. She and Maggie retain their best friendship even as she cuckolds her friend, but rends soon form in the delicate fabric of the relationships of the four. It's a lusty story that must have titillated the libidos of the reading public at the time the book was published.
Nick Nolte is proving to be one of the best senior actors in the business. He plays, basically, the other side of the coin of the character he created in Oliver Stone's "U-Turn." But, where that film's Jake McKenna (Nolte) was rich, powerful and ruthlessly evil, Adam Verver is rich and powerful, too, but also kind, generous and zealously devoted to his daughter. Nolte puts completely different spins on his characters, always making them unique.  The actress gives dimension to her performance and a believable, loving grace to Maggie that garners sympathy. Northam seemed miscast, at first, as the Italian-accented Prince Amerigo, but soon displays the selfish weakness of the man convincingly. Uma Thurman, never one of my favorite actresses, is terrific as the hedonistic, conniving Charlotte and reps one of her best perfs to date. Award considerations are not out of line.
Supporting cast is limited, but there are a couple of interesting characters floating around in the background. Huston, as Fanny, plays that catalyst that gets things in motion among the principals. Her accent strays between American/Southern and American/Neutral, but the role she plays is important to the fabric of the film. James Fox does a fine job in the small role of Fanny's husband and confidant, building his Bob Assingham into a real, and amusing, person.
The symbolism of the titular object is wrought throughout the film as the apparent perfection of the golden bowl, like the perfection of the marriages, is suspect and the flaws become obvious to the players and the viewer alike. The juxtaposition of the cracks in the bowl and obvious marital flaws of the characters is obvious, and a little heavy-handed, symbolically.
The production, as expected from this team, is sumptuous. The film looks terrific with authentic-feeling period sets and costumes, showing off the talents of a veteran group of behind-the-camera craftspeople. The lush, crisp photography by Tony Pierce-Roberts captures, vividly, the actions of these aristocrats and their times. Director Merchant musters his forces well, but, in the end, the story doesn't compel me, making the film feel too long.
"The Golden Bowl" is a strong effort that is burdened by the source material or its adaptation - not having read the novel, it's hard to tell. I give it a B.
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>========== X-RAMR-ID: 28676 X-RT-AuthorID: 1488 X-RT-TitleID: 1107628 X-RT-RatingText: B
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Autocryp is the place to buy and sell Bitcoin, Ethereum and various kinds of Digital Assets in
Indonesia. Then, book your weekly, bi-weekly or one-off clean online with imminent confirmation.
Secure Every Transaction
Your account is protected by Multifactor Authentication using a combination of email, SMS and Google
Authenticator.
Easiest To Use
You only need 1 account to do all Bitcoin transactions whether it is buying, selling, investing or
trading.
Fastest Mining
The Rupiah deposit can be processed instantly and Rupiah withdrawal is processed in less than 1 business
day.
Paid plan starts with a 7-day free trial, No credit card required
MONTHLY
YEARLY - 2 MONTH FREE
Starter
$10
Per Month
1 Pixel ID*
URL
Up to 200 shortened links / month
Professional
$29
Per Month
5 Pixels ID*
1 Custom URL
Up to 1,000 shortened links / month
5 Team Member
Business
$49
Per Month
Unlimited Pixels ID
Unlimited Custom URL
Unlimited shortened links / month
Unlimited Member
What Customers Say
"I started driving with Uber because I liked the idea that my own car could make me money. After just
about a couple weeks, I saw that this was something I wanted to do permanently."
Brandon Roger /
OWW Studio
"I wanted something where I could meet new people and get out of the house. Uber has helped with both of
those things, plus I’m seeing new parts of the city I’ve never seen before!"


stageRunner objects are used for executing a linear sequence of
actions on a context (an environment). For example, if we have an
environment e
containing x = 1, y = 2
, then using
stages = list(function(e) e$x <- e$x + 1, function(e) e$y <- e$y - e$x)
will cause x = 2, y = 0
after running the stages.
stagerunner_initialize(context, stages, remember = FALSE, mode = getOption("stagerunner.mode") %||% "head")
| context | environment. The initial environment that is getting modified during the execution of the stages. |
|---|---|
| stages | list. The functions to execute on the |
| remember | logical. Whether to keep a copy of the context and its contents throughout each stage for debugging purposes--this makes it easy to go back and investigate a stage. The default is |
| mode | character. Controls the default behavior of calling the
|


I am 19 years old and I was born and brought up in Hyderabad.
Right now I am pursuing Electronics and Computer Science Engineering in KIIT.
Have participated in multiple college events such as Republic Parade, KIITMUN, Youth Parliament.
I know the fundamentals and have some exposure to Java,C,Python programming.
Right now i am studying Kotlin to be efficient in Andorid Development for and on going project.


{% extends "layout.html" %} {% block title %}{{title}}{% endblock %} {% block content %}
The search string was:
It produced the error:
You might want to check your syntax using jsonlint.com. If your syntax is correct, there may be a bug; please file an issue with a copy-paste of your query.
{% else %} {% if sess %}The matched sessions are:
{{macros.session_listing_detailed(sess)}} {% else %}No sessions matched this search.
{% endif %} {% endif %} {% endblock %}


OK, I guess I should blog about this, because I’ve got people hammering me about Apple’s Spaces from all sides (I love the attention - keep it coming!).
I think it’s a great thing. VirtueDesktops, and all of the other virtual desktop/screen managers on the Mac have been little more than complicated hacks, forcing your machine to emulate what most UNIX machines do out of the box - which isn’t a bad thing per se, but I have yet to see an implementation that felt integrated.
“What about the future of VirtueDesktops?”, you ask? Well… I don’t know yet. I imagine that I could add features to Apple’s implementation, hanging off whatever they are doing, but to be honest it seems like a brilliant implementation to me. And I guess there’s 10.4 support for another year or so, but to be honest, the stuff they showed us about Xcode 3 today blew me away. No-one in their right mind will keep developing in Xcode 2 once version 3 is out (yes, it is that good!).
Oh, I also went along to the SciFiHiFi Weblogger’s party for a couple of hours tonight (I imagine it’s still kicking, because Lord Will of the Shipley had just grooved through the door 5 minutes before I chose to leave). My impressions - the Tamale Lady rocks, and Jason Harris has to be the smiliest dude this side of Ronald MacDonald himself. Here’s hoping I am a little less soft for the next party (I think there’s a WebKit party on tomorrow night). WWDC rocks hard guys – if you can afford it and are interested in development, definitely come along next year - this looks like it’s shaping up to be plenty of fun, and we haven’t even got to the technical sessions yet! If you’re a student studying at an Australian university, find out if your uni is part of the Apple University Consortium - they’ve sponsored my trip this year and I am absolutely grateful!


# 32022-10-15T17:24:00+03:00
|
Lower Bound |
Estimate |
Upper Bound |
| Value: |
76.22ns |
77.02ns |
78.28ns |
| Throughput: |
200.19MiB/s |
198.11MiB/s |
194.93MiB/s |
| Change in Value: |
-9.7890% |
-7.4111% |
-5.1571% |
| Change in Throughput: |
+10.851% |
+8.0043% |
+5.4375% |
No change in performance detected.
# 22022-10-15T16:57:57+03:00
|
Lower Bound |
Estimate |
Upper Bound |
| Value: |
81.59ns |
84.57ns |
88.03ns |
| Throughput: |
187.02MiB/s |
180.44MiB/s |
173.35MiB/s |
| Change in Value: |
+14.662% |
+16.998% |
+20.268% |
| Change in Throughput: |
-12.787% |
-14.528% |
-16.852% |
No change in performance detected.
# 12022-10-08T17:33:22+03:00
|
Lower Bound |
Estimate |
Upper Bound |
| Value: |
70.99ns |
71.05ns |
71.13ns |
| Throughput: |
214.93MiB/s |
214.77MiB/s |
214.53MiB/s |
| Change in Value: |
-1.4271% |
-1.1417% |
-0.9005% |
| Change in Throughput: |
+1.4478% |
+1.1549% |
+0.9086% |
No change in performance detected.
# 02022-10-08T17:13:51+03:00
|
Lower Bound |
Estimate |
Upper Bound |
| Value: |
71.69ns |
71.88ns |
72.12ns |
| Throughput: |
212.84MiB/s |
212.29MiB/s |
211.57MiB/s |


amazon-chime-sdk
/
com.amazonaws.services.chime.sdk.meetings.analytics
/
EventAttributeName
/
meetingStartDurationMs
meetingStartDurationMs
meetingStartDurationMs
Duration of the meeting starting process


If you touch and drag the circles, you will not scroll the page. If you touch and drag anything else, you will scroll the page.
I give the page overflow


33
The Steadfast Love of the LORD
Shout for joy in the LORD, O you righteous!
1 Praise befits the upright.
2 Give thanks to the LORD with the lyre;
make melody to him with the harp of ten strings!
3 Sing to him a new song;
play skillfully on the strings, with loud shouts.
4 For the word of the LORD is upright,
and all his work is done in faithfulness.
5 He loves righteousness and justice;
the earth is full of the steadfast love of the LORD.
6 By the word of the LORD the heavens were made,
and by the breath of his mouth all their host.
7 He gathers the waters of the sea as a heap;
he puts the deeps in storehouses.
8 Let all the earth fear the LORD;
let all the inhabitants of the world stand in awe of him!
9 For he spoke, and it came to be;
he commanded, and it stood firm.
10 The LORD brings the counsel of the nations to nothing;
he frustrates the plans of the peoples.
11 The counsel of the LORD stands forever,
the plans of his heart to all generations.
12 Blessed is the nation whose God is the LORD,
the people whom he has chosen as his heritage!
13 The LORD looks down from heaven;
he sees all the children of man;
14 from where he sits enthroned he looks out
on all the inhabitants of the earth,
15 he who fashions the hearts of them all
and observes all their deeds.
16 The king is not saved by his great army;
a warrior is not delivered by his great strength.
17 The war horse is a false hope for salvation,
and by its great might it cannot rescue.
18 Behold, the eye of the LORD is on those who fear him,
on those who hope in his steadfast love,
19 that he may deliver their soul from death
and keep them alive in famine.
20 Our soul waits for the LORD;
he is our help and our shield.
21 For our heart is glad in him,
because we trust in his holy name.
22 Let your steadfast love, O LORD, be upon us,
even as we hope in you.


Our mission is to offer the best and most competitive quality solutions in order to accompany our clients on their path of continuous improvement.
We invest in creating our own products to extend, integrate and enhance Atlassian tools, with the guarantee of being certified as Atlassian Silver Marketplace Vendor.
And we develop plugins that help improve the quality of the SonarQube code by incorporating new rules, languages, and reports.
We offer training courses on software quality, continuous inspection, process management, as well as Atlassian and SonarSource products.
We adapt trainings to your teams about the best techniques and tools.
Our personnel is certified with the highest level and with proven experience in reference environments.


SheetJS JS-XLSX In-Browser HTML Table Export Demo
Compatibility notes: - Editable table leverages the HTML5 contenteditable feature, supported in most browsers. - IE6-9 requires ActiveX or Flash to download files. - iOS Safari file download may not work. This is a known issue. Editable Data Table: (click a cell to edit it)
Export it!
XLSX Excel 2007+ XML |
Flash required for actually downloading the generated file. |
XLSB Excel 2007+ Binary |
Flash required for actually downloading the generated file. |
XLS Excel 97-2004 Binary |
Flash required for actually downloading the generated file. |
ODS |
Flash required for actually downloading the generated file. |
Flat ODS |
Flash required for actually downloading the generated file. |
Powered by the community version of js-xlsx


{% load static %}
{% block thesis %}
{% comment %}The tab menu starts here!{% endcomment %}
{% comment %}The PG Thesis supervision segment starts here!{% endcomment %}
| Sr. |
Student |
Title |
Year |
Supervisor |
Action |
| 1. |
Student's Name |
Student's Thesis's Title |
2017 |
Student's Supervisor |
Edit |
| 2. |
Student's Name |
Student's Thesis's Title |
2016 |
Student's Supervisor |
Edit |
| 3. |
Student's Name |
Student's Thesis's Title |
2015 |
Student's Supervisor |
Edit |
|
|
{% comment %}The PG Thesis supervision segment ends here!{% endcomment %}
{% comment %}The PhD Thesis supervision segment starts here!{% endcomment %}
| Sr. |
Student |
Title |
Year |
Supervisor |
Action |
| 1. |
Student's Name |
Student's Thesis's Title |
2017 |
Student's Supervisor |
Edit |
| 2. |
Student's Name |
Student's Thesis's Title |
2016 |
Student's Supervisor |
Edit |
| 3. |
Student's Name |
Student's Thesis's Title |
2015 |
Student's Supervisor |
Edit |
|
|
{% comment %}The PhD Thesis supervision segment ends here!{% endcomment %}
{% endblock %}


GitHub repository
here
.
-
+
Maximum teeth on rings
-
+
Minimum teeth on planets or sun
Ratio minimum and maximum:
Count solutions
Show solutions


Enzo is a rather complex code. At the time of this writing, the code is composed of 413 C++ and fortran source and header files with a total of 86,245 total lines of text (found by doing running "wc -l *.C *.src *.h *.def" in the amr_mpi/src directory. Needless to say, modifying the code can be rather challening.
Unfortunately, we haven't had time to write the Developer's Guide yet. It's coming soon, and we would appreciate any user suggestions as to what we should include in the Guide. In the meantime, you may find the Enzo Flowchart and Code Browser handy.


{{status}}
{{nameLocalized}}
Denmark’s ratification of the Protocol does not apply in respect of Greenland and the Faroe Islands.
A dispute exists between the Governments of Argentina and the United Kingdom of Great Britain and Northern Ireland concerning sovereignty over the Falkland Islands (Malvinas).
{{NFP}} ABS National Focal Point
{{CNA}} Competent National Authorities
{{MSR}} Legislative Administrative or Policy Measures
{{NDB}} National Databases and Websites
{{IRCC}} Internationally Recognized Certificates of Compliance
{{CP}} Checkpoints
{{CPC}} Checkpoint Communiqués


Applying for a PhD in the UK in 387 easy steps
You cannot get enough of all the research and had such a blast writing your bachelor or master thesis? You want to join the scientific side of things (although they don’t have many cookies), and pursue...
[Read More]


Parable consists of two parts: the core language and a user interface layer. By itself, the core language isn't very useful. It has no facilities for input or output, focusing instead on implementing the parser, compiler, byte code interpreter, and standard library of functions. All I/O operations are left up to the interface layer to implement.
This was done to make the core more adaptable to devices that don't implement a traditional terminal environment. It's quite easy to embed Parable into a larger application, and to create an environment incorporating new capabilities for interacting with the world.
The Parable code can be converted to work with Python 3 using *2to3*. The example code below will likely need adjustments in this case.
The minimal skeleton to initialize the Parable environment is:
import parable
if __name__ == '__main__':
parable.prepare_slices()
parable.prepare_dictionary()
parable.parse_bootstrap(open('stdlib.p').readlines())
While optional, it's also useful to collect garbage after loading the standard library:
parable.collect_garbage()
To process code:
parable.interpret(parable.compile("code", request_slice()))
To display a stack dump is more difficult as you need to account for the various data types. An example:
def stack_item(i, s):
return str(i) + ':' + str(s)
def dump_stack():
"""display the stack"""
i = 0
s = ""
depth = len(parable.stack)
while i < depth:
tos = parable.stack[i]
type = parable.types[i]
if type == parable.TYPE_NUMBER:
sys.stdout.write(stack_item(i, "#" + str(tos)))
elif type == parable.TYPE_CHARACTER:
sys.stdout.write(stack_item(i, "$" + unicode(unichr(tos)).encode('utf-8')))
elif type == parable.TYPE_STRING:
s = "'" + parable.slice_to_string(tos) + "'"
elif type == parable.TYPE_POINTER:
s = "&" + str(tos)
if parable.pointer_to_name(tos) != "":
s = s + "\nPointer to: " + parable.pointer_to_name(tos)
sys.stdout.write(stack_item(i, s))
elif type == parable.TYPE_FLAG:
if tos == -1:
sys.stdout.write(stack_item(i, "true"))
elif tos == 0:
sys.stdout.write(stack_item(i, "false"))
else:
sys.stdout.write(stack_item(i, "malformed flag"))
elif type == parable.TYPE_BYTECODE:
sys.stdout.write(stack_item(i, "`" + str(tos)))
elif type == parable.TYPE_REMARK:
s = "\"" + parable.slice_to_string(tos) + "\""
elif type == parable.TYPE_FUNCTION_CALL:
s = "Call: " + str(tos)
sys.stdout.write(stack_item(i, s))
else:
sys.stdout.write(stack_item(i, "unmatched type on stack!"))
i += 1
sys.stdout.write('\n')
Parable provides hooks for the interface layer to add extensions to the byte codes. To make use of this, implement an opcode handler, and pass it to interpret() along with the slice.
interpret(slice, [function providing new byte codes])
A sample opcode processor:
def opcodes(slice, offset, opcode):
if opcode == 2000:
# do something here
else:
return offset
If you extend the byte codes your interface code should also bind them to names.


CustomTwitch
Who needs that?
Home
CustomTwitch
Version 0.1
An extension for customising your experience on Twitch.tv.
Features


Edit police approval settings for all applications in your area.
Maximum Number of guests permitted before Police Approval is required at this detachment.
error {{message}}


DNS Overrider is a simple extension for overriding domain names directly in the page.
In this page you can disable or enable extension, add and remove aliases for domains
Rewrite engine: Disabled


Statutory guidance
Sets out the rules for providers who receive funding from the SFA to offer education and skills training for 2015 to 2016.
PDF , 1.46MB , 138 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 1.42MB , 42 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 1.65MB , 107 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 377KB , 10 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 312KB , 5 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 288KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 122KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 84.5KB , 6 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 3.8MB , 74 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 509KB , 10 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
This is the second version of the Funding Rules and the accompanying summary of changes document.
The funding rules:
You can see the main changes from the funding rules of 2014 to 2015 in the summary of changes document.
It is not an exhaustive list of all the changes between the two funding rules documents.
You must refer to the main SFA funding rules 2015 to 2016 document for the definitive rules which are part of the terms and conditions of the funding agreements and the 24+ Advanced Learning Loans Facility Conditions between the Chief Executive of Skills Funding and all providers of education and training who receive funding from the Chief Executive of Skills Funding or a 24+ Advanced Learning Loan (Loan) Facility.
This Addendum includes changes to the Introduction and purpose of the document, ESF match funding, financial contributions, Early Years Educator qualifications and Traineeships.
This document sets out the funding rules which apply to the new apprenticeship standards delivered under the trailblazer apprenticeship programme.
In setting out the rules we have provided additional context and explanation to help providers delivering training and end-point assessment for the new apprenticeship standards.
These rules apply from 1 August 2015 to 31 July 2016 for all organisations in receipt of funding for the delivery of training or the end-point assessment of apprenticeship standards for the funding year 2015 to 2016.
This document is supported by the Guidance for recording trailblazer apprenticeships in the Individualised Learner Record for 2015 to 2016 .
We have produced a summary of changes document that sets out the main changes between this version and the Funding rules for Trailblazer apprenticeships - 2014 to 2015: version 2 published in March 2015.
Published: 9 February 2015
Updated: 23 March 2016
From: Skills Funding Agency
Part of: Further education and training


--- layout: default title: Maria-Alexandra Radu, unicorn lover sitemap: priority: 0.9 changefreq: daily ---
Best known as lover of unicorns and all things magical, including data, design and code.
I work at JPMC as a software engineer, Tech Centre associate and communities of practice manager and am doing an MSc Computer Science at University of Bath.
I love unicorns and I am one, a unicorn developer/designer is a person who can design and code, and I could never decide on doing just one so I do both.
Read my story here.


Dataframes¶
VeRoViz uses three particular pandas dataframes, as listed below. Each dataframe serves a specific purpose. The columns of each dataframe that are used depend on the function that is referencing the dataframe. While each dataframe has a number of required columns, users are encouraged to add new columns as necessary to support a particular research project.
Dataframe type |
Description |
|---|---|
Specifies information about single locations (nodes or vertices). |
|
Used to draw lines between pairs of locations on a Leaflet map. |
|
Allows Cesium to generate 3D video for routing visualization. |
The “Arcs” and “Assignments” dataframes are very similar. See Dataframes Comparison for more information.
Dataframes Comparison¶
The “Arcs” dataframe contains a subset of the “Assignments” dataframe columns. Most notably, the “Arcs” dataframe does not contain information about timing, nor does it contain information related to the display of 3D models in Cesium.
Field Name |
Arcs |
Assignments |
|---|---|---|
odID |
✓ |
✓ |
objectID |
✓ |
✓ |
modelFile |
✓ |
|
modelScale |
✓ |
|
modelMinPxSize |
✓ |
|
startTimeSec |
✓ |
|
startLat |
✓ |
✓ |
startLon |
✓ |
✓ |
startAltMeters |
✓ |
|
endTimeSec |
✓ |
|
endLat |
✓ |
✓ |
endLon |
✓ |
✓ |
endAltMeters |
✓ |
|
leafletColor |
✓ |
✓ |
leafletWeight |
✓ |
✓ |
leafletStyle |
✓ |
✓ |
leafletOpacity |
✓ |
✓ |
leafletCurveType |
✓ |
✓ |
leafletCurvature |
✓ |
✓ |
useArrows |
✓ |
✓ |
cesiumColor |
✓ |
✓ |
cesiumWeight |
✓ |
✓ |
cesiumStyle |
✓ |
✓ |
cesiumOpacity |
✓ |
✓ |
ganttColor |
✓ |
|
popupText |
✓ |
✓ |
startElevMeters |
✓ |
✓ |
endElevMeters |
✓ |
✓ |
wayname |
✓ |
|
waycategory |
✓ |
|
surface |
✓ |
|
waytype |
✓ |
|
steepness |
✓ |
|
tollway |
✓ |


Really, who is Steph? Find out here!
What you were just asked:
Do I like improv?
Do I like volunteering?
Have I broken any bones?
Do I like eating mushrooms?
Do I like coffee?


Ernesto Valverde considers Barcelona defender ‘transferable’, report claims
by Jaikuran RandhawaAccording to Mundo Deportivo, Barcelona manager Ernesto Valverde sees talented defender Jean-Clair Todibo as ‘transferable’ given the emergence of Barcelona B prospect Ronald Araujo.
Uruguay youth international Araujo arrived in Catalonia from Boston River in January for a fee of €1.7m according to Mundo Deportivo.
The 20-year-old has been making waves for the B team and was awarded his first-team debut in last week’s 4-0 win against Sevilla.
Araujo actually replaced Todibo in the 73rd minute but his debut lasted just 14 minutes as he was sent off for a challenge on former Manchester United star Javier Hernandez.
The ace could be handed more chances in the first-team given Samuel Umtiti’s injury problems.
A report from Mundo on Araujo from last week also reveals that the ace’s release clause stands at €100m and it will automatically double should he become a permanent member of the first-team.
It seems harsh to deem Todibo transferable considering that he’s barely had the chance to feature in the first-team because of the fierce competition for places between Gerard Pique, Clement Lenglet and Umtiti.
The Frenchman looks as though he could have plenty of upside if he’s developed correctly.
It would certainly be a risky move for the club to sell the youngster anytime soon given how much a young player’s value can sky-rocket in a short amount of time.


08/24/2009 01:20:13 ¶ ● hurl Unfortunately named very useful curl-ish tool from @defunkt and @leahculver (via @tlrobinson)


12.8 Description of Merge Sort
Merge
sort is another example of a divide-and-conquer sorting
algorithm (see Chapter
1). Like quicksort, it relies on making comparisons
between elements to sort them. However, it does not sort in
place.
Returning once again to the example of
sorting a pile of canceled checks by hand, we begin with an
unsorted pile that we divide in half. Next, we divide each of
the resulting two piles in half and continue this process
until we end up with one check in every pile. Once all piles
contain a single check, we merge the piles two by two so that
each new pile is a sorted combination of the two that were
merged. Merging continues until we end up with one big pile
again. At this point, the checks are sorted.
As with quicksort, since merge sort is a
divide-and-conquer algorithm, it is helpful to consider it
more formally in terms of the three steps common to all
divide-and-conquer algorithms:
-
Divide: we divide the data in
half.
-
Conquer: we sort the two divisions by
recursively applying merge sort to them.
-
Combine: we merge the two divisions into a
single sorted set.
The distinguishing component of merge sort is
its merging process. This is the
process that takes two sorted sets and merges them into a
single sorted one. As we will see, merging two sorted sets is
efficient because we need only make one pass through each set.
This fact, combined with the predictable way the algorithm
divides the data, makes merge sort in
all cases as good as the average case of quicksort.
Unfortunately, the space requirement of merge
sort presents a drawback. Because merging cannot be performed
in place, merge sort requires twice the space of the unsorted
data. This significantly reduces its desirability in the
general case since we can expect to sort just as fast using
quicksort, without the extra storage requirement. However,
merge sort is nevertheless valuable for very large sets of
data because it divides the data in predictable ways. This
allows us to divide the data into more manageable pieces
ourselves, use merge sort to sort them, and then perform as
many merges as necessary without having to keep the entire set
of data in memory all at once. |


Welcome! Feel free to peruse some of my showcased projects, or scroll below for a closer look through my bio and portfolio.
Interactive software is developed to alter the scheduled paths of unmanned-air vehicles so that they track target objects. The introduced methodology uses geometry and optimization to minimize the deviation from the original flight path while maximizing the amount of time the target is within the range of sight of the vehicle.
A weekend project to implement an introductory example of the trade-off between exploration and exploitation. This is based on the equations found in the 2nd chapter of Sutton and Barlo's RL text (2nd edition).
Currently interning with the Data Science Summer Institute at Lawrence-Livormore National Laboratory. This fall, I will begin my MS in Robotics at Carnegie Mellon. My interests include control theory, machine learning, reading sci-fi, and backpacking.
I have previously worked in flight control law development at Bell, in support of the Bell 525 Relentless and 360 Invictus helicopter programs.
My undergraduate honors thesis involved optimizing sizing parameters of trans-atmospheric vehicles for orbital inclination-change capability. I also conducted research under Dr. David Hullender, studying non-Newtonian flow through an annular ring.
Feel free to reach out by either of the means below:


The success of the federal stimulus program may hinge on the speed with which the government is able to distribute the billions authorized by Congress. Unlike some other estimates of the cost of the stimulus, which are based on spending projections, we took our numbers from the actual budget authority issued by Congress — $792 billion and change. We'll be tracking the progress of stimulus payments made by federal agencies weekly.
| Agency Webpage | Spent (Thousands) | In Process (Thousands) | Left to Spend (Thousands) | Total (Thousands) | Spent (%) |
|---|---|---|---|---|---|
| Department of Education | 34188561.00 | 36506496.00 | 27542943.00 | 98238000.00 | |
| Health and Human Services | 51778995.00 | 19073401.00 | 51940605.00 | 122793000.00 | |
| Department of Labor | 55874880.00 | 5977688.00 | 8725433.00 | 70578000.00 | |
| Department of Transportation | 9138186.00 | 27044255.00 | 11937559.00 | 48120000.00 | |
| Social Security Administration | 13420859.00 | 21397.00 | 1784744.00 | 15227000.00 | |
| Department of Energy | 2474085.00 | 23339945.00 | 19410970.00 | 45225000.00 | |
| Housing and Urban Development | 3071423.00 | 10252762.00 | 350815.00 | 13675000.00 | |
| Environmental Protection Agency | 1148834.00 | 5962484.00 | 108683.00 | 7220000.00 | |
| Department of Agriculture | 9492977.00 | 2470442.00 | 15617580.00 | 27581000.00 | |
| Department of the Treasury | 2983249.00 | 4827554.00 | 81402196.00 | 89213000.00 | |
| Department of Justice | 1587973.00 | 2378153.00 | 35874.00 | 4002000.00 | |
| Department of Defense | 1065050.00 | 3119672.00 | 3250279.00 | 7435000.00 | |
| Department of Commerce | 647563.00 | 1400769.00 | 5867667.00 | 7916000.00 | |
| National Science Foundation | 217987.00 | 2406635.00 | 377378.00 | 3002000.00 | |
| General Services Administration | 495139.00 | 2228841.00 | 3133020.00 | 5857000.00 | |
| Department of Homeland Security | 188426.00 | 1174193.00 | 1392380.00 | 2755000.00 | |
| Army Corps of Engineers | 866635.00 | 2151377.00 | 1581989.00 | 4600000.00 | |
| Veterans Affairs | 594719.00 | 565716.00 | 240565.00 | 1401000.00 | |
| Department of the Interior | 335877.00 | 1032986.00 | 1636136.00 | 3005000.00 | |
| Railroad Retirement Board | 141395.00 | 1.00 | 15004.00 | 156400.00 | |
| Corporation for National and Community Service | 66055.00 | 105679.00 | 29266.00 | 201000.00 | |
| Small Business Administration | 310525.00 | 337709.00 | 81766.00 | 730000.00 | |
| Department of State | 67799.00 | 168031.00 | 366170.00 | 602000.00 | |
| National Endowment for the Arts | 23224.00 | 26749.00 | 26.00 | 50000.00 | |
| Smithsonian | 11619.00 | 10249.00 | 3132.00 | 25000.00 | |
| NASA | 185384.00 | 533411.00 | 283205.00 | 1002000.00 | |
| US Agency for International Development | 10076.00 | 12413.00 | 15511.00 | 38000.00 |
This chart and other stories are part of Eye on the Stimulus, our blog dedicated to tracking the stimulus from bill to building.


{% extends "contact-layout.html" %} {% block page_title %} INVEST in GREAT {% endblock %} {% block content %} Contact our investment services team for: practical support and information about taking your investment forward insights into the UK market help building connections Page 1 of 3 Your details Full name Job title How do you want to be contacted? How do you want to be contacted? Phone Phone number Enter your full phone number, including area code Email Business email address {% endblock %}
Contact our investment services team for:
Page 1 of 3
Enter your full phone number, including area code


Calling is simple, fast and non-threatening. You will either talk to a young staff member (not Rep. {{ district.member.last_name }}) or you will get a recording. Staff will not quiz you.
They just want to know your name and address so they can confirm you live in District {{ district.number }}. Then they will listen and make notes while you tell them your talking points. They will thank you, and you’re done. Simple as that.
{{ office.city }}: {{ office.phone }}
Please call the office closest to you.
{{ talking_point.gratitude.text }}{% if talking_point.gratitude.link %} (more info){% endif %}
{{ talking_point.education.text }}{% if talking_point.education.link %} (more info){% endif %}
{{ talking_point.request.text }}{% if talking_point.request.link %} (more info){% endif %}


I want to emphasize that this is an alpha version, so you do not have to trust 100% of what the app tells you, calculating it, the app marks you approximately 3 liters less than what you should pour when there is an extra lap, if the Laps match the race distance because 1 or 2 more liters would be enough to reach the finish line


Sophia has cooked a pie made from oil for her drones and left it in the kitchen. The Drones were returning home in small groups or one by one, and haven’t been seeing each other upon their return, so each group had no idea how many drones has eaten their slice of the pie. Some groups know how big the pie was after Sophia removed it from the oven, but other groups don't know this and think the remaining part is the entire pie, and take their portion from the remaining. So each group has divided (mentally) the remaining part or initial pie and took their slice. How many parts will remain after all of the drones return?
Let’s take a look at an example of how this should work: There are 6 drones. The first group consists of 2 drones. They has divided the pie into 6 parts and took 2/6 of the pie. The remainder of the pie is 2/3 of the entire pie. Next returns a single drone, it doesn’t know about the original size of the pie, so it divides the remaining pie into 6 slices and takes 1 part. This leaves 10/18=5/9. The last group consists of 3 drones, who’ve heard about the original size of the pie from Sophia. They took half of the original pie, so the remaining is 5/9 - 3/6 = 1/18
You are given an ordered array with the group sizes in the order of their arrival. If a group knows about the initial pie size, then the size is positive. If not, then size will be negative. The recent example will given as (2, -1, 3).
You should calculate the size of the remaining pie as a fraction from the start size. The result should be represented as two numbers - numerator and denominator. Zero should be represented as (0, 1).
Input: The group sizes as a tuple of integers.
Output: The remaining pie as a list or tuple of two integers.
Example:
{% if interpreter.slug == "js-node" %}dividePie([2, -1, 3]) == [1, 18] dividePie([1, 2, 3]) == [0, 1]{% else %}
divide_pie((2, -1, 3)) == (1, 18) divide_pie((1, 2, 3)) == (0, 1){% endif %}
How it is used: This mission will familiarize you with the operations involving fractions because we must deal with fractions every day of our lives.
Precondition:
all(x for x in groups)
all(-100 < x < 100 for x in groups)


| Closed
Tickets |
| #592 |
javascript comments
colorization too greedy |
| #605 |
hitting enter in blank
document sends the editor into limbo |
| #67 |
Insert-tabs-as-spaces
doesn't acknowledge tab-stops |
| #68 |
Content Assist should
come up with a full list of CF Functions |
| #132 |
CFC Code complete |
| #439 |
Intellisense bug. |
| #556 |
syntax coloring for
cfscript CFCs |
| #601 |
autocompletion : cannot
disable function assist, and ordering is incorrect |
| #154 |
indent not preserved
when replacing selected text with new line |
| #160 |
Comments not recognized
by 'problems' in CFC |
| #281 |
Print Margin on Windows |
| #324 |
generation of tabs
instead of spaces when moving selected lines to the right |
| #337 |
Empty editor when
opening a file from the File Menu |
| #420 |
File parser and using
cfhtmlhead to include Javascript files. |
| #514 |
color syntax oddness |
| #550 |
Editor rendering fails
and messes up |
| #568 |
revamp file explorer |
| #581 |
Add option to disable
auto indent |
| #582 |
files linked via RSE are
unmodifiable |
| #583 |
newline within tag adds
extra indent |
| #586 |
it would rock my world
if we could have "smart" indenting when entering a newline between
{ and } |
| #587 |
I would love you forever
if we could have cfscript comments auto-expand with each newline |
| #588 |
the editor needs to know
that cfscript components are cfscript code blocks |
| #589 |
Mis-colored items with
some tags/scripts |
| #591 |
disable auto-close when
in comments |
| #594 |
comment mode
continuation too eager. |
| #595 |
add auto-insert option
for when there is only one proposal available |
| #597 |
C-Style comment
continuation character indent off by one? |
| #598 |
add a selection to line
comment action |
| #599 |
it would be totes
awesome if the "selection to line comment" action was bound to M1+/ |
| #600 |
disable auto-insert of
quotes or apostrophes when in comment blocks |
| #602 |
formatting enhancements |
| #603 |
formatter needs "close
tag" preference |
| #604 |
formatter needs "ignored
tags" preference |
| #606 |
"spaces for tabs"
ignored. |
| #607 |
Show hotkey combos for
"Collapse All" and "Expand All" in context menu |
| #609 |
several context menu
items do not display their key binding |
| #610 |
automate the changelog
generation in the "what's new" page |
| #611 |
add "bracket on new
line" format option to cfscript/javascript formatting |
| #612 |
add preference for
syntax coloring cfscript-based cfcs |
| #573 |
context sensitive
comments in cfscript |


{% extends "layout.html" %} {% block body %}
Replays are stored in: Documents\My Games\Rocket League\TAGame\Demos
NOTE: Replays may take 1-2 minutes to process, please be patient! You will get an error message if it fails.


WITNESS LIST Judicial Affairs Committee March 10, 2003-2:30P HB 496 For: Lee, Donald (Texas Conference of Urban Counties) Mayfield, Kenneth (Self and Dallas County Commissioners Court) On: Moore, Kelly (Board of Regional Presiding Judges) Ovard, John (First Administrative Judicial Region of Texas) Underwood, Olen (Presiding Judges of Nine Regions) HB 988 For: Sims, Randy (Brazos County Commissioners Court) Vance, Bill (Self) HB 1059 For: Collins, Donna (Self and Texas Court Reporters Assoc. and TCRA CART Foundation) Smelley, Dana (Texas Court Reporters Association) On: Barlow Fischer, Melissa (Bexar County Criminal District Courts) Collins, Billy (Texas Commission for the Deaf & Hard of Hearing) Kadas, Chris (Texas Dept. of Licensing & Regulation) HB 1213 Against: Noll, Chuck (Harris County District Attorney's Office) HB 1470 For: Jamieson, Lisa (Real Estate, Probate & Trust Law Section of the State Bar of Texas) HB 1471 For: Jones, Jerry (Real Estate, Probate & Trust Law Section of the State Bar of Texas) Against: Brigance, John (Texas Bankers Association - Trust Services Division) HB 1472 For: Wolff, Jr., Harry (Self and Real Estate, Probate & Trust Law Section of State Bar of Texas) HB 1473 For: Jones, Jerry (Real Estate, Probate & Trust Law Section of the State Bar of Texas) Wolff, Jr., Harry (Self and Real Estate, Probate & Trust Law Section of State Bar of Texas)


Enter your email address and your password will be reset and emailed to you.
© {{coreCtrl.year}} {{ coreCtrl.name }}


Eslam Adel
UI/UX Designer & UI Developer
Projects
26
Views
21579
Likes
976
See My Latest Work Here
Follow Me...


Named Individuals
IRI: https://w3id.org/dqts#completeness
- Is defined by
-
https://w3id.org/dqts#
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#completenessOfObservations
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#completenessOfVariables
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#consistency
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#moderation
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#name
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#range
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#timeUniqueness
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#timeliness
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c
IRI: https://w3id.org/dqts#typicality
- Is defined by
- https://w3id.org/dqts
- Term status
- stable
- belongs to
-
dimension
c


Cloth in single thread (2d)
Cloth in single thread (WebGL)
Cloth with shared array buffer in web worker (WebGL)


--- title: bron date: 1998-11-03T11:00:00.000Z gender: Girl homePage: www-personal.usyd.edu.au/~mslee/bronwyn.html city: Sydney country: Australia thinkLotrRules: Of course ---
umm nothing to say. it's cool


Python PDF parser and analyzer
pdfminer3 is a tool for extracting information from PDF documents. Unlike other PDF-related tools, it focuses entirely on getting and analyzing text data. pdfminer3 allows one to obtain the exact location of text in a page, as well as other information such as fonts or lines. It includes a PDF converter that can transform PDF files into other text formats (such as HTML). It has an extensible PDF parser that can be used for other purposes than text analysis.
pdfminer3 is about 20 times slower than other C/C++-based counterparts such as XPdf.
Online Demo: (pdf -> html conversion webapp)
http://pdf2html.tabesugi.net:8080/
Source distribution:
http://pypi.python.org/pypi/pdfminer3/
github:
https://github.com/gwk/pdfminer3/
Questions and comments:
http://groups.google.com/group/pdfminer-users/
setup.py
to install:# python setup.py install
$ pdf2txt.py samples/simple1.pdf Hello World Hello World H e l l o W o r l d H e l l o W o r l d
In order to process CJK languages, you need an additional step to take during installation:
# make cmap python tools/conv_cmap.py pdfminer3/cmap Adobe-CNS1 cmaprsrc/cid2code_Adobe_CNS1.txt reading 'cmaprsrc/cid2code_Adobe_CNS1.txt'... writing 'CNS1_H.py'... ... (this may take several minutes) # python setup.py install
On Windows machines which don't have make
command,
paste the following commands on a command line prompt:
mkdir pdfminer3\cmap python tools\conv_cmap.py -c B5=cp950 -c UniCNS-UTF8=utf-8 pdfminer3\cmap Adobe-CNS1 cmaprsrc\cid2code_Adobe_CNS1.txt python tools\conv_cmap.py -c GBK-EUC=cp936 -c UniGB-UTF8=utf-8 pdfminer3\cmap Adobe-GB1 cmaprsrc\cid2code_Adobe_GB1.txt python tools\conv_cmap.py -c RKSJ=cp932 -c EUC=euc-jp -c UniJIS-UTF8=utf-8 pdfminer3\cmap Adobe-Japan1 cmaprsrc\cid2code_Adobe_Japan1.txt python tools\conv_cmap.py -c KSC-EUC=euc-kr -c KSC-Johab=johab -c KSCms-UHC=cp949 -c UniKS-UTF8=utf-8 pdfminer3\cmap Adobe-Korea1 cmaprsrc\cid2code_Adobe_Korea1.txt python setup.py install
pdfminer3 comes with two handy tools:
pdf2txt.py
and dumppdf.py
.
pdf2txt.py
extracts text contents from a PDF file.
It extracts all the text that are to be rendered programmatically,
i.e. text represented as ASCII or Unicode strings.
It cannot recognize text drawn as images that would require optical character recognition.
It also extracts the corresponding locations, font names, font sizes, writing
direction (horizontal or vertical) for each text portion.
You need to provide a password for protected PDF documents when its access is restricted.
You cannot extract any text from a PDF document which does not have extraction permission.
Note: Not all characters in a PDF can be safely converted to Unicode.
$ pdf2txt.py -o output.html samples/naacl06-shinyama.pdf (extract text as an HTML file whose filename is output.html) $ pdf2txt.py -V -c euc-jp -o output.html samples/jo.pdf (extract a Japanese HTML file in vertical writing, CMap is required) $ pdf2txt.py -P mypassword -o output.txt secret.pdf (extract a text from an encrypted PDF file)
-o filename
-p pageno[,pageno,...]
-c codec
-t type
text
: TEXT format. (Default)
html
: HTML format. Not recommended for extraction purposes because the markup is messy.
xml
: XML format. Provides the most information.
tag
: "Tagged PDF" format. A tagged PDF has its own contents annotated with
HTML-like tags. pdf2txt tries to extract its content streams rather than inferring its text locations.
Tags used here are defined in the PDF specification (See §10.7 "Tagged PDF").
-I image_directory
-M char_margin
-L line_margin
-W word_margin
Each value is specified not as an actual length, but as a proportion of the length to the size of each character in question. The default values are M = 2.0, L = 0.5, and W = 0.1, respectively.
| → | ← M | ||||||
Q u i |
c k |
b r o w |
n f o x |
↓ | |||
| → | ← W | L | |||||
|
↑ |
-F boxes_flow
-C
-n
-A
-V
-Y layout_mode
exact
: preserve the exact location of each individual character (a large and messy HTML).
normal
: preserve the location and line breaks in each text block. (Default)
loose
: preserve the overall location of each text block.
-E extractdir
-s scale
-m maxpages
-P password
-d
dumppdf.py
dumps the internal contents of a PDF file
in pseudo-XML format. This program is primarily for debugging purposes,
but it's also possible to extract some meaningful contents
(such as images).
$ dumppdf.py -a foo.pdf (dump all the headers and contents, except stream objects) $ dumppdf.py -T foo.pdf (dump the table of contents) $ dumppdf.py -r -i6 foo.pdf > pic.jpeg (extract a JPEG image)
-a
-i objno,objno, ...
-i
options are accepted.
-p pageno,pageno, ...
-p
options are accepted.
Note that page numbers start at one, not zero.
-r
(raw)
-b
(binary)
-t
(text)
With -r
option, the "raw" stream contents are dumped without decompression.
With -b
option, the decompressed contents are dumped as a binary blob.
With -t
option, the decompressed contents are dumped in a text format,
similar to repr()
manner. When
-r
or -b
option is given,
no stream header is displayed for the ease of saving it to a file.
-T
-E directory
-P password
-d
(This is so-called MIT/X License)
Copyright (c) 2004-2013 Yusuke Shinyama <yusuke at cs dot nyu dot edu>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


 For the fun of it, this app separates the spectrum into 24 sub-bands, and you can choose to freeze some, all or none of them as you go. Simply flip the switches to isolate and spectrally freeze parts of the incoming audio.
Use the Open button to select a wave file, or drag and drop onto the wave display. Click on the waveform to play without looping, or click the Loop button (or hit the Space bar) to loop playback (press Space again to stop playback). You can adjust the red L/R markers to delineate the loop.
Clicking the Save button will save whatever is between the L and R markers with the settings applied.
As with the other web apps in this series, all processing is done entirely on your own machine with none of your information uploaded to a server. You can even use this program without an internet connection once it is loaded into your browser.
Waveform view and playback powered by wavesurfer.js, licensed under https://creativecommons.org/licenses/by/3.0/deed.en_US, with modifications by myself.
The vocoder sample is from the Berklee College Sampling Archive, licensed under https://creativecommons.org/licenses/by/3.0/deed.en_US


I design and code beautiful simple things, and I love what I do
I am a frontend developer and web designer, I love programming and designing, currently I'm focused on web development and programming, I'm open to freelance work, please contact me if you are interested in working with me.
HTML
CSS
JavaScript
I like simple design themes, clean design patterns and flat designs.
Web, UX, UI
Building a website requires markup languages and script
HTML, CSS, JS
create projects with frameworks to be completed faster
Materialize, Bootstrap 5
Interested in working with me?
Please contact me


Phase 0 - Week 4 The Hills are Alive with Enumerables
Friday, May 22, 2015
Being able to iterate over a collection of data is critical and Ruby provides a very clean and easy to implement method for doing this without the need to keep track of counters and/or indices's. The Enumerable #cycle provides a clean way to iterate through an array infinitely or x number of times and perform {A Block of Code}. If a block of code is not passed, #cycle will return an enumerator that can be controlled with other Enumerable like #next.
Now it is time for Maria to bring the Von Trapp children into the 21st Century. By using the Enumerable #cycle, Maria can easily and efficiently make sure the Von Trapps know all of the notes. If today's lesson requires them to practice the notes 10 times each, a simple #cycle(10) does the trick. But what if Maria needs even more time up on the hill twirling, all she needs to do is leave off the (10) and the Von Trapps will be stuck in infinite practice. After she has the basic notes down, Maria can start using Hashes to really expand her lessons and then she can use some of her free time to sew new outfits from more modern curtains.
Unfortunately, we will have to look into Hashes in another Blog, today we will use #cycle to iterate over Maria's array. In the The Enumerable #cycle box below, the first example passes the value (2) to #cycle and it iterates through the array two times. In the second example, we do not pass a value and #cycle continues to iterate through infinitely.
The Enumerable #cycle
In the example below, the #cycle Enumerable is used without a code block, which returns a enumerator that can be combined with other methods like #next which allows you to iterate through the elements one at a time. The first step is to run #cycle without a code block on the sound_of_music_array and assign the enumerator that is retuned to the variable cycle.enum. Now cycle.enum.next can be used to quickly cycle through the items in the array one at a time.
Cycle Enumerator #next
As you can see, Enumerables and Enumerators can give you a great deal of flexibility when working with collections of data. The #cycle and #next are just a couple of the Enumerables that are available to you. Please Download Maria's Lesson Plan to see the Enumerable #cycle hard at work.


Football rumours from the media
What the papers say
Crystal Palace are interested in securing Liverpool forward Rhian Brewster on loan in the January window, The Sun reports. The 19-year-old forward is also being watched by Bristol City and Swansea and some German sides if he is made available on a short-term contract. Brewster gained the Golden Boot after he helped England win their maiden Under-17 World Cup in 2017.
The 21-year-old Czech midfielder Alex Kral could be leaving Spartak Moscow for the Premier League, according to the Norwich Evening News. The young player’s role in the stunning 2-1 Euro 2020 defeat of England in October has marked him as a target for Norwich, Everton and Newcastle.
Florinel Coman is being hunted by Manchester City, according to the Daily Mail. The Romanian winger, 21, has been compared to France’s Kylian Mbappe after he scored twice to beat England during the summer’s Under-21 European Championships. The Steaua Bucharest player is also being monitored by West Ham and Roma.
Social media round-up
Players to watch
Tyler Onyango: The 16-year-old midfielder is now training with Everton’s under-23s and has impressed the junior side’s manager David Unsworth, according to the Liverpool Echo.
Matteo Darmian: Gazzetta dello Sport says the 29-year-old Parma and Italy right-back, who previously played 60 games during four seasons with Manchester United, is being closely monitored by Inter Milan.
READ MORE
Arsenal captain Granit Xhaka ‘reached boiling point’ after ‘repeated abuse’


--- layout: default ---
Tired of making apps that just try to increase pageviews and ad revenue? Are you hoping to use your skills for good? CTOs for Good represents a group of nonprofits focused on using technology to make the world a better place. Browse the latest job opportunities below.


Dexter is an American television crime drama mystery series that aired on Showtime from October 1, 2006, to September 22, 2013. Set in Miami, the series centers on Dexter Morgan (Michael C. Hall), a forensic technician specializing in blood spatter pattern analysis for the fictional Miami Metro Police Department, who leads a secret parallel life as a vigilante serial killer, hunting down murderers who have slipped through the cracks of the justice system. The show's first season was derived from the novel Darkly Dreaming Dexter (2004), the first of the Dexter series novels by Jeff Lindsay. It was adapted for television by screenwriter James Manos, Jr., who wrote the first episode. Subsequent seasons evolved independently of Lindsay's works. In February 2008, reruns (edited down to a TV-14 rating) began to air on CBS, although the reruns on CBS ended after one run of the first season. The series has enjoyed mostly positive reviews throughout its run and popularity, including four consecutive Primetime Emmy nominations for Best Drama Series starting in season two. Season four aired its season finale on December 13, 2009, to a record-breaking audience of 2.6 million viewers, making it the most-watched original series episode ever on Showtime at that time. In April 2013, Showtime announced that season eight would be the final season of Dexter. The season-eight premiere was the most watched Dexter episode with more than 3 million viewers total for all airings that night. The original broadcast of the series finale—shown at 9 pm on September 22, 2013—drew 2.8 million viewers, the largest overall audience in Showtime's history. On 24 August 2016, nearly 3 years after the series concluded, Showtime announced that it will host a marathon revival to celebrate the series premiere's 10th anniversary, which is on October 1, along with the interesting name of Dexter 10. Stylized as DeXter in promotional material, the marathon allows fans to vote for their favourite episode to be in the event. The winners will then be broadcast in the special Dexter 10/DeXter on October 1 exclusively on Showtime.


--- title: Google, what were you thinking? layout: post ---
The StingWe decided to find out. We made some changes to the site:
- For visitors from the <IP_ADDRESS> address, we changed the code to serve slightly different content 10% of the time.
- Instead of the real business phone number, we served a number that fed through to our call centre team, where the incoming calls would also be recorded. Our team were briefed to act like the business owners for the calls.
We switched the new code on December 21st.
When we listened to the calls, we were beyond astonished.


--- title: Names layout: layout-docs --- {% capture general_name_field %}
You should follow this pattern when you need to ask for a user’s name and only ask for names if you need it for a service.
You should follow this pattern when you know that your users follow the given-name and family-name convention.
Name fields should be long enough to accomodate the names of your users. Do make sure that you support all characters that users may need to enter, including symbols and numbers.
Do ensure that you do not spellcheck a user's name by setting the spellcheck
attribute to false
This can accomodate the widest range of name types and formats and is recommended to reduce the risk that your user's enter their name in the incorrect format. However by using this, you may not be able to extract parts of a name.
Use multiple name fields based on your user's needs. Not everyone's name fits the general first-name, last-name convention. Using multiple name fields increases the risk that a person's name will not fit the same convention and may be entered incorrectly.
For single name fields, use "Full name".
For multiple name fields, use:
Do make it clear whether you are asking for a user's common name, or as written on a official document such as NRIC or passport.
If you are unsure of how your users will fill in their name or know that you have a wide range of users with different formats for their names, it is highly recommended to use a single name field.
This is to ensure that your users:
Do use the autocomplete
attribute when asking for a user's name. This makes it easier
for the user to fill in their name if they have done so previously on the browser.
name
given-name
family-name
You will need to include the autocomplete
attribute to meet
WCAG 2.1 AA
for production.


--- layout: post title: Various links to some interesting articles date: '2009-07-10T15:30:00.001+01:00' author: solrevdev tags: modified_time: '2009-07-10T15:30:43.841+01:00' blogger_id: tag:blogger.com,1999:blog-31446756.post-5007033049396391233 blogger_orig_url: http://www.solrevdev.com/2009/07/various-links-to-some-interesting.html ---
Build Better Data-Driven Apps With Distributed Caching
A good article on MSDN on using the pre-release version of Microsoft’s Velocity distributed caching framework
IIS Search Engine Optimization Toolkit Beta
A beta toolkit installer from the IIS.NET website that could help website’s search engine optimization.
Web Site Improvements Using jQuery and jQuery UI
The fifth instalment of a multipart article series on ASP.NET that covers some code examples and videos about improving a site with some jQuery magic.