ziprecruiter
Businessmodel of ZipRecruiter
Customer Segments
Ziprecruiter provide recruitment and job search services to a range of individual and commercial customers. The Company’s customers can be organised broadly into two core categories:
- Individuals, comprising jobseekers of all ages and professions, to whom its provides an accessible and flexible source of job seeking tools; and
- Commercial Entities, comprising a range of commercial enterprises across multiple sectors, to which the Company provides services and tools to assist in the recruitment process. Ziprecruiter lists a number of its individual and commercial clients on its website. The Company’s enterprise customers include The Sigma Law Group, Applebee’s, Safety Management Group, Matrix Medical Network, Lighthouse Management Group, and MONZINGO.
Ziprecruiter serves an extensive customer base in its native US, as well as a significant customer base in the UK.
Value Propositions
Ziprecruiter provides value to its clients in the following ways:
- Its brand strength and industry standing, with the Company established as a leading portal for jobseekers and commercial recruiters, having a well-known and well-respected brand name within the industry;
- Its accessibility and flexibility, with the Company offering a range of services through its online portal and mobile application that can be accessed quickly and easily by users from anywhere and at any time;
- Its commitment to innovation, with the Company committed to developing and implementing new and innovative solutions, ensuring that its services are at the cutting edge of the industry;
- Its large user base, with the Company serving providing customers with an extensive catalogue of job opportunities and managing the profiles of more than 7 million active job seekers for commercial recruiters; and
- Its international reach, with the Company serving an extensive domestic customer base in the US, as well as a significant customer base in the UK. ### Channels
Ziprecruiter operates a website at ww.ziprecruiter.com, through which it provides information on its various services, solutions, and activities. The Company’s website also doubles as its job search and recruitment platform, with users able to log in to its online portal through the Ziprecruiter homepage.
The Company’s provides a range of tools and resources to customers directly through its online portal, through which users can search for jobs, browse CVs, and manage account details. Ziprecruiter also provide mobile applications that are available on iOS and Android devices that offer a similar set of functions and tools.
Ziprecruiter offers support and services through dedicated sales and service teams organised by geographic regions, namely the UK and the US. These personnel operate out of the Company’s network of offices, primarily in the US. Ziprecruiter additionally operates an affiliate program through which it reaches customers. The Company’s affiliate partners seek to drive traffic to Ziprecruiter and generate business on its behalf.
Customer Relationships
Ziprecruiter operates on a primarily self-service basis through its online platform, which enable individual users and commercial users to access a range of tools and resources without interacting with members of the Company’s sales and service teams. Users are able to browse job listings, apply for jobs, search CVs, and manage account details completely independently. Ziprecruiter also has a sale and service team that is able to serve customers more personally.
Ziprecruiter offers ongoing support to its customers. Individual and commercial users are able to contact the company’s dedicated support personnel over the phone, via an online contact form, by email, or through an online chat service, through which they are provided tailored support and assistance. The Company also offers users a range of online resource, such as FAQs and guides.
Additionally, Ziprecruiter operates several social media accounts – including with Facebook, Twitter, and LinkedIn – through which the Company is able to publish company updates and interact directly with customers.
Key Activities
Ziprecruiter is a provides employment and recruitment services. The Company a range of solutions, including recruiting, hiring, job boards, job posting, web application, candidate screening, applicant tracking, and job alerts services, serving individual jobseekers and commercial recruiters.
The Company provides services primarily through its online jobs portal at www.ziprecruiter.com, through which customers can browse jobs and candidates, send applications and invites, and manage account details directly. Ziprecruiter serves an extensive customer base in the US, as well as in the UK.
Key Partners
Ziprecruiter works in close conjunction with a network of partner companies and organisations in the development and delivery of its services. These partners can be organised broadly into the following categories:
- Supplier and Vendor Partners, comprising suppliers of services, equipment, and technologies that are utilised in the development and implementation of the Company’s services and solutions;
- Software and Technology Partners, comprising software developers, including developers of applicant tracking systems, and technology companies that assist in the development and implementation of the Company’s various software offerings;
- Publishing and Affiliate Partners, comprising a range of online companies and websites that assist in marketing the Company’s services and solutions, driving traffic to the Ziprecruiter website in return for commissions;
- Distribution and Listing Partners, comprising various job board and job listing websites with which the Company collaborates to provide its users with access to an exhaustive list of jobs and candidates; and
- Strategic and Alliance Partners, comprising a range of companies across multiple sectors, with which the Company collaborates on arrange of projects, including in marketing, branding and development. Ziprecruiter has launched a number of partnerships in recent years. This includes a strategic partnership with Recruiterbox, a recruiting partnership with InfinityHR, and a software partnership with Greenhouse Software.
Key Resources
Ziprecruiter’s key resources are its proprietary technologies and intellectual properties, its online platform and software offerings, its IT and communications infrastructure, its support channels, its partnerships, and its personnel.
Searches of records published by the US Patent and Trademark Office identified no patent applications filed in the name of Ziprecruiter, either as applicant or assignee. Ziprecruiter additionally owns and or leases a number of physical properties that comprise its office and support centre network.
Cost Structure
Ziprecruiter incurs costs in relation to the development of its technologies and solutions, the development and maintenance of its online platform, the maintenance of its IT and communications infrastructure, the management of its partnerships, the procurement of professional services, the implementation of marketing and advertising campaigns, and the retention of its personnel.
Revenue Streams
Ziprecruiter generates revenue through the provision of various job search and recruitment services and solutions to individual jobseekers and commercial recruiters. The Company derives much of its revenue through the provision of paid services to commercial recruiters, including charging a small fee for posting job listings on its website. These Company’s premium offerings come in several pricing levels: Starter, Team, and Enterprise.
Ziprecruiter remains a privately-owned company and as such is not obliged to publish its financial results online. Research did not identify any reference to the Company’s most recent revenue figures; reports from 2014, however, suggest that the Company generates annual revenue in excess of $50 million.


