Software Architecture VO/KU
706.706/706.707 WS17/18
Jan Schlacher<EMAIL_ADDRESS>To install node.js on your local machine I would recommend using nvm (node version manager). With nvm you are able to quickly install other node.js versions without conflicts. But it's also fine if you just download the latest binary from the node.js website.
To verify if node is installed correctly just type node
in you command line to start teh interactive node shell.
$ node
> console.log("Hello World!");
Hello World!
undefined
>
To initialize a new project in a directory you need to run npm init
in the desired project directory. Although it's not mandatory, it makes collaboration a LOT easier! This command will generate a so called package.json
file, which is the local project configuration point. Within this configuration file you may define a project name, description, author, version, scripts, dependencies and more.
To stop rewriting the same code again and again, nodejs has a simple package system to import external libraries. You're able to install those packages via the official nodejs package manager (npm
) which comes automatically with your nodejs installation. Alternatively you can use yarn
by Facebook. yarn
caches your packages locally so the package installation process is faster and you don't need a internet connection at all if you've installed a package before and it's still in the yarn cache.
Basically you have two options to install a package: either install it globally, so you are able to use it in every project with the same package version, or install it directly in the project directory, so you are able to use different versions of a package within different projects.
Usually you choose to install only command line tools globally (like is-up-cli or caniuse-cmd). Otherwise the installed package will not be marked as a dependency in your package.json
file.
To install a package and mark it as a dependency you need to run npm install --save express
, whereas express could be any other package.
I highly recommend using the --save
option all the time, because that way your team members will only need to clone the repository project, or pull it again and just need to type npm install
to install or update all your defined dependencies.
As I mentioned before yarn
is another way to install your packages, to install it you'll just need to follow their installation instructions on their website. If you have node already installed with npm
, you could even install yarn
via this command npm install --global yarn
.
One advantage of yarn
is, that it will automatically generate a yarn.lock
file, which stores the exact installed package version within your project. That way all your team members will have the exact same version of the project dependencies (although with npm
5 and beyond you'll get a package-lock.json
file by default (npm-documentation)). Also you don't have to use the --save
option any more. When you install a package with yarn (yarn add express
) it will append the newly installed dependency by default in your package.json
file.
My typical workflow when initializing a new project is the following:
$ mkdir awesome-project
$ cd awesome-project
$ yarn init -y
yarn init v0.27.5
warning The yes flag has been set. This will automatically answer yes to all questions which may have security implications.
success Saved package.json
Done in 0.08s.
$ git init
Initialized empty Git repository in /Users/jan/Documents/Temp/awesome-projects/.git/
$ echo "node_modules/" > .gitignore
$ mkdir src
$ touch src/index.js
Not like PHP, nodejs doesn't need an external web server like Apache. Nodejs provide you with a low level http package (written in C++) to create a web server yourself.
var http = require("http");
var server = http.createServer(function(req, res) {
res.writeHead(200);
res.end("Hello World!");
});
server.listen(3000);
To test this service you can either open your browser and goto http://localhost:3000/
or just use curl
/wget
from your console like this curl localhost:3000
. Now you should get Hello World!
as a response.
With this simplistic approach you would need to do url parsing and body parsing yourself. As this is a repetitive task, packages like express
are quite popular.
To split your project code into multiple files, you'll need to use node's module system. In this short scenario we are going to have 2 files, namely index.js
and common.js
.
// index.js
var common = require("./common");
console.log(common.add(1, 2));
// common.js
module.exports = { };
module.exports.add = function(a, b) {
return a + b;
}
/*
* If we want to use ES2015, which is possible (99%) in
* node 6.12 and beyond you could use arrow functions:
*
* module.exports = { };
* module.exports.add = (a, b) => a + b;
*/
Note the difference in the require parameter. Before we just needed to use the package name directly. Now we need to give node a system path, whereas ./common
translates to search in the directory of the file you are currently in (index.js
) for a file named common
with the extension js
.
To show how a node.js project could look like, we are going to create a simple todo application. You can view the source code for this project at our Github repository.
First we'll need to create a new docker volume and start a new postgres database image:
$ docker volume create awesome-project-db
$ docker run -e POSTGRES_PASSWORD=mysecretpassword --rm -d -p 5432:5432 -v awesome-project-db:/var/lib/postgresql/data postgres
Now we'll create our project structure:
$ mkdir awesome-project
$ cd awesome-project
$ yarn init -y
$ yarn install pg express mustache body-parser
$ mkdir src
$ touch src/index.js
To make sure everything is setup correctly, we'll connect to the database via a node program and select something.
// src/index1.js
const { Client } = require("pg");
const client = new Client({
user: "postgres",
host: "localhost",
database: "postgres",
password: "mysecretpassword",
port: 5432
});
client.connect()
.then(() => {
return client.query("SELECT $1::text as message", ["Hello World!"]);
})
.then(res => {
console.log(res.rows[0].message);
client.end();
})
.catch(err => {
console.error(err.stack);
});
For injecting values into our html pages we'll use mustache. With mustache we are able to define templates of our pages and then load the templates and render the values into it. The following example shows a simple template which gets rendered then.
// src/index2.js
const mustache = require("mustache");
const template = `

{{name}}

{{#todos}}

{{title}}

{{/todos}}

`;
const data = {
name: "Pippi",
todos: [
{ title: "Buy milk" }
]
};
const output = mustache.render(template, data);
console.log(output);
When we execute this script we should get the following:
$ node src/index2.js

Pippi

Buy milk

Now we are able to put everything we learned together and create a simple todo application. We will split this app into 3 files:
index.js
: Connects to the database and creates the database scheme and creates the express application.router.js
: Defines all our endpoints and servers/renders the templates.database.js
: Will create a new database instance and exports it to access the same database object in all our files via a require (Singleton).// src/index.js
const express = require("express");
const bodyParser = require("body-parser");
const client = require("./database");
const router = require("./router");
// Init database
client.connect()
.then(() => {
client.query(`
CREATE TABLE IF NOT EXISTS todos (
id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
done BOOLEAN DEFAULT FALSE
)
`);
})
.catch(err => {
console.error(err.stack);
});
// Init api
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
router(app);
app.listen(3000);
// src/database.js
const { Client } = require("pg");
module.exports = new Client({
user: "postgres",
host: "localhost",
database: "postgres",
password: "mysecretpassword",
port: 5432
});
// src/router.js
const fs = require("fs");
const path = require("path");
const mustache = require("mustache");
const client = require("./database");
const template_dir = path.join(__dirname, "templates");
function getTemplate(template, data) {
return new Promise((resolve, reject) => {
fs.readFile(path.join(template_dir, template), (err, data) => {
if (err) reject(err);
resolve(data.toString());
});
});
}
function sendTemplate(res, template, data) {
getTemplate(template, data)
.then(page => {
res.send(mustache.render(page, data));
})
.catch(err => res.status(500).send(err.stack));
}
module.exports = (app) => {
app.get("/", (req, res) => {
sendTemplate(res, "home.html", {});
});
app.get("/todos", (req, res) => {
client.query("SELECT * FROM todos")
.then(result => {
sendTemplate(res, "todos.html", { todos: result.rows });
});
});
app.get("/todo/add", (req, res) => {
sendTemplate(res, "add-todo.html", {});
});
app.post("/todo/add", (req, res) => {
client.query("INSERT INTO todos (title) VALUES ($1)", [ req.body.title ])
.then(result => {
sendTemplate(res, "add-todo.html", {});
})
.catch(err => res.status(500).send(err.stack));
});
};


KituraKit - A Kitura v2 Client Library
Kitura is a lightweight web framework for writing Swift server applications.
KituraKit is a client side framework for sending HTTP requests to a Kitura server. By using the Swift Codable
protocol, you can send and receive models directly from client to server.
Swift version
The latest version of KituraKit requires Swift 4.0 or later. You can download this version of the Swift binaries by following this link.
Usage
Cocoapod Installation
Navigate to the root of your project (where your .xcodeproj directory is)
If you don’t already have a podfile, run
pod init
to create a new podfile in your current directory.Open the Podfile with your preferred text editor and under the “# Pods for ‘your_project_name’>” line add:
pod 'KituraKit'
Install KituraKit by running the command:
pod install
As well as installing KituraKit, the
pod install
also creates an Xcode workspace which contains all of your installed pods. So you’ll need to open the.xcworkspace
file (not.xcodeproj
) to have access to those pods. This is the default behaviour of Cocoapods.
SPM Installation
We expect users on the client side to use the Cocoapod installation, however, if you require access to KituraKit from the server you can use Swift Package Manager.
Add dependencies
Add the KituraKit
package to the dependencies within your application’s Package.swift
file. Substitute "x.x.x"
with the latest KituraKit
release.
.package(url: "https://github.com/Kitura/KituraKit.git", from: "x.x.x")
Add KituraKit
to your target’s dependencies:
.target(name: "example", dependencies: ["KituraKit"]),
Import package
import KituraKit
Examples
To run through a FoodTracker tutorial which covers various components of Kitura, including KituraKit, click here
To try out the sample iOS project for yourself, making use of KituraKit, click here.
API Documentation
KituraKit
The KituraKit
class handles the connection to your Kitura server and executes the REST requests.
You create a KituraKit
instance by providing the URL of your Kitura server:
if let client = KituraKit(baseURL: "http://localhost:8080") {
// Use client to make requests here
}
Codable Models
Kitura and KituraKit send and receive instances of Swift types directly. These types (aka models) can be shared between the client and server.
The only requirement for a model is that it conforms to the Codable
protocol:
public struct User: Codable {
public let name: String
public init(name: String) {
self.name = name
}
}
HTTP Requests
The signatures for HTTP requests in KituraKit mirror the Codable routes in Kitura. We will demonstrate what the code for this looks like in the following examples.
If you had the following GET route on your server:
// Kitura server route
router.get("/users") { (completion: ([User]?, RequestError?) -> Void) in
let users = [User(name: "Joe"), User(name: "Bloggs")]
completion(users, nil)
}
You would make a request to it using the get
function on your KituraKit
client:
// KituraKit client request
client.get("/users") { (users: [User]?, error: RequestError?) -> Void in
if let users = users {
// GET successful, work with returned users here
}
}
Similarly, to make a request to a Kitura POST route:
// Kitura server route
router.post("/users") { (user: User, completion: (User?, RequestError?) -> Void) in
completion(user, nil)
}
You would make a request to it using the post
function on your KituraKit
client:
// KituraKit client request
let newUser = User(name: "Kitura")
client.post("/users", data: newUser) { (user: User?, error: RequestError?) -> Void in
if let user = user {
// POST successful, work with returned users here
}
}
KituraKit supports the following REST requests:
- GET a Codable object.
- GET a Codable object using an identifier.
- GET a Codable object using query parameters.
- POST a Codable object.
- POST a Codable object and be returned an identifier.
- PUT a Codable object using an identifier.
- PATCH a Codable object using an identifier.
- DELETE using an identifier.
- DELETE without an identifier.
Authentication
The Kitura server can authenticate users using the Credentials repository. KituraKit allows you to provide credentials alongside your request to identify yourself to the server.
Note: When sending credentials you should always use HTTPS to avoid sending passwords/tokens as plaintext.
You can set default credentials for your client which will be attached to all requests. If your server is using Kitura-CredentialsHTTP for basic authentication, you would provide the username and password as follows:
if let client = KituraKit(baseURL: "https://localhost:8080") {
client.defaultCredentials = HTTPBasic(username: "John", password: "12345")
}
Alternatively, you can provide the credentials directly on the request:
let credentials = HTTPBasic(username: "Mary", password: "abcde")
client.get("/protected", credentials: credentials) { (users: [User]?, error: RequestError?) -> Void in
if let users = users {
// work with users
}
}
KituraKit supports client side authentication for the following plugins:
- HTTP Basic using Kitura-CredentialsHTTP.
- Facebook OAuth token using Kitura-CredentialsFacebook
- Google OAuth token using Kitura-CredentialsGoogle
- JWT token (Kitura-CredentialsJWT coming soon)
For more information visit our API reference.
Community
We love to talk server-side Swift and Kitura. Join our Slack to meet the team!
License
This library is licensed under Apache 2.0. Full license text is available in LICENSE.


