How to Use This Container ...
{% if development_mode %}
Your container seems to be running in development mode. In this mode,
the container infrastructure is "wrapped" around your development files,
which are currently located in {{ env.APPS_DIR }}.
{% else %}
This container seems to be running in "production mode" where the application is
fully contained within the container. This is great for a deployed app,
but if you want to customize the environment, and add your own app, you'll
want to create a "development directory" on your local host like this:
$ docker run -i chapdev/alpine-nginx-django --task get-chaplocal | sh ... creates a 'chaplocal' script in the current directory ... $ ./chaplocal workdir ... builds a development directory in 'workdir' and starts a shell ... bash-4.3$
Once you done that, the container then "wraps" your development directory and the
container will retain all the infrastructure while all your app development
can be done in your host directory, under your own account.
{% endif %}
During development, you can just work directly on your Docker host while the container
provides the infrastructure. Later, you can bundle it all in a production container which
is either fully self-contained or designed to to be ephemeral and work with other persistent
containers or services.
You'll find all the application-specific configuration and source files in {{ env.APPS_DIR }}/www:
$ cd {{ env.APPS_DIR }}/www
{{ ls_output|safe }}
A few things to know:
django_sample
This is the complete app you're looking at now. This is where all the static
files as well as source code are stored. However, if you look at the settings,
you'll see that the database and media directories are stored in the
VAR_DIR directory (currently {{ env.VAR_DIR }}). This makes it
possible to run the container and have the app stored inside the container
while data is stored on external storage.
sites.d
All of the Nginx configuration files are stored here, and are automatically
read by the Nginx webserver when it starts.
uwsgi.d
This directory contains the uWSGI start-up scripts. Generally
there will be one script set up here for each application defined.
Since it rare that anyone will create multiple applications inside
a Docker container, it's likely you'll just be able to modify
the existing files to suit your purposes without adding any additional ones.
See the Resources page for more information.


Welcome to TCNJ Parking Assistant!
Home
TCNJ Parking
About
Students
Parking Lot #
Spots Open
1
All
2
All
3
0
4
All
5
Closed
6
5
Refresh
Faculty
Parking Lot #
Spots Open
7
Closed
8
All
9
5
10
All
11
All
12
0
Refresh
Visitors
Parking Lot #
Spots Open
13
All
14
All
15
0
16
0
17
All
18
0
Refresh
Stats
What Am I supposed to put here?
Map
Testing....


I haven't yet sanitized inputs, so for now, use the card form "XyXyXyXyXy" - where X equals a number or A, K, Q, J, T (T = 10), and s, h, d, c for suits. It only works without spaces. AcKhThTc4s is a valid hand of Ace of clubs, King of Hearts, 10 of hearts, 10 of clubs, and 4 of spades.
Evaluate Hand
Compare Two Hands
Grab Seven Random Cards and make the best possible Holdem Hand. If the hand is trips or better, the text will turn red.


Senior China diplomat says Beijing will never allow anyone to destroy HK's stability
BEIJING: China resolutely opposes US lawmakers' passing of a Hong Kong human rights Bill and will never allow anyone to destroy Hong Kong's prosperity and stability, senior Chinese diplomat Wang Yi said on Thursday (Nov 21).
China's foreign ministry said in a statement that Wang, China's state councillor, told former US Secretary of Defense William Cohen during a meeting in Beijing that China will never allow anyone to undermine its "one country two systems" principle.


| OLD line(s): 1313
<Description>PartVII, Lines 3, 4, or 5 = "Yes"?</Description> | NEW line(s): 1313
<Description>Part VII, Lines 3, 4, or 5 = "Yes"?</Description> |
| OLD line(s): 2645
<Description>Noncash contributions, attach Schedule M</Description> | NEW line(s): 2645
<Description>Noncash contributions</Description> |
| OLD line(s): 4072
<LineNumber>Part VIII - Column (A)</LineNumber> | NEW line(s): 4072
<LineNumber>Part VIII Column (A)</LineNumber> |
| OLD line(s): 4082
<LineNumber>Part VIII - Column (B)</LineNumber> | NEW line(s): 4082
<LineNumber>Part VIII Column (B)</LineNumber> |
| OLD line(s): 4092
<LineNumber>Part VIII - Column (C)</LineNumber> | NEW line(s): 4092
<LineNumber>Part VIII Column (C)</LineNumber> |
| OLD line(s): 4102
<LineNumber>Part VIII - Column (D)</LineNumber> | NEW line(s): 4102
<LineNumber>Part VIII Column (D)</LineNumber> |


#include <db_cxx.h>int Db::del(DbTxn *txnid, Dbt *key, u_int32_t flags);
The Db::del method removes key/data pairs from the database. The key/data pair associated with the specified key is discarded from the database. In the presence of duplicate key values, all records associated with the designated key will be discarded.
If the file is being accessed under transaction protection, the txnid parameter is a transaction ID returned from DbTxnMgr::begin, otherwise, NULL.
The flags parameter is currently unused, and must be set to 0.
The Db::del method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success, and DB_NOTFOUND if the specified key did not exist in the file.
The Db::del method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: Db::cursor, DBcursor->c_close(3), DBcursor->c_del(3), Dbc::get, __account_page(3), dbenv->db_paniccall(3), fflush(3), fprintf(3), free(3), func(3), hcp->dbc->dbp->h_hash(3), DbLockTab::get, DbLock::put, DbLockTab::vec, DbLog::put, malloc(3), memcmp(3), memcpy(3), memmove(3), DbMpoolFile::get, DbMpoolFile::put, DbMpoolFile::set, memset(3), realloc(3), strerror(3), vfprintf(3), and vsnprintf(3).
In addition, the Db::del method may fail and throw an exception or return errno for the following conditions:


{% extends 'authentication/pages/base.html' %} {% block title %}Welcome | Reset Password{% endblock %} {% block formheading %}Email sent{% endblock %} {% block content %}
An email has been sent to you with further instructions for how to reset your password.


@Inject\n protected DataBinder<Customer> dataBinder;\n
@Bindable\n public class Customer {\n \n private String name;\n \n private Address address;\n \n ...\n }


crux barista
Description:
Barista is a protein identification algorithm that combines two different tasks—peptide-spectrum match (PSM) verification and protein inference—into a single learning algorithm. The program requires two inputs: the results of a database search and a database of proteins. Barista produces as output a ranking of proteins based on how likely they are to be present in the sample. Barista also re-ranks the peptide identifications to more accurately distinguish between correct and incorrect identifications. Barista uses a machine learning strategy that requires that the database search be carried out on target and decoy proteins.
Usage:
crux barista [options] <protein database folder> <sqt folder> <ms2 folder>
crux barista [options] <list of protein database files> <list of sqt files> <list of ms2 files>
crux barista [options] <protein database file> <sqt file> <ms2 file>
Required Input:
Output:
- protein database – The program requires the protein database files against which the search was performed. The protein database input may be a concatenated database or separate target and decoy databases. However, in both cases, the program distinguishes between target and decoy proteins based on the decoy prefix. There is an option to specify the prefix to the protein name that indicates a decoy, the default is "random_". The format of the input can be a directory containing the database files, a text file with a list of protein database files or a single database file. If the protein database input contains suffix "fasta", the program assumes a single-file input. Otherwise it checks whether the input is a directory or a text file.
- psm input – Barista recognizes sqt format for psm input. The psm input can be specified as a single file with suffix "sqt" and should be accompanied by the corresponding ms2 file as a third required argument. Alternatively, psm input can be given as a text file containing the list of all the "sqt" files and should be accompanied by the text file with the list of the corresponding ms2 files as a third required argument. Finally, the psm input can be specified as a directory in which all the database search results are located. In this case, the program collects all the files with prefix "sqt" contained in the directory and analyses them jointly. As it finds each sqt file, it simultaneously searches the ms2 input directory for an ms2 file with the same name, but with the suffix "sqt" replaced with suffix the "ms2". The multiple files can be results of many different experiments or of multiple duplicate runs. They can also be the result of separate target and decoy searches. All such files in the given directory are analyzed jointly.
- ms2 input – The ms2 input can be specified as a single file with suffix "ms2" and as a text file containing the list of all the ms2 files and or as a directory where all the ms2 files corresponding to the psm input in the second argument can be found.
Options:
The program writes files to the folder
crux-output
by default. The name of the output folder can be set by the user using the--output-dir
option. The following files will be created:- barista.target.html: an HTML file that summarizes the protein ranking in a human-readable format. Sets of indistinguishable proteins are grouped together, and their IDs are printed along with the Barista q-value. Along with each protein group is a list of the corresponding peptides. The information about each peptide includes its amino acid sequence, scan and charge of the peptide, its position in the protein, the q-value and score assigned by Barista. Following is a portion of a sample output file, showing the identification of a pair of proteins:
q-value score ID Peptides Matched Description 0.001 1.25 foo 12 3 Phosphotyrosine glutamate transporter foobar 7 3 Phosphotyrosine glutamate transporter (N-terminal domain)
EAMPK scan=000230 charge=2 20-24 q=0.07 score=1.27 YRMLK scan=004870 charge=2 27-31 q=0.09 score=1.05 NLMMRPPK scan=006790 charge=3 54-61 q=0.59 score=-0.09
- barista.target.proteins.txt: a tab-delimited file containing a ranked list of groups of indistinguishable target proteins with associated Barista scores and q-values and with peptides that contributed to the identification of the protein group). The following columns are included: proteins in group, Barista score, decoy q-value, peptides with scan and charge (for example, EAMPK-001285.2). The semantics of these columns are explained in this document.
- barista.target.peptides.txt: a tab-delimited file containing a ranked list of target peptides with the associated Barista scores and q-values. The following columns are included: peptide, scan of spectrum in the peptide-spectrum match, charge of spectrum in the peptide-spectrum match, Barista score, decoy q-value. The semantics of these columns are explained in this document.
- barista.target.psm.txt: a tab-delimited file containing a ranked list of target peptide-spectrum matches with the associated Barista scores and q-values. The following columns are included: scan of spectrum in the peptide-spectrum match, charge of spectrum in the peptide-spectrum match, peptide in the peptide-spectrum match, Barista score, decoy q-value, the filename where each psm was found. The semantics of these columns are explained in this document.
--enzyme trypsin|chymotrypsin|elastase
– The enzyme used to digest the proteins in the experiment. Default = trypsin.--decoy-prefix <string>
– specifies the prefix of the protein names that indicates a decoy.--fileroot <string>
– Thefileroot
string will be added as a prefix to all output file names. Default = none.--output-dir <filename>
– The name of the directory where output files will be created. Default = crux-output.--skip-cleanup <T/F>
– Barista analysis consists of preprocessing data and creating lookup tables which are then used during training. This option allows keeping the tables after the analysis and doing training directly by specifying the --dir-with-tables option (see below). Default = F.--dir-with-tables <filename>
– The name of the directory where the lookup tables with preprocessed data are located. Default = none.
Crux home