Family/Friends List
Calender
Map It!
Card Creator
View notifications
Open user menu
Your Profile
Settings
Sign out
Open main menu
Family/Friends List
Calender
Map It
Card Creator
Sean Bordelon
<EMAIL_ADDRESS>View notifications
Your Profile
Settings
Sign out
Error Message
Family
Name
Relationship
Address
Birthday
Edit
Add Family/Friend
(Esc)
Add Friend/Family member
Close panel


I love SVG!
I love SVG!!!!
Several lines:
First line
Second line
It's a link to graphics tutorials!
SVG


In early 2003 Florence A. Rothman, age 87, underwent aortic valve replacement surgery. After initial improvement, she was transferred to an inpatient rehabilitation area where she experienced a gradual deterioration that was not recognized until she was desperately ill. She was transferred back to the regular hospital, appeared to have recovered and was discharged. Four days later she collapsed and was taken to the emergency department where she died because of a medical condition that could have been successfully treated if recognized.
Stunned by this unexpected turn of events, her sons, Michael and Steven Rothman, worked with the cooperation of hospital officials and staff to understand how their mother’s gradually deteriorating condition could have escaped notice. They spent 3 weeks observing the nurses and physicians and were immediately struck by the problems in continuity of care due to the number of "hand-offs" and the difficulty in understanding a patient's day to day condition. They were surprised to learn that the hospital’s sophisticated electronic medical records (EMR) system, while amassing substantial quantities of data over the course of an admission, generated very little information of a patient’s overall condition that might be used in communication between caregivers for continuity of care. The Rothmans vowed to find a way by which future patients might avoid their mother’s fate.
Although neither of the brothers was trained in medicine or health services research, they were no strangers to massive electronic databases. Michael Rothman, who holds a PhD in chemistry, spent much of his career as a computer scientist at the IBM Watson Research Laboratory and then became chief information officer for a major bank. Later he founded a company specializing in large data system design and analytics. Steven Rothman is an electrical engineer who began his career at the MITRE Corporation, a contract research organization spun-off from Massachusetts Institute of Technology. While working on aerospace projects in Colorado and New Mexico he became interested in oil and gas exploration and created a company that applied sophisticated computer analytics and data visualization to the analysis of seismic data.
With active support from the hospital, the Rothmans put their expertise to work exploring the EMR data repository. Their vision was to create algorithms that would utilize existing EMR data to track patient health status over time, and to present this information as simple and meaningful metrics, available to the clinician in near real time. Several years of effort culminated in the Rothman Index (Ri), a score of a patient’s general condition. This score is calculated automatically from information routinely collected in the EMR, and displayed in a graphical format that depicts the patients’ condition over time. These Ri graphs are now being used in hospitals, and long-term care facilities across the nation to help save lives and improve outcomes for millions of Americans.