step 1
Transaction info
step 2
Receipent info
step 3
Make Payment
Let's set up your transaction
Specify the amount to be sent or recieved
YOU SEND
EUR
{{spending}}
RECIEVER GETS
GBR
{{Reciepent}}
NEXT
@2016 CurrencyFair
Help & Support
Legal Stuff
Sending Details
You Send
{{spending}}
Receiving Details
As of right now
Rate
{{rate}}
Fee
{{Fee}}
Delivery date
{{Delivery}}
Reciepent gets
{{Reciepent}}
You save {{save}} compared your bank!
lock_outline
Identity verification Required
For your security, we ocassionally require you to verify your identity by entering a code sent to your mobile device.
Enter the code sent via SMS to
Receive a new code
Receive code via call instead
Verify Identity
Back
I can’t access this mobile device


antibody virus viral used detection antigen test []. methods clinical assays specific antibodies use assay viruses serum antigens diagnosis monoclonal detect diagnostic infection different sample using virus-specific identification method available include rapid {border-style influenza respiratory techniques enzyme immunoassay neutralization px;} sera #ffffff;} Clin â€ƒâ€ƒ. important reaction reagents time culture direct high laboratory specimens tests viruses, EIA antigenâ€"antibody human indirect presence sensitivity specificity IgM disease hepatitis results Microbiol ability cause cells epidemiologic number samples variety (e.g., antibody, antibody. binding cell commonly complex hemagglutination immune infections obtained sensitive serological systems virology antigen, common developed identified including laboratories relatively rotavirus specimen syncytial Health However, IgG added complement inhibition present procedures rise useful widely Infect assay. comparison detected example, fluorescence interpretation molecular particularly pathogens px; required responses result strains technique {font-family .). RIA YorkElsevier acute agglutination antibodies. appropriate availability conjugated fixation flow font-size generally identify immunoassays infection. lateral latex manualNew measured microtiter peroxidase replaced require research second simplex single studies study technical test, tissue type viruses. Med Neutralization Public Viral Virus [â€"]. affinity alkaline allow allowed analysis antisera assays, background blood characterization compared complexes described development directly double; fluorescent herpes illness immunoglobulin immunological infected labeled lack low nasal patient patients performed phosphatase positive response sensitivity, shed similar surface testing various virus. Association CMV D.CAmerican Dis./infdis/.. Disadvantages Hemagglutination Immunoassay Immunol RBCs Table advantage allows antigenic antiserum bind biological border-color border-width called chlamydial commercially concentration concentrations control convalescent cytomegalovirus detecting early endogenous enteroviruses false-negative false-positive given group horseradish immunofluorescence increased infectionsWashington, information initial interaction interactions lanthanide levels longer lower measure methods, multiple neutralizing permit present. primary prior proteins reaction. resulting results. sensitive, signal solid; species staining standard titer titers unlabeled usually viral, widespread {font-style {font-weight < Advantages Antigen Cytochem./.. Detection Enzyme HAI HIV, HSV Histochem Human Immunofluorescence Intern Methods RSV Radioimmunoassay Serological TR-FIA activity amplification antigen-specific antigen. antihuman applied attached bold certain changes collection complement, components congenital conjugate containing cost, courier; cultures day determine developed, distinct effect em; enhanced epitope fluid followed formation gel glucose hemagglutination-inhibition illness. immobilized immunoblot immunocompromised individual infections, infectious infectivity influence involved known large late line markers membrane molecule need needed negative occur occurs oxidase pad particular passive performance plasma point-of-care polyclonal pools production pt;} rapid, readily referred relative relies rely requiring rickettsial rubella, sample. sandwich simple site specificity, specimen. strength studies. substrate taken understanding unknown utilized utilizing wavelength wells â€"


We aimed to create a high end, luxurious brand that really portrayed what the company is all about. We did a competitor analysis and brainstormed with LLC on their brand image, colour palette and overall design to produce something that was unique and bespoke.
We created a logo that was close to the client’s roots but that also depicted style and elegance. We worked closely with client on the large images on the site to ensure that they fully represented the level of luxury and first class travel service.
The site was developed in WordPress. The modules in WordPress gave the flexibility to create the rotating banners and car carousel. We also integrated a quick quote functionality and links to a third party booking system.
Site address: www.llccars.co.uk
"Say Web Design have been fundamental in LLC’s success. They have worked extremely closely with us to create that bespoke website look, that makes us stand out from our competitors. Say Web Designs manager Lorraine Moffat has always been on hand to monitor the project from start to finish, listening to our needs and supporting us accordingly with great advice. All the team are very approachable and easy to talk to and we would highly recommend them to anyone who’s thinking about setting up a website."
Besik Labdaze-Managing director


| Type | Models | Seat Availability | Number of Doors | IIHS Crashworthiness Rating |
|---|---|---|---|---|
| Coupe |
BMW M4Ford Mustang Nissan GT-R |
2-5 People | 3 Doors | Good |
Hatchback |
BMW i3Ford Focus Nissan Versa Note |
4-5 People | 5 Doors | Good |
Pickup |
Chevrolet Silverado
Mercedes-Benz G63 AMG 6x6 Volkswagen Amarok |
4-8 People | 5 Doors | Exceptional |
SUV |
BMW X1Ford Explorer Nissan Armada |
4-5 People | 2-4 Doors | Exceptional |
Sedan |
Chevrolet Cruze
Mercedes-Benz C-Class Sedan Volkswagen Jetta |
4-5 People | 5 Doors | Good |
Van |
Chevrolet Express
Mercedes-Benz Sprinter Volkswagen Crafter |
2-12 People | 3-5 Doors | Exceptional |


MIT License
A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.
Permissions
- Comercial Use
- Modification
- Distribution
- Private Use
Limitations
- Liability
- Smore and/or TinyS3 cannot be held liable for the missuse of TinyS3 or for any negative consequences caused by the use of TinyS3.
- Warranty
- No warranties are expressly permitted under this license.
Conditions
- License and copyright notice
The MIT License (MIT)
Copyright (c) 2014 Shlomi Atar
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.


Here is a list of all documented class members with links to the class documentation for each member:
- c -
- Callback()
: game::FunctionObserver< TData >
, game::MethodObserver< TData, TCallee >
, game::Observer< TData >
- CameraController()
: game::CameraController
- CircleShape()
: game::CircleShape< TPhysics >
- Clear()
: game::ResourceCache< TResource >
- CollisionTarget()
: game::CollisionTarget
- Copy()
: game::DynamicShapePhysics
, game::KinematicShapePhysics
, game::ShapePhysics< TDefinition >
, game::StaticShapePhysics
- CopyTemplate()
: game::CircleShape< TPhysics >
, game::PolygonShape< TPhysics >
, game::RectangleShape< TPhysics >
, game::Shape< TPhysics >
- CreateAnimatedDynamicEntity()
: game::EntityFactory
- CreateDynamicCircleShape()
: game::ShapeFactory
- CreateDynamicPolygonShape()
: game::ShapeFactory
- CreateDynamicRectangleShape()
: game::ShapeFactory
- CreateGameWorld()
: game::GameWorldFactory
- CreateKinematicCircleShape()
: game::ShapeFactory
- CreateKinematicPolygonShape()
: game::ShapeFactory
- CreateKinematicRectangleShape()
: game::ShapeFactory
- CreateMultilayered()
: game::TileLayer
- createResource()
: game::ResourceCache< TResource >
, game::TextureCache
- CreateSingleSpriteDynamicEntity()
: game::EntityFactory
- CreateStaticCircleShape()
: game::ShapeFactory
- CreateStaticPolygonShape()
: game::ShapeFactory
- CreateStaticRectangleShape()
: game::ShapeFactory
- CreateUniformVertexArray()
: game::GraphicTools


Smells Like Teen Spirituality
UCLAradio.com
Tune in Wednesdays 3-4pm
Ayurvedic Medicine:
Find out your Dosha!A Brief Introduction to Ayurveda
Daily Routine for All Dosha
Food Guidelines for Each Dosha
Recipes
A Comprehensive Guide to Ayurveda
The Eight Limbs of Yoga:
Purchase "Emotional Yoga" OnlineFirst Limb: Yamas
Second Limb: Niyamas
Third Limb: Asana
Fourth Limb: Pranayama
Fifth Limb: Pratyahara
Sixth Limb: Dharana
Seventh Limb: Dhyana
Eighth Limb: Samadhi
Crystal Healing:
A Guide to Crystals and Their MeaningsCleansing/Charging Your Crystals
A Guide to Crystal Magic by Scott Cunningham


ReviewCentral
PC Amazon Customer Reviews Analyser
What would you like to search for?
Desktops
Laptops
Tablets
Go!
Select your priority:
RAM
Hard Drive
Graphics
Speed
Aesthetics
Value for Money
Loading...