A FRIEND IN NEED
Home Care, LLC
Providing excellent and accessible resources that improve the quality of life for seniors, their families, caregivers, and the community. Responding to the changing needs of the community through education, acts of service, and outreach programs for aging seniors.
Call today to schedule an assessment.
Our Services
Errands
Doctor's appointments
Medication reminders
Pharmacy
Dry cleaners
Household
Grocery List Planning
Meal Preparation
Light Housekeeping
Companionship
Activities & Social Engagements
Overnight Care
8 & 12-hour shifts
Customizable shifts for 24 hours or more
How we got started
I started thinking about doing home care back in 1998 when my father’s mother took ill. Seeing her placed in a nursing care facility because there was no space or time to care for her broke my heart. I was just 15 years-old at the time and vowed to put myself in a position to help those who are unable to help themselves.
Hearing the stories on the news about seniors and those with disabilities being abused helps me to not only research my community's needs but be the change I want to see as well.
A Friend In Need Home Care is committed to providing superior personal care services at the lowest possible cost while maintaining the highest level of respect, dignity, and appreciation for our customers and their family members.


Latest Changes
App v1.0 - Express Compatibility
App v0.9 - Maintenance
App v0.8 - New Features
App v0.7 - Admin UI Added
App v0.6 - Security Bugs
App v0.5 - Add Authentication Module
Everything App
Documentation
Quick Start
Recipes
Community
Press
Blog
The App Newsletter
We'll never share your email with anyone else.
Subscribe
Star
Follow @


--- layout: post permalink: theheadsetbuddy.html Tags: Array NameOfCoupon: The Headset Buddy Cash Back Summary: See our The Headset Buddy Coupon Code, The Headset Buddy Rebate, The Headset Buddy Promo Code, The Headset Buddy Discount, The Headset Buddy Coupon Cash Back Rebate here. MetaKeywords: The Headset Buddy Coupon Code, The Headset Buddy Rebate, The Headset Buddy Promo Code, The Headset Buddy Cash Back Rebate, The Headset Buddy Discount, The Headset Buddy Coupon Image: images/24694.jpg LinkURL: http://www.shareasale.com/r.cfm?b=199830&u=412002&m=24694 affiliate_url_link: http://www.icouponblog.com/jane.php?id=271 thesis_readmore: See the The Headset Buddy Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=theheadsetbuddy.com Title: Save 12.5% - The Headset Buddy Coupon Code for theheadsetbuddy.com. The Headset Buddy Rebate & Discount thesis_description: Our The Headset Buddy Discount Coupon Code for theheadsetbuddy.com. We have the best The Headset Buddy Rebate anywhere. thesis_keywords: The Headset Buddy, The Headset Buddy Coupon Code, The Headset Buddy Discount, The Headset Buddy Rebate product_name: The Headset Buddy hop_url: http://www.icouponblog.com/hop.php?id=271 ---
Once you use The Headset Buddy, you’ll never carry around the jumbled mess of headphones and wires with you ever again. The Headset Buddy will become your ultimate companion. Perhaps you’re working out at the gym with your ipod when you suddenly need to join your colleagues on a Skype conference call. Don’t be late looking for the right headset. Whip out The Headset Buddy and be on time! Leave being late to Tom from accounting who never did buy The Headset Buddy.
No doubt you’ll love The Headset Buddy. The only thing you’ll love more is the money you’ll save with The Headset Buddy Coupon above. That’s right. Use your The Headset Buddy Coupon to access your The Headset Buddy Rebate on your The Headset Buddy purchase. The next time you take a peek into your backpack, you’ll be glad to find just one headset with The Headset Buddy, and some extra dollar bills in your wallet!


Home
Venue and rooms
Studios
Gear
View Prices
Book with us
FAQ
Contact us
Price Finder
Here you can get a rough price estimate before booking
What would you like to book?
I want to book a Venue or Room
I want to book a Studio
I want to hire Gear
Who is this booking for?
Community/Non-profit
Corporate
Which Venue or Room do you want to book?
Mainroom (including foyer area)
Cafe stage/ Lounge (including foyer area)
Gallery
Meeting room
Select a studio rehearsal room or book a recording session?
Lorde's Room
Crowded House Room
Six60 Room
Recording
Which Equipment do you want to hire?
Small PA package (Under 75 people)
Medium PA package (75 or more)
Book with us now


Datasets
Code
Latest News!
C. Sagonas, E. Antonakos, G, Tzimiropoulos, S. Zafeiriou, M. Pantic. 300 faces In-the-wild challenge: Database and results. Image and Vision Computing (IMAVIS), Special Issue on Facial Landmark Localisation "In-The-Wild". 2016.
C. Sagonas, G. Tzimiropoulos, S. Zafeiriou, M. Pantic. 300 Faces in-the-Wild Challenge: The first facial landmark localization Challenge. Proceedings of IEEE Int’l Conf. on Computer Vision (ICCV-W), 300 Faces in-the-Wild Challenge (300-W). Sydney, Australia, December 2013.
C. Sagonas, G. Tzimiropoulos, S. Zafeiriou, M. Pantic. A semi-automatic methodology for facial landmark annotation. Proceedings of IEEE Int’l Conf. Computer Vision and Pattern Recognition (CVPR-W), 5th Workshop on Analysis and Modeling of Faces and Gestures (AMFG 2013). Oregon, USA, June 2013.
300-W
The first Automatic Facial Landmark Detection in-the-Wild Challenge (300-W 2013) to be held in conjunction with International Conference on Computer Vision 2013, Sydney, Australia.
Organisers
Georgios Tzimiropoulos, University of Lincoln, UK
Stefanos Zafeiriou, Imperial College London, UK
Maja Pantic, Imperial College London, UK
Scope
Automatic facial landmark detection is a longstanding problem in computer vision, and 300-W Challenge is the first event of its kind organized exclusively to benchmark the efforts in the field. The particular focus is on facial landmark detection in real-world datasets of facial images captured in-the-wild. The results of the Challenge will be presented at the 300-W Faces in-the-Wild Workshop to be held in conjunction with ICCV 2013.
A special issue of Image and Vision Computing Journal will present the best performing methods and summarize the results of the Challenge.
The 300-W Challenge
Landmark annotations (following the Multi-PIE [1] 68 points mark-up, please see Fig. 1) for four popular data sets are available from here. All participants in the Challenge will be able to train their algorithms using these data. Performance evaluation will be carried out on 300-W test set, using the same Multi-PIE mark-up, and the same face-bounding box initialization.
Figure 1: The 68 and 51 points mark-up used for our annotations.
Training
The datasets LFPW [2], AFW [3], HELEN [4], and XM2VTS [5] have been re-annotated using the mark-up of Fig 1. We provide additional annotations for another 135 images in difficult poses and expressions (IBUG training set). Annotations have the same name as the corresponding images. For LFPW, AFW, HELEN, and IBUG datasets we also provide the images. The remaining image databases can be downloaded from the authors’ websites. All annotations can be downloaded from here.
Participants are strongly encouraged to train their algorithms using these training data. Should you use any of the provided annotations please cite [6] and the paper presenting the corresponding database.
Please note that the re-annotated data for this challenge are saved in the matlab convention of 1 being
the first index, i.e. the coordinates of the top left pixel in an image are x=1, y=1.
Testing
Participants will have their algorithms tested on a newly collected data set with 2x300 (300 indoor and 300 outdoor) face images collected in the wild (300-W test set). Sample images are shown in Fig 2 and Fig 3.
Figure 2: Outdoor. |
Figure 3: Indoor. |
300-W test set is aimed to test the ability of current systems to handle unseen subjects, independently of variations in pose, expression, illumination, background, occlusion, and image quality.
Participants should send binaries with their trained algorithms to the organisers, who will run each algorithm on the 300-W test set using the same bounding box initialization. This bounding box is provided by our in-house face detector. The face region that our detector was trained on is defined by the bounding box as computed by the landmark annotations (please see Fig. 4).
Figure 4: Face region (bounding box) that our face detector was trained on.
Examples of bounding box initialisations along with the ground-truth bounding boxes are show in Fig. 5. We provide the bounding box initialisations, as produced by our in-house detector, for each database of the training procedure. Additionaly the bounding boxes of the ground truth are given.
Figure 5: Examples of bounding box initialisations for images from the test set of LFPW.
Participants should expect that initialisations for the 300-W test set are of similar accuracy.
Each binary should accept two inputs: input image (RGB with .png extension) and the coordinates of the bounding box. Bounding box should be a 4x1 vector [xmin, ymin, xmax, ymax] (please see Fig. 6). The output of the binary should be a 68 x 2 matrix with the detected landmarks. This matrix should be saved in the same format (.pts) and ordering as the one of the provided annotations.
Figure 6: Coordinates of the bounding box (the coordinates of the top left pixel are x=1, y=1).
Facial landmark detection performance will be assessed on both the 68 points mark-up of Fig 1 and the 51 points which correspond to the points without border (please see Fig1). The average point-to-point Euclidean error normalized by the inter-ocular distance (measured as the Euclidean distance between the outer corners of the eyes) will be used as the error measure. Matlab code for calculating the error can be downloaded from http://ibug.doc.ic.ac.uk/media/uploads/competitions/compute_error.m. Finally, the cumulative curve corresponding to the percentage of test images for which the error was less than a specific value will be produced. Additionally, fitting times will be recorded. These results will be returned to the participants for inclusion in their papers.
The binaries submitted for the competition will be handled confidentially. They will be used only for the scope of the competition and will be erased after the completion. The binaries should be complied in a 64bit machine and dependencies to publicly available vision repositories (such as Open CV) should be explicitly stated in the document that accompanies the binary
Winners
Results
Indoor
| 51 points | 68 points |
Outdoor
| 51 points | 68 points |
Indoor + Outdoor
| 51 points | 68 points |
Participants
1. S. Milborrow, T. Bishop, and F. Nicolls. Multiview active shape models with sift descriptors for the 300-w face landmark challenge.
2. S. Jaiswal, T. Almaev, and M. Valstar. Guided unsupervised learning of mode specific models for facial point detection in the wild.
3. T. Baltrusaitis, L.-P. Morency, and P. Robinson. Constrained local neural fields for robust facial landmark detection in the wild.
4. E. Zhou, H. Fan, Z. Cao, Y. Jiang, and Q. Yin. Facial landmark localization with coarse-to-fine convolutional network cascade.
5. K. Hasan Md., S. Moalem, and C. Pal. Localizing facial keypoints with global descriptor search, neighbour alignment and locally linear models.
6. J. Yan, Z. Lei, D. Yi, and S. Z. Li. Learn to combine multiple hypotheses for face alignment.
Submission Information
Challenge participants should submit a paper to the 300-W Workshop, which summarizes the methodology and the achieved performance of their algorithm. Submissions should adhere to the main ICCV 2013 proceedings style, and have a maximum length of 8 pages and will be charged a fee if $200, regardless of length. The workshop papers will be published in the ICCV 2013 proceedings. Please sign up in the submissions system to submit your paper.
Important Dates
Contact
Dr. Georgios Tzimiropoulos
<EMAIL_ADDRESS><EMAIL_ADDRESS>Intelligent Behaviour Understanding Group (iBUG)
References
[1] R. Gross, I. Matthews, J. Cohn, T. Kanade, and S. Baker.Multi-pie. Image and Vision Computing, 28(5):807–813, 2010.
[2] Belhumeur, P., Jacobs, D., Kriegman, D., Kumar, N.. ‘Localizing parts of faces using a consensus of exemplars’. In Computer Vision and Pattern Recognition, CVPR. (2011).
[3] X. Zhu, D. Ramanan. ‘Face detection, pose estimation and landmark localization in the wild’, Computer Vision and Pattern Recognition (CVPR) Providence, Rhode Island, June 2012.
[4] Vuong Le, Jonathan Brandt, Zhe Lin, Lubomir Boudev, Thomas S. Huang. ‘Interactive Facial Feature Localization’, ECCV2012.
[5] Messer, K., Matas, J., Kittler, J., Luettin, J., Maitre, G. ‘Xm2vtsdb: The ex- tended m2vts database’. In: 2nd international conference on audio and video-based biometric person authentication. Volume 964. (1999).
[6] C. Sagonas, G. Tzimiropoulos, S. Zafeiriou and Maja Pantic. ‘A semi-automatic methodology for facial landmark annotation’, IEEE Int’l Conf. Computer Vision and Pattern Recognition (CVPR-W’13), 5th Workshop on Analysis and Modeling of Faces and Gestures (AMFG2013). Portland Oregon, USA, June 2013 (accepted for publication).
Program Committee
Sponsors