| Volunteer Name | Volunteer Location | Volunteer Location | Volunteer Availabilty |
|---|---|---|---|
| [volunteer location] | [volunteer status] | [volunteer availabilty] | |
| [volunteer location] | [volunteer status] | [volunteer availabilty] | |
| [volunteer location] | [volunteer status] | [volunteer availabilty] |


JiBX fully supports working with inner classes, but there are a couple of
potential surprises in how these are handled. First off is the name representation.
The Java source code naming rules treat classes the same as packages, which leads to
some serious ambiguity. For instance, there's no way to determine whether the
class name org.jibx.Abc.Def
refers to a class Def
in the
package org.jibx.Abc
or to an inner class Def
of the
class org.jibx.Abc
. To avoid this ambiguity, JiBX uses the naming
rules Java applies in generated bytecode, where the character '$' is used as a
separator between a class name and the name of an inner class. So when you're
working with JiBX binding definitions, the class name org.jibx.Abc.Def
always refers to a class Def
in the package org.jibx.Abc
,
while the class name org.jibx.Abc$Def
always refers to an inner class
Def
of the class org.jibx.Abc
.
The second issue users sometimes run into when using inner classes with JiBX is that non-static inner classes can't be used directly for unmarshalling. This is because each non-static inner class instance contains a hidden reference to the "owning" outer class instance. You can still work with such non-static inner classes using JiBX, but you need to use a factory method to create an instance of the class (see User extension method hooks for details of working with factory methods).
You can use all types of enumerations with JiBX, including both "official" Java 5 enum types and various forms of typesafe enumerations which are compatible with earlier Java versions. Enumerations normally represent simple string values, so they're represented in the binding definition using a value element (though if you have an enumeration with complex structure, you can instead use a structure element just as you would for any other complex class).
Simple Java 5 enum types, where the value to be used in the XML representation
is the same as the enum name, are handled automatically by JiBX. If the value for
the XML representation is different from the enum name, you can use the
enum-value-method attribute of the binding value element (technically
part of the string attribute group) to tell
JiBX which method should be called to obtain the XML representation. The specified
method must take no parameters and return a String
value. This
method will be used both when marshalling, to get the text to output, and when
unmarshalling, to see if an enum instance matches the input text (with each enum
value checked in turn until a match is found).
Other types of enumerations require a little more work. Generally the idea of
an enumeration (especially type-safe enumerations) is that only one instance of
the enumeration type is created for each possible value. For JiBX to work with
such an enumeration type for unmarshalling, you need to define a static
deserialization method which takes a text value and returns the corresponding
enumeration instance (see the section Custom
serializers and deserializers on the next page of the tutorial for
details). If the enumeration type defines a toString()
method which
returns the text value used in the XML representation, you don't need to specify
anything special for marshalling (since JiBX uses the toString()
method by default for any object being marshalled as a value). If
toString()
does not return the value to be used in XML, you
also need to define a serialization method (again, see
Custom serializers and deserializers
for details).
If an enumeration type is used in more than one place in your binding, you may want to use a format definition for the type. Doing this allows you to specify the added information in just one place, and then have it used automatically everywhere that type is referenced. See the User extension method hooks section of the next page for details.
The binding element that's the root of every binding definition supports several attributes that control the overall operation of JiBX when working with that binding. Two of these attributes are worth special mention as part of this tutorial.
The direction attribute lets you define one-way bindings, supporting either unmarshalling XML to your object classes (direction="input") or marshalling your object classes to XML (direction="output"). If you only need to go in one direction this can simplify your binding definition and sometimes even your code, since you don't need to define binding attributes that are only used for the other direction. By default, you always need to provide all necessary information for going in both directions.
The track-source attribute lets you add source position tracking
when unmarshalling. This can be useful when you want to be able to relate
unmarshalled objects back to particular locations in an input document (as when
reporting errors to a user, for instance). If you use track-source="true",
the binding compiler will add code to each of your bound object classes to
implement the org.jibx.runtime.ITrackSource
interface, and will set
the source position information for each unmarshalled object. You can then
access the source position information (in terms of document name, line number,
and column number) using the methods provided by the interface (though you'll
need to cast your objects to the interface type in order to do this, since the
interface will not be visible at compile time).
See the <binding> element details page for information on all the available options.
Namespaces are an increasingly important part of working with XML. JiBX provides full support for namespaces, though the namespace element and the ns attribute for element and attribute names. Figure 18 gives a simple example of a document with two namespaces defined.
Figure 18. Working with namespacesHere the first namespace element in the binding definition sets the http://www.sosnoski.com/ns1 namespace as the default for elements within the context of the customer mapping. This is equivalent to a standard default namespace definition in XML, which is what JiBX creates when marshalling using this mapping. The portions of the diagram relating to this namespace are highlighted in blue.
The second namespace element sets the http://www.sosnoski.com/ns2 namespace as the default for both elements and attributes within the context of the person mapping. This makes the namespace automatically apply to every name definition unless you override it with a specific namespace using the ns attribute. The use of this namespace is highlighted in green in the diagram.
If you have namespace definitions that apply to the entire XML document you can just define these directly as children of the binding element. The effect of placing a definition there is the same as if it were included separately within each top-level mapping definition.
See the <namespace> element details page for more information on working with namespaces in bindings.
The include element provides a way to structure your binding definitions to be more modular and reusable by letting you break them up into pieces. See the <include> element details page for more information on using this type of modular definition structure, including how namespaces work in combination with included bindings.
You should also keep in mind that you can use multiple bindings with a single set of classes. The only requirement to do this is that all the bindings must be compiled at the same time - if you compile bindings separately, the last one compiled will wipe out the information from the earlier bindings. This ability to work with multiple bindings is an important aspect of JiBX's flexiblity, allowing such uses as working with multiple versions of XML documents in a single set of Java classes (unlike other frameworks, which would generally require a separate set of classes for each version of the documents).