The metadata extraction tool is a tool built by Sytec Resources for the National Library of New Zealand Te Puna Mātauranga o Aotearoa (National Library) to process digital master files and extract metadata about those files. Metadata is descriptive information about an object - not the object itself. In this case metadata information about a Image would be things like size, colours, resolution, etc… There are two output formats that an output metadata file can take
For more information about any of these file formats see the Solution Architecture or Software Architecture documents for this extraction tool. Note: The POC output types of demta.dtd and pmeta.dtd have been deprecated, they are not supported in the production tool.
To start the tool, firstly make sure that JAVA_HOME is set correctly.
Then change into the Metadata Harvester's directory and run metadata.bat (Windows) or metadata.sh (Linux/Unix).
The software will be driven by a graphical user interface and a command line interface. Both will access the underlying extraction tool in an identical way (using the same configuration). The graphical user interface will allow the user to select files for processing and process them according to a predefined configuration. The predefined configurations (see: configuration) will specify the output format and the output directory that will hold the extracted files. The user interface is designed to be fully compliant with current Win32 best practice for GUIs. One of the features of the User interface is the capability to alert the user to errors that may have occurred during the extraction process.
Key controls of the software:
Create New Object
Allows the user to create a new object. An object is a logical grouping of files and is the first step to creating a list of files to be harvested for metadata.
Add Files/Folders to Object
When the user pressed the "add" button a file dialog will appear to allow the user to select as many files as they wish to process. The files that have been selected will appear in the files list in the middle of the main screen.
Remove Files/Folders from Object
The remove button will remove all selected files from the files table.
Remove All Files/Folders and Objects from the list
Removes all files/folders and object from the file list.
Edit the properties of an Object
The 'Object' folders (the highest level folders) have properties associated with them. The properties editor allows the user to change these.
The dialog you will be presented with looks like the image shown here. You can edit any property of an object using this dialog. You may notice some fields go 'red' while typing - this is because the field validation has determined that the field contents are incorrect.
Process all of the Objects in the list
The process button will process all files currently in the files list. The results of the processing will be output to the directory specified by the currently selected Config. Any errors will be highlighted with a red exclamation point icon appearing as the icon of the erroneous file. Files that were processed without any errors are given a 'tick' icon and files that are yet to be processed are given plain icon. The Graphical User Interface is multithreaded - this means that processing can take place and the UI does not appear to "lock-up".
View Usage/Error Log
Pops up a log window for usage and error reporting. Logs can be filtered in this window so that only log messages with the log 'level' desired are shown. Old logs may be viewed in this window also with the 'open' log file function.
View Scheduling Window
Pops up the scheduling window to allow scheduling to be queued up to happen at a later time. If processing is scheduled the application will suspend operation until the allotted time.
View Administration window
Pops up the administration window. This is a series of tabs which allow the user/administrator to configure all aspects of the harvesting application. See administration section below.
View simple help
Pops up a window that displays help, Help is not context sensitive and does not go into substantial detail.
Exit the Application
Exits the application, saving the configuration if you have changed it (users, destination directories, etc…)
Extraction Configuration
The available configurations are listed in a drop down box labelled "Config" these configurations can each have a different output directory, which is indicated immediately to the right of the drop down box.
Destination Folder
The destination folder that output files will be sent. You can change this setting by clicking on the folder icon to the right of the text field. The field itself is not editable.
Profile Used
The profile is the set of parameters to use. Profiles are created and maintained using the administration tool and include settings for which adapters are current and log directory, etc.
When creating an Object or Adding files to an existing object you will be prompted with a dialog to select files or folders. You can select any number of files or folders and add them all to the current object. The recurse option will force the file adding process to traverse all subfolders within a selection. The flatten option will force the adding process to ignore folder boundaries while recursing and add all the files found at an equal level within the current object.
The logging window displays the current log. You can elect to clear the current log and start it fresh, or filter the current log to only show a certain level of logging.
Critical
The application has had a critical failure, harvesting could not be considered unstable and the application should be restarted.
Error
An error is an application problem or a problem while harvesting metadata that is isolated to the object being harvested. Chances are other objects were unaffected and harvesting can continue.
Debug
Information about program behaviour, there should be very little of these messages in the production system.
Information
Superfluous information about application behaviour. This includes things like usage reporting.
Program Workings
Similar to debug, these messages are closely related to system functions - they may not be very meaningful to most operators, there should be very little of these messages in the production system.
The administration screens allow configuration of all aspects of the harvesting environment. Administration screens are divided into a number of tabs. While changes are generally saved when OK is selected, some administration tasks are implemented immediately due to their complex nature. This is explained on each tab description below:
This screen allows the user to manage profiles and change settings of the currently selected profile. A profile is used to easily store some settings to be used again in the future without having to recreate everything for a future harvesting run. Configuration elements within the profile are the input directory, the log directory and which adapters are currently enabled for harvesting.
Create Profile - Simply type the new profile name in the combo box and select Create and a new profile of that name will be created with the normal default values.
Delete Profile - Select the profile to delete and click the Delete button. It is not possible to delete the last (default) profile.
Input Directory - Select the directory used as the standard directory to look for files to harvest. It is therefore the starting point of any file selection.
Log Directory - Select the directory used for log creation.
This screen allows the user to manage which adapters are turned on for the currently selected profile. The user can simply select or deselect adapters and any future harvest will only use the currently selected set.
NOTE: The default adapter cannot be deselected.
Some of the less common administration tabs are grouped under an Admin tab. An incorrect configuration can cause the Metadata Harvester to fail.
The defaults tab allows the selection of certain defaults:
| User | Used as the normal user of the application - ie will be selected when the application is launched. |
| Input Directory | The default input directory used within a profile when a profile is created |
| Log Directory | The default log directory used within a profile when a profile is created |
The users tab allows the administrator to maintain users. Users can added or deleted from the system.
Add User - Click the Add button and enter the name of the new user. All users must have unique names.
Delete User - Clicking the Del button will result in the currently selected user to be deleted.
The mappings tab allows the administrator to maintain mappings between Adapter outputs and end-result meta-data schemas. Mappings can be added or deleted from the system using this tab.
Add Mapping - Select mapping configuration elements from the three drop-down boxes and then click the Add button. Any installed adapter will have an entry in the first drop-down box. All mapping xslt files in the application XML directory will be in the second drop-down box. All configuration schemas will be populated in the third drop-down box (see Configurations below)
Delete Mapping - Clicking the Delete button will result in the currently selected mapping to be deleted.
The configuration tab allows the administrator to maintain configurations. A configuration encapsulates a particular output schema type and is normally tightly bound to a certain Harvester instance.
Add Configuration -Click Add and enter the name, harvester class, and output directory for the new configuration.
Delete Configuration - Clicking the Delete button will result in the currently selected configuration to be deleted.
The adapter maintenance tab allows the administrator to install new adapters and remove old adapters.
Add Adapter - Click Add and select the jar file that contains the adapter and other associated files (xml schemas and xslt mappings, etc). After clicking install the operation immediately happens and the adapter is now reflected in all other admin screens (adapters, mappings, etc).
NOTE:Choosing cancel from the admin screen itself will not result in the adapter not being installed!
Delete Adapter - Clicking the Delete button will result in the currently selected adapter to be uninstalled from the system. A backup of the original jar installation file will still be found in the system jar directory.
Help is very simple. It is sufficient for basic usage but is neither comprehensive or context sensitive.
The command line is executed by running the extract.bat file (under Windows) or extract.sh (under Linx/Unix) that can be found in the installation directory.
extract.bat <arg1> <arg2> <arg3> ...
extract.sh <arg1> <arg2> <arg3> ...
see the java runtime environment documentation for particular arguments that can be made to allocate additional memory and use different JIT compilers.
The command line interface is able to operate in several modes:
1. Help: The help mode produces a screen of information describing the modes and parameters that are available.
2. Self-discovery: Self-discovery can produce a screen that can inform the user about the configurations installed in the extraction tool as well as information on available xslt maps and the types of adapters installed.
3. Extraction: Extraction is the mode that actually causes the tool to parse files and output results. You must tell the extraction tool which configuration to use (by name, use quotes for names with spaces) and the directory to find the digital master files to be processed.
The command line interface is not multithreaded, meaning it will block until finished.


On Week 2, I practiced CAD, aka Computer-Aided design,on Autodesk Fusion 360.
I practiced drawing the 3-D models in this file.
Here are the shapes that I drew.
After practicing Cad Draw, I felt more confident in my ability to create 3-D models. Eventually I will create a practical model and print them on one of the 3-D printers in the WIC.


This page gives a minimal example of how to use alohasdk.js
to
display live video streams in the browser. Just provide the ID of an
AlohaRTC-enabled device, along with an appropriate auth token.
alohasdk.js
takes care of signaling, and establishes a WebRTC
peer connection directly to the device.


Purpose: The Taxonomy (thesaurus) specialization defines formal subjects and the relationships between those subjects so you can classify what your content is about. For a more detailed explanation, see the article at http://www-128.ibm.com/developerworks/xml/library/x-dita10/.
You can view the reference documentation for the taxonomy specialization.
The Taxonomy specialization provides the conductor.xml file to extend the base Ant targets with the following build targets:
The run-ant.xml file executes these build targets on the sample content. See the conductor.xml file for lower level targets.
You should run the sample Ant build from the base directory for the DITA Open Toolkit, using a relative path to the Taxonomy specialization:
ant -f demo\thesaurus\install_plugin.xml ant -f demo\thesaurus\run_ant.xml optionalTarget
You need only execute the install_plugin.xml file after initial installation or update of any plugin.
The specialization includes subdirectories with the following contents:
Erik Hennum, Colin Bird, and Robert D Anderson


--- layout: post title: Trust No One? date: 2012-12-13 17:57:00.000000000 -08:00 type: post published: true status: publish categories: [] tags: [] meta: _publicize_pending: '1' author: login: phoneboy email<EMAIL_ADDRESS>display_name: Dameon Welch first_name: '' last_name: '' ---
Trust. It's something I'm sure many security professionals think about in various contexts. However, I don't think anyone can fully appreciate the level of trust that we exercise on a daily basis without really thinking about it.
Just think about getting packets from point A to point B. There's an insane amount of things we simply trust without really thinking about it. This includes:
And so on. Trying to account for all these possibilities to ensure absolute security is next to impossible and will surely drive you crazy. That said, the thought exercise is important if you're trying to design a secure system. All of your assumptions about various elements of that system must be examined on a regular basis to ensure that you don't miss when something transitions from a largely theoretical threat to a very real one.
Soon, I'll share some ideas on what a "trust no one" network might look like. Does such a thing exist today? Is maintaining such a thing even practical?


Today we're sharing another patch release in the v0.13 branch. There are only a few small changes, with a couple to
address some issues that arose around that undocumented feature so many of you are already using:
context
. We also improved developer ergonomics just a little bit, making some warnings better.
The release is now available for download:
We've also published version 0.13.3
of the react
and react-tools
packages on
npm and the react
package on bower.
clipPath
element and attribute for SVGdangerouslySetInnerHTML
restrictions so {__html: undefined}
will no longer throwgetChildContext
replaceState(obj)
retains prototype of obj
contextTypes


|
Nailed Fist |
3 |
4 to 10 |
1.35 |
9.5 |
0 |
0 |
0 |
Base Life Gain Per Target
|
3
|
|
|
Sharktooth Claw |
7 |
7 to 18 |
1.1 |
13.8 |
0 |
0 |
20 |
Base Life Gain Per Target
|
3
|
|
|
Awl |
12 |
6 to 21 |
1.35 |
18.2 |
0 |
25 |
25 |
Base Life Gain Per Target
|
3
|
|
|
Cat's Paw |
17 |
11 to 20 |
1.5 |
23.3 |
0 |
39 |
27 |
Base Life Gain Per Target
|
8
|
|
|
Blinder |
22 |
11 to 30 |
1.35 |
27.7 |
0 |
41 |
41 |
Base Life Gain Per Target
|
8
|
|
|
Timeworn Claw |
26 |
17 to 44 |
1.1 |
33.6 |
0 |
39 |
56 |
Base Life Gain Per Target
|
8
|
|
|
Sparkling Claw |
30 |
13 to 34 |
1.5 |
35.3 |
0 |
64 |
44 |
Base Life Gain Per Target
|
8
|
|
|
Fright Claw |
34 |
10 to 41 |
1.35 |
34.4 |
0 |
61 |
61 |
Life Leech From Physical Damage %
|
6
|
|
|
Thresher Claw |
37 |
22 to 58 |
1.1 |
44 |
0 |
53 |
77 |
Base Life Gain Per Target
|
15
|
|
|
Gouger |
40 |
15 to 51 |
1.35 |
44.6 |
0 |
70 |
70 |
Base Life Gain Per Target
|
15
|
|
|
Tiger's Paw |
43 |
22 to 41 |
1.5 |
47.3 |
0 |
88 |
61 |
Base Life Gain Per Target
|
15
|
|
|
Gut Ripper |
46 |
20 to 54 |
1.35 |
50 |
0 |
80 |
80 |
Base Life Gain Per Target
|
15
|
|
|
Prehistoric Claw |
49 |
28 to 74 |
1.1 |
56.1 |
0 |
69 |
100 |
Life Leech From Physical Damage %
|
3
|
|
|
Noble Claw |
52 |
20 to 53 |
1.5 |
54.8 |
0 |
105 |
73 |
Life Leech From Physical Damage %
|
3
|
|
|
Eagle Claw |
55 |
16 to 63 |
1.35 |
53.3 |
0 |
94 |
94 |
Life Leech From Physical Damage %
|
6
|
|
|
Great White Claw |
58 |
33 to 86 |
1.1 |
65.5 |
0 |
81 |
117 |
Life Leech From Physical Damage %
|
3
|
|
|
Throat Stabber |
60 |
21 to 73 |
1.35 |
63.5 |
0 |
113 |
113 |
Life Leech From Physical Damage %
|
3
|
|
|
Hellion's Paw |
62 |
29 to 54 |
1.5 |
62.3 |
0 |
131 |
95 |
Life Leech From Physical Damage %
|
3
|
|
|
Eye Gouger |
64 |
26 to 68 |
1.35 |
63.5 |
0 |
113 |
113 |
Life Leech From Physical Damage %
|
3
|
|
|
Vaal Claw |
66 |
34 to 88 |
1.1 |
67.1 |
0 |
95 |
131 |
Life Leech From Physical Damage %
|
3
|
|
|
Imperial Claw |
68 |
23 to 61 |
1.5 |
63 |
0 |
131 |
95 |
Life Leech From Physical Damage %
|
3
|
|
|
Terror Claw |
70 |
17 to 68 |
1.35 |
57.4 |
0 |
113 |
113 |
Life Leech From Physical Damage %
|
6
|
|