|
Panda3D
|
Public Member Functions | |
| def | __init__ (self, inspector) |
| def | createListWidget (self) |
| def | createMenus (self) |
| def | createPopupMenu (self, part, menuList) |
| def | createTextWidgets (self) |
| def | createViews (self) |
| def | dive (self) |
| def | evalCommand (self, event) |
| def | fillList (self) |
| def | inspect (self) |
| def | inspectedObject (self) |
| def | inspectorForSelectedPart (self) |
| def | listSelectionChanged (self, event) |
| def | open (self) |
| def | pop (self) |
| def | popOrDive (self, event) |
| def | popupMenu (self, event) |
| def | selectedIndex (self) |
| def | selectedPart (self) |
| def | setTitle (self) |
| def | showHelp (self) |
| def | topInspector (self) |
| def | update (self) |
Public Attributes | |
| commandWidget | |
| framePane | |
| inspectors | |
| listWidget | |
| menuBar | |
| textPane | |
| textWidget | |
| top | |
| def __init__ | ( | self, | |
| inspector | |||
| ) |
| def createListWidget | ( | self | ) |
| def createMenus | ( | self | ) |
| def createPopupMenu | ( | self, | |
| part, | |||
| menuList | |||
| ) |
| def createTextWidgets | ( | self | ) |
| def createViews | ( | self | ) |
| def dive | ( | self | ) |
| def evalCommand | ( | self, | |
| event | |||
| ) |
Eval text in commandWidget
| def fillList | ( | self | ) |
| def inspect | ( | self | ) |
| def inspectedObject | ( | self | ) |
| def inspectorForSelectedPart | ( | self | ) |
| def listSelectionChanged | ( | self, | |
| event | |||
| ) |
| def open | ( | self | ) |
| def pop | ( | self | ) |
| def popOrDive | ( | self, | |
| event | |||
| ) |
The list has been double-clicked. If the selection is 'self' then pop, otherwise dive into the selected part
| def popupMenu | ( | self, | |
| event | |||
| ) |
| def selectedIndex | ( | self | ) |
| def selectedPart | ( | self | ) |
| def setTitle | ( | self | ) |
| def showHelp | ( | self | ) |
| def topInspector | ( | self | ) |
| def update | ( | self | ) |
| commandWidget |
| framePane |
| inspectors |
| listWidget |
| menuBar |
| textPane |
| textWidget |
| top |


{% load static %}
{% include 'navbar.html' with user=user back='books' %}
{{ usr.first_name }} {{ usr.last_name }}
Email: {{ usr.email }}
Total Reviews: {{ usr.total_reviews }}
Posted reviews in the following books:
{% for rev in usr.reviews.all %}
{{ rev.book.title }}
{% empty %}
There are no books reviewd by this user
{% endfor %}