september 4, 2015
Things I'm expecting not to have during Phase 1: free time, a stocked refrigerator, confidence in my coding abilities, a boyfriend. What I do expect to have a lot of during Phase 1: questions. Having questions is an important part of learning, and asking good questions will lead to better answers and ultimately a stronger grasp of the material. So what makes a good question?
For me, the most important aspect of a good question is specificity. Simply stating, "I'm confused," is not enough context for someone to help you. You should be able to clearly state your problem and what you don't understand. Refer to specific lines of code where possible. Describe the errors you're getting. Explain what you thought would happen and what's happening instead. Vague questions will get you vague answers.
While being specific is important, so is being succinct. No one likes a rambler. If you're posting your question on a forum, people will pass it without reading. In person, don't be surprised if you get interrupted or asked to get to the point. In fact, a verbose question can be even more confusing than a vague one. Try to give just enough information to be helpful, but leave out the irrelevant details.
This last part is for written questions only: for the love of god, proofread! Spelling, grammar, and punctuation are important both in effectively communicating your question, and in life. Reread your question before you post it, and pretend like you're seeing it for the first time. Does it make sense? Have you included all necessary information? Would you answer the question if you saw it being asked?
Great, so we're professional question askers. Now what? Well, now we must conquer our fear of looking stupid and start actually asking the questions. 🙈 That's a whole 'nother blog post, y'all.


Please login to create a subscription
After you sign in, the application gets an access token with permission to create calendar events based on newly created/invited events.


Frontier organizations
This is a list of organizations engaged in various
things advanced and frontierish.
(This means grand-scale futurism, philosophy, personal
and social liberation, and advanced technology). I am working hard to make it complete.
Note: I also include a few organizations here which are
strong or extremist or just interesting enough to know; please do not
consider every entry here as my endorsement.
World Future Society
(Greater Boston Chapter) WFS is the largest organization of professional
futurists in the world. While not as visionary as Extropy Institute, it is
engaged in a number of interesting activities. The Boston Chapter Website
has many links of futurist interest.
Edge Foundation - except for the Clock, has some interesting people and projects
The Leri Institute for Much Higher Learning, founded in early 1998,
presents the results of its various studies in metaphilosophy, aesthetic
mindwarping, and of course, transtemporal experience (among other
things)....
MENSA Your IQ should be higher than that of 98% of American population.
This requirement makes MENSA one of the easiest groups on this list to join.
Still, it has a number of interesting activities and interest groups.