--- title: FundRequest pagina: Home --- {% include head.html %}
FundRequest will focus the next few months on platform development and key partnerships. The target date to release a working product is Q1 2018.
Users can continue to register for the public token sale. The token sale will take place alongside the release of our working product on the Ethereum Mainnet!
Open source software is a vital component in the functioning of governments, large and small companies, and non-profit organisations all around the world. However, a lack of incentives for developers to work on open source renders many inactive projects.
FundRequest is a decentralized marketplace for open source software collaboration. It is a platform to fund software development and to reward community contributions using blockchain technology. Users receive monetary- and reputation-based rewards for solving issues in open source projects. The funds are transferred to the solver of the issue upon successful delivery.
Our vision is an open source platform for the community which runs decentralised and is developed, maintained and governed by the community. Our mission is to boost open source development and reward contributors in a fair and transparent way.
The following are some useful highlights for the FND Token Sale
FND will be the token used on the FundRequest platform and follows the ERC20 token standard.
For the actual implementation of the FND token, we use the MiniMe token contract which is being used by several other projects (eg. Aragon). There will be no alterations to the contract so we and all users can have full confidence in the FND token.
The MiniMe contract gives the flexibility of token upgrade with the existing token acting as the parent token. When a balance is queried, the state of the parent token is added to the state of the new token, yielding the final result. This is a very powerful mechanism should an upgrade be required.
The hard cap is 15 million USD in ETH equivalent and the spot price is 1800 FND/ETH.
Terms and Conditions are currently being reviewed by PwC and once approved they will be updated. Before the Token Sale you will be subjected to approve the terms and conditions.
You can contribute to the FND Token Sale using MyEtherWallet or MetaMask.
To join the FundRequest Token Sale, you can purchase FND tokens directly from the Token Sale smart contract.
A: You will receive your tokens immediately after the transaction has completed.
A: Banks have extensive regulations against money laundering and need to do KYC (Know Your Customer) in order to know from where the money on their bank originates. Since we are doing a Token Sale, our bank cannot know the origin of the money that we will transfer to our bank account and demand us to do the KYC.
A: We will provide a specific webpage where you will be able to enter your Ether address and check you have been successfully whitelisted and your information was validated.


My very first step to making the racer game was to figure out how to move an 'active' class from one tag to another using javascript.
 For this particular problem I had to get a better understanding of for loops for counting through the tags and selectors to target the right elements. I asked alot of really basic questions on stackoverflow to understand these things as thoroghly as I could.
Really insecure to be perfectly honest. I know I'm not supposed to know everything about javascript but I really struggled with the fact that I wasn't taking in all the information that I had previously learned about javascript and had to rely alot on other people's advice and code. However I think this process really made me look at heaps of code and (kind of) understand the core of common statements.
I understand this but I haven't really used it in my game.
This was actually really helpful to me. I literally HAD to talk to myself to understand certain functions.
Yes I understand these and they are very helpful for debugging.
I understand and feel confident with this
I LOVE asking google for help
I LOVE asking my cohort for help. Super attentive!
I'm not quite there with this. It's been a manic week and I haven't had the energy to think back about things in any detail.
This applies a function to multiple elements in an array and then puts the outcomes into a new array.
This literally filters the contents of the array through a funtion to produce a new list (array) of values which are true in the function e.g. .filter() with % 5 == 0 would test all the numbers in an array and all the ones divisible by 5 would be put in the new array.
As far as I can understand this applies a function to (or adds up) the contents of the array from left to right, so that one value is left.


Demo3
Update data later, crappy performance test
Elapsed time:
{elapsed_time}
Number of times populated:
{times_populated}
Seconds


Not A. flavus
Potent Mycotoxins
Aflatoxins
Domesticated 3,000 to 9,000 ago.
- 85ºF - 100ºF
- 90% humidity
- 4 cups white rice
- 1 cup water (pressure cooker)
- 2 teaspoons koji starter
@brandenbyers
@fermup
<EMAIL_ADDRESS>fermup.com/podcast
fermup.com/incubators


Server Specific Tests
Sections: Databases, Mail, VPN, Web
- Databases
- Direct Access Interrogation
- MS SQL Server
- Ports
-
- Version
- SQL Server Resolution Service (SSRS)
- Other
- osql
- Attempt default/common accounts
- Retrieve data
- Extract sysxlogins table
- Oracle
- Ports
-
- TNS Listener
- VSNUM Converted to hex
- Ping / version / status / devug / reload / services / save_config / stop
- Leak attack
- SQL Plus
- Default Account/Passwords
- Default SID's
- MySQL
- Ports
-
- Version
- Users/Passwords
-
- DB2
- Informix
- Sybase
- Other
- Scans
- Default Ports
- Non-Default Ports
- Instance Names
- Versions
- Password Attacks
- Sniffed Passwords
-
- Direct Access Guesses
- Vulnerability Assessment
- Automated
-
- Manual
- Patch Levels
-
- Confirmed Vulnerabilities
-
- Mail
- Scans
- Fingerprint
-
- Spoofable
- Telnet spoof
- telnet target_IP 25helo target.commail from<EMAIL_ADDRESS>to<EMAIL_ADDRESS><EMAIL_ADDRESS>[<IP_ADDRESS>]X-Originating-Email<EMAIL_ADDRESS>1.0To<EMAIL_ADDRESS><<EMAIL_ADDRESS>>Subject: Important! Account check requiredContent-Type: text/htmlContent-Transfer-Encoding: 7bitDear Valued Customer,The corporate network has recently gone through a critical update to the Active Directory, we have done this to increase security of the network against hacker attacks to protect your private information. Due to this, you are required to log onto the following website with your current credentials to ensure that your account does not expire.Please go to the following website and log in with your account details. <a href=http://<IP_ADDRESS>/hacme.html>www.target.com/loginOnline Security Manager.Target<EMAIL_ADDRESS>- Relays
- VPN
- Scanning
- 500 UDP IPSEC
- 1723 TCP PPTP
- 443 TCP/SSL
- nmap -sU -PN -p 500 <IP_ADDRESS>-27
- ipsecscan <IP_ADDRESS> <IP_ADDRESS>
- Fingerprinting
- ike-scan --showbackoff <IP_ADDRESS> <IP_ADDRESS>
- PSK Crack
- ikeprobe <IP_ADDRESS>
- sniff for responses with C&A or ikecrack
- Web
- Vulnerability Assessment
- Automated
-
- Manual
- Patch Levels
-
- Confirmed Vulnerabilities
-
- Permissions
- PUT /test.txt HTTP/1.0
- CONNECT mail.another.com:25 HTTP/1.0
- POST http://mail.another.com:25/ HTTP/1.0Content-Type: text/plainContent-Length: 6
- Scans
- Fingerprinting
- Other
- HTTP
- Commands
- JUNK / HTTP/1.0
- HEAD / HTTP/9.3
- OPTIONS / HTTP/1.0
- HEAD / HTTP/1.0
- GET /images HTTP/1.0
- PROPFIND / HTTP/1.0
- Modules
- WebDAV
- ASP.NET
- Frontpage
- OWA
- IIS ISAPI
- PHP
- OpenSSL
- File Extensions
- .ASP, .HTM, .PHP, .EXE, .IDQ
- HTTPS
- Commands
- JUNK / HTTP/1.0
- HEAD / HTTP/9.3
- OPTIONS / HTTP/1.0
- HEAD / HTTP/1.0
- Commands
- JUNK / HTTP/1.0
- HEAD / HTTP/9.3
- OPTIONS / HTTP/1.0
- HEAD / HTTP/1.0
- File Extensions
- .ASP, .HTM, .PHP, .EXE, .IDQ
- Directory Traversal
- http://www.target.com/scripts/..%255c../winnt/system32/cmd.exe?/c+dir+c:\


Hello My name is Alex im from Russia but currently living in Portland, OR.
My interests include:
I build this website with Katlin Anderson its about my favorite Dj and his tour dates.
I build this website with Katlin Anderson its a Cupcake Store Website.


DO YOU NEED HELP MAKING A BEAUTIFUL WEBSITE?
Ask About It
CHECK US OUT


{% extends 'base.html' %} {% block styles %} {{super()}} {% endblock %} {% block content %}
We'll reset your password and then email you. You must then log in and change your password.


EasyBook
Homepage
Exchange
Inherit
Explore
signin
Inherit textbooks from the senior All we need is just the course name
Copyright@2016 EasyBook