1. I understand that the common data model (CDM) is a way of organizing disparate data sources into the same relational database design, but how can it be effective since many databases use different coding schemes?
During the extract, transform, load (ETL) process of converting a data source into the OMOP common data model, we standardize the structure (e.g. tables, fields, data types), conventions (e.g. rules that govern how source data should be represented), and content (e.g. what common vocabularies are used to speak the same language across clinical domains). The common data model preserves all source data, including the original source vocabulary codes, but adds the standardized vocabularies to allow for network research across the entire OHDSI research community.
2. How does my data get transformed into the common data model?
You or someone in your organization will need to create a process to build your CDM. Don’t worry though, you are not alone! The open nature of the community means that much of the code that other participants have written to transform their own data is available for you to use. If you have a data license for a large administrative claims database like IBM MarketScan® or Optum’s Clinformatics® Extended Data Mart, chances are that someone has already done the legwork. Here is one example of a full builder freely available on github that has been written for a variety of data sources.
The community forums are also a great place to ask questions if you are stuck or need guidance on how to represent your data in the common data model. Members are usually very responsive!
3. Are any tables or fields optional?
It is expected that all tables will be present in a CDM though it is not a requirement that they are all populated. The two mandatory tables are:
It is then up to you which tables to populate, though the core event tables are generally agreed upon to be Condition_occurrence, Procedure_occurrence, Drug_exposure, Measurement, and Observation. Each table has certain required fields, a full list of which can be found on the Common Data Model wiki page.
4. Does the data model include any derived information? Which tables or values are derived?
The common data model stores verbatim data from the source across various clinical domains, such as records for conditions, drugs, procedures, and measurements. In addition, to assist the analyst, the common data model also provides some derived tables, based on commonly used analytic procedures. For example, the Condition_era table is derived from the Condition_occurrence table and both the Drug_era and Dose_era tables are derived from the Drug_exposure table. An era is defined as a span of time when a patient is assumed to have a given condition or exposure to a particular active ingredient. Members of the community have written code to create these tables and it is out on the github if you choose to use it in your CDM build. It is important to reinforce, the analyst has the opportunity, but not the obligation, to use any of the derived tables and all of the source data is still available for direct use if the analysis calls for different assumptions.
5. How is age captured in the model?
Year_of_birth, month_of_birth, day_of_birth and birth_datetime are all fields in the Person table designed to capture some form of date of birth. While only year_of_birth is required, these fields allow for maximum flexibility over a wide range of data sources.
6. How are gender, race, and ethnicity captured in the model? Are they coded using values a human reader can understand?
Standard Concepts are used to denote all clinical entities throughout the OMOP common data model, including gender, race, and ethnicity. Source values are mapped to Standard Concepts during the extract, transform, load (ETL) process of converting a database to the OMOP Common Data Model. These are then stored in the Gender_concept_id, Race_concept_id and Ethnicity_concept_id fields in the Person table. Because the standard concepts span across all clinical domains, and in keeping with Cimino’s ‘Desiderata for Controlled Medical Vocabularies in the Twenty-First Century’, the identifiers are unique, persistent nonsematic identifiers. Gender, for example, is stored as either 8532 (female) or 8507 (male) in gender_concept_id while the original value from the source is stored in gender_source_value (M, male, F, etc).
7. Are there conditions/procedures/drugs or other domains that should be masked or hidden in the CDM?
The masking of information related to a person is dependent on the organization’s privacy policies and may vary by data asset (THEMIS issue #21).
8. How is time-varying patient information such as location of residence addressed in the model?
The OMOP common data model has been pragmatically defined based on the desired analytic use cases of the community, as well as the available types of data that community members have access to. Prior to CDM v6.0, each person record had associated demographic attributes which are assumed to be constant for the patient throughout the course of their periods of observation, like location and primary care provider. With the release of CDM v6.0, the Location_History table is now available to track the movements of people, care sites, and providers over time. Only the most recent location_id should be stored in the Person table to eliminate duplication, while the person’s movements are stored in Location_History.
Something like marital status is a little different as it is considered to be an observation rather than a demographic attribute. This means that it is housed in the Observation table rather than the Person table, giving the opportunity to store each change in status as a unique record.
If someone in the community had a use case for time-varying location of residence and also had source data that contains this information, we’d welcome participation in the CDM workgroup to evolve the model further.
9. How does the model denote the time period during which a Person’s information is valid?
The OMOP Common Data Model uses something called observation periods (stored in the Observation_period table) as a way to define the time span during which a patient is at-risk to have a clinical event recorded. In administrative claims databases, for example, these observation periods are often analogous to the notion of ‘enrollment’.
10. How does the model capture start and stop dates for insurance coverage? What if a person’s coverage changes?
The Payer_plan_period table captures details of the period of time that a Person is continuously enrolled under a specific health Plan benefit structure from a given Payer. Payer plan periods, as opposed to observation periods, can overlap so as to denote the time when a Person is enrolled in multiple plans at the same time such as Medicare Part A and Medicare Part D.
11. What if I have EHR data? How would I create observation periods?
An observation period is considered as the time at which a patient is at-risk to have a clinical event recorded in the source system. Determining the appropriate observation period for each source data can vary, depending on what information the source contains. If a source does not provide information about a patient’s entry or exit from a system, then reasonable heuristics need to be developed and applied within the ETL.
12. Do I have to map my source codes to Standard Concepts myself? Are there vocabulary mappings that already exist for me to leverage?
If your data use any of the 55 source vocabularies that are currently supported, the mappings have been done for you. The full list is available from the open-source ATHENA tool under the download tab (see below). You can choose to download the ten vocabulary tables from there as well – you will need a copy in your environment if you plan on building a CDM.
The ATHENA tool also allows you to explore the vocabulary before downloading it if you are curious about the mappings or if you have a specific code in mind and would like to know which standard concept it is associated with; just click on the search tab and type in a keyword to begin searching.
13. If I want to apply the mappings myself, can I do so? Are they transparent to all users?
Yes, all mappings are available in the Concept_relationship table (which can be downloaded from ATHENA). Each value in a supported source terminology is assigned a Concept_id (which is considered non-standard). Each Source_concept_id will have a mapping to a Standard_concept_id. For example:
In this case the standard SNOMED concept 201826 for type 2 diabetes mellitus would be stored in the Condition_occurrence table as the Condition_concept_id and the ICD10CM concept 1567956 for type 2 diabetes mellitus would be stored as the Condition_source_concept_id.
14. Can RXNorm codes be stored in the model? Can I store multiple levels if I so choose? What if one collaborator uses a different level of RXNorm than I use when transforming their database?
In the OMOP Common Data Model RXNorm is considered the standard vocabulary for representing drug exposures. One of the great things about the Standardized Vocabulary is that the hierarchical nature of RXNorm is preserved to enable efficient querying. It is agreed upon best practice to store the lowest level RXNorm available and then use the Vocabulary to explore any pertinent relationships. Drug ingredients are the highest-level ancestors so a query for the descendants of an ingredient should turn up all drug products (Clinical Drug or Branded Drug) containing that ingredient. A query designed in this way will find drugs of interest in any CDM regardless of the level of RXNorm used.
15. What if the vocabulary has a mapping I don’t agree with? Can it be changed?
Yes, that is the beauty of the community! If you find a mapping in the vocabulary that doesn’t seem to belong or that you think could be better, feel free to write a note on the forums or on the vocabulary github. If the community agrees with your assessment it will be addressed in the next vocabulary version.
16. What if I have source codes that are specific to my site? How would these be mapped?
In the OMOP Vocabulary there is an empty table called the Source_to_concept_map. It is a simple table structure that allows you to establish mapping(s) for each source code with a standard concept in the OMOP Vocabulary (TARGET_CONCEPT_ID). This work can be facilitated by the OHDSI tool Usagi (pictured below) which searches for text similarity between your source code descriptions and the OMOP Vocabulary and exports mappings in a SOURCE_TO_CONCEPT_MAP table structure. Example Source_to_concept_map files can be found here. These generated Source_to_concept_map files are then loaded into the OMOP Vocabulary’s empty Source_to_concept_map prior to processing the native data into the CDM so that the CDM builder can use them in a build.
If an source code is not supported by the OMOP Vocabulary, one can create a new records in the CONCEPT table, however the CONCEPT_IDs should start >2000000000 so that it is easy to tell between the OMOP Vocabulary concepts and the site specific concepts. Once those concepts exist CONCEPT_RELATIONSHIPS can be generated to assign them to a standard terminologies, USAGI can facilitate this process as well (THEMIS issue #22).
17. How are one-to-many mappings applied?
If one source code maps to two Standard Concepts then two rows are stored in the corresponding clinical event table.
18. What if I want to keep my original data as well as the mapped values? Is there a way for me to do that?
Yes! Source values and Source Concepts are fully maintained within the OMOP Common Data Model. A Source Concept represents the code in the source data. Each Source Concept is mapped to one or more Standard Concepts during the ETL process and both are stored in the corresponding clinical event table. If no mapping is available, the Standard Concept with the concept_id = 0 is written into the *_concept_id field (Condition_concept_id, Procedure_concept_id, etc.) so as to preserve the record from the native data.
19. Who decides when and how to change the data model?
The community! There is a working group designed around updating the model and everything is done by consensus. Members submit proposed changes to the github in the form of issues and the group meets once a month to discuss and vote on the changes. Any ratified proposals are then added to the queue for a future version of the Common Data Model.
20. Are changes to the model backwards compatible?
Generally point version changes (5.1 -> 5.2) are backwards compatible and major version changes (4.0 -> 5.0) may not be. All updates to the model are listed in the release notes for each version and anything that could potentially affect backwards compatibility is clearly labeled.
21. How frequently does the model change?
The current schedule is for major versions to be released every year and point versions to be release every quarter though that is subject to the needs of the community.
22. What is the dissemination plan for changes?
Changes are first listed in the release notes on the github and in the common data model wiki. New versions are also announced on the weekly community calls and on the community forums.
23. What are the currently available analytic tools?
While there are a variety of tools freely available from the community, these are the most widely used:
24. Who is responsible for updating the tools to account for data model changes, bugs, and errors?
The community! All the tools are open source meaning that anyone can submit an issue they have found, offer suggestions, and write code to fix the problem.
25. Do the current tools allow a user to define a treatment gap (persistence window) of any value when creating treatment episodes?
Yes – the ATLAS tool allows you to specify a persistence window between drug exposures when defining a cohort (see image below).
26. Can the current tools identify medication use during pregnancy?
Yes, you can identify pregnancy markers from various clinical domains, including conditions and procedures, for example ‘live birth’, and then define temporal logic to look for drug exposure records in some interval prior to the pregnancy end. In addition, members of the community have built an advanced logic to define pregnancy episodes with all pregnancy outcomes represented, which can be useful for this type of research.
27. Do the current tools execute against the mapped values or source values?
The tools can execute against both source and mapped values, though mapped values are strongly encouraged. Since one of the aims of OHDSI is to create a distributed data network across the world on which to run research studies, the use of source values fails to take advantage of the benefits of the Common Data Model.
28. Who can generate requests?
Anyone in the community! Any question that gains enough interest and participation can be a network research study.
29. Who will develop the queries to distribute to the network?
Typically a principal investigator leads the development of a protocol. The PI may also lead the development of the analysis procedure corresponding to the protocol. If the PI does not have the technical skills required to write the analysis procedure that implements the protocol, someone in the community can help them put it together.
30. What language are the queries written in?
Queries are written in R and SQL. The SqlRender package can translate any query written in a templated SQL Server-like dialect to any of the supported RDBMS environments, including Postgresql, Oracle, Redshift, Parallel Data Warehouse, Hadoop Impala, Google BigQuery, and Netezza.
31. How do the queries get to the data partners and how are they run once there?
OHDSI runs as a distributed data network. All analyses are publicly available and can be downloaded to run at each site. The packages can be run locally and, at the data partner’s discretion, aggregate results can be shared with the study coordinator.
Data partners can also make use of one of OHDSI’s open-source tools called ARACHNE, a tool to facilitate distributed network analytics against the OMOP CDM.
It is difficult to recommend what technical capabilities a site needs to set up an ETL because it is heavily dependent on the amount of data they have and how they plan to use it. Here are some examples of options that have worked well for small to medium organizations and large organizations:
Small-to-Medium Organization
Large Organization


|
Bill Bennett and Racism: Who Really Has the Problem? Bill Bennett a racist, or some embarrassed over a community problem?
By Bob Ellis Editor The Left has developed a wide-ranging policy of demonizing arguments they find impossible to dispute: if you can’t combat the logic of a statement, then mischaracterize it as saying something reprehensible that the speaker never intended. This has also been quite effective in cowing people who might otherwise support the argument into denouncing it themselves. After all, no one wants to be seen as “outside the mainstream,” or “not traveling with the herd.” And I realize that I risk ostracism and mischaracterization by doing this piece, but then that’s never really been a concern for me. The politically correct gnashing of teeth over Bill Bennett’s recent statement about black babies and abortion is the latest example of this. For those who may not be familiar with the controversy, Bennett (former Secretary of Education, author and talk show host) said on his Sept. 28 radio show “Bill Bennett’s Morning in America” that "You could abort every black baby in this country, and your crime rate would go down.” The Left is predictably running ahead mindlessly condemning Bennett’s statement with no regard for the context or intent of the statement. In our racially charged, politically correct society, to say anything negative about a minority—regardless of its truth or accuracy—is simply unacceptable. It’s worse that cussin’ in church used to be. In fact, Congressman John Conyers (D-MI) is hassling Bennett’s radio network, Salem Radio Network, and their sponsors to drop the program As with all things, context is critical. Below is a transcript of the exchange, courtesy of Cybercast News Service (emphasis mine): CALLER: I noticed the national media, you know, they talk a lot about the loss of revenue, or the inability of the government to fund Social Security, and I was curious, and I've read articles in recent months here, that the abortions that have happened since Roe v. Wade, the lost revenue from the people who have been aborted in the last 30-something years, could fund Social Security as we know it today. And the media just doesn't - never touches this at all. BENNETT: Assuming they're all productive citizens? CALLER: Assuming that they are. Even if only a portion of them were, it would be an enormous amount of revenue. BENNETT: Maybe, maybe, but we don't know what the costs would be, too. I think as - abortion disproportionately occur among single women? No. CALLER: I don't know the exact statistics, but quite a bit are, yeah. BENNETT: All right, well, I mean, I just don't know. I would not argue for the pro-life position based on this, because you don't know. I mean, it cuts both - you know, one of the arguments in this book Freakonomics that they make is that the declining crime rate, you know, they deal with this hypothesis, that one of the reasons crime is down is that abortion is up. Well - CALLER: Well, I don't think that statistic is accurate. BENNETT: Well, I don't think it is either, I don't think it is either, because first of all, there is just too much that you don't know. But I do know that it's true that if you wanted to reduce crime, you could - if that were your sole purpose, you could abort every black baby in this country, and your crime rate would go down. That would be an impossible, ridiculous, and morally reprehensible thing to do, but your crime rate would go down. So these far-out, these far-reaching, extensive extrapolations are, I think, tricky. On its surface, it’s hard to figure out why the Left is so upset by this. After all, the Left so idolizes abortion that one would think that everybody, regardless of skin color, should be killing their babies. Let’s all do the macarena! Let’s do the timewarp again! Let’s go crazy; let’s get nuts! Let’s all abort our babies! But perhaps the problem they have with it is the implication that only BLACK babies should be aborted! We’re talking genocide here! White Bennett is trying to wipe out all those unpleasant black people! The statement is more egregious yet to the Left because of the inference that the crime rate would go down if more black babies were aborted. Never mind that Bennett disavowed such a practice himself in his next sentence, the idea that black people could be committing more crimes that white people is unacceptable! But as “unacceptable” as it might be, could it be true? An examination of Department of Justice statistics sheds some interesting light on what Bennett said:
I know liberals aren’t used to dealing with facts and logic, so if any can read and are reading this, I’ll spell it out. If Group X made up 13% of the US population and Group X committed 13% of the crimes in the US, then Bennett would have been unfair and factually incorrect in stating that aborting the babies of Group X would reduce crime. However, if Group X made up 13% of the US population, but committed 30% of the crimes in the US, then he would be factually correct in stating that aborting the babies of Group X would reduce crime. Another way of putting it would be that if one group made up 13% of the total population, and that group was no more or less likely to commit a crime than another, then that group would account for 13% of the crimes committed in America. It’s a simple mathematical fact—but I know, facts are anathema to liberals, and very hard for them to deal with. Yet their dislike for the facts, nor the fact that these mathematical facts reflect shame upon ALL Americans, changes the existence of those facts. It would be no less accurate to say that aborting every male child would reduce crime, because most crimes are committed by males. But that would be okay to say…as long as we were talking about white males.  Okay, go ahead and try to come up with any explanation other than dealing with the truth: that a sense of feeling sorry for yourself and wanting payback has let to a moral breakdown with the black segment of our population--encouraged by Race Pimps like Je$$ie Jack$on. Before you vilify me, you might recall that successful and wealthy (black) actor and comedian Bill Cosby has been saying much the same thing recently. Beginning with his speech at the NAACP gala last year, Cosby has been placing the responsibility for the problems of the black community on the black community itself. (Notice I didn’t say “African American;” as Bill Cosby said, “We are not Africans. Those people are not Africans; they don’t know a damned thing about Africa.”) Without for a second excusing slavery or the genuine institutional discrimination blacks have been subjected to in ages past, the following comments which Cosby made at the NAACP gathering speak to the problem of crime in the black community: “Looking at the incarcerated, these are not political criminals. These are people going around stealing Coca Cola. People getting shot in the back of the head over a piece of pound cake! Then we all run out and are outraged: ‘The cops shouldn’t have shot him.’  I wanted a piece of pound cake just as bad as anybody else.” “It’s not what they’re doing to us. It’s what we’re not doing. 50 percent drop out. Look, we’re raising our own ingrown immigrants.  There’s no English being spoken, and they’re walking and they’re angry.   Just murder somebody. Boom. Over what? A pizza? And then run to the poor cousin’s house.” “You got to tell me that if there was parenting -- help me -- if there was parenting, he wouldn’t have picked up the Coca Cola bottle and walked out with it to get shot in the back of the head. He wouldn’t have. Not if he loved his parents. And not if they were parenting! Not if the father would come home. Not if the boy hadn’t dropped the sperm cell inside of the girl and the girl had said, ‘No, you have to come back here and be the father of this child.’ Not ..’I don’t have to.’” Again, Bennett never argued in favor of aborting black babies to reduce crime—he stated in the strongest possible terms that such a practice is morally reprehensible. We need to deal with facts, not hysterics. So let’s quit the race-baiting and the politically correct attempts to avoid rhetorical defeat, and address the real issues. We can do that, or we can continue the decades of decay that hurts all Americans, black and white. We’re all God’s children, regardless of the color of our skin. God calls His children to love one another, and He also calls them to take responsibility for their own actions and own up when they’ve done wrong. Our whole country would be much better off if everyone lived that way. |


Business Intelligence Pipeline
Developed integrations of various data sources into a shared data store for
business intelligence analytics.
Python, Redshift, Pandas, MariaDB, Airflow, Salesforce, Periscope Data
"Canonical" Model
Designed "Canonical" models for standard business objects to easily integrate between software systems.
XML, XSD, REST, SOAP, JSON, Jitterbit


Erik Markensten
They follow through a procurement process to try and figure out where the usability part happens and who has responsibility for it (supplier or procurer). They find that it falls between the gaps, and propose engaging much earlier with the 'how' and usability questions, and engaging professionals to do so, because the procurement staff, untrained in usability, found confronting usability issues hard .
"Difficulties also arose because the tools that they used were based on idealized models of how users worked."
"Procurers, on the other hand, have relied on suppliers to create usable systems and have not focused explicitly on usability issues in their procurements (Holmlid & Artman, this
volume). Unfortunately, althoughit might seem obvious to expect that the system you purchase should be usable and useful this is seldom the case. An important reason is that usability issues have not been dealt with consciously in organisations or projects and have been separated in development processes" [my italics]
"another reason why usability activities are often omitted in contract development is that the activities do not seem to add much to what has already been done in the procurement, even though this work may not have focused on actual use at all"
"the user-centred design process can be seen as divided into two stages. The first stage, the “what” stage, aims at defining what kind of system and functionality that will solve identified user needs. The second stage, the “how” stage, addresses how the interaction with the identified functionality should be designed."
User-Oriented Design, Procurement,


Description: Determine if the callbacks have already been called at least once.
Using callbacks.fired()
to determine if the callbacks in a list have been called at least once:
// a sample logging function to be added to a callbacks list
var foo = function( value ){
console.log( 'foo:' + value );
}
var callbacks = $.Callbacks();
// add the function 'foo' to the list
callbacks.add( foo );
// fire the items on the list
callbacks.fire( 'hello' ); // outputs: 'foo: hello'
callbacks.fire( 'world '); // outputs: 'foo: world'
// test to establish if the callbacks have been called
console.log( callbacks.fired() );


Since ancient times, China has a wealth of things and architectural art has a long history. Different regions and ethnic groups have different architectural art styles, but their traditional architecture has common characteristics in terms of group layout, space, structure, building materials, and decorative arts. It is different from the West and enjoys global reputation. There are many types of ancient Chinese architecture, including palaces, altars, temples, pagodas, houses, and garden buildings. Chinese traditional architecture not only emphasizes natural mountain feng shui, but also emphasizes artificial mountain mountain feng shui, allowing artificial and natural harmony, and the connection between the courtyard and the courtyard, resulting in the "heaven and earth" environment, causing people to produce "there is a true meaning in this. To distinguish between forgotten words ".


One of hip-hop's most beloved anti-heroes, the ever-inventive MF Doom (often referred to as simply DOOM, in all caps) has received widespread praise for his sharp, candid rhymes as well as his choppy, sample-heavy production style. Initially known as Zev Love X, a member of the short-lived but influential Golden Age rap group K.M.D., the MC/producer born Daniel Dumile re-emerged at the end of the '90s with a persona and logo patterned after the Marvel Comics super villain Dr. Doom. He reinforced his enigmatic persona by donning an elaborate iron mask during all of his public appearances, in addition to occasionally hiring stand-ins for his performances. His discography is filled with numerous collaborations, instrumental albums, and works by alter egos, with only a handful of proper full-lengths credited to his most well-known moniker, and he's gone through highly prolific periods as well as lengthy absences. A heavily influential figure in underground hip-hop, Doom is best known to mainstream audiences through his collaborations with virtual pop group Gorillaz as well as exposure via Cartoon Network's Adult Swim programming block.


We have improved the appearance of the tables, so they can better view and more comprehensive descriptions.
We have recently added driver statistics. We have an overview of mileage, transported loads, created events, etc.


This article describes the structure of the records that flow through a ServingXML record stream.
This article discusses the structure of records.
ServingXML supports the notion of records that have fields, possibly multi-valued, and nested subrecords, possibly repeating.
A record may be represented in BNF as follows:
Record ::= name (Field+) (Record*) | name (Field*) (Record+) Field:= name (value*)
Here is a sample XML representation of a record.
<Employee> <Employee-No>0001</Employee-No> <Employee-Name>Matthew</Employee-Name> <Children>Joe</Children> <Children>Julia</Children> <Children>Dave</Children> </Employee>
The record is of type "Employee" and has three fields named
Employee-No
,
Employee-Name
and
Children
.
Children
is a multivalued field.


Welcome to a game of Tic Tac Toe!
Press 1 for multiplayer or 2 to watch the computer play against itself. Reload the page to play again.
In multiplayer simply click to place your symbol when it is your turn. Have fun!


The array index in C starts with 0 because in C the name of an array is a pointer, which is a reference to a memory location. Therefore, an expression *(arr + n) or arr[n] locates an element n-locations away from the starting location because the index is used as an offset. Likewise, the first element of the array is exactly contained by the memory location that array refers (0 elements away), so it should be denoted as *(arr + 0) or *(arr) or arr[0].
C programming language has been designed this way, so indexing from 0 is inherent to the language. However, some languages give user a choice to start index from zero or any other positive integer. For an example, in Fortran, when an array is declared with integer a(10) (an array of 10 integer elements), the index starts from 1 and ends at 10. However, this behavior can be overridden using a statement like, integer a(0:9), declaring an array with indices from 0 to 9.


---
layout: base
title: Services
description: "Hands-on consulting and production support by blockchain experts"
header: hero-services.jpg
image: share-image-services.jpg
js: page-services.min.js
hero:
title: "Hands-on consulting and production support"
description: "From ideation to production, we have the team and technology to help you build enterprise-grade applications and platforms."
cta:
- name: Get in touch
link: "#contact"
scroll: true
support:
features:
- title: "Ideation"
description: "Have some ideas but don’t know where to start? We run a workshop to help you better understand blockchain technologies and let you drill-down into the right use cases that bring the biggest benefit."
icon: icon-education
- title: "Use case development"
description: "You have a specific idea for a blockchain application? We help you build a detailed business and technical architecture that lets you move forward with confidence."
icon: icon-blueprint
- title: "Blockchain consulting"
description: "The idea is clear. Now you need help to build a prototype. Our blockchain consultants can work to your needs, budget and timeline to get a demo into your hands that will impress."
icon: icon-engineering
partners:
title: "Trusted by leading global companies"
description: "We work with partners who are deploying data-centric blockchain applications for automotive, energy, identity, IoT, intellectual property and supply chain use cases."
intro:
title: "Designed for data-centric, high-transaction use cases."
description: "Whether you’re a system architect, a developer or a database specialist, BigchainDB offers the performance and tooling to help you create the future."
title2: "Decentralized, secure and immutable."
text: "Traditional blockchains lack what most enterprises require. BigchainDB takes a different approach, one that starts with a big data distributed database and then adds blockchain characteristics. The result is high throughput and low latency, making data-centric and high volume use cases a breeze."
text2: "Only BigchainDB combines the all-important advantages of queryability and performance of traditional databases with the distributed, secure and immutable nature of blockchain technology into one package."
features:
- title: "Easy to build with"
description: "Build applications that speak directly to BigchainDB using our set of drivers and APIs. A powerfully simple and quick way to prototype."
icon: icon-wrench
- title: "Interoperability by design"
description: "Interoperability with Ethereum, IPFS, Bitcoin and other protocols such as the Interledger Protocol (ILP), IPLD, COALA IP and COALA SC mean that enterprises can develop their applications knowing that their work is future-proofed."
icon: icon-plug
contact:
title: "Get in touch"
description: "Ready to start building with BigchainDB? Enter your details below and we'll be in touch right away."
interests:
- Training
- Partnership
- Proof-of-concept / prototype / pilot
- Production support
- Other
industries:
- Analytics
- Automotive
- Consulting
- Data Exchange
- Energy
- Finance
- Government
- Health Care
- Identity
- Insurance
- Law
- Manufacturing
- Media
- Security
- Supply Chain
- Technology
- Other
---
{% include menu-main.html %}
{{ page.hero.title }}
{{ page.hero.description }}
{% for cta in page.hero.cta %}
{{ cta.name }}
{% endfor %}


DownloadGator
Enter the link below to download the file on the server
Enter the Link
Start Download
Monitor Downloads
Progress of Downloads
Have a look on the files that are currently being downloaded on the server.
View
Total Download Size
{{dir_size}}


The cat is a domestic species of small carnivorous mammal. It is the only domesticated species in the family Felidae and is often referred to as the domestic cat to distinguish it from the wild members of the family. A cat can either be a house cat, a farm cat or a feral cat; the latter ranges freely and avoids human contact. Domestic cats are valued by humans for companionship and their ability to hunt rodents. About 60 cat breeds are recognized by various cat registries.
The dog is a member of the genus Canis (canines), which forms part of the wolf-like canids, and is the most widely abundant terrestrial carnivore. The dog and the extant gray wolf are sister taxa as modern wolves are not closely related to the wolves that were first domesticated, which implies that the direct ancestor of the dog is extinct. The dog was the first species to be domesticated, and has been selectively bred over millennia for various behaviors, sensory capabilities, and physical attributes.
Rabbits are small mammals in the family Leporidae of the order Lagomorpha. Oryctolagus cuniculus includes the European rabbit species and its descendants, the world's 305 breeds of domestic rabbit. Sylvilagus includes 13 wild rabbit species, among them the seven types of cottontail. The European rabbit, which has been introduced on every continent except Antarctica, is familiar throughout the world as a wild prey animal and as a domesticated form of livestock and pet. With its widespread effect on ecologies and cultures, the rabbit (or bunny) is, in many areas of the world, a part of daily life—as food, clothing, a companion, and as a source of artistic inspiration.
Turtles are reptiles of the order Testudines characterized by a special bony or cartilaginous shell developed from their ribs and acting as a shield. "Turtle" may refer to the order as a whole (American English) or to fresh-water and sea-dwelling testudines (British English). The order Testudines includes both extant (living) and extinct species. The earliest known members of this group date from the Middle Jurassic, making turtles one of the oldest reptile groups and a more ancient group than snakes or crocodilians. Of the 356 known species alive today, some are highly endangered.
For some people, pets are part of the family. Well, if animals are well-trained, they can perform several tasks for humans. Consequently, there is a high demand for veterinarians everywhere. With that in mind, a good website would help a lot to the success of every veterinary brand. Clinica Dr. Mauro’s website is a great potential for its brand promotion. It welcomes a blissful video of a couple and a dog on the hero header. Understanding the essence of testimonials in improving its credibility as a vet, this website ensures that the testimonials section looks great and captivating. It uses the sticky header where a user can easily navigate to the other necessary pages of the website.
VisitDomestic and wild animals deserve safety and security. Hence, the expertise of highly professional vets are a demand to treat such animals under serious conditions. Veterinaska Fakulteta is one of the remarkable and creative design of veterinary websites in the web. It has a beautiful image background of different types of animals on every sections. It also implements a nice transition effect from one section to another. Apart from that, it’s also easier for a user to navigate on the website using the fixed numerals on the left sidebar that serves as a menu. Moreover, the website also implements the smooth animation upon scrolling, animated counter, social media integration and more. It also comes with a super clean and neat blog section.
VisitAs a professional veterinarian, you’d always want to shine in the industry. Definitely, your skills and expertise will be spread easily when you have a website that can help boost your career. Abel is here to stimulate you to create the best veterinary website as possible. It embraces a clean, out-of-box layout with compelling copy and a strong emphasis on visual hierarchy. The hero header showcases a set of fullwidth images through the use of a smooth slider. With the desire to introduce the brand with style, Abel comes with a beautiful split-screen layout of images and services. In order to boost its web presence, Abel includes informative articles with a seamless blog section on the homepage. Check out other useful elements of this veterinary website to aid you with your upcoming projects.
Visit


Situated at Gandipet which is 20 km from the city of Hyderabad, Ocean Park is an amusement park that promises each and every one a day full of entertainment and fun. One of the first theme parks that have been opened in the city, Ocean Park is spread across a huge area with two sections; one for water sports and another solely for amusement games.
This family amusement park, Ocean Park Hyderabad offers something for visitors of all age groups. There are varied choices ranging from water rides, kiddies pool, wave pool, water slides and dry rides. Kiddies Pool, 60-Ft High Ride, the Slam Bomb and Bumping Cars are the major attraction of the Ocean Park. One can also go for Jet Skiing.
Dry rides such as Super loop, 60 feet high ride, bumping cars, slam bomb, Brake Dance, Super Jet and High Swinger promises at least a few moments filled with excitement and thrill. A wide range of water rides are Pendulum, Aqua Snake, Crazy Cruize, Zip Zap Zoom, Multilane Ride, Wave Pool, Harakiri,Tornodo, Aqua-Glide, Aqua Trail and Splash are also available. There is also a kids section in the park with wading pool and fountain. Kids also have toy train, helicopters, huge air filled balloon, video games for their entertainment. The wave pool and the swimming pool also have different sections for men, women and children.
Most of the rides are included in the Ocean Park entry fee. However, for some of the rides you are required to pay extra. These rides are Super Loop, Bumping Cars, Rope Way and Bumper Boats.
There are a few things to keep in mind while you are at Ocean Park. For instance, when going for water slides, visitors are required to wear only the swimming clothes. One can either bring their swimming costumes or else buy at venue itself. However, for women costumes only on the rental basis are available while for men it is available for sale as well. If you are coming in your own vehicle then you need to pay the parking charges at the venue. Visitors are not allowed to take food inside the park. Ocean park timings are from 11 am to 7.30 pm, while water games are open only till 6 pm. So if you want to spend the night somewhere nearby then you can book a stay at the Sagar Mahal guest house which is situated close to Gandipet. Ocean Park is easily accessible; you can go by State Transport buses as well as private cars.
Another striking feature of this park is its reasonable cost. Ocean Park Hyderabad ticket price is Rs. 350 for an adult and Rs. 230 for a child. There are also special rates for college and school students. To avail that one needs to bring authorisation letter from their respective college. There is also a Double Package includes Snow World . You can choose any of these Ocean Park Hyderabad packages and spend some time memorable time with your family or friends. For all those who love thrill and adventure, there are other amusement parks in Hyderabad as well. Mount Opera, Snow World and Jalvihar are also quite popular.


6
6
6
6
6
6
6
6
6
6
6
6
Buffer Overflow
HTML
MySQL SQL Injection
Text Manipulation
Time-Based Blind Injection
Encoding
File Inclusion
Hex Convert
SQL Injection
Run Loaded Script
Run As JavaScript In Loaded Page
Run As...
Useful Strings
Encryption
Server-Side JavaScript Injection
XSS


module Tarball
Overview
require "tarball"
# Extracts all files in "archive.tar" to under the "data" directory.
Tarball.extract_all("archive.tar", "data")
Defined in:
tarball.crConstant Summary
-
BLOCK_SIZE =
512
-
VERSION =
"0.1.4"
Class Method Summary
-
.extract_all(archive_file : String, dir = ".")
Extracts all file system objects in the tar archive file.
-
.open(archive_file : String)
Opens tar archive file.
-
.open(archive_file : String, &block)
Opens tar archive file and yields given block.
-
.open_gz(archive_file : String)
Opens gzipped tar archive file.
-
.open_gz(archive_file : String, &block)
Opens gzipped tar archive file and yields given block.
Class Method Detail
def self.extract_all(archive_file : String, dir = ".")
#
Extracts all file system objects in the tar archive file.
def self.open_gz(archive_file : String, &block)
#
Opens gzipped tar archive file and yields given block.


It is recommended to read the documentation for the app to understand the functioning of the actions and the asset
configuration or the action parameters associated with it. For further details, refer to Agari Docs.
Steps to Generate Client ID and Client Secret
Follow these steps to obtain your Agari API credentials.
Once you have your Agari account, log into the Agari product and manually generate the 'client_id' and 'client_secret':
- Log into your Agari product.
- Click on your username in the upper right and select Settings.
- Click on the Generate API Secret link to generate an API 'client_id' and 'client_secret' (the
link will read Regenerate API Secret if you have already generated an API client ID/secret
previously).
- Copy both the 'client_id' and 'client_secret' that are generated and store them somewhere safe.
Note:
- Keep your 'client_id' and 'client_secret' secure.
- API clients can use your 'client_id' and 'client_secret' to gain access to the APIs as your user. Keep
these values somewhere safe and secure. Never share them with anyone.
- For security purposes, the 'client_secret' will not be displayed again, however you may generate a
new one whenever needed by following the steps above.
Explanation of the Asset Configuration Parameters
The asset configuration parameters affect [test connectivity] and some other actions of the application. Below are the
explanation and usage of all these parameters. The parameters related to test connectivity action are Client ID and
Client Secret.
-
Client ID: Client ID
-
Client Secret: Client Secret
-
Policy Name: This parameter allows the user to find by the policy name while fetching the policy events.
-
Policy Action: This parameter allows the user to find the policy action while fetching the policy events.
The valid values for this parameter include: deliver, move, inbox, delete, none, all.
Note: When 'all' is selected, 'policy_action' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
-
Exclude Alert Types: This parameter allows the user to exclude the alert type while fetching the policy
events. The valid values for this parameter include MessageAlert, SystemAlert, None.
Note: When 'None' is selected, 'exclude_alert_types' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
-
Policy Enabled: This parameter allows the user to find by the policies enabled while fetching the policy
events. The valid values for this parameter include: True, False, All.
Note: When 'All' is selected, 'policy_enabled' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
-
Filter: This parameter allows filtering the policy events based on the search filters applied. It allows
multiple filters combined using and/or conjunctions. Refer to the filtering section in the Agari Docs
for more details.
-
Add Fields: This parameter allows the user to add the optional fields to the default message payload. It expects a
comma-delimited string as an input parameter.
-
CEF mapping: This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the
dictionary is a potential key name in the message artifact that is to be renamed to the value. For example, if the
'cef_mapping' is {"message_trust_score":"message_ts"}, your artifact will have a ‘message_ts’ CEF field instead of
‘message_trust_score’ CEF field.
-
Start date: This parameter allows the user to specify the earliest date time the search should target while
fetching the policy events. This parameter will be taken into consideration for the first run of scheduled polling
and Poll Now. The datetime should be in ISO 8601 format. The default value for the start date is the last 14 days. The
provided date cannot be greater than the last 14 days.
-
Sort: This parameter allows sorting the data based on the 'created_at' date. The following are the valid values that the
parameter can take:
- oldest_first
- latest_first
-
Max results: The maximum number of results to ingest. The default value is 100.
-
Max Workers for Polling: This configuration parameter allows the user to configure the number of maximum
workers while fetching the results from the Agari server for On Poll action. The number of workers defined is
directly proportional to the number of threads created using ThreadPool Executor. ThreadPool Executor will provide
a simple abstraction to spin up multiple threads and will use those threads to perform tasks concurrently. For
example, if the number of workers is 10, the thread pool executor will essentially create 10 concurrent threads to
process any jobs that we submit to it. The threading concept will be majorly used for the 'get policy event' and
'get message' API call while fetching the results for ingestion. Please note that increasing the number of workers
will elevate the performance of the On Poll action in the Agari app. The only downside will be the increased
utilization of resources on the Phantom platform, which may lead to unexpected behavior on the Phantom platform.
The default value is 1.
Note: Assign the number of workers depending on the system configuration of the platform and the resources available.
-
Note: If non-required parameters are kept empty, then the default behavior of the API would be considered.
Retry Mechanism
-
The 429 status code (rate limit) will be handled using the backoff factor and number of retries parameters
in the session object.
-
Number of Retries: The number of retries defines the number of attempts for which the action will keep on retrying if the Agari
API continuously hits "429 Too Many Requests". If the intermittent error gets eliminated before the number of retries gets exhausted, then, the action execution will continue along its workflow and if
the intermittent error is still persistent and all the retries are exhausted, then, the action will fail
with the latest error message being displayed. The number of retries is
5
.
-
Backoff Factor: A backoff factor to apply between attempts after the second try (most errors are resolved
immediately by a second try without a delay). The backoff factor is
0.3
.
- Sleep time calculation:
{backoff factor} * (2 ** ({number of total retries} - 1))
seconds.
Explanation of the Agari Actions' Parameters
-
Test Connectivity (Action Workflow Details)
- This action will test the connectivity of the Phantom server to the Agari instance by making an initial API
call using the provided asset configuration parameters. This action can also be used to generate a new bearer
token.
- The action validates the provided asset configuration parameters. Based on the API call response, the
appropriate success and failure message will be displayed when the action gets executed.
-
List Policy Events
Fetches a list of policy events from the Agari Platform. The user can filter the results based on the action
parameters as described below. The results can be sorted either in ascending or descending order based on the
field attribute used. The user can paginate through the responses based on the offset parameter. The max results
parameter can be used to limit the output responses.
- Action Parameter: Max results
- This parameter allows the user to limit the number of results. It expects a numeric value as an input. The
default value is 100 for which it will fetch the first 100 policy events from the response.
- Action Parameter: Offset
- This parameter allows the user to set the starting point or offset for the response. It expects a numeric
value as an input. If not provided, then 0 will be considered as the starting index.
- Action Parameter: Sort
- This parameter allows sorting the policy events based on the field specified with its sorting direction. It expects a comma-delimited string as an input parameter.
- Action Parameter: Rem Fields
- This parameter allows the user to remove the fields from the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Add Fields
- This parameter allows the user to add the optional fields to the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Fields
- This parameter allows the user to specify the fields which are required to be fetched in the response. It
expects a comma-delimited string as an input parameter.
- Action Parameter: Filter
- This parameter allows filtering the policy events based on the search filters applied. It allows multiple
filters combined using and/or conjunctions. Refer to the filtering section in the
Agari Docs for more details.
- Action Parameter: Start date
- This parameter allows the user to specify the earliest date time the search should target while fetching
the policy events. The datetime should be in ISO 8601 format.
- Action Parameter: End date
- This parameter allows the user to specify the last date time the search should target while fetching the
policy events. The datetime should be in ISO 8601 format.
- Action Parameter: Policy Name
- This parameter allows the user to find by the policy name while fetching the policy events.
- Action Parameter: Policy Action
- This parameter allows the user to find the policy action while fetching the policy events. The valid
values for this parameter include: deliver, move, inbox, delete, none, all.
Note: When 'all' is selected, 'policy_action' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Action Parameter: Exclude Alert Types
- This parameter allows the user to exclude the alert type while fetching the policy events. The valid
values for this parameter include MessageAlert, SystemAlert, None.
Note: When 'None' is selected, 'exclude_alert_types' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Action Parameter: Policy Enabled
- This parameter allows the user to find by the policies enabled while fetching the policy events. The valid values for
this parameter include: True, False, All.
Note: When 'All' is selected, 'policy_enabled' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Note: If non-required parameters are kept empty, then the default behavior of the API would be considered.
- Examples:
- List the policy events with the policy name ‘Untrusted Messages’, sorted based on ID in descending
order. Remove ‘notified_original_recipients’ and ‘summary’ from the response.
- Policy Name = Untrusted Messages
- Sort = id DESC
- Rem Fields = notified_original_recipients, summary
- List the policy events updated between 2021-04-21T09:58:30Z and 2021-04-21T12:23:27Z and sort them
based on ‘updated at’ as the primary sort(ASC) and ID as the secondary sort(DESC). The results should also
be limited to 15.
- Start Date = 2021-04-21T09:58:30Z
- End Date = 2021-04-21T12:23:27Z
- Sort = updated_at ASC, id DESC
- Max Results = 15
Note: Max Results value will be handled internally which will paginate through the policy events.
- List the policy events updated after 2020-04-20T07:21:33Z and offset as 10. Policy enabled should be
True and SystemAlert should be excluded. The results should be sorted based on created_at in ascending
order.
- Offset = 10
- Filter = created_at.after(2020-04-20T07:21:33Z)
- Exclude Alert Types = SystemAlert
- Policy Enabled = True
- Sort = created_at ASC
Note: The first 100 policy events will only be fetched as the max results parameter value is not provided
by the user in this use case.
- List the policy events having ID 640767758 or 640767759 or 640767760. Also, check whether the policy
action is ‘delete’ for them.
- Filter = id.eq(640767758) or id.eq(640767759) or id.eq(640767760)
- Policy Action = delete
- List the policy events with fields limited to ‘id’, ‘updated_at’, and ‘created_at’. Additionally, add
‘alert_definition_name’ to the response.
- Fields = id, updated_at, created_at
- Add Fields = alert_definition_name
-
Get Policy Event
Fetch a specific policy event from the Agari Platform for the provided ID.
- Action Parameter: ID
- The unique policy event ID. This ID can be fetched from the output of the List Policy Events action['id'].
- Action Parameter: Rem Fields
- This parameter allows the user to remove the fields from the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Add Fields
- This parameter allows the user to add the optional fields to the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Fields
- This parameter allows the user to specify the fields which are required to be fetched in the response. It
expects a comma-delimited string as an input parameter.
- Note: If non-required parameters are kept empty, then the default behavior of the API would be considered.
- Examples:
- Fetch the policy event with ID 640767773.
- Fetch policy event with ID 640767773 and display only created at time and collector message ID
associated with it.
- ID = 640767773
- Fields = collector_message_id, created_at
-
List Messages
Fetches a list of messages from the Agari Platform. The user can filter the results based on the action parameters
as described below. The results can be sorted either in ascending or descending order based on the field attribute
used. The user can paginate through the responses based on the offset parameter and can limit the output response
based on the max results parameter.
- Action Parameter: Max results
- This parameter allows the user to limit the number of results. It expects a numeric value as an input. The
default value is 100 for which it will fetch the first 100 messages from the response.
- Action Parameter: Offset
- This parameter allows the user to set the starting point or offset for the response. It expects a numeric
value as an input. If not provided, then 0 will be considered as the starting index.
- Action Parameter: Sort
- This parameter allows sorting the messages based on the field specified with its sorting direction. It
expects a comma-delimited string as an input parameter.
- Action Parameter: Rem Fields
- This parameter allows the user to remove the fields from the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Add Fields
- This parameter allows the user to add the optional fields to the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Fields
- This parameter allows the user to specify the fields which are required to be fetched in the response. It
expects a comma-delimited string as an input parameter.
- Action Parameter: Start date
- This parameter allows the user to specify the earliest date time the search should target while fetching
the messages. The datetime should be in ISO 8601 format.
- Action Parameter: End date
- This parameter allows the user to specify the last date time the search should target while fetching the
messages. The datetime should be in ISO 8601 format.
- Action Parameter: Search
- This parameter allows searching the messages based on the search filters applied. It allows multiple
filters combined using and/or conjunctions. Refer to the searching section in the
Agari Docs for more details.
- Note:
- List Messages action can be used to fetch the messages which are not linked with any
particular policy event.
- If non-required parameters are kept empty, then the default behavior of the API would be considered.
- Examples:
- List the messages which do not have attachment and sorted based on ID in descending order. Remove
‘from’ and ‘to’ fields from the response.
- Search = has_attachment=false
- Sort = id DESC
- Rem Fields = from, to
- List the messages updated between 2021-04-21T09:58:30Z and 2021-04-21T12:23:27Z and sort them based on
‘date’ as the primary sort(ASC) and ID as the secondary sort(DESC). The results should also be limited to
25.
- Start Date = 2021-04-21T09:58:30Z
- End Date = 2021-04-21T12:23:27Z
- Sort = date ASC, id DESC
- Max Results = 25
- List the messages after 2021-04-20T07:21:33Z and offset as 10. The message timestamp should be less
than<PHONE_NUMBER>000.
- Offset = 10
- Start Date = 2021-04-20T07:21:33Z
- Search = timestamp_ms<1619074455000
Note: The first 100 messages will only be fetched as the max results parameter value is not provided by
the user in this use case.
- List the messages which are not linked with any policy and domain tags are not added for the message.
Sort the results based on ID in ascending order.
- Search = policy_ids is null and domain_tags is null
- Sort = id ASC
-
Get Message
Fetch a specific message from the Agari Platform for the provided ID.
- Action Parameter: ID
- The unique message ID. This ID can be fetched from the output of List Messages action[‘id’] or Get
Policy Event action[‘collector_message_id’].
- Action Parameter: Rem Fields
- This parameter allows the user to remove the fields from the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Add Fields
- This parameter allows the user to add the optional fields to the default payload. It expects a comma-delimited
string as an input parameter.
- Action Parameter: Fields
- This parameter allows the user to specify the fields which are required to be fetched in the response. It
expects a comma-delimited string as an input parameter.
- Note: If non-required parameters are kept empty, then the default behavior of the API would be considered.
- Examples:
- Fetch the message with ID 0ef8f456-a2ff-11eb-8180-0242ac130004.
- ID = 0ef8f456-a2ff-11eb-8180-0242ac130004
- Fetch message with ID 0ef8f456-a2ff-11eb-8180-0242ac130004 and remove the ‘from_domain’ from the
default payload.
- ID = 0ef8f456-a2ff-11eb-8180-0242ac130004
- Rem Fields = from_domain
-
Remediate Message
Remediate the suspected message. The message can be moved or deleted from the inbox based on the remediation operation.
- Action Parameter: ID
- The unique message ID. This ID can be fetched from the output of List Messages action[‘id’] or Get
Policy Event action[‘collector_message_id’].
- Action Parameter: Remediation Operation
- This parameter allows the user to move or delete the suspected message from the inbox. Valid values are: ‘move’, ‘delete’.
- Examples:
- Remediate the message with ID 0ef8f456-a2ff-11eb-8180-0242ac130004. The remediation operation should be
‘move’.
- ID = 0ef8f456-a2ff-11eb-8180-0242ac130004
- Remediation Operation = move
-
On Poll
-
What is On Poll
- It will ingest the policy events and the message associated with them in the form of containers and
artifacts in Phantom. The On Poll action will create one container for the policy event and two artifacts in the
container [Policy Event Artifact and Message Artifact]. There are two approaches to polling which are
mentioned below.
- POLL NOW (Manual polling)
-
It will fetch the data every time as per the corresponding asset configuration parameters. It doesn’t
store the last run context of the fetched data.
- Scheduled/Interval Polling
- The ingestion action can be triggered at a regular time interval.
- It will fetch the data every time as per the corresponding asset configuration parameters based on
the stored context from the previous ingestion run. It stores the last run context of the fetched data
[last_ingested_policy_event_id and last_ingested_policy_event_date]. It starts fetching data based on
the combination of the values of stored context for the previous ingestion run and the corresponding
asset configuration parameters having higher priority.
- Note: On Poll action will skip the policy events and messages in case of intermittent error
while fetching the data from Agari or while processing the data. The logs associated with it, which includes the appropriate error details for skipping the policy event, will be logged in the
spawn.log
file.
-
Stored Context
-
It is the concept of storing the context of the previous ingestion run. This concept will be used only for
scheduled/interval polling. It will use the state file to store the last run context. This state file will
be created for the asset of the application configured on the phantom platform.
- Action Parameter: Max results
- This parameter allows the user to limit the number of results. For scheduled or interval polling, this
parameter can be used to limit the data for each polling cycle. It expects a numeric value as an input. The
default value is 100 for which it will ingest only the first 100 events fetched.
- Action Parameter: Sort
- This parameter allows sorting the result data set based on the ‘created_at’ field. It can only take the
values 'oldest_first' or 'latest_first'.
Note: It is preferable to use ‘oldest_first’ as the ingestion mechanism to prevent any data loss.
- Action Parameter: Add Fields
- This parameter allows the user to add the optional fields to the default message payload. It expects a
comma-delimited
string as an input parameter.
Note: Add Fields will be applied to the ‘get message’ API call (Message Artifact) during polling.
- Action Parameter: Start date
- This parameter allows the user to specify the earliest date time the search should target while fetching
the policy events. This parameter will be taken into consideration for the first run of scheduled polling
and Poll Now. The datetime should be in ISO 8601 format. The default value for the start date is the last 14
days. The provided date cannot be greater than the last 14 days.
- Action Parameter: Filter
- This parameter allows filtering the policy events based on the search filters applied. It allows multiple
filters combined using and/or conjunctions. Refer to the filtering section in the Agari Docs for more details.
- Action Parameter: Policy Name
- This parameter allows the user to find by the policy name while fetching the policy events.
- Action Parameter: Policy Action
- This parameter allows the user to find the policy action while fetching the policy events. The valid
values for this parameter include: deliver, move, inbox, delete, none, all.
Note: When 'all' is selected, 'policy_action' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Action Parameter: Exclude Alert Types
- This parameter allows the user to exclude the alert type while fetching the policy events. The valid
values for this parameter include: MessageAlert, SystemAlert, None.
Note: When 'None' is selected, 'exclude_alert_types' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Action Parameter: Policy Enabled
- This parameter allows the user to find the policies enabled while fetching the policy events. The valid values for this parameter include: True, False, All.
Note: When 'All' is selected, 'policy_enabled' will not be passed in the API call while fetching the policy events. The default behavior of the API would be considered.
- Action Parameter: CEF mapping
- This parameter is a JSON dictionary represented as a serialized JSON string. Each key in the dictionary is
a potential key name in an artifact that is to be renamed to the value. For example, if the 'cef_mapping' is
{"message_trust_score":"message_ts"}, your artifact will have a ‘message_ts’ CEF field instead of
‘message_trust_score’ CEF field.
- Action Parameter: Max Workers for Polling
- This configuration parameter allows the user to configure the number of maximum workers while fetching the
results from the Agari server for On Poll action. The number of workers defined is directly proportional to
the number of threads created using ThreadPool Executor. ThreadPool Executor will provide a simple
abstraction to spin up multiple threads and will use those threads to perform tasks concurrently. For
example, if the number of workers is 10, the thread pool executor will essentially create 10 concurrent
threads to process any jobs that we submit to it. The threading concept will be majorly used for the 'get
policy event' and 'get message' API call while fetching the results for ingestion. Please note that
increasing the number of workers will elevate the performance of the On Poll action in the Agari app. The
only downside will be the increased utilization of resources on the Phantom platform, which may lead to
unexpected behavior on the Phantom platform. The default value is 1.
Note: Assign the number of workers depending on the system configuration of the platform and the resources available.
- Note: If non-required parameters are kept empty, then the default behavior of the API would be considered.
- Examples:
- Ingest the policy events with the policy name ‘Untrusted Messages’, sorted in the latest first order.
- Policy Name = Untrusted Messages
- Sort = latest_first
- List the policy events updated after 2021-04-21T09:58:30Z. Rename the CEF mapping for ‘mail_from’ to
‘from_mail’. The results should also be limited to 30.
- Start Date = 2021-04-21T09:58:30Z
- Max Results = 30
- CEF Mapping={“mail_from”: “from_mail”}
Note: Max Results value will be handled internally which will paginate through the policy events.


The Portlet Services API is an implementation based upon the GridLab Portal Technical Specification. The Portlet Services API presented was based originally on the IBM WebSphere Portlet API 4.1 (which in turn was based on the Jakarta Turbine-2 services model).
The two primary differences in the GridSphere Portlet Service API and the WebSphere 4.1 API are:
An example portlet service descriptor file is the following:
<portlet-services>
<service>
<service>
...
<name>Portlet Manager Service</name>
<description>Provides Administration Capabilities for Portlet Web Applications</description>
<interface>org.gridsphere.services.core.registry.PortletManagerService</interface>
<implementation>org.gridsphere.services.core.registry.impl.PortletManagerServiceImpl</implementation>
<service-config>
<param-name>coreContext</param-name>
<param-value>gsmanager, coreportlets, gridportlets</param-value>
</service-config>
</service>
<name>Login Service</name>
<description>Provides Login Capabilities</description>
<interface>org.gridsphere.services.core.user.LoginService</interface>
<implementation>org.gridsphere.services.core.user.impl.LoginServiceImpl</implementation>
</service>
The following definitions are used in defining a portlet service:


Memebot is a simple, yet powerful chat bot for Twitch.tv. Enchance your chat experience with the best memes today!
Features:
- Powerful custom commands. Create your own lists, counters, or just regular commands!
- Points system: Reward your viewers with points for watching. You can even create custom commands that cost points to use!
- Text-triggers: Any command can be converted to act as a text trigger, that triggers each time a key word is mentioned in chat. This can also be used to auto-purge certain keywords!
- Higlhy customizable cooldowns: Each command can have both cooldowns on per-user-basis or global cooldowns!