We have been approached to study the feasibility of deploying self-driving cars to compete with yellow taxis in NYC. The thought is that self-driving cars will be more profitable since there will be no need to pay a driver or tip the driver. We will study NYC yellow taxi traffic patterns; specifically, we will look at the drop-off and pick up locations in order to predict where to deploy the self-driving cars.
Questions: What are the most profitable zones to deploy our vehicles and at what time of day?
What drop-off and pick-up locations/zones have the most taxi traffic?
Hypothesis: If Monday-Friday has high zone locations over the course of 10 years then we can predict when and where to send our cars so that it is most profitable.
Data was sourced from Google’s public BigQuery data set for New York Taxi. The original data set from 2015 was over 146 million entries. Source data was reduced to slightly over 11.5 million from July 2015 only and then explored and cleaned. Considerations for cleaning included rides paid by credit card for standard, JFK, and Newark fares only. These were cleaned for longitude/latitudes within the region, rides between one-half mile and 250 miles, rides between 2 and 180 minutes in length, and fares between $1 and $250. This dropped the data set down to 6.75 million rides with limited outliers and no null points. Data could be manipulated in a multitude of additional ways to continue to shrink the data set as needed.
Some of our limitations include: memory, learning Google BigQuery on the fly, learning the Google Cloud environment, and working with a big data set.
As expected fare_amounts are correlated with trip_distance. Our predicted output is $10.66. We used three models namely; linear regression, LASSO and RandomForest. All models produced very similar results. Based on our set our models did well with MSE of 8.819 and r2 of .894 for both the linear regression and Lasso models. The RandomForest model gave use MSE of 8.69 and r2 of .896.
TLC Yellow Taxi dataset from Google BigQuery
GitHub: https://github.com/claridyd/NYC_taxi_analysis


SyncroSim is a software platform that helps you turn your data into forecasts. At the core of SyncroSim is an engine that automatically structures your existing data, regardless of its original format. SyncroSim transforms this structured data into forecasts by running it through a Pipeline of calculations (i.e. a suite of models). Finally, SyncroSim provides a rich interface to interact with your data and models, allowing you to explore and track the consequences of alternative “what-if” forecasting Scenarios. Within this software framework is the ability to use and create SyncroSim packages.
For more details consult the SyncroSim online documentation.
rsyncrosim
The simplest way to run SyncroSim from the command-line is to use the R programming language, in conjunction with the open-source rsyncrosim R package. This R package is designed to make it simple to script modeling workflows for SyncroSim in R, by providing functions that allow users to create models from scratch, populate those models with inputs, run the models for multiple scenarios, and access both spatial and tabular model output. The package is designed to work with any SyncroSim Package.
A key feature of the rsyncrosim package is its ability to work seamlessly with the SyncroSim user interface. By integrating model scripting and visualization, users can interactively explore and validate their models in the user interface as they step through their R code, and at the same time generate a permanent, repeatable record of their entire modeling workflow – including both pre- and post-processing of model inputs and outputs – in an R script.


What started as a hobby turned into more; I decided to go for it,
and it has been a great decision to focus on development, allowing me to create so much!
Miwako Krajewski
Web Developer
Contact Info
<EMAIL_ADDRESS>https://www.linkedin.com/in/miwakokrajewski
Budjetz
User-friendly Budgeting App
Group project focusing on developing skills and researching new areas, including D3.js and Optical character recognition (OCR) technologies.
Date: December 2016
Client: DevMountain Group Project
Category: Project; Ionic
My Garden
A harvesting app that puts vital information at your fingertips
A personal project made in order to have harvesting information with ease. Browse vegetables that you are or would like to grow, read their vital information, and save them to your garden page for further perusal, where you can
take notes, add/delete, and keep track of your plant growth.
Date: December 2016
Client: DevMountain Personal Project
Category: Project; Ionic
ArTinder
Art Discovery Site
A responsive website built on the idea that discovering new art can be fun.
Save an image and info to your account with the heart button or dismiss it with the X. There's always a new image around the corner that might peak your interest!
Date: November 2016
Client: DevMountain Personal Project
Category: Project; Angular
Kami Neko (Paper Cats)
E-Commerce Site
E-commerce site focused on a clean, playful design inspired by the cat drawings being sold. Includes animated cat images utilizing sprites made with pen, paper, and photoshop. The CSS animations add dimension to the page, interacting
with the user.
Escape is a free PSD web template built by Mathavan Jaya. Escape is a one page web template that was designed with agencies in mind. This template is ideal for those looking for a simple
one page solution to describe your business and offer your services.
You can download the PSD template in this portfolio sample item at FreebiesXpress.com.
Project Name
Lorem ipsum dolor sit amet consectetur.
Dreams is a free PSD web template built by Mathavan Jaya. Dreams is a modern one page web template designed for almost any purpose. It’s a beautiful template that’s designed with the Bootstrap
framework in mind.
You can download the PSD template in this portfolio sample item at FreebiesXpress.com.