Mushrooms - P. cubensis
He most often subscribes to the view that the inner world is as vast and complex as the outer world. In the moments when he loses that perception, inner and outer become separate. Think of one of M.C. Escher's works where worlds of paradoxical illusions present themselves so obviously.
Groundwork
1. On a walk a few nights earlier, it suddenly occurred to him that there is only the One and any other perception is an illusion. Giving it a name was too much though because that made it two instead of one, namer and named. Brief moments later the mind began its endless questioning and the insight was lost. It now thinks that its inquisitive nature is itself part of the One. This thought is a comfort for the self in the form of a compromise.
2. Fairly often lately a phrase had been popping into his mind: 'We are seeking the seeker.'
3. When the sacred fungi started appearing in his environment once again, he decided it was time to repeat the journey inward. The mind was reconditioned with a concentrated reading of 'The Secret Chief.' The basic technique (sans sitter) was followed. A prayer* was read aloud as a psychic energizer.
Process
Memory in terms of chronology was jumbled but the high points are intact. He was wafted along a cosmic highway for a while but then things got out of control. The character of the peak of the experience was very chaotic. Even an Olympic-level but unwise swimmer may find himself helplessly adrift in a surging tide. It seemed as if time itself was shattered into fragments that were discontinuously experienced and which even occasionally overlaid one another. He wondered if he'd poisoned himself and was about to die. He decided it was best to surrender as he'd promised*, committed to follow through to the end. Even so, his innate stubbornness did not allow going gently into that good night. But he knew he didn't have to remember all that would take place because transformation was the goal. There were many physical sensations including heat in various parts of his organism in contrast to the coldness his psilocybin trips often begin with.
Sequence: This trip shared with another powerful one over 6 months earlier auditory hallucinations in the form of voices speaking a language not understood. The speakers were getting frustrated and after strong efforts vowel pairs only were heard. Deeming their attempt unsuccessful, they abandoned communication in this manner.
Sequence: Remembering a technique suggested by an online psychedelic yogi, he focused on the very centre of his visual field. This was involuntary at first as there seemed to be the vague image of someone there attracting his gaze. At soon as he became aware of him, he got the telepathic message that the other was not there. After a while he got the idea that this stranger managed to convince him that he, the stranger, didn't exist. In order to believe this, our psychonaut had to suspend rationality and believe in the stranger's existence however. A strange paradox.
Sequence: Knights in not shining but dull, hammered armour. It seemed to him they were Teutonic, Crusader knights. They showed themselves during a series of arguments with God, complaints really, that later seemed very minor. Think also of Jacob wrestling with the angel in the 'Old Testament.'
Sequence: He felt old at times, aged and decrepit. There were manifestations of disease in his body, aches and sharp pains. Images of the crucifixion. He later remembered to look in a mirror where he noted the encrusted salt in white rings around his eyes. He taste-tested it.
Sequence: Inner light, at first white and splendid. Beautiful abstract forms in metallic textures, as old as God. Gratitude for what, he thought perhaps it was Terence McKenna, someone called 'vegetable television.' Now he was in appreciation mode and song softly and spontaneously poured forth along with the melody channelled through headphones.
Sequence: During the last half of the trip, he occasionally opened his eyes enough to watch the candle flame where he saw an angel of light, often with many others surrounding it. There was a friendly feeling. And once he opened his eyes wide to see in the white ceiling of the room a magnificent three-dimensional mandala.
Outcome
Higher levels of realization expressed as concepts are more accessible now. It has seemed to him lately that the human universe is an island in a vast sea of possibilities, perhaps as conceived by quantum physics. With the aid of some kind of medium such as crisis, sensory deprivation, deep meditation, or psychedelic agents, a psychonaut can swim to the horizon (here be dragons) and be voluntarily slain just as the old shamans did, his bones scattered to the deep. Yet his bodhisattva-like mission to return with something to benefit his fellows makes him stronger when completed.
He is always amazed at the resilience of the ego. Even when shattered almost completely, it regrows itself like a salamander's limb, albeit slightly altered. If we fall into extremities, the alteration could take the form of scars. If we courageously (fr. French: coeur [heart]) dive in, our greatheartedness is rewarded with a much-renewed form. Thus we are healed (fr. Germanic: hailaz [whole]) and radiate healing to others now, though the degree may be only a small step toward the One along the path through the infinity of being, each step already a paradoxical manifestation of the One.
Another paradox: this precious ego, which takes the form of objective images with more or less depth as circumstances invoke, seems to be identical with the timeless, dispassionate subject of awareness. He saw how Atman is Brahman and then let it go, trusting.
He was given simple and clear inspirations about various details of his everyday life. He hopes he can maintain the clear space in his heart to carry them out. His inner judge deems them to be minor given the seemingly hopeless challenges facing the human race, yet his faith in the power of little things is strengthened. Think of 'Lord of the Rings.'
He feels blessed to be one of the fortunate ones who travel this world in spite of his own and its imperfections. He suspects those very imperfections are paradoxically manifestations of its inherent perfection.
*Lord, I know not what to ask of thee;
Thou only knowest what I need;
Thou lovest me better than I know how to love myself.
O Father, give to Thy child that which
he himself knows not how to ask.
I dare not ask for crosses or consolations;
I simply present myself before Thee,
I open my heart to Thee.
Behold my needs which I know not myself;
see and do according to Thy tender mercy.
Smite, or heal; depress me or raise me up;
I adore all Thy purposes without knowing them;
I am silent; I offer myself in sacrifice;
I yield myself to Thee: I would have no
other desire than to accomplish Thy will.
Teach me to pray.
Pray thyself in me.
Amen.
--François de Salignac Fenelon, Archbishop of Cambray, 1651-1715 AD
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Single page navigation pattern
This is an example of using FlexNav on a single page with the navigation anchoring to each section of the page. Just add the .one-page class to the body, .menu-button, and your navigation ul.
Usage
Start with a simple unordered list, adding in the class and data attributes:

...

Add the small screen menu button somewhere outside your navigation markup:
Menu

Add flexnav.css to the head of your document:<link href="css/flexnav.css" rel="stylesheet" type="text/css" />
Add jquery.flexnav.min.js before the closing body tag:
Initialize FlexNav right before your closing body tag:$(".flexnav").flexNav();
you can change the default speed too:$(".flexnav").flexNav({ 'animationSpeed' : 'fast' });
Options
'animationSpeed' : '250', // default drop animation speed
'transitionOpacity': true, // default opacity animation
'buttonSelector': '.menu-button', // default menu button class
'hoverIntent': false, // Use with hoverIntent plugin
'hoverIntentTimeout': 150 // hoverIntent default timeout
Section 2
Bacon ipsum dolor sit amet shank beef ribs tongue pork loin prosciutto sirloin ribeye leberkas doner capicola brisket pork chop chicken. Turducken prosciutto filet mignon beef t-bone. Jerky bresaola filet mignon, chuck shankle rump boudin tongue. Shank jowl biltong, shankle frankfurter andouille prosciutto hamburger tri-tip spare ribs pastrami short loin fatback.
Pork brisket ground round, meatball cow fatback tail salami beef ribs ribeye pork chop short loin pancetta venison bresaola. Tenderloin meatloaf corned beef rump leberkas chuck. Flank ribeye meatball, ham pork belly beef pastrami capicola andouille fatback. Pork belly ham hock short ribs, chicken ball tip brisket tongue bacon short loin kielbasa pork chop sirloin biltong pancetta swine.
Shank pastrami pork belly doner filet mignon biltong sausage pork chop boudin pork loin. Sirloin frankfurter andouille jerky biltong filet mignon. Pig salami t-bone ground round venison, jowl short ribs sausage meatball. Pig sirloin tail, tongue ham hock drumstick salami ham doner.  Filet mignon sausage cow, drumstick shoulder pork loin ground round pork.
 Turducken prosciutto filet mignon beef t-bone. Jerky bresaola filet mignon, chuck shankle rump boudin tongue. Shank jowl biltong, shankle frankfurter andouille prosciutto hamburger tri-tip spare ribs pastrami short loin fatback.
Pork brisket ground round, meatball cow fatback tail salami beef ribs ribeye pork chop short loin pancetta venison bresaola. Tenderloin meatloaf corned beef rump leberkas chuck. Flank ribeye meatball, ham pork belly beef pastrami capicola andouille fatback. Pork belly ham hock short ribs, chicken ball tip brisket tongue bacon short loin kielbasa pork chop sirloin biltong pancetta swine.
Shank pastrami pork belly doner filet mignon biltong sausage pork chop boudin pork loin. Sirloin frankfurter andouille jerky biltong filet mignon. Pig salami t-bone ground round venison, jowl short ribs sausage meatball. Pig sirloin tail, tongue ham hock drumstick salami ham doner.  Filet mignon sausage cow, drumstick shoulder pork loin ground round pork.
 Turducken prosciutto filet mignon beef t-bone. Jerky bresaola filet mignon, chuck shankle rump boudin tongue. Shank jowl biltong, shankle frankfurter andouille prosciutto hamburger tri-tip spare ribs pastrami short loin fatback.
Pork brisket ground round, meatball cow fatback tail salami beef ribs ribeye pork chop short loin pancetta venison bresaola. Tenderloin meatloaf corned beef rump leberkas chuck. Flank ribeye meatball, ham pork belly beef pastrami capicola andouille fatback. Pork belly ham hock short ribs, chicken ball tip brisket tongue bacon short loin kielbasa pork chop sirloin biltong pancetta swine.
Shank pastrami pork belly doner filet mignon biltong sausage pork chop boudin pork loin. Sirloin frankfurter andouille jerky biltong filet mignon. Pig salami t-bone ground round venison, jowl short ribs sausage meatball. Pig sirloin tail, tongue ham hock drumstick salami ham doner.  Filet mignon sausage cow, drumstick shoulder pork loin ground round pork.
 Turducken prosciutto filet mignon beef t-bone. Jerky bresaola filet mignon, chuck shankle rump boudin tongue. Shank jowl biltong, shankle frankfurter andouille prosciutto hamburger tri-tip spare ribs pastrami short loin fatback.
Pork brisket ground round, meatball cow fatback tail salami beef ribs ribeye pork chop short loin pancetta venison bresaola. Tenderloin meatloaf corned beef rump leberkas chuck. Flank ribeye meatball, ham pork belly beef pastrami capicola andouille fatback. Pork belly ham hock short ribs, chicken ball tip brisket tongue bacon short loin kielbasa pork chop sirloin biltong pancetta swine.
Shank pastrami pork belly doner filet mignon biltong sausage pork chop boudin pork loin. Sirloin frankfurter andouille jerky biltong filet mignon. Pig salami t-bone ground round venison, jowl short ribs sausage meatball. Pig sirloin tail, tongue ham hock drumstick salami ham doner.  Filet mignon sausage cow, drumstick shoulder pork loin ground round pork.


, including all inherited members.
| barrier() | Cluster | |
| broadcastJoinThreshold (defined in Cluster) | Cluster | |
| bufferSize (defined in Cluster) | Cluster | |
| Cluster(size_t nodeId, size_t nHosts, char **hosts, size_t nQueues=64, size_t bufferSize=4 *64 *1024, size_t recvQueueSize=4 *64 *1024 *1024, size_t sendQueueSize=4 *4 *1024 *1024, size_t syncInterval=64 *1024 *1024, size_t broadcastJoinThreshold=10000, size_t inmemJoinThreshold=10000000, char const *tmp="/tmp", bool sharedNothing=true, size_t split=1) | Cluster | |
| cond (defined in Cluster) | Cluster | |
| getQueue(MessageHandler *hnd=NULL) | Cluster | |
| hosts (defined in Cluster) | Cluster | |
| inmemJoinThreshold (defined in Cluster) | Cluster | |
| instance (defined in Cluster) | Cluster | [static] |
| isCoordinator() | Cluster | [inline] |
| isLocalNode(char const *host) | Cluster | |
| maxQueues (defined in Cluster) | Cluster | |
| mutex (defined in Cluster) | Cluster | |
| nExecutorsPerHost (defined in Cluster) | Cluster | |
| nNodes (defined in Cluster) | Cluster | |
| nodeId (defined in Cluster) | Cluster | |
| nodes (defined in Cluster) | Cluster | [static] |
| openTempFile(char const *prefix, qid_t qid, size_t no, char const *mode="r") (defined in Cluster) | Cluster | |
| qid (defined in Cluster) | Cluster | |
| receiver (defined in Cluster) | Cluster | |
| recvQueues (defined in Cluster) | Cluster | |
| send(size_t node, Queue *queue, Buffer *buf) | Cluster | |
| senders (defined in Cluster) | Cluster | |
| sendQueues (defined in Cluster) | Cluster | |
| sharedNothing (defined in Cluster) | Cluster | |
| shutdown (defined in Cluster) | Cluster | |
| sockets (defined in Cluster) | Cluster | |
| split (defined in Cluster) | Cluster | |
| syncInterval (defined in Cluster) | Cluster | |
| tmpDir (defined in Cluster) | Cluster | |
| userData (defined in Cluster) | Cluster | |
| ~Cluster() (defined in Cluster) | Cluster | |


This is h-a-x
Question area
Content area
You'll love this because...
You'll love this because...
This is h-a-x
This is h-a-x


Blog
Visualising Time: Comparing discrepancies in witness statements
The principal output of this project will be our open access website - complete with GIS maps and digital edition. However, in order to link the two, a number of connections have to be made between the text and the physical space in which the events described took place. One way of doing this is through the ide.jpgication of certain ‘narrative nodules’, events referred to in the various testimonies which can both provide a link between the various accounts of events, and tie them to the city of Swansea itself.
My first attempt at this was a linear schematic centred around William Cragh. This made logical sense in that the witnesses were only called because of William and what happened to him, and thus their versions of events necessarily relate back to him constantly. Also, it suited the structure of the questioning process, as the interrogators were intensely interested in what time of day things occurred.
However, this did not work as well as I had hoped. The focus on William grossly over simplified events, and omitted a number of key ‘nodules’ in which he was not actually involved. Secondly, the discrepancies between witnesses as to what time fundamental moments such as the hanging itself took place made a strictly linear approach problematic.
As a consequence, my second attempt looks more like a scatter diagram of ‘narrative nodules’ with a broad overall movement in time from top left to bottom right of the page. Events which are reported to have occurred at different times by different witnesses can be more easily incorporated into the overall flow of time by being placed further out on the periphery. You can see the result at the top of this blog page. What do you think?
However, the visualisation of time does not end there! It will be really useful for users of the site to be able to compare different witness’s versions of events quickly and visually, without having to read through their convoluted statements and decipher the references to medieval times of day themselves. So while these narrative nodules are a useful tool in constructing the website’s ontology, the actual representation of time will have to be quite different.
We are still discussing what this might look like and how it will function, but the general idea will be to have something a little like this:
Essentially, there will be one timeline, stretching from the attack on Oystermouth Castle and the capture of William and Traharn, through to William’s recuperation and pilgrimage to Hereford Cathedral. Each event will be represented by a block of colour, and each witness will have their own horizontal line under the principal timeline. Then each event according to each witness can be plotted against the master timeline.
The result will be that at a glance, it will be possible to see the variance say in the length of time each witness said it took for William to regain consciousness, as this stage in the narrative would be shown as a blue block of varying lengths: instantly apparent visually.
What I want to avoid, however, is over complicating things and ending up with something like this!
Şħȧřḗ ǿƞ Ŧẇīŧŧḗř Şħȧřḗ ǿƞ Ƒȧƈḗƀǿǿķ


w3m is primarily a pager but it can also be used as a text-mode WWW browser.
This package is known to build and work properly using an LFS-8.1 platform.
Download (HTTP): https://downloads.sourceforge.net/w3m/w3m-0.5.3.tar.gz
Download MD5 sum: 1b845a983a50b8dec0169ac48479eacc
Download size: 2.1 MB
Estimated disk space required: 26 MB
Estimated build time: 0.3 SBU
GPM-1.20.7, OpenSSL-1.0.2l Libraries, Imlib2-1.4.10, GTK+-2.24.31, Imlib (not recommended: obsolete, abandoned upstream, buggy, and gives no additional functionality as compared to other image loading libraries), gdk-pixbuf-2.36.8, Compface-1.5.2, and nkf, a Mail User Agent, and an External Browser
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/W3M
Install w3m by running the following commands:
patch -Np1 -i ../w3m-0.5.3-bdwgc72-1.patch && sed -i 's/file_handle/file_foo/' istream.{c,h} && sed -i 's#gdk-pixbuf-xlib-2.0#& x11#' configure && PKG_CONFIG_PATH="/usr/lib/openssl-1.0/pkgconfig:$PKG_CONFIG_PATH" \ ./configure --prefix=/usr --sysconfdir=/etc && make
This package does not come with a test suite.
Now, as the root
user:
make install && install -v -m644 -D doc/keymap.default /etc/w3m/keymap && install -v -m644 doc/menu.default /etc/w3m/menu && install -v -m755 -d /usr/share/doc/w3m-0.5.3 && install -v -m644 doc/{HISTORY,READ*,keymap.*,menu.*,*.html} \ /usr/share/doc/w3m-0.5.3
patch -p1 < ../w3m-0.5.3-bdwgc72-1.patch: This patch fixes compiling w3m with GC-7.2 installed.
sed -i 's/file_handle/file_foo/' istream.{c,h}: This sed renames the file_handle function to avoid a clash with a glibc function that has the same name, defined in /usr/include/bits/fcntl.h.
sed -i 's#gdk-pixbuf-xlib-2.0#& x11#' configure: This sed fixes compiling w3m using GTK+-2.24.31 as its image library. It has no impact if GTK+-2.24.31 is not installed.
--sysconfdir=/etc
: This
option puts the configuration files in /etc.
Last updated on 2017-08-29 12:34:24 -0700