Build the experiment files
build_experiment( timeline, path, experiment_folder = "experiment", data_folder = "data", experiment_title = NULL, jsPsych_path = file.path(system.file("extdata", "jsPsych", package = "jaysire")), resources = NULL, columns = NULL, ... )
| timeline | A timeline object |
|---|---|
| path | A string specifying the path in which to build the experiment |
| experiment_folder | A string specifying the experiment subfolder |
| data_folder | A string specifying the data subfolder |
| experiment_title | A string specifying the title of the experiment |
| jsPsych_path | A string specifying the path to jsPsych |
| resources | A tibble specifying how to construct resource files, or NULL |
| columns | Additional data values (constants) to store |
| ... | Arguments to pass to jsPsych.init() |
Invisibly returns NULL
The build_experiment()
function is used to build the actual jsPsych
experiment from the abstract description contained in the timeline
argument.
The input for the timeline
argument should be a timeline constructed using
build_timeline()
and the path
argument should specify the
path to the folder in which the experiment files should be created. If the
experiment needs to rely on resource files (e.g., images, audio files etc) then
the resources
argument should be a tibble containing the information needed
to copy those files to the appropriate location. The easiest way to do so is by
using the build_resources()
function: see the documentation for that
function for a more detailed description of what this tibble should contain.
When called, the build_experiment()
function writes all the experiment files,
compiled to javascript and HTML. The file structure it creates is as follows. Within
the path
folder are two subfolders, data_folder
and
experiment_folder
(named "data" and "experiment" by default). The
data_folder
folder is empty, but intended to serve as a location to which
data files can be written. The experiment_folder
folder contains the
"index.html" file, which is the primary source file for the experiment page, and an
"experiment.js" file that specifies the jsPsych timeline and calls the
jsPsych.init() javascript function that starts the experiment running. It also
contains a "resource" folder with other necessary files (see
build_resources()
for detail). If specified, experiment_title
will set the name of the experiment as the title of the HTML file in "index.html".
jsPsych_path
is a string that specifies the path to jsPsych.
Because build_experiment()
creates the call to jsPsych.init(), it can also
be used to specify any parameters that the user may wish to pass to that function
via the ...
. There are quite a number of parameters you can specify this way:
display_element
is a string specifying the ID of an HTML element
to display the experiment in. If left blank, jsPsych will use the <body> element
to display content. All keyboard event listeners are bound to this element. In
order for a keyboard event to be detected, this element must have focus (be the
last thing that the subject clicked on).
on_finish
is a javascript function that executes when the experiment
ends. It can be constructed manually using insert_javascript()
, but
in many cases there is a jaysire function that will create the appropriate function
for you. For example, if you want the data to be saved locally at the end of the
experiment you can set on_finish = save_locally()
, whereas if you
want the data to be saved to the Google Datastore you can set
on_finish = save_googlecloud()
.
on_trial_start
is a javascript function that executes when a
trial begins.
on_trial_finish
is a javascript function that executes when a
trial ends.
on_data_update
is a javascript function that executes
every time data is stored within the jsPsych internal storage.
on_interaction_data_update
is a javascript function that executes
every time a new interaction event occurs. Interaction events include clicking
on a different window (blur), returning to the experiment window (focus),
entering full screen mode (fullscreenenter), and exiting full screen mode
(fullscreenexit).
on_close
is a javascript function that executes when the user
leaves the page. This can be used, for example, to ensure that data are saved
before the page is closed.
exclusions
is used to specify restrictions on the browser the
subject can use to complete the experiment. See list of options below.
show_progress_bar
is a javascript logical value. If true, then
a progress bar is shown at the top of the page.
message_progress_bar
is a string containing a message to display
next to the progress bar. The default is 'Completion Progress'.
auto_update_progress_bar
is a javascript logical value. If true,
then the progress bar at the top of the page will automatically update as
every top-level timeline or trial is completed.
show_preload_progress_bar
is a javascript logical value. If true,
then a progress bar is displayed while media files are automatically preloaded.
preload_audio
is a javascript array of audio files to preload before
starting the experiment.
preload_images
is a javascript array of image files to preload
before starting the experiment.
preload_video
is a javascript array of video files to preload
before starting the experiment.
max_load_time
is a numeric value specifying the maximum number
of milliseconds to wait for content to preload. If the wait time is exceeded
an error message is displayed and the experiment stops. The default value is
60 seconds.
max_preload_attempts
is numeric value specifying the maximum
number of attempts to preload each file in case of an error. The default
value is 10. There is a small delay of 200ms between each attempt.
use_webaudio
is a javascript logical. If false, then jsPsych will
not attempt to use the WebAudio API for audio playback. Instead, HTML5 Audio
objects will be used. The WebAudio API offers more precise control over the
timing of audio events, and should be used when possible. The default value
is true.
default_iti
is a numeric value setting the default inter-trial
interval in milliseeconds. The default value if none is specified is 0.
experiment_width
is a numeric value setting the desired width
of the jsPsych container in pixels. If left undefined, the width will be
100% of the display element. Usually this is the <body> element, and the
width will be 100% of the screen size.
Note: as of the current writing not all of these have been tested (even informally) through jaysire. Please report any unexpected behaviour by opening an issue on the GitHub page.


Version
About Turtle:
Turtle is based on Electron WebView, which means it has all the features of the modern web.
Access tabs by pressing
alt
.
Access the window controls by scolling up.
Access the navigation at the bottom.


It’s official – we have legal sign off on a single licensing strategy for DataSF! Going forward, all data will be released under the friendly, no obligation Public Domain Dedication License (PDDL). Read the super cute friendly description.
Ouch! Too many licenses
One of our early goals was to remove ambiguity about how we license our data. Data on DataSF was available under 7 licenses.
Table: Data Licensing on DataSF as of Summer 2014
| License | Dataset Count |
|---|---|
| Creative Commons 1.0 Universal | 348 |
| Creative Commons Attribution 3.0 Unported | 2 |
| Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported | 6 |
| Creative Commons Attribution-Share Alike 3.0n Unported | 83 |
| Open Database License | 1 |
| Public Domain | 145 |
| None | 296 |
Why this is a problem:
- No logic or underlying strategy
- Inconsistent obligations for data users – some have to attribute, some don’t, why?
- Scared off corporate users with legal teams
For now, some of these licenses will have to stay in place, but as we reissue our existing datasets, we’ll migrate them to the new license.
Why PDDL?
Our research review of licensing, highlighted three key issues that pushed us in this direction:
- Licenses designed for data. Content licenses didn’t have the special considerations needed for data. So we narrowed our choices to those designed for datasets.
- Attribution stacking. Let’s say you are building an app and use data from us, another city, and the feds but this data gets all munched together and represented and re-represented. And then someone else grabs it and reuses. Pretty soon you have 40 things to attribute and it’s just ugly. And how will we even enforce that? If you note us as a source, that’s awesome, but gosh, don’t mess up your UI doing it.
- License interoperability. When you’re mushing data together, we want to minimize the overhead of managing multiple licenses. If other open data releases insist on more restrictive licenses, you’ll have to deal – but we don’t want to be a drag.
We also heard from companies that having no license is ambiguous and annoying.
Learn more about our thinking
- Licensing Open Data: Resources and Practices (gdoc). Research conducted by our intern (Peri Weisberg/rock star) on data licensing options available and considerations for deployment in San Francisco.
- Licenses – Inventory (gsheet). Inventory of available licenses we reviewed and licensing policies across cities and states.
- Licensing Open Data: A practical guide (PDF). Our favorite resource on licensing we uncovered during our research.
A note on ensuring PDDL
One of the things our research suggested was that enforcing licensing standards was an issue. So we’ll simply take it out of the equation. Right now, we’ll enforce through policy and process. But once Socrata implements some needed metadata improvements, we’ll make it a technical control on our portal.