head_ref_force_pushed
by Eliot Jordan at 2021-01-21 20:18:36.head_ref_force_pushed
by Eliot Jordan at 2021-01-21 21:55:48.closed
by Eliot Jordan at 2021-01-21 21:56:20.The following configuration setting for relayd
was primarily affecting this:
# filters
http protocol httpsfilter {
# [...]
match response header set "Cache-Control" value "max-age=$VALUE"
# [...]
Further, there were some adjustments to the shibd
, nginx
, and httpd
configuration, but this may simply have improved performance.
I must draft some more definitive information for this, but there is a meeting later today with a user who experienced problems which might have some additional information.
review_requested
by Cliff Wulfman at 2021-01-21 19:24:19.labeled
by Eliot Jordan at 2021-01-21 19:38:39.referenced
by Axa Mei Liauw at 2021-01-21 13:47:44.merged
by Axa Mei Liauw at 2021-01-21 13:47:44.closed
by Axa Mei Liauw at 2021-01-21 13:47:44.head_ref_deleted
by Axa Mei Liauw at 2021-01-21 13:47:48.review_requested
by Axa Mei Liauw at 2021-01-21 14:10:47.review_requested
by Axa Mei Liauw at 2021-01-21 14:10:47.renamed
by Axa Mei Liauw at 2021-01-21 14:11:28.referenced
by None at 2021-01-21 15:14:12.merged
by None at 2021-01-21 15:14:12.closed
by None at 2021-01-21 15:14:12.head_ref_deleted
by None at 2021-01-21 15:14:17.@hackartisan I updated with your suggestions.
head_ref_force_pushed
by Eliot Jordan at 2021-01-21 20:28:20.mentioned
by None at 2021-01-21 20:30:17.subscribed
by None at 2021-01-21 20:30:17.referenced
by None at 2021-01-21 20:52:01.merged
by None at 2021-01-21 20:52:01.closed
by None at 2021-01-21 20:52:01.head_ref_deleted
by Eliot Jordan at 2021-01-21 22:31:39.referenced
by Christina Chortaria at 2021-01-21 13:59:38.merged
by Christina Chortaria at 2021-01-21 13:59:38.closed
by Christina Chortaria at 2021-01-21 13:59:38.head_ref_deleted
by Christina Chortaria at 2021-01-21 13:59:39.Looks like the file being indexed when this error happened was fullreindexfileunzipfulldump626033329000642120210120050120[007]new_8320210120-17098-1dhtyfm.xml
labeled
by None at 2021-01-21 14:11:31.Coverage remained the same at 79.181% when pulling 4c86b83deb8007e9ed6c4f841d4d39e85cf01dc1 on update-readme-lastpass-section into 2c53da352247719e00113950503f7472e286ddbb on alma.
referenced
by None at 2021-01-21 15:43:06.merged
by None at 2021-01-21 15:43:06.closed
by None at 2021-01-21 15:43:06.head_ref_deleted
by None at 2021-01-21 15:43:07.Updating language on this issue. We don't actually want a seeder because we don't want it to run in CI.
renamed
by None at 2021-01-21 16:04:31.renamed
by None at 2021-01-21 16:04:57.unassigned
by Trey Pendragon at 2021-01-21 20:01:13.Essentially, it is unknown how many external sites (like professor's blogs, LibGuides, etc.) use direct links to Blacklight bib records, so there needs to be a redirect in place to take a user from a Voyager bib ID to the new Alma MMS ID.
Do we want to inspect the ID? or do we want to just try a rewrite if the page isn't found?
A voyager bib id will always be numeric. There is no maximum length, but we could get the last id used in voyager (13million would be the highest). The minimum length of an alma id would be the prefix and suffix with 1 in between.
renamed
by None at 2021-01-21 14:45:10.labeled
by None at 2021-01-21 20:36:41.labeled
by None at 2021-01-21 20:36:41.referenced
by Trey Pendragon at 2021-01-21 21:26:32.Coverage increased (+0.06%) to 79.245% when pulling 090e90bf02cdbd80564c14bd9e8b01952f4a8a64 on scsbfollow774 into 92e6aa175cad1187cc6938f533aa602c0b345b4e on alma.
deployed
by Trey Pendragon at 2021-01-21 21:27:27.referenced
by Christina Chortaria at 2021-01-21 21:51:35.merged
by Christina Chortaria at 2021-01-21 21:51:35.closed
by Christina Chortaria at 2021-01-21 21:51:35.head_ref_deleted
by Christina Chortaria at 2021-01-21 21:51:36.Coverage decreased (-3.3%) to 79.245% when pulling 22cb924d7dc1e5423489d32170db283ce68eac81 on alma into b3ecd66028801434ad5f7d9b56a01f41cbf5e2bd on main.
@hackartisan I renamed the populate
method to be more explicit and removed the rake task so it can only be run in the console.
Coverage increased (+0.1%) to 79.387% when pulling a43bec7a259f55c25fffd25fa09a171ffde5416c on 964-locations into 22cb924d7dc1e5423489d32170db283ce68eac81 on alma.
head_ref_force_pushed
by Eliot Jordan at 2021-01-21 22:03:06.head_ref_force_pushed
by Eliot Jordan at 2021-01-21 22:16:09.mentioned
by None at 2021-01-21 22:19:39.subscribed
by None at 2021-01-21 22:19:39.ready_for_review
by Eliot Jordan at 2021-01-21 22:23:07.ready_for_review
by None at 2021-01-21 18:03:23.referenced
by Kevin Reiss at 2021-01-21 19:50:35.merged
by Kevin Reiss at 2021-01-21 19:50:35.closed
by Kevin Reiss at 2021-01-21 19:50:35.head_ref_deleted
by Kevin Reiss at 2021-01-21 19:50:36.head_ref_force_pushed
by None at 2021-01-21 12:26:29.referenced
by Francis Kayiwa at 2021-01-21 12:49:00.merged
by Francis Kayiwa at 2021-01-21 12:49:00.closed
by Francis Kayiwa at 2021-01-21 12:49:00.head_ref_deleted
by Francis Kayiwa at 2021-01-21 12:49:00.referenced
by Francis Kayiwa at 2021-01-21 13:19:36.merged
by Francis Kayiwa at 2021-01-21 13:19:36.closed
by Francis Kayiwa at 2021-01-21 13:19:36.head_ref_deleted
by Francis Kayiwa at 2021-01-21 13:19:36.referenced
by Axa Mei Liauw at 2021-01-21 15:49:59.merged
by Axa Mei Liauw at 2021-01-21 15:49:59.closed
by Axa Mei Liauw at 2021-01-21 15:49:59.head_ref_deleted
by Axa Mei Liauw at 2021-01-21 15:50:00.referenced
by Kevin Reiss at 2021-01-21 19:25:17.merged
by Kevin Reiss at 2021-01-21 19:25:17.closed
by Kevin Reiss at 2021-01-21 19:25:17.head_ref_deleted
by Kevin Reiss at 2021-01-21 19:25:18.referenced
by James R. Griffin III at 2021-01-21 22:10:39.merged
by James R. Griffin III at 2021-01-21 22:10:39.closed
by James R. Griffin III at 2021-01-21 22:10:39.head_ref_deleted
by James R. Griffin III at 2021-01-21 22:10:40.review_requested
by Axa Mei Liauw at 2021-01-21 13:44:17.review_requested
by Axa Mei Liauw at 2021-01-21 13:44:17.referenced
by None at 2021-01-21 16:13:24.merged
by None at 2021-01-21 16:13:24.closed
by None at 2021-01-21 16:13:24.head_ref_deleted
by None at 2021-01-21 16:13:27.closed
by Trey Pendragon at 2021-01-20 22:29:48.referenced
by Trey Pendragon at 2021-01-20 22:29:47.merged
by Trey Pendragon at 2021-01-20 22:29:47.closed
by Trey Pendragon at 2021-01-20 22:29:48.head_ref_deleted
by Trey Pendragon at 2021-01-20 22:29:49.referenced
by Trey Pendragon at 2021-01-20 22:10:03.closed
by Christina Chortaria at 2021-01-20 22:41:20.deployed
by Trey Pendragon at 2021-01-20 22:24:43.referenced
by Christina Chortaria at 2021-01-20 22:41:19.merged
by Christina Chortaria at 2021-01-20 22:41:20.closed
by Christina Chortaria at 2021-01-20 22:41:20.head_ref_deleted
by Christina Chortaria at 2021-01-20 22:41:21.It shows up, but a ways down.
closed
by Trey Pendragon at 2021-01-20 22:41:35.closed
by Christina Chortaria at 2021-01-20 22:44:06.renamed
by Trey Pendragon at 2021-01-20 22:05:09.head_ref_force_pushed
by Trey Pendragon at 2021-01-20 22:24:21.referenced
by Christina Chortaria at 2021-01-20 22:44:05.merged
by Christina Chortaria at 2021-01-20 22:44:06.closed
by Christina Chortaria at 2021-01-20 22:44:06.head_ref_deleted
by Christina Chortaria at 2021-01-20 22:44:07.referenced
by Trey Pendragon at 2021-01-20 22:38:07.closed
by Christina Chortaria at 2021-01-20 22:44:32.referenced
by Trey Pendragon at 2021-01-20 23:03:53.referenced
by Trey Pendragon at 2021-01-20 23:05:00.referenced
by Christina Chortaria at 2021-01-20 22:44:32.merged
by Christina Chortaria at 2021-01-20 22:44:32.closed
by Christina Chortaria at 2021-01-20 22:44:32.head_ref_deleted
by Christina Chortaria at 2021-01-20 22:44:33.This might be fixed. I'm looking at https://findingaids-beta.princeton.edu/catalog/aspace_C0744-04_c0614, can you confirm this is the case @faithc?
Edit: Yeah, I don't think those items are being indexed at all. See comparison: https://findingaids.princeton.edu/collections/C0744.04/c0614
There should be three sub-items, including Prayer and Legend of Susenyos
, and those are the things that should be requestable.
mentioned
by None at 2021-01-20 23:17:34.subscribed
by None at 2021-01-20 23:17:34.referenced
by Trey Pendragon at 2021-01-20 23:11:33.closed
by Trey Pendragon at 2021-01-20 23:24:58.referenced
by Trey Pendragon at 2021-01-20 23:24:58.merged
by Trey Pendragon at 2021-01-20 23:24:58.closed
by Trey Pendragon at 2021-01-20 23:24:58.head_ref_deleted
by Trey Pendragon at 2021-01-20 23:24:59.referenced
by Trey Pendragon at 2021-01-20 23:21:46.closed
by Christina Chortaria at 2021-01-20 23:26:10.referenced
by Christina Chortaria at 2021-01-20 23:26:10.merged
by Christina Chortaria at 2021-01-20 23:26:10.closed
by Christina Chortaria at 2021-01-20 23:26:10.head_ref_deleted
by Christina Chortaria at 2021-01-20 23:26:11.referenced
by Christina Chortaria at 2021-01-20 23:27:22.merged
by Christina Chortaria at 2021-01-20 23:27:22.closed
by Christina Chortaria at 2021-01-20 23:27:22.head_ref_deleted
by Christina Chortaria at 2021-01-20 23:27:23.Yeah i talked to them about this a little, we should just be able to regenerate fixtures again for the final test load.
labeled
by Eliot Jordan at 2021-01-21 15:23:51.referenced
by Trey Pendragon at 2021-01-20 23:15:16.closed
by Trey Pendragon at 2021-01-21 17:16:03.referenced
by Trey Pendragon at 2021-01-21 17:16:02.merged
by Trey Pendragon at 2021-01-21 17:16:02.closed
by Trey Pendragon at 2021-01-21 17:16:03.head_ref_deleted
by Trey Pendragon at 2021-01-21 17:16:04.@ccleeton Something like this?
@tpendragon yes this should be fine. @faithc are you good with this?
Yes. Can the call number come before the box count?
mentioned
by Christa Cleeton at 2021-01-20 22:51:04.subscribed
by Christa Cleeton at 2021-01-20 22:51:04.mentioned
by Trey Pendragon at 2021-01-21 14:58:31.subscribed
by Trey Pendragon at 2021-01-21 14:58:31.mentioned
by None at 2021-01-21 14:58:32.subscribed
by None at 2021-01-21 14:58:32.This lies within scope (and is superseded by https://github.com/pulibrary/pulfalight/issues/311)
closed
by James R. Griffin III at 2021-01-21 17:42:24.referenced
by Trey Pendragon at 2021-01-21 17:24:35.closed
by None at 2021-01-21 17:46:49.referenced
by None at 2021-01-21 17:46:48.merged
by None at 2021-01-21 17:46:48.closed
by None at 2021-01-21 17:46:49.head_ref_deleted
by None at 2021-01-21 17:46:50.closed
by Trey Pendragon at 2021-01-21 18:32:42.referenced
by Trey Pendragon at 2021-01-21 18:32:42.merged
by Trey Pendragon at 2021-01-21 18:32:42.closed
by Trey Pendragon at 2021-01-21 18:32:42.head_ref_deleted
by Trey Pendragon at 2021-01-21 18:32:43.assigned
by Trey Pendragon at 2021-01-21 17:41:47.referenced
by Trey Pendragon at 2021-01-21 17:43:21.closed
by Trey Pendragon at 2021-01-21 18:32:55.referenced
by Trey Pendragon at 2021-01-21 18:32:55.merged
by Trey Pendragon at 2021-01-21 18:32:55.closed
by Trey Pendragon at 2021-01-21 18:32:55.head_ref_deleted
by Trey Pendragon at 2021-01-21 18:32:56.labeled
by None at 2021-01-21 18:33:43.labeled
by None at 2021-01-21 18:33:43.head_ref_force_pushed
by None at 2021-01-21 18:33:49.referenced
by Trey Pendragon at 2021-01-21 18:35:35.merged
by Trey Pendragon at 2021-01-21 18:35:36.closed
by Trey Pendragon at 2021-01-21 18:35:36.head_ref_deleted
by Trey Pendragon at 2021-01-21 18:35:37.closed
by Christina Chortaria at 2021-01-21 19:09:01.referenced
by Christina Chortaria at 2021-01-21 19:09:01.merged
by Christina Chortaria at 2021-01-21 19:09:01.closed
by Christina Chortaria at 2021-01-21 19:09:02.head_ref_deleted
by Christina Chortaria at 2021-01-21 19:09:03.@ccleeton You have to hit the title of the collection. This is probably a UX issue - where did you expect to hit to be able to return to the collection?
@tpendragon I and others want to be able to use the top navigation "Overview" to go back to overview. All the other top navigations go back to where you would think they would. Does that make sense?
I think we're using "Overview" now as "Overview of whichever thing you're on at the moment" - was the intention that it always have the collection overview?
The response has been that yes it would go back to the collection overview. I think it would be confusing to use the same wording twice. @faithc thoughts?
mentioned
by Christa Cleeton at 2021-01-21 18:57:04.subscribed
by Christa Cleeton at 2021-01-21 18:57:04.mentioned
by Trey Pendragon at 2021-01-21 19:02:42.subscribed
by Trey Pendragon at 2021-01-21 19:02:42.mentioned
by None at 2021-01-21 19:09:07.subscribed
by None at 2021-01-21 19:09:07.assigned
by Trey Pendragon at 2021-01-21 19:17:29.milestoned
by Trey Pendragon at 2021-01-21 19:55:37.@faithc I'm real confused, I'm seeing dashes. Maybe the new index fixed this? Can you take a look again and maybe screenshot what's wrong?
OH, in the title! Thank you.
Oh, yes; sorry, that probably would have been useful to articulate. Sorry for the confusion!
mentioned
by None at 2021-01-21 18:56:21.subscribed
by None at 2021-01-21 18:56:21.assigned
by Shaun Ellis at 2021-01-21 21:27:46.review_requested
by Axa Mei Liauw at 2021-01-21 14:56:08.review_requested
by Axa Mei Liauw at 2021-01-21 14:56:08.referenced
by None at 2021-01-21 16:15:35.merged
by None at 2021-01-21 16:15:35.closed
by None at 2021-01-21 16:15:35.labeled
by None at 2021-01-21 15:46:18.labeled
by None at 2021-01-21 15:46:18.referenced
by Kevin Reiss at 2021-01-21 16:18:13.referenced
by Kevin Reiss at 2021-01-21 17:10:17.referenced
by None at 2021-01-21 18:38:16.review_requested
by Kevin Reiss at 2021-01-21 16:18:38.head_ref_force_pushed
by Kevin Reiss at 2021-01-21 17:10:17.head_ref_force_pushed
by None at 2021-01-21 18:38:16.referenced
by None at 2021-01-21 19:10:00.merged
by None at 2021-01-21 19:10:00.closed
by None at 2021-01-21 19:10:00.review_requested
by Axa Mei Liauw at 2021-01-21 15:43:24.review_requested
by Axa Mei Liauw at 2021-01-21 15:43:24.referenced
by None at 2021-01-21 16:14:50.merged
by None at 2021-01-21 16:14:50.closed
by None at 2021-01-21 16:14:51.head_ref_deleted
by None at 2021-01-21 16:14:54.review_requested
by Axa Mei Liauw at 2021-01-21 13:57:20.review_requested
by Axa Mei Liauw at 2021-01-21 13:57:20.referenced
by None at 2021-01-21 16:12:39.merged
by None at 2021-01-21 16:12:39.closed
by None at 2021-01-21 16:12:39.head_ref_deleted
by None at 2021-01-21 16:12:44.


{% extends 'all/main.html' %} {% block content %} Welcome To My Gallery App! Application To View photos Click here to view My Gallery {% endblock %}


|
|
|
When you enter your Toonís house, the "move furniture" icon appears in the top left corner of the screen. Click on it to start decorating!
|
When the decorating interface is open, youíll see a birdís-eye view of the inside of your house. Use the controls at the bottom of the decorating control panel to change the orientation of your view.
|
The attic tab shows all the furniture currently in your attic. This is where everything goes when you collect it from the mailbox and when you remove it from your house.
|
To move something from the attic to the house, just click it! Once an item is in your Toonís house, move it wherever you like by grabbing the itemís move icon with the mouse and dragging it. Rotate the item by using the rotation arrows on either side of the move icon.
|
|
To move something from the house to the attic, click it to select it, then click the "send to attic" button at the top of the decorating control panel.
|
A Toon's house can only hold so much stuff, so you may find you need to dispose of items occasionally. To do this, click the trashcan icon on the decorating control panel. All items in the open tab (either the room tab or the attic tab) will turn red. Delete an item by clicking on it.
|
Toon Tip:
If you change your mind after deleting an item, check your trash can! If it has not been emptied yet, you can get an item back out.
|


Introduction
Controlling an experiment with an Arduino microcontroller has become commonplace in scientific labs. A major bottle-neck in making experiments controlled with an Arduino main-stream is the difficulty in their use. Once embedded into an experiment, the control of an Arduino often involves cognitively-demanding command line interaction which detracts from potentially complicated experiments. Thus, a simplified interface to control an Arduino during an experiment is necessary.
Here, we present a simplified and experimentally fool-proof web interface to control an Arduino using a point-and-click web interface. In particular, we have built a motorized treadmill for in vivo head-fixed two-photon imaging. We provide schematics for building the treadmill as well as Arduino and Python code to control the treadmill.
This is a general-purpose open-source framework where Arduino based experiments can be controlled through a web interface. The source-code can be easily modified to meet new and unique experimental designs.
Web Interface
The top section provides an interface to start/stop a trial and plots real-time feedback as the trial is running.
The middle section provides an interface to set stimulus parameters for a trial and to upload these parameters to an Arduino. This section also provides a plot of what the trial will look like based on the set of parameters entered.
Arduino Setup
Hardware
-
Arduino Uno
-
Stepper Motor, Sparkfun - 09238, $15
-
Stepper motor driver, EasyDriver, Sparkfun - 12779, $15. Main website for EasyDriver
-
Rotary encoder, Honeywell-600-128-CBL, .pdf spec sheet, $37
-
IR LED, 840-850 nm, Sparkfun - 9469 $1 each (960 nm IR LEDs do not work well with Pi Noir camera)
-
Actobotics at ServoCity and Sparkfun. Give ServoCity a shot, their visual guides and project ideas are really helpful in desining components. This can be your one stop shop for all structural components including frames, rods, bearings, clamps, and motor mounts.
Wiring the arduino
- Wire the stepper motor
- Wire the stepper motor to the stepper motor driver
- Wire the rotary encoder
- Wire the DIO pins to communicate with ScanImage
Upload code to the Arduino
Required libraries
You want to use these non-blocking libraries otherwise your code will not perform well. If you don't use these libraries then code to turn the stepper motor will block other code like reading the rotary encoder.
-
AccelStepper library to control stepper motor
-
Rotary encoder library from PJRC
Upload using the Arduino IDE
The source code for the Arduino can be found in /arduino/src/treadmill.cpp.
Use the standard Arduino IDE to upload treadmill.cpp to your Arduino. Make sure you have the required Arduino libraries installed. Also be sure you understand how to activate addition low level interrupts if using an Arduino Uno.
Upload using platformio
If you prefer you can use Platformio to do everything from a command line. This has the distinct advantage that you can compile and upload code from a headless computer including a Raspberry Pi or any system running Linux.
Platformio is a python library so you should be good to go with pip install platformio
.
Have a look here to create a platformio.ini file for your specific Arduino. Here are three different board configurations
platformio init --board uno # arduino uno
platformio init --board pro16MHzatmega328 # generic arduino pro
platformio init --board nodemcuv2 # arduino node mcu
After 'platformio init', platformio.ini will have environment configurations. You only want to have one of these blocks at a time to simplify compilation. For example [env:uno].
[env:uno]
platform = atmelavr
framework = arduino
board = uno
build_flags = -D _expose_interrupts_ #creates compiler directive
[env:pro16MHzatmega328]
platform = atmelavr
framework = arduino
board = pro16MHzatmega328
[env:nodemcuv2]
platform = espressif
framework = arduino
board = nodemcuv2
upload_port = /dev/ttyUSB0
Compile, upload, and clean Arduino code with
platformio run #compile arduino code
platformio run --target upload #compile and upload
platformio run --target clean #clean project
Finally, once the code is running you can open a serial port connection with
platformio serialports monitor -p /dev/ttyUSB0 -b 115200 #a serial port monitor
Specifying the correct serial port for the Arduino is critical. Specify this in the treadmill.py file.
#serialStr = '/dev/tty.usbmodem618661' #teensy at work
#serialStr = '/dev/tty.usbmodem618661' #teensy?
#serialStr = '/dev/ttyUSB0' #hand soldered arduino micro (home debian)
#serialStr = '/dev/tty.usbserial-A50285BI' # hand soldered at work
serialStr = '/dev/ttyACM0' #uno
Low Level Interrupts
The Uno only comes with two pins (2 and 3) capable of low-level interrupts and more pins need to be broken out. We need two low level interrupts for the Rotary Encoder and a few more to quickly intercept TTL pulses of the FrameClock.
See Pin-change interrupts for information on exposing additional pins as low-level interrupts.
We have included a compiler directive _expose_interrupts_
in treadmill.cpp that if activated will run code to expose additional interrupts.
- If using platformio this is taken care of in the [env] section of platformio.ini
- If using the arduino IDE,
define _expose_interrupts_ = 1
must be included in treadmill.cpp
//Uncomment this line if running on an Arduino Uno and compiling with the arduino IDE
//#define _expose_interrupts_ 1
Server Setup
Python
Download and install Anaconda. Anaconda is a python installation that will install many commonly used libraries. It is much easier to get started with Anaconda rather than a basic installation of Python.
Install required python libraries
Install additional required python libraries using the included requirements.txt file
pip install -r requirements.txt
Here is the requirements.txt file
eventlet>=0.18.4
Flask>=0.10.1
Flask-Markdown>=0.3
Flask-SocketIO>=1.0
platformio>=2.8.5
plotly>=1.9.6
pyserial>=3.0.1
Running an experiment
At its core, an experiment is run on the Arduino using treadmill.cpp. We have provided two additional interfaces: a python interface and a web based interface.
Arduino interface
The Arduino program treadmill.cpp provides a simple serial interface to get and set parameters of a trial and to start and stop a trial. Once the program is uploaded to an Arduino, open your favorite serial port and start entering commands.
startTrial # start a trial
stopTrial # stop a trial
getState #
settrial,[name],[value]
settrial
takes the name
and value
of a trial parameter to set. The name
needs to be one of: numPulse, numEpoch, epochDur, preDur, etc. These names match the 'Stimulus' parameters provided in the web interface. See the SetTrial() function in treadmill.cpp for all possible trial parameters.
Entering getState
in a serial window and the Arduino will return the current values for all trial parameters. This is also a good way to find the names of trial parameters and then set them like settrial,epochDur,5000
.
=== Arduino State ===
trialNumber=0
trialDur=1000
numEpoch=1
epochDur=1000
preDur=1000
postDur=1000
numPulse=3
pulseDur=1000
useMotor=1
motorDel=200
motorDur=200
motorSpeed=0
motorMaxSpeed=0
versionStr=20160322
=== Done ===
Python interface
You can use iPython or any Python command interpreter to drive an experiment. You can also write your own python code to interface with the core python code in treadmill.py.
Here is a short example of running an experiment in Python
import treadmill
t = treadmill.treadmill() # create a treadmill object
t.startTrial() # start a new trial
t.stopTrial() # stop a trial
t.GetArduinoState() # get the current state with all trial parameters (see Arduino getstate below).
t.settrial('epochDur',5000) # set the value of 'epochDur' trial parameter to 5000 ms
t.startTrial() # start a new trial
The python interface and arduino interface share all trial parameter names.
Web interface
A web interface is provided as a Flask server in treadmill_app.py. Flask is a micro-framework that allows a web-server to be created and controlled all from within python.
Run the web interface with python treadmill_app.py
. This will run a web server at http://<IP_ADDRESS>:5000
. You can change the default address and port in treadmill_app.py
#this will run Flask on the machines local ip (use this if on a lan)
socketio.run(app, host='<IP_ADDRESS>', port=5010, use_reloader=True)
#this will run this on localhost, use this if using a single machine (no LAN needed)
socketio.run(app, host='', port=5010, use_reloader=True)
Rolling your own interface
You can roll your own interface by interfacing directly with the Arduino code in treadmill.cpp, the python code in treadmill.py, or the Flask server code in treadmill_app.py.
Links
Flask
Arduino


A search bar allows people to search through a large collection of values by typing text into a field. A search bar can be displayed alone, or in a navigation bar or content view. When displayed in a navigation bar, a search bar can be pinned to the navigation bar so it's always accessible, or it can be collapsed until the user swipes down to reveal it.
TODO: Fix the size to a standard one, provide a true and valid color, support for helper buttons


Authentication
Username or password are invalid.
User was deauthenticated sucessfully.
Username
Password
Authenticate


Create dynamic visual effects on your iOS device with Splode Lab. Tons of control, tons of options, tons of fun. Draw with fire. Tap to explodeCreate mind blowing displays.


Rocket fire from Gaza resumes after a quiet night; IDF Strikes in Gaza
Israeli military attacks on Islamic Jihad targets also resumed Wednesday with the IDF confirming it hit a rocket-launching squad and Palestinian media reporting at least two people killed in the attacks
by YnetRocket launches towards communities in Israel resumed Wednesday after a seven-hour lull.
Islamic Jihad launched missiles as of 5:45 AM in the direction of the border communities, the city of Ashkelon and the surrounding communities, the cities of Sderot and Netivot and as far as the Judean foothills.
The Iron Dome missile defense system intercepted two rockets over Ashkelon and two over Sderot. According to Palestinian media reports, the IDF attacked targets in Gaza City and Dir El Balah in the central part of the Gaza Strip.
At least two people have been reported killed in the Israeli attacks.
The IDF Spokesman's Unit confirmed a UAV attacked what they say was a rocket launching squad belonging to the Islamic Jihad.
According to the IDF 250 rockets were launched from Gaza. 220 of them fell in Israeli territory. The Barzilai Hospital in Ashkelon reports they have treated 41 people affected by the events since Tuesday. 23 of them suffering light injuries and 18 suffering from shock.
As of Wednesday, eight people are still hospitalized. The Home Front Command instructed communities in the south to keep schools closed today and non-essential workers are asked to remain home.
On Tuesday, the special emergency-situation extended to the center of the country, on orders of newly appointed Defense Minister Naftali Bennett, but that decision has since been reversed and there are no special provisions or restrictions on the civilian population in light of events. However, everyone is urged to comply with Home Front Command instructions as they are issued.


PDFObject Example: Invoking conditional JavaScript upon successful embed
var el = document.querySelector("#results");
el.setAttribute("class", (myPDF) ? "success" : "fail");
el.innerHTML = (myPDF) ? "PDFObject successfully added an <embed> element to the page!" : "Uh-oh, the embed didn't work.";


| DOSE: |
2 bowls |
smoked |
Valerian |
(ground / crushed) |
Last night, I decided to try smoking valerian root based on the relatively small number of reports I have read about using this method of intake. The valerian root I used was in powdered form and was emptied out of a 1,600 mg capsule. The bottle indicated that the capsules contained absolutely no additives whatsoever, just pure valerian.
I filled a small bowl with the valerian powder (which smelled rather pungent) and sat down, ready for experimentation. As I drew the flame through the powder, my lungs were filled with a very harsh and bad-tasting smoke, which I couldn’t hold in for more than 5 seconds. I instantly coughed out the hit, despite the fact that I smoke marijuana habitually (just about every day).
Just to warn you, the smoke smells terrible and one hit can almost instantly stink up an entire room. I took another hit, this time noticing that the valerian pretty much smoldered instead of burning cleanly. This hit was smaller and I was able to hold it in for a while. The bowl was finished and after 5 minutes I was feeling nothing, so I decided to smoke another bowl.
The second bowl was bigger (even though I never finished it), and I was able to hold in two more good-sized hits. After finishing the last hit I became slightly lightheaded (probably from the inhalation of such harsh smoke), and decided to stop smoking the nasty substance. I felt a very slight amount of relaxation, but I have decided that this was probably a placebo-type effect. I fell asleep about 30 minutes later, at my usual bedtime.
Overall, I do not suggest smoking valerian root. In my opinion, valerian is best taken orally, as it is intended to be. I have achieved great results by orally taking one or two of the 1,600 mg capsules used in this experiment and suggest this to anyone looking to achieve mild relaxation/sedation or a better night’s sleep.